| | |
| | | > |
| | | <BasicTable @register="useTables[item.name]"> |
| | | <template #toolbar> |
| | | <a-button type="primary" @click="handleCreate(index, item.name)" preIcon="add_02|svg"> |
| | | <a-button type="primary" @click="handleCreate(index, item)" preIcon="add_02|svg"> |
| | | 新增 |
| | | </a-button> |
| | | </template> |
| | | <template #action="{ record }"> |
| | | <TableAction :actions="createActions(record, index, item.name)" /> |
| | | <TableAction :actions="createActions(record, index, item)" /> |
| | | </template> |
| | | <template #[item]="{ field }" v-for="item in colSlots" :key="item"> |
| | | <a-button |
| | |
| | | import { useForm } from '/@/components/Form/index'; |
| | | import GeneralModal from '/@/views/components/GeneralModal.vue'; |
| | | import normalDrawer from '../normalDrawer.vue'; |
| | | import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; |
| | | import { isFunction, isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; |
| | | import { useModal } from '/@/components/Modal'; |
| | | import { useGo } from '/@/hooks/web/usePage'; |
| | | import { DeleteEntity, getEntity } from '/@/api/tigerapi/system'; |
| | |
| | | GetTitle(type: string | undefined) {}, |
| | | GetUseTables(data: Ref<Recordable[]>, ...args) {}, |
| | | GetUseDrawers() {}, |
| | | CustInitData(data: Ref<any[]>, keyFieldValues: Ref<{}>, type: string) {}, |
| | | } as EntityCustFunctionType, |
| | | ]); |
| | | /* 动态import实体名.ts的自定义方法 */ |
| | |
| | | GetTitle, |
| | | GetUseTables, |
| | | GetUseDrawers, |
| | | CustInitData, |
| | | }, |
| | | ] = isNullOrUnDef(custImport.value['default']) |
| | | ? EntityCustFunction.value |
| | |
| | | sqlcmd += ` And ${drawers.value[i].code} = '${keyFieldValues.value[drawers.value[i].code]}'`; |
| | | } |
| | | /* type: all-表示需要code的所有的值 */ |
| | | if (drawers.value[i]['type'] == 'all') { |
| | | if (drawers.value[i]['type'] == 'all' && data.value[drawers.value[i]['keyName']].length > 0) { |
| | | sqlcmd += ` And ${drawers.value[i]['code']} in (${data.value[drawers.value[i]['keyName']].map((value) => `'${value[drawers.value[i]['code']]}'`).join(',')})`; |
| | | } |
| | | const list = await getEntity({ |
| | |
| | | }); |
| | | if (!isNullOrEmpty(list.Data) && !isNullOrEmpty(list.Data.Items)) { |
| | | data.value[drawers.value[i].name] = list.Data.Items; |
| | | // 自定义初始化数据 |
| | | if (CustInitData && isFunction(CustInitData)) { |
| | | CustInitData(data, keyFieldValues, drawers.value[i].name); |
| | | } |
| | | useTables[drawers.value[i].name][1].setProps({ |
| | | dataSource: [], |
| | | }); |
| | |
| | | useFormData, |
| | | crudColSlots: props.crudColSlots, |
| | | data, |
| | | name: item, //drawers列表里面的name,表示是哪一个实体,也就是高级表单中表格的名字 |
| | | name: item.name, //drawers列表里面的name,表示是哪一个实体,也就是高级表单中表格的名字 |
| | | keyName: item.keyName, |
| | | }; |
| | | const actionItem = [ |
| | | { |
| | | icon: 'clarity:note-edit-line', |
| | | onClick: editRecord.bind(null, useDrawers[index][item][1].openDrawer, params), |
| | | onClick: editRecord.bind(null, useDrawers[index][item.name][1].openDrawer, params), |
| | | }, |
| | | { |
| | | icon: 'ant-design:delete-outlined', |
| | |
| | | popConfirm: { |
| | | title: '是否确认删除?', |
| | | placement: 'left', |
| | | confirm: deleteRecord.bind(null, useTables[item][1].reload, params), |
| | | confirm: deleteRecord.bind(null, useTables[item.name][1].reload, params), |
| | | }, |
| | | }, |
| | | ]; |
| | |
| | | return nActionItem( |
| | | params, |
| | | actionItem, |
| | | useDrawers[index][item][1].openDrawer, |
| | | useTables[item][1].reload, |
| | | useDrawers[index][item.name][1].openDrawer, |
| | | useTables, |
| | | null, |
| | | useForm, |
| | | useModal, |
| | | go, |
| | | useTables[item][1].setProps, |
| | | ); |
| | | } |
| | | |
| | |
| | | function handleCreate(index, item) { |
| | | validate().then((res) => { |
| | | const Keys = Object.getOwnPropertyNames(useFormData.value); |
| | | for (const t in drawers.value) { |
| | | for (const i in Keys) { |
| | | keyFieldValues.value[drawers.value[t]['code']] = objParams.value['IsID'] |
| | | ? res[Keys[i]]['ID'] |
| | | : res[Keys[i]][drawers.value[t]['code']]; |
| | | } |
| | | useDrawers[index][item][1].openDrawer(true, { |
| | | isUpdate: false, |
| | | ifSave: true, |
| | | entityName: drawers.value[t]['name'], //props.entityName, |
| | | // formJson: GetCrudForm(item, data), //获取增删改表单字段 |
| | | crudColSlots: props.crudColSlots, |
| | | keyFieldValues: keyFieldValues.value, |
| | | data, |
| | | name: item, //drawers列表里面的name,表示是哪一个实体,也就是高级表单中表格的名字 |
| | | }); |
| | | for (const i in Keys) { |
| | | keyFieldValues.value[item['code']] = objParams.value['IsID'] |
| | | ? res[Keys[i]]['ID'] |
| | | : res[Keys[i]][item['code']]; |
| | | } |
| | | useDrawers[index][item['name']][1].openDrawer(true, { |
| | | isUpdate: false, |
| | | ifSave: true, |
| | | entityName: item['name'], //props.entityName, |
| | | // formJson: GetCrudForm(item, data), //获取增删改表单字段 |
| | | crudColSlots: props.crudColSlots, |
| | | keyFieldValues: keyFieldValues.value, |
| | | data, |
| | | name: item['name'], //drawers列表里面的name,表示是哪一个实体,也就是高级表单中表格的名字 |
| | | keyName: item['keyName'], |
| | | }); |
| | | }); |
| | | } |
| | | |