From 78999ce1626d2a786f3a705281eeba79c2f1d6dd Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 22 十月 2024 09:32:27 +0800
Subject: [PATCH] 工艺页面缓存优化

---
 src/store/modules/prodRoute.ts |  160 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 131 insertions(+), 29 deletions(-)

diff --git a/src/store/modules/prodRoute.ts b/src/store/modules/prodRoute.ts
index 51da415..5e60412 100644
--- a/src/store/modules/prodRoute.ts
+++ b/src/store/modules/prodRoute.ts
@@ -4,61 +4,163 @@
  * @version:
  * @Date: 2024-06-18 15:09:47
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-10-08 16:10:48
+ * @LastEditTime: 2024-10-22 08:37:57
  */
 import { defineStore } from 'pinia';
 import { store } from '@/store';
-import { useI18n } from '@/hooks/web/useI18n';
-import { useMessage } from '@/hooks/web/useMessage';
-import { h } from 'vue';
-import { MesRotTree } from '/@/api/tigerapi/model/mesModel';
+import { MesRotTree, PageRotTree } from '/@/api/tigerapi/model/mesModel';
+import { SetDefaultRoute } from '/@/api/tigerapi/mes/router';
+import { useUserStore } from './user';
+import { findParent } from '/@/api/tigerapi/system';
 
 interface ProdRouteState {
-  curProdRotTree: Nullable<MesRotTree>;
-  rotList: MesRotTree[];
+  curProdRotTree: PageRotTree[];
+  curConfig: any;
+  curSelectedNodes: any[];
+  ItemCode: string;
+  name: string;
+  curDtl: any;
+  changeToCPPage: boolean;
 }
 
 export const useProdRouteStore = defineStore({
   id: 'app-prodrot',
   state: (): ProdRouteState => ({
-    curProdRotTree: null,
-    rotList: [],
+    curProdRotTree: [],
+    curConfig: {},
+    curSelectedNodes: [],
+    ItemCode: '',
+    curDtl: {},
+    changeToCPPage: false,
+    name: '',
   }),
   getters: {
-    getCurProdRotTree(state): MesRotTree | null {
+    getCurProdRotTree(state): PageRotTree[] {
       return state.curProdRotTree;
     },
-    getRotList(state): MesRotTree[] {
-      return state.rotList;
+    getCurConfig(state): any {
+      return state.curConfig;
+    },
+    getCurSelectedNodes(state): any[] {
+      return state.curSelectedNodes;
+    },
+    getItemCodes(state): string {
+      return state.ItemCode;
+    },
+    getcurDtl(state): any {
+      return state.curDtl;
+    },
+    getChangeToCPPage(state): boolean {
+      return state.changeToCPPage;
+    },
+    getname(state): string {
+      return state.name;
     },
   },
   actions: {
-    getRotList(roleList: MesRotTree[]) {
-      this.rotList = roleList;
+    setCurPkgConfig(val: any) {
+      this.curConfig = val;
     },
-    setUserInfo(info: MesRotTree | null) {
-      this.curProdRotTree = info;
+    /**
+     * @description: 褰撳墠宸ヨ壓鏍戞暟鎹�
+     * @param {any} val
+     * @return {*}
+     */
+    setCurProdRotTree(val: any) {
+      if (!this.curProdRotTree.some((q) => q.name == val.name)) {
+        this.curProdRotTree.push(val);
+      } else {
+        if (val.length == 0) {
+          this.curProdRotTree = [];
+        } else {
+          this.curProdRotTree.map((item) => {
+            if (item.name == val.name) {
+              item.treeInfo = val.treeInfo;
+            }
+          });
+        }
+      }
+    },
+    /**
+     * @description: 褰撳墠閫変腑鑺傜偣
+     * @param {any} val
+     * @return {*}
+     */
+    setCurSelectedNodes(val: any) {
+      if (!this.curSelectedNodes.some((q) => q.name == val.name)) {
+        this.curSelectedNodes.push(val);
+      } else {
+        if (val.length == 0) {
+          this.curSelectedNodes = [];
+        } else {
+          this.curSelectedNodes.map((item) => {
+            if (item.name == val.name) {
+              item.SelectedNodes = val.SelectedNodes;
+            }
+          });
+        }
+      }
+    },
+    setItemCode(val: string) {
+      this.ItemCode = val;
+    },
+    setcurDtl(val: any) {
+      this.curDtl = val;
+    },
+    setChangeToCPPage(val: boolean) {
+      this.changeToCPPage = val;
+    },
+    setname(val: string) {
+      this.name = val;
     },
     resetState() {
-      this.curProdRotTree = null;
-      this.rotList = [];
+      this.curProdRotTree = [];
+      this.curConfig = {};
+      this.curSelectedNodes = [];
+      this.curDtl = {};
+      this.name = '';
     },
     /**
      * @description: 璁剧疆榛樿宸ヨ壓璺嚎
      * @return {*}
-     */    
-    setDefaulRoute() {
-      const { createConfirm } = useMessage();
-      const { t } = useI18n();
-      createConfirm({
-        iconType: 'warning',
-        title: () => h('span', t('sys.app.logoutTip')),
-        content: () => h('span', t('sys.app.logoutMessage')),
-        onOk: async () => {
-          // 涓诲姩鐧诲嚭锛屼笉甯edirect鍦板潃
-          // await this.logout(true);
+     */
+    async setDefaulRoute(param) {
+      /* 璁剧疆榛樿宸ヨ壓璺嚎 */
+      var action = await SetDefaultRoute({
+        rotCode: param.others['code'],
+        prodCode: param.keyCode,
+        custCode: '',
+        rotId: '',
+        options: {
+          //鏍规嵁鎹偣鏌ヨ锛屽繀闇�甯﹁繖涓弬鏁�
+          UserId: useUserStore().getUserInfo.userId as string,
+          ByOrg: true,
+          CurOrg: useUserStore().getUserInfo.orgCode as string,
+          ByProd: false,
+          ByWh: false,
+          OrgCode: useUserStore().getUserInfo.orgCode as string,
         },
+        isDefault: param.others['isDefault'],
       });
+      if (action.IsSuccessed) {
+        const rotTree = this.curProdRotTree.filter((q) => q.name == this.getname);
+        rotTree[0].treeInfo.children[0].children.map((item) => {
+          if (item.code == param.others['code']) {
+            item.isDefault = true;
+          } else {
+            item.isDefault = false;
+          }
+        });
+      }
+      return action;
+    },
+    /**
+     * @description: 鏌ユ壘鐖堕」骞惰繑鍥�
+     * @param {string} tid
+     * @return {*}
+     */
+    getParent(tid: string): MesRotTree {
+      return findParent(this.getCurProdRotTree, tid) as unknown as MesRotTree;
     },
   },
 });

--
Gitblit v1.9.3