ocpview-plus 1.3.15 → 1.3.16

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 (213) hide show
  1. package/README.md +55 -43
  2. package/dist/ocpviewplus.min.esm.js +574 -482
  3. package/dist/ocpviewplus.min.js +9 -9
  4. package/dist/style.css +1 -1
  5. package/dist/styles/efviewplus.css +1 -1
  6. package/package.json +146 -146
  7. package/src/components/base/ContractPrintMixins.js +30 -30
  8. package/src/components/base/controlbase.vue +190 -190
  9. package/src/components/base/controlbox.vue +102 -102
  10. package/src/components/base/index.js +2 -2
  11. package/src/components/base/load.js +19 -19
  12. package/src/components/base/probase.js +220 -220
  13. package/src/components/base/size.js +78 -78
  14. package/src/components/billbox/billbox.vue +67 -67
  15. package/src/components/billbox/index.js +1 -1
  16. package/src/components/cascaderbox/cascaderbox.vue +184 -184
  17. package/src/components/cascaderbox/index.js +2 -2
  18. package/src/components/checkbox/checkbox.vue +75 -75
  19. package/src/components/checkbox/checkgroupbox.vue +103 -103
  20. package/src/components/checkbox/index.js +2 -2
  21. package/src/components/colorbox/colorbox.vue +43 -43
  22. package/src/components/colorbox/index.js +1 -1
  23. package/src/components/combobox/combobox.vue +219 -219
  24. package/src/components/combobox/index.js +1 -1
  25. package/src/components/conditionbox/conditionbase.vue +194 -194
  26. package/src/components/conditionbox/conditionbox.vue +62 -62
  27. package/src/components/conditionbox/conditionfilterbox.vue +479 -479
  28. package/src/components/conditionbox/conditionselectorbox.vue +237 -237
  29. package/src/components/conditionbox/index.js +4 -4
  30. package/src/components/conditionbox/queryconditionbox.vue +25 -25
  31. package/src/components/conditionbox/queryconditionboxbase.vue +123 -123
  32. package/src/components/conditionbox/searchconditionbox.vue +113 -113
  33. package/src/components/conditionbox/searchgrid.vue +391 -391
  34. package/src/components/datebox/DateBoxV1.vue +22 -22
  35. package/src/components/datebox/datebox.vue +129 -129
  36. package/src/components/datebox/daterangebox.vue +154 -154
  37. package/src/components/datebox/index.js +5 -5
  38. package/src/components/form/baseform.vue +676 -676
  39. package/src/components/form/detailsbox.vue +487 -487
  40. package/src/components/form/formbox.vue +28 -28
  41. package/src/components/form/formcardbox.vue +267 -267
  42. package/src/components/form/formcardbox2.vue +228 -228
  43. package/src/components/form/formcardgroupbox.vue +251 -251
  44. package/src/components/form/formcompro.js +18 -18
  45. package/src/components/form/formdetail.vue +128 -128
  46. package/src/components/form/formdetailtwo.vue +302 -302
  47. package/src/components/form/index.js +9 -9
  48. package/src/components/form/toolanchor.js +45 -45
  49. package/src/components/form/workform.vue +167 -167
  50. package/src/components/grid/basegrid.vue +1062 -1062
  51. package/src/components/grid/editgrid.vue +51 -51
  52. package/src/components/grid/editgridbase.vue +1062 -1062
  53. package/src/components/grid/editgridcard.vue +193 -193
  54. package/src/components/grid/expandrow.vue +137 -137
  55. package/src/components/grid/index.js +5 -5
  56. package/src/components/grid/viewgrid.vue +121 -121
  57. package/src/components/grid/viewgridbase.vue +1286 -1286
  58. package/src/components/icon/common-icon.vue +53 -53
  59. package/src/components/icon/eicon.vue +28 -28
  60. package/src/components/icon/icons.vue +42 -42
  61. package/src/components/icon/index.js +1 -1
  62. package/src/components/label/index.js +2 -2
  63. package/src/components/label/showtext.vue +94 -94
  64. package/src/components/load/loadcartoon.vue +227 -227
  65. package/src/components/map/index.js +1 -1
  66. package/src/components/map/mapbox.vue +348 -348
  67. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanel.vue +184 -184
  68. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTable.vue +838 -838
  69. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlbox.vue +126 -126
  70. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlboxNumberbox.vue +27 -27
  71. package/src/components/masterplate/RewriteBillListDetails/BillListPanel.vue +126 -126
  72. package/src/components/masterplate/RewriteBillListDetails/BillListPanelQueryBar.vue +280 -280
  73. package/src/components/masterplate/RewriteBillListDetails/BillListPanelTable.vue +346 -346
  74. package/src/components/masterplate/RewriteBillListDetails/index.vue +325 -325
  75. package/src/components/masterplate/RewriteBillListDetails/mixins/useVxeGridEditTypeKeydownEventHook.js +251 -251
  76. package/src/components/masterplate/RewriteListdetails/BillListPanelV2.vue +115 -115
  77. package/src/components/masterplate/RewriteListdetails/BillListPanelV2QueryBar.vue +24 -24
  78. package/src/components/masterplate/RewriteListdetails/BillListPanelV3.vue +121 -121
  79. package/src/components/masterplate/RewriteListdetails/BillListPanelV3QueryBar.vue +275 -275
  80. package/src/components/masterplate/RewriteListdetails/indexV2.vue +320 -320
  81. package/src/components/masterplate/RewriteListdetails/indexV3.vue +331 -331
  82. package/src/components/masterplate/appendix.vue +586 -586
  83. package/src/components/masterplate/approval.vue +863 -863
  84. package/src/components/masterplate/base.vue +1028 -1028
  85. package/src/components/masterplate/billasyncimport.vue +614 -614
  86. package/src/components/masterplate/billconditionbox.vue +223 -223
  87. package/src/components/masterplate/billconditionsbox.vue +427 -427
  88. package/src/components/masterplate/billdetailform.vue +1028 -1028
  89. package/src/components/masterplate/billimport.vue +301 -301
  90. package/src/components/masterplate/billquerygrid.vue +391 -391
  91. package/src/components/masterplate/billsinglegrid.vue +234 -234
  92. package/src/components/masterplate/birtreport.vue +185 -185
  93. package/src/components/masterplate/contractappendix.vue +688 -688
  94. package/src/components/masterplate/detailbtntoolbar.vue +311 -311
  95. package/src/components/masterplate/detailsbox.vue +386 -386
  96. package/src/components/masterplate/editgridcard.vue +292 -292
  97. package/src/components/masterplate/editgridcard2.vue +127 -127
  98. package/src/components/masterplate/formcard.vue +105 -105
  99. package/src/components/masterplate/formcardgroupbox.vue +167 -167
  100. package/src/components/masterplate/formdetailtwo.vue +366 -366
  101. package/src/components/masterplate/gridcolset.vue +226 -226
  102. package/src/components/masterplate/index.js +54 -54
  103. package/src/components/masterplate/layouttemplate.vue +51 -51
  104. package/src/components/masterplate/leftlistrightdetails.vue +581 -581
  105. package/src/components/masterplate/leftlistrightlist.vue +464 -464
  106. package/src/components/masterplate/lefttreerightdetails.vue +636 -636
  107. package/src/components/masterplate/levelreport.vue +510 -510
  108. package/src/components/masterplate/listbtntoolbar.vue +276 -276
  109. package/src/components/masterplate/listdetails.vue +768 -768
  110. package/src/components/masterplate/operlog.vue +272 -272
  111. package/src/components/masterplate/options.vue +110 -110
  112. package/src/components/masterplate/page.vue +102 -102
  113. package/src/components/masterplate/promptmessage.vue +73 -73
  114. package/src/components/masterplate/querybar.vue +490 -490
  115. package/src/components/masterplate/report.vue +357 -357
  116. package/src/components/masterplate/rowbtntoolbar.vue +126 -126
  117. package/src/components/masterplate/simpletree.vue +137 -137
  118. package/src/components/masterplate/simpleviewgrid.vue +144 -144
  119. package/src/components/mychart/bar/bar.vue +201 -201
  120. package/src/components/mychart/basechart.vue +190 -190
  121. package/src/components/mychart/complexmychart/barline.vue +153 -153
  122. package/src/components/mychart/gauge/gauge.vue +82 -82
  123. package/src/components/mychart/index.js +8 -8
  124. package/src/components/mychart/line/line.vue +201 -201
  125. package/src/components/mychart/liquidfill/liquidfill.vue +108 -108
  126. package/src/components/mychart/pie/pie.vue +95 -95
  127. package/src/components/mychart/radar/radar.vue +121 -121
  128. package/src/components/mychart/scatter/scatter.vue +75 -75
  129. package/src/components/numberbox/NumberBoxV1.vue +39 -39
  130. package/src/components/numberbox/append.js +11 -11
  131. package/src/components/numberbox/index.js +4 -4
  132. package/src/components/numberbox/numberbox.vue +302 -302
  133. package/src/components/numberbox/numberrangebox.vue +422 -422
  134. package/src/components/picturebox/filebox.vue +369 -369
  135. package/src/components/picturebox/index.js +2 -2
  136. package/src/components/picturebox/picturebox.vue +541 -541
  137. package/src/components/picturebox/uploadbox.vue +164 -164
  138. package/src/components/poptagbox/index.js +1 -1
  139. package/src/components/poptagbox/poptagbox.vue +388 -388
  140. package/src/components/poptextbox/index.js +1 -1
  141. package/src/components/poptextbox/poptextbox.vue +624 -624
  142. package/src/components/radiobox/index.js +1 -1
  143. package/src/components/radiobox/radiogroupbox.vue +75 -75
  144. package/src/components/richtextbox/editor.vue +150 -150
  145. package/src/components/richtextbox/index.js +1 -1
  146. package/src/components/richtextbox/richtextbox.vue +448 -448
  147. package/src/components/textbox/index.js +1 -1
  148. package/src/components/textbox/textbox.vue +97 -97
  149. package/src/components/timebox/index.js +1 -1
  150. package/src/components/timebox/timebox.vue +75 -75
  151. package/src/components/toolbar/ebutton.vue +169 -169
  152. package/src/components/toolbar/index.js +3 -3
  153. package/src/components/toolbar/toolbar.vue +445 -445
  154. package/src/components/tree/CompatTree.vue +297 -297
  155. package/src/components/tree/basetree.vue +1098 -1098
  156. package/src/components/tree/index.js +2 -2
  157. package/src/components/tree/treedata.vue +53 -53
  158. package/src/components/tree/treedatabase.vue +189 -189
  159. package/src/components/upload/billimport.vue +233 -233
  160. package/src/components/upload/index.js +1 -1
  161. package/src/components/videobox/index.js +1 -1
  162. package/src/components/videobox/uploadbox.vue +148 -148
  163. package/src/components/videobox/videobox.vue +503 -503
  164. package/src/components/wrichtextbox/editor.vue +219 -219
  165. package/src/components/wrichtextbox/index.js +1 -1
  166. package/src/components/wrichtextbox/wrichtextbox.vue +62 -62
  167. package/src/index.js +231 -231
  168. package/src/locale/format.js +51 -51
  169. package/src/locale/index.js +63 -63
  170. package/src/locale/lang/zh-CN.js +123 -123
  171. package/src/locale/lang/zh-TW.js +114 -114
  172. package/src/locale/lang/zh-UG.js +115 -115
  173. package/src/locale/lang.js +15 -15
  174. package/src/method/case/case.js +1274 -1274
  175. package/src/method/config/queryconfig.js +24 -24
  176. package/src/method/const/const.js +815 -815
  177. package/src/method/index.js +7 -7
  178. package/src/plugins/theme/theme-variable.css +114 -114
  179. package/src/plugins/vxeTable/index.js +241 -241
  180. package/src/plugins/vxeTable/renderer/components/TableFilterInput.vue +51 -51
  181. package/src/plugins/vxeTable/renderer/filter.js +32 -32
  182. package/src/static/excel/exportexcel.js +626 -626
  183. package/src/static/iview/coustom.js +462 -462
  184. package/src/store/index.js +18 -18
  185. package/src/store/modules/app.js +53 -53
  186. package/src/styles/README.md +3 -3
  187. package/src/styles/common.less +80 -80
  188. package/src/styles/components/anchor.less +74 -74
  189. package/src/styles/components/approval.less +135 -135
  190. package/src/styles/components/button.less +208 -208
  191. package/src/styles/components/card.less +51 -51
  192. package/src/styles/components/content.less +38 -38
  193. package/src/styles/components/font.less +313 -313
  194. package/src/styles/components/form.less +71 -71
  195. package/src/styles/components/iconfont/fonts/iconfont.less +1384 -1384
  196. package/src/styles/components/iconfont/fonts/iconfont.svg +703 -703
  197. package/src/styles/components/index.less +16 -16
  198. package/src/styles/components/input.less +290 -290
  199. package/src/styles/components/modal.less +203 -203
  200. package/src/styles/components/page.less +340 -340
  201. package/src/styles/components/select.less +361 -361
  202. package/src/styles/components/steps.less +367 -367
  203. package/src/styles/components/table.less +544 -544
  204. package/src/styles/components/tabs.less +249 -249
  205. package/src/styles/components/upload.less +82 -82
  206. package/src/styles/custom.less +67 -67
  207. package/src/styles/index.less +6 -6
  208. package/src/styles/pack.less +6 -6
  209. package/src/utils/EfuMessenger.js +155 -155
  210. package/src/utils/assist.js +353 -353
  211. package/src/utils/index.js +1 -1
  212. package/src/utils/random_str.js +10 -10
  213. package/src/components/masterplate/detailgridbox.vue +0 -386
@@ -1,677 +1,677 @@
1
- <script>
2
- import comPro from './formcompro';
3
- export default {
4
- name: 'baseform',
5
- mixins: [comPro],
6
- data () {
7
- return {
8
- form:{},
9
- oldForm:{},
10
- initForm:{},
11
- items:[],
12
- formRules: {
13
- },
14
- updateConfig:[],
15
- errorFlag: false,
16
- style:'',
17
- myConfig:{
18
- lineNum:1,
19
- itemSpan: 8,
20
- labelWidth: 80,
21
- labelPosition:'right',
22
- showLabel:true,
23
- inline:true,
24
- isFull:true
25
- },
26
- };
27
- },
28
- methods:{
29
- initFormItemCol(index) {
30
- // 处理占列
31
- let span = this.myConfig.itemSpan;
32
- let el = this.items[index];
33
- if (el.type === 'Divider') {
34
- span = 24;
35
- } else {
36
- if (el.colNum !== undefined) {
37
- if (Number(el.colNum) > Number(this.myConfig.lineNum)) {
38
- span = this.myConfig.itemSpan * Number(this.myConfig.lineNum);
39
- } else {
40
- span = this.myConfig.itemSpan * Number(el.colNum);
41
- }
42
- }
43
- }
44
- if (span > 24) {
45
- span = 24;
46
- }
47
- return span;
48
- },
49
- initFormItem(el) {
50
- el.status = true;
51
- // 处理事件
52
- if (el.valueChanged) {
53
- el.valueChanged = this.valueChanged;
54
- }
55
-
56
- if (el.searchBefore) {
57
- el.searchBefore = this.searchBefore;
58
- }
59
-
60
- if (el.setDataBefore) {
61
- el.setDataBefore = this.setDataBefore;
62
- }
63
- if (el.onAddTag) {
64
- el.onAddTag = this.onAddTag;
65
- }
66
- if (el.onDelTag) {
67
- el.onDelTag = this.onDelTag;
68
- }
69
- if (el.onSearch) {
70
- el.onSearch = this.onSearch;
71
- }
72
- if (el.onLinkTo) {
73
- el.onLinkTo = this.onLinkTo;
74
- }
75
-
76
- // 处理字典
77
- if (this.dictData) {
78
- let dictkey = '';
79
- if (el.dictkey) {
80
- dictkey = el.dictkey;
81
- }
82
- if (el.customDictkey) {
83
- dictkey = el.customDictkey;
84
- }
85
- if (dictkey) {
86
- if (el.data === undefined) {
87
- el.data = this.dictData[dictkey];
88
- }
89
- }
90
- }
91
- // 处理共同属性
92
- this.setFormItemCommonPro(el);
93
- return el;
94
- },
95
- init() {
96
- let config = this.$Method.copy(this.config);
97
- this.myConfig = Object.assign({},this.myConfig,config);
98
- //处理表单一行排列几项,默认1项
99
- let itemSpan = 24/Number(this.myConfig.lineNum);
100
- this.myConfig.itemSpan= Number(itemSpan.toFixed(0));
101
- if (this.myConfig.itemSpan === 24) {
102
- this.myConfig.inline = false;
103
- }
104
- this.initForm = {};
105
- if (this.myConfig.items) {
106
- this.myConfig.items.forEach(el => {
107
- let item = this.initFormItem(el);
108
- this.items.push(item);
109
- });
110
- }
111
-
112
- if (this.customInit){
113
- this.customInit();
114
- }
115
- Object.assign(this.form , this.initForm);
116
- Object.assign(this.oldForm , this.form);
117
- },
118
-
119
- setData(obj) {
120
- if (obj) {
121
- this.$refs.form.resetFields();
122
- if (obj.flag === 'I') {
123
- this.form = Object.assign({}, this.initForm, obj);
124
- } else {
125
- this.items.forEach(el => {
126
- if (el.name) {
127
- if (obj[el.name] === undefined) {
128
- obj[el.name] = '';
129
- }
130
- }
131
- if (el.sname) {
132
- if (obj[el.sname] === undefined) {
133
- obj[el.sname] = '';
134
- }
135
- }
136
- if (el.ename) {
137
- if (obj[el.ename] === undefined) {
138
- obj[el.ename] = '';
139
- }
140
- }
141
- if (el.textName) {
142
- if (obj[el.textName] === undefined) {
143
- obj[el.textName] = '';
144
- }
145
- }
146
- });
147
- this.form = Object.assign({}, {}, obj);
148
- }
149
- this.oldForm = this.$Method.copy(this.form);
150
- }
151
- },
152
- isChange () {
153
- if (JSON.stringify(this.form) !== JSON.stringify(this.oldForm)) {
154
- return true;
155
- } else {
156
- if (this.form.flag && (this.form.flag === 'I' || this.form.flag === 'U')) {
157
- return true;
158
- } else {
159
- return false;
160
- }
161
- }
162
- },
163
- input(obj) {
164
- let temp = {};
165
- if (obj.name) {
166
- temp[obj.name] = obj.value;
167
- }
168
-
169
- if (obj.textName) {
170
- temp[obj.textName] = obj.text;
171
- }
172
- if (obj.sname) {
173
- temp[obj.sname] = obj.svalue;
174
- }
175
- if (obj.ename) {
176
- temp[obj.ename] = obj.evalue;
177
- }
178
- this.form = Object.assign({}, this.form, temp);
179
- this.$emit('inputValue', obj);
180
- },
181
- validatorIsNull(rule, value, callbacks) {
182
- if (this.isArrayFn(this.form[rule.field])) {
183
- if (this.form[rule.field].length === 0) {
184
- callbacks(new Error(''));
185
- } else {
186
- callbacks();
187
- }
188
- } else {
189
- if (!this.form[rule.field] && this.form[rule.field] !== 0) {
190
- callbacks(new Error(''));
191
- } else {
192
- callbacks();
193
- }
194
- }
195
- },
196
- isArrayFn (value) {
197
- if (typeof Array.isArray === 'function') {
198
- return Array.isArray(value);
199
- } else {
200
- return Object.prototype.toString.call(value) === '[object Array]';
201
- }
202
- },
203
- GetConfigIndex (name) {
204
- return this.config.items.findIndex(item => item.name === name || item.sname === name || item.ename === name);
205
- },
206
- valueChanged(obj) {
207
- obj.form = this.$Method.copy(this.form);
208
- obj.formObject = this;
209
- if (obj.sname) {
210
- const items = this.config.items.find(el => {return el.sname === obj.sname;});
211
- return items.valueChanged(obj);
212
- } else {
213
- const items = this.config.items.find(el => {return el.name === obj.name;});
214
- return items.valueChanged(obj);
215
- }
216
- },
217
- searchBefore(that) {
218
- that.form = this.$Method.copy(this.form);
219
- that.formObject = this;
220
- const items = this.config.items.find(el => {return el.name === that.myConfig.name;});
221
- return items.searchBefore(that);
222
- },
223
- onAddTag(that) {
224
- that.form = this.$Method.copy(this.form);
225
- that.formObject = this;
226
- const items = this.config.items.find(el => {return el.name === that.name;});
227
- return items.onAddTag(that);
228
- },
229
- onDelTag(that) {
230
- that.form = this.$Method.copy(this.form);
231
- that.formObject = this;
232
- const items = this.config.items.find(el => {return el.name === that.name;});
233
- return items.onDelTag(that);
234
- },
235
- onSearch(that) {
236
- that.form = this.$Method.copy(this.form);
237
- that.formObject = this;
238
- const items = this.config.items.find(el => {return el.name === that.name;});
239
- return items.onSearch(that);
240
- },
241
- onLinkTo(that) {
242
- that.form = this.$Method.copy(this.form);
243
- that.formObject = this;
244
- const items = this.config.items.find(el => {return el.name === that.name;});
245
- return items.onLinkTo(that);
246
- },
247
- setDataBefore(obj,that) {
248
- let temp = {};
249
- temp.data = obj;
250
- temp.form = this.$Method.copy(this.form);
251
- temp.formObject = this;
252
- const items = this.config.items.find(el => {return el.name === that.myConfig.name;});
253
- return items.setDataBefore(temp,that);
254
- },
255
- checkValidate() {
256
- if(this.$refs.form[0]) {
257
- this.$refs.form.forEach(el => {
258
- if(el.validate) {
259
- this.errorFlag = false;
260
- } else {
261
- this.errorFlag = true;
262
- }
263
- });
264
- } else {
265
- this.$refs.form.validate(valid => {
266
- if (valid) {
267
- this.errorFlag = false;
268
- } else {
269
- this.errorFlag = true;
270
- }
271
- });
272
- }
273
-
274
-
275
- },
276
- isError() {
277
- return this.errorFlag;
278
- },
279
- getTrigger(type) {
280
- let trigger = 'blur';
281
- if (type) {
282
- type = type.toLowerCase();
283
- }
284
- switch(type) {
285
- case 'combobox':
286
- trigger = 'change';
287
- break;
288
- case 'tagbox':
289
- trigger = 'change';
290
- break;
291
- case 'daterangebox':
292
- trigger = 'change';
293
- break;
294
- }
295
- return trigger;
296
- },
297
- getValue(name) {
298
- return this.form[name];
299
- },
300
- setValue(name,value) {
301
- let para ={};
302
- if (value === undefined) {
303
- para[name] = '';
304
- } else {
305
- para[name] = value;
306
- }
307
- this.form= Object.assign({}, this.form, para);
308
- },
309
- setValues(para) {
310
- for (let pro in para) {
311
- if (para[pro] === undefined) {
312
- para[pro] = '';
313
- }
314
- }
315
- this.form= Object.assign({}, this.form, para);
316
- },
317
- setFormReadOnly(value) {
318
- if (!this.myConfig.items || this.myConfig.items.length === 0) {
319
- return false;
320
- }
321
- this.myConfig.items.forEach(el => {
322
- let name = '';
323
- if (el.name) {
324
- name = el.name;
325
- } else if (el.sname) {
326
- name = el.sname;
327
- }
328
- if (!value) {
329
- if (this.myConfig.cellbeginedit) {
330
- let obj = {};
331
- obj.name = name;
332
- obj.form = this.$Method.copy(this.form);
333
- let flag = this.myConfig.cellbeginedit(obj);
334
- if (flag) {
335
- this.setReadOnly(name,value);
336
- } else {
337
- this.setReadOnly(name,!value);
338
- }
339
- } else {
340
- this.setReadOnly(name,value);
341
- }
342
- } else {
343
- this.setReadOnly(name,value);
344
- }
345
-
346
- });
347
- },
348
- setPro(name,value) {
349
- if (this.$refs[name] && this.$refs[name][0]) {
350
- this.$refs[name][0].setPro(value);
351
- }
352
- },
353
- getPro(name,pro) {
354
- if (this.$refs[name] && this.$refs[name][0]) {
355
- return this.$refs[name][0].getPro(pro);
356
- }
357
- },
358
- setReadOnly(name,value) {
359
- if (this.$refs[name] && this.$refs[name][0]) {
360
- if (this.$refs[name][0].setReadOnly) {
361
- this.$refs[name][0].setReadOnly(value);
362
- }
363
- }
364
- },
365
- getData(){
366
- const form = this.$Method.copy(this.form);
367
- return this.doDetialItem(form);
368
- },
369
- doDetialItem(form) {
370
- if (this.myConfig.items && this.myConfig.items.length > 0) {
371
- this.myConfig.items.forEach(el =>{
372
- if (el.type === 'PopTagBox' ){
373
- let updateData = [];
374
- let oldData = this.oldForm[el.name];
375
- let newData = this.$Method.copy(form[el.name]);
376
- if (oldData && oldData.length > 0) {
377
- oldData.forEach(el2 =>{
378
- if (el2.ph_key) {
379
- if (newData && newData.length > 0) {
380
- let index = newData.findIndex(el3 => el3.ph_key === el2.ph_key);
381
- if (index > -1) {
382
- newData.splice(index, 1);
383
- } else {
384
- let temp = this.$Method.copy(el2);
385
- temp.flag = 'D';
386
- updateData.push(temp);
387
- }
388
- } else {
389
- let temp = this.$Method.copy(el2);
390
- temp.flag = 'D';
391
- updateData.push(temp);
392
- }
393
- }
394
- });
395
- }
396
- if (newData && newData.length > 0) {
397
- newData.forEach(el => {
398
- el.flag = 'I';
399
- updateData.push(el);
400
- });
401
- }
402
- form[el.name] = updateData;
403
- }
404
-
405
- });
406
- }
407
- return form;
408
-
409
- },
410
- setCommonRequired(name,value,config) {
411
- let ename = '';
412
- if (config.ename) {
413
- ename = config.ename;
414
- }
415
- if (ename) {
416
- if (this.formRules[ename] === undefined) {
417
- if (value === true) {
418
- this.formRules[ename] = [{
419
- required: true,
420
- validator: this.validatorIsNull,
421
- trigger: this.getTrigger(config.type)
422
- }];
423
- }
424
- } else {
425
- if (!value) {
426
- delete this.formRules[ename];
427
- }
428
- }
429
- }
430
-
431
- if (this.formRules[name] === undefined) {
432
- if (value === true) {
433
- this.formRules[name] = [{
434
- required: true,
435
- validator: this.validatorIsNull,
436
- trigger: this.getTrigger(config.type)
437
- }];
438
- return true;
439
- }
440
- } else {
441
- if (!value) {
442
- delete this.formRules[name];
443
- return true;
444
- }
445
- }
446
- return false;
447
- },
448
- setRequired(name,value) {
449
- let flag = false;
450
- const index = this.items.findIndex(item => item.name === name || item.sname === name);
451
- if (index > -1) {
452
- flag = this.setCommonRequired(name,value,this.items[index]);
453
- if (flag) {
454
- let tempConfig = Object.assign({},this.items[index], {'required':value,status:false});
455
- this.items.splice(index,1,tempConfig);
456
- this.$nextTick(() => {
457
- this.items[index].status = true;
458
- });
459
- }
460
-
461
- }
462
- },
463
- updateCommonConfig(name, config) {
464
- let obj = {};
465
- let index = this.items.findIndex(item => item.name === name || item.sname === name);
466
- if (index > -1) {
467
- let flag = false;
468
- for (let pro in config) {
469
- if (config[pro] !== this.items[index][pro]) {
470
- flag = true;
471
- break;
472
- }
473
- }
474
- if (flag) {
475
- config.status = false;
476
- obj.index = index;
477
- obj.name = name;
478
- let item = this.$Method.copy(this.items[index]);
479
- obj.config = Object.assign({}, item, config);
480
- this.setCommonRequired(name,config.required,obj.config);
481
- }
482
- }
483
- return obj;
484
- },
485
- updateItemConfig(name,config) {
486
- let obj = this.updateCommonConfig(name,config);
487
- if (obj && (obj.index > -1)) {
488
- let temp = [];
489
- temp.push(obj);
490
- this.updateConfigReset(0,temp);
491
- }
492
- },
493
- updateConfigReset(index,obj) {
494
- let tempIndex = obj[index].index;
495
- this.items.splice(tempIndex,1,obj[index].config);
496
- if (index + 1 < obj.length) {
497
- this.$nextTick(() => {
498
- this.items[tempIndex].status = true;
499
- this.$nextTick(() =>{
500
- if (this.$refs[obj[index].name] && this.$refs[obj[index].name].length > 0) {
501
- this.$refs[obj[index].name][0].reset();
502
- }
503
- this.updateConfigReset(index+1,obj);
504
- });
505
- });
506
- } else {
507
- this.$nextTick(() => {
508
- this.items[tempIndex].status = true;
509
- this.$nextTick(() =>{
510
- if (this.$refs[obj[index].name] && this.$refs[obj[index].name].length > 0) {
511
- this.$refs[obj[index].name][0].reset();
512
- }
513
- });
514
- });
515
-
516
- }
517
- },
518
- updateItemsConfig(obj) {
519
- let updateConfig = [];
520
- if (obj) {
521
- obj.forEach(el =>{
522
- let temp = this.updateCommonConfig(el.name,el);
523
- if (temp && (temp.index > -1)) {
524
- updateConfig.push(temp);
525
- }
526
- });
527
-
528
- if (updateConfig.length > 0) {
529
- this.updateConfigReset(0,updateConfig);
530
- }
531
-
532
- }
533
- },
534
- clearData() {
535
- //清空主表的数据与检验
536
- this.$refs.form.resetFields();
537
- this.form=Object.assign({}, {}, this.initForm);
538
- this.oldForm = this.$Method.copy(this.form);
539
- },
540
- getFormItemStyle(item) {
541
- let style = {};
542
- let isFull = this.myConfig.isFull;
543
- if (item.isFull !== undefined) {
544
- isFull = item.isFull;
545
- }
546
- if (isFull) {
547
- style.width = '100%';
548
- } else {
549
- let minWidth = this.myConfig.labelWidth + 100;
550
- style['min-width'] = minWidth + 'px';
551
- }
552
- if (item.style !== undefined) {
553
- style = Object.assign({}, style, item.style);
554
- }
555
- return style;
556
- },
557
- setFormItemCommonPro(el) {
558
- if (el.isFull === undefined) {
559
- el.isFull = true;
560
- }
561
- if (el.name) {
562
- this.setFormItemValue(el.name, el, true);
563
- }
564
- if (el.sname) {
565
- this.setFormItemValue(el.sname, el, true);
566
- }
567
- if (el.ename) {
568
- this.setFormItemValue(el.ename, el, true);
569
- }
570
- if (el.textName) {
571
- this.setFormItemValue(el.textName, el, false);
572
- }
573
- },
574
- setFormItemValue(name, el, flag) {
575
- // 值设定
576
- if (el.defaultValue !== undefined) {
577
- this.initForm[name] = el.defaultValue;
578
- } else {
579
- if (el.type === 'NumberBox' || el.type === 'NumberRangeBox') {
580
- let min = '';
581
- if (el.min !== undefined) {
582
- min = el.min;
583
- }
584
- if (el.smin !== undefined) {
585
- min = el.smin;
586
- }
587
- if (el.smin === undefined && el.emin !== undefined) {
588
- min = el.emin;
589
- }
590
- this.initForm[name] = min;
591
- el.defaultValue = min;
592
- if(el.boundaryValue === false) {
593
- this.initForm[name] = '';
594
- el.defaultValue = '';
595
- }
596
- } else {
597
- if (el.type === 'PopTagBox') {
598
- this.initForm[name] = [];
599
- } else {
600
- this.initForm[name] = '';
601
- }
602
- }
603
- }
604
- if (flag) {
605
- // 处理必填check;
606
- if (el.required) {
607
- if (this.formRules[name] === undefined) {
608
- this.formRules[name] = [{
609
- required: true,
610
- validator: this.validatorIsNull,
611
- trigger: this.getTrigger(el.type)
612
- }];
613
- }
614
- } else {
615
- delete this.formRules[name];
616
- }
617
- }
618
- },
619
- doAction(obj) {
620
- if (this[obj.name]) {
621
- this[obj.name](obj);
622
- }
623
- },
624
- enterKeyDown(obj) {
625
- let nextName = this.findNextItems(obj.controlName);
626
- this.setFoucs(obj.controlName, false);
627
- this.$nextTick(() => {
628
- let self = this;
629
- setTimeout(() => {
630
- self.setFoucs(nextName, true);
631
- },200);
632
- });
633
- },
634
- setFoucs(name,value) {
635
- if (this.$refs[name] && this.$refs[name][0]) {
636
- if (this.$refs[name][0].setFocus) {
637
- this.$refs[name][0].setFocus(value);
638
- }
639
- }
640
- },
641
- setHideDividerValue(value) {
642
- if (this.$refs.hidedivider && this.$refs.hidedivider[0]) {
643
- this.$refs.hidedivider[0].setHide(value)
644
- }
645
- },
646
- findNextItems(curlName) {
647
- let fristName = '';
648
- let nextName = '';
649
- let flag = false;
650
- this.myConfig.items.some(el => {
651
- let name = el.name;
652
- if (el.sname) {
653
- name = el.sname;
654
- }
655
- if (el.type !== 'wRichTextBox' && el.type !== 'RichTextBox' && el.type !== 'PictureBox' && el.type !== 'VideoBox' && this.$refs[name] && this.$refs[name][0] && this.$refs[name][0].getPro('visible') !== false) {
656
- if (this.$refs[name][0].getPro('readOnly') !== true) {
657
- if (!fristName) {
658
- fristName = name;
659
- }
660
- if (flag) {
661
- nextName = name;
662
- return true;
663
- }
664
- }
665
- }
666
- if (curlName === name) {
667
- flag = true;
668
- }
669
- });
670
- if (!nextName) {
671
- nextName = fristName;
672
- }
673
- return nextName;
674
- },
675
- }
676
- };
1
+ <script>
2
+ import comPro from './formcompro';
3
+ export default {
4
+ name: 'baseform',
5
+ mixins: [comPro],
6
+ data () {
7
+ return {
8
+ form:{},
9
+ oldForm:{},
10
+ initForm:{},
11
+ items:[],
12
+ formRules: {
13
+ },
14
+ updateConfig:[],
15
+ errorFlag: false,
16
+ style:'',
17
+ myConfig:{
18
+ lineNum:1,
19
+ itemSpan: 8,
20
+ labelWidth: 80,
21
+ labelPosition:'right',
22
+ showLabel:true,
23
+ inline:true,
24
+ isFull:true
25
+ },
26
+ };
27
+ },
28
+ methods:{
29
+ initFormItemCol(index) {
30
+ // 处理占列
31
+ let span = this.myConfig.itemSpan;
32
+ let el = this.items[index];
33
+ if (el.type === 'Divider') {
34
+ span = 24;
35
+ } else {
36
+ if (el.colNum !== undefined) {
37
+ if (Number(el.colNum) > Number(this.myConfig.lineNum)) {
38
+ span = this.myConfig.itemSpan * Number(this.myConfig.lineNum);
39
+ } else {
40
+ span = this.myConfig.itemSpan * Number(el.colNum);
41
+ }
42
+ }
43
+ }
44
+ if (span > 24) {
45
+ span = 24;
46
+ }
47
+ return span;
48
+ },
49
+ initFormItem(el) {
50
+ el.status = true;
51
+ // 处理事件
52
+ if (el.valueChanged) {
53
+ el.valueChanged = this.valueChanged;
54
+ }
55
+
56
+ if (el.searchBefore) {
57
+ el.searchBefore = this.searchBefore;
58
+ }
59
+
60
+ if (el.setDataBefore) {
61
+ el.setDataBefore = this.setDataBefore;
62
+ }
63
+ if (el.onAddTag) {
64
+ el.onAddTag = this.onAddTag;
65
+ }
66
+ if (el.onDelTag) {
67
+ el.onDelTag = this.onDelTag;
68
+ }
69
+ if (el.onSearch) {
70
+ el.onSearch = this.onSearch;
71
+ }
72
+ if (el.onLinkTo) {
73
+ el.onLinkTo = this.onLinkTo;
74
+ }
75
+
76
+ // 处理字典
77
+ if (this.dictData) {
78
+ let dictkey = '';
79
+ if (el.dictkey) {
80
+ dictkey = el.dictkey;
81
+ }
82
+ if (el.customDictkey) {
83
+ dictkey = el.customDictkey;
84
+ }
85
+ if (dictkey) {
86
+ if (el.data === undefined) {
87
+ el.data = this.dictData[dictkey];
88
+ }
89
+ }
90
+ }
91
+ // 处理共同属性
92
+ this.setFormItemCommonPro(el);
93
+ return el;
94
+ },
95
+ init() {
96
+ let config = this.$Method.copy(this.config);
97
+ this.myConfig = Object.assign({},this.myConfig,config);
98
+ //处理表单一行排列几项,默认1项
99
+ let itemSpan = 24/Number(this.myConfig.lineNum);
100
+ this.myConfig.itemSpan= Number(itemSpan.toFixed(0));
101
+ if (this.myConfig.itemSpan === 24) {
102
+ this.myConfig.inline = false;
103
+ }
104
+ this.initForm = {};
105
+ if (this.myConfig.items) {
106
+ this.myConfig.items.forEach(el => {
107
+ let item = this.initFormItem(el);
108
+ this.items.push(item);
109
+ });
110
+ }
111
+
112
+ if (this.customInit){
113
+ this.customInit();
114
+ }
115
+ Object.assign(this.form , this.initForm);
116
+ Object.assign(this.oldForm , this.form);
117
+ },
118
+
119
+ setData(obj) {
120
+ if (obj) {
121
+ this.$refs.form.resetFields();
122
+ if (obj.flag === 'I') {
123
+ this.form = Object.assign({}, this.initForm, obj);
124
+ } else {
125
+ this.items.forEach(el => {
126
+ if (el.name) {
127
+ if (obj[el.name] === undefined) {
128
+ obj[el.name] = '';
129
+ }
130
+ }
131
+ if (el.sname) {
132
+ if (obj[el.sname] === undefined) {
133
+ obj[el.sname] = '';
134
+ }
135
+ }
136
+ if (el.ename) {
137
+ if (obj[el.ename] === undefined) {
138
+ obj[el.ename] = '';
139
+ }
140
+ }
141
+ if (el.textName) {
142
+ if (obj[el.textName] === undefined) {
143
+ obj[el.textName] = '';
144
+ }
145
+ }
146
+ });
147
+ this.form = Object.assign({}, {}, obj);
148
+ }
149
+ this.oldForm = this.$Method.copy(this.form);
150
+ }
151
+ },
152
+ isChange () {
153
+ if (JSON.stringify(this.form) !== JSON.stringify(this.oldForm)) {
154
+ return true;
155
+ } else {
156
+ if (this.form.flag && (this.form.flag === 'I' || this.form.flag === 'U')) {
157
+ return true;
158
+ } else {
159
+ return false;
160
+ }
161
+ }
162
+ },
163
+ input(obj) {
164
+ let temp = {};
165
+ if (obj.name) {
166
+ temp[obj.name] = obj.value;
167
+ }
168
+
169
+ if (obj.textName) {
170
+ temp[obj.textName] = obj.text;
171
+ }
172
+ if (obj.sname) {
173
+ temp[obj.sname] = obj.svalue;
174
+ }
175
+ if (obj.ename) {
176
+ temp[obj.ename] = obj.evalue;
177
+ }
178
+ this.form = Object.assign({}, this.form, temp);
179
+ this.$emit('inputValue', obj);
180
+ },
181
+ validatorIsNull(rule, value, callbacks) {
182
+ if (this.isArrayFn(this.form[rule.field])) {
183
+ if (this.form[rule.field].length === 0) {
184
+ callbacks(new Error(''));
185
+ } else {
186
+ callbacks();
187
+ }
188
+ } else {
189
+ if (!this.form[rule.field] && this.form[rule.field] !== 0) {
190
+ callbacks(new Error(''));
191
+ } else {
192
+ callbacks();
193
+ }
194
+ }
195
+ },
196
+ isArrayFn (value) {
197
+ if (typeof Array.isArray === 'function') {
198
+ return Array.isArray(value);
199
+ } else {
200
+ return Object.prototype.toString.call(value) === '[object Array]';
201
+ }
202
+ },
203
+ GetConfigIndex (name) {
204
+ return this.config.items.findIndex(item => item.name === name || item.sname === name || item.ename === name);
205
+ },
206
+ valueChanged(obj) {
207
+ obj.form = this.$Method.copy(this.form);
208
+ obj.formObject = this;
209
+ if (obj.sname) {
210
+ const items = this.config.items.find(el => {return el.sname === obj.sname;});
211
+ return items.valueChanged(obj);
212
+ } else {
213
+ const items = this.config.items.find(el => {return el.name === obj.name;});
214
+ return items.valueChanged(obj);
215
+ }
216
+ },
217
+ searchBefore(that) {
218
+ that.form = this.$Method.copy(this.form);
219
+ that.formObject = this;
220
+ const items = this.config.items.find(el => {return el.name === that.myConfig.name;});
221
+ return items.searchBefore(that);
222
+ },
223
+ onAddTag(that) {
224
+ that.form = this.$Method.copy(this.form);
225
+ that.formObject = this;
226
+ const items = this.config.items.find(el => {return el.name === that.name;});
227
+ return items.onAddTag(that);
228
+ },
229
+ onDelTag(that) {
230
+ that.form = this.$Method.copy(this.form);
231
+ that.formObject = this;
232
+ const items = this.config.items.find(el => {return el.name === that.name;});
233
+ return items.onDelTag(that);
234
+ },
235
+ onSearch(that) {
236
+ that.form = this.$Method.copy(this.form);
237
+ that.formObject = this;
238
+ const items = this.config.items.find(el => {return el.name === that.name;});
239
+ return items.onSearch(that);
240
+ },
241
+ onLinkTo(that) {
242
+ that.form = this.$Method.copy(this.form);
243
+ that.formObject = this;
244
+ const items = this.config.items.find(el => {return el.name === that.name;});
245
+ return items.onLinkTo(that);
246
+ },
247
+ setDataBefore(obj,that) {
248
+ let temp = {};
249
+ temp.data = obj;
250
+ temp.form = this.$Method.copy(this.form);
251
+ temp.formObject = this;
252
+ const items = this.config.items.find(el => {return el.name === that.myConfig.name;});
253
+ return items.setDataBefore(temp,that);
254
+ },
255
+ checkValidate() {
256
+ if(this.$refs.form[0]) {
257
+ this.$refs.form.forEach(el => {
258
+ if(el.validate) {
259
+ this.errorFlag = false;
260
+ } else {
261
+ this.errorFlag = true;
262
+ }
263
+ });
264
+ } else {
265
+ this.$refs.form.validate(valid => {
266
+ if (valid) {
267
+ this.errorFlag = false;
268
+ } else {
269
+ this.errorFlag = true;
270
+ }
271
+ });
272
+ }
273
+
274
+
275
+ },
276
+ isError() {
277
+ return this.errorFlag;
278
+ },
279
+ getTrigger(type) {
280
+ let trigger = 'blur';
281
+ if (type) {
282
+ type = type.toLowerCase();
283
+ }
284
+ switch(type) {
285
+ case 'combobox':
286
+ trigger = 'change';
287
+ break;
288
+ case 'tagbox':
289
+ trigger = 'change';
290
+ break;
291
+ case 'daterangebox':
292
+ trigger = 'change';
293
+ break;
294
+ }
295
+ return trigger;
296
+ },
297
+ getValue(name) {
298
+ return this.form[name];
299
+ },
300
+ setValue(name,value) {
301
+ let para ={};
302
+ if (value === undefined) {
303
+ para[name] = '';
304
+ } else {
305
+ para[name] = value;
306
+ }
307
+ this.form= Object.assign({}, this.form, para);
308
+ },
309
+ setValues(para) {
310
+ for (let pro in para) {
311
+ if (para[pro] === undefined) {
312
+ para[pro] = '';
313
+ }
314
+ }
315
+ this.form= Object.assign({}, this.form, para);
316
+ },
317
+ setFormReadOnly(value) {
318
+ if (!this.myConfig.items || this.myConfig.items.length === 0) {
319
+ return false;
320
+ }
321
+ this.myConfig.items.forEach(el => {
322
+ let name = '';
323
+ if (el.name) {
324
+ name = el.name;
325
+ } else if (el.sname) {
326
+ name = el.sname;
327
+ }
328
+ if (!value) {
329
+ if (this.myConfig.cellbeginedit) {
330
+ let obj = {};
331
+ obj.name = name;
332
+ obj.form = this.$Method.copy(this.form);
333
+ let flag = this.myConfig.cellbeginedit(obj);
334
+ if (flag) {
335
+ this.setReadOnly(name,value);
336
+ } else {
337
+ this.setReadOnly(name,!value);
338
+ }
339
+ } else {
340
+ this.setReadOnly(name,value);
341
+ }
342
+ } else {
343
+ this.setReadOnly(name,value);
344
+ }
345
+
346
+ });
347
+ },
348
+ setPro(name,value) {
349
+ if (this.$refs[name] && this.$refs[name][0]) {
350
+ this.$refs[name][0].setPro(value);
351
+ }
352
+ },
353
+ getPro(name,pro) {
354
+ if (this.$refs[name] && this.$refs[name][0]) {
355
+ return this.$refs[name][0].getPro(pro);
356
+ }
357
+ },
358
+ setReadOnly(name,value) {
359
+ if (this.$refs[name] && this.$refs[name][0]) {
360
+ if (this.$refs[name][0].setReadOnly) {
361
+ this.$refs[name][0].setReadOnly(value);
362
+ }
363
+ }
364
+ },
365
+ getData(){
366
+ const form = this.$Method.copy(this.form);
367
+ return this.doDetialItem(form);
368
+ },
369
+ doDetialItem(form) {
370
+ if (this.myConfig.items && this.myConfig.items.length > 0) {
371
+ this.myConfig.items.forEach(el =>{
372
+ if (el.type === 'PopTagBox' ){
373
+ let updateData = [];
374
+ let oldData = this.oldForm[el.name];
375
+ let newData = this.$Method.copy(form[el.name]);
376
+ if (oldData && oldData.length > 0) {
377
+ oldData.forEach(el2 =>{
378
+ if (el2.ph_key) {
379
+ if (newData && newData.length > 0) {
380
+ let index = newData.findIndex(el3 => el3.ph_key === el2.ph_key);
381
+ if (index > -1) {
382
+ newData.splice(index, 1);
383
+ } else {
384
+ let temp = this.$Method.copy(el2);
385
+ temp.flag = 'D';
386
+ updateData.push(temp);
387
+ }
388
+ } else {
389
+ let temp = this.$Method.copy(el2);
390
+ temp.flag = 'D';
391
+ updateData.push(temp);
392
+ }
393
+ }
394
+ });
395
+ }
396
+ if (newData && newData.length > 0) {
397
+ newData.forEach(el => {
398
+ el.flag = 'I';
399
+ updateData.push(el);
400
+ });
401
+ }
402
+ form[el.name] = updateData;
403
+ }
404
+
405
+ });
406
+ }
407
+ return form;
408
+
409
+ },
410
+ setCommonRequired(name,value,config) {
411
+ let ename = '';
412
+ if (config.ename) {
413
+ ename = config.ename;
414
+ }
415
+ if (ename) {
416
+ if (this.formRules[ename] === undefined) {
417
+ if (value === true) {
418
+ this.formRules[ename] = [{
419
+ required: true,
420
+ validator: this.validatorIsNull,
421
+ trigger: this.getTrigger(config.type)
422
+ }];
423
+ }
424
+ } else {
425
+ if (!value) {
426
+ delete this.formRules[ename];
427
+ }
428
+ }
429
+ }
430
+
431
+ if (this.formRules[name] === undefined) {
432
+ if (value === true) {
433
+ this.formRules[name] = [{
434
+ required: true,
435
+ validator: this.validatorIsNull,
436
+ trigger: this.getTrigger(config.type)
437
+ }];
438
+ return true;
439
+ }
440
+ } else {
441
+ if (!value) {
442
+ delete this.formRules[name];
443
+ return true;
444
+ }
445
+ }
446
+ return false;
447
+ },
448
+ setRequired(name,value) {
449
+ let flag = false;
450
+ const index = this.items.findIndex(item => item.name === name || item.sname === name);
451
+ if (index > -1) {
452
+ flag = this.setCommonRequired(name,value,this.items[index]);
453
+ if (flag) {
454
+ let tempConfig = Object.assign({},this.items[index], {'required':value,status:false});
455
+ this.items.splice(index,1,tempConfig);
456
+ this.$nextTick(() => {
457
+ this.items[index].status = true;
458
+ });
459
+ }
460
+
461
+ }
462
+ },
463
+ updateCommonConfig(name, config) {
464
+ let obj = {};
465
+ let index = this.items.findIndex(item => item.name === name || item.sname === name);
466
+ if (index > -1) {
467
+ let flag = false;
468
+ for (let pro in config) {
469
+ if (config[pro] !== this.items[index][pro]) {
470
+ flag = true;
471
+ break;
472
+ }
473
+ }
474
+ if (flag) {
475
+ config.status = false;
476
+ obj.index = index;
477
+ obj.name = name;
478
+ let item = this.$Method.copy(this.items[index]);
479
+ obj.config = Object.assign({}, item, config);
480
+ this.setCommonRequired(name,config.required,obj.config);
481
+ }
482
+ }
483
+ return obj;
484
+ },
485
+ updateItemConfig(name,config) {
486
+ let obj = this.updateCommonConfig(name,config);
487
+ if (obj && (obj.index > -1)) {
488
+ let temp = [];
489
+ temp.push(obj);
490
+ this.updateConfigReset(0,temp);
491
+ }
492
+ },
493
+ updateConfigReset(index,obj) {
494
+ let tempIndex = obj[index].index;
495
+ this.items.splice(tempIndex,1,obj[index].config);
496
+ if (index + 1 < obj.length) {
497
+ this.$nextTick(() => {
498
+ this.items[tempIndex].status = true;
499
+ this.$nextTick(() =>{
500
+ if (this.$refs[obj[index].name] && this.$refs[obj[index].name].length > 0) {
501
+ this.$refs[obj[index].name][0].reset();
502
+ }
503
+ this.updateConfigReset(index+1,obj);
504
+ });
505
+ });
506
+ } else {
507
+ this.$nextTick(() => {
508
+ this.items[tempIndex].status = true;
509
+ this.$nextTick(() =>{
510
+ if (this.$refs[obj[index].name] && this.$refs[obj[index].name].length > 0) {
511
+ this.$refs[obj[index].name][0].reset();
512
+ }
513
+ });
514
+ });
515
+
516
+ }
517
+ },
518
+ updateItemsConfig(obj) {
519
+ let updateConfig = [];
520
+ if (obj) {
521
+ obj.forEach(el =>{
522
+ let temp = this.updateCommonConfig(el.name,el);
523
+ if (temp && (temp.index > -1)) {
524
+ updateConfig.push(temp);
525
+ }
526
+ });
527
+
528
+ if (updateConfig.length > 0) {
529
+ this.updateConfigReset(0,updateConfig);
530
+ }
531
+
532
+ }
533
+ },
534
+ clearData() {
535
+ //清空主表的数据与检验
536
+ this.$refs.form.resetFields();
537
+ this.form=Object.assign({}, {}, this.initForm);
538
+ this.oldForm = this.$Method.copy(this.form);
539
+ },
540
+ getFormItemStyle(item) {
541
+ let style = {};
542
+ let isFull = this.myConfig.isFull;
543
+ if (item.isFull !== undefined) {
544
+ isFull = item.isFull;
545
+ }
546
+ if (isFull) {
547
+ style.width = '100%';
548
+ } else {
549
+ let minWidth = this.myConfig.labelWidth + 100;
550
+ style['min-width'] = minWidth + 'px';
551
+ }
552
+ if (item.style !== undefined) {
553
+ style = Object.assign({}, style, item.style);
554
+ }
555
+ return style;
556
+ },
557
+ setFormItemCommonPro(el) {
558
+ if (el.isFull === undefined) {
559
+ el.isFull = true;
560
+ }
561
+ if (el.name) {
562
+ this.setFormItemValue(el.name, el, true);
563
+ }
564
+ if (el.sname) {
565
+ this.setFormItemValue(el.sname, el, true);
566
+ }
567
+ if (el.ename) {
568
+ this.setFormItemValue(el.ename, el, true);
569
+ }
570
+ if (el.textName) {
571
+ this.setFormItemValue(el.textName, el, false);
572
+ }
573
+ },
574
+ setFormItemValue(name, el, flag) {
575
+ // 值设定
576
+ if (el.defaultValue !== undefined) {
577
+ this.initForm[name] = el.defaultValue;
578
+ } else {
579
+ if (el.type === 'NumberBox' || el.type === 'NumberRangeBox') {
580
+ let min = '';
581
+ if (el.min !== undefined) {
582
+ min = el.min;
583
+ }
584
+ if (el.smin !== undefined) {
585
+ min = el.smin;
586
+ }
587
+ if (el.smin === undefined && el.emin !== undefined) {
588
+ min = el.emin;
589
+ }
590
+ this.initForm[name] = min;
591
+ el.defaultValue = min;
592
+ if(el.boundaryValue === false) {
593
+ this.initForm[name] = '';
594
+ el.defaultValue = '';
595
+ }
596
+ } else {
597
+ if (el.type === 'PopTagBox') {
598
+ this.initForm[name] = [];
599
+ } else {
600
+ this.initForm[name] = '';
601
+ }
602
+ }
603
+ }
604
+ if (flag) {
605
+ // 处理必填check;
606
+ if (el.required) {
607
+ if (this.formRules[name] === undefined) {
608
+ this.formRules[name] = [{
609
+ required: true,
610
+ validator: this.validatorIsNull,
611
+ trigger: this.getTrigger(el.type)
612
+ }];
613
+ }
614
+ } else {
615
+ delete this.formRules[name];
616
+ }
617
+ }
618
+ },
619
+ doAction(obj) {
620
+ if (this[obj.name]) {
621
+ this[obj.name](obj);
622
+ }
623
+ },
624
+ enterKeyDown(obj) {
625
+ let nextName = this.findNextItems(obj.controlName);
626
+ this.setFoucs(obj.controlName, false);
627
+ this.$nextTick(() => {
628
+ let self = this;
629
+ setTimeout(() => {
630
+ self.setFoucs(nextName, true);
631
+ },200);
632
+ });
633
+ },
634
+ setFoucs(name,value) {
635
+ if (this.$refs[name] && this.$refs[name][0]) {
636
+ if (this.$refs[name][0].setFocus) {
637
+ this.$refs[name][0].setFocus(value);
638
+ }
639
+ }
640
+ },
641
+ setHideDividerValue(value) {
642
+ if (this.$refs.hidedivider && this.$refs.hidedivider[0]) {
643
+ this.$refs.hidedivider[0].setHide(value)
644
+ }
645
+ },
646
+ findNextItems(curlName) {
647
+ let fristName = '';
648
+ let nextName = '';
649
+ let flag = false;
650
+ this.myConfig.items.some(el => {
651
+ let name = el.name;
652
+ if (el.sname) {
653
+ name = el.sname;
654
+ }
655
+ if (el.type !== 'wRichTextBox' && el.type !== 'RichTextBox' && el.type !== 'PictureBox' && el.type !== 'VideoBox' && this.$refs[name] && this.$refs[name][0] && this.$refs[name][0].getPro('visible') !== false) {
656
+ if (this.$refs[name][0].getPro('readOnly') !== true) {
657
+ if (!fristName) {
658
+ fristName = name;
659
+ }
660
+ if (flag) {
661
+ nextName = name;
662
+ return true;
663
+ }
664
+ }
665
+ }
666
+ if (curlName === name) {
667
+ flag = true;
668
+ }
669
+ });
670
+ if (!nextName) {
671
+ nextName = fristName;
672
+ }
673
+ return nextName;
674
+ },
675
+ }
676
+ };
677
677
  </script>