|
@@ -6,6 +6,9 @@
|
|
|
* { user: { info: { loginChangeGroupVOList: [{ groupId, groupName, loginChangeRoleVOList }] } } }
|
|
* { user: { info: { loginChangeGroupVOList: [{ groupId, groupName, loginChangeRoleVOList }] } } }
|
|
|
* 独立运行:private-vuex-hr;乾坤子应用:vuex-hr
|
|
* 独立运行:private-vuex-hr;乾坤子应用:vuex-hr
|
|
|
*
|
|
*
|
|
|
|
|
+ * 兜底:sessionStorage / localStorage 都没有时,读 utils/login-org-cache.js 的
|
|
|
|
|
+ * localStorage 镜像(同一次登录时写入),避免新标签页出现「机构只剩 1 个」的半登录态。
|
|
|
|
|
+ *
|
|
|
* 约定:
|
|
* 约定:
|
|
|
* 1. 所有「所属机构」下拉选项一律取 loginChangeGroupVOList,不再调 /main/group/getGroupList;
|
|
* 1. 所有「所属机构」下拉选项一律取 loginChangeGroupVOList,不再调 /main/group/getGroupList;
|
|
|
* 2. 接口需要的所属机构 id 默认取缓存机构列表第一条(用户所属机构有多个时默认第一个),
|
|
* 2. 接口需要的所属机构 id 默认取缓存机构列表第一条(用户所属机构有多个时默认第一个),
|
|
@@ -13,6 +16,7 @@
|
|
|
*/
|
|
*/
|
|
|
import { SYSTEM_NAME } from '@/config/setting';
|
|
import { SYSTEM_NAME } from '@/config/setting';
|
|
|
import { getCurrentUser } from '@/utils/token-util';
|
|
import { getCurrentUser } from '@/utils/token-util';
|
|
|
|
|
+import { readLoginOrgs } from '@/utils/login-org-cache';
|
|
|
|
|
|
|
|
/** vuex 持久化缓存键(顺序即读取优先级) */
|
|
/** vuex 持久化缓存键(顺序即读取优先级) */
|
|
|
function vuexCacheKeys() {
|
|
function vuexCacheKeys() {
|
|
@@ -42,7 +46,10 @@ export function getLoginUserInfo() {
|
|
|
|
|
|
|
|
/** 登录缓存中的可选机构列表(loginChangeGroupVOList 原始结构) */
|
|
/** 登录缓存中的可选机构列表(loginChangeGroupVOList 原始结构) */
|
|
|
export function getLoginGroups() {
|
|
export function getLoginGroups() {
|
|
|
- const list = getLoginUserInfo().loginChangeGroupVOList;
|
|
|
|
|
|
|
+ const cached = getLoginUserInfo().loginChangeGroupVOList;
|
|
|
|
|
+ /* 缓存列表缺失(如新标签页 sessionStorage 为空)时,用 localStorage 镜像兜底 */
|
|
|
|
|
+ const list =
|
|
|
|
|
+ Array.isArray(cached) && cached.length ? cached : readLoginOrgs();
|
|
|
if (!Array.isArray(list)) return [];
|
|
if (!Array.isArray(list)) return [];
|
|
|
return list.filter((item) => item && isValidId(item.groupId));
|
|
return list.filter((item) => item && isValidId(item.groupId));
|
|
|
}
|
|
}
|