@choerodon/master
Version:
A package of Master for Choerodon platform.
1,019 lines (861 loc) • 40.6 kB
JavaScript
var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15;
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
/* eslint-disable */
/**
* Created by jaywoods on 2017/6/24.
*/
import { action, computed, get, observable, set } from 'mobx';
import _ from 'lodash';
import groupBy from 'lodash/groupBy';
import concat from 'lodash/concat';
import orderBy from 'lodash/orderBy';
import flatten from 'lodash/flatten';
import axios from "../../../components/axios";
import AppState from "./AppState";
import HeaderStore from "./HeaderStore";
var BATCH_SIZE = 30;
var isLoadMenu = [];
var loadingTenant = []; // 这里记录了查询菜单失败的menuType 下次进来直接返回空 避免失败一次 就不在查询菜单的问题
var failedMenuType = [];
export function getMenuType() {
var menuType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : AppState.currentMenuType;
var isUser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AppState.isTypeUser;
return isUser ? 'user' : menuType.type; // return menuType.type;
}
function filterEmptyMenus(menuData, parent) {
var newMenuData = menuData.filter(function (item) {
var name = item.name,
type = item.type,
subMenus = item.subMenus;
return name !== null && (type === 'menu' || subMenus && filterEmptyMenus(subMenus, item).length > 0 || item.modelCode); // return name !== null && (type === 'menu_item' || (subMenus !== null && filterEmptyMenus(subMenus, item).length > 0));
});
if (parent) {
parent.subMenus = newMenuData;
}
return newMenuData;
}
function changeMenuLevel(_ref) {
var level = _ref.level,
child = _ref.child;
child.forEach(function (item) {
item.level = level;
if (item.subMenus) {
changeMenuLevel({
level: level,
child: item.subMenus
});
}
});
}
function insertLcMenuOneMenu(menuItem, groupLcMenu, groupParentLcMenu, parentArr) {
if (menuItem.modelCode) {
return;
}
if (groupLcMenu[menuItem.code]) {
var keyGroup = orderBy(groupLcMenu[menuItem.code], ['sort'], ['asc']);
var insertIndex = parentArr.findIndex(function (r) {
return r === menuItem;
});
if (insertIndex !== -1) {
keyGroup.forEach(function (o, i) {
parentArr.splice(insertIndex + 1 + i, 0, o);
});
}
}
if (groupParentLcMenu[menuItem.code]) {
menuItem.subMenus = menuItem.subMenus || [];
var orderGroup = orderBy(groupParentLcMenu[menuItem.code], ['sort'], ['asc']);
menuItem.subMenus = concat(orderGroup, menuItem.subMenus);
}
if (menuItem.subMenus) {
menuItem.subMenus.forEach(function (item) {
return insertLcMenuOneMenu(item, groupLcMenu, groupParentLcMenu, menuItem);
});
}
}
function insertLcMenu(menuData, lcMenu) {
var groupLcMenu = groupBy(lcMenu, 'afterBy');
var groupNullLcMenu = groupLcMenu["null"] || [];
var groupParentLcMenu = groupBy(groupNullLcMenu, 'parentCode');
menuData.forEach(function (item) {
return insertLcMenuOneMenu(item, groupLcMenu, groupParentLcMenu, menuData);
});
}
var MenuStore = (_class = /*#__PURE__*/function () {
function MenuStore() {
_classCallCheck(this, MenuStore);
_initializerDefineProperty(this, "menuGroup", _descriptor, this);
_initializerDefineProperty(this, "requestedSiteMenu", _descriptor2, this);
_initializerDefineProperty(this, "activeMenuRoot", _descriptor3, this);
_initializerDefineProperty(this, "collapsed", _descriptor4, this);
_initializerDefineProperty(this, "activeMenu", _descriptor5, this);
_initializerDefineProperty(this, "activeMenuParents", _descriptor6, this);
_initializerDefineProperty(this, "selected", _descriptor7, this);
_initializerDefineProperty(this, "leftOpenKeys", _descriptor8, this);
_initializerDefineProperty(this, "openKeys", _descriptor9, this);
_initializerDefineProperty(this, "type", _descriptor10, this);
_initializerDefineProperty(this, "isUser", _descriptor11, this);
_initializerDefineProperty(this, "id", _descriptor12, this);
_initializerDefineProperty(this, "notFoundSign", _descriptor13, this);
_initializerDefineProperty(this, "closedKeys", _descriptor14, this);
_initializerDefineProperty(this, "hasSitePermission", _descriptor15, this);
this.statistics = {};
this.counter = 0;
}
_createClass(MenuStore, [{
key: "getHasSitePermission",
get: function get() {
return this.hasSitePermission;
}
}, {
key: "setHasSitePermission",
value: function setHasSitePermission(data) {
this.hasSitePermission = data;
}
}, {
key: "getRequestedSiteMenu",
get: function get() {
return this.requestedSiteMenu;
}
}, {
key: "setRequestedSiteMenu",
value: function setRequestedSiteMenu(data) {
this.requestedSiteMenu = data;
}
}, {
key: "getClosedKeys",
get: function get() {
return this.closedKeys;
}
}, {
key: "setClosedKeys",
value: function setClosedKeys(data) {
var isDelete = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!isDelete) {
this.closedKeys = Array.from(new Set([].concat(_toConsumableArray(this.closedKeys), _toConsumableArray(data))));
} else {
this.closedKeys = _.difference(this.closedKeys, data);
}
}
}, {
key: "click",
value: function click(code, level, name) {
var _this = this;
if (level in this.statistics) {
if (code in this.statistics[level]) {
this.statistics[level][code].count += 1;
} else {
this.statistics[level][code] = {
count: 1,
name: name
};
}
} else {
this.statistics[level] = {};
this.statistics[level][code] = {
count: 1,
name: name
};
}
this.counter += 1;
var postData = Object.keys(this.statistics).map(function (type) {
return {
level: type,
menus: Object.keys(_this.statistics[type]).map(function (mCode) {
return _objectSpread({
mCode: mCode
}, _this.statistics[type][mCode]);
})
};
});
if (postData.reduce(function (p, cur) {
return p + cur.menus.reduce(function (menusP, menusCur) {
return menusP + menusCur.count;
}, 0);
}, 0) >= BATCH_SIZE) {
this.uploadStatistics();
this.counter = 0;
}
localStorage.setItem('rawStatistics', JSON.stringify(this.statistics));
}
}, {
key: "uploadStatistics",
value: function uploadStatistics() {
var _this2 = this;
var postData = Object.keys(this.statistics).map(function (type) {
return {
rootCode: "choerodon.code.top.".concat(type),
menus: Object.keys(_this2.statistics[type]).map(function (code) {
return _objectSpread({
code: code
}, _this2.statistics[type][code]);
})
};
});
if (!postData.every(function (v) {
return v.rootCode && ['choerodon.code.top.site', 'choerodon.code.top.organization', 'choerodon.code.top.project', 'choerodon.code.top.user'].includes(v.rootCode);
})) {
this.statistics = {};
return;
}
axios.post('/hadm/choerodon/v1/statistic/menu_click/save', JSON.stringify(postData)).then(function (data) {
if (!data.failed) {
_this2.statistics = {};
}
});
}
}, {
key: "getActiveMenuRoot",
get: function get() {
return this.activeMenuRoot;
}
}, {
key: "setActiveMenuRoot",
value: function setActiveMenuRoot(data) {
this.activeMenuRoot = data;
}
}, {
key: "setActiveMenuParents",
value: function setActiveMenuParents(data) {
this.activeMenuParents = data;
}
}, {
key: "setCollapsed",
value: function setCollapsed(collapsed) {
this.collapsed = collapsed;
}
}, {
key: "setActiveMenu",
value: function setActiveMenu(activeMenu) {
this.activeMenu = activeMenu;
}
}, {
key: "setSelected",
value: function setSelected(selected) {
this.selected = selected;
}
}, {
key: "setLeftOpenKeys",
value: function setLeftOpenKeys(leftOpenKeys) {
this.leftOpenKeys = leftOpenKeys;
}
}, {
key: "setOpenKeys",
value: function setOpenKeys(openKeys) {
if (openKeys && openKeys.length > 0) {
this.openKeys = _.difference(Array.from(new Set(_toConsumableArray(openKeys))), this.closedKeys);
} else {
this.openKeys = openKeys;
}
}
}, {
key: "setType",
value: function setType(type) {
this.type = type;
}
}, {
key: "setIsUser",
value: function setIsUser(isUser) {
this.isUser = isUser;
}
}, {
key: "setId",
value: function setId(id) {
this.id = id;
}
}, {
key: "setNotFoundSignSign",
value: function setNotFoundSignSign(value) {
this.notFoundSign = value;
}
}, {
key: "setOpenkeysBaseonRoot",
value: function setOpenkeysBaseonRoot(root) {
var keys = [];
function cursive(data, array) {
if (data.subMenus && data.subMenus.length > 0) {
array.push(data.code);
data.subMenus.forEach(function (rootItem) {
cursive(rootItem, array);
});
}
}
cursive(root, keys);
this.setOpenKeys(Array.from(new Set([].concat(keys, _toConsumableArray(this.openKeys || [])))));
}
}, {
key: "clearMenuGroupByLevel",
value: function clearMenuGroupByLevel(level) {
if (['site', 'user', 'organization', 'project'].includes(level)) {
if (['site', 'user'].includes(level)) {
this.menuGroup[level] = [];
} else {
this.menuGroup[level] = {};
}
}
}
}, {
key: "setRootBaseOnActiveMenu",
value: function setRootBaseOnActiveMenu() {
var flag = this.activeMenu;
if (this.activeMenu && this.getMenuData && this.getMenuData.length > 0) {
if (this.activeMenu.level !== this.getMenuData[0].level) {
this.setActiveMenu(this.getMenuData[0].subMenus[0]);
flag = this.getMenuData[0].subMenus[0];
}
var menuRoot = this.getActiveMenuRoot || {};
var root = this.getMenuData.find(function (i) {
return i.id === flag.rootId;
});
if (root) {
menuRoot[root.level] = root;
this.setOpenkeysBaseonRoot(root);
this.setActiveMenuRoot(JSON.parse(JSON.stringify(menuRoot)));
}
}
}
}, {
key: "judgeFailedMenuType",
value: function judgeFailedMenuType(menuType) {
var type = menuType.type,
id = menuType.id;
var flag = failedMenuType.find(function (i) {
return i.type === type && i.id === id;
});
if (flag) {
return true;
}
return false;
}
}, {
key: "loadMenuData",
value: function loadMenuData() {
var _this3 = this;
var menuType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : AppState.currentMenuType;
var isUser = arguments.length > 1 ? arguments[1] : undefined;
var setData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
var selfResolve = arguments.length > 3 ? arguments[3] : undefined;
if (this.judgeFailedMenuType(menuType)) {
isLoadMenu = 0;
AppState.setCanShowRoute(true); // debugger;
return new Promise(function (resolve) {
// debugger;
resolve([]);
});
}
this.setRootBaseOnActiveMenu();
if (isLoadMenu === 1) {
if (selfResolve) {
// debugger;
setTimeout(function () {
return _this3.loadMenuData(menuType, isUser, setData, selfResolve);
}, 500);
} else {
// debugger;
return new Promise(function (resolve) {
setTimeout(function () {
return _this3.loadMenuData(menuType, isUser, setData, resolve);
}, 500);
});
}
} else {
AppState.setCanShowRoute(false);
isLoadMenu = 1;
if (selfResolve) {
// debugger;
mainFunc.call(this, selfResolve);
} else {
// debugger;
return new Promise(function (resolve) {
mainFunc.call(_this3, resolve);
});
}
} // return new Promise((resolve) => {
// mainFunc.call(this, resolve);
// });
function mainFunc(_x) {
return _mainFunc.apply(this, arguments);
}
function _mainFunc() {
_mainFunc = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(resolve) {
var _this4 = this;
var getMenu, type, _menuType$id, id, organizationId, orgId, menu, hasMenu, _AppState$getUserInfo, result, _orgId, flag, _AppState$getUserInfo2, _result, _orgId2, data, _menu;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
getMenu = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(that) {
var currentOrgId, url, data, child;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
// debugger;
currentOrgId = String(organizationId || new URLSearchParams(window.location.hash.split('?')[1]).get('organizationId') || id);
url = '/iam/choerodon/v1/menu';
if (type === 'project') {
url += "?projectId=".concat(id, "&tenantId=").concat(currentOrgId);
} else if (type === 'organization') {
url += "?labels=TENANT_MENU&tenantId=".concat(currentOrgId);
} else if (type === 'user') {
url += '?labels=USER_MENU';
} else {
url += '?labels=SITE_MENU&tenantId=0';
that.setRequestedSiteMenu(true);
}
_context.next = 5;
return axios({
url: url,
method: 'get',
enabledCancelCache: false,
enabledCancelRoute: false
});
case 5:
data = _context.sent;
child = filterEmptyMenus(data || []); // debugger;
if (type === 'project') {
changeMenuLevel({
level: 'project',
child: child
});
} else if (type === 'user') {
changeMenuLevel({
level: 'user',
child: child
});
} // debugger;
that.setMenuData(child, type, id);
return _context.abrupt("return", child);
case 10:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function getMenu(_x2) {
return _ref2.apply(this, arguments);
};
}();
type = getMenuType(menuType, isUser) || 'site';
if (setData) {
if (type !== 'user') {
AppState.currentMenuType.type = type;
if (menuType === null || menuType === void 0 ? void 0 : menuType.id) {
AppState.currentMenuType.id = menuType === null || menuType === void 0 ? void 0 : menuType.id;
}
}
} // debugger;
_menuType$id = menuType.id, id = _menuType$id === void 0 ? 0 : _menuType$id, organizationId = menuType.organizationId, orgId = menuType.orgId;
menu = this.menuData(type, id);
hasMenu = function hasMenu() {
if (type === 'organization') {
return orgId && Object.keys(menuStore.menuGroup[type]).map(function (i) {
return String(i);
}).includes(String(orgId));
} else if (type === 'site') {
if (_this4.getRequestedSiteMenu) {
return true;
}
} else {
return id && Object.keys(menuStore.menuGroup[type]).map(function (i) {
return String(i);
}).includes(String(id));
}
return false;
}; // debugger;
if (!(menu.length || hasMenu())) {
_context2.next = 32;
break;
}
if (!(type === 'site')) {
_context2.next = 20;
break;
}
if (!(((_AppState$getUserInfo = AppState.getUserInfo) === null || _AppState$getUserInfo === void 0 ? void 0 : _AppState$getUserInfo.currentRoleLevel) !== 'site' && this.getHasSitePermission)) {
_context2.next = 18;
break;
}
_context2.next = 12;
return axios.put('iam/v1/users/tenant-id?tenantId=0', null, {
enabledCancelCache: false,
enabledCancelRoute: false
});
case 12:
_context2.next = 14;
return axios.get('/iam/choerodon/v1/switch/site', {
enabledCancelCache: false,
enabledCancelRoute: false
});
case 14:
result = _context2.sent;
// debugger;
if (!result) {
this.setHasSitePermission(false);
} // debugger;
_context2.next = 18;
return AppState.loadUserInfo();
case 18:
_context2.next = 26;
break;
case 20:
if (!(type === 'organization')) {
_context2.next = 26;
break;
}
// debugger;
_orgId = String(organizationId || new URLSearchParams(window.location.hash.split('?')[1]).get('organizationId') || id);
if (!(String(AppState.getUserInfo.tenantId) !== String(_orgId))) {
_context2.next = 26;
break;
}
_context2.next = 25;
return axios({
url: "iam/v1/users/tenant-id?tenantId=".concat(_orgId),
method: 'put',
enabledCancelCache: false,
enabledCancelRoute: false
});
case 25:
// debugger;
AppState.loadUserInfo();
case 26:
if (AppState.currentMenuType.hasChangeCategorys) {
_context2.next = 30;
break;
}
// debugger;
isLoadMenu = 0;
AppState.setCanShowRoute(true);
return _context2.abrupt("return", resolve(menu));
case 30:
delete AppState.menuType.hasChangeCategorys;
AppState.setCanShowRoute(true);
case 32:
flag = 0;
if (!(type === 'site')) {
_context2.next = 43;
break;
}
if (!(((_AppState$getUserInfo2 = AppState.getUserInfo) === null || _AppState$getUserInfo2 === void 0 ? void 0 : _AppState$getUserInfo2.currentRoleLevel) !== 'site' && this.getHasSitePermission)) {
_context2.next = 41;
break;
}
_context2.next = 37;
return axios.put('iam/v1/users/tenant-id?tenantId=0', null, {
enabledCancelCache: false,
enabledCancelRoute: false
});
case 37:
_context2.next = 39;
return axios.get('/iam/choerodon/v1/switch/site', {
enabledCancelCache: false,
enabledCancelRoute: false
});
case 39:
_result = _context2.sent;
// debugger;
if (!_result) {
this.setHasSitePermission(false);
}
case 41:
_context2.next = 53;
break;
case 43:
if (!(id && ['project', 'organization'].includes(type))) {
_context2.next = 53;
break;
}
// debugger;
_orgId2 = String(organizationId || new URLSearchParams(window.location.hash.split('?')[1]).get('organizationId') || id);
if (loadingTenant.includes(_orgId2)) {
_context2.next = 52;
break;
}
loadingTenant.push(String(_orgId2));
_context2.next = 49;
return axios.put("iam/v1/users/tenant-id?tenantId=".concat(_orgId2 || id), null, {
enabledCancelCache: false,
enabledCancelRoute: false
});
case 49:
// debugger;
loadingTenant.splice(loadingTenant.indexOf(loadingTenant), 1);
_context2.next = 53;
break;
case 52:
flag = 1;
case 53:
if (flag) {
_context2.next = 71;
break;
}
// debugger;
_menu = this.menuData(type, id); // debugger;
if (!['organization', 'project'].includes(type)) {
_context2.next = 62;
break;
}
if (Object.keys(menuStore.menuGroup[type]).includes(id)) {
_context2.next = 60;
break;
}
_context2.next = 59;
return getMenu(this);
case 59:
data = _context2.sent;
case 60:
_context2.next = 66;
break;
case 62:
if (!(!_menu.length && !_menu.level)) {
_context2.next = 66;
break;
}
_context2.next = 65;
return getMenu(this);
case 65:
data = _context2.sent;
case 66:
if (AppState.userInfo.currentRoleLevel !== type) {
AppState.userInfo.currentRoleLevel = type;
AppState.loadUserInfo(); // debugger;
}
AppState.setCanShowRoute(true);
AppState.userInfo.currentRoleLevel = type;
isLoadMenu = 0; // debugger;
return _context2.abrupt("return", resolve(data || []));
case 71:
isLoadMenu = 0;
AppState.setCanShowRoute(true);
_context2.next = 80;
break;
case 75:
_context2.prev = 75;
_context2.t0 = _context2["catch"](0);
// debugger;
failedMenuType.push(menuType);
isLoadMenu = 0;
AppState.setCanShowRoute(true);
case 80:
case "end":
return _context2.stop();
}
}
}, _callee2, this, [[0, 75]]);
}));
return _mainFunc.apply(this, arguments);
}
}
/**
* 递归设置rootId
*/
}, {
key: "cursiveSetRootId",
value: function cursiveSetRootId(params, rootId) {
var _this5 = this;
var newRootId = rootId;
if (!newRootId) {
newRootId = params.id;
}
params.rootId = newRootId;
if (params.subMenus && params.subMenus.length > 0) {
params.subMenus = params.subMenus.map(function (bItem) {
return _this5.cursiveSetRootId(bItem, newRootId);
});
}
return params;
}
}, {
key: "setMenuData",
value: function setMenuData(child, childType) {
var _this6 = this;
var id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : AppState.currentMenuType.id;
var data = filterEmptyMenus(child).map(function (item) {
return _this6.cursiveSetRootId(item, undefined);
});
this.setRootBaseOnActiveMenu();
if (String(id) && !['user', 'site'].includes(childType)) {
set(this.menuGroup[childType], id, data);
} else {
set(this.menuGroup, childType, data);
}
localStorage.setItem('menuGroup', JSON.stringify(this.menuGroup));
}
}, {
key: "getMenuData",
get: function get() {
return this.menuData();
}
}, {
key: "getSiteMenuData",
get: function get() {
return this.menuData('site', 0);
}
}, {
key: "menuData",
value: function menuData() {
var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getMenuType();
var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AppState.currentMenuType.id;
var data;
if (type) {
if (id && !['site', 'user'].includes(type)) {
data = get(this.menuGroup[type], id);
} else {
data = get(this.menuGroup, type);
}
}
return data || [];
}
}, {
key: "treeReduce",
value: function treeReduce(tree, callback) {
var _tree$childrenName,
_this7 = this;
var childrenName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'subMenus';
var parents = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
if (tree.code) {
parents.push(tree);
}
return typeof tree[childrenName] === 'object' ? (_tree$childrenName = tree[childrenName]) === null || _tree$childrenName === void 0 ? void 0 : _tree$childrenName.some(function (node, index) {
var newParents = parents.slice(0);
node.parentName = parents[0] && parents[0].name;
if (node[childrenName] && node[childrenName].length > 0) {
return _this7.treeReduce(node, callback, childrenName, newParents);
} // node.parentName = parents[0].name;
return callback(node, parents, index);
}) : undefined;
}
}]);
return MenuStore;
}(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, "menuGroup", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return {
site: [],
user: [],
organization: {},
project: {}
};
}
}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "requestedSiteMenu", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return false;
}
}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "activeMenuRoot", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return {};
}
}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "collapsed", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return false;
}
}), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "activeMenu", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return null;
}
}), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "activeMenuParents", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return [];
}
}), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "selected", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return null;
}
}), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "leftOpenKeys", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return [];
}
}), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "openKeys", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return [];
}
}), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "type", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return null;
}
}), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "isUser", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return null;
}
}), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "id", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return null;
}
}), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "notFoundSign", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return false;
}
}), _descriptor14 = _applyDecoratedDescriptor(_class.prototype, "closedKeys", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return [];
}
}), _descriptor15 = _applyDecoratedDescriptor(_class.prototype, "hasSitePermission", [observable], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return true;
}
}), _applyDecoratedDescriptor(_class.prototype, "getHasSitePermission", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getHasSitePermission"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setHasSitePermission", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setHasSitePermission"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getRequestedSiteMenu", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getRequestedSiteMenu"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setRequestedSiteMenu", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setRequestedSiteMenu"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getClosedKeys", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getClosedKeys"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setClosedKeys", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setClosedKeys"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getActiveMenuRoot", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getActiveMenuRoot"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setActiveMenuRoot", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setActiveMenuRoot"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setActiveMenuParents", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setActiveMenuParents"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setCollapsed", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setCollapsed"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setActiveMenu", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setActiveMenu"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setSelected", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setSelected"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setLeftOpenKeys", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setLeftOpenKeys"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setOpenKeys", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setOpenKeys"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setType", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setType"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setIsUser", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setIsUser"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setId", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setId"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setNotFoundSignSign", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setNotFoundSignSign"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setOpenkeysBaseonRoot", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setOpenkeysBaseonRoot"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "clearMenuGroupByLevel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "clearMenuGroupByLevel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setRootBaseOnActiveMenu", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setRootBaseOnActiveMenu"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "loadMenuData", [action], Object.getOwnPropertyDescriptor(_class.prototype, "loadMenuData"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setMenuData", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setMenuData"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getMenuData", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getMenuData"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getSiteMenuData", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getSiteMenuData"), _class.prototype)), _class);
var menuStore = new MenuStore();
export default menuStore;