plus-ui/src/views/tool/gen/basicInfoForm.vue

65 lines
2.1 KiB
Vue

<template>
<el-form ref="formRef" :model="infoForm" :rules="rules" label-width="150px">
<el-row>
<el-col :span="12">
<el-form-item label="表名称" prop="tableName">
<el-input v-model="infoForm.tableName" placeholder="请输入仓库名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="表描述" prop="tableComment">
<el-input v-model="infoForm.tableComment" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="实体类名称" prop="className">
<el-input v-model="infoForm.className" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作者" prop="functionAuthor">
<el-input v-model="infoForm.functionAuthor" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="infoForm.remark" type="textarea" :rows="3"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</template>
<script setup lang="ts">
import type { FormInstance } from 'element-plus';
import { propTypes } from '@/utils/propTypes';
const prop = defineProps({
info: propTypes.any.def({})
});
const infoForm = computed(() => prop.info);
const formRef = ref<FormInstance>();
// 表单校验
const rules = ref({
tableName: [{ required: true, message: '请输入表名称', trigger: 'blur' }],
tableComment: [{ required: true, message: '请输入表描述', trigger: 'blur' }],
className: [{ required: true, message: '请输入实体类名称', trigger: 'blur' }],
functionAuthor: [{ required: true, message: '请输入作者', trigger: 'blur' }]
});
/** Element Plus 推荐:通过 validate() 的 Promise 做校验 */
async function validate(): Promise<boolean> {
if (!formRef.value) return false;
try {
await formRef.value.validate();
return true;
} catch {
return false;
}
}
defineExpose({ validate });
</script>