|
|
|
@ -45,12 +45,13 @@
@@ -45,12 +45,13 @@
|
|
|
|
|
import { reactive, computed } from 'vue'; |
|
|
|
|
import { BasicForm, useForm } from '/@/components/Form/index'; |
|
|
|
|
import { formSchema, genTableFieldTypeReloadColumns } from './genDataBaseType.data'; |
|
|
|
|
import { saveAndGenTableFieldType, getGenDatabaseType } from '/@/api/platform/system/controller/genDatabaseType'; |
|
|
|
|
import { saveAndGenTableFieldType, getGenDatabaseType, selectListByType } from '/@/api/platform/system/controller/genDatabaseType'; |
|
|
|
|
import { BasicModal, ModalProps, useModal, useModalInner } from '/@/components/Modal'; |
|
|
|
|
import { BasicTable, TableAction, useTable } from '/@/components/Table'; |
|
|
|
|
import GenTableFieldTypeModal from './GenTableFieldTypeModal.vue'; |
|
|
|
|
import { useMessage } from '/@/hooks/web/useMessage'; |
|
|
|
|
import { isNil } from 'lodash-es'; |
|
|
|
|
import { isEmpty } from '/@/utils/is'; |
|
|
|
|
|
|
|
|
|
/** 通用变量统一声明区域 */ |
|
|
|
|
interface WindowState { |
|
|
|
@ -66,7 +67,7 @@
@@ -66,7 +67,7 @@
|
|
|
|
|
const emit = defineEmits(['success', 'register']); |
|
|
|
|
const [genTableFieldTypeRegisterModal, { openModal: genTableFieldTypeOpenModal }] = useModal(); |
|
|
|
|
const getDataSource = computed(() => state.dataSource.filter(item => item._action != 'del')); |
|
|
|
|
const [registerForm, { resetFields, setFieldsValue, validate, clearValidate, setProps }] = useForm({ |
|
|
|
|
const [registerForm, { resetFields, setFieldsValue, validate, clearValidate, setProps, updateSchema }] = useForm({ |
|
|
|
|
labelWidth: 100, |
|
|
|
|
schemas: formSchema, |
|
|
|
|
showActionButtonGroup: false, |
|
|
|
@ -95,12 +96,34 @@
@@ -95,12 +96,34 @@
|
|
|
|
|
// 处理清除脏数据 |
|
|
|
|
await resetFields(); |
|
|
|
|
await clearValidate(); |
|
|
|
|
await setProps({ disabled: false }); |
|
|
|
|
// 处理设置数据 |
|
|
|
|
state.tag = data._tag; |
|
|
|
|
state.dataSource = []; |
|
|
|
|
const id = data.record?.id; |
|
|
|
|
const type = data.record?.type; |
|
|
|
|
const props: Partial<ModalProps> = { confirmLoading: false, showOkBtn: true }; |
|
|
|
|
await updateSchema({ |
|
|
|
|
field: 'type', |
|
|
|
|
componentProps: { |
|
|
|
|
disabled: state.tag != 'add' |
|
|
|
|
}, |
|
|
|
|
rules: [ |
|
|
|
|
{ |
|
|
|
|
required: true, |
|
|
|
|
message: '请选择数据库类型' |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
validator: async (rule, value) => { |
|
|
|
|
if (!isEmpty(value)) { |
|
|
|
|
const result = await selectListByType(value); |
|
|
|
|
const list = result.filter(item => item.type != type); |
|
|
|
|
if(list?.length > 0) return Promise.reject('该数据库类型已存在'); |
|
|
|
|
} |
|
|
|
|
return Promise.resolve(); |
|
|
|
|
}, |
|
|
|
|
validateTrigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}); |
|
|
|
|
// 采用tag标签区分操作 |
|
|
|
|
switch (state.tag) { |
|
|
|
|
case 'add': |
|
|
|
@ -108,7 +131,6 @@
@@ -108,7 +131,6 @@
|
|
|
|
|
break; |
|
|
|
|
case 'view': |
|
|
|
|
props.title = '查看数据库字段类型'; |
|
|
|
|
await setProps({ disabled: true }); |
|
|
|
|
props.showOkBtn = false; |
|
|
|
|
const genDatabaseTypeView = await getGenDatabaseType(id); |
|
|
|
|
state.dataSource = genDatabaseTypeView?.genTableFieldTypeList || []; |
|
|
|
@ -116,7 +138,6 @@
@@ -116,7 +138,6 @@
|
|
|
|
|
break; |
|
|
|
|
case 'edit': |
|
|
|
|
props.title = '编辑数据库字段类型'; |
|
|
|
|
await setProps({ disabled: true }); |
|
|
|
|
const genDatabaseTypeEdit = await getGenDatabaseType(id); |
|
|
|
|
state.dataSource = genDatabaseTypeEdit?.genTableFieldTypeList || []; |
|
|
|
|
await setFieldsValue(genDatabaseTypeEdit); |
|
|
|
|