centaline-data-driven 1.1.55 → 1.1.59

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.
Files changed (202) hide show
  1. package/.babelrc +12 -12
  2. package/.editorconfig +9 -9
  3. package/.gitattributes +63 -63
  4. package/.postcssrc.js +10 -10
  5. package/.vs/Centaline.Front_End.DataDriven/DesignTimeBuild/.dtbcache +0 -0
  6. package/.vs/Centaline.Front_End.DataDriven/v16/Server/sqlite3/db.lock +0 -0
  7. package/.vs/Centaline.Front_End.DataDriven/v16/Server/sqlite3/storage.ide +0 -0
  8. package/Centaline.Front_End.DataDriven.csproj +37 -37
  9. package/Centaline.Front_End.DataDriven.sln +25 -25
  10. package/Properties/launchSettings.json +26 -26
  11. package/README.md +140 -140
  12. package/build/build.js +41 -41
  13. package/build/centaline/centaline.path.js +59 -59
  14. package/build/centaline/webpack.centaline.conf.js +106 -106
  15. package/build/check-versions.js +54 -54
  16. package/build/utils.js +102 -102
  17. package/build/vue-loader.conf.js +22 -22
  18. package/build/webpack.base.conf.js +82 -82
  19. package/build/webpack.dev.conf.js +111 -111
  20. package/build/webpack.prod.conf.js +145 -145
  21. package/config/dev.env.js +12 -12
  22. package/config/index.js +73 -73
  23. package/config/prod.env.js +4 -4
  24. package/index.html +14 -14
  25. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.dgspec.json +73 -0
  26. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.g.props +29 -0
  27. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.g.targets +15 -0
  28. package/obj/Debug/netcoreapp2.1/Centaline.Front_End.DataDriven.AssemblyInfo.cs +23 -0
  29. package/obj/Debug/netcoreapp2.1/Centaline.Front_End.DataDriven.RazorAssemblyInfo.cs +20 -0
  30. package/obj/project.assets.json +11907 -0
  31. package/package.json +75 -75
  32. package/src/App.vue +10 -10
  33. package/src/Detail.vue +29 -26
  34. package/src/Edit.vue +32 -32
  35. package/src/Form.vue +45 -29
  36. package/src/SearchList.vue +41 -40
  37. package/src/SearchTree.vue +51 -51
  38. package/src/Tabs.vue +19 -19
  39. package/src/centaline/api/index.js +249 -249
  40. package/src/centaline/comfirm/index.js +11 -11
  41. package/src/centaline/comfirm/src/comfirm.vue +44 -44
  42. package/src/centaline/common/index.js +738 -738
  43. package/src/centaline/css/common.css +752 -748
  44. package/src/centaline/css/max.css +208 -208
  45. package/src/centaline/dialogList/index.js +11 -11
  46. package/src/centaline/dialogList/src/dialog.vue +210 -210
  47. package/src/centaline/dialogList/src/dialogList.vue +65 -65
  48. package/src/centaline/dialogList/src/dialogNew.vue +78 -78
  49. package/src/centaline/dialogList/src/drag.js +77 -77
  50. package/src/centaline/directives/index.js +23 -23
  51. package/src/centaline/dynamicBtn/index.js +11 -11
  52. package/src/centaline/dynamicBtn/src/dynamicBtn.vue +100 -100
  53. package/src/centaline/dynamicCb/index.js +11 -11
  54. package/src/centaline/dynamicCb/src/dynamicCb.vue +72 -72
  55. package/src/centaline/dynamicCheckbox/index.js +11 -11
  56. package/src/centaline/dynamicCheckbox/src/dynamicCheckbox.vue +128 -128
  57. package/src/centaline/dynamicComboBoxWithTextBox/index.js +11 -11
  58. package/src/centaline/dynamicComboBoxWithTextBox/src/dynamicComboBoxWithTextBox.vue +240 -240
  59. package/src/centaline/dynamicD/index.js +11 -11
  60. package/src/centaline/dynamicD/src/dynamicD.vue +92 -92
  61. package/src/centaline/dynamicDetail/index.js +10 -10
  62. package/src/centaline/dynamicDetail/src/dynamicDetail.vue +40 -40
  63. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailOFI.vue +1280 -1280
  64. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailRET.vue +1346 -1293
  65. package/src/centaline/dynamicDrop/index.js +11 -11
  66. package/src/centaline/dynamicDrop/src/dynamicDrop.vue +54 -54
  67. package/src/centaline/dynamicDtd/index.js +11 -11
  68. package/src/centaline/dynamicDtd/src/dynamicDtd.vue +125 -125
  69. package/src/centaline/dynamicDtd/src/dynamicDtdOld.vue +93 -93
  70. package/src/centaline/dynamicFile/index.js +11 -11
  71. package/src/centaline/dynamicFile/src/dynamicFile.vue +289 -288
  72. package/src/centaline/dynamicForm/index.js +24 -24
  73. package/src/centaline/dynamicForm/src/dynamicForm.vue +564 -564
  74. package/src/centaline/dynamicForm/src/dynamicFormList.vue +209 -209
  75. package/src/centaline/dynamicForm/src/dynamicFormListTable.vue +376 -376
  76. package/src/centaline/dynamicGp/index.js +11 -11
  77. package/src/centaline/dynamicGp/src/dynamicGp.vue +27 -27
  78. package/src/centaline/dynamicHyperLink/index.js +10 -10
  79. package/src/centaline/dynamicHyperLink/src/dynamicHyperLink.vue +54 -54
  80. package/src/centaline/dynamicInput/index.js +35 -35
  81. package/src/centaline/dynamicInput/src/dynamicInput.vue +35 -35
  82. package/src/centaline/dynamicInputNumber/index.js +11 -11
  83. package/src/centaline/dynamicInputNumber/src/dynamicInputNumber.vue +157 -157
  84. package/src/centaline/dynamicIti/index.js +11 -11
  85. package/src/centaline/dynamicIti/src/dynamicIti.vue +148 -148
  86. package/src/centaline/dynamicL/index.js +11 -11
  87. package/src/centaline/dynamicL/src/dynamicL.vue +37 -37
  88. package/src/centaline/dynamicLabel/index.js +11 -11
  89. package/src/centaline/dynamicLabel/src/dynamicLabel.vue +73 -73
  90. package/src/centaline/dynamicLs/index.js +22 -22
  91. package/src/centaline/dynamicLs/src/dynamicLs.vue +233 -233
  92. package/src/centaline/dynamicMo/index.js +13 -13
  93. package/src/centaline/dynamicMo/src/dynamicMo.vue +421 -421
  94. package/src/centaline/dynamicMt/index.js +11 -11
  95. package/src/centaline/dynamicMt/src/dynamicMt.vue +44 -44
  96. package/src/centaline/dynamicPlaceHolder/index.js +10 -10
  97. package/src/centaline/dynamicPlaceHolder/src/dynamicPlaceHolder.vue +29 -29
  98. package/src/centaline/dynamicPopupSearchList/index.js +11 -11
  99. package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchList.vue +157 -157
  100. package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchListTable.vue +239 -239
  101. package/src/centaline/dynamicRichText/index.js +11 -11
  102. package/src/centaline/dynamicRichText/src/dynamicRichText.vue +33 -33
  103. package/src/centaline/dynamicSearchList/index.js +11 -11
  104. package/src/centaline/dynamicSearchList/src/dynamicSearchCategory.vue +121 -121
  105. package/src/centaline/dynamicSearchList/src/dynamicSearchList.vue +135 -135
  106. package/src/centaline/dynamicSearchList/src/dynamicSearchScreen.vue +206 -206
  107. package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +1082 -1069
  108. package/src/centaline/dynamicSearchList/src/dynamicTableStatistics.vue +30 -30
  109. package/src/centaline/dynamicSearchList/src/dynamicTableTip.vue +46 -46
  110. package/src/centaline/dynamicSearchList/src/dynamicTableToolbar.vue +61 -61
  111. package/src/centaline/dynamicSeg/index.js +11 -11
  112. package/src/centaline/dynamicSeg/src/dynamicSeg.vue +100 -100
  113. package/src/centaline/dynamicSensitiveEye/index.js +11 -11
  114. package/src/centaline/dynamicSensitiveEye/src/dynamicSensitiveEye.vue +74 -74
  115. package/src/centaline/dynamicSo/index.js +14 -14
  116. package/src/centaline/dynamicSo/src/dynamicSo.vue +329 -328
  117. package/src/centaline/dynamicSo/src/dynamicSo/345/211/257/346/234/254.vue +69 -69
  118. package/src/centaline/dynamicSos/index.js +14 -14
  119. package/src/centaline/dynamicSos/src/dynamicSos - /345/244/215/345/210/266.vue" +223 -223
  120. package/src/centaline/dynamicSos/src/dynamicSos.vue +261 -260
  121. package/src/centaline/dynamicSw/index.js +11 -11
  122. package/src/centaline/dynamicSw/src/dynamicSw.vue +74 -74
  123. package/src/centaline/dynamicT/index.js +11 -11
  124. package/src/centaline/dynamicT/src/dynamicT.vue +79 -79
  125. package/src/centaline/dynamicTab/index.js +11 -11
  126. package/src/centaline/dynamicTab/src/dynamicTab.vue +49 -49
  127. package/src/centaline/dynamicTabs/index.js +11 -11
  128. package/src/centaline/dynamicTabs/src/dynamicTabs.vue +69 -69
  129. package/src/centaline/dynamicTags/index.js +13 -13
  130. package/src/centaline/dynamicTags/src/dynamicTags - /345/244/215/345/210/266.vue" +391 -391
  131. package/src/centaline/dynamicTags/src/dynamicTags.vue +427 -427
  132. package/src/centaline/dynamicTimeSelect/index.js +11 -11
  133. package/src/centaline/dynamicTimeSelect/src/dynamicTimeSelect.vue +141 -141
  134. package/src/centaline/dynamicTree/index.js +11 -11
  135. package/src/centaline/dynamicTree/src/dynamicSearchTree.vue +66 -66
  136. package/src/centaline/dynamicTree/src/dynamicTree.vue +233 -233
  137. package/src/centaline/dynamicTree/src/dynamicTreeList.vue +74 -74
  138. package/src/centaline/formData/index.js +290 -290
  139. package/src/centaline/imgPreview/index.js +42 -42
  140. package/src/centaline/imgPreview/src/imgPreview.vue +26 -26
  141. package/src/centaline/index.js +51 -51
  142. package/src/centaline/loader/index.js +157 -157
  143. package/src/centaline/loader/src/ctl/Base.js +270 -261
  144. package/src/centaline/loader/src/ctl/Button.js +44 -44
  145. package/src/centaline/loader/src/ctl/Cb.js +27 -27
  146. package/src/centaline/loader/src/ctl/Checkbox.js +107 -107
  147. package/src/centaline/loader/src/ctl/ComboBoxWithTextBox.js +162 -162
  148. package/src/centaline/loader/src/ctl/D.js +31 -31
  149. package/src/centaline/loader/src/ctl/Detail.js +228 -175
  150. package/src/centaline/loader/src/ctl/Dtd.js +115 -115
  151. package/src/centaline/loader/src/ctl/DtdOld.js +129 -129
  152. package/src/centaline/loader/src/ctl/File.js +292 -292
  153. package/src/centaline/loader/src/ctl/Form.js +380 -380
  154. package/src/centaline/loader/src/ctl/FormList.js +428 -428
  155. package/src/centaline/loader/src/ctl/GM.js +20 -20
  156. package/src/centaline/loader/src/ctl/Gp.js +9 -9
  157. package/src/centaline/loader/src/ctl/Hd.js +13 -13
  158. package/src/centaline/loader/src/ctl/HyperLink.js +24 -24
  159. package/src/centaline/loader/src/ctl/InputNumber.js +51 -51
  160. package/src/centaline/loader/src/ctl/Iti.js +108 -108
  161. package/src/centaline/loader/src/ctl/L.js +18 -18
  162. package/src/centaline/loader/src/ctl/Mo.js +183 -183
  163. package/src/centaline/loader/src/ctl/Mt.js +20 -20
  164. package/src/centaline/loader/src/ctl/PlaceHolder.js +15 -15
  165. package/src/centaline/loader/src/ctl/Router.js +273 -273
  166. package/src/centaline/loader/src/ctl/SearchCategory.js +54 -54
  167. package/src/centaline/loader/src/ctl/SearchScreen.js +236 -236
  168. package/src/centaline/loader/src/ctl/SearchTable.js +787 -772
  169. package/src/centaline/loader/src/ctl/Seg.js +37 -37
  170. package/src/centaline/loader/src/ctl/SensitiveEye.js +65 -65
  171. package/src/centaline/loader/src/ctl/So.js +117 -117
  172. package/src/centaline/loader/src/ctl/Sos.js +128 -128
  173. package/src/centaline/loader/src/ctl/Sw.js +27 -27
  174. package/src/centaline/loader/src/ctl/T.js +65 -65
  175. package/src/centaline/loader/src/ctl/Tabs.js +57 -57
  176. package/src/centaline/loader/src/ctl/Tags.js +191 -191
  177. package/src/centaline/loader/src/ctl/TimeSelect.js +87 -87
  178. package/src/centaline/loader/src/ctl/Tree.js +151 -151
  179. package/src/centaline/loader/src/ctl/Ttts.js +78 -78
  180. package/src/centaline/loader/src/ctl/lib/Enum.js +580 -563
  181. package/src/centaline/loader/src/ctl/lib/LibFunction.js +364 -364
  182. package/src/centaline/loader/src/ctl.js +36 -36
  183. package/src/centaline/mixins/dynamicElement.js +151 -151
  184. package/src/centaline/mixins/dynamicSelect.js +84 -84
  185. package/src/centaline/mixins/emitter.js +33 -33
  186. package/src/centaline/progress/index.js +11 -11
  187. package/src/centaline/progress/src/progress.vue +70 -70
  188. package/src/centaline/quickInput/src/quickInput.vue +64 -64
  189. package/src/centaline/selectOption/src/selectOption.vue +61 -61
  190. package/src/centaline/selectOption/src/selectOptionVertical.vue +80 -80
  191. package/src/centaline/templateControls/index.js +17 -17
  192. package/src/centaline/templateControls/src/dynamicTableA.vue +20 -20
  193. package/src/centaline/templateControls/src/dynamicTableCurrency.vue +62 -62
  194. package/src/centaline/templateControls/src/dynamicTableImg.vue +25 -25
  195. package/src/centaline/templates/index.js +34 -34
  196. package/src/centaline/templates/src/ContractSearch.js +67 -67
  197. package/src/centaline/templates/src/test.js +44 -44
  198. package/src/centaline/validate/index.js +332 -332
  199. package/src/main.js +55 -46
  200. package/src/router/index.js +44 -44
  201. package/wwwroot/static/centaline/centaline-data-driven.js +1 -1
  202. package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
