counter-service.ts 2.2 KB
Newer Older
1
import { Store } from 'vuex';
2 3
import EntityService from '@/service/entity-service';

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

/**
 * 计数器服务基类
 *
 * @export
 * @class CounterService
 */
export default class CounterService {

    /**
     * Vue 状态管理器
     *
     * @private
     * @type {(any | null)}
     * @memberof CounterService
     */
    private $store: Store<any> | null = null;
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
    
    /**
     * 当前计数器数据
     * 
     * @protected
     * @type {*}
     * @memberof  CounterService
     */
    protected counterData:any ={};

    /**
     * 应用实体数据服务
     *
     * @protected
     * @type {EntityService}
     * @memberof CounterService
     */    
    protected appEntityService:EntityService = new EntityService();

    /**
     * 当前计数器导航上下文
     * 
     * @protected
     * @type {*}
     * @memberof  CounterService
     */
    protected context:any ={};

    /**
     * 当前计数器导航参数
     * 
     * @protected
     * @type {*}
     * @memberof  CounterService
     */
    protected viewparams:any ={};

    /**
     * 当前计数器定时器对象
     * 
     * @protected
     * @type {*}
     * @memberof  CounterService
     */
    protected timer:any;
66 67 68 69 70 71 72 73 74

    /**
     * Creates an instance of CounterService.
     * 
     * @param {*} [opts={}]
     * @memberof CounterService
     */
    constructor(opts: any = {}) {
        this.$store = opts.$store;
75 76
        this.context = opts.context?opts.context:{};
        this.viewparams = opts.viewparams?opts.viewparams:{};
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
    }

    /**
     * 获取状态管理器
     *
     * @returns {(any | null)}
     * @memberof CounterService
     */
    public getStore(): Store<any> | null {
        return this.$store;
    }

    /**
     * 获取计数器服务
     *
     * @protected
     * @param {string} name 实体名称
     * @returns {Promise<any>}
     * @memberof CounterService
     */
    public getService(name: string): Promise<any> {
        return (window as any)['counterServiceRegister'].getService(name);
    }

101 102 103 104 105 106 107 108 109
    /**
     * 销毁计数器
     *
     * @memberof ActionCounterCounterServiceBase
     */
    public destroyCounter(){
        if(this.timer) clearInterval(this.timer);
    }
  
110
}