Browse Source

chore: 接口compose

master
wangxiang 1 year ago
parent
commit
455bcc661f
  1. 58
      src/views/system/devtools/genCustomObj/GenCustomObjModal.vue
  2. 10
      src/views/system/devtools/genCustomObj/GencodeCustomFieldModal.vue
  3. 26
      src/views/system/devtools/genCustomObj/index.vue

58
src/views/system/devtools/genCustomObj/GenCustomObjModal.vue

@ -6,7 +6,7 @@
@ok="handleSubmit" @ok="handleSubmit"
> >
<BasicForm @register="registerForm"/> <BasicForm @register="registerForm"/>
<BasicTable @register="genTableFieldTypeRegisterTable"> <BasicTable @register="gencodeCustomFieldRegisterTable">
<template #toolbar> <template #toolbar>
<a-button <a-button
v-show="state.tag != 'view'" v-show="state.tag != 'view'"
@ -38,17 +38,17 @@
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<GenTableFieldTypeModal @register="genTableFieldTypeRegisterModal" @success="handleGenTableFieldType"/> <GencodeCustomFieldModal @register="gencodeCustomFieldRegisterModal" @success="handleGencodeCustomField"/>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, computed } from 'vue'; import { reactive, computed } from 'vue';
import { BasicForm, useForm } from '/@/components/Form/index'; import { BasicForm, useForm } from '/@/components/Form/index';
import { formSchema, genTableFieldTypeReloadColumns } from './genDataBaseType.data'; import { formSchema, gencodeCustomFieldColumns } from './genCustomObj.data';
import { saveAndGenTableFieldType, getGenDatabaseType, selectListByType } from '/@/api/platform/system/controller/genDatabaseType'; import { saveAndGencodeCustomField, getGencodeCustomObj, selectListByValue } from '/@/api/platform/system/controller/gencodeCustomObj';
import { BasicModal, ModalProps, useModal, useModalInner } from '/@/components/Modal'; import { BasicModal, ModalProps, useModal, useModalInner } from '/@/components/Modal';
import { BasicTable, TableAction, useTable } from '/@/components/Table'; import { BasicTable, TableAction, useTable } from '/@/components/Table';
import GenTableFieldTypeModal from './GenTableFieldTypeModal.vue'; import GencodeCustomFieldModal from './GencodeCustomFieldModal.vue';
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import { isNil } from 'lodash-es'; import { isNil } from 'lodash-es';
import { isEmpty } from '/@/utils/is'; import { isEmpty } from '/@/utils/is';
@ -65,7 +65,7 @@
const { createConfirm, createMessage } = useMessage(); const { createConfirm, createMessage } = useMessage();
/** https://v3.cn.vuejs.org/api/options-data.html#emits */ /** https://v3.cn.vuejs.org/api/options-data.html#emits */
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const [genTableFieldTypeRegisterModal, { openModal: genTableFieldTypeOpenModal }] = useModal(); const [gencodeCustomFieldRegisterModal, { openModal: gencodeCustomFieldOpenModal }] = useModal();
const getDataSource = computed(() => state.dataSource.filter(item => item._action != 'del')); const getDataSource = computed(() => state.dataSource.filter(item => item._action != 'del'));
const [registerForm, { resetFields, setFieldsValue, validate, clearValidate, setProps, updateSchema }] = useForm({ const [registerForm, { resetFields, setFieldsValue, validate, clearValidate, setProps, updateSchema }] = useForm({
labelWidth: 100, labelWidth: 100,
@ -73,10 +73,10 @@
showActionButtonGroup: false, showActionButtonGroup: false,
baseColProps: { span: 24 } baseColProps: { span: 24 }
}); });
const [genTableFieldTypeRegisterTable] = useTable({ const [gencodeCustomFieldRegisterTable] = useTable({
dataSource: getDataSource, dataSource: getDataSource,
rowKey: 'id', rowKey: 'id',
columns: genTableFieldTypeReloadColumns, columns: gencodeCustomFieldColumns,
useSearchForm: false, useSearchForm: false,
showTableSetting: false, showTableSetting: false,
bordered: true, bordered: true,
@ -100,24 +100,24 @@
state.tag = data._tag; state.tag = data._tag;
state.dataSource = []; state.dataSource = [];
const id = data.record?.id; const id = data.record?.id;
const type = data.record?.type; const classValue = data.record?.value;
const props: Partial<ModalProps> = { confirmLoading: false, showOkBtn: true }; const props: Partial<ModalProps> = { confirmLoading: false, showOkBtn: true };
await updateSchema({ await updateSchema({
field: 'type', field: 'value',
componentProps: { componentProps: {
disabled: state.tag != 'add' disabled: state.tag != 'add'
}, },
rules: [ rules: [
{ {
required: true, required: true,
message: '请选择数据库类型' message: '请输入完整类名'
}, },
{ {
validator: async (rule, value) => { validator: async (rule, value) => {
if (!isEmpty(value)) { if (!isEmpty(value)) {
const result = await selectListByType(value); const result = await selectListByValue(value);
const list = result.filter(item => item.type != type); const list = result.filter(item => item.value != classValue);
if(list?.length > 0) return Promise.reject('该数据库类型已存在'); if(list?.length > 0) return Promise.reject('该完整类名已存在');
} }
return Promise.resolve(); return Promise.resolve();
}, },
@ -127,20 +127,20 @@
// tag // tag
switch (state.tag) { switch (state.tag) {
case 'add': case 'add':
props.title = '新建数据库字段类型'; props.title = '新建java类型';
break; break;
case 'view': case 'view':
props.title = '查看数据库字段类型'; props.title = '查看java类型';
props.showOkBtn = false; props.showOkBtn = false;
const genDatabaseTypeView = await getGenDatabaseType(id); const getGencodeCustomObjView = await getGencodeCustomObj(id);
state.dataSource = genDatabaseTypeView?.genTableFieldTypeList || []; state.dataSource = getGencodeCustomObjView?.gencodeCustomFieldList || [];
await setFieldsValue(genDatabaseTypeView); await setFieldsValue(getGencodeCustomObjView);
break; break;
case 'edit': case 'edit':
props.title = '编辑数据库字段类型'; props.title = '编辑java类型';
const genDatabaseTypeEdit = await getGenDatabaseType(id); const getGencodeCustomObjEdit = await getGencodeCustomObj(id);
state.dataSource = genDatabaseTypeEdit?.genTableFieldTypeList || []; state.dataSource = getGencodeCustomObjEdit?.gencodeCustomFieldList || [];
await setFieldsValue(genDatabaseTypeEdit); await setFieldsValue(getGencodeCustomObjEdit);
break; break;
} }
// : // :
@ -148,15 +148,15 @@
}); });
function handleAdd() { function handleAdd() {
genTableFieldTypeOpenModal(true,{ _tag: 'add' }); gencodeCustomFieldOpenModal(true,{ _tag: 'add' });
} }
function handleEdit(record: Recordable, index: number) { function handleEdit(record: Recordable, index: number) {
genTableFieldTypeOpenModal(true, { _tag: 'edit', record, index }); gencodeCustomFieldOpenModal(true, { _tag: 'edit', record, index });
} }
function handleViewEdit(record: Recordable) { function handleViewEdit(record: Recordable) {
genTableFieldTypeOpenModal(true, { _tag: 'view', record }); gencodeCustomFieldOpenModal(true, { _tag: 'view', record });
} }
async function handleDel(record: Recordable, index: number) { async function handleDel(record: Recordable, index: number) {
@ -172,7 +172,7 @@
}); });
} }
function handleGenTableFieldType(record: Recordable, index?: number) { function handleGencodeCustomField(record: Recordable, index?: number) {
if (!isNil(index) && index !== -1) { if (!isNil(index) && index !== -1) {
state.dataSource.splice(index, 1, record); state.dataSource.splice(index, 1, record);
} else state.dataSource.push(record); } else state.dataSource.push(record);
@ -182,10 +182,10 @@
try { try {
// //
const formData = await validate(); const formData = await validate();
formData.genTableFieldTypeList = state.dataSource; formData.gencodeCustomFieldList = state.dataSource;
// //
setModalProps({ confirmLoading: true }); setModalProps({ confirmLoading: true });
await saveAndGenTableFieldType(formData); await saveAndGencodeCustomField(formData);
// //
closeModal(); closeModal();
emit('success'); emit('success');

10
src/views/system/devtools/genCustomObj/GencodeCustomFieldModal.vue

@ -12,7 +12,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { reactive } from 'vue'; import { reactive } from 'vue';
import { BasicForm, useForm } from '/@/components/Form/index'; import { BasicForm, useForm } from '/@/components/Form/index';
import { formSchemaGenTableFieldType } from './genDataBaseType.data'; import { formSchemaGencodeCustomField } from './genCustomObj.data';
import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal'; import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal';
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
@ -29,7 +29,7 @@
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const [registerForm, { resetFields, setFieldsValue, validate, clearValidate, setProps }] = useForm({ const [registerForm, { resetFields, setFieldsValue, validate, clearValidate, setProps }] = useForm({
labelWidth: 80, labelWidth: 80,
schemas: formSchemaGenTableFieldType, schemas: formSchemaGencodeCustomField,
showActionButtonGroup: false, showActionButtonGroup: false,
baseColProps: { span: 24 } baseColProps: { span: 24 }
}); });
@ -46,16 +46,16 @@
// tag // tag
switch (state.tag) { switch (state.tag) {
case 'add': case 'add':
props.title = '新增表字段物理类型'; props.title = '新增java字段';
genTableFieldType._action = state.tag; genTableFieldType._action = state.tag;
break; break;
case 'view': case 'view':
props.title = '查看表字段物理类型'; props.title = '查看java字段';
await setProps({ disabled: true }); await setProps({ disabled: true });
props.showOkBtn = false; props.showOkBtn = false;
break; break;
case 'edit': case 'edit':
props.title = '编辑表字段物理类型'; props.title = '编辑java字段';
genTableFieldType._action = state.tag; genTableFieldType._action = state.tag;
break; break;
} }

26
src/views/system/devtools/genCustomObj/index.vue

@ -7,10 +7,10 @@
<template #expandedRowRender="{ record }"> <template #expandedRowRender="{ record }">
<BasicTable :style="{ margin: '0px' }" <BasicTable :style="{ margin: '0px' }"
:searchInfo="{ :searchInfo="{
typeId: record.id, objId: record.id,
size: 999 size: 999
}" }"
@register="genTableFieldTypeRegisterTable" @register="gencodeCustomFieldRegisterTable"
/> />
</template> </template>
<template #toolbar> <template #toolbar>
@ -53,7 +53,7 @@
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<GenDataBaseTypeModal @register="registerModal" @success="handleRefreshTable"/> <GenCustomObjModal @register="registerModal" @success="handleRefreshTable"/>
</div> </div>
</template> </template>
@ -61,11 +61,11 @@
import { reactive, toRaw } from 'vue'; import { reactive, toRaw } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table'; import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { useModal } from '/@/components/Modal'; import { useModal } from '/@/components/Modal';
import GenDataBaseTypeModal from './GenDataBaseTypeModal.vue'; import GenCustomObjModal from './GenCustomObjModal.vue';
import {columns, genTableFieldTypeReloadColumns, searchFormSchema} from './genDataBaseType.data'; import {columns, gencodeCustomFieldColumns, searchFormSchema} from './genCustomObj.data';
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import { listGenDatabaseType, delGenDatabaseType } from '/@/api/platform/system/controller/genDatabaseType'; import { listGencodeCustomObj, delGencodeCustomObj } from '/@/api/platform/system/controller/gencodeCustomObj';
import { listGenTableFieldType } from '/@/api/platform/system/controller/genTableFieldType'; import { listGencodeCustomField } from '/@/api/platform/system/controller/gencodeCustomField';
interface TableState { interface TableState {
single: boolean; single: boolean;
@ -80,8 +80,8 @@
const { createConfirm, createMessage } = useMessage(); const { createConfirm, createMessage } = useMessage();
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerTable, { reload, clearSelectedRowKeys, getSelectRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys, getSelectRowKeys }] = useTable({
title: '数据库类型列表', title: 'java类型列表',
api: listGenDatabaseType, api: listGencodeCustomObj,
rowKey: 'id', rowKey: 'id',
columns, columns,
formConfig: { formConfig: {
@ -106,10 +106,10 @@
}, },
handleSearchInfoFn: () => clearSelectedRowKeys() handleSearchInfoFn: () => clearSelectedRowKeys()
}); });
const [genTableFieldTypeRegisterTable] = useTable({ const [gencodeCustomFieldRegisterTable] = useTable({
api: listGenTableFieldType, api: listGencodeCustomField,
rowKey: 'id', rowKey: 'id',
columns: genTableFieldTypeReloadColumns, columns: gencodeCustomFieldColumns,
useSearchForm: false, useSearchForm: false,
showTableSetting: false, showTableSetting: false,
bordered: true, bordered: true,
@ -145,7 +145,7 @@
title: '警告', title: '警告',
content: `是否确认删除id为${ids}的数据?`, content: `是否确认删除id为${ids}的数据?`,
onOk: async () => { onOk: async () => {
await delGenDatabaseType(ids); await delGencodeCustomObj(ids);
createMessage.success('删除成功!'); createMessage.success('删除成功!');
handleRefreshTable(); handleRefreshTable();
} }

Loading…
Cancel
Save