@@ -1,78 +1,78 @@
1
- <template>
2
- <div class="ct-dialog">
3
- <el-dialog :top="topHeigth"
4
- :title="vmodel.title" :close-on-click-modal="false"
5
- :visible.sync="dialogVisible"
6
- :width="vmodel.content[0].attrs.width"
7
- :before-close="handleClose">
8
- <div :style="v.style" v-for="(v,index) in vmodel.content" :key="index">
9
- <component v-bind="v.attrs" :is="v.component" v-on="v.on"></component>
10
- </div>
11
- </el-dialog>
12
- </div>
13
- </template>
14
- <script>
15
- export default {
16
- name: 'ct-dialog-new',
17
- props: {
18
- vmodel: Object,
19
- zindex: Number
20
- },
21
- data() {
22
- return {
23
- dialogVisible: true,
24
- divHeigth: '500px'
25
- }
26
- },
27
- mounted() {
28
- for (var index in this.vmodel.content) {
29
- const v = this.vmodel.content[index];
30
- if (v.component === 'ct-searchlist' && parseInt(v.attrs.height) < 300) {
31
- v.attrs.height = '450px';
32
- }
33
-
34
- this.$set(v, 'style', {
35
- width: '100%',
36
- 'min-height': v.component === 'ct-searchlist' ? "" : v.attrs.height,
37
- 'height': v.component === 'ct-searchlist' ? v.attrs.height : ""
38
- })
39
-
40
- if (typeof v.on === "undefined") {
41
- }
42
- else if (typeof v.on.loaded === "undefined") {
43
- v.on.loaded = (model) => {
44
- this.vmodel.title = (model && model.title) ? model.title : this.vmodel.title;
45
- }
46
- }
47
- }
48
- },
49
- computed: {
50
- topHeigth: function () {
51
- let height;
52
- let vh = 0;
53
- this.vmodel.content[0].attrs.height = '50px';
54
- if (this.vmodel.content[0].attrs.height) {
55
- height = parseInt(this.vmodel.content[0].attrs.height) + 20;
56
- }
57
- if (document.documentElement.clientHeight > height) {
58
- height = document.documentElement.clientHeight - height;
59
- height = parseInt(height/2);
60
- vh = height * 100 / document.documentElement.clientHeight;
61
- vh = parseInt(vh);
62
- }
63
- if (vh < 3) {
64
- vh = 3;
65
- }
66
- if (vh > 13) {
67
- vh = 13;
68
- }
69
- return vh + 'vh';
70
- },
71
- },
72
- methods: {
73
- handleClose() {
74
- this.$emit('close', this);
75
- }
76
- }
77
- }
78
- </script>
1
+ <template>
2
+ <div class="ct-dialog">
3
+ <el-dialog :top="topHeigth"
4
+ :title="vmodel.title" :close-on-click-modal="false"
5
+ :visible.sync="dialogVisible"
6
+ :width="vmodel.content[0].attrs.width"
7
+ :before-close="handleClose">
8
+ <div :style="v.style" v-for="(v,index) in vmodel.content" :key="index">
9
+ <component v-bind="v.attrs" :is="v.component" v-on="v.on"></component>
10
+ </div>
11
+ </el-dialog>
12
+ </div>
13
+ </template>
14
+ <script>
15
+ export default {
16
+ name: 'ct-dialog-new',
17
+ props: {
18
+ vmodel: Object,
19
+ zindex: Number
20
+ },
21
+ data() {
22
+ return {
23
+ dialogVisible: true,
24
+ divHeigth: '500px'
25
+ }
26
+ },
27
+ mounted() {
28
+ for (var index in this.vmodel.content) {
29
+ const v = this.vmodel.content[index];
30
+ if (v.component === 'ct-searchlist' && parseInt(v.attrs.height) < 300) {
31
+ v.attrs.height = '450px';
32
+ }
33
+
34
+ this.$set(v, 'style', {
35
+ width: '100%',
36
+ 'min-height': v.component === 'ct-searchlist' ? "" : v.attrs.height,
37
+ 'height': v.component === 'ct-searchlist' ? v.attrs.height : ""
38
+ })
39
+
40
+ if (typeof v.on === "undefined") {
41
+ }
42
+ else if (typeof v.on.loaded === "undefined") {
43
+ v.on.loaded = (model) => {
44
+ this.vmodel.title = (model && model.title) ? model.title : this.vmodel.title;
45
+ }
46
+ }
47
+ }
48
+ },
49
+ computed: {
50
+ topHeigth: function () {
51
+ let height;
52
+ let vh = 0;
53
+ this.vmodel.content[0].attrs.height = '50px';
54
+ if (this.vmodel.content[0].attrs.height) {
55
+ height = parseInt(this.vmodel.content[0].attrs.height) + 20;
56
+ }
57
+ if (document.documentElement.clientHeight > height) {
58
+ height = document.documentElement.clientHeight - height;
59
+ height = parseInt(height/2);
60
+ vh = height * 100 / document.documentElement.clientHeight;
61
+ vh = parseInt(vh);
62
+ }
63
+ if (vh < 3) {
64
+ vh = 3;
65
+ }
66
+ if (vh > 13) {
67
+ vh = 13;
68
+ }
69
+ return vh + 'vh';
70
+ },
71
+ },
72
+ methods: {
73
+ handleClose() {
74
+ this.$emit('close', this);
75
+ }
76
+ }
77
+ }
78
+ </script>
@@ -1,77 +1,77 @@
1
- export default {
2
- bind(el, binding, vnode) {
3
- const dialogHeaderEl = el.querySelector('.el-dialog__header')
4
- const dragDom = el.querySelector('.el-dialog')
5
- dialogHeaderEl.style.cssText += ';cursor:move;'
6
- dragDom.style.cssText += ';top:0px;'
7
-
8
- // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
9
- const getStyle = (function() {
10
- if (window.document.currentStyle) {
11
- return (dom, attr) => dom.currentStyle[attr]
12
- } else {
13
- return (dom, attr) => getComputedStyle(dom, false)[attr]
14
- }
15
- })()
16
-
17
- dialogHeaderEl.onmousedown = (e) => {
18
- // 鼠标按下,计算当前元素距离可视区的距离
19
- const disX = e.clientX - dialogHeaderEl.offsetLeft
20
- const disY = e.clientY - dialogHeaderEl.offsetTop
21
-
22
- const dragDomWidth = dragDom.offsetWidth
23
- const dragDomHeight = dragDom.offsetHeight
24
-
25
- const screenWidth = document.body.clientWidth
26
- const screenHeight = document.body.clientHeight
27
-
28
- const minDragDomLeft = dragDom.offsetLeft
29
- const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth
30
-
31
- const minDragDomTop = dragDom.offsetTop
32
- const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight
33
-
34
- // 获取到的值带px 正则匹配替换
35
- let styL = getStyle(dragDom, 'left')
36
- let styT = getStyle(dragDom, 'top')
37
-
38
- if (styL.includes('%')) {
39
- styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100)
40
- styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100)
41
- } else {
42
- styL = +styL.replace(/\px/g, '')
43
- styT = +styT.replace(/\px/g, '')
44
- }
45
-
46
- document.onmousemove = function(e) {
47
- // 通过事件委托,计算移动的距离
48
- let left = e.clientX - disX
49
- let top = e.clientY - disY
50
-
51
- // 边界处理
52
- if (-(left) > minDragDomLeft) {
53
- left = -minDragDomLeft
54
- } else if (left > maxDragDomLeft) {
55
- left = maxDragDomLeft
56
- }
57
-
58
- if (-(top) > minDragDomTop) {
59
- top = -minDragDomTop
60
- } else if (top > maxDragDomTop) {
61
- top = maxDragDomTop
62
- }
63
-
64
- // 移动当前元素
65
- dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`
66
-
67
- // emit onDrag event
68
- vnode.child.$emit('dragDialog')
69
- }
70
-
71
- document.onmouseup = function(e) {
72
- document.onmousemove = null
73
- document.onmouseup = null
74
- }
75
- }
76
- }
77
- }
1
+ export default {
2
+ bind(el, binding, vnode) {
3
+ const dialogHeaderEl = el.querySelector('.el-dialog__header')
4
+ const dragDom = el.querySelector('.el-dialog')
5
+ dialogHeaderEl.style.cssText += ';cursor:move;'
6
+ dragDom.style.cssText += ';top:0px;'
7
+
8
+ // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
9
+ const getStyle = (function() {
10
+ if (window.document.currentStyle) {
11
+ return (dom, attr) => dom.currentStyle[attr]
12
+ } else {
13
+ return (dom, attr) => getComputedStyle(dom, false)[attr]
14
+ }
15
+ })()
16
+
17
+ dialogHeaderEl.onmousedown = (e) => {
18
+ // 鼠标按下,计算当前元素距离可视区的距离
19
+ const disX = e.clientX - dialogHeaderEl.offsetLeft
20
+ const disY = e.clientY - dialogHeaderEl.offsetTop
21
+
22
+ const dragDomWidth = dragDom.offsetWidth
23
+ const dragDomHeight = dragDom.offsetHeight
24
+
25
+ const screenWidth = document.body.clientWidth
26
+ const screenHeight = document.body.clientHeight
27
+
28
+ const minDragDomLeft = dragDom.offsetLeft
29
+ const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth
30
+
31
+ const minDragDomTop = dragDom.offsetTop
32
+ const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight
33
+
34
+ // 获取到的值带px 正则匹配替换
35
+ let styL = getStyle(dragDom, 'left')
36
+ let styT = getStyle(dragDom, 'top')
37
+
38
+ if (styL.includes('%')) {
39
+ styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100)
40
+ styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100)
41
+ } else {
42
+ styL = +styL.replace(/\px/g, '')
43
+ styT = +styT.replace(/\px/g, '')
44
+ }
45
+
46
+ document.onmousemove = function(e) {
47
+ // 通过事件委托,计算移动的距离
48
+ let left = e.clientX - disX
49
+ let top = e.clientY - disY
50
+
51
+ // 边界处理
52
+ if (-(left) > minDragDomLeft) {
53
+ left = -minDragDomLeft
54
+ } else if (left > maxDragDomLeft) {
55
+ left = maxDragDomLeft
56
+ }
57
+
58
+ if (-(top) > minDragDomTop) {
59
+ top = -minDragDomTop
60
+ } else if (top > maxDragDomTop) {
61
+ top = maxDragDomTop
62
+ }
63
+
64
+ // 移动当前元素
65
+ dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`
66
+
67
+ // emit onDrag event
68
+ vnode.child.$emit('dragDialog')
69
+ }
70
+
71
+ document.onmouseup = function(e) {
72
+ document.onmousemove = null
73
+ document.onmouseup = null
74
+ }
75
+ }
76
+ }
77
+ }
@@ -1,23 +1,23 @@
1
-
2
- const directives = {
3
- install: function (Vue,options) {
4
- Vue.directive('focus', {
5
- bind: function (el, binding, vnode) {
6
- if (binding.value) {
7
- setTimeout(function () {
8
- el.focus();
9
- }, 1);
10
- }
11
- },
12
- componentUpdated: function (el, binding, vnode) {
13
- if (binding.value) {
14
- setTimeout(function () {
15
- el.focus();
16
- }, 1);
17
- }
18
- }
19
- });
20
- }
21
- };
22
-
23
- export default directives;
1
+
2
+ const directives = {
3
+ install: function (Vue,options) {
4
+ Vue.directive('focus', {
5
+ bind: function (el, binding, vnode) {
6
+ if (binding.value) {
7
+ setTimeout(function () {
8
+ el.focus();
9
+ }, 1);
10
+ }
11
+ },
12
+ componentUpdated: function (el, binding, vnode) {
13
+ if (binding.value) {
14
+ setTimeout(function () {
15
+ el.focus();
16
+ }, 1);
17
+ }
18
+ }
19
+ });
20
+ }
21
+ };
22
+
23
+ export default directives;
@@ -1,11 +1,11 @@
1
- import dynamicBtn from './src/dynamicBtn'
2
-
3
- dynamicBtn.install = function (Vue) {
4
- Vue.component(dynamicBtn.name, dynamicBtn);
5
- }
6
-
7
- if (typeof window !== 'undefined' && window.Vue) {
8
- window.Vue.use(dynamicBtn);
9
- }
10
-
11
- export default dynamicBtn
1
+ import dynamicBtn from './src/dynamicBtn'
2
+
3
+ dynamicBtn.install = function (Vue) {
4
+ Vue.component(dynamicBtn.name, dynamicBtn);
5
+ }
6
+
7
+ if (typeof window !== 'undefined' && window.Vue) {
8
+ window.Vue.use(dynamicBtn);
9
+ }
10
+
11
+ export default dynamicBtn
@@ -1,100 +1,100 @@
1
- <template>
2
- <el-dropdown v-if="model.isDropdown"
3
- trigger="click"
4
- v-bind="model.attrs"
5
- placement="bottom"
6
- @click.native="dropClick"
7
- @command="commandClick"
8
- :disabled="model.disabled">
9
- <el-button type="primary">
10
- {{model.label}}<i class="el-icon-arrow-down el-icon--right"></i>
11
- </el-button>
12
- <el-dropdown-menu slot="dropdown">
13
- <el-dropdown-item v-for="item in model.elementOptions" :key="item.code" :command="item.code">{{item.name}}</el-dropdown-item>
14
- </el-dropdown-menu>
15
- </el-dropdown>
16
- <el-button v-else-if="!model.isImport"
17
- :type="model.isHyperLink ? 'text' : 'primary'"
18
- v-bind="model.attrs" @click="$emit('click',model)"
19
- :style="{color:model.textColor,backgroundColor:model.bgColor,borderColor:model.borderColor}"
20
- :icon="model.icon"
21
- :disabled="model.disabled">
22
- <!-- <i v-if="model.isShowIocn" :class="model.iconClass"></i> -->
23
- {{model.label}}</el-button>
24
- <el-upload v-else
25
- :action="model.action"
26
- v-bind="model.attrs"
27
- size="mini"
28
- :data="uploadData"
29
- :headers="headers"
30
- :multiple="false"
31
- :show-file-list="false"
32
- :on-success="handleAvatarSuccess"
33
- :on-error="handleAvatarError">
34
- <el-button size="mini" type="primary">{{model.label}}</el-button>
35
- </el-upload>
36
- </template>
37
- <script>
38
- import dynamicElement from '../../mixins/dynamicElement'
39
- export default {
40
- name: 'ct-btn',
41
- props: {
42
- vmodel: Object,
43
- fileData: Object,
44
- optionApi:String,
45
- },
46
- mixins: [dynamicElement],
47
- data: function () {
48
- return {};
49
- },
50
- created() {
51
- if (typeof this.vmodel === 'undefined') {
52
- this.model = this.loaderObj.Button(this.source);
53
- }
54
- else {
55
- this.model = this.vmodel;
56
- }
57
- },
58
- computed: {
59
- uploadData() {
60
- //因传输方式是FormData,故需要对Value是object的进行转化
61
- let data = {};
62
- for (var key in this.fileData) {
63
- if (typeof this.fileData[key] === "object") {
64
- data[key] = JSON.stringify(this.fileData[key]);
65
- }
66
- else {
67
- data[key] = this.fileData[key];
68
- }
69
- }
70
- return data;
71
- },
72
- headers() {
73
- return this.$common.getDataDrivenOpts().handler.getRequestHeaders();
74
- }
75
- },
76
- methods: {
77
- handleAvatarSuccess(res) {
78
- let self = this;
79
- this.$api.postThenHandler({ data: res}).then(function () {
80
- self.$emit('importComplete', res);
81
- });
82
- },
83
- handleAvatarError(info) {
84
- this.$message.warning("失败,请重试");
85
- },
86
- dropClick(event) {
87
- var self = this;
88
- this.$nextTick(function () {
89
- if (self.optionApi) {
90
- self.model.getOptions(self.optionApi);
91
- }
92
- });
93
- },
94
- commandClick(code){
95
- this.model.selectOptionCode=code;
96
- this.$emit('click', this.model);
97
- },
98
- }
99
- }
100
- </script>
1
+ <template>
2
+ <el-dropdown v-if="model.isDropdown"
3
+ trigger="click"
4
+ v-bind="model.attrs"
5
+ placement="bottom"
6
+ @click.native="dropClick"
7
+ @command="commandClick"
8
+ :disabled="model.disabled">
9
+ <el-button type="primary">
10
+ {{model.label}}<i class="el-icon-arrow-down el-icon--right"></i>
11
+ </el-button>
12
+ <el-dropdown-menu slot="dropdown">
13
+ <el-dropdown-item v-for="item in model.elementOptions" :key="item.code" :command="item.code">{{item.name}}</el-dropdown-item>
14
+ </el-dropdown-menu>
15
+ </el-dropdown>
16
+ <el-button v-else-if="!model.isImport"
17
+ :type="model.isHyperLink ? 'text' : 'primary'"
18
+ v-bind="model.attrs" @click="$emit('click',model)"
19
+ :style="{color:model.textColor,backgroundColor:model.bgColor,borderColor:model.borderColor}"
20
+ :icon="model.icon"
21
+ :disabled="model.disabled">
22
+ <!-- <i v-if="model.isShowIocn" :class="model.iconClass"></i> -->
23
+ {{model.label}}</el-button>
24
+ <el-upload v-else
25
+ :action="model.action"
26
+ v-bind="model.attrs"
27
+ size="mini"
28
+ :data="uploadData"
29
+ :headers="headers"
30
+ :multiple="false"
31
+ :show-file-list="false"
32
+ :on-success="handleAvatarSuccess"
33
+ :on-error="handleAvatarError">
34
+ <el-button size="mini" type="primary">{{model.label}}</el-button>
35
+ </el-upload>
36
+ </template>
37
+ <script>
38
+ import dynamicElement from '../../mixins/dynamicElement'
39
+ export default {
40
+ name: 'ct-btn',
41
+ props: {
42
+ vmodel: Object,
43
+ fileData: Object,
44
+ optionApi:String,
45
+ },
46
+ mixins: [dynamicElement],
47
+ data: function () {
48
+ return {};
49
+ },
50
+ created() {
51
+ if (typeof this.vmodel === 'undefined') {
52
+ this.model = this.loaderObj.Button(this.source);
53
+ }
54
+ else {
55
+ this.model = this.vmodel;
56
+ }
57
+ },
58
+ computed: {
59
+ uploadData() {
60
+ //因传输方式是FormData,故需要对Value是object的进行转化
61
+ let data = {};
62
+ for (var key in this.fileData) {
63
+ if (typeof this.fileData[key] === "object") {
64
+ data[key] = JSON.stringify(this.fileData[key]);
65
+ }
66
+ else {
67
+ data[key] = this.fileData[key];
68
+ }
69
+ }
70
+ return data;
71
+ },
72
+ headers() {
73
+ return this.$common.getDataDrivenOpts().handler.getRequestHeaders();
74
+ }
75
+ },
76
+ methods: {
77
+ handleAvatarSuccess(res) {
78
+ let self = this;
79
+ this.$api.postThenHandler({ data: res}).then(function () {
80
+ self.$emit('importComplete', res);
81
+ });
82
+ },
83
+ handleAvatarError(info) {
84
+ this.$message.warning("失败,请重试");
85
+ },
86
+ dropClick(event) {
87
+ var self = this;
88
+ this.$nextTick(function () {
89
+ if (self.optionApi) {
90
+ self.model.getOptions(self.optionApi);
91
+ }
92
+ });
93
+ },
94
+ commandClick(code){
95
+ this.model.selectOptionCode=code;
96
+ this.$emit('click', this.model);
97
+ },
98
+ }
99
+ }
100
+ </script>
@@ -1,11 +1,11 @@
1
- import dynamicCb from './src/dynamicCb'
2
-
3
- dynamicCb.install = function (Vue, options) {
4
- Vue.component(dynamicCb.name, dynamicCb);
5
- }
6
-
7
- if (typeof window !== 'undefined' && window.Vue) {
8
- window.Vue.use(dynamicCb);
9
- }
10
-
11
- export default dynamicCb;
1
+ import dynamicCb from './src/dynamicCb'
2
+
3
+ dynamicCb.install = function (Vue, options) {
4
+ Vue.component(dynamicCb.name, dynamicCb);
5
+ }
6
+
7
+ if (typeof window !== 'undefined' && window.Vue) {
8
+ window.Vue.use(dynamicCb);
9
+ }
10
+
11
+ export default dynamicCb;