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