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