mob-tree-view-engine.ts 2.7 KB
Newer Older
zcdtk's avatar
zcdtk committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
import ViewEngine from './view-engine';

/**
 * 实体移动端树视图界面引擎
 *
 * @export
 * @class MobTreeViewEngine
 * @extends {ViewEngine}
 */
export default class MobTreeViewEngine extends ViewEngine {

    /**
     * 树部件
     *
     * @protected
     * @type {*}
     * @memberof MobTreeViewEngine
     */
    protected tree: any;


    /**
     * 初始化编辑视图引擎
     *
     * @param {*} [options={}]
     * @memberof MobTreeViewEngine
     */
    public init(options: any = {}): void {
        this.tree = options.tree;
        super.init(options);
    }

    /**
     * 引擎加载
     *
     * @param {*} [opts={}]
     * @memberof MobTreeViewEngine
     */
    public load(opts: any = {}): void {
        super.load(opts);
        if (this.getTree()) {
            const tag = this.getTree().name;
            this.setViewState2({ tag: tag, action: 'load', viewdata: { ...this.view.viewparams } });
        }
    }

    /**
     * 部件事件机制
     *
     * @param {string} ctrlName
     * @param {string} eventName
     * @param {*} args
     * @memberof MobTreeViewEngine
     */
    public onCtrlEvent(ctrlName: string, eventName: string, args: any): void {
        super.onCtrlEvent(ctrlName, eventName, args);
        if (Object.is(ctrlName, 'tree')) {
            this.treeEvent(eventName, args);
        }
    }

    /**
     * 树事件
     *
     * @param {string} eventName
     * @param {*} args
     * @memberof MobTreeViewEngine
     */
    public treeEvent(eventName: string, args: any): void {
        if (Object.is(eventName, 'load')) {
            this.onTreeLoad(args);
        }
        if (Object.is(eventName, 'click')) {
            this.onTreeClick(args);
        }
    }

    /**
     * 树加载完成
     *
     * @param {*} args
     * @memberof MobTreeViewEngine
     */
    public onTreeLoad(args: any): void {
        if (this.view) {
            this.view.datainfo = args.srfmajortext;
            this.view.viewdataschange.emit({action:'load',data:args});
        }
    }

    /**
     * 树点击事件
     *
     * @param {*} args
     * @memberof MobTreeViewEngine
     */
    public onTreeClick(args: any): void {
        if(this.view){
            this.view.viewdataschange.emit({action:'click',data:args});
        }
    }

    /**
     * 保存视图数据
     *
     * @param {*} [arg={}]
     * @memberof MobTreeViewEngine
     */
    public saveData(arg: any = {}): void {
        if (this.getTree()) {
            const tag = this.getTree().name;
            this.setViewState2({ tag: tag, action: 'save', viewdata: arg });
        }
    }

    /**
     * 获取树对象
     *
     * @returns {*}
     * @memberof MobTreeViewEngine
     */
    public getTree(): any {
        return this.tree;
    }

}