Open 981377660LMT opened 1 year ago
// !注意不要只用@observable装饰器的写法, 还要用 extendObservable. import { action, computed, extendObservable, observable } from 'mobx'; /** * 维护筛选栏中筛选、分组、排序Dropdown面板的显示状态. */ export class FilterAreaStore { // TODO: 换成id @observable private _visibleFilterPanelPath = -1; @observable private _groupPanelVisible = false; @observable private _sortPanelVisible = false; constructor () { extendObservable(this, { _visibleFilterPanelPath: -1, _groupPanelVisible: false, _sortPanelVisible: false }); } setVisibleFilterPanel = action((path: number): void => { this._visibleFilterPanelPath = path; }); clearVisibleFilterPanel = action((): void => { this._visibleFilterPanelPath = -1; }); toggleVisibleFilterPanel = action((path: number): void => { if (this._visibleFilterPanelPath !== path) { this._visibleFilterPanelPath = path; } else if (this._visibleFilterPanelPath === path) { this._visibleFilterPanelPath = -1; } }); getVisibleFilterPanelVisible = (): number => { return this._visibleFilterPanelPath; }; setGroupPanelVisible = action((visible: boolean): void => { this._groupPanelVisible = visible; }); getGroupPanelVisible = (): boolean => { return this._groupPanelVisible; }; setSortPanelVisible = action((visible: boolean): void => { this._sortPanelVisible = visible; }); getSortPanelVisible = (): boolean => { return this._sortPanelVisible; }; }