ocpview-plus 0.0.1

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 (195) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/dist/efviewplus.min.esm.js +99954 -0
  4. package/dist/efviewplus.min.js +142 -0
  5. package/dist/locale/lang.js +1 -0
  6. package/dist/locale/zh-CN.js +1 -0
  7. package/dist/locale/zh-TW.js +1 -0
  8. package/dist/locale/zh-UG.js +1 -0
  9. package/dist/style.css +9 -0
  10. package/dist/styles/efviewplus.css +1 -0
  11. package/package.json +144 -0
  12. package/src/components/base/controlbase.vue +191 -0
  13. package/src/components/base/controlbox.vue +102 -0
  14. package/src/components/base/index.js +3 -0
  15. package/src/components/base/load.js +20 -0
  16. package/src/components/base/probase.js +220 -0
  17. package/src/components/base/size.js +78 -0
  18. package/src/components/billbox/billbox.vue +68 -0
  19. package/src/components/billbox/index.js +2 -0
  20. package/src/components/cascaderbox/cascaderbox.vue +184 -0
  21. package/src/components/cascaderbox/index.js +2 -0
  22. package/src/components/checkbox/checkbox.vue +76 -0
  23. package/src/components/checkbox/checkgroupbox.vue +104 -0
  24. package/src/components/checkbox/index.js +3 -0
  25. package/src/components/colorbox/colorbox.vue +44 -0
  26. package/src/components/colorbox/index.js +2 -0
  27. package/src/components/combobox/combobox.vue +220 -0
  28. package/src/components/combobox/index.js +2 -0
  29. package/src/components/conditionbox/conditionbase.vue +195 -0
  30. package/src/components/conditionbox/conditionbox.vue +63 -0
  31. package/src/components/conditionbox/conditionfilterbox.vue +477 -0
  32. package/src/components/conditionbox/conditionselectorbox.vue +237 -0
  33. package/src/components/conditionbox/index.js +5 -0
  34. package/src/components/conditionbox/queryconditionbox.vue +26 -0
  35. package/src/components/conditionbox/queryconditionboxbase.vue +124 -0
  36. package/src/components/conditionbox/searchconditionbox.vue +114 -0
  37. package/src/components/conditionbox/searchgrid.vue +391 -0
  38. package/src/components/datebox/datebox.vue +129 -0
  39. package/src/components/datebox/daterangebox.vue +155 -0
  40. package/src/components/datebox/index.js +3 -0
  41. package/src/components/form/baseform.vue +677 -0
  42. package/src/components/form/detailsbox.vue +487 -0
  43. package/src/components/form/formbox.vue +29 -0
  44. package/src/components/form/formcardbox.vue +268 -0
  45. package/src/components/form/formcardgroupbox.vue +252 -0
  46. package/src/components/form/formcompro.js +19 -0
  47. package/src/components/form/formdetail.vue +129 -0
  48. package/src/components/form/formdetailtwo.vue +302 -0
  49. package/src/components/form/index.js +8 -0
  50. package/src/components/form/toolanchor.js +46 -0
  51. package/src/components/form/workform.vue +168 -0
  52. package/src/components/grid/basegrid.vue +1061 -0
  53. package/src/components/grid/editgrid.vue +51 -0
  54. package/src/components/grid/editgridbase.vue +947 -0
  55. package/src/components/grid/editgridcard.vue +193 -0
  56. package/src/components/grid/expandrow.vue +137 -0
  57. package/src/components/grid/index.js +6 -0
  58. package/src/components/grid/viewgrid.vue +122 -0
  59. package/src/components/grid/viewgridbase.vue +1284 -0
  60. package/src/components/icon/common-icon.vue +53 -0
  61. package/src/components/icon/eicon.vue +29 -0
  62. package/src/components/icon/icons.vue +42 -0
  63. package/src/components/icon/index.js +2 -0
  64. package/src/components/label/index.js +3 -0
  65. package/src/components/label/showtext.vue +95 -0
  66. package/src/components/load/loadcartoon.vue +228 -0
  67. package/src/components/map/index.js +2 -0
  68. package/src/components/map/mapbox.vue +348 -0
  69. package/src/components/masterplate/appendix.vue +586 -0
  70. package/src/components/masterplate/approval.vue +803 -0
  71. package/src/components/masterplate/base.vue +985 -0
  72. package/src/components/masterplate/billasyncimport.vue +614 -0
  73. package/src/components/masterplate/billconditionbox.vue +224 -0
  74. package/src/components/masterplate/billconditionsbox.vue +427 -0
  75. package/src/components/masterplate/billdetailform.vue +990 -0
  76. package/src/components/masterplate/billimport.vue +263 -0
  77. package/src/components/masterplate/billquerygrid.vue +316 -0
  78. package/src/components/masterplate/billsinglegrid.vue +234 -0
  79. package/src/components/masterplate/birtreport.vue +185 -0
  80. package/src/components/masterplate/detailbtntoolbar.vue +311 -0
  81. package/src/components/masterplate/detailsbox.vue +386 -0
  82. package/src/components/masterplate/editgridcard.vue +222 -0
  83. package/src/components/masterplate/editgridcard2.vue +109 -0
  84. package/src/components/masterplate/formcard.vue +106 -0
  85. package/src/components/masterplate/formcardgroupbox.vue +168 -0
  86. package/src/components/masterplate/formdetailtwo.vue +356 -0
  87. package/src/components/masterplate/gridcolset.vue +227 -0
  88. package/src/components/masterplate/index.js +23 -0
  89. package/src/components/masterplate/layouttemplate.vue +33 -0
  90. package/src/components/masterplate/leftlistrightdetails.vue +474 -0
  91. package/src/components/masterplate/leftlistrightlist.vue +465 -0
  92. package/src/components/masterplate/lefttreerightdetails.vue +619 -0
  93. package/src/components/masterplate/levelreport.vue +510 -0
  94. package/src/components/masterplate/listbtntoolbar.vue +257 -0
  95. package/src/components/masterplate/listdetails.vue +769 -0
  96. package/src/components/masterplate/operlog.vue +272 -0
  97. package/src/components/masterplate/options.vue +110 -0
  98. package/src/components/masterplate/page.vue +102 -0
  99. package/src/components/masterplate/promptmessage.vue +74 -0
  100. package/src/components/masterplate/querybar.vue +490 -0
  101. package/src/components/masterplate/report.vue +357 -0
  102. package/src/components/masterplate/rowbtntoolbar.vue +126 -0
  103. package/src/components/masterplate/simpletree.vue +129 -0
  104. package/src/components/masterplate/simpleviewgrid.vue +144 -0
  105. package/src/components/mychart/bar/bar.vue +202 -0
  106. package/src/components/mychart/basechart.vue +190 -0
  107. package/src/components/mychart/complexmychart/barline.vue +154 -0
  108. package/src/components/mychart/gauge/gauge.vue +83 -0
  109. package/src/components/mychart/index.js +9 -0
  110. package/src/components/mychart/line/line.vue +202 -0
  111. package/src/components/mychart/liquidfill/liquidfill.vue +109 -0
  112. package/src/components/mychart/pie/pie.vue +96 -0
  113. package/src/components/mychart/radar/radar.vue +122 -0
  114. package/src/components/mychart/scatter/scatter.vue +76 -0
  115. package/src/components/numberbox/append.js +11 -0
  116. package/src/components/numberbox/index.js +3 -0
  117. package/src/components/numberbox/numberbox.vue +303 -0
  118. package/src/components/numberbox/numberrangebox.vue +423 -0
  119. package/src/components/picturebox/filebox.vue +365 -0
  120. package/src/components/picturebox/index.js +3 -0
  121. package/src/components/picturebox/picturebox.vue +541 -0
  122. package/src/components/picturebox/uploadbox.vue +164 -0
  123. package/src/components/poptagbox/index.js +2 -0
  124. package/src/components/poptagbox/poptagbox.vue +389 -0
  125. package/src/components/poptextbox/index.js +2 -0
  126. package/src/components/poptextbox/poptextbox.vue +601 -0
  127. package/src/components/radiobox/index.js +2 -0
  128. package/src/components/radiobox/radiogroupbox.vue +76 -0
  129. package/src/components/richtextbox/editor.vue +150 -0
  130. package/src/components/richtextbox/index.js +2 -0
  131. package/src/components/richtextbox/richtextbox.vue +448 -0
  132. package/src/components/textbox/index.js +2 -0
  133. package/src/components/textbox/textbox.vue +98 -0
  134. package/src/components/timebox/index.js +2 -0
  135. package/src/components/timebox/timebox.vue +76 -0
  136. package/src/components/toolbar/ebutton.vue +169 -0
  137. package/src/components/toolbar/index.js +3 -0
  138. package/src/components/toolbar/toolbar.vue +446 -0
  139. package/src/components/tree/basetree.vue +725 -0
  140. package/src/components/tree/index.js +3 -0
  141. package/src/components/tree/treedata.vue +51 -0
  142. package/src/components/tree/treedatabase.vue +189 -0
  143. package/src/components/upload/billimport.vue +233 -0
  144. package/src/components/upload/index.js +2 -0
  145. package/src/components/videobox/index.js +2 -0
  146. package/src/components/videobox/uploadbox.vue +148 -0
  147. package/src/components/videobox/videobox.vue +503 -0
  148. package/src/components/wrichtextbox/editor.vue +219 -0
  149. package/src/components/wrichtextbox/index.js +2 -0
  150. package/src/components/wrichtextbox/wrichtextbox.vue +63 -0
  151. package/src/index.js +215 -0
  152. package/src/locale/format.js +51 -0
  153. package/src/locale/index.js +63 -0
  154. package/src/locale/lang/zh-CN.js +123 -0
  155. package/src/locale/lang/zh-TW.js +114 -0
  156. package/src/locale/lang/zh-UG.js +115 -0
  157. package/src/locale/lang.js +15 -0
  158. package/src/method/case/case.js +1180 -0
  159. package/src/method/config/queryconfig.js +24 -0
  160. package/src/method/const/const.js +815 -0
  161. package/src/method/index.js +8 -0
  162. package/src/static/excel/exportexcel.js +627 -0
  163. package/src/static/iview/coustom.js +463 -0
  164. package/src/store/index.js +19 -0
  165. package/src/store/modules/app.js +53 -0
  166. package/src/styles/README.md +3 -0
  167. package/src/styles/common.less +75 -0
  168. package/src/styles/components/anchor.less +74 -0
  169. package/src/styles/components/approval.less +136 -0
  170. package/src/styles/components/button.less +208 -0
  171. package/src/styles/components/card.less +51 -0
  172. package/src/styles/components/content.less +38 -0
  173. package/src/styles/components/font.less +314 -0
  174. package/src/styles/components/form.less +72 -0
  175. package/src/styles/components/iconfont/fonts/iconfont.less +1376 -0
  176. package/src/styles/components/iconfont/fonts/iconfont.svg +699 -0
  177. package/src/styles/components/iconfont/fonts/iconfont.ttf +0 -0
  178. package/src/styles/components/iconfont/fonts/iconfont.woff +0 -0
  179. package/src/styles/components/iconfont/fonts/iconfont.woff2 +0 -0
  180. package/src/styles/components/index.less +16 -0
  181. package/src/styles/components/input.less +290 -0
  182. package/src/styles/components/modal.less +203 -0
  183. package/src/styles/components/page.less +340 -0
  184. package/src/styles/components/select.less +361 -0
  185. package/src/styles/components/steps.less +367 -0
  186. package/src/styles/components/table.less +544 -0
  187. package/src/styles/components/tabs.less +249 -0
  188. package/src/styles/components/upload.less +83 -0
  189. package/src/styles/custom.less +67 -0
  190. package/src/styles/index.less +6 -0
  191. package/src/styles/pack.less +6 -0
  192. package/src/utils/EfuMessenger.js +155 -0
  193. package/src/utils/assist.js +353 -0
  194. package/src/utils/index.js +1 -0
  195. package/src/utils/random_str.js +10 -0
@@ -0,0 +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
+ };
677
+ </script>