| | |
| | | <Loading :loading="compState.loading" :tip="compState.tip" /> |
| | | <WoDrawer @register="registerDrawer" @success="handleSuccess" /> |
| | | <WoModal @register="registerWo" @success="handleSuccess" :title="title" :mtitle="mtitle" /> |
| | | <!-- 自定义模态框,可以自定义多表单 --> |
| | | <CustModal |
| | | @register="registerCust" |
| | | @success="custSuccess" |
| | | :type="cType" |
| | | :detailSlots="dtlSlots" |
| | | > |
| | | <!-- 用插槽自定义多表单 --> |
| | | <template #[item.name] v-for="item in dtlSlots" :key="item.name"> |
| | | <BasicForm @register="useFormData[item.name][0]"> |
| | | <template #[sitem]="{ field }" v-for="sitem in item.slots" :key="sitem"> |
| | | <!-- 用插槽自定义弹出选择框 --> |
| | | <template #[name]="{ field }" v-for="name in item.slots" :key="name"> |
| | | <a-button |
| | | class="mt-1 ml-1" |
| | | size="small" |
| | | @click="handleCustClick(field)" |
| | | :preIcon="item.preIcons[sitem]" |
| | | :preIcon="item.preIcons[name]" |
| | | /> |
| | | <NormalModal |
| | | @register="useModalData[name][0]" |
| | | @success="(d, u) => handleEntSuccess(d, u, item.name)" |
| | | /> |
| | | </template> |
| | | </BasicForm> |
| | | <NormalModal |
| | | @register="registerEntity" |
| | | @success="(d, u) => handleEntSuccess(d, u, item.name)" |
| | | /> |
| | | </template> |
| | | </CustModal> |
| | | <RouteViewModal @register="registerRv" @success="RvItemSuccess" /> |
| | |
| | | loading: false, |
| | | tip: '加载中...', |
| | | }); |
| | | const [registerEntity, { openModal: openEntModal }] = useModal(); |
| | | const [registerRv, { openModal: openRvModal }] = useModal(); |
| | | const [registerWo, { openModal: openWoModal }] = useModal(); |
| | | const [registerItemAdd, { openModal: openItemModal }] = useModal(); |
| | |
| | | const woSchema = ref([] as FormSchema[]); |
| | | const prodSchema = ref([] as FormSchema[]); |
| | | const xxSchema = ref([] as FormSchema[]); |
| | | //表单中插槽渲染按钮打开模态框useModal方法 |
| | | const useModalData = ref({ |
| | | add: useModal(), |
| | | set: useModal(), |
| | | addRot: useModal(), |
| | | setRot: useModal(), |
| | | }); |
| | | //自定义多表单实例 |
| | | const useFormData = ref({ |
| | | forminfo: useForm({ |
| | | labelWidth: 120, |
| | |
| | | cType.value = 'BIZ_MES_WO_Config'; |
| | | dtlSlots.value = [ |
| | | { name: 'woinfo', slots: [], preIcons: {}, title: '工单信息' }, |
| | | { name: 'prodinfo', slots: [], preIcons: {}, title: '产品信息' }, |
| | | { |
| | | name: 'prodinfo', |
| | | slots: ['addRot', 'setRot'], |
| | | preIcons: { addRot: 'search|svg', setRot: 'config|svg' }, |
| | | title: '产品信息', |
| | | }, |
| | | { name: 'xxinfo', slots: ['add'], preIcons: { add: 'search|svg' }, title: 'XXX' }, |
| | | ]; |
| | | woSchema.value = getFormSchema('woinfo'); |
| | |
| | | ITEM_CODE: d.values['val'], |
| | | }); |
| | | } |
| | | /* 弹出选择框选择成功后事件 */ |
| | | /* 各表单内弹出选择框选择成功后事件 */ |
| | | function handleEntSuccess(d, u, item) { |
| | | var values = GetSelectSuccess(d, u, cType.value); |
| | | selectVals.value = values; //保存弹出框选择的结果 |
| | | let _val = {}; |
| | | _val[d.returnFieldName] = values[d.returnFieldName]; |
| | | if (item == 'forminfo') { |
| | | useFormData.value['forminfo'][1].setFieldsValue(_val); |
| | | } |
| | | if (item == 'prodinfo') { |
| | | useFormData.value['prodinfo'][1].setFieldsValue(_val); |
| | | } |
| | | if (item == 'woinfo') { |
| | | useFormData.value['woinfo'][1].setFieldsValue(_val); |
| | | } |
| | | useFormData.value[item][1].setFieldsValue(_val); |
| | | } |
| | | |
| | | /* 弹出选择框 */ |
| | | function handleCustClick(item) { |
| | | // openRvModal(true, {}); |
| | | OpenSelectItem(openEntModal, cType.value, item, [openRvModal], selectVals.value['ID']); |
| | | //打开自定义模态框 |
| | | OpenSelectItem( |
| | | useModalData.value[item][1].openModal, //带入openModal方法 |
| | | cType.value, |
| | | item, |
| | | [openRvModal], |
| | | selectVals.value['ID'], |
| | | ); //[openRvModal], selectVals.value['ID']这是自定义参数,按实际需求 |
| | | } |
| | | function RvItemSuccess(d, u) {} |
| | | </script> |