diff --git a/lib/features/contextMenuFactory.d.ts b/lib/features/contextMenuFactory.d.ts index e8ece3bf..4c333356 100644 --- a/lib/features/contextMenuFactory.d.ts +++ b/lib/features/contextMenuFactory.d.ts @@ -10,7 +10,7 @@ interface IMenu { name: string; entity: T; action: ED[T]['Action']; - paths?: string[]; + paths: string[]; } export declare class ContextMenuFactory, FrontCxt extends SyncContext, AD extends CommonAspectDict & Record>> extends Feature { cache: Cache; diff --git a/lib/features/contextMenuFactory.js b/lib/features/contextMenuFactory.js index bb1f9401..0c670b69 100644 --- a/lib/features/contextMenuFactory.js +++ b/lib/features/contextMenuFactory.js @@ -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) { diff --git a/src/features/contextMenuFactory.ts b/src/features/contextMenuFactory.ts index 8bbbe297..739344b6 100644 --- a/src/features/contextMenuFactory.ts +++ b/src/features/contextMenuFactory.ts @@ -14,12 +14,9 @@ interface IMenu { name: string; entity: T; action: ED[T]['Action']; - paths?: string[]; + paths: string[]; }; -interface IMenuWrapper extends IMenu { - filtersMaker: (entity: keyof ED, entityId: string) => Array; -}; 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(