From 1e9630a56104f577fb4167f34c3bd879c907398b Mon Sep 17 00:00:00 2001 From: ccy <55274652@qq.com> Date: Sat, 29 Nov 2025 20:09:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=99=BB=E5=BD=95=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BB=A5=E5=8F=8Areset=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseComponents/EditBaseComponent/index.js | 18 ++++--- src/layout/Header.js | 6 +-- src/models/app.js | 4 +- src/models/login.js | 50 ++++++++++++++++--- 4 files changed, 60 insertions(+), 18 deletions(-) diff --git a/src/baseComponents/EditBaseComponent/index.js b/src/baseComponents/EditBaseComponent/index.js index 4055532..e11105e 100644 --- a/src/baseComponents/EditBaseComponent/index.js +++ b/src/baseComponents/EditBaseComponent/index.js @@ -2994,14 +2994,16 @@ params【字段属性】=值 if (btnConfig.customParams) { if (btnConfig.customParams.indexOf(',') == -1) { if (this.props.data && this.props.data.record && this.props.data.record.ID) { - let rule = [ - { - field: btnConfig.customParams, - operator: 1, - value: this.props.data.record.ID - } - ]; - tempData.rules = [...rule]; + if (btnConfig.customParams != 'reset') { + let rule = [ + { + field: btnConfig.customParams, + operator: 1, + value: this.props.data.record.ID + } + ]; + tempData.rules = [...rule]; + } } else if (btnConfig.customParams != null && btnConfig.customParams.indexOf('parentRecord') > -1) { //wyw BS057 弹窗 BS077 传递父项信息 到页面 let rule = [ diff --git a/src/layout/Header.js b/src/layout/Header.js index 5b6681e..830b17e 100644 --- a/src/layout/Header.js +++ b/src/layout/Header.js @@ -39,11 +39,11 @@ const Search = (props) => { const menuForms = []; const menuDatas = []; function traverseChild(item) { - if (!item.Menu.Nav_MenuForm || item.ChildMenus?.length) { - item.ChildMenus.forEach((x) => { + if (!item?.Menu?.Nav_MenuForm || item.ChildMenus?.length) { + item.ChildMenus?.forEach((x) => { traverseChild(x); }); - } else if (item.Menu.Nav_MenuForm) { + } else if (item.Menu?.Nav_MenuForm) { menuForms.push({ MenuName: item.Menu.NAME, ...item.Menu.Nav_MenuForm, diff --git a/src/models/app.js b/src/models/app.js index c61fa76..4d7d52a 100644 --- a/src/models/app.js +++ b/src/models/app.js @@ -1,5 +1,6 @@ import * as appService from '../services/app' import { getEnums } from '../utils/common' +import storage from '../utils/storage' import * as roleEditService from "../services/FM/roleEdit" import { routerRedux } from 'dva/router' import config from '../config' @@ -7,7 +8,7 @@ export default { namespace: 'app', state: { orgId: '', - enums: {}, + enums: storage('lacal').getItem('enums').val || {}, alarmId: '', // 显示报警面板 currVersion: null, addedTab: null, // 用于在其他页面添加 tab @@ -145,6 +146,7 @@ export default { }) } yield put({ type: 'save', payload: { enums: enums } }) + storage('lacal').setItem('enums', enums) return ret }, *addLoginOut ({ payload, onComplete }, { call, put }) { diff --git a/src/models/login.js b/src/models/login.js index f97021e..144866c 100644 --- a/src/models/login.js +++ b/src/models/login.js @@ -66,17 +66,20 @@ function hideLoading() { export default { namespace: "login", state: { - loginInfo: {}, - OrgId: "", - baseConfig: {}, - userId: "", - user: {}, + loginInfo: { Menus: storage("lacal").getItem("menus").val || [] }, + OrgId: storage("lacal").getItem("webOrgId").val || "", + baseConfig: storage("lacal").getItem("baseConfig").val || {}, + userId: (storage("lacal").getItem("webUserInfo").val || {}).ID || "", + user: storage("lacal").getItem("webUserInfo").val || {}, Tenant: storage("lacal").getItem("Tenant").val, Notifications: [], screenLocked: false, // 是否锁屏 - flatMenus: [], + flatMenus: storage("lacal").getItem("flatMenus").val || [], currActivatedTab: null, // 用于面包屑导航,同步于 model app currActivatedMenu: null, // 当前选中的菜单项,同步于 model app + roles: storage("lacal").getItem("roles").val || [], + rolePerm: storage("lacal").getItem("rolePerm").val || {}, + userType: storage("lacal").getItem("UserType").val || 0, }, subscriptions: { setup({ dispatch, history }) { @@ -258,6 +261,9 @@ export default { storage("lacal").setItem("departmentId", ret.User.DEPARTMENT_ID); storage("lacal").setItem("MineType", ret.User.MineType); storage("lacal").setItem("UserType", ret.UserType); + storage("lacal").setItem("baseConfig", ret.BaseConfig); + storage("lacal").setItem("roles", ret.Roles || []); + storage("lacal").setItem("rolePerm", ret.Nav_RolePerm || {}); const localStorage = window.localStorage; ret.FormConfigVersion && storage("lacal").setItem("formConfigVersion", ret.FormConfigVersion); @@ -266,6 +272,11 @@ export default { const copyMenus = cloneDeep(ret.Menus); recurseMenu(copyMenus, undefined, flatMenus); ret.Menus = copyMenus; + const safeFlatMenus = flatMenus.map(m => ({ ID: m.ID, NAME: m.NAME, CODE: m.CODE, MENU_LEVEL: m.MENU_LEVEL, idLevels: m.idLevels, nameLevels: m.nameLevels, menuLevels: m.menuLevels, Nav_MenuForm: m.Nav_MenuForm })); + const pruneMenus = (arr) => arr.map(it => ({ Node: { ID: it.Node.ID, NAME: it.Node.NAME, CODE: it.Node.CODE, MENU_LEVEL: it.Node.MENU_LEVEL, MineType: it.Node.MineType, Nav_MenuForm: it.Node.Nav_MenuForm }, Children: (it.Children && it.Children.length) ? pruneMenus(it.Children) : [] })); + const safeMenus = pruneMenus(copyMenus); + storage("lacal").setItem("menus", safeMenus); + storage("lacal").setItem("flatMenus", safeFlatMenus); const currentMineType = localStorage.getItem("currentMineType"); if (currentMineType) { @@ -348,13 +359,40 @@ export default { if (!OrgId) { const webOrgId = storage("lacal").getItem("webOrgId").val || storage("lacal").getItem("Orgid").val; const userInfo = storage("lacal").getItem("webUserInfo").val; + const flatMenus = storage("lacal").getItem("flatMenus").val; + const menus = storage("lacal").getItem("menus").val; + const enums = storage("lacal").getItem("enums").val; + const baseConfig = storage("lacal").getItem("baseConfig").val; + const roles = storage("lacal").getItem("roles").val; + const rolePerm = storage("lacal").getItem("rolePerm").val; if (webOrgId) { const payload = { OrgId: webOrgId }; if (userInfo) { payload.user = userInfo; payload.userId = userInfo.ID; } + if (flatMenus) { + payload.flatMenus = flatMenus; + } + if (baseConfig) { + payload.baseConfig = baseConfig; + } + if (menus) { + const tmpFlatMenus = []; + recurseMenu(menus, undefined, tmpFlatMenus); + payload.loginInfo = { Menus: menus }; + payload.flatMenus = payload.flatMenus && payload.flatMenus.length ? payload.flatMenus : tmpFlatMenus; + } + if (roles) { + payload.roles = roles; + } + if (rolePerm) { + payload.rolePerm = rolePerm; + } yield put({ type: "save", payload }); + if (enums) { + yield put({ type: "app/save", payload: { enums } }); + } onSuccess instanceof Function && onSuccess(); } else { onFail instanceof Function && onFail();