From 3bf0e1e45acfb85fb6054dc55d1c1204a6750998 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期二, 24 九月 2024 23:53:53 +0800 Subject: [PATCH] 通用增删改模态窗口更新,工单维护更新 --- src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts | 290 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 248 insertions(+), 42 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts index 92ff1d9..fdfb039 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-08-13 16:05:42 + * @LastEditTime: 2024-09-24 09:28:56 */ import { Ref, h, ref, render, unref } from 'vue'; @@ -21,13 +21,16 @@ import { NavItem } from '/@/api/tigerapi/model/basModel'; import { useMessage } from '/@/hooks/web/useMessage'; import { useModal } from '/@/components/Modal'; -import { BasicColumn, FormSchema, useTable } from '/@/components/Table'; +import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table'; import { CustModalParams } from '/@/api/tigerapi/model/systemModel'; import { useUserStore } from '/@/store/modules/user'; import { EventDataNode } from 'ant-design-vue/lib/tree'; import { ContextMenuItem } from '/@/components/TigerTree'; -import { UpdateWoStatus } from '/@/api/tigerapi/mes/wo'; +import { AddOrEditLabelVarByWorkOrder, UpdateWoStatus } from '/@/api/tigerapi/mes/wo'; import { useForm } from '/@/components/Form'; +import { BAS_LABEL_VAR_WO } from '/@/api/tigerapi/model/mesModel'; +import { buildUUID } from '/@/utils/uuid'; +import { mesApi } from '/@/api/tigerapi/mes/mesApi'; const { t } = useI18n(); const { createErrorModal } = useMessage(); @@ -110,6 +113,19 @@ return data; }, /** + * @description: 鎿嶄綔瀛楁鑷畾涔夋寜閽紝蹇呴渶瑕佹湁鐨勬柟娉� + * @return {*} + */ + ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { + data.push({ + icon: 'template|svg', + tooltip: '妯℃澘缁存姢', + onClick: handleTemplate.bind(null, args, params), + name: '妯℃澘缁存姢', + }); + return data; + }, + /** * @description: 鑾峰彇閰嶇疆椤硅〃鍗曞瓧娈碉紝鏍规嵁鏍戝舰鑺傜偣type涓嶅悓鑰屼笉鍚� * @param {string} type * @return {*} @@ -134,7 +150,15 @@ * @return {*} */ GetCrudColSlots: () => { - return ['scanadd', 'assyadd', 'testadd', 'auditadd', 'printadd', 'pkgadd']; + return [ + { name: 'scanadd', icon: 'search|svg' }, + { name: 'assyadd', icon: 'search|svg' }, + { name: 'testadd', icon: 'search|svg' }, + { name: 'auditadd', icon: 'search|svg' }, + { name: 'printadd', icon: 'search|svg' }, + { name: 'pkgadd', icon: 'search|svg' }, + { name: 'labeladd', icon: 'template|svg' }, + ]; }, /** * @description: 鑾峰彇琛ㄦ牸use鍒楄〃 @@ -275,6 +299,7 @@ CUST_CODE: params['selectedNodes'][0].cust, PROD_CODE: params['selectedNodes'][0].prod, OPTION_1: res.Data.Items[0].OPTION_1, + OPTION_2: res.Data.Items[0].OPTION_2, }); /* 濡傛灉鏄寘瑁呰鍒� */ if (res.Data.Items[0].ACT_TYPE == 6) { @@ -365,6 +390,9 @@ */ OpenSelectItem: (openItemModal: Fn, ...args) => { let config = {}; + const openCrudModal = args[1]; + const record = args[2]; + const OrderNo = args[3]; switch (args[0]) { case 'scanadd': config = ruleModalCfg; @@ -382,7 +410,35 @@ config = pkgModalCfg; break; } - openItemModal(true, config); + if (args[0] == 'labeladd') { + openCrudModal(true, { + isUpdate: true, //鏄惁鏇存柊鎿嶄綔 + entityName: 'WoRouteBinding', //鏄摢涓〉闈� + ctype: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О + title: '妯℃澘缁存姢', //鏍囬 + width: '1024px', //寮瑰嚭妗嗗搴� + ItemColumns: TemplateBasColumn, //寮瑰嚭妗嗕腑琛ㄦ牸瀛楁缁撴瀯 + schemas: [], //鏌ヨ鏉′欢瀛楁缁撴瀯 + others: { WORK_ORDER: OrderNo }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹� + searchInfo: { + TABLE_NAME: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О + LabelId: record.LABEL_CODE, //妯℃澘ID + WorkOrder: OrderNo, //宸ュ崟鍙� + apiUrl: mesApi.GetLabelVarByWorkOrder, //鑷畾涔夎幏鍙栨暟鎹垎椤电殑api锛屼笉鐢ㄩ粯璁ょ殑鍩虹鏂规硶 + // sqlcmd: ` (WORK_ORDER = '${OrderNo}' OR WORK_ORDER = '' OR WORK_ORDER IS NULL)`, + // option: + // { + // //鏍规嵁鎹偣鏌ヨ锛屽繀闇�甯﹁繖涓弬鏁� + // UserId: useUserStore().getUserInfo.userId, + // ByOrg: true, + // CurOrg: useUserStore().getUserInfo.orgCode, + // }, + }, + values: record, //琛ㄥ崟璁板綍 + }); + } else { + openItemModal(true, config); + } }, /** * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛杩斿洖 @@ -431,6 +487,8 @@ isShow: { BAS_PKG_DTL: false, ItemCode: false }, }; break; + case 'labeladd': + break; case 'pkgadd': const ents = await getEntity({ sqlcmd: `RULE_CODE ='${d.values['val']}'`, @@ -460,6 +518,7 @@ WorkOrder: args[1]['CODE'], Status: -1, RouteStatus: 1, + WoBatch: '', }).then((action) => { if (action.IsSuccessed) { SP_MES_PROD2WO({ rotId: d.values.id, wo: args[1]['CODE'] }).then((action) => { @@ -471,6 +530,7 @@ WorkOrder: args[1]['CODE'], Status: -1, RouteStatus: 0, + WoBatch: '', }); createErrorModal({ title: t('sys.api.errorTip'), @@ -515,6 +575,25 @@ testadd: useModal(), auditadd: useModal(), printadd: useModal(), + labeladd: useModal(), + pkgadd: useModal(), + }; + }, + /** + * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃 + * @return {*} + */ + GetUseCrudModals: () => { + return { + addRoute: useModal(), + addCustomer: useModal(), + editRoute: useModal(), + scanadd: useModal(), + assyadd: useModal(), + testadd: useModal(), + auditadd: useModal(), + printadd: useModal(), + labeladd: useModal(), pkgadd: useModal(), }; }, @@ -658,7 +737,13 @@ SP_MES_WO2CUST({ wo: args[2][0]['wo'] }); break; case 'editRoute': - args[1](true, { rotId: args[2][0].wo, slotName: '', rotType: 'Wo' }); + args[1](true, { + rotId: args[2][0].wo, + slotName: '', + rotType: 'Wo', + prodCode: args[3], + custCode: args[2][0].cust, + }); break; } }, @@ -714,35 +799,47 @@ * @return {*} */ CustFunc: async (param: CustModalParams) => { - switch (param['ctype']) { - case 'BAS_PKG_DTL': - // const ents = await getEntity({ - // sqlcmd: `PKG_RULE_ID ='${param.values['PKG_RULE_ID']}'`, - // entityName: 'V_BAS_PKG_DTL', - // order: '', - // }); - // param.data.value['Table'] = ents.Data.Items; - param.data.value['BAS_PKG_DTL'].map((x) => { - if (x.PKG_CODE == param.values['PKG_CODE']) { - x.LABEL_CODE = param.values['LABEL_CODE']; - } - }); - param.data.value['Action'][0]['OPTION_1'] = JSON.stringify( - param.data.value['BAS_PKG_DTL'], - ); - break; - case 'ItemCode': - param.data.value['ItemCode'].map((x) => { - if (x.ITEM_CODE == param.values['ITEM_CODE']) { - x.IsBatchItem = param.values['IsBatchItem']; - x.RULE_CODE = param.values['RULE_CODE']; - } - }); - param.data.value['Action'][0]['OPTION_1'] = JSON.stringify( - param.data.value['ItemCode'], - ); - break; - } + return new Promise<any>(async (resolve, reject) => { + try { + switch (param['ctype']) { + case 'BAS_PKG_DTL': + // const ents = await getEntity({ + // sqlcmd: `PKG_RULE_ID ='${param.values['PKG_RULE_ID']}'`, + // entityName: 'V_BAS_PKG_DTL', + // order: '', + // }); + // param.data.value['Table'] = ents.Data.Items; + param.data.value['BAS_PKG_DTL'].map((x) => { + if (x.PKG_CODE == param.values['PKG_CODE']) { + x.LABEL_CODE = param.values['LABEL_CODE']; + x.LABEL_ID = param.values['LABEL_CODE']; + } + }); + param.data.value['Action'][0]['OPTION_1'] = JSON.stringify( + param.data.value['BAS_PKG_DTL'], + ); + break; + case 'ItemCode': + param.data.value['ItemCode'].map((x) => { + if (x.ITEM_CODE == param.values['ITEM_CODE']) { + x.IsBatchItem = param.values['IsBatchItem']; + x.RULE_CODE = param.values['RULE_CODE']; + } + }); + param.data.value['Action'][0]['OPTION_1'] = JSON.stringify( + param.data.value['ItemCode'], + ); + break; + case 'BAS_LABEL_VAR_WO': + param.values['WORK_ORDER'] = param.others['WORK_ORDER']; + param.values['ID'] = buildUUID(); + await AddOrEditLabelVarByWorkOrder(param.values as unknown as BAS_LABEL_VAR_WO); + } + resolve('OK'); + } catch (e) { + reject(e); + } + }); }, /** * @description: 鑾峰彇鍙抽敭鑿滃崟鍒楄〃 @@ -856,6 +953,12 @@ // }; // }, }, + { + dataIndex: 'LABEL_ID', + title: '鏍囩妯℃澘ID', + ifShow: false, + customRender: () => {}, + }, ] as BasicColumn[]; break; case 'ItemCode': @@ -932,6 +1035,7 @@ } return columns; } + /** * @description: 寮瑰嚭閫夋嫨妗�-鐗╂枡閫夋嫨妗嗛厤缃� * @return {*} @@ -1186,7 +1290,7 @@ label: '1', defaultValue: '', component: 'Input', - colProps: { span: 1, pull: 1 }, + colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 }, ifShow: ({ values }) => isScan(values.ACT_TYPE), colSlot: 'scanadd', }, @@ -1202,7 +1306,7 @@ label: '1', defaultValue: '', component: 'Input', - colProps: { span: 1, pull: 1 }, + colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 }, ifShow: ({ values }) => isAssy(values.ACT_TYPE), colSlot: 'assyadd', }, @@ -1218,7 +1322,7 @@ label: '1', defaultValue: '', component: 'Input', - colProps: { span: 1, pull: 1 }, + colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 }, ifShow: ({ values }) => isTest(values.ACT_TYPE), colSlot: 'testadd', }, @@ -1234,14 +1338,14 @@ label: '1', defaultValue: '', component: 'Input', - colProps: { span: 1, pull: 1 }, + colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 }, ifShow: ({ values }) => isAudit(values.ACT_TYPE), colSlot: 'auditadd', }, { field: 'LABEL_CODE', label: '鏍囩鎵撳嵃', - colProps: { span: 11 }, + colProps: { span: 9 }, component: 'Input', ifShow: ({ values }) => isPrint(values.ACT_TYPE), }, @@ -1250,9 +1354,18 @@ label: '1', defaultValue: '', component: 'Input', - colProps: { span: 1, pull: 1 }, + colProps: { span: 2 }, //{ span: 2, pull: window.screen.width == 1366 ? -1 : 1 }, ifShow: ({ values }) => isPrint(values.ACT_TYPE), colSlot: 'printadd', + }, + { + field: 'print1', + label: '1', + defaultValue: '', + component: 'Input', + colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 }, + ifShow: ({ values }) => isPrint(values.ACT_TYPE), + colSlot: 'labeladd', }, { field: 'PKG_CODE', @@ -1266,9 +1379,31 @@ label: '1', defaultValue: '', component: 'Input', - colProps: { span: 1, pull: 1 }, + colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 }, ifShow: ({ values }) => isPackage(values.ACT_TYPE), colSlot: 'pkgadd', + }, + { + field: 'OPTION_2', + label: '鏄惁绉伴噸', + required: true, + component: 'Select', + colProps: { span: 12 }, + ifShow: ({ values }) => isPackage(values.ACT_TYPE), + componentProps: { + options: [ + { + label: '鏄�', + value: 'Y', + key: 'Y', + }, + { + label: '鍚�', + value: 'N', + key: 'N', + }, + ], + }, }, { field: 'REMARK', @@ -1643,6 +1778,77 @@ ] as FormSchema[], }; + /** + * @description: 妯℃澘缁存姢 + * @param {*} args + * @param {Recordable} params + * @return {*} + */ + function handleTemplate(args, params: Recordable) { + const openCrudModal = args[0]; + const OrderNo = args[2]; + openCrudModal(true, { + isUpdate: true, //鏄惁鏇存柊鎿嶄綔 + entityName: 'WoRouteBinding', //鏄摢涓〉闈� + ctype: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О + title: '妯℃澘缁存姢', //鏍囬 + width: '1024px', //寮瑰嚭妗嗗搴� + ItemColumns: TemplateBasColumn, //寮瑰嚭妗嗕腑琛ㄦ牸瀛楁缁撴瀯 + schemas: [], //鏌ヨ鏉′欢瀛楁缁撴瀯 + others: { WORK_ORDER: OrderNo }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹� + searchInfo: { + TABLE_NAME: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О + LabelId: params['record'].LABEL_ID, //妯℃澘ID + WorkOrder: OrderNo, //宸ュ崟鍙� + apiUrl: mesApi.GetLabelVarByWorkOrder, //鑷畾涔夎幏鍙栨暟鎹垎椤电殑api锛屼笉鐢ㄩ粯璁ょ殑鍩虹鏂规硶 + // sqlcmd: ` (WORK_ORDER = '${OrderNo}' OR WORK_ORDER = '' OR WORK_ORDER IS NULL)`, + // option: + // { + // //鏍规嵁鎹偣鏌ヨ锛屽繀闇�甯﹁繖涓弬鏁� + // UserId: useUserStore().getUserInfo.userId, + // ByOrg: true, + // CurOrg: useUserStore().getUserInfo.orgCode, + // }, + }, + values: params['record'], //琛ㄥ崟璁板綍 + }); + } + + /* 涓嬪彂鐣岄潰涓殑琛ㄥ崟鍒楄〃 */ + const TemplateBasColumn = [ + { + dataIndex: 'LABEL_ID', + title: '鏍囩妯℃澘ID', + ifShow: false, + sorter: true, + resizable: true, + }, + { + title: '宸ュ崟鍙�', + dataIndex: 'WORK_ORDER', + width: 280, + editRow: true, + // editable: true, + ifShow: false, + }, + { + title: '鍙橀噺鍚�', + dataIndex: 'VAR_NAME', + }, + { + title: '鍙橀噺鍊�', + dataIndex: 'VAR_VALUE', + editRow: true, + editRule: true, + }, + { + title: '榛樿鍊�', + dataIndex: 'DEFAULT_VALUE', + editRow: true, + editRule: true, + }, + ] as BasicColumn[]; + return [methods]; } -- Gitblit v1.9.3