| | |
| | | * @version: |
| | | * @Date: 2024-06-05 15:46:07 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-28 14:26:49 |
| | | * @LastEditTime: 2024-07-03 19:19:16 |
| | | --> |
| | | <template> |
| | | <BasicModal |
| | |
| | | </BasicModal> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { ref, unref, nextTick, watch } from 'vue'; |
| | | import { ref, unref, nextTick, watch, Ref } from 'vue'; |
| | | import { BasicModal, useModalInner } from '/@/components/Modal'; |
| | | import { FormSchema } from '/@/components/Form/index'; |
| | | import { custFunction } from './data'; |
| | |
| | | import { Layout, LayoutContent, Card } from 'ant-design-vue'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | import { useI18n } from '/@/hooks/web/useI18n'; |
| | | import { initRoute } from '../tigerprojects/system/lowcode/data'; |
| | | import LogicFlow from '@logicflow/core'; |
| | | |
| | | const { t } = useI18n(); |
| | | const { notification, createErrorModal } = useMessage(); |
| | |
| | | /** |
| | | * @description: 弹框确定按钮方法 |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | async function handleSuccess() { |
| | | try { |
| | | var values = {} as any; |
| | |
| | | * @version: |
| | | * @Date: 2024-06-18 15:09:48 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-30 13:07:46 |
| | | * @LastEditTime: 2024-07-03 21:00:23 |
| | | --> |
| | | <template> |
| | | <BasicModal |
| | |
| | | const slotName = ref(''); |
| | | |
| | | const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { |
| | | setModalProps({ confirmLoading: false }); |
| | | setModalProps({ confirmLoading: false, cancelText: '关闭', showOkBtn: false }); |
| | | rotId.value = data?.rotId; |
| | | slotName.value = data?.slotName; |
| | | submitFn.value = data?.submitFn; //'rvSubmit' |
| | |
| | | * @version: |
| | | * @Date: 2024-05-25 00:27:00 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-28 11:40:38 |
| | | * @LastEditTime: 2024-07-03 20:51:05 |
| | | --> |
| | | <template> |
| | | <div> |
| | |
| | | </template> |
| | | </BasicForm> |
| | | <!-- 自定义内容 --> |
| | | <div style="height: 200px" id="lfContainer" v-if="isCustEl[item.name]"></div> |
| | | <!-- <div style="height: 200px" id="lfContainer" v-if="isCustEl[item.name]"></div> --> |
| | | <div class="h-full" style="height: 380px" v-if="isCustEl[item.name]"> |
| | | <FlowChartView :data="routeData" @init="init" /> |
| | | </div> |
| | | </template> |
| | | </CustModal> |
| | | <RouteViewModal @register="registerRv" @success="RvItemSuccess" /> |
| | |
| | | import WoModal from './WoModal.vue'; |
| | | import GeneralModal from '/@/views/components/GeneralModal.vue'; |
| | | import RouteViewModal from '/@/views/components/RouteViewModal.vue'; |
| | | import { FlowChartView } from '/@/components/FlowChart'; |
| | | import CustModal from '/@/views/components/CustModal.vue'; |
| | | import { useDrawer } from '/@/components/Drawer'; |
| | | import { columns, searchFormSchema } from './biz_mes_wo.data'; |
| | |
| | | import { SaveEntity, getListByPage } from '/@/api/tigerapi/system'; |
| | | import { GetSelectSuccess, OpenSelectItem, getFormSchema } from '/@/views/components/data'; |
| | | import LogicFlow from '@logicflow/core'; |
| | | import { getRouteData } from '/@/api/tigerapi/mes/router'; |
| | | import actionRect from '/@/components/FlowChart/src/actionRect'; |
| | | import TestNode from '/@/components/FlowChart/src/TestNode'; |
| | | import CollectNode from '/@/components/FlowChart/src/CollectNode'; |
| | | import AssemblyNode from '/@/components/FlowChart/src/AssemblyNode'; |
| | | import PackingNode from '/@/components/FlowChart/src/PackingNode'; |
| | | import RepairNode from '/@/components/FlowChart/src/RepairNode'; |
| | | import customEdge from '/@/components/FlowChart/src/customEdge'; |
| | | import { BpmnElement } from '@logicflow/extension'; |
| | | import { initRoute } from '../../../system/lowcode/data'; |
| | | |
| | | const { t } = useI18n(); |
| | | const ASteps = Steps; |
| | |
| | | tip: '加载中...', |
| | | }); |
| | | const lfInstance = ref(null) as Ref<LogicFlow | null>; |
| | | const [registerRv, { openModal: openRvModal }] = useModal(); |
| | | const [registerRv, { openModal: openRvModal, closeModal }] = useModal(); |
| | | const [registerWo, { openModal: openWoModal }] = useModal(); |
| | | const [registerItemAdd, { openModal: openItemModal }] = useModal(); |
| | | const [registerCust, { openModal: openCustModal, closeModal }] = useModal(); |
| | | const [registerCust, { openModal: openCustModal }] = useModal(); |
| | | const [registerTable, { getForm, reload }] = useTable({ |
| | | title: '工单信息', |
| | | api: getListByPage, |
| | |
| | | |
| | | onMounted(async () => {}); |
| | | |
| | | const currlf = ref(null) as Ref<LogicFlow | null>; |
| | | /** |
| | | * @description: 工艺路线初始化 |
| | | * @param {*} lf |
| | | * @return {*} |
| | | */ |
| | | async function init(lf, rotId) { |
| | | initRoute(lf, rotId, routeData, currlf); |
| | | } |
| | | |
| | | //新增 |
| | | function addWo() { |
| | | openDrawer(true, { |
| | |
| | | { name: 'rotinfo', slots: ['add'], preIcons: { add: 'search|svg' }, title: '工艺信息' }, |
| | | ]; |
| | | // rotSchema.value = getFormSchema('rotinfo'); |
| | | //工艺路线渲染图初始化 |
| | | if (lfInstance.value != null) { |
| | | routeData.value = { |
| | | nodes: [], |
| | | edges: [], |
| | | }; |
| | | const lf = unref(lfInstance)!; |
| | | lf.render({}); |
| | | } |
| | | routeData.value = { |
| | | nodes: [], |
| | | edges: [], |
| | | }; |
| | | initRoute(currlf, record.ROUTE_CODE, routeData, currlf); |
| | | selectVals.value['ROUTE_CODE'] = record.ROUTE_CODE; |
| | | openCustModal(true, { |
| | | isUpdate: true, |
| | | ctype: cType, |
| | | title: '工艺配置', |
| | | width: '1000px', |
| | | width: '1200px', |
| | | formEl: useFormData.value, //如果是多个表单,增加多个插槽 |
| | | formElName: ['woinfo', 'prodinfo', 'rotinfo'], //表单插槽名称,支持多个表单 |
| | | RowKey: '', |
| | |
| | | values: record, //表单记录 |
| | | }); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description: 下发 |
| | | * @param {*} record |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function handleRelease(record: Recordable) { |
| | | if (record.STATUS == 2) { |
| | | createErrorModal({ |
| | |
| | | values: record, //表单记录 |
| | | }); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description: 取消下发 |
| | | * @param {*} record |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function handleUnRelease(record: Recordable) { |
| | | if (record.STATUS == 0) { |
| | | createErrorModal({ |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description: 删除 |
| | | * @param {*} record |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function handleDelete(record: Recordable) { |
| | | DeleteMesWo(record.ID).then((action) => { |
| | | if (action.IsSuccessed) { |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description: 弹出框确定返回 |
| | | * @param {*} d |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function custSuccess(d) { |
| | | reload(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description: 点击打开物料列表框 |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function handleSelectItem() { |
| | | openItemModal(true, { |
| | | title: '物料列表', |
| | |
| | | ], |
| | | tableName: 'BAS_ITEM', |
| | | rowKey: 'ITEM_CODE', |
| | | searchInfo: {TABLE_NAME: 'BAS_ITEM'} |
| | | searchInfo: { TABLE_NAME: 'BAS_ITEM' }, |
| | | }); |
| | | } |
| | | |
| | |
| | | * @param {*} d |
| | | * @param {*} u |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function handleItemSuccess(d, u) { |
| | | getForm().setFieldsValue({ |
| | | ITEM_CODE: d.values['val'], |
| | | }); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description: 各表单内弹出选择框选择成功后方法 |
| | | * @param {*} d |
| | | * @param {*} u |
| | | * @param {*} item |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function handleEntSuccess(d, u, item) { |
| | | var values = GetSelectSuccess(d, u, cType.value); |
| | | selectVals.value = values; //保存弹出框选择的结果 |
| | |
| | | nodes: [], |
| | | edges: [], |
| | | }; |
| | | init(selectVals.value['ROUTE_CODE']); |
| | | |
| | | init(currlf, selectVals.value['ROUTE_CODE']); |
| | | const { transformModel, width, height } = unref(currlf).graphModel; |
| | | transformModel.focusOn(300, 200, width, height); |
| | | } |
| | | } |
| | | |
| | |
| | | * @description: 弹出选择框 |
| | | * @param {*} item |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function handleCustClick(item) { |
| | | //打开自定义模态框 |
| | | OpenSelectItem( |
| | |
| | | selectVals.value['ROUTE_CODE'], |
| | | ); //[openRvModal], selectVals.value['ID']这是自定义参数,按实际需求 |
| | | } |
| | | function RvItemSuccess(d, u) {} |
| | | |
| | | async function init(rotId) { |
| | | LogicFlow.use(BpmnElement); |
| | | lfInstance.value = new LogicFlow({ |
| | | container: document.querySelector('#lfContainer'), |
| | | edgeGenerator: (sourceNode) => { |
| | | // console.log('a'); |
| | | // 起始节点类型 rect 时使用 自定义的边 custom-edge |
| | | if (sourceNode.properties.isReturn) return 'custom-edge'; |
| | | // if (sourceNode.type === 'rect') return 'custom-edge'; |
| | | // return 'custom-edge'; |
| | | }, |
| | | }); |
| | | const lf = unref(lfInstance)!; |
| | | // lf?.setDefaultEdgeType('line'); |
| | | lf.register(customEdge); |
| | | lf.register(actionRect); |
| | | lf.register(TestNode); |
| | | lf.register(CollectNode); |
| | | lf.register(AssemblyNode); |
| | | lf.register(PackingNode); |
| | | lf.register(RepairNode); |
| | | lf.render({}); |
| | | //通过工艺路线ID获取图形数据,并渲染 |
| | | var _data = await getRouteData(rotId); |
| | | console.log('组件已挂载', _data); |
| | | //工艺路线全信息,包括Node、Edge和Act |
| | | // routeConfig.routeData = _data.Data; |
| | | if (_data.Data != null) { |
| | | //工艺路线主信息 |
| | | var currRoute = _data.Data.route; |
| | | _data.Data.nodes.forEach((n) => { |
| | | n.node.properties = JSON.parse(n.node.properties); |
| | | routeData.value.nodes.push(n.node); |
| | | }); |
| | | console.log('111', routeData.value); |
| | | _data.Data.edges.forEach((e) => { |
| | | e.edge.properties = JSON.parse(e.edge.properties); |
| | | routeData.value.edges.push(e.edge); |
| | | }); |
| | | _data.Data.acts.forEach((act) => { |
| | | act.node.properties = JSON.parse(act.node.properties); |
| | | routeData.value.nodes.push(act.node); |
| | | }); |
| | | console.log('init', unref(lf).getGraphData(), JSON.parse(JSON.stringify(routeData.value))); |
| | | lf.render(routeData.value); |
| | | // lf.graphModel.resize(500, 400); |
| | | lf.graphModel.fitView(); |
| | | lf.graphModel.translateCenter(); |
| | | |
| | | function RvItemSuccess(d, u) { |
| | | closeModal(); |
| | | } |
| | | } |
| | | </script> |
| | |
| | | * @version: |
| | | * @Date: 2024-06-20 12:13:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-07-01 16:49:22 |
| | | * @LastEditTime: 2024-07-03 20:31:07 |
| | | --> |
| | | <template> |
| | | <Card :title="GetTitle(props.configType)['navTitle']"> |
| | | <CardGrid |
| | | v-for="item in GetNavItems(props.configType)" |
| | | :key="item.title" |
| | | @click="navChangeItem(item.action, useModalData[item.action][1].openModal)" |
| | | @click=" |
| | | navChangeItem(item.action, useModalData[item.action][1].openModal, openRvModal, selectedNodes) |
| | | " |
| | | > |
| | | <span class="flex flex-col items-center"> |
| | | <Icon :icon="item.icon" :color="item.color" size="20" /> |
| | |
| | | |
| | | const ACard = Card; |
| | | const objParams = inject('objParams') as Ref<any>; |
| | | const selectedNodes = inject('selectedNodes') as Ref<any>; |
| | | const props = defineProps({ |
| | | configType: { type: String }, |
| | | nodes: { type: Array as PropType<any[]> }, |
| | |
| | | async function handleSuccess(d, u, item, objParams, refreshPage) { |
| | | GetSelectSuccess(d, u, item, objParams, refreshPage); |
| | | } |
| | | |
| | | function RvItemSuccess(d, u) {} |
| | | </script> |
| | |
| | | * @version: |
| | | * @Date: 2024-06-18 23:30:30 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-29 06:16:43 |
| | | * @LastEditTime: 2024-07-03 19:21:09 |
| | | --> |
| | | <template> |
| | | <PageWrapper |
| | |
| | | <template #[item] v-for="item in otherSlots" :key="item"> |
| | | <!-- 自定义内容 --> |
| | | <div class="h-full" style="height: 400px"> |
| | | <FlowChartView :data="routeData" @init="init" |
| | | /></div> |
| | | <FlowChartView :data="routeData" @init="init" /> |
| | | </div> |
| | | </template> |
| | | </CarGridNav> |
| | | <Config v-if="showConfig" :configType="configType" @success="configSuccess" /> |
| | |
| | | import { isNullOrUnDef } from '/@/utils/is'; |
| | | import { useGo } from '/@/hooks/web/usePage'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | import { getRouteData } from '/@/api/tigerapi/mes/router'; |
| | | import LogicFlow from '@logicflow/core'; |
| | | |
| | | defineOptions({ name: 'DeptManagement' }); |
| | |
| | | const custImport = ref<any>(null); |
| | | const [registerCust, { openModal: openCustomModal, closeModal }] = useModal(); |
| | | provide<Ref<any>>('objParams', objParams); |
| | | provide<Ref<any>>('selectedNodes', selectedNodes); |
| | | provide<Ref<any>>('selectedNodes', nodes); |
| | | setTitle(objParams.value.Title); //设置标签页标题 |
| | | |
| | | /** |
| | |
| | | * @version: |
| | | * @Date: 2024-06-02 17:52:35 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-07-02 19:40:27 |
| | | * @LastEditTime: 2024-07-03 20:19:37 |
| | | */ |
| | | |
| | | import { ActionItem, FormSchema } from '/@/components/Table'; |
| | |
| | | routeData.value.nodes.push(act.node); |
| | | }); |
| | | unref(lf).render(routeData.value); |
| | | // lf.graphModel.translateCenter(); |
| | | // lf.graphModel.fitView(); |
| | | } |
| | | } |
| | | |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-29 02:57:03 |
| | | * @LastEditTime: 2024-07-03 20:40:54 |
| | | */ |
| | | |
| | | import { Ref, h, ref, render, unref } from 'vue'; |
| | |
| | | */ |
| | | navChangeItem: (action: any, ...args) => { |
| | | switch (action) { |
| | | case 'editRoute': |
| | | break; |
| | | case 'addRoute': |
| | | args[0](true, { |
| | | title: '工艺路线列表', |
| | |
| | | args[0](true, { |
| | | title: '请完成以下步骤', |
| | | }); |
| | | break; |
| | | case 'editRoute': |
| | | args[1](true, { rotId: args[2][0].id, slotName: '' }); |
| | | break; |
| | | } |
| | | }, |
| | |
| | | // newElement.textContent = 'New Element =>'+type; |
| | | // newElement.style.height = '250px'; |
| | | newElement.id = 'lfContainer'; |
| | | newElement.className = "h-full"; |
| | | newElement.className = 'h-full'; |
| | | // newElement.style.color = 'blue'; |
| | | // newElement.style.fontSize = '16px'; |
| | | return newElement; |
| | |
| | | */ |
| | | CustFunc: (type: string | undefined, ...args) => { |
| | | if (type == 'Route') { |
| | | initRoute(args[0], args[1]); |
| | | // initRoute(args[0], args[1]); |
| | | } |
| | | }, |
| | | }; |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-07-02 19:43:08 |
| | | * @LastEditTime: 2024-07-03 19:00:59 |
| | | */ |
| | | |
| | | import { Ref, h, unref } from 'vue'; |
| | | import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system'; |
| | | import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table'; |
| | | import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; |
| | | import { buildUUID } from '/@/utils/uuid'; |
| | | import { useUserStore } from '/@/store/modules/user'; |
| | | import { formatToDateTime } from '/@/utils/dateUtil'; |
| | | import { Tag } from 'ant-design-vue'; |
| | | import { useLocale } from '/@/locales/useLocale'; |
| | | import { useDrawer } from '/@/components/Drawer'; |
| | |
| | | if (item['ID'] == d.ID) |
| | | return { |
| | | ...item, |
| | | INS_CODE: d.INS_CODE, |
| | | INS_NAME: d.INS_NAME, |
| | | STD_CODE: d.STD_CODE, |
| | | STD_NAME: d.STD_NAME, |
| | | STD_TYPE: d.STD_TYPE, |
| | | CTGY_CODE: d.CTGY_CODE, |
| | | IS_NECESSARY: d.IS_NECESSARY, |
| | | IS_JUDGE: d.IS_JUDGE, |
| | | INS_TOOL: d.INS_TOOL, |
| | | QNTV_UNIT: d.QNTV_UNIT, |
| | | QNTV_TIMES: d.QNTV_TIMES, |
| | | QNTV_DEVIATION: d.QNTV_DEVIATION, |
| | | QNTV_UPPER: d.QNTV_UPPER, |
| | | QNTV_LOWER: d.QNTV_LOWER, |
| | | QLTV_LIST: d.QLTV_LIST, |
| | | REMARK: d.REMARK, |
| | | }; |
| | | return item; |
| | |
| | | } |
| | | return data; |
| | | }, |
| | | /** |
| | | * @description: 一些其他的字段值,一般是增删改是带入的关键字段值 |
| | | * @param {string} val |
| | | * @param {string} id |
| | | * @return {*} |
| | | */ |
| | | KeyFieldValues: (val: string, id: string) => { |
| | | return { TECH_STD: val }; |
| | | return { STD_CODE: val }; |
| | | }, |
| | | /** |
| | | * @description: 获取标题信息 |
| | |
| | | * @return {*} |
| | | */ |
| | | function Del(args: Fn[], params: {}) { |
| | | const name = params['name']; |
| | | if (!isNullOrEmpty(params['data'])) { |
| | | var _data = params['data'].value.filter((item) => item['ID'] != params['record']['ID']); |
| | | params['data'].value = _data; |
| | | var _data = params['data'].value[name].filter((item) => item['ID'] != params['record']['ID']); |
| | | params['data'].value[name] = _data; |
| | | args[6]({ |
| | | dataSource: [], |
| | | }); |
| | | args[6]({ |
| | | dataSource: params['data'], |
| | | dataSource: params['data'].value[name], |
| | | }); |
| | | args[1](); |
| | | } else { |
| | |
| | | }, |
| | | }, |
| | | { |
| | | title: '检验标准编码', |
| | | title: '技术要求', |
| | | dataIndex: 'TECH_STD', |
| | | }, |
| | | { |
| | | title: '检验标准编码', |
| | | dataIndex: 'STD_CODE', |
| | | }, |
| | | { |
| | | title: '是否必检', |
| | |
| | | }, |
| | | { |
| | | label: '检验标准', |
| | | field: 'TECH_STD', |
| | | field: 'STD_CODE', |
| | | component: 'ApiSelect', |
| | | colProps: { |
| | | span: 24, |
| | |
| | | }, |
| | | }, |
| | | { |
| | | label: '是否必检', |
| | | field: 'IS_NECESSARY', |
| | | component: 'Select', |
| | | required: true, |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: '是', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: '否', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | label: '是否判定结果', |
| | | field: 'IS_JUDGE', |
| | | component: 'Select', |
| | | required: true, |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: '是', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: '否', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | label: '技术要求', |
| | | field: 'TECH_STD', |
| | | component: 'Input', |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | }, |
| | | { |
| | | label: '备注', |
| | | field: 'REMARK', |
| | | component: 'Input', |
| | |
| | | }; |
| | | // 将对象转换为JSON字符串并保存到sessionStorage |
| | | sessionStorage.removeItem(`${param.SessionName}_params`); |
| | | sessionStorage.setItem(`${param.SessionName}_update_params`, encodeURI(JSON.stringify(param))); |
| | | sessionStorage.setItem(`${param.SessionName}_params`, encodeURI(JSON.stringify(param))); |
| | | args[5](`/QMS_INS_ITEM/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`); |
| | | } |
| | | |
| | |
| | | /** |
| | | * @description: 挂载组件完成时 |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | onMounted(async () => { |
| | | for (const i in drawers.value) { |
| | | let sqlcmd = ' 1 =1 '; |
| | |
| | | * @param {*} index |
| | | * @param {*} item |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function handleCreate(index, item) { |
| | | validate().then((res) => { |
| | | const Keys = Object.getOwnPropertyNames(useFormData.value); |
| | | let i; |
| | | for (i = 0; i < Keys.length; i++) { |
| | | keyFieldValues.value[objParams.value['pCode']] = objParams.value['IsID'] |
| | | ? res[Keys[i]]['ID'] |
| | | : res[Keys[i]][objParams.value['pCode']] == '0' || |
| | | isNullOrUnDef(res[Keys[i]][objParams.value['pCode']]) |
| | | ? res[Keys[i]][objParams.value['mCode']] |
| | | : res[Keys[i]][objParams.value['pCode']]; |
| | | 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, |
| | | }); |
| | | } |
| | | useDrawers[index][item][1].openDrawer(true, { |
| | | isUpdate: false, |
| | | ifSave: true, |
| | | entityName: props.entityName, |
| | | formJson: GetCrudForm(item, data), //获取增删改表单字段 |
| | | crudColSlots: props.crudColSlots, |
| | | keyFieldValues: keyFieldValues.value, |
| | | }); |
| | | }); |
| | | } |
| | | |
| | |
| | | * @param {*} u |
| | | * @param {*} item 页面上循环抽屉列表传入的实体名字,作为各表格相关方法的key,从而调用各表格相关的方法,如:useTables[item][1].setProps |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function handleSuccess(d, u, item) { |
| | | if (!isNullOrUnDef(custImport.value)) { |
| | | /* 自定义编辑方法,根据实体名去调用 */ |