review:【INFRA】标准的代码生成

This commit is contained in:
YunaiV
2025-04-25 23:29:46 +08:00
parent e4267573e9
commit 7a9df83d71
7 changed files with 133 additions and 41 deletions

View File

@@ -1,19 +1,34 @@
<script lang="ts" setup>
import type { Demo01ContactApi } from '#/api/infra/demo/demo01';
import type { Rule } from 'ant-design-vue/es/form';
import { Tinymce as RichTextarea } from '#/components/tinymce';
import { ImageUpload } from '#/components/upload';
import { useVbenModal } from '@vben/common-ui';
import { DatePicker, Form, Input, message, Radio, RadioGroup } from 'ant-design-vue';
import type { Demo01ContactApi } from '#/api/infra/demo/demo01';
import { createDemo01Contact, getDemo01Contact, updateDemo01Contact } from '#/api/infra/demo/demo01';
import { $t } from '#/locales';
import { DICT_TYPE, getDictOptions } from '#/utils/dict';
import { computed, ref } from 'vue';
const emit = defineEmits(['success']);
import { useVbenModal } from '@vben/common-ui';
import {
DatePicker,
Form,
Input,
message,
Radio,
RadioGroup,
} from 'ant-design-vue';
import {
createDemo01Contact,
getDemo01Contact,
updateDemo01Contact,
} from '#/api/infra/demo/demo01';
import { Tinymce as RichTextarea } from '#/components/tinymce';
import { ImageUpload } from '#/components/upload';
import { $t } from '#/locales';
import { DICT_TYPE, getDictOptions } from '#/utils/dict';
const emit = defineEmits(['success']); // TODO @puhui999emit 和下面空一行?
const formRef = ref();
// TODO @puhui999labelCol、wrapperCol 直接写?不用单独定义变量,
const labelCol = { span: 5 };
const wrapperCol = { span: 13 };
const formData = ref<Partial<Demo01ContactApi.Demo01Contact>>({
@@ -31,7 +46,9 @@ const rules: Record<string, Rule[]> = {
description: [{ required: true, message: '简介不能为空', trigger: 'blur' }],
};
const getTitle = computed(() => {
return formData.value?.id ? $t('ui.actionTitle.edit', ['示例联系人']) : $t('ui.actionTitle.create', ['示例联系人']);
return formData.value?.id
? $t('ui.actionTitle.edit', ['示例联系人'])
: $t('ui.actionTitle.create', ['示例联系人']);
});
/** 重置表单 */
@@ -54,7 +71,9 @@ const [Modal, modalApi] = useVbenModal({
// 提交表单
const data = formData.value as Demo01ContactApi.Demo01Contact;
try {
await (formData.value?.id ? updateDemo01Contact(data) : createDemo01Contact(data));
await (formData.value?.id
? updateDemo01Contact(data)
: createDemo01Contact(data));
// 关闭并提示
await modalApi.close();
emit('success');
@@ -72,7 +91,7 @@ const [Modal, modalApi] = useVbenModal({
return;
}
// 加载数据
// 加载数据 TODO @puhui999这里不用空行
let data = modalApi.getData<Demo01ContactApi.Demo01Contact>();
if (!data) {
return;
@@ -92,7 +111,13 @@ const [Modal, modalApi] = useVbenModal({
<template>
<Modal :title="getTitle">
<Form ref="formRef" :model="formData" :rules="rules" :label-col="labelCol" :wrapper-col="wrapperCol">
<Form
ref="formRef"
:model="formData"
:rules="rules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<Form.Item label="名字" name="name">
<Input v-model:value="formData.name" placeholder="请输入名字" />
</Form.Item>
@@ -108,7 +133,11 @@ const [Modal, modalApi] = useVbenModal({
</RadioGroup>
</Form.Item>
<Form.Item label="出生年" name="birthday">
<DatePicker v-model:value="formData.birthday" value-format="x" placeholder="选择出生年" />
<DatePicker
v-model:value="formData.birthday"
value-format="x"
placeholder="选择出生年"
/>
</Form.Item>
<Form.Item label="简介" name="description">
<RichTextarea v-model="formData.description" height="500px" />