zhangjiaqing
3 天以前 f5f65e6a9a49709c451dc2efd253970b5ae41f69
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
/**
 初始化vue 对象
 @param vc vue component对象
 @param vmOptions Vue参数
 **/
(function (vc, vmOptions) {
    console.log("vmOptions:", vmOptions);
    vc.component = new Vue(vmOptions);
})(window.vc, window.vc.vmOptions);
 
 
/**
 vc监听事件
 **/
(function (vc) {
    /**
     事件监听
     **/
    vc.on = function () {
        var _namespace = "";
        var _componentName = "";
        var _value = "";
        var _callback = undefined;
        if (arguments.length == 4) {
            _namespace = arguments[0];
            _componentName = arguments[1];
            _value = arguments[2];
            _callback = arguments[3];
        } else if (arguments.length == 3) {
            _componentName = arguments[0];
            _value = arguments[1];
            _callback = arguments[2];
        } else {
            console.error("执行on 异常,vc.on 参数只能是3个 或4个");
            return;
        }
        if (vc.notNull(_namespace)) {
            vc.component.$on(_namespace + "_" + _componentName + '_' + _value,
                function (param) {
                    if (vc.debug) {
                        console.log("监听ON事件", _namespace, _componentName, _value, param);
                    }
                    _callback(param);
                }
            );
            return;
        }
 
        vc.component.$on(_componentName + '_' + _value,
            function (param) {
                if (vc.debug) {
                    console.log("监听ON事件", _componentName, _value, param);
                }
                _callback(param);
            }
        );
    };
 
    /**
     事件触发
     **/
    vc.emit = function () {
        var _namespace = "";
        var _componentName = "";
        var _value = "";
        var _param = undefined;
        if (arguments.length == 4) {
            _namespace = arguments[0];
            _componentName = arguments[1];
            _value = arguments[2];
            _param = arguments[3];
        } else if (arguments.length == 3) {
            _componentName = arguments[0];
            _value = arguments[1];
            _param = arguments[2];
        } else {
            console.error("执行on 异常,vc.on 参数只能是3个 或4个");
            return;
        }
        if (vc.debug) {
            console.log("监听emit事件", _namespace, _componentName, _value, _param);
        }
        if (vc.notNull(_namespace)) {
            vc.component.$emit(_namespace + "_" + _componentName + '_' + _value, _param);
            return;
        }
        vc.component.$emit(_componentName + '_' + _value, _param);
    };
 
})(window.vc);
 
/**
 * vue对象 执行初始化方法
 */
(function (vc) {
    vc.initEvent.forEach(function (eventMethod) {
        eventMethod();
    });
    vc.initMethod.forEach(function (callback) {
        callback();
    });
    vc.namespace.forEach(function (_param) {
        vc[_param.namespace] = vc.component[_param.namespace];
    });
})(window.vc);