centaline-data-driven 1.1.54 → 1.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +12 -12
- package/.editorconfig +9 -9
- package/.gitattributes +63 -63
- package/.postcssrc.js +10 -10
- package/Centaline.Front_End.DataDriven.csproj +37 -37
- package/Centaline.Front_End.DataDriven.sln +25 -25
- package/Properties/launchSettings.json +26 -26
- package/README.md +140 -140
- package/build/build.js +41 -41
- package/build/centaline/centaline.path.js +59 -59
- package/build/centaline/webpack.centaline.conf.js +106 -106
- package/build/check-versions.js +54 -54
- package/build/utils.js +102 -102
- package/build/vue-loader.conf.js +22 -22
- package/build/webpack.base.conf.js +82 -82
- package/build/webpack.dev.conf.js +111 -111
- package/build/webpack.prod.conf.js +145 -145
- package/config/dev.env.js +12 -12
- package/config/index.js +73 -73
- package/config/prod.env.js +4 -4
- package/index.html +14 -14
- package/package.json +75 -75
- package/src/App.vue +10 -10
- package/src/Detail.vue +26 -26
- package/src/Edit.vue +32 -32
- package/src/Form.vue +29 -29
- package/src/SearchList.vue +40 -40
- package/src/SearchTree.vue +51 -51
- package/src/Tabs.vue +19 -19
- package/src/centaline/api/index.js +249 -249
- package/src/centaline/comfirm/index.js +11 -11
- package/src/centaline/comfirm/src/comfirm.vue +44 -44
- package/src/centaline/common/index.js +738 -738
- package/src/centaline/css/common.css +748 -748
- package/src/centaline/css/max.css +207 -207
- package/src/centaline/dialogList/index.js +11 -11
- package/src/centaline/dialogList/src/dialog.vue +210 -210
- package/src/centaline/dialogList/src/dialogList.vue +65 -65
- package/src/centaline/dialogList/src/dialogNew.vue +78 -78
- package/src/centaline/dialogList/src/drag.js +77 -77
- package/src/centaline/directives/index.js +23 -23
- package/src/centaline/dynamicBtn/index.js +11 -11
- package/src/centaline/dynamicBtn/src/dynamicBtn.vue +100 -100
- package/src/centaline/dynamicCb/index.js +11 -11
- package/src/centaline/dynamicCb/src/dynamicCb.vue +72 -72
- package/src/centaline/dynamicCheckbox/index.js +11 -11
- package/src/centaline/dynamicCheckbox/src/dynamicCheckbox.vue +128 -128
- package/src/centaline/dynamicComboBoxWithTextBox/index.js +11 -11
- package/src/centaline/dynamicComboBoxWithTextBox/src/dynamicComboBoxWithTextBox.vue +240 -240
- package/src/centaline/dynamicD/index.js +11 -11
- package/src/centaline/dynamicD/src/dynamicD.vue +92 -92
- package/src/centaline/dynamicDetail/index.js +10 -10
- package/src/centaline/dynamicDetail/src/dynamicDetail.vue +40 -40
- package/src/centaline/dynamicDetail/src/dynamicPropertyDetailOFI.vue +1280 -1280
- package/src/centaline/dynamicDetail/src/dynamicPropertyDetailRET.vue +1293 -1293
- package/src/centaline/dynamicDrop/index.js +11 -11
- package/src/centaline/dynamicDrop/src/dynamicDrop.vue +54 -54
- package/src/centaline/dynamicDtd/index.js +11 -11
- package/src/centaline/dynamicDtd/src/dynamicDtd.vue +125 -125
- package/src/centaline/dynamicDtd/src/dynamicDtdOld.vue +93 -93
- package/src/centaline/dynamicFile/index.js +11 -11
- package/src/centaline/dynamicFile/src/dynamicFile.vue +288 -283
- package/src/centaline/dynamicForm/index.js +24 -24
- package/src/centaline/dynamicForm/src/dynamicForm.vue +564 -564
- package/src/centaline/dynamicForm/src/dynamicFormList.vue +209 -209
- package/src/centaline/dynamicForm/src/dynamicFormListTable.vue +376 -376
- package/src/centaline/dynamicGp/index.js +11 -11
- package/src/centaline/dynamicGp/src/dynamicGp.vue +27 -27
- package/src/centaline/dynamicHyperLink/index.js +11 -11
- package/src/centaline/dynamicHyperLink/src/dynamicHyperLink.vue +54 -54
- package/src/centaline/dynamicInput/index.js +35 -35
- package/src/centaline/dynamicInput/src/dynamicInput.vue +35 -35
- package/src/centaline/dynamicInputNumber/index.js +11 -11
- package/src/centaline/dynamicInputNumber/src/dynamicInputNumber.vue +157 -157
- package/src/centaline/dynamicIti/index.js +11 -11
- package/src/centaline/dynamicIti/src/dynamicIti.vue +148 -148
- package/src/centaline/dynamicL/index.js +11 -11
- package/src/centaline/dynamicL/src/dynamicL.vue +37 -37
- package/src/centaline/dynamicLabel/index.js +11 -11
- package/src/centaline/dynamicLabel/src/dynamicLabel.vue +73 -73
- package/src/centaline/dynamicLs/index.js +22 -22
- package/src/centaline/dynamicLs/src/dynamicLs.vue +233 -233
- package/src/centaline/dynamicMo/index.js +13 -13
- package/src/centaline/dynamicMo/src/dynamicMo.vue +421 -421
- package/src/centaline/dynamicMt/index.js +11 -11
- package/src/centaline/dynamicMt/src/dynamicMt.vue +44 -44
- package/src/centaline/dynamicPlaceHolder/index.js +11 -11
- package/src/centaline/dynamicPlaceHolder/src/dynamicPlaceHolder.vue +29 -29
- package/src/centaline/dynamicPopupSearchList/index.js +11 -11
- package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchList.vue +157 -157
- package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchListTable.vue +239 -239
- package/src/centaline/dynamicRichText/index.js +11 -11
- package/src/centaline/dynamicRichText/src/dynamicRichText.vue +33 -33
- package/src/centaline/dynamicSearchList/index.js +11 -11
- package/src/centaline/dynamicSearchList/src/dynamicSearchCategory.vue +121 -121
- package/src/centaline/dynamicSearchList/src/dynamicSearchList.vue +135 -135
- package/src/centaline/dynamicSearchList/src/dynamicSearchScreen.vue +206 -206
- package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +1069 -1069
- package/src/centaline/dynamicSearchList/src/dynamicTableStatistics.vue +41 -41
- package/src/centaline/dynamicSearchList/src/dynamicTableTip.vue +46 -46
- package/src/centaline/dynamicSearchList/src/dynamicTableToolbar.vue +61 -61
- package/src/centaline/dynamicSeg/index.js +11 -11
- package/src/centaline/dynamicSeg/src/dynamicSeg.vue +100 -100
- package/src/centaline/dynamicSensitiveEye/index.js +11 -11
- package/src/centaline/dynamicSensitiveEye/src/dynamicSensitiveEye.vue +74 -74
- package/src/centaline/dynamicSo/index.js +14 -14
- package/src/centaline/dynamicSo/src/dynamicSo.vue +328 -328
- package/src/centaline/dynamicSo/src/dynamicSo/345/211/257/346/234/254.vue +69 -69
- package/src/centaline/dynamicSos/index.js +14 -14
- package/src/centaline/dynamicSos/src/dynamicSos - /345/244/215/345/210/266.vue" +223 -223
- package/src/centaline/dynamicSos/src/dynamicSos.vue +260 -260
- package/src/centaline/dynamicSw/index.js +11 -11
- package/src/centaline/dynamicSw/src/dynamicSw.vue +74 -74
- package/src/centaline/dynamicT/index.js +11 -11
- package/src/centaline/dynamicT/src/dynamicT.vue +79 -79
- package/src/centaline/dynamicTab/index.js +11 -11
- package/src/centaline/dynamicTab/src/dynamicTab.vue +49 -49
- package/src/centaline/dynamicTabs/index.js +11 -11
- package/src/centaline/dynamicTabs/src/dynamicTabs.vue +69 -69
- package/src/centaline/dynamicTags/index.js +13 -13
- package/src/centaline/dynamicTags/src/dynamicTags - /345/244/215/345/210/266.vue" +391 -391
- package/src/centaline/dynamicTags/src/dynamicTags.vue +427 -427
- package/src/centaline/dynamicTimeSelect/index.js +11 -11
- package/src/centaline/dynamicTimeSelect/src/dynamicTimeSelect.vue +141 -141
- package/src/centaline/dynamicTree/index.js +11 -11
- package/src/centaline/dynamicTree/src/dynamicSearchTree.vue +66 -66
- package/src/centaline/dynamicTree/src/dynamicTree.vue +233 -233
- package/src/centaline/dynamicTree/src/dynamicTreeList.vue +74 -74
- package/src/centaline/formData/index.js +290 -290
- package/src/centaline/imgPreview/index.js +42 -42
- package/src/centaline/imgPreview/src/imgPreview.vue +26 -26
- package/src/centaline/index.js +51 -51
- package/src/centaline/loader/index.js +157 -157
- package/src/centaline/loader/src/ctl/Base.js +261 -261
- package/src/centaline/loader/src/ctl/Button.js +44 -44
- package/src/centaline/loader/src/ctl/Cb.js +27 -27
- package/src/centaline/loader/src/ctl/Checkbox.js +107 -107
- package/src/centaline/loader/src/ctl/ComboBoxWithTextBox.js +162 -162
- package/src/centaline/loader/src/ctl/D.js +31 -31
- package/src/centaline/loader/src/ctl/Detail.js +175 -175
- package/src/centaline/loader/src/ctl/Dtd.js +115 -115
- package/src/centaline/loader/src/ctl/DtdOld.js +129 -129
- package/src/centaline/loader/src/ctl/File.js +292 -292
- package/src/centaline/loader/src/ctl/Form.js +380 -380
- package/src/centaline/loader/src/ctl/FormList.js +428 -428
- package/src/centaline/loader/src/ctl/GM.js +20 -20
- package/src/centaline/loader/src/ctl/Gp.js +9 -9
- package/src/centaline/loader/src/ctl/Hd.js +13 -13
- package/src/centaline/loader/src/ctl/HyperLink.js +24 -24
- package/src/centaline/loader/src/ctl/InputNumber.js +51 -51
- package/src/centaline/loader/src/ctl/Iti.js +108 -108
- package/src/centaline/loader/src/ctl/L.js +18 -18
- package/src/centaline/loader/src/ctl/Mo.js +183 -183
- package/src/centaline/loader/src/ctl/Mt.js +20 -20
- package/src/centaline/loader/src/ctl/PlaceHolder.js +17 -17
- package/src/centaline/loader/src/ctl/Router.js +273 -273
- package/src/centaline/loader/src/ctl/SearchCategory.js +54 -54
- package/src/centaline/loader/src/ctl/SearchScreen.js +236 -236
- package/src/centaline/loader/src/ctl/SearchTable.js +772 -772
- package/src/centaline/loader/src/ctl/Seg.js +37 -37
- package/src/centaline/loader/src/ctl/SensitiveEye.js +65 -65
- package/src/centaline/loader/src/ctl/So.js +117 -117
- package/src/centaline/loader/src/ctl/Sos.js +128 -128
- package/src/centaline/loader/src/ctl/Sw.js +27 -27
- package/src/centaline/loader/src/ctl/T.js +65 -65
- package/src/centaline/loader/src/ctl/Tabs.js +57 -57
- package/src/centaline/loader/src/ctl/Tags.js +191 -191
- package/src/centaline/loader/src/ctl/TimeSelect.js +87 -87
- package/src/centaline/loader/src/ctl/Tree.js +151 -151
- package/src/centaline/loader/src/ctl/Ttts.js +78 -78
- package/src/centaline/loader/src/ctl/lib/Enum.js +563 -563
- package/src/centaline/loader/src/ctl/lib/LibFunction.js +364 -364
- package/src/centaline/loader/src/ctl.js +36 -36
- package/src/centaline/mixins/dynamicElement.js +151 -151
- package/src/centaline/mixins/dynamicSelect.js +84 -84
- package/src/centaline/mixins/emitter.js +33 -33
- package/src/centaline/progress/index.js +11 -11
- package/src/centaline/progress/src/progress.vue +70 -70
- package/src/centaline/quickInput/src/quickInput.vue +64 -64
- package/src/centaline/selectOption/src/selectOption.vue +61 -61
- package/src/centaline/selectOption/src/selectOptionVertical.vue +80 -80
- package/src/centaline/templateControls/index.js +17 -17
- package/src/centaline/templateControls/src/dynamicTableA.vue +20 -20
- package/src/centaline/templateControls/src/dynamicTableCurrency.vue +62 -62
- package/src/centaline/templateControls/src/dynamicTableImg.vue +25 -25
- package/src/centaline/templates/index.js +34 -34
- package/src/centaline/templates/src/ContractSearch.js +67 -67
- package/src/centaline/templates/src/test.js +44 -44
- package/src/centaline/validate/index.js +332 -332
- package/src/main.js +46 -46
- package/src/router/index.js +44 -44
- package/wwwroot/static/centaline/centaline-data-driven.js +1 -1
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<el-image-viewer v-if="showPreview"
|
|
3
|
-
:urlList="previewImages"
|
|
4
|
-
:on-close="closeViewer"></el-image-viewer>
|
|
5
|
-
</template>
|
|
6
|
-
<script>
|
|
7
|
-
//该组件打包被排除(会导致包大很多),不排除的话无法使用,todo待更新
|
|
8
|
-
|
|
9
|
-
export default {
|
|
10
|
-
name: 'ctImgPreview',
|
|
11
|
-
data() {
|
|
12
|
-
return {
|
|
13
|
-
showPreview: false,
|
|
14
|
-
previewImages: []
|
|
15
|
-
};
|
|
16
|
-
},
|
|
17
|
-
components: {
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
methods: {
|
|
21
|
-
closeViewer() {
|
|
22
|
-
this.showPreview = false;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<el-image-viewer v-if="showPreview"
|
|
3
|
+
:urlList="previewImages"
|
|
4
|
+
:on-close="closeViewer"></el-image-viewer>
|
|
5
|
+
</template>
|
|
6
|
+
<script>
|
|
7
|
+
//该组件打包被排除(会导致包大很多),不排除的话无法使用,todo待更新
|
|
8
|
+
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
|
|
9
|
+
export default {
|
|
10
|
+
name: 'ctImgPreview',
|
|
11
|
+
data() {
|
|
12
|
+
return {
|
|
13
|
+
showPreview: false,
|
|
14
|
+
previewImages: []
|
|
15
|
+
};
|
|
16
|
+
},
|
|
17
|
+
components: {
|
|
18
|
+
ElImageViewer
|
|
19
|
+
},
|
|
20
|
+
methods: {
|
|
21
|
+
closeViewer() {
|
|
22
|
+
this.showPreview = false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
</script>
|
package/src/centaline/index.js
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
const paths = require('../../build/centaline/centaline.path').default;
|
|
2
|
-
//import './css/common.css'
|
|
3
|
-
import babelpolyfill from 'babel-polyfill'
|
|
4
|
-
|
|
5
|
-
let defaultInstallOpt = {
|
|
6
|
-
baseUrl: '',
|
|
7
|
-
zIndex: 2000,
|
|
8
|
-
showRequestErrorMessage: true,
|
|
9
|
-
handler: {
|
|
10
|
-
// 打开tab页
|
|
11
|
-
openTab: function (action, submitData, pageTitle) {
|
|
12
|
-
|
|
13
|
-
},
|
|
14
|
-
// 关闭当前tab页
|
|
15
|
-
closeTab: function () {
|
|
16
|
-
|
|
17
|
-
},
|
|
18
|
-
// 获取请求头
|
|
19
|
-
getRequestHeaders: function () {
|
|
20
|
-
return {};
|
|
21
|
-
},
|
|
22
|
-
// 请求完成事件,可判断是否登录过期执行响应操作
|
|
23
|
-
requestComplete: function (response) {
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const centaline = {
|
|
30
|
-
install(Vue, opts = {}) {
|
|
31
|
-
for (var componentName in paths.components) {
|
|
32
|
-
var component = require("./" + componentName + "/index.js").default;
|
|
33
|
-
Vue.component(component.name, component);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
for (var plugName in paths.plugs) {
|
|
37
|
-
var plug = require("./" + plugName + "/index.js").default;
|
|
38
|
-
Vue.use(plug);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
opts.handler = Object.assign(defaultInstallOpt.handler, opts.handler)
|
|
42
|
-
const option = Object.assign(defaultInstallOpt, opts)
|
|
43
|
-
Vue.prototype.$dataDrivenOpts = option
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
if (typeof window !== "undefined" && window.Vue) {
|
|
48
|
-
window.Vue.use(centaline);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export default centaline;
|
|
1
|
+
const paths = require('../../build/centaline/centaline.path').default;
|
|
2
|
+
//import './css/common.css'
|
|
3
|
+
import babelpolyfill from 'babel-polyfill'
|
|
4
|
+
|
|
5
|
+
let defaultInstallOpt = {
|
|
6
|
+
baseUrl: '',
|
|
7
|
+
zIndex: 2000,
|
|
8
|
+
showRequestErrorMessage: true,
|
|
9
|
+
handler: {
|
|
10
|
+
// 打开tab页
|
|
11
|
+
openTab: function (action, submitData, pageTitle) {
|
|
12
|
+
|
|
13
|
+
},
|
|
14
|
+
// 关闭当前tab页
|
|
15
|
+
closeTab: function () {
|
|
16
|
+
|
|
17
|
+
},
|
|
18
|
+
// 获取请求头
|
|
19
|
+
getRequestHeaders: function () {
|
|
20
|
+
return {};
|
|
21
|
+
},
|
|
22
|
+
// 请求完成事件,可判断是否登录过期执行响应操作
|
|
23
|
+
requestComplete: function (response) {
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const centaline = {
|
|
30
|
+
install(Vue, opts = {}) {
|
|
31
|
+
for (var componentName in paths.components) {
|
|
32
|
+
var component = require("./" + componentName + "/index.js").default;
|
|
33
|
+
Vue.component(component.name, component);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
for (var plugName in paths.plugs) {
|
|
37
|
+
var plug = require("./" + plugName + "/index.js").default;
|
|
38
|
+
Vue.use(plug);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
opts.handler = Object.assign(defaultInstallOpt.handler, opts.handler)
|
|
42
|
+
const option = Object.assign(defaultInstallOpt, opts)
|
|
43
|
+
Vue.prototype.$dataDrivenOpts = option
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (typeof window !== "undefined" && window.Vue) {
|
|
48
|
+
window.Vue.use(centaline);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export default centaline;
|
|
@@ -1,157 +1,157 @@
|
|
|
1
|
-
import common from '../common/index'
|
|
2
|
-
var loader = {
|
|
3
|
-
/**
|
|
4
|
-
* @method
|
|
5
|
-
* @param {Object} Vue Vue对象
|
|
6
|
-
* @desc 将加载器添加到Vue对象的$loader属性
|
|
7
|
-
*/
|
|
8
|
-
install(Vue) {
|
|
9
|
-
Vue.prototype.$loader = loader;
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @method
|
|
14
|
-
* @param {String} key 加载器对应的key值(文件名)
|
|
15
|
-
* @desc 创建加载器对象
|
|
16
|
-
* @returns {Object} 返回加载器对象
|
|
17
|
-
*/
|
|
18
|
-
create(key) {
|
|
19
|
-
if (key) {
|
|
20
|
-
return require("./src/" + key + ".js").default;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
return require("./src/ctl.js").default;
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @method
|
|
29
|
-
* @desc 对象合并,参数不限,从后覆盖到前
|
|
30
|
-
* @returns {Object} 返回合并后的对象
|
|
31
|
-
*/
|
|
32
|
-
copy: function () {
|
|
33
|
-
var rtn = {};
|
|
34
|
-
var args = arguments;
|
|
35
|
-
for (var i in args) {
|
|
36
|
-
for (var k in args[i]) {
|
|
37
|
-
if (typeof args[i][k] !== 'object') {
|
|
38
|
-
this.dep(rtn, args[i], k);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
if (args[i][k] instanceof Array) {
|
|
42
|
-
delete rtn[k];
|
|
43
|
-
rtn[k] = args[i][k];
|
|
44
|
-
this.arrayVariation(rtn, args[i], k);
|
|
45
|
-
}
|
|
46
|
-
else if (args[i][k] instanceof Date) {
|
|
47
|
-
this.dep(rtn, args[i], k);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
var tempData = this.copy(rtn[k], args[i][k]);
|
|
51
|
-
this.depObj(rtn, args[i], k, tempData);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return rtn;
|
|
57
|
-
},
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* @method
|
|
61
|
-
* @param {Object} obj 合并的对象
|
|
62
|
-
* @param {Object} source 源数据
|
|
63
|
-
* @param {String} key 监听对应的key
|
|
64
|
-
* @desc 根据key值,将合并对象与源数据的属性绑定监听
|
|
65
|
-
*/
|
|
66
|
-
dep: function (obj, source, key) {
|
|
67
|
-
var property = Object.getOwnPropertyDescriptor(source, key);
|
|
68
|
-
var getter = property && property.get;
|
|
69
|
-
var setter = property && property.set;
|
|
70
|
-
Object.defineProperty(obj, key, {
|
|
71
|
-
enumerable: true,
|
|
72
|
-
configurable: true,
|
|
73
|
-
get: function reactiveGetter() {
|
|
74
|
-
var value = getter ? getter.call(source) : source[key];
|
|
75
|
-
return value;
|
|
76
|
-
},
|
|
77
|
-
set: function reactiveSetter(v) {
|
|
78
|
-
if (source[key] !== v) {
|
|
79
|
-
if (setter) {
|
|
80
|
-
setter.call(source, v);
|
|
81
|
-
} else {
|
|
82
|
-
source[key] = v;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
},
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* @method
|
|
91
|
-
* @param {Object} obj 合并的对象
|
|
92
|
-
* @param {Object} source 源数据
|
|
93
|
-
* @param {String} key 监听对应的key
|
|
94
|
-
* @param {Object} tempData 临时存储的监听对象
|
|
95
|
-
* @desc 根据key值,将合并对象与源数据的对象属性绑定监听
|
|
96
|
-
*/
|
|
97
|
-
depObj: function (obj, source, key, tempData) {
|
|
98
|
-
if (key == 'timeValue') {
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
var property = Object.getOwnPropertyDescriptor(source, key);
|
|
102
|
-
var getter = property && property.get;
|
|
103
|
-
var setter = property && property.set;
|
|
104
|
-
Object.defineProperty(obj, key, {
|
|
105
|
-
enumerable: true,
|
|
106
|
-
configurable: true,
|
|
107
|
-
get: function reactiveGetter() {
|
|
108
|
-
var value = tempData;
|
|
109
|
-
return value;
|
|
110
|
-
},
|
|
111
|
-
set: function reactiveSetter(v) {
|
|
112
|
-
if (setter) {
|
|
113
|
-
tempData = v;
|
|
114
|
-
setter.call(source, v);
|
|
115
|
-
} else {
|
|
116
|
-
tempData = v;
|
|
117
|
-
source[key] = v;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
},
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* @method
|
|
125
|
-
* @param {Object} obj 合并后的对象
|
|
126
|
-
* @param {Object} source 源对象
|
|
127
|
-
* @param {String} key 需要监听的数组属性名
|
|
128
|
-
* @desc 根据key值,将合并对象与源数据的数组属性绑定监听,重写数组方法
|
|
129
|
-
*/
|
|
130
|
-
arrayVariation: function (obj, source, key) {
|
|
131
|
-
var self = this;
|
|
132
|
-
var arrayProto = Array.prototype;
|
|
133
|
-
var arrayMethods = Object.create(arrayProto);
|
|
134
|
-
[
|
|
135
|
-
'push',
|
|
136
|
-
'pop',
|
|
137
|
-
'shift',
|
|
138
|
-
'unshift',
|
|
139
|
-
'splice',
|
|
140
|
-
'sort',
|
|
141
|
-
'reverse'
|
|
142
|
-
].forEach(method => {
|
|
143
|
-
// 原始数组操作方法
|
|
144
|
-
let original = arrayMethods[method];
|
|
145
|
-
obj[key][method] = function variation() {
|
|
146
|
-
var ob = this.__ob__;
|
|
147
|
-
var result = original.apply(this, arguments);
|
|
148
|
-
if (ob && ob.dep) {
|
|
149
|
-
ob.dep.notify();
|
|
150
|
-
}
|
|
151
|
-
return result;
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
},
|
|
155
|
-
common: common
|
|
156
|
-
};
|
|
157
|
-
export default loader;
|
|
1
|
+
import common from '../common/index'
|
|
2
|
+
var loader = {
|
|
3
|
+
/**
|
|
4
|
+
* @method
|
|
5
|
+
* @param {Object} Vue Vue对象
|
|
6
|
+
* @desc 将加载器添加到Vue对象的$loader属性
|
|
7
|
+
*/
|
|
8
|
+
install(Vue) {
|
|
9
|
+
Vue.prototype.$loader = loader;
|
|
10
|
+
},
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @method
|
|
14
|
+
* @param {String} key 加载器对应的key值(文件名)
|
|
15
|
+
* @desc 创建加载器对象
|
|
16
|
+
* @returns {Object} 返回加载器对象
|
|
17
|
+
*/
|
|
18
|
+
create(key) {
|
|
19
|
+
if (key) {
|
|
20
|
+
return require("./src/" + key + ".js").default;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return require("./src/ctl.js").default;
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @method
|
|
29
|
+
* @desc 对象合并,参数不限,从后覆盖到前
|
|
30
|
+
* @returns {Object} 返回合并后的对象
|
|
31
|
+
*/
|
|
32
|
+
copy: function () {
|
|
33
|
+
var rtn = {};
|
|
34
|
+
var args = arguments;
|
|
35
|
+
for (var i in args) {
|
|
36
|
+
for (var k in args[i]) {
|
|
37
|
+
if (typeof args[i][k] !== 'object') {
|
|
38
|
+
this.dep(rtn, args[i], k);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
if (args[i][k] instanceof Array) {
|
|
42
|
+
delete rtn[k];
|
|
43
|
+
rtn[k] = args[i][k];
|
|
44
|
+
this.arrayVariation(rtn, args[i], k);
|
|
45
|
+
}
|
|
46
|
+
else if (args[i][k] instanceof Date) {
|
|
47
|
+
this.dep(rtn, args[i], k);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
var tempData = this.copy(rtn[k], args[i][k]);
|
|
51
|
+
this.depObj(rtn, args[i], k, tempData);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return rtn;
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @method
|
|
61
|
+
* @param {Object} obj 合并的对象
|
|
62
|
+
* @param {Object} source 源数据
|
|
63
|
+
* @param {String} key 监听对应的key
|
|
64
|
+
* @desc 根据key值,将合并对象与源数据的属性绑定监听
|
|
65
|
+
*/
|
|
66
|
+
dep: function (obj, source, key) {
|
|
67
|
+
var property = Object.getOwnPropertyDescriptor(source, key);
|
|
68
|
+
var getter = property && property.get;
|
|
69
|
+
var setter = property && property.set;
|
|
70
|
+
Object.defineProperty(obj, key, {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
configurable: true,
|
|
73
|
+
get: function reactiveGetter() {
|
|
74
|
+
var value = getter ? getter.call(source) : source[key];
|
|
75
|
+
return value;
|
|
76
|
+
},
|
|
77
|
+
set: function reactiveSetter(v) {
|
|
78
|
+
if (source[key] !== v) {
|
|
79
|
+
if (setter) {
|
|
80
|
+
setter.call(source, v);
|
|
81
|
+
} else {
|
|
82
|
+
source[key] = v;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @method
|
|
91
|
+
* @param {Object} obj 合并的对象
|
|
92
|
+
* @param {Object} source 源数据
|
|
93
|
+
* @param {String} key 监听对应的key
|
|
94
|
+
* @param {Object} tempData 临时存储的监听对象
|
|
95
|
+
* @desc 根据key值,将合并对象与源数据的对象属性绑定监听
|
|
96
|
+
*/
|
|
97
|
+
depObj: function (obj, source, key, tempData) {
|
|
98
|
+
if (key == 'timeValue') {
|
|
99
|
+
|
|
100
|
+
}
|
|
101
|
+
var property = Object.getOwnPropertyDescriptor(source, key);
|
|
102
|
+
var getter = property && property.get;
|
|
103
|
+
var setter = property && property.set;
|
|
104
|
+
Object.defineProperty(obj, key, {
|
|
105
|
+
enumerable: true,
|
|
106
|
+
configurable: true,
|
|
107
|
+
get: function reactiveGetter() {
|
|
108
|
+
var value = tempData;
|
|
109
|
+
return value;
|
|
110
|
+
},
|
|
111
|
+
set: function reactiveSetter(v) {
|
|
112
|
+
if (setter) {
|
|
113
|
+
tempData = v;
|
|
114
|
+
setter.call(source, v);
|
|
115
|
+
} else {
|
|
116
|
+
tempData = v;
|
|
117
|
+
source[key] = v;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
},
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* @method
|
|
125
|
+
* @param {Object} obj 合并后的对象
|
|
126
|
+
* @param {Object} source 源对象
|
|
127
|
+
* @param {String} key 需要监听的数组属性名
|
|
128
|
+
* @desc 根据key值,将合并对象与源数据的数组属性绑定监听,重写数组方法
|
|
129
|
+
*/
|
|
130
|
+
arrayVariation: function (obj, source, key) {
|
|
131
|
+
var self = this;
|
|
132
|
+
var arrayProto = Array.prototype;
|
|
133
|
+
var arrayMethods = Object.create(arrayProto);
|
|
134
|
+
[
|
|
135
|
+
'push',
|
|
136
|
+
'pop',
|
|
137
|
+
'shift',
|
|
138
|
+
'unshift',
|
|
139
|
+
'splice',
|
|
140
|
+
'sort',
|
|
141
|
+
'reverse'
|
|
142
|
+
].forEach(method => {
|
|
143
|
+
// 原始数组操作方法
|
|
144
|
+
let original = arrayMethods[method];
|
|
145
|
+
obj[key][method] = function variation() {
|
|
146
|
+
var ob = this.__ob__;
|
|
147
|
+
var result = original.apply(this, arguments);
|
|
148
|
+
if (ob && ob.dep) {
|
|
149
|
+
ob.dep.notify();
|
|
150
|
+
}
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
},
|
|
155
|
+
common: common
|
|
156
|
+
};
|
|
157
|
+
export default loader;
|