重新约定和上层的menu定义

This commit is contained in:
Xu Chang 2023-07-31 16:28:44 +08:00
parent fad31698e7
commit 6e82643e42
3 changed files with 4 additions and 8 deletions

View File

@ -10,7 +10,7 @@ interface IMenu<ED extends EntityDict & BaseEntityDict, T extends keyof ED> {
name: string;
entity: T;
action: ED[T]['Action'];
paths?: string[];
paths: string[];
}
export declare class ContextMenuFactory<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
cache: Cache<ED, Cxt, FrontCxt, AD>;

View File

@ -7,7 +7,6 @@ var lodash_1 = require("oak-domain/lib/utils/lodash");
var Feature_1 = require("../types/Feature");
var relation_1 = require("oak-domain/lib/store/relation");
;
;
var ContextMenuFactory = /** @class */ (function (_super) {
tslib_1.__extends(ContextMenuFactory, _super);
function ContextMenuFactory(cache, relationAuth, cascadePathGraph) {
@ -69,7 +68,7 @@ var ContextMenuFactory = /** @class */ (function (_super) {
(0, assert_1.default)(this.menus, '应当先调用setMenus才能动态判定菜单');
var menus = this.menus.filter(function (menu) {
var destEntity = menu.entity, paths = menu.paths, action = menu.action;
var filters = paths ? _this.makeMenuFilters(destEntity, paths, entity, entityId) : [{}]; // 如果没有path视为无法推断操作的filter直接返回无任何限制
var filters = paths.length > 0 ? _this.makeMenuFilters(destEntity, paths, entity, entityId) : [{}]; // 如果没有path视为无法推断操作的filter直接返回无任何限制
if (filters.length > 0) {
// 这里应该是or关系paths表达的路径中只要有一条满足就可能满足
var allows = filters.map(function (filter) {

View File

@ -14,12 +14,9 @@ interface IMenu<ED extends EntityDict & BaseEntityDict, T extends keyof ED> {
name: string;
entity: T;
action: ED[T]['Action'];
paths?: string[];
paths: string[];
};
interface IMenuWrapper<ED extends EntityDict & BaseEntityDict, T extends keyof ED> extends IMenu<ED, T> {
filtersMaker: (entity: keyof ED, entityId: string) => Array<ED[T]['Selection']['filter']>;
};
export class ContextMenuFactory<
ED extends EntityDict & BaseEntityDict,
@ -101,7 +98,7 @@ export class ContextMenuFactory<
const menus = this.menus.filter(
(menu) => {
const { entity: destEntity, paths, action } = menu;
const filters = paths ? this.makeMenuFilters(destEntity, paths, entity, entityId) : [{}]; // 如果没有path视为无法推断操作的filter直接返回无任何限制
const filters = paths.length > 0 ? this.makeMenuFilters(destEntity, paths, entity, entityId) : [{}]; // 如果没有path视为无法推断操作的filter直接返回无任何限制
if (filters.length > 0) {
// 这里应该是or关系paths表达的路径中只要有一条满足就可能满足
const allows = filters.map(