From af10c85c8f71ccdf2f60989a067804dd8b3aa667 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 26 六月 2024 19:21:13 +0800 Subject: [PATCH] 产品工艺路线更新 --- src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts | 487 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 459 insertions(+), 28 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts index c68938f..7098435 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts @@ -4,38 +4,469 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-22 00:04:06 + * @LastEditTime: 2024-06-26 18:41:16 */ +import { Ref, unref } from 'vue'; +import { GetRoutePTree } from '/@/api/tigerapi/mes/router'; +import { GetEnum, convertToTree, getEntity } from '/@/api/tigerapi/system'; +import { useLocale } from '/@/locales/useLocale'; +import { isNullOrEmpty } from '/@/utils/is'; +import { useI18n } from '/@/hooks/web/useI18n'; + +const { t } = useI18n(); +const { getLocale } = useLocale(); function _default() { - /** - * @description: 鑾峰彇鏍戝舰鍥炬爣 - * @param {Recordable} params - * @return {*} - */ -function CreateIcon(params: Recordable<any>) { - let icon = ''; - switch (params['type']) { - case 'Product': - icon = 'similar-product|svg'; - 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'; - break; - } - return icon; -} + 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 methods = { + /** + * @description: 鑾峰彇鏍戝舰鍥炬爣 + * @param {Recordable} params + * @return {*} + */ + CreateIcon: (params: Recordable<any>) => { + let icon = ''; + switch (params['type']) { + case 'Product': + icon = 'similar-product|svg'; + 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'; + break; + } + return icon; + }, + /** + * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl + * @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); + data.treeData = convertToTree(prodTreeData, 'pid', 'id', 'root'); + data.title = '宸ヨ壓璺嚎'; + data.fieldNames = { key: 'id', 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: 鑾峰彇琛ㄥ崟涓殑瀛楁鎻掓Ы鍒楄〃 + * @return {*} + */ + 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, + }); + }); + }, + /** + * @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'], + }; + break; + } + return value; + }, + }; -return [CreateIcon] + 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' }, + }; + + 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' }, + }; + + 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' }, + }; + + return [methods]; } export default _default; -- Gitblit v1.9.3