From 7cf58a4d2fff6b9cba9029d4d43ba9744dbef864 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期四, 18 七月 2024 15:49:03 +0800
Subject: [PATCH] 工单更新

---
 src/views/tigerprojects/system/role/RoleDrawer.vue |   86 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 79 insertions(+), 7 deletions(-)

diff --git a/src/views/tigerprojects/system/role/RoleDrawer.vue b/src/views/tigerprojects/system/role/RoleDrawer.vue
index 33ba55f..296d7ac 100644
--- a/src/views/tigerprojects/system/role/RoleDrawer.vue
+++ b/src/views/tigerprojects/system/role/RoleDrawer.vue
@@ -33,6 +33,19 @@
           title="缁勭粐鍒嗛厤"
         />
       </template>
+      <template #fty="{ model, field }">
+        <BasicTree
+          v-model:value="model[field]"
+          :treeData="treeDataProd"
+          :renderIcon="createIconOrg"
+          :fieldNames="{ title: 'NAME', key: 'ID' }"
+          @gethalfCheckedKeys="gethalfCheckedKeysFty"
+          :expanded-keys="expandedKeysFty"
+          checkable
+          toolbar
+          title="宸ュ巶鍒嗛厤"
+        />
+      </template>
       <template #wh="{ model, field }">
         <BasicTree
           v-model:value="model[field]"
@@ -56,21 +69,34 @@
   import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
   import { BasicTree, TreeItem } from '/@/components/Tree';
 
-  import { getMenuList, SaveRole, getRMList, getROList, getWhList } from '/@/api/tigerapi/system';
-  import { getTreeList } from '/@/api/tigerapi/dept';
+  import {
+    getMenuList,
+    SaveRole,
+    getRMList,
+    getROList,
+    getWhList,
+    getProdList,
+    getEntity,
+    convertToTree,
+  } from '/@/api/tigerapi/system';
+  import { getProdTreeList, getTreeList } from '/@/api/tigerapi/dept';
   import { getTreeList as getTreeListWh } from '/@/api/tigerapi/wms/house';
+
   type CheckKeys = KeyType[] | { checked: string[] | number[]; halfChecked: string[] | number[] };
   type _expandAll = KeyType[] | undefined;
   const emits = defineEmits(['success', 'register']);
   const isUpdate = ref(true);
   const treeData = ref<TreeItem[]>([]);
   const treeDataOrg = ref<TreeItem[]>([]);
+  const treeDataProd = ref<TreeItem[]>([]);
   const treeDataWh = ref<TreeItem[]>([]);
   const expandedKeys = ref<_expandAll>([]);
   const expandedKeysOrg = ref<_expandAll>([]);
+  const expandedKeysFty = ref<_expandAll>([]);
   const expandedKeysWh = ref<_expandAll>([]);
   const halfCheckedKeys = ref<CheckKeys>([]);
   const halfCheckedKeysOrg = ref<CheckKeys>([]);
+  const halfCheckedKeysFty = ref<CheckKeys>([]);
   const halfCheckedKeysWh = ref<CheckKeys>([]);
   const gethalfCheckedKeys = (obj) => {
     halfCheckedKeys.value = obj;
@@ -78,6 +104,10 @@
   };
   const gethalfCheckedKeysOrg = (obj) => {
     halfCheckedKeysOrg.value = obj;
+    console.log(obj);
+  };
+  const gethalfCheckedKeysFty = (obj) => {
+    halfCheckedKeysFty.value = obj;
     console.log(obj);
   };
   const gethalfCheckedKeysWh = (obj) => {
@@ -96,10 +126,15 @@
     setDrawerProps({ confirmLoading: false });
     // 闇�瑕佸湪setFieldsValue涔嬪墠鍏堝~鍏卼reeData锛屽惁鍒橳ree缁勪欢鍙兘浼氭姤key not exist璀﹀憡
     if (unref(treeData).length === 0) {
-      treeData.value = (await getMenuList()) as any as TreeItem[];
+      treeData.value = (await getMenuList({menuName: 'SYSTEM'})) as any as TreeItem[];
     }
     if (unref(treeDataOrg).length === 0) {
       treeDataOrg.value = (await getTreeList()) as any as TreeItem[];
+    }
+    if (unref(treeDataProd).length === 0) {
+      // treeDataProd.value = (await getProdTreeList()) as any as TreeItem[];
+      let prodTreeData = await getEntity({sqlcmd: '', entityName: 'V_PROD_TREE', order: ''});
+      treeDataProd.value = convertToTree(prodTreeData.Data.Items,'PARENT_CODE', 'CODE', '');
     }
     if (unref(treeDataWh).length === 0) {
       treeDataWh.value = (await getTreeListWh()) as any as TreeItem[];
@@ -121,18 +156,24 @@
       }
       //console.log(list,11);
       data.record.menu = list2;
+      halfCheckedKeys.value = list;
       expandedKeys.value = list;
       await getRuleOrg(data);
       await getRuleWh(data);
+      await getRuleProd(data);
       setFieldsValue({
         ...data.record,
       });
     }
   });
 
-  //鑾峰彇瑙掕壊瀵瑰簲鐨勭粍缁�
+  /**
+   * @description: 鑾峰彇瑙掕壊瀵瑰簲鐨勭粍缁�
+   * @param {*} data
+   * @return {*}
+   */  
   async function getRuleOrg(data) {
-    const orgList = await getROList(data.record.ID); 
+    const orgList = await getROList(data.record.ID);
     var hfList = [];
     var list = [];
     for (var key in orgList) {
@@ -145,12 +186,17 @@
       }
     }
     data.record.org = hfList;
+    halfCheckedKeysOrg.value = list;
     expandedKeysOrg.value = list;
   }
 
-  //鑾峰彇瑙掕壊瀵瑰簲鐨勪粨搴�
+  /**
+   * @description: 鑾峰彇瑙掕壊瀵瑰簲鐨勪粨搴�
+   * @param {*} data
+   * @return {*}
+   */  
   async function getRuleWh(data) {
-    const whList = await getWhList(data.record.ID); 
+    const whList = await getWhList(data.record.ID);
     var hfList = [];
     var list = [];
     for (var key in whList) {
@@ -163,7 +209,31 @@
       }
     }
     data.record.wh = hfList;
+    halfCheckedKeysWh.value = list;
     expandedKeysWh.value = list;
+  }
+
+  /**
+   * @description: 鑾峰彇瑙掕壊瀵瑰簲鐨勭敓浜�
+   * @param {*} data
+   * @return {*}
+   */  
+  async function getRuleProd(data) {
+    const prodList = await getProdList(data.record.ID);
+    var hfList = [];
+    var list = [];
+    for (var key in prodList) {
+      if (prodList[key].HALF_CHECK == 'N') {
+        var item2 = prodList[key].PROD_CODE as never;
+        hfList.push(item2);
+      } else {
+        var item = prodList[key].PROD_CODE as never;
+        list.push(item);
+      }
+    }
+    data.record.fty = hfList;
+    halfCheckedKeysFty.value = list;
+    expandedKeysFty.value = list;
   }
 
   const getTitle = computed(() => (!unref(isUpdate) ? '鏂板瑙掕壊' : '缂栬緫瑙掕壊'));
@@ -176,6 +246,8 @@
       values.menu = { checked: values.menu, halfChecked: currentValue };
       let curOrgValue = halfCheckedKeysOrg.value as [];
       values.org = { checked: values.org, halfChecked: curOrgValue };
+      let curFtyValue = halfCheckedKeysFty.value as [];
+      values.fty = { checked: values.fty, halfChecked: curFtyValue };
       let curWhValue = halfCheckedKeysWh.value as [];
       values.wh = { checked: values.wh, halfChecked: curWhValue };
       // TODO custom api

--
Gitblit v1.9.3