view-message-group-service.ts 2.3 KB
Newer Older
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
import { Http } from '@/utils/http/http';

/**
 * 视图消息组
 *
 * @export
 * @class ViewMessageGroupService
 */
export default class ViewMessageGroupService {

    /**
     * 单例变量声明
     *
     * @private
     * @static
     * @type {ViewMessageGroupService}
     * @memberof ViewMessageGroupService
     */
    private static ViewMessageGroup: ViewMessageGroupService;

    /**
     * 所有视图消息组对象
     *
     * @private
     * @static
     * @type {ViewMessageGroupService}
     * @memberof ViewMessageGroupService
     */
    private static allViewMessageGroup:any;

    /**
     * 初始化实例
     * 
     * @memberof ViewMessageGroupService
     */
36
    constructor(opts:any = {}){}
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58

    /**
     * 获取 ViewMessageGroupService 单例对象
     *
     * @static
     * @returns {ViewMessageGroupService}
     * @memberof ViewMessageGroupService
     */
    public static getInstance(): ViewMessageGroupService {
        if (!ViewMessageGroupService.ViewMessageGroup) {
            ViewMessageGroupService.ViewMessageGroup = new ViewMessageGroupService();
        }
        return this.ViewMessageGroup;
    }

    /**
     * 获取视图消息组成员集合
     *
     * @returns {Promise<any></any>}
     * @memberof ViewMessageGroupService
     */
    public async getViewMessageDetailsByTag(tag:string):Promise<any>{
59 60 61
        if(ViewMessageGroupService.allViewMessageGroup){
            return ViewMessageGroupService.allViewMessageGroup[tag]?ViewMessageGroupService.allViewMessageGroup[tag]:[];
        }else{
62
            let result:any = await this.loadAllViewMessageGroup();
63
            return result[tag]?result[tag]:[];
64 65
        }
        
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
    }

    /**
     * 加载应用所有视图消息组集合
     *
     * @returns {Promise<any></any>}
     * @memberof ViewMessageGroupService
     */
    public loadAllViewMessageGroup():Promise<any>{
        return new Promise((resolve:any,reject:any) =>{
            Http.getInstance().get('./assets/json/view-message-group.json').then((response: any) => {
                if (response && response.status === 200 && response.data) {
                    ViewMessageGroupService.allViewMessageGroup = response.data;
                    resolve(response.data);
                }
            }).catch((error: any) => {
                console.log(error);
            });
        })
    }

}