From 16257dd099d9811fb5caf78047ffc2425c401e0e Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期一, 05 八月 2024 03:11:20 +0800 Subject: [PATCH] 工单工艺路线更新 --- src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts | 1290 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 1,037 insertions(+), 253 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts index 5aaf738..291fdfa 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts @@ -4,24 +4,35 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-27 16:07:06 + * @LastEditTime: 2024-08-05 00:43:22 */ -import { Ref, ref, unref } from 'vue'; -import { GetRoutePTree, RouteToCust, RouteToProd } from '/@/api/tigerapi/mes/router'; -import { GetEnum, convertToTree, getEntity } from '/@/api/tigerapi/system'; +import { Ref, h, ref, render, unref } from 'vue'; +import { + DeleteProdRoute, + 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 { V_MES_ROUTE_PTREE } from '/@/api/tigerapi/model/router'; +import { 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 { useForm } from '/@/components/Form'; 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; @@ -29,6 +40,10 @@ const isAudit = (type: number) => type === 4; const isPrint = (type: number) => type === 5; const isPackage = (type: number) => type === 6; + /** + * @description: 浜у搧缁戝畾宸ヨ壓璺嚎鐨勪竴浜涜嚜瀹氫箟鏂规硶 + * @return {*} + */ const methods = { /** * @description: 鑾峰彇鏍戝舰鍥炬爣 @@ -70,7 +85,10 @@ */ fetchTreeData: async (type: string, itemCode: string) => { let data = { title: '', treeData: [] as any[], fieldNames: {} }; - let prodTreeData = await GetRoutePTree(itemCode); + let prodTreeData = await GetRoutePTree({ + prodCode: itemCode, + orgCode: useUserStore().getUserInfo.orgCode, + }); // 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); @@ -82,174 +100,25 @@ data.fieldNames = { key: 'tid', title: 'name' }; return data; }, - GetCrudForm: () => { - return [ - { - 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 }, - }, - ]; + /** + * @description: 鑾峰彇閰嶇疆椤硅〃鍗曞瓧娈碉紝鏍规嵁鏍戝舰鑺傜偣type涓嶅悓鑰屼笉鍚� + * @param {string} type + * @return {*} + */ + GetCrudForm: (type: string) => { + let form: FormSchema[] = []; + switch (type) { + case 'Action': + form = actionFormShema; + break; + case 'Node': + form = nodeFormShema; + break; + case 'BAS_PKG_DTL': + form = crudForms[type]; + break; + } + return form; }, /** * @description: 鑾峰彇琛ㄥ崟涓殑瀛楁鎻掓Ы鍒楄〃 @@ -258,34 +127,134 @@ GetCrudColSlots: () => { return ['scanadd', 'assyadd', 'testadd', 'auditadd', 'printadd', 'pkgadd']; }, - nodeChange: (params: { - resetFields: any; - setFieldsValue: any; - objParams: Ref<any>; - selectedNodes: Ref<any[]>; - }) => { - params['resetFields'](); - let sqlcmd = ' 1=1 '; - if (!isNullOrEmpty(params['objParams'].value['CODE'])) { - sqlcmd += `And PROD_CODE = '${params['objParams'].value['CODE']}'`; - } - // if (!isNullOrEmpty(Cust_Code.value)) { - // sqlcmd += `And CUST_CODE = '${Cust_Code.value}'`; - // } - if (!isNullOrEmpty(params['selectedNodes'].value[0].code)) { - sqlcmd += `And ACT_ID = '${params['selectedNodes'].value[0].code}'`; - } - getEntity({ - sqlcmd: sqlcmd, - entityName: 'MES_PROD_ACTION', - }).then((res) => { - params['setFieldsValue']({ - PROD_CODE: params['objParams'].value['CODE'], - ACT_TYPE: res.Data.Items[0].ACT_TYPE, - CUST_CODE: params['selectedNodes'].value[0].cust, + /** + * @description: 鍒囨崲鑺傜偣鏃朵簨浠舵柟娉� + * @return {*} + */ + nodeChange: (params: { useForms: Ref<any>; objParams: Ref<any>; selectedNodes: any[] }) => + new Promise<any>(async (resolve, reject) => { + // params['useForms'].value = methods.GetUseForm(); + let result = {}; + let sqlcmd = ' 1=1 '; + if (!isNullOrEmpty(params['objParams'].value['CODE'])) { + sqlcmd += `And PROD_CODE = '${params['objParams'].value['CODE']}'`; + } + if (!isNullOrEmpty(params['selectedNodes'][0].cust)) { + sqlcmd += `And CUST_CODE = '${params['selectedNodes'][0].cust}'`; + } + if (!isNullOrEmpty(params['selectedNodes'][0].id)) { + sqlcmd += + params['selectedNodes'][0].type == 'Action' + ? `And ACT_ID = '${params['selectedNodes'][0].id}'` + : `And NODE_ID = '${params['selectedNodes'][0].id}'`; + } + try { + const res = await getEntity({ + sqlcmd: sqlcmd, + entityName: + params['selectedNodes'][0].type == 'Action' ? 'MES_PROD_ACTION' : 'MES_PROD_OPER', + order: '', + }); + const setFieldsValue = params['useForms'].value['Action'][1]['setFieldsValue']; + const setFieldsValueNode = params['useForms'].value['Node'][1]['setFieldsValue']; + const resetFields = params['useForms'].value['Action'][1]['resetFields']; + const resetFieldsNode = params['useForms'].value['Node'][1]['resetFields']; + if (params['selectedNodes'][0].type == 'Action') { + resetFields(); + 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'][0].cust, + OPTION_1: res.Data.Items[0].OPTION_1, + }); + result['isShow'] = isNullOrEmpty(res.Data.Items[0].PKG_CODE) ? false : true; + const ents = await getEntity({ + sqlcmd: `RULE_CODE ='${res.Data.Items[0].PKG_CODE}'`, + entityName: 'V_BAS_PKG_DTL', + order: '', + }); + result['Table'] = isNullOrEmpty(res.Data.Items[0].OPTION_1) + ? ents.Data.Items + : JSON.parse(res.Data.Items[0].OPTION_1); + /* 濡傛灉OPTION_1瀛楁涓虹┖灏辨妸鍖呰淇℃伅杞琂SON瀛樺埌OPTION_1瀛楁 */ + res.Data.Items[0].OPTION_1 = isNullOrEmpty(res.Data.Items[0].OPTION_1) + ? JSON.stringify(ents.Data.Items) + : res.Data.Items[0].OPTION_1; + result['Action'] = res.Data.Items; + } + if (params['selectedNodes'][0].type == 'Node') { + resetFieldsNode(); + setFieldsValueNode({ + 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: isNullOrEmpty(res.Data.Items[0].IS_ACTIVE) + ? 'N' + : res.Data.Items[0].IS_ACTIVE, + IS_CALC_FPY: isNullOrEmpty(res.Data.Items[0].IS_CALC_FPY) + ? 'N' + : res.Data.Items[0].IS_CALC_FPY, + CAN_SKIP: isNullOrEmpty(res.Data.Items[0].CAN_SKIP) + ? 'N' + : res.Data.Items[0].CAN_SKIP, + IS_INPUT: isNullOrEmpty(res.Data.Items[0].IS_INPUT) + ? 'N' + : res.Data.Items[0].IS_INPUT, + IS_OUTPUT: isNullOrEmpty(res.Data.Items[0].IS_OUTPUT) + ? 'N' + : res.Data.Items[0].IS_OUTPUT, + ALLOW_DFT_IN: isNullOrEmpty(res.Data.Items[0].ALLOW_DFT_IN) + ? 'N' + : res.Data.Items[0].ALLOW_DFT_IN, + REMARK: res.Data.Items[0].REMARK, + PROD_CODE: params['objParams'].value['CODE'], + CUST_CODE: params['selectedNodes'][0].cust, + }); + } + resolve(result); + } catch (e) { + reject(e); + } + }), + /** + * @description: 鑷畾涔夋彁浜ゆ柟娉� + * @return {*} + */ + SubmitFunc: (values: Recordable<any>, type: string, emit) => + new Promise<any>((resolve, reject) => { + let entityName = ''; + switch (type) { + case 'Action': + entityName = 'MES_PROD_ACTION'; + break; + case 'Node': + entityName = 'MES_PROD_OPER'; + break; + } + values.AUTH_ORG = useUserStore().getUserInfo.orgCode; + values.AUTH_PROD = useUserStore().getUserInfo.prodCode; + SaveEntity(values, true, entityName).then((action) => { + if (action.IsSuccessed) { + emit('success'); + } }); - }); - }, + resolve(true); + }), /** * @description: 寮瑰嚭閫夋嫨妗嗘墦寮�鏂规硶 * @param {Fn} openItemModal @@ -318,28 +287,47 @@ * @param {*} u * @return {*} */ - GetSelectSuccess: (d, u, ...args) => { + GetSelectSuccess: async (d, u, ...args) => { let value = {}; switch (args[0]) { case 'scanadd': value = { - RULE_CODE: d.values['val'], + value: { + RULE_CODE: d.values['val'], + }, + isShow: false, }; break; case 'assyadd': value = { - ITEM_CODE: d.values['val'], + value: { + ITEM_CODE: d.values['val'], + }, + isShow: false, }; break; case 'printadd': value = { - LABEL_CODE: d.values['val'], + value: { + LABEL_CODE: d.values['val'], + }, + isShow: false, }; break; case 'pkgadd': + const ents = await getEntity({ + sqlcmd: `RULE_CODE ='${d.values['val']}'`, + entityName: 'V_BAS_PKG_DTL', + order: '', + }); value = { - pkgRULE_CODE: d.values['val'], + value: { + PKG_CODE: d.values['val'], + }, + isShow: true, + data: ents.Data.Items, }; + break; case 'addRoute': if (isNullOrEmpty(args[1]['CODE'])) { createErrorModal({ @@ -353,40 +341,113 @@ for (i = 0; i < codes.length; i++) { if (d.which == 'addRoute') { RouteToProd({ rotId: codes[i], prodCode: args[1]['CODE'] }); - } else { - RouteToCust({ rotId: codes[i], prodCode: args[1]['CODE'], custCode: '' }); } } 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; + 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: 鑾峰彇妯℃�佹搴旂敤鍒楄〃 + * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃 ['scanadd', 'assyadd', 'testadd', 'auditadd', 'printadd', 'pkgadd'] * @return {*} */ GetUseModals: () => { return { addRoute: useModal(), addCustomer: useModal(), + editRoute: useModal(), + scanadd: useModal(), + assyadd: useModal(), + testadd: useModal(), + auditadd: useModal(), + printadd: useModal(), + pkgadd: useModal(), + }; + }, + /** + * @description: 鑾峰彇琛ㄦ牸use鍒楄〃 + * @param {string} type + * @param {array} args + * @return {*} + */ + GetUseTables: (data: Ref<{}>, ...args) => { + // data.value['Table'] = []; + return { + Table: useTable({ + title: '鍒楄〃淇℃伅', + // api: getListByPage, + // searchInfo: { TABLE_NAME: 'V_BAS_PKG_DTL' }, + dataSource: data.value['Table'], + columns: GetBaseColumns('', args[0], data), + maxHeight: 520, + useSearchForm: false, + showTableSetting: false, + bordered: true, + canResize: true, + showIndexColumn: false, + // rowSelection: { + // type: 'radio', //'checkbox' + // }, + actionColumn: { + width: 100, + title: '鎿嶄綔', + dataIndex: 'action', + slots: { customRender: 'action' }, + fixed: 'right', + }, //鑷畾涔夋搷浣滃垪 + }), + }; + }, + GetUseForm: () => { + return { + Action: useForm({ + labelWidth: 145, + schemas: methods.GetCrudForm('Action'), + actionColOptions: { + offset: 8, + span: 24, + }, + wrapperCol: { + span: 15, + }, + showActionButtonGroup: true, + submitButtonOptions: { + text: '淇濆瓨', + }, + }), + Node: useForm({ + labelWidth: 145, + schemas: methods.GetCrudForm('Node'), + actionColOptions: { + offset: 8, + span: 24, + }, + wrapperCol: { + span: 15, + }, + showActionButtonGroup: true, + submitButtonOptions: { + text: '淇濆瓨', + }, + }), }; }, /** @@ -394,29 +455,42 @@ * @param {string} type * @return {*} */ - GetTitle: () => { + GetTitle: (type: string) => { return { - configTitle: '琛屼负閰嶇疆', - navTitle: '娣诲姞宸ヨ壓璺嚎', + configTitle: type == 'Action' ? '琛屼负閰嶇疆' : '宸ュ簭閰嶇疆', + navTitle: type == 'Product' ? '娣诲姞宸ヨ壓璺嚎' : '宸ヨ壓璺嚎缁存姢', + tableTitle: type == 'Action' ? '鍖呰灞傜骇鍒楄〃' : '', }; }, /** - * @description: 鏍规嵁閫変腑鐨勬爲鑺傜偣鍒ゆ柇瑕佸垏鎹㈠摢涓粍浠� + * @description: 鏍规嵁閫変腑鐨勬爲鑺傜偣杩斿洖涓婚〉闈紝鑷畾涔夋柟娉曪紝杩欓噷鏄垽鏂鍒囨崲鍝釜缁勪欢 * @param {Ref} selectedNodes * @return {*} */ SelectNode: (selectedNodes: Ref<any[]>) => { - let result = { showConfig: false, showNav: false }; - if (isNullOrUnDef(selectedNodes)) { + let result = { + showConfig: false, + showNav: false, + type: selectedNodes.value[0].type, + nodes: selectedNodes.value, + showOtherTable: false, + }; + if (isNullOrUnDef(selectedNodes.value)) { return result; } - if (selectedNodes.value[0].type == 'Product') { + if (selectedNodes.value[0].type == 'Product' || selectedNodes.value[0].type == 'Route') { result.showNav = true; result.showConfig = false; + result.showOtherTable = false; } - if (selectedNodes.value[0].type == 'Action') { + if (selectedNodes.value[0].type == 'Action' || selectedNodes.value[0].type == 'Node') { result.showNav = false; result.showConfig = true; + if (selectedNodes.value[0].type == 'Action') { + result.showOtherTable = true; + } else { + result.showOtherTable = false; + } } return result; }, @@ -424,25 +498,43 @@ * @description: 鑾峰彇瀵艰埅椤� * @return {*} */ - GetNavItems: () => { - return [ - { - 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, - }, - ] as NavItem[]; + 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; }, /** * @description: 瀵艰埅椤甸潰鍒囨崲鎸夐挳鏃惰皟鐢ㄦ柟娉� @@ -482,7 +574,7 @@ ], tableName: 'MES_ROUTE', rowKey: 'ROT_CODE', - returnFieldName: 'ROUTE_CODE', //杩斿洖鍊艰璧嬪�肩殑瀛楁鍚嶇О + returnFieldName: ['ROUTE_CODE'], //杩斿洖鍊艰璧嬪�肩殑瀛楁鍚嶇О searchInfo: { TABLE_NAME: 'MES_ROUTE' }, which: action, }); @@ -492,10 +584,198 @@ title: '璇峰畬鎴愪互涓嬫楠�', }); break; + case 'editRoute': + args[1](true, { rotId: args[2][0].id, slotName: '' }); + 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: 鑷畾涔夋柟娉� + * @param {string} type + * @param {array} args + * @return {*} + */ + CustFunc: async (param: CustModalParams) => { + if (param['ctype'] == '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['Table'].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['Table']); + } + }, + /** + * @description: 鑾峰彇鍙抽敭鑿滃崟鍒楄〃 + * @param {EventDataNode} node + * @return {*} + */ + GetRightMenuList: (node: EventDataNode, ...args): ContextMenuItem[] => { + const emit = args[0]; + const menu = [ + // { + // label: '鏂板', + // handler: () => { + // console.log('鐐瑰嚮浜嗘柊澧�', node); + // }, + // icon: 'bi:plus', + // }, + { + label: '鍒犻櫎', + handler: () => { + console.log('鐐瑰嚮浜嗗垹闄�', node); + DeleteProdRoute({ rotId: node.id, rotCode: node.code, prodCode: args[1] }).then( + (action) => { + if (action.IsSuccessed) { + emit('deletenode', node); + } else { + createErrorModal({ + title: t('sys.api.errorTip'), + content: t(action.LocaleMsg), + }); + } + }, + ); + }, + icon: 'bx:bxs-folder-open', + }, + ]; + return node.type == 'Route' ? menu : []; }, }; + /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport锛屼緵涓婇潰鐨勬柟娉曡皟鐢� */ + + let columns: BasicColumn[] = []; + /** + * @description: 鑾峰彇琛ㄦ牸瀛楁Json + * @param {string} type + * @return {*} + */ + function GetBaseColumns(type: string, emit, data: Ref<{}>) { + columns = [ + { + dataIndex: 'PKG_RULE_ID', + title: '鍖呰瑙勫垯ID', + ifShow: false, + sorter: true, + resizable: true, + }, + { + dataIndex: 'PKG_CODE', + title: '鍖呰缂栫爜', + ifShow: false, + sorter: true, + resizable: true, + customRender: () => {}, + }, + { + dataIndex: 'PKG_NAME', + title: '鍖呰鍚嶇О', + ifShow: true, + sorter: true, + resizable: true, + customRender: () => {}, + }, + { + dataIndex: 'PKG_QTY', + title: '鍖呰鏁伴噺', + ifShow: true, + sorter: true, + resizable: true, + customRender: () => {}, + }, + { + dataIndex: 'PKG_LEVEL', + title: '鍖呰灞傜骇', + ifShow: true, + sorter: true, + resizable: true, + customRender: () => {}, + }, + { + dataIndex: 'LABEL_CODE', + title: '鏍囩妯℃澘缂栫爜', + // edit: true, + // editRule: true, + ifShow: true, + sorter: true, + resizable: true, + // editComponent: 'Input', + // editComponentProps: (column) => { + // return { + // onClick: (event) => { + // console.log(column); + // }, + // }; + // }, + // customCell: (record, rowIndex) => { + // return { + // onClick: (event) => { + // console.log(record); + // }, + // }; + // }, + }, + ]; + return columns; + } + + /** + * @description: 寮瑰嚭閫夋嫨妗�-鐗╂枡閫夋嫨妗嗛厤缃� + * @return {*} + */ const itemCodeModalCfg = { title: '鐗╂枡鍒楄〃', schemas: [ @@ -529,6 +809,10 @@ searchInfo: { TABLE_NAME: 'BAS_ITEM' }, }; + /** + * @description: 寮瑰嚭閫夋嫨妗�-瑙勫垯閫夋嫨妗嗛厤缃� + * @return {*} + */ const ruleModalCfg = { title: '瑙勫垯鍒楄〃', schemas: [ @@ -562,6 +846,10 @@ searchInfo: { TABLE_NAME: 'BAS_CODE_RULE' }, }; + /** + * @description: 寮瑰嚭閫夋嫨妗�-鎵撳嵃妯℃澘閫夋嫨妗嗛厤缃� + * @return {*} + */ const printModalCfg = { title: '鎵撳嵃妯℃澘鍒楄〃', schemas: [ @@ -628,6 +916,502 @@ 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: 11 }, + ifShow: ({ values }) => isScan(values.ACT_TYPE), + }, + { + field: '0', + label: '1', + defaultValue: '', + component: 'Input', + colProps: { span: 1, pull: 1 }, + ifShow: ({ values }) => isScan(values.ACT_TYPE), + colSlot: 'scanadd', + }, + { + field: 'ITEM_CODE', + label: '缁勮涓婃枡', + colProps: { span: 11 }, + component: 'Input', + ifShow: ({ values }) => isAssy(values.ACT_TYPE), + }, + { + field: '00', + label: '1', + defaultValue: '', + component: 'Input', + colProps: { span: 1, pull: 1 }, + ifShow: ({ values }) => isAssy(values.ACT_TYPE), + colSlot: 'assyadd', + }, + { + field: 'TEST_CODE', + label: '浜у搧娴嬭瘯', + colProps: { span: 11 }, + component: 'Input', + ifShow: ({ values }) => isTest(values.ACT_TYPE), + }, + { + field: 'test0', + label: '1', + defaultValue: '', + component: 'Input', + colProps: { span: 1, pull: 1 }, + ifShow: ({ values }) => isTest(values.ACT_TYPE), + colSlot: 'testadd', + }, + { + field: 'SAPL_CODE', + label: '浜у搧鎶芥', + colProps: { span: 11 }, + component: 'Input', + ifShow: ({ values }) => isAudit(values.ACT_TYPE), + }, + { + field: 'audit0', + label: '1', + defaultValue: '', + component: 'Input', + colProps: { span: 1, pull: 1 }, + ifShow: ({ values }) => isAudit(values.ACT_TYPE), + colSlot: 'auditadd', + }, + { + field: 'LABEL_CODE', + label: '鏍囩鎵撳嵃', + colProps: { span: 11 }, + component: 'Input', + ifShow: ({ values }) => isPrint(values.ACT_TYPE), + }, + { + field: 'print0', + label: '1', + defaultValue: '', + component: 'Input', + colProps: { span: 1, pull: 1 }, + ifShow: ({ values }) => isPrint(values.ACT_TYPE), + colSlot: 'printadd', + }, + { + field: 'PKG_CODE', + label: '鍖呰瑙勫垯', + colProps: { span: 11 }, + component: 'Input', + ifShow: ({ values }) => isPackage(values.ACT_TYPE), + }, + { + field: 'pkg0', + label: '1', + defaultValue: '', + component: 'Input', + colProps: { span: 1, pull: 1 }, + ifShow: ({ values }) => isPackage(values.ACT_TYPE), + colSlot: 'pkgadd', + }, + { + field: 'REMARK', + label: '澶囨敞', + component: 'Input', + colProps: { span: 12 }, + }, + { + field: 'OPTION_1', + label: '琛屼负閫夐」1', + component: 'Input', + colProps: { span: 12 }, + show: false, + }, + ]; + + /** + * @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, + defaultValue: 'N', + 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', + defaultValue: 'N', + colProps: { span: 12 }, + componentProps: { + options: [ + { + label: '鏄�', + value: 'Y', + key: 'Y', + }, + { + label: '鍚�', + value: 'N', + key: 'N', + }, + ], + }, + }, + { + field: 'CAN_SKIP', + label: '鏄惁鍏佽璺崇珯', + required: true, + defaultValue: 'N', + component: 'Select', + colProps: { span: 12 }, + componentProps: { + options: [ + { + label: '鏄�', + value: 'Y', + key: 'Y', + }, + { + label: '鍚�', + value: 'N', + key: 'N', + }, + ], + }, + }, + { + field: 'IS_INPUT', + label: '鏄惁鎶曞叆绔�', + required: true, + defaultValue: 'N', + component: 'Select', + colProps: { span: 12 }, + componentProps: { + options: [ + { + label: '鏄�', + value: 'Y', + key: 'Y', + }, + { + label: '鍚�', + value: 'N', + key: 'N', + }, + ], + }, + }, + { + field: 'IS_OUTPUT', + label: '鏄惁浜у嚭绔�', + required: true, + defaultValue: 'N', + component: 'Select', + colProps: { span: 12 }, + componentProps: { + options: [ + { + label: '鏄�', + value: 'Y', + key: 'Y', + }, + { + label: '鍚�', + value: 'N', + key: 'N', + }, + ], + }, + }, + { + field: 'ALLOW_DFT_IN', + label: '鏄惁鍏佽涓嶈壇鍝佽繘绔�', + required: true, + defaultValue: 'N', + 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 }, + }, + ]; + + const crudForms = { + BAS_PKG_DTL: [ + { + label: '鍖呰瑙勫垯ID', + field: 'PKG_RULE_ID', + component: 'Input', + colProps: { + span: 24, + }, + dynamicDisabled: ({ values }) => { + return true; + }, + }, + { + label: '鍖呰灞傜骇', + field: 'PKG_LEVEL', + component: 'Input', + colProps: { + span: 24, + }, + dynamicDisabled: ({ values }) => { + return true; + }, + }, + { + field: 'PKG_CODE', + label: '鍖呰/杞藉叿缂栫爜', + component: 'Input', + colProps: { + span: 24, + }, + dynamicDisabled: ({ values }) => { + return true; + }, + }, + { + label: '鍖呰鏁伴噺', + field: 'PKG_QTY', + component: 'Input', + colProps: { + span: 24, + }, + dynamicDisabled: ({ values }) => { + return true; + }, + }, + { + field: 'LABEL_CODE', + label: '妯℃澘缂栫爜', + component: 'Input', + show: true, + // required: true, + colProps: { + span: 22, + }, + }, + { + field: 'BAS_LABEL_TEMP1PSelect_0', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+PSelect_0锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝PSelect_0杩欐槸涓浐瀹氬悗缂� + label: '1', + defaultValue: 'BAS_LABEL_TEMP', + component: 'Input', + colProps: { span: 2 }, + colSlot: 'BAS_LABEL_TEMP1add', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+add锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝add杩欐槸涓浐瀹氬悗缂� + }, + { + label: '鍖呰鍚嶇О', + field: 'PKG_NAME', + component: 'Input', + colProps: { + span: 24, + }, + show: false, + }, + { + label: '澶囨敞', + field: 'REMARK', + component: 'Input', + colProps: { + span: 24, + }, + dynamicDisabled: ({ values }) => { + return true; + }, + }, + { + label: 'ID', + field: 'ID', + component: 'Input', + colProps: { + span: 24, + }, + show: false, + }, + ] as FormSchema[], + }; + return [methods]; } -- Gitblit v1.9.3