From 04aac2eda9b5d9473eb96d12b32cb76fb45135c6 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期日, 21 七月 2024 19:52:31 +0800 Subject: [PATCH] 工单更新 --- src/views/tigerprojects/system/lowcode/composition/Config.vue | 499 ++++++++---------------------------------------------- 1 files changed, 79 insertions(+), 420 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/composition/Config.vue b/src/views/tigerprojects/system/lowcode/composition/Config.vue index 05bbb61..bbff634 100644 --- a/src/views/tigerprojects/system/lowcode/composition/Config.vue +++ b/src/views/tigerprojects/system/lowcode/composition/Config.vue @@ -4,12 +4,12 @@ * @version: * @Date: 2024-06-24 23:44:31 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-25 21:34:33 + * @LastEditTime: 2024-07-01 16:49:12 --> <template> - <Card title="琛屼负閰嶇疆"> + <Card :title="GetTitle(props.configType)['configTitle']"> <BasicForm @register="registerForm"> - <template #[item]="{ field }" v-for="item in crudColSlots" :key="item"> + <template #[item]="{ field }" v-for="item in GetCrudColSlots()" :key="item"> <a-button v-if="field" class="mt-1 ml-1" @@ -31,203 +31,54 @@ import { Card } from 'ant-design-vue'; import { useModal } from '/@/components/Modal'; import GeneralModal from '/@/views/components/GeneralModal.vue'; - import { useUserStore } from '/@/store/modules/user'; import { useI18n } from '/@/hooks/web/useI18n'; - import { GetEnum, getEntity } from '/@/api/tigerapi/system'; - import { useLocale } from '/@/locales/useLocale'; - import { isNullOrEmpty } from '/@/utils/is'; + import { isNullOrUnDef } from '/@/utils/is'; + import { EntityCustFunctionType } from '/@/api/tigerapi/model/basModel'; const { t } = useI18n(); - const { getLocale } = useLocale(); const emit = defineEmits(['success', 'register']); + const props = defineProps({ + configType: { type: String }, + }); const [registerItemAdd, { openModal: openItemModal }] = useModal(); - const Prod_Code = inject('prodCode') as Ref<string>; - const ACT_ID = inject('actionCode') as Ref<string>; - const Cust_Code = inject('custCode') as Ref<string>; - const crudColSlots = ref<any>([ - 'scanadd', - 'assyadd', - 'testadd', - 'auditadd', - 'printadd', - 'pkgadd', + const objParams = inject('objParams') as Ref<any>; + const custImport = ref<any[]>([]); + const EntityCustFunction = ref([ + { + GetCrudForm(type: string | undefined) {}, + GetCrudColSlots(val, id) {}, + OpenSelectItem(openItemModal: Fn, ...args) {}, + GetSelectSuccess(d, u, ...args) {}, + GetTitle(type: string | undefined) {}, + nodeChange(params: { + resetFields: any; + setFieldsValue: any; + objParams: Ref<any>; + selectedNodes: Ref<any[]>; + }) {}, + SubmitFunc(values: Recordable<any>, type: string, emit) {}, + } as EntityCustFunctionType, ]); + /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */ + try { + custImport.value = await import(`../entityts/${objParams.value['Name']}.ts`); + } catch (e) {} + const [ + { + GetCrudForm, + GetCrudColSlots, + nodeChange, + OpenSelectItem, + GetSelectSuccess, + GetTitle, + SubmitFunc, + }, + ] = isNullOrUnDef(custImport.value['default']) + ? EntityCustFunction.value + : custImport.value['default'](); - const isNormal = (type: number) => type === 0; - const isScan = (type: number) => type === 1; - const isAssy = (type: number) => type === 2; - const isTest = (type: number) => type === 3; - const isAudit = (type: number) => type === 4; - const isPrint = (type: number) => type === 5; - const isPackage = (type: number) => type === 6; - const formSchema: FormSchema[] = [ - { - field: 'PROD_CODE', - label: '浜у搧缂栫爜', - component: 'Input', - dynamicDisabled: ({ values }) => { - return true; - }, - colProps: { span: 12 }, - }, - { - field: 'ID', - label: 'ID', - component: 'Input', - show: false, - }, - { - field: 'CUST_CODE', - label: '瀹㈡埛缂栫爜', - component: 'Input', - dynamicDisabled: ({ values }) => { - return true; - }, - colProps: { span: 12 }, - }, - { - field: 'ACT_TYPE', - label: '琛屼负绫诲瀷', - component: 'ApiSelect', - colProps: { span: 12 }, - defaultValue: 0, - componentProps: { - api: GetEnum, - params: { name: 'MES_PROD_ACTION+ACT_TYPEs' }, - resultField: 'Data', - labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', - valueField: 'Value', - // onChange: (e, v) => { - // alert(e) - // console.log('ApiSelect====>:', e, v); - // }, - }, - }, - { - field: 'IS_ACTIVE', - label: '鏄惁鍚敤', - required: true, - component: 'Select', - colProps: { span: 12 }, - componentProps: { - options: [ - { - label: '鏄�', - value: 'Y', - key: 'Y', - }, - { - label: '鍚�', - value: 'N', - key: 'N', - }, - ], - }, - }, - { - field: 'RULE_CODE', - label: '鎵爜楠岃瘉', - component: 'Input', - colProps: { span: 10 }, - ifShow: ({ values }) => isScan(values.ACT_TYPE), - }, - { - field: '0', - label: '1', - defaultValue: '', - component: 'Input', - colProps: { span: 2, pull: 1 }, - ifShow: ({ values }) => isScan(values.ACT_TYPE), - colSlot: 'scanadd', - }, - { - field: 'ITEM_CODE', - label: '缁勮涓婃枡', - colProps: { span: 10 }, - component: 'Input', - ifShow: ({ values }) => isAssy(values.ACT_TYPE), - }, - { - field: '00', - label: '1', - defaultValue: '', - component: 'Input', - colProps: { span: 2, pull: 1 }, - ifShow: ({ values }) => isAssy(values.ACT_TYPE), - colSlot: 'assyadd', - }, - { - field: 'TEST_CODE', - label: '浜у搧娴嬭瘯', - colProps: { span: 10 }, - component: 'Input', - ifShow: ({ values }) => isTest(values.ACT_TYPE), - }, - { - field: 'test0', - label: '1', - defaultValue: '', - component: 'Input', - colProps: { span: 2, pull: 1 }, - ifShow: ({ values }) => isTest(values.ACT_TYPE), - colSlot: 'testadd', - }, - { - field: 'SAPL_CODE', - label: '浜у搧鎶芥', - colProps: { span: 10 }, - component: 'Input', - ifShow: ({ values }) => isAudit(values.ACT_TYPE), - }, - { - field: 'audit0', - label: '1', - defaultValue: '', - component: 'Input', - colProps: { span: 2, pull: 1 }, - ifShow: ({ values }) => isAudit(values.ACT_TYPE), - colSlot: 'auditadd', - }, - { - field: 'LABEL_CODE', - label: '鏍囩鎵撳嵃', - colProps: { span: 10 }, - component: 'Input', - ifShow: ({ values }) => isPrint(values.ACT_TYPE), - }, - { - field: 'print0', - label: '1', - defaultValue: '', - component: 'Input', - colProps: { span: 2, pull: 1 }, - ifShow: ({ values }) => isPrint(values.ACT_TYPE), - colSlot: 'printadd', - }, - { - field: 'pkgRULE_CODE', - label: '鍖呰瑙勫垯', - colProps: { span: 10 }, - component: 'Input', - ifShow: ({ values }) => isPackage(values.ACT_TYPE), - }, - { - field: 'pkg0', - label: '1', - defaultValue: '', - component: 'Input', - colProps: { span: 2, pull: 1 }, - ifShow: ({ values }) => isPackage(values.ACT_TYPE), - colSlot: 'pkgadd', - }, - { - field: 'REMARK', - label: '澶囨敞', - component: 'Input', - colProps: { span: 12 }, - }, - ]; - const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({ + let formSchema: FormSchema[] = GetCrudForm(props.configType); + const [registerForm, { resetFields, setFieldsValue, validate, setProps }] = useForm({ labelWidth: 120, schemas: formSchema, actionColOptions: { @@ -239,201 +90,50 @@ }, showActionButtonGroup: true, submitButtonOptions: { - text: '鎻愪氦', + text: '淇濆瓨', }, + submitFunc: customSubmitFunc, }); + /* 娉ㄥ叆閫変腑鑺傜偣鏁版嵁 */ + const selectedNodes = inject('selectedNodes') as Ref<any>; watch( - () => ACT_ID.value, - (newVal, oldVal) => { + () => selectedNodes.value, + (newVal, oldVal) => { nextTick(() => { - getActType(); + setProps({ + schemas: [] + }); + /* 鑺傜偣鍒囨崲浜嬩欢 */ + nodeChange({ resetFields, setFieldsValue, objParams, selectedNodes }); + formSchema = GetCrudForm(selectedNodes.value[0].type); + setProps({ + schemas: formSchema + }); }); - }, - { deep: true, immediate: true }, -); + }, + { deep: true, immediate: true }, + ); onMounted(() => { - getActType(); + /* 鑺傜偣鍒囨崲浜嬩欢 */ + nodeChange({ resetFields, setFieldsValue, objParams, selectedNodes }); }); - function getActType() { - resetFields(); - let sqlcmd = ' 1=1 '; - if (!isNullOrEmpty(Prod_Code.value)) { - sqlcmd += `And PROD_CODE = '${Prod_Code.value}'`; - } - if (!isNullOrEmpty(Cust_Code.value)) { - sqlcmd += `And CUST_CODE = '${Cust_Code.value}'`; - } - if (!isNullOrEmpty(ACT_ID.value)) { - sqlcmd += `And ACT_ID = '${ACT_ID.value}'`; - } - getEntity({ - sqlcmd: sqlcmd, - entityName: 'MES_PROD_ACTION', - }).then((res) => { - setFieldsValue({ - PROD_CODE: Prod_Code.value, - ACT_TYPE: res.Data.Items[0].ACT_TYPE - }); - }); + async function customSubmitFunc() { + try { + const values = await validate(); + SubmitFunc(values,props.configType, emit); + // values.AUTH_PROD = useUserStore().getUserInfo.prodCode; + // values.FACTORY = useUserStore().getUserInfo.prodCode; + // const apiAction = SaveEntity(values, true, 'MES_PROD_ACTION'); + // apiAction.then((action) => { + // if (action.IsSuccessed) { + // emit('success'); + // } + // }); + } catch (e) {} } - - async function handleSubmit() { - // try { - // const values = await validate(); - // setDrawerProps({ confirmLoading: true }); - // // TODO custom api - // //淇濆瓨宸ュ崟 - // if (!unref(isUpdate)) { - // values.STATUS = 0; - // } - // values.AUTH_PROD = useUserStore().getUserInfo.prodCode; - // values.FACTORY = useUserStore().getUserInfo.prodCode; - // const apiAction = SaveEntity(values, unref(isUpdate), 'BIZ_MES_WO'); - // apiAction.then((action) => { - // if (action.IsSuccessed) { - // closeDrawer(); - // emit('success'); - // } - // }); - // } finally { - // setDrawerProps({ confirmLoading: false }); - // } - } - - const itemCodeModalCfg = { - title: '鐗╂枡鍒楄〃', - schemas: [ - { - field: 'ITEM_CODE', - component: 'Input', - label: '鐗╂枡缂栫爜', - colProps: { - span: 12, - }, - }, - ], - ItemColumns: [ - { - title: t('鐗╂枡缂栫爜'), - dataIndex: 'ITEM_CODE', - resizable: true, - sorter: true, - width: 200, - }, - { - title: t('鐗╂枡鍚嶇О'), - dataIndex: 'ITEM_NAME', - resizable: true, - sorter: true, - width: 180, - }, - ], - tableName: 'BAS_ITEM', - rowKey: 'ITEM_CODE', - searchInfo: { TABLE_NAME: 'BAS_ITEM' }, - }; - - const ruleModalCfg = { - title: '瑙勫垯鍒楄〃', - schemas: [ - { - field: 'RULE_CODE', - component: 'Input', - label: '瑙勫垯缂栫爜', - colProps: { - span: 12, - }, - }, - ], - ItemColumns: [ - { - title: t('瑙勫垯缂栫爜'), - dataIndex: 'RULE_CODE', - resizable: true, - sorter: true, - width: 200, - }, - { - title: t('瑙勫垯鍚嶇О'), - dataIndex: 'RULE_NAME', - resizable: true, - sorter: true, - width: 180, - }, - ], - tableName: 'BAS_CODE_RULE', - rowKey: 'RULE_CODE', - searchInfo: { TABLE_NAME: 'BAS_CODE_RULE' }, - }; - - const printModalCfg = { - title: '鎵撳嵃妯℃澘鍒楄〃', - schemas: [ - { - field: 'LABEL_CODE', - component: 'Input', - label: '妯℃澘缂栫爜', - colProps: { - span: 12, - }, - }, - ], - ItemColumns: [ - { - title: t('妯℃澘缂栫爜'), - dataIndex: 'LABEL_CODE', - resizable: true, - sorter: true, - width: 200, - }, - { - title: t('妯℃澘鍚嶇О'), - dataIndex: 'LABEL_NAME', - resizable: true, - sorter: true, - width: 180, - }, - ], - tableName: 'BAS_LABEL_TEMP', - rowKey: 'LABEL_CODE', - searchInfo: { TABLE_NAME: 'BAS_LABEL_TEMP' }, - }; - - const pkgModalCfg = { - title: '鍖呰瑙勫垯鍒楄〃', - schemas: [ - { - field: 'RULE_CODE', - component: 'Input', - label: '鍖呰瑙勫垯缂栫爜', - colProps: { - span: 12, - }, - }, - ], - ItemColumns: [ - { - title: t('鍖呰瑙勫垯缂栫爜'), - dataIndex: 'RULE_CODE', - resizable: true, - sorter: true, - width: 200, - }, - { - title: t('鍖呰瑙勫垯鍚嶇О'), - dataIndex: 'RULE_NAME', - resizable: true, - sorter: true, - width: 180, - }, - ], - tableName: 'BAS_PKG_RULE', - rowKey: 'RULE_CODE', - searchInfo: { TABLE_NAME: 'BAS_PKG_RULE' }, - }; /** * @description: 鐐瑰嚮鎵撳紑寮瑰嚭閫夋嫨鍒楄〃妗� @@ -441,25 +141,7 @@ * @return {*} */ function handleSelectItem(item) { - let config = {}; - switch (item) { - case 'scanadd': - config = ruleModalCfg; - break; - case 'assyadd': - config = itemCodeModalCfg; - break; - case 'testadd': - config = itemCodeModalCfg; - break; - case 'printadd': - config = printModalCfg; - break; - case 'pkgadd': - config = pkgModalCfg; - break; - } - openItemModal(true, config); + OpenSelectItem(openItemModal, item); } /** @@ -470,29 +152,6 @@ * @return {*} */ function handleItemSuccess(d, u, item) { - let value = {}; - switch (item) { - case 'scanadd': - value = { - RULE_CODE: d.values['val'], - }; - break; - case 'assyadd': - value = { - ITEM_CODE: d.values['val'], - }; - break; - case 'printadd': - value = { - LABEL_CODE: d.values['val'], - }; - break; - case 'pkgadd': - value = { - pkgRULE_CODE: d.values['val'], - }; - break; - } - setFieldsValue(value); + setFieldsValue(GetSelectSuccess(d, u, item)); } </script> -- Gitblit v1.9.3