From abbc201b41a1a25a19ccf7cff8df633dadcf5d88 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 05 三月 2025 16:52:39 +0800 Subject: [PATCH] 优化 --- src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts | 1365 +++++++++++++++++------------------------------------------ 1 files changed, 398 insertions(+), 967 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts index c9242a1..82744a1 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts @@ -4,310 +4,168 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-18 15:43:37 + * @LastEditTime: 2024-10-23 20:48:14 */ import { Ref, h, ref, render, unref } from 'vue'; -import { GetRoutePTree, RouteToCust, RouteToProd } from '/@/api/tigerapi/mes/router'; import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system'; import { useLocale } from '/@/locales/useLocale'; -import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; import { useI18n } from '/@/hooks/web/useI18n'; -import { NavItem } from '/@/api/tigerapi/model/basModel'; import { useMessage } from '/@/hooks/web/useMessage'; import { useModal } from '/@/components/Modal'; -import { FormSchema } from '/@/components/Table'; +import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table'; import { useUserStore } from '/@/store/modules/user'; import { buildUUID } from '/@/utils/uuid'; import { SaveWoBatchInput } from '/@/api/tigerapi/model/mesModel'; import { CustModalParams, FunctionType } from '/@/api/tigerapi/model/systemModel'; import { SaveMesBatchWo } from '/@/api/tigerapi/mes/wo'; import { useForm } from '/@/components/Form/index'; -import { uploadApi } from '/@/api/sys/upload'; +import { cloneDeep } from 'lodash-es'; +import { useProdRouteStore } from '/@/store/modules/prodRoute'; +import { Tag, Tooltip } from 'ant-design-vue'; const { t } = useI18n(); const { createErrorModal } = useMessage(); const { getLocale } = useLocale(); function _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 ActionColumn: BasicColumn = { + width: 180, + title: '鎿嶄綔', + dataIndex: 'action', + slots: { customRender: 'action' }, + fixed: 'right', + }; /** * @description: 宸ュ崟绠$悊鐨勪竴浜涜嚜瀹氫箟鏂规硶 * @return {*} */ const methods = { /** - * @description: 鑾峰彇鏍戝舰鍥炬爣 - * @param {Recordable} params + * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateIcon: (params: Recordable<any>) => { - let icon = ''; - switch (params['type']) { - case 'Product': - icon = 'similar-product|svg'; + CreateAction: (type: string, fnName: string) => { + let action = {} as any; + switch (fnName) { + case 'ImportExcel': + action = { + action: 'importModal', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | modal(鎵撳紑妯℃�佺獥鍙�) | importModal(鎵撳紑瀵煎叆妯℃�佺獥鍙�) | ToPrint(鎵撳嵃鍔熻兘) + params: { + tmpHeader: ['宸ュ崟鍙�', '璁″垝鏃ユ湡', '璁″垝鏁伴噺'] /* 涓嬭浇妯℃澘鐨勬爣棰樺瓧娈� */, + filename: '宸ュ崟璁″垝妯℃澘.xlsx' /* 涓嬭浇妯℃澘鐨勬枃浠跺悕 */, + entityName: 'BIZ_MES_WO_BATCH' /* 瀵煎叆琛ㄧ殑琛ㄥ悕 */, + checkJson: ['ORDER_NO', 'PLAN_DATE', 'PLAN_QTY'] /* 瀵煎叆琛ㄩ渶瑕佹鏌ョ殑瀛楁鍒楄〃 */, + where: ['ORDER_NO'] /* 瀵煎叆琛ㄩ渶瑕佹煡璇㈢殑瀛楁鍒楄〃 */, + typeFullName: + 'Tiger.IBusiness.MES.IImportWoPlan,Tiger.IBusiness.MES' /* 瀵煎叆鐨勬柟娉曞叏鍚嶏紝閫氱敤瀵煎叆鐢ㄨ繖涓細Tiger.IBusiness.ICommonImportExcel,Tiger.IBusiness */, + baseColumns: [ + /* 瀵煎叆鏃剁晫闈㈡樉绀烘暟鎹殑瀛楁 */ + { + title: '宸ュ崟鍙�', + dataIndex: 'ORDER_NO', + ifShow: true, + width: 180, + }, + // { + // title: '宸ュ崟鎵规鍙�', + // dataIndex: 'BATCH_NO', + // ifShow: true, + // width: 180, + // // customRender: ({ record }) => { + // // record.BATCH_NO = record.ORDER_NO+'-01' + // // return record.BATCH_NO + // // }, + // }, + { + title: '璁″垝鏃ユ湡', + dataIndex: 'PLAN_DATE', + ifShow: true, + width: 180, + }, + { + title: '璁″垝鏁伴噺', + dataIndex: 'PLAN_QTY', + ifShow: true, + width: 100, + }, + { + title: '澶勭悊鏂瑰紡', + dataIndex: 'VALIDATION_TYPE', + ifShow: true, + width: 100, + customRender: ({ record }) => { + const status = record.VALIDATION_TYPE; + var text = ''; + var color = 'green'; + if (status == '寮傚父') { + color = 'red'; + text = status; + } else if (status == '鏇存柊') { + color = 'orange'; + text = status; + } else { + text = status; + } + return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text)); + }, + }, + { + title: '澶勭悊鎻愮ず', + dataIndex: 'VALIDATION_RESULT', + ifShow: true, + width: 280, + customRender: ({ record }) => { + const status = record.VALIDATION_TYPE; + var text = record.VALIDATION_RESULT; + var color = 'green'; + if (status == '寮傚父') { + color = 'red'; + } else if (status == '鏇存柊') { + color = 'orange'; + } + return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text)); + }, + }, + ], + }, + }; break; - case 'Route': - icon = 'route|svg'; - break; - case 'Node': - icon = 'node|svg'; - break; - case 'Action': - icon = 'rot_action|svg'; - break; - case 'Customer': - icon = 'customer|svg'; + case 'ToPrint': + action = { + action: 'ToPrint', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | modal(鎵撳紑妯℃�佺獥鍙�) | importModal(鎵撳紑瀵煎叆妯℃�佺獥鍙�) | ToPrint(鎵撳嵃鍔熻兘) + }; + break; + default: + action = { + action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | modal(鎵撳紑妯℃�佺獥鍙�) | importModal(鎵撳紑瀵煎叆妯℃�佺獥鍙�) | ToPrint(鎵撳嵃鍔熻兘) + }; break; } - return icon; + return action; }, /** - * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl + * @description: 鎿嶄綔瀛楁鑷畾涔夋寜閽� * @return {*} */ - GetHomeUrl: () => { - return `/V_BAS_PROD/LC/${encodeURI(JSON.stringify({ ID: 'V_BAS_PROD', colSlots: [], crudColSlots: [] }))}`; - }, - /** - * @description: 鑾峰彇鏍戝舰鏁版嵁 - * @param {string} type - * @return {*} - */ - fetchTreeData: async (type: string, itemCode: string) => { - let data = { title: '', treeData: [] as any[], fieldNames: {} }; - let prodTreeData = await GetRoutePTree(itemCode); - // let uniqueArr = prodTreeData.reduce((acc, current) => { - // if (!acc.some((x) => x.pid == current.pid && x.id == current.id && x.seq == current.seq && x.type == current.type)) { - // acc.push(current); - // } - // return acc; - // }, [] as V_MES_ROUTE_PTREE[]); - data.treeData = convertToTree(prodTreeData, 'pid', 'tid', 'root'); - data.title = '宸ヨ壓璺嚎'; - data.fieldNames = { key: 'tid', title: 'name' }; + ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { + data.map((x) => { + if (x.name == 'goDetail') { + x.onClick = goDetail.bind(null, args[5], params); + x.tooltip = '宸ュ崟鎵规'; + } + if (x.name == 'handleConfig') { + x.onClick = handleConfig.bind(null, args, params); + x.tooltip = '閰嶇疆宸ヨ壓'; + } + if (x.name == 'handleRelease') { + x.onClick = handleRelease.bind(null, args, params); + x.tooltip = '涓嬪彂'; + } + if (x.name == 'ToPrint') { + x.tooltip = '鎵撳嵃娴佺▼鍗�'; + } + }); return data; - }, - /** - * @description: 鑾峰彇閰嶇疆椤硅〃鍗曞瓧娈碉紝鏍规嵁鏍戝舰鑺傜偣type涓嶅悓鑰屼笉鍚� - * @param {string} type - * @return {*} - */ - GetCrudForm: (type: string) => { - let form: FormSchema[] = []; - switch (type) { - case 'Action': - form = actionFormShema; - break; - case 'Node': - form = nodeFormShema; - break; - } - return form; - }, - /** - * @description: 鑾峰彇琛ㄥ崟涓殑瀛楁鎻掓Ы鍒楄〃 - * @return {*} - */ - GetCrudColSlots: () => { - return ['scanadd', 'assyadd', 'testadd', 'auditadd', 'printadd', 'pkgadd']; - }, - /** - * @description: 鍒囨崲鑺傜偣鏃朵簨浠舵柟娉� - * @return {*} - */ - nodeChange: (params: { - resetFields: any; - setFieldsValue: any; - objParams: Ref<any>; - selectedNodes: Ref<any[]>; - }) => { - let sqlcmd = ' 1=1 '; - if (!isNullOrEmpty(params['objParams'].value['CODE'])) { - sqlcmd += `And PROD_CODE = '${params['objParams'].value['CODE']}'`; - } - if (!isNullOrEmpty(params['selectedNodes'].value[0].cust)) { - sqlcmd += `And CUST_CODE = '${params['selectedNodes'].value[0].cust}'`; - } - if (!isNullOrEmpty(params['selectedNodes'].value[0].id)) { - sqlcmd += - params['selectedNodes'].value[0].type == 'Action' - ? `And ACT_ID = '${params['selectedNodes'].value[0].id}'` - : `And NODE_ID = '${params['selectedNodes'].value[0].id}'`; - } - getEntity({ - sqlcmd: sqlcmd, - entityName: - params['selectedNodes'].value[0].type == 'Action' ? 'MES_PROD_ACTION' : 'MES_PROD_OPER', - order: '', - }).then((res) => { - params['resetFields'](); - if (params['selectedNodes'].value[0].type == 'Action') { - params['setFieldsValue']({ - ID: res.Data.Items[0].ID, - ACT_ID: res.Data.Items[0].ACT_ID, - ROT_ID: res.Data.Items[0].ROT_ID, - NODE_ID: res.Data.Items[0].NODE_ID, - IS_ACTIVE: res.Data.Items[0].IS_ACTIVE, - ITEM_CODE: res.Data.Items[0].ITEM_CODE, - RULE_CODE: res.Data.Items[0].RULE_CODE, - TEST_CODE: res.Data.Items[0].TEST_CODE, - SAPL_CODE: res.Data.Items[0].SAPL_CODE, - LABEL_CODE: res.Data.Items[0].LABEL_CODE, - PKG_CODE: res.Data.Items[0].PKG_CODE, - ACT_CODE: res.Data.Items[0].ACT_CODE, - REMARK: res.Data.Items[0].REMARK, - PROD_CODE: params['objParams'].value['CODE'], - ACT_TYPE: res.Data.Items[0].ACT_TYPE, - CUST_CODE: params['selectedNodes'].value[0].cust, - }); - } - if (params['selectedNodes'].value[0].type == 'Node') { - params['setFieldsValue']({ - ID: res.Data.Items[0].ID, - OPER_CODE: res.Data.Items[0].OPER_CODE, - ROT_ID: res.Data.Items[0].ROT_ID, - NODE_ID: res.Data.Items[0].NODE_ID, - NODE_NAME: res.Data.Items[0].NODE_NAME, - IS_ACTIVE: res.Data.Items[0].IS_ACTIVE, - IS_CALC_FPY: res.Data.Items[0].IS_CALC_FPY, - CAN_SKIP: res.Data.Items[0].CAN_SKIP, - IS_INPUT: res.Data.Items[0].IS_INPUT, - IS_OUTPUT: res.Data.Items[0].IS_OUTPUT, - REMARK: res.Data.Items[0].REMARK, - PROD_CODE: params['objParams'].value['CODE'], - CUST_CODE: params['selectedNodes'].value[0].cust, - }); - } - }); - }, - /** - * @description: 鑷畾涔夋彁浜ゆ柟娉� - * @return {*} - */ - SubmitFunc: (values: Recordable<any>, type: string, emit) => { - let entityName = ''; - switch (type) { - case 'Action': - entityName = 'MES_PROD_ACTION'; - break; - case 'Node': - entityName = 'MES_PROD_OPER'; - break; - } - SaveEntity(values, true, entityName).then((action) => { - if (action.IsSuccessed) { - emit('success'); - } - }); - }, - /** - * @description: 寮瑰嚭閫夋嫨妗嗘墦寮�鏂规硶 - * @param {Fn} openItemModal - * @return {*} - */ - OpenSelectItem: (openItemModal: Fn, ...args) => { - let config = {}; - switch (args[0]) { - 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); - }, - /** - * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛杩斿洖 - * @param {*} d - * @param {*} u - * @return {*} - */ - GetSelectSuccess: (d, u, ...args) => { - let value = {}; - switch (args[0]) { - 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'], - }; - case 'addRoute': - if (isNullOrEmpty(args[1]['CODE'])) { - createErrorModal({ - title: t('sys.api.errorTip'), - content: '浜у搧涓虹┖锛屼笉鑳芥坊鍔犲伐鑹鸿矾绾匡紝璇风偣鍑诲乏渚ч�夋嫨浜у搧', - }); - return; - } - let codes = d.values.id.split(','); - var i; - for (i = 0; i < codes.length; i++) { - if (d.which == 'addRoute') { - RouteToProd({ rotId: codes[i], prodCode: args[1]['CODE'] }); - } - } - - args[2](); - break; - case 'addCustomer': - if (isNullOrEmpty(args[1]['CODE'])) { - createErrorModal({ - title: t('sys.api.errorTip'), - content: '浜у搧涓虹┖锛屼笉鑳芥坊鍔犲伐鑹鸿矾绾匡紝璇风偣鍑诲乏渚ч�夋嫨浜у搧', - }); - return; - } - let rotIds = d.ROT_ID.split(','); - var i; - for (i = 0; i < rotIds.length; i++) { - RouteToCust({ rotId: rotIds[i], prodCode: args[1]['CODE'], custCode: d.CUST_CODE }); - } - - args[2](); - break; - } - return value; - }, - /** - * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃 - * @return {*} - */ - GetUseModals: () => { - return { - addRoute: useModal(), - addCustomer: useModal(), - editRoute: useModal(), - }; }, GetUseForm: () => { return { @@ -335,95 +193,129 @@ }, showActionButtonGroup: false, }), + tmpinfo: useForm({ + labelWidth: 120, + schemas: prodCfgformSchema, + actionColOptions: { + span: 24, + }, + showActionButtonGroup: false, + }), }; }, /** - * @description: 鑾峰彇鏍囬淇℃伅 + * @description: 鑷畾涔夋柟娉� * @param {string} type + * @param {array} args * @return {*} */ - GetTitle: (type: string) => { - return { - configTitle: type == 'Action' ? '琛屼负閰嶇疆' : '宸ュ簭閰嶇疆', - navTitle: type == 'Product' ? '娣诲姞宸ヨ壓璺嚎' : '宸ヨ壓璺嚎缁存姢', - }; + CustFunc: (param: CustModalParams) => { + switch (param.cType) { + case 'BIZ_MES_WO': + case 'BIZ_MES_WO_Config': + return getWoFns[param.FnName](param) as Promise<any>; + // break; + default: + return new Promise((resolve, reject) => { + try { + (e) => {}; + resolve(true); + } catch { + reject(false); + } finally { + // args[0][0]({ confirmLoading: false }); + } + }); + // break; + } }, /** - * @description: 鏍规嵁閫変腑鐨勬爲鑺傜偣杩斿洖涓婚〉闈紝鑷畾涔夋柟娉曪紝杩欓噷鏄垽鏂鍒囨崲鍝釜缁勪欢 - * @param {Ref} selectedNodes + * @description: 鑾峰彇澶氳〃鍗曟彃妲藉垪琛� * @return {*} */ - SelectNode: (selectedNodes: Ref<any[]>) => { - let result = { - showConfig: false, - showNav: false, - type: selectedNodes.value[0].type, - nodes: selectedNodes.value, - }; - if (isNullOrUnDef(selectedNodes)) { - return result; - } - if (selectedNodes.value[0].type == 'Product' || selectedNodes.value[0].type == 'Route') { - result.showNav = true; - result.showConfig = false; - } - if (selectedNodes.value[0].type == 'Action' || selectedNodes.value[0].type == 'Node') { - result.showNav = false; - result.showConfig = true; + GetDtlSlots: (type: string) => { + let result = [] as any[]; + switch (type) { + case 'BIZ_MES_WO_Config': + result = [ + { name: 'woinfo', slots: [], preIcons: {}, title: '宸ュ崟淇℃伅' }, + { + name: 'prodinfo', + slots: ['addRot', 'setRot'], + preIcons: { addRot: 'search|svg', setRot: 'config|svg' }, + title: '浜у搧淇℃伅', + }, + { name: 'rotinfo', slots: ['add'], preIcons: { add: 'search|svg' }, title: '宸ヨ壓淇℃伅' }, + ]; + break; + case 'BIZ_MES_WO': + result = [ + { + name: 'forminfo', + slots: ['add', 'set'], + preIcons: { add: 'search|svg', set: 'config|svg' }, //濡傛灉鏄涓〃鍗曪紝澧炲姞澶氫釜鎻掓Ы銆俿lots鏄脊鍑烘鎸夐挳鐨勬彃妲斤紝preIcons鏄彃妲藉搴旂殑鎸夐挳鍥炬爣 + title: '涓嬪彂閰嶇疆', + }, + ]; + break; } return result; }, /** - * @description: 鑾峰彇瀵艰埅椤� + * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃 * @return {*} */ - GetNavItems: (type: string) => { - let item: NavItem[] = []; - switch (type) { - case 'Product': - item = [ - { - title: '娣诲姞浜у搧宸ヨ壓璺嚎', - icon: 'add_green|svg', - color: '#1fdaca', - url: '/addRoute', - action: 'addRoute', - isStep: false, - }, - { - title: '娣诲姞瀹㈡埛宸ヨ壓璺嚎', - icon: 'add_customer|svg', - color: '#bf0c2c', - url: '/addCustomer', - action: 'addCustomer', - isStep: true, - }, - ]; - break; - case 'Route': - item = [ - { - title: '缂栬緫宸ヨ壓璺嚎', - icon: 'clarity:note-edit-line', - color: '#1fdaca', - url: '/editRoute', - action: 'editRoute', - isStep: false, - }, - ]; - break; - } - return item; + GetUseModals: () => { + return { + useModalData: { + add: useModal(), + set: useModal(), + addRot: useModal(), + setRot: useModal(), + }, + }; }, /** - * @description: 瀵艰埅椤甸潰鍒囨崲鎸夐挳鏃惰皟鐢ㄦ柟娉� - * @param {any} action + * @description: 鑾峰彇鑷畾涔夋暟鎹� * @return {*} */ - navChangeItem: (action: any, ...args) => { - switch (action) { - case 'addRoute': - args[0](true, { + GetCustData: () => { + return { + isCustEl: { + forminfo: false, + woinfo: false, + prodinfo: false, + rotinfo: true, + }, + }; + }, + /** + * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛杩斿洖鏂规硶 + * @param {*} d + * @param {*} u + * @return {*} + */ + GetSelectSuccess: (d, u) => { + return { + ROUTE_CODE: d.values['val'], + // ID: d.values['id'], + ROT_ID: d.values['id'], + }; + }, + /** + * @description: 鎵撳紑寮瑰嚭閫夋嫨妗� + * @param {Fn} openItemModal + * @param {array} args + * @return {*} + */ + OpenSelectItem: (openItemModal: Fn, ...args) => { + const slotName = args[0]; + const openRvModal = args[1]; + const selectVals = args[2]; + switch (slotName) { + case 'addRot': + case 'add': + openItemModal(true, { title: '宸ヨ壓璺嚎鍒楄〃', schemas: [ { @@ -453,91 +345,26 @@ ], tableName: 'MES_ROUTE', rowKey: 'ROT_CODE', - returnFieldName: 'ROUTE_CODE', //杩斿洖鍊艰璧嬪�肩殑瀛楁鍚嶇О + returnFieldName: ['ROUTE_CODE', 'ROT_ID'], //杩斿洖鍊艰璧嬪�肩殑瀛楁鍚嶇О searchInfo: { TABLE_NAME: 'MES_ROUTE' }, - which: action, }); break; - case 'addCustomer': - args[0](true, { - title: '璇峰畬鎴愪互涓嬫楠�', - }); + case 'set': + openRvModal(true, { rotId: selectVals.value['ROUTE_CODE'], slotName: slotName }); break; - case 'editRoute': - args[1](true, { rotId: args[2][0].id, slotName: '' }); + case 'setRot': break; } }, /** - * @description: 鑾峰彇鍗$墖鍐呴厤缃垪琛紝浠ュ惊鐜樉绀哄涓崱鐗囧苟閰嶇疆澶氫釜鎻掓Ы - * @return {*} - */ - GetBaseCards: (type: string) => { - let reusts: any[] = []; - switch (type) { - case 'Product': - reusts = []; - break; - case 'Route': - reusts = [ - { - name: 'RotInfo', - slots: [], - preIcons: {}, - title: '宸ヨ壓璺嚎鍥�', - entityName: '', - }, - ]; - break; - } - return reusts; - }, - /** - * @description: 鑾峰彇鎻掓Ы鍒楄〃 - * @return {*} - */ - GetSlots: () => { - return ['RotInfo']; - }, - /** - * @description: 鐢熸垚html - * @return {*} - */ - GenerateHtml: (type: string | null) => { - const newElement = document.createElement('div'); - // newElement.textContent = 'New Element =>'+type; - // newElement.style.height = '250px'; - newElement.id = 'lfContainer'; - newElement.className = 'h-full'; - // newElement.style.color = 'blue'; - // newElement.style.fontSize = '16px'; - return newElement; - }, - /** - * @description: 鑷畾涔夋柟娉� + * @description: 鑾峰彇鏍囬淇℃伅 * @param {string} type - * @param {array} args * @return {*} */ - CustFunc: (param: CustModalParams) => { - switch (param.cType) { - case 'BIZ_MES_WO': - case 'BIZ_MES_WO_Config': - return getWoFns[param.FnName](param) as Promise<any>; - // break; - default: - return new Promise((resolve, reject) => { - try { - (e) => {}; - resolve(true); - } catch { - reject(false); - } finally { - // args[0][0]({ confirmLoading: false }); - } - }); - // break; - } + GetTitle: () => { + return { + importTitle: '宸ュ崟璁″垝瀵煎叆' /* 鎵撳紑妯℃�佺獥鍙f樉绀虹殑鏍囬 */, + }; }, }; @@ -559,12 +386,19 @@ try { const form = param.values['prodinfo']; const wo = param.values['mValues']; - wo.ROUTE_STATUS = 1; - SaveEntity(wo, true, 'BIZ_MES_WO').then((action) => { + const _wo = cloneDeep(wo); + _wo.ROUTE_STATUS = 1; + _wo.ROUTE_CODE = form.ROUTE_CODE; + SaveEntity(_wo, true, 'BIZ_MES_WO').then((action) => { if (action.IsSuccessed) { - resolve(true); + SP_MES_PROD2WO({ rotId: form.ROT_ID, wo: wo.ORDER_NO }).then((res) => { + if (!res.IsSuccessed) { + SaveEntity(wo, true, 'BIZ_MES_WO'); + } + resolve(res); + }); } else { - reject(false); + reject(action); } }); } catch { @@ -582,8 +416,7 @@ try { const form = param.values['forminfo']; const wo = param.values['mValues']; - wo.ROUTE_CODE = form.ROUTE_CODE; - wo.STATUS = 2; + wo.STATUS = wo.STATUS == 3 ? wo.STATUS : 2; let input: SaveWoBatchInput = { Wo: wo, WoBatch: { @@ -593,7 +426,7 @@ UPDATE_TIME: new Date(), UPDATE_USER: useUserStore().getUserInfo.userId as string, GHOST_ROW: false, - AUTH_ORG: '', + AUTH_ORG: useUserStore().getUserInfo.orgCode, AUTH_PROD: useUserStore().getUserInfo.prodCode as string, AUTH_WH: '', ORDER_NO: wo.ORDER_NO, @@ -602,7 +435,7 @@ CUST_CODE: wo.CUST_CODE, FACTORY: wo.FACTORY, WS_CODE: wo.WS_CODE, - ACT_LINE: form.PLAN_LINE, + ACT_LINE: form.ACT_LINE, STD_WORKER_QTY: wo.STD_WORKER_QTY, ACT_WORKER_QTY: wo.ACT_WORKER_QTY, RELEASE_TIME: new Date(), @@ -619,6 +452,7 @@ ACT_END_TIME: wo.ACT_END_TIME, BATCH_NO: '', }, + IfToCust: form.IfToCust, }; SaveMesBatchWo(input).then((action) => { resolve(action); @@ -632,514 +466,93 @@ }; /** - * @description: 寮瑰嚭閫夋嫨妗�-鐗╂枡閫夋嫨妗嗛厤缃� + * @description: 璺宠浆鍒拌鎯呴〉闈㈡柟娉� + * @param {Fn} go * @return {*} */ - 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' }, - }; + function goDetail(go: Fn, params: Recordable) { + const id = { + ID: params['record'].ID, + CODE: params['record']['ORDER_NO'], + Name: 'BIZ_MES_WO_BATCH', + firstTabName: '宸ュ崟鎵规', + secondTabName: '', //'鏍囩杩囩▼鍙橀噺', + firstTitle: '鎵规', + secondTitle: '', //'杩囩▼鍙橀噺', + pageTitle: '宸ュ崟璇︽儏', //璇︽儏椤甸潰鏍囬 + contentStr: '杩欓噷鏄伐鍗曟壒娆$鐞嗛〉闈紝鍙互鏄剧ず宸ュ崟涓嬪彂鐨勬墍鏈夋壒娆¤鎯�', + detailName: `宸ュ崟[${params['record'].ORDER_NO}]鎵规璇︽儏`, + keyFieldValues: { ORDER_NO: params['record']['ORDER_NO'] }, + colSlots: params['colSlots'].value, + SessionName: 'BIZ_MES_WO_BATCH_update', + ifSave: false, + }; + // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage + sessionStorage.removeItem(`${id.SessionName}_params`); + sessionStorage.setItem(`${id.SessionName}_params`, encodeURI(JSON.stringify(id))); + go(`/BIZ_MES_WO_BATCH/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`); + } /** - * @description: 寮瑰嚭閫夋嫨妗�-瑙勫垯閫夋嫨妗嗛厤缃� + * @description: 閰嶇疆宸ヨ壓 + * @param {Recordable} record + * @param {array} args * @return {*} */ - 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' }, - }; + function handleConfig(args, params: Recordable) { + const go = args[5]; + const id = { + ID: params['record'].ID, + Name: 'WoRouteBinding', + CODE: params['record'].ORDER_NO, + Title: `宸ュ崟[${params['record'].ORDER_NO}]宸ヨ壓缁戝畾`, + colSlots: + params['colSlots'].value /* 琛ㄦ牸鍐呯殑鏌ヨ琛ㄥ崟瀛楁鐨勬彃妲藉垪琛紝涓�鑸敤浜庡脊鍑洪�夋嫨妗嗘寜閽� */, + crudColSlots: { + BAS_PKG_DTL: ['BAS_LABEL_TEMP1add'], + ItemCode: ['BAS_CODE_RULE1add'], + } /* 澧炲垹鏀硅〃鍗曞瓧娈电殑鎻掓Ы鍒楄〃锛屼竴鑸敤浜庡脊鍑洪�夋嫨妗嗘寜閽� */, + OtherTableName: [ + 'BAS_PKG_DTL', + 'ItemCode', + ] /* 鑷畾涔夋樉绀哄垪琛ㄧ殑琛ㄥ悕锛岃窡涓婇潰澧炲垹鏀圭殑琛ㄥ悕涓�鑷达紝鏈夊涓氨鏀惧垪琛ㄤ腑 */, + record: params['record'], + dense: true, + pageTitle: `宸ュ崟宸ヨ壓缁戝畾`, + pageContent: `杩欓噷鏄鐞嗗伐鍗曠殑宸ヨ壓缁戝畾锛屼竴涓伐鍗曞彲浠ョ粦瀹氫竴涓伐鑹鸿矾绾匡紝骞跺彲浠ヤ繚瀛樹负瀹㈡埛涓撶敤鐨勫伐鑹鸿矾绾縛, + SessionName: 'WoRouteBinding_update', + ifSave: false, + rotType: 'Wo', + }; + // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage + sessionStorage.removeItem(`${id.SessionName}_params`); + sessionStorage.setItem(`${id.SessionName}_params`, encodeURI(JSON.stringify(id))); + /* 璁剧疆鏍囧織锛屼互鏍规嵁缂撳瓨鏁版嵁鍙栨暟鎹� */ + const useProdRoute = useProdRouteStore(); + useProdRoute.setChangeToCPPage(true); + go(`/WoRouteBinding/CP/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`); + } /** - * @description: 寮瑰嚭閫夋嫨妗�-鎵撳嵃妯℃澘閫夋嫨妗嗛厤缃� + * @description: 涓嬪彂 + * @param {*} record * @return {*} */ - 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: 琛屼负閰嶇疆琛ㄥ崟瀛楁 - * @return {*} - */ - const actionFormShema: FormSchema[] = [ - { - field: 'PROD_CODE', - label: '浜у搧缂栫爜', - component: 'Input', - dynamicDisabled: ({ values }) => { - return true; - }, - colProps: { span: 12 }, - }, - { - field: 'ID', - label: 'ID', - component: 'Input', - show: false, - }, - { - field: 'ACT_ID', - label: 'ACT_ID', - component: 'Input', - show: false, - }, - { - field: 'ROT_ID', - label: 'ROT_ID', - component: 'Input', - show: false, - }, - { - field: 'ACT_CODE', - label: 'ACT_CODE', - component: 'Input', - show: false, - }, - { - field: 'NODE_ID', - label: 'NODE_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 }, - }, - ]; - - /** - * @description: 宸ュ簭閰嶇疆琛ㄥ崟瀛楁 - * @return {*} - */ - const nodeFormShema: FormSchema[] = [ - { - field: 'PROD_CODE', - label: '浜у搧缂栫爜', - component: 'Input', - dynamicDisabled: ({ values }) => { - return true; - }, - colProps: { span: 12 }, - }, - { - field: 'ID', - label: 'ID', - component: 'Input', - show: false, - }, - { - field: 'ACT_ID', - label: 'ACT_ID', - component: 'Input', - show: false, - }, - { - field: 'ROT_ID', - label: 'ROT_ID', - component: 'Input', - show: false, - }, - { - field: 'NODE_ID', - label: 'NODE_ID', - component: 'Input', - show: false, - }, - { - field: 'NODE_NAME', - label: '宸ュ簭鑺傜偣鍚嶇О', - component: 'Input', - }, - { - field: 'CUST_CODE', - label: '瀹㈡埛缂栫爜', - component: 'Input', - dynamicDisabled: ({ values }) => { - return true; - }, - colProps: { span: 12 }, - }, - { - field: 'OPER_CODE', - label: '宸ュ簭缂栫爜', - component: 'Input', - }, - { - field: 'IS_ACTIVE', - label: '鏄惁鍚敤', - required: true, - component: 'Select', - colProps: { span: 12 }, - componentProps: { - options: [ - { - label: '鏄�', - value: 'Y', - key: 'Y', - }, - { - label: '鍚�', - value: 'N', - key: 'N', - }, - ], - }, - }, - { - field: 'IS_CALC_FPY', - label: '鏄惁璁$畻鐩撮�氱巼', - required: true, - component: 'Select', - colProps: { span: 12 }, - componentProps: { - options: [ - { - label: '鏄�', - value: 'Y', - key: 'Y', - }, - { - label: '鍚�', - value: 'N', - key: 'N', - }, - ], - }, - }, - { - field: 'CAN_SKIP', - label: '鏄惁鍏佽璺崇珯', - required: true, - component: 'Select', - colProps: { span: 12 }, - componentProps: { - options: [ - { - label: '鏄�', - value: 'Y', - key: 'Y', - }, - { - label: '鍚�', - value: 'N', - key: 'N', - }, - ], - }, - }, - { - field: 'IS_INPUT', - label: '鏄惁鎶曞叆绔�', - required: true, - component: 'Select', - colProps: { span: 12 }, - componentProps: { - options: [ - { - label: '鏄�', - value: 'Y', - key: 'Y', - }, - { - label: '鍚�', - value: 'N', - key: 'N', - }, - ], - }, - }, - { - field: 'IS_OUTPUT', - label: '鏄惁浜у嚭绔�', - required: true, - component: 'Select', - colProps: { span: 12 }, - componentProps: { - options: [ - { - label: '鏄�', - value: 'Y', - key: 'Y', - }, - { - label: '鍚�', - value: 'N', - key: 'N', - }, - ], - }, - }, - { - field: 'REMARK', - label: '澶囨敞', - component: 'Input', - colProps: { span: 12 }, - }, - ]; + function handleRelease(args, params: Recordable) { + const openCustModal = args[7]; + openCustModal(true, { + isUpdate: true, //鏄惁鏇存柊鎿嶄綔 + ctype: 'BIZ_MES_WO', //鏄摢涓〉闈� + title: '宸ュ崟涓嬪彂', //鏍囬 + width: '900px', //寮瑰嚭妗嗗搴� + formEl: params['useFormData'].value, + formElName: ['forminfo'], //琛ㄥ崟鎻掓Ы鍚嶇О + RowKeys: { add: 'ROUTE_CODE', set: 'ROUTE_CODE' }, //鎻掓Ы鐨勫脊鍑烘閫夋嫨鐨刢ode + fnName: 'SaveWoBatch', //淇濆瓨鏂规硶鍚� + initFnName: {}, //鍒濆鍖栨柟娉曞悕锛屾病鏈夊氨鐣欑┖{} + values: params['record'], //琛ㄥ崟璁板綍 + }); + } const woformSchema: FormSchema[] = [ { @@ -1149,6 +562,9 @@ required: true, colProps: { span: 24, + }, + dynamicDisabled: ({ values }) => { + return true; }, }, { @@ -1161,8 +577,8 @@ }, }, { - label: '璁″垝浜х嚎', - field: 'PLAN_LINE', + label: '瀹為檯浜х嚎', + field: 'ACT_LINE', component: 'ApiSelect', required: true, colProps: { @@ -1177,34 +593,44 @@ }, }, { - label: '宸ヨ壓璺嚎', - field: 'ROUTE_CODE', - component: 'Input', - required: true, + field: 'IfToCust', + component: 'Switch', + label: '鏄惁淇濆瓨宸ヨ壓璺嚎鍒板鎴�', + defaultValue: true, colProps: { - span: 22, + span: 8, }, + labelWidth: 200, }, - { - field: 'add', - component: 'Input', - label: '1', - colSlot: 'add', - defaultValue: 'MES_ROUTE', - colProps: { - span: 1, - }, - }, - { - field: 'set', - component: 'Input', - label: '1', - colSlot: 'set', - defaultValue: 'MES_ROUTE', - colProps: { - span: 1, - }, - }, + // { + // label: '宸ヨ壓璺嚎', + // field: 'ROUTE_CODE', + // component: 'Input', + // required: true, + // colProps: { + // span: 22, + // }, + // }, + // { + // field: 'add', + // component: 'Input', + // label: '1', + // colSlot: 'add', + // defaultValue: 'MES_ROUTE', + // colProps: { + // span: 1, + // }, + // }, + // { + // field: 'set', + // component: 'Input', + // label: '1', + // colSlot: 'set', + // defaultValue: 'MES_ROUTE', + // colProps: { + // span: 1, + // }, + // }, ]; const woCfgformSchema: FormSchema[] = [ @@ -1225,23 +651,19 @@ }, { field: 'ORDER_TYPE', - component: 'Select', + component: 'ApiSelect', label: '宸ュ崟绫诲瀷', colProps: { span: 8, }, - defaultValue: 'Normal', + defaultValue: 0, componentProps: { - options: [ - { - label: '姝e父', - value: 'Normal', - }, - { - label: '杩斿伐', - value: 'Rework', - }, - ], + api: GetEnum, + params: { name: 'BIZ_MES_WO+ORDER_TYPEs' }, + resultField: 'Data', + labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', + valueField: 'Value', + placeholder: '璇烽�夋嫨宸ュ崟绫诲瀷', }, dynamicDisabled: true, }, @@ -1311,21 +733,30 @@ }, }, { - field: 'fieldsc', - component: 'Upload', - label: '鎵撳嵃妯℃澘', + label: '宸ヨ壓璺嚎', + field: 'ROT_ID', + component: 'Input', + show: false, colProps: { - span: 10, - }, - rules: [{ required: true, message: '璇烽�夋嫨涓婁紶鏂囦欢' }], - componentProps: { - api: uploadApi, - multiple: false, + span: 12, }, }, + // { + // field: 'fieldsc', + // component: 'Upload', + // label: '鎵撳嵃妯℃澘', + // colProps: { + // span: 10, + // }, + // rules: [{ required: true, message: '璇烽�夋嫨涓婁紶鏂囦欢' }], + // componentProps: { + // api: uploadApi, + // multiple: false, + // }, + // }, ]; - return [methods]; + return [methods, ActionColumn]; } export default _default; -- Gitblit v1.9.3