vc-core.js
2.95 KB
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
/**
初始化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);