centaline-data-driven 1.1.54 → 1.1.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) 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/Centaline.Front_End.DataDriven.csproj +37 -37
  6. package/Centaline.Front_End.DataDriven.sln +25 -25
  7. package/Properties/launchSettings.json +26 -26
  8. package/README.md +140 -140
  9. package/build/build.js +41 -41
  10. package/build/centaline/centaline.path.js +59 -59
  11. package/build/centaline/webpack.centaline.conf.js +106 -106
  12. package/build/check-versions.js +54 -54
  13. package/build/utils.js +102 -102
  14. package/build/vue-loader.conf.js +22 -22
  15. package/build/webpack.base.conf.js +82 -82
  16. package/build/webpack.dev.conf.js +111 -111
  17. package/build/webpack.prod.conf.js +145 -145
  18. package/config/dev.env.js +12 -12
  19. package/config/index.js +73 -73
  20. package/config/prod.env.js +4 -4
  21. package/index.html +14 -14
  22. package/package.json +75 -75
  23. package/src/App.vue +10 -10
  24. package/src/Detail.vue +26 -26
  25. package/src/Edit.vue +32 -32
  26. package/src/Form.vue +29 -29
  27. package/src/SearchList.vue +40 -40
  28. package/src/SearchTree.vue +51 -51
  29. package/src/Tabs.vue +19 -19
  30. package/src/centaline/api/index.js +249 -249
  31. package/src/centaline/comfirm/index.js +11 -11
  32. package/src/centaline/comfirm/src/comfirm.vue +44 -44
  33. package/src/centaline/common/index.js +738 -738
  34. package/src/centaline/css/common.css +748 -748
  35. package/src/centaline/css/max.css +207 -207
  36. package/src/centaline/dialogList/index.js +11 -11
  37. package/src/centaline/dialogList/src/dialog.vue +210 -210
  38. package/src/centaline/dialogList/src/dialogList.vue +65 -65
  39. package/src/centaline/dialogList/src/dialogNew.vue +78 -78
  40. package/src/centaline/dialogList/src/drag.js +77 -77
  41. package/src/centaline/directives/index.js +23 -23
  42. package/src/centaline/dynamicBtn/index.js +11 -11
  43. package/src/centaline/dynamicBtn/src/dynamicBtn.vue +100 -100
  44. package/src/centaline/dynamicCb/index.js +11 -11
  45. package/src/centaline/dynamicCb/src/dynamicCb.vue +72 -72
  46. package/src/centaline/dynamicCheckbox/index.js +11 -11
  47. package/src/centaline/dynamicCheckbox/src/dynamicCheckbox.vue +128 -128
  48. package/src/centaline/dynamicComboBoxWithTextBox/index.js +11 -11
  49. package/src/centaline/dynamicComboBoxWithTextBox/src/dynamicComboBoxWithTextBox.vue +240 -240
  50. package/src/centaline/dynamicD/index.js +11 -11
  51. package/src/centaline/dynamicD/src/dynamicD.vue +92 -92
  52. package/src/centaline/dynamicDetail/index.js +10 -10
  53. package/src/centaline/dynamicDetail/src/dynamicDetail.vue +40 -40
  54. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailOFI.vue +1280 -1280
  55. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailRET.vue +1293 -1293
  56. package/src/centaline/dynamicDrop/index.js +11 -11
  57. package/src/centaline/dynamicDrop/src/dynamicDrop.vue +54 -54
  58. package/src/centaline/dynamicDtd/index.js +11 -11
  59. package/src/centaline/dynamicDtd/src/dynamicDtd.vue +125 -125
  60. package/src/centaline/dynamicDtd/src/dynamicDtdOld.vue +93 -93
  61. package/src/centaline/dynamicFile/index.js +11 -11
  62. package/src/centaline/dynamicFile/src/dynamicFile.vue +288 -283
  63. package/src/centaline/dynamicForm/index.js +24 -24
  64. package/src/centaline/dynamicForm/src/dynamicForm.vue +564 -564
  65. package/src/centaline/dynamicForm/src/dynamicFormList.vue +209 -209
  66. package/src/centaline/dynamicForm/src/dynamicFormListTable.vue +376 -376
  67. package/src/centaline/dynamicGp/index.js +11 -11
  68. package/src/centaline/dynamicGp/src/dynamicGp.vue +27 -27
  69. package/src/centaline/dynamicHyperLink/index.js +11 -11
  70. package/src/centaline/dynamicHyperLink/src/dynamicHyperLink.vue +54 -54
  71. package/src/centaline/dynamicInput/index.js +35 -35
  72. package/src/centaline/dynamicInput/src/dynamicInput.vue +35 -35
  73. package/src/centaline/dynamicInputNumber/index.js +11 -11
  74. package/src/centaline/dynamicInputNumber/src/dynamicInputNumber.vue +157 -157
  75. package/src/centaline/dynamicIti/index.js +11 -11
  76. package/src/centaline/dynamicIti/src/dynamicIti.vue +148 -148
  77. package/src/centaline/dynamicL/index.js +11 -11
  78. package/src/centaline/dynamicL/src/dynamicL.vue +37 -37
  79. package/src/centaline/dynamicLabel/index.js +11 -11
  80. package/src/centaline/dynamicLabel/src/dynamicLabel.vue +73 -73
  81. package/src/centaline/dynamicLs/index.js +22 -22
  82. package/src/centaline/dynamicLs/src/dynamicLs.vue +233 -233
  83. package/src/centaline/dynamicMo/index.js +13 -13
  84. package/src/centaline/dynamicMo/src/dynamicMo.vue +421 -421
  85. package/src/centaline/dynamicMt/index.js +11 -11
  86. package/src/centaline/dynamicMt/src/dynamicMt.vue +44 -44
  87. package/src/centaline/dynamicPlaceHolder/index.js +11 -11
  88. package/src/centaline/dynamicPlaceHolder/src/dynamicPlaceHolder.vue +29 -29
  89. package/src/centaline/dynamicPopupSearchList/index.js +11 -11
  90. package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchList.vue +157 -157
  91. package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchListTable.vue +239 -239
  92. package/src/centaline/dynamicRichText/index.js +11 -11
  93. package/src/centaline/dynamicRichText/src/dynamicRichText.vue +33 -33
  94. package/src/centaline/dynamicSearchList/index.js +11 -11
  95. package/src/centaline/dynamicSearchList/src/dynamicSearchCategory.vue +121 -121
  96. package/src/centaline/dynamicSearchList/src/dynamicSearchList.vue +135 -135
  97. package/src/centaline/dynamicSearchList/src/dynamicSearchScreen.vue +206 -206
  98. package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +1069 -1069
  99. package/src/centaline/dynamicSearchList/src/dynamicTableStatistics.vue +41 -41
  100. package/src/centaline/dynamicSearchList/src/dynamicTableTip.vue +46 -46
  101. package/src/centaline/dynamicSearchList/src/dynamicTableToolbar.vue +61 -61
  102. package/src/centaline/dynamicSeg/index.js +11 -11
  103. package/src/centaline/dynamicSeg/src/dynamicSeg.vue +100 -100
  104. package/src/centaline/dynamicSensitiveEye/index.js +11 -11
  105. package/src/centaline/dynamicSensitiveEye/src/dynamicSensitiveEye.vue +74 -74
  106. package/src/centaline/dynamicSo/index.js +14 -14
  107. package/src/centaline/dynamicSo/src/dynamicSo.vue +328 -328
  108. package/src/centaline/dynamicSo/src/dynamicSo/345/211/257/346/234/254.vue +69 -69
  109. package/src/centaline/dynamicSos/index.js +14 -14
  110. package/src/centaline/dynamicSos/src/dynamicSos - /345/244/215/345/210/266.vue" +223 -223
  111. package/src/centaline/dynamicSos/src/dynamicSos.vue +260 -260
  112. package/src/centaline/dynamicSw/index.js +11 -11
  113. package/src/centaline/dynamicSw/src/dynamicSw.vue +74 -74
  114. package/src/centaline/dynamicT/index.js +11 -11
  115. package/src/centaline/dynamicT/src/dynamicT.vue +79 -79
  116. package/src/centaline/dynamicTab/index.js +11 -11
  117. package/src/centaline/dynamicTab/src/dynamicTab.vue +49 -49
  118. package/src/centaline/dynamicTabs/index.js +11 -11
  119. package/src/centaline/dynamicTabs/src/dynamicTabs.vue +69 -69
  120. package/src/centaline/dynamicTags/index.js +13 -13
  121. package/src/centaline/dynamicTags/src/dynamicTags - /345/244/215/345/210/266.vue" +391 -391
  122. package/src/centaline/dynamicTags/src/dynamicTags.vue +427 -427
  123. package/src/centaline/dynamicTimeSelect/index.js +11 -11
  124. package/src/centaline/dynamicTimeSelect/src/dynamicTimeSelect.vue +141 -141
  125. package/src/centaline/dynamicTree/index.js +11 -11
  126. package/src/centaline/dynamicTree/src/dynamicSearchTree.vue +66 -66
  127. package/src/centaline/dynamicTree/src/dynamicTree.vue +233 -233
  128. package/src/centaline/dynamicTree/src/dynamicTreeList.vue +74 -74
  129. package/src/centaline/formData/index.js +290 -290
  130. package/src/centaline/imgPreview/index.js +42 -42
  131. package/src/centaline/imgPreview/src/imgPreview.vue +26 -26
  132. package/src/centaline/index.js +51 -51
  133. package/src/centaline/loader/index.js +157 -157
  134. package/src/centaline/loader/src/ctl/Base.js +261 -261
  135. package/src/centaline/loader/src/ctl/Button.js +44 -44
  136. package/src/centaline/loader/src/ctl/Cb.js +27 -27
  137. package/src/centaline/loader/src/ctl/Checkbox.js +107 -107
  138. package/src/centaline/loader/src/ctl/ComboBoxWithTextBox.js +162 -162
  139. package/src/centaline/loader/src/ctl/D.js +31 -31
  140. package/src/centaline/loader/src/ctl/Detail.js +175 -175
  141. package/src/centaline/loader/src/ctl/Dtd.js +115 -115
  142. package/src/centaline/loader/src/ctl/DtdOld.js +129 -129
  143. package/src/centaline/loader/src/ctl/File.js +292 -292
  144. package/src/centaline/loader/src/ctl/Form.js +380 -380
  145. package/src/centaline/loader/src/ctl/FormList.js +428 -428
  146. package/src/centaline/loader/src/ctl/GM.js +20 -20
  147. package/src/centaline/loader/src/ctl/Gp.js +9 -9
  148. package/src/centaline/loader/src/ctl/Hd.js +13 -13
  149. package/src/centaline/loader/src/ctl/HyperLink.js +24 -24
  150. package/src/centaline/loader/src/ctl/InputNumber.js +51 -51
  151. package/src/centaline/loader/src/ctl/Iti.js +108 -108
  152. package/src/centaline/loader/src/ctl/L.js +18 -18
  153. package/src/centaline/loader/src/ctl/Mo.js +183 -183
  154. package/src/centaline/loader/src/ctl/Mt.js +20 -20
  155. package/src/centaline/loader/src/ctl/PlaceHolder.js +17 -17
  156. package/src/centaline/loader/src/ctl/Router.js +273 -273
  157. package/src/centaline/loader/src/ctl/SearchCategory.js +54 -54
  158. package/src/centaline/loader/src/ctl/SearchScreen.js +236 -236
  159. package/src/centaline/loader/src/ctl/SearchTable.js +772 -772
  160. package/src/centaline/loader/src/ctl/Seg.js +37 -37
  161. package/src/centaline/loader/src/ctl/SensitiveEye.js +65 -65
  162. package/src/centaline/loader/src/ctl/So.js +117 -117
  163. package/src/centaline/loader/src/ctl/Sos.js +128 -128
  164. package/src/centaline/loader/src/ctl/Sw.js +27 -27
  165. package/src/centaline/loader/src/ctl/T.js +65 -65
  166. package/src/centaline/loader/src/ctl/Tabs.js +57 -57
  167. package/src/centaline/loader/src/ctl/Tags.js +191 -191
  168. package/src/centaline/loader/src/ctl/TimeSelect.js +87 -87
  169. package/src/centaline/loader/src/ctl/Tree.js +151 -151
  170. package/src/centaline/loader/src/ctl/Ttts.js +78 -78
  171. package/src/centaline/loader/src/ctl/lib/Enum.js +563 -563
  172. package/src/centaline/loader/src/ctl/lib/LibFunction.js +364 -364
  173. package/src/centaline/loader/src/ctl.js +36 -36
  174. package/src/centaline/mixins/dynamicElement.js +151 -151
  175. package/src/centaline/mixins/dynamicSelect.js +84 -84
  176. package/src/centaline/mixins/emitter.js +33 -33
  177. package/src/centaline/progress/index.js +11 -11
  178. package/src/centaline/progress/src/progress.vue +70 -70
  179. package/src/centaline/quickInput/src/quickInput.vue +64 -64
  180. package/src/centaline/selectOption/src/selectOption.vue +61 -61
  181. package/src/centaline/selectOption/src/selectOptionVertical.vue +80 -80
  182. package/src/centaline/templateControls/index.js +17 -17
  183. package/src/centaline/templateControls/src/dynamicTableA.vue +20 -20
  184. package/src/centaline/templateControls/src/dynamicTableCurrency.vue +62 -62
  185. package/src/centaline/templateControls/src/dynamicTableImg.vue +25 -25
  186. package/src/centaline/templates/index.js +34 -34
  187. package/src/centaline/templates/src/ContractSearch.js +67 -67
  188. package/src/centaline/templates/src/test.js +44 -44
  189. package/src/centaline/validate/index.js +332 -332
  190. package/src/main.js +46 -46
  191. package/src/router/index.js +44 -44
  192. package/wwwroot/static/centaline/centaline-data-driven.js +1 -1
  193. package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
@@ -1,380 +1,380 @@
1
- import base from '../../index';
2
- import LibFunction from './lib/LibFunction';
3
- import Enum from './lib/Enum';
4
- import Router from './Router';
5
- import valid from '../../../validate/index';
6
- import common from '../../../common';
7
- import formData from '../../../formData';
8
- import Vue from 'vue';
9
-
10
- const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
11
- var init = function (source) {
12
- //source.layoutOrientation = Enum.Orientation.Horizontal;
13
- let rtn = {
14
- get source() {
15
- return source;
16
- },
17
- get title() {
18
- return source.title;
19
- },
20
- set title(v) {
21
- source.title = v;
22
- },
23
- get flagShowTitle() {
24
- let v=false;
25
- if(source.flagShowTitle)v=source.flagShowTitle;
26
- return v;
27
- },
28
- isChanged: false,
29
- get isHorizontalLayout() {
30
- return source.layoutOrientation === Enum.Orientation.Horizontal
31
- },
32
- get notification() {
33
- return source.notification;
34
- },
35
- get flagAlertClose() {
36
- return source.flagAlertCloseWindowAfterSave === true;
37
- },
38
- _fieldsDic: null,//字典,方便取值
39
- get fieldsDic() {
40
- if (rtn._fieldsDic !== null) {
41
- return rtn._fieldsDic;
42
- }
43
- rtn._fieldsDic = {};
44
- if (rtn.fields) {
45
- rtn.fields.forEach((f) => {
46
- rtn._fieldsDic[f.id] = f;
47
- });
48
- }
49
- return rtn._fieldsDic;
50
- },
51
- _fields: null,//数组,方便遍历
52
- get fields() {
53
- if (rtn._fields !== null) {
54
- return rtn._fields;
55
- }
56
- rtn._fields = [];
57
- for (var key in source.fields) {
58
- let value = source.fields[key];
59
-
60
- let showLabel = true;
61
- let isList = false;
62
- if (isFormList) {
63
- showLabel = false;
64
- isList = true;
65
- }
66
- let item = LibFunction.GetControl(value, source, showLabel, isList);
67
-
68
- if (item instanceof Object) {
69
- item.form = rtn;
70
-
71
- rtn.hiddenHandle(item);//是否隐藏关联组件
72
-
73
- rtn._fields.push(item);
74
- }
75
- }
76
- rtn.allRequiredHandle();//必填关联组件
77
- return rtn._fields;
78
- },
79
- get col() {
80
- return source.colSpan || 3;
81
- },
82
- set col(v) {
83
- source.colSpan = v;
84
- },
85
- _buttons: null,
86
- get buttons() {
87
- if (rtn._buttons !== null) {
88
- return rtn._buttons;
89
- }
90
- else {
91
- rtn._buttons = [];
92
- if (source.buttons) {
93
- source.buttons.forEach((v) => {
94
- var button = Router(v);
95
- button.is = "ct-btn";
96
- rtn._buttons.push(button);
97
- });
98
- }
99
- return rtn._buttons;
100
- }
101
- },
102
- _links: null,
103
- get links() {
104
- if (rtn._links !== null) {
105
- return rtn._links;
106
- }
107
- else {
108
- rtn._links = [];
109
- if (source.links) {
110
- source.links.forEach((v) => {
111
- var button = Router(v);
112
- button.is = "ct-btn";
113
- if (button.show) {
114
- rtn._links.push(button);
115
- }
116
- });
117
- }
118
- return rtn._links;
119
- }
120
- },
121
- _actionRouters: null,
122
- get actionRouters() {
123
- if (rtn._actionRouters !== null) {
124
- return rtn._actionRouters;
125
- }
126
- else {
127
- rtn._actionRouters = [];
128
- if (source.actionRouters) {
129
- source.actionRouters.forEach((v) => {
130
- var button = Router(v);
131
- button.is = "ct-btn";
132
- rtn._actionRouters.push(button);
133
- });
134
- }
135
- return rtn._actionRouters;
136
- }
137
- },
138
- get optionApi() {
139
- return source.parameterAction;
140
- },
141
- _pageDisabled:false,
142
- get pageDisabled() {
143
- return this._pageDisabled;
144
- },
145
- set pageDisabled(v) {
146
- this._pageDisabled = v;
147
- },
148
- get saveButtonAction() {
149
- return source.saveButtonAction;
150
- },
151
- //获取新的初始化的方法
152
- _scripts: null,
153
- get scripts() {
154
- if (rtn._scripts !== null) {
155
- return rtn._scripts;
156
- }
157
- else {
158
- if (typeof source.scripts !== 'undefined') {
159
- rtn._scripts = base.common.eval(source.scripts);
160
- return rtn._scripts;
161
- }
162
- }
163
- },
164
- get formData() {
165
- return formData;
166
- },
167
- getFormObj() {
168
- var rtnFormObj = {};
169
- rtn.fields.forEach((f) => {
170
- if (typeof f.id !== 'undefined') {
171
- Object.assign(rtnFormObj, f.getFormObj());
172
- }
173
- });
174
- return rtnFormObj;
175
- },
176
- updateFields(data, callback) {
177
- var self = this;
178
- if (data.responseData.ClientAction === Enum.ClientActionType.Copy) {
179
- var tempData = data.responseData.content;
180
- for (var k in tempData) {
181
- var tempFd = self.fields.find((v) => {
182
- return v.id === k;
183
- });
184
- if (tempFd) {
185
- tempFd.value = tempData[k];
186
- }
187
- var tempFd1 = self.fields.find((v) => {
188
- return v.id1 === k;
189
- });
190
- if (tempFd1) {
191
- tempFd1.value1 = tempFd1.text = tempData[k];
192
- }
193
- }
194
- }
195
- else if (data.responseData.ClientAction === Enum.ClientActionType.ExcuteScript) {
196
- var f = new Function(data.responseData.content);
197
- self.scripts.$tempUpdate = common.initFunction(f);
198
- common.excute.call(self.scripts, '$tempUpdate();');
199
- delete self.scripts.$tempUpdate;
200
- }
201
- callback();
202
- },
203
- //获取查询数据参数
204
- get searchData() {
205
- var rtn = {
206
- fields: []
207
- };
208
- this.fields.forEach((v) => {
209
- var tempObj = v.searchObj;
210
- if (tempObj && tempObj.searchValue1 && tempObj.searchValue1 !== '') {
211
- rtn.fields.push(tempObj);
212
- }
213
- });
214
- return rtn;
215
- },
216
- hatchHandle(itemId, attrName, attrValue, item) {
217
- switch (attrName) {
218
- case 'code1':
219
- rtn.validMrf(item);//验证必填关联组件
220
- rtn.hiddenHandle(item, true);
221
- break;
222
- //case 'lk':
223
- case 'locked':
224
- if (item.self && item.self.resize) {
225
- item.self.resize();//重新计算多选框长度
226
- }
227
- break;
228
- default:
229
- break;
230
- }
231
- },
232
- //隐藏关联组件
233
- hiddenHandle(item, update) {
234
- if (item.id) {
235
- let sign = false;
236
- let field = null;
237
-
238
- for (var i in rtn.source.fields) {
239
- if (rtn.source.fields[i].hiddenRelationField === item.id) {
240
- field = rtn.source.fields[i];
241
-
242
- if (field) {
243
- let hiddenValueArr = field.hiddenRelationFieldValue.split(',');
244
- if (hiddenValueArr.indexOf(item.code1) > -1) {
245
- field.show = false;
246
- }
247
- else {
248
- field.show = true;
249
- }
250
- sign = true;
251
-
252
- if (update && rtn.self && sign) {
253
- rtn.self.$forceUpdate();
254
- }
255
- }
256
- }
257
- }
258
-
259
- }
260
- },
261
- //验证必填关联组件
262
- validMrf(item) {
263
- let field = rtn.fields[item.mrf];
264
-
265
- if (field && field.self) {
266
- if (field.type === Enum.ControlType.List) {
267
- //f.required = '0';
268
- }
269
- else {
270
- field.self.validExcute();
271
- }
272
- }
273
- },
274
- allRequiredHandle() {
275
- rtn.fields.forEach(v => {
276
- rtn.requiredHandle(v, null, false);
277
- });
278
- },
279
- //处理必填关联组件
280
- requiredHandle(item, update, doMrf) {
281
- if (item.id) {
282
- let field = null;
283
-
284
- for (var i in rtn.source.fields) {
285
- if (rtn.source.fields[i].requiredRelationField === item.id) {
286
- field = rtn.source.fields[i];
287
- let f = rtn.fieldsDic[field.fieldName1];
288
-
289
- if (field) {
290
- let hiddenValueArr = field.requiredRelationFieldValue.split(',');
291
- if (hiddenValueArr.indexOf(item.value) > -1) {
292
- field.required = true;
293
- }
294
- else {
295
- field.required = false;
296
- }
297
-
298
- if (f && f.self && f.self.$forceUpdate) {
299
- f.self.$forceUpdate();
300
- }
301
-
302
- if (update && rtn.self) {
303
- rtn.self.$forceUpdate();
304
- }
305
- }
306
- }
307
- }
308
-
309
- if (doMrf !== false) {
310
- rtn.validMrf(item);
311
- }
312
- }
313
- },
314
- //绑定联动参数组件
315
- getRefFieldPara(refFieldNameArr) {
316
- let submitData = {};
317
- var tempFormData = rtn.getFormObj();
318
- refFieldNameArr.forEach((v) => {
319
- submitData[v] = tempFormData[v];
320
- });
321
- return submitData;
322
- },
323
- getParentFieldPara(parentFieldNameArr) {
324
- let submitData = {};
325
- var tempFormData = rtn.getFormObj();
326
- parentFieldNameArr.forEach((v) => {
327
- submitData[v] = tempFormData[v];
328
- });
329
-
330
- if(JSON.stringify(submitData) == "{}"){
331
- return '';
332
- }
333
- else{
334
- if(parentFieldNameArr.length>1){
335
- return JSON.stringify(submitData);
336
- }
337
- else{
338
- return submitData[parentFieldNameArr[0]];
339
- }
340
- }
341
- },
342
- //检查是否关闭tab后触发来源页面操作
343
- checkCloseTabThen(notification) {
344
- var rtn = false;
345
- if (notification == Enum.ActionType.CloseTabThenDelete
346
- || notification == Enum.ActionType.CloseTabThenDelete
347
- || notification == Enum.ActionType.CloseTabThenDelete) {
348
- rtn = true;
349
- }
350
- return rtn;
351
- }
352
- };
353
- valid.InitForm(rtn);
354
- return rtn;
355
- };
356
- if (typeof source === 'string') {
357
- apiParam = apiParam ? apiParam : {};
358
- Vue.prototype.$api.postHandler(common.globalUri(), { "action": source, "para": apiParam }).then(
359
- function (response) {
360
- if (response.rtnCode === Enum.ReturnCode.Successful) {
361
- var data = response.content;
362
- var rtn = init(data);
363
- if (callBack) {
364
- callBack(rtn);
365
- }
366
- }
367
- else {
368
- if (failCallBack) {
369
- failCallBack();
370
- }
371
- }
372
- }
373
- );
374
- }
375
- else {
376
- var data = source;
377
- return init(data);
378
- }
379
- };
380
- export default Form;
1
+ import base from '../../index';
2
+ import LibFunction from './lib/LibFunction';
3
+ import Enum from './lib/Enum';
4
+ import Router from './Router';
5
+ import valid from '../../../validate/index';
6
+ import common from '../../../common';
7
+ import formData from '../../../formData';
8
+ import Vue from 'vue';
9
+
10
+ const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
11
+ var init = function (source) {
12
+ //source.layoutOrientation = Enum.Orientation.Horizontal;
13
+ let rtn = {
14
+ get source() {
15
+ return source;
16
+ },
17
+ get title() {
18
+ return source.title;
19
+ },
20
+ set title(v) {
21
+ source.title = v;
22
+ },
23
+ get flagShowTitle() {
24
+ let v=false;
25
+ if(source.flagShowTitle)v=source.flagShowTitle;
26
+ return v;
27
+ },
28
+ isChanged: false,
29
+ get isHorizontalLayout() {
30
+ return source.layoutOrientation === Enum.Orientation.Horizontal
31
+ },
32
+ get notification() {
33
+ return source.notification;
34
+ },
35
+ get flagAlertClose() {
36
+ return source.flagAlertCloseWindowAfterSave === true;
37
+ },
38
+ _fieldsDic: null,//字典,方便取值
39
+ get fieldsDic() {
40
+ if (rtn._fieldsDic !== null) {
41
+ return rtn._fieldsDic;
42
+ }
43
+ rtn._fieldsDic = {};
44
+ if (rtn.fields) {
45
+ rtn.fields.forEach((f) => {
46
+ rtn._fieldsDic[f.id] = f;
47
+ });
48
+ }
49
+ return rtn._fieldsDic;
50
+ },
51
+ _fields: null,//数组,方便遍历
52
+ get fields() {
53
+ if (rtn._fields !== null) {
54
+ return rtn._fields;
55
+ }
56
+ rtn._fields = [];
57
+ for (var key in source.fields) {
58
+ let value = source.fields[key];
59
+
60
+ let showLabel = true;
61
+ let isList = false;
62
+ if (isFormList) {
63
+ showLabel = false;
64
+ isList = true;
65
+ }
66
+ let item = LibFunction.GetControl(value, source, showLabel, isList);
67
+
68
+ if (item instanceof Object) {
69
+ item.form = rtn;
70
+
71
+ rtn.hiddenHandle(item);//是否隐藏关联组件
72
+
73
+ rtn._fields.push(item);
74
+ }
75
+ }
76
+ rtn.allRequiredHandle();//必填关联组件
77
+ return rtn._fields;
78
+ },
79
+ get col() {
80
+ return source.colSpan || 3;
81
+ },
82
+ set col(v) {
83
+ source.colSpan = v;
84
+ },
85
+ _buttons: null,
86
+ get buttons() {
87
+ if (rtn._buttons !== null) {
88
+ return rtn._buttons;
89
+ }
90
+ else {
91
+ rtn._buttons = [];
92
+ if (source.buttons) {
93
+ source.buttons.forEach((v) => {
94
+ var button = Router(v);
95
+ button.is = "ct-btn";
96
+ rtn._buttons.push(button);
97
+ });
98
+ }
99
+ return rtn._buttons;
100
+ }
101
+ },
102
+ _links: null,
103
+ get links() {
104
+ if (rtn._links !== null) {
105
+ return rtn._links;
106
+ }
107
+ else {
108
+ rtn._links = [];
109
+ if (source.links) {
110
+ source.links.forEach((v) => {
111
+ var button = Router(v);
112
+ button.is = "ct-btn";
113
+ if (button.show) {
114
+ rtn._links.push(button);
115
+ }
116
+ });
117
+ }
118
+ return rtn._links;
119
+ }
120
+ },
121
+ _actionRouters: null,
122
+ get actionRouters() {
123
+ if (rtn._actionRouters !== null) {
124
+ return rtn._actionRouters;
125
+ }
126
+ else {
127
+ rtn._actionRouters = [];
128
+ if (source.actionRouters) {
129
+ source.actionRouters.forEach((v) => {
130
+ var button = Router(v);
131
+ button.is = "ct-btn";
132
+ rtn._actionRouters.push(button);
133
+ });
134
+ }
135
+ return rtn._actionRouters;
136
+ }
137
+ },
138
+ get optionApi() {
139
+ return source.parameterAction;
140
+ },
141
+ _pageDisabled:false,
142
+ get pageDisabled() {
143
+ return this._pageDisabled;
144
+ },
145
+ set pageDisabled(v) {
146
+ this._pageDisabled = v;
147
+ },
148
+ get saveButtonAction() {
149
+ return source.saveButtonAction;
150
+ },
151
+ //获取新的初始化的方法
152
+ _scripts: null,
153
+ get scripts() {
154
+ if (rtn._scripts !== null) {
155
+ return rtn._scripts;
156
+ }
157
+ else {
158
+ if (typeof source.scripts !== 'undefined') {
159
+ rtn._scripts = base.common.eval(source.scripts);
160
+ return rtn._scripts;
161
+ }
162
+ }
163
+ },
164
+ get formData() {
165
+ return formData;
166
+ },
167
+ getFormObj() {
168
+ var rtnFormObj = {};
169
+ rtn.fields.forEach((f) => {
170
+ if (typeof f.id !== 'undefined') {
171
+ Object.assign(rtnFormObj, f.getFormObj());
172
+ }
173
+ });
174
+ return rtnFormObj;
175
+ },
176
+ updateFields(data, callback) {
177
+ var self = this;
178
+ if (data.responseData.ClientAction === Enum.ClientActionType.Copy) {
179
+ var tempData = data.responseData.content;
180
+ for (var k in tempData) {
181
+ var tempFd = self.fields.find((v) => {
182
+ return v.id === k;
183
+ });
184
+ if (tempFd) {
185
+ tempFd.value = tempData[k];
186
+ }
187
+ var tempFd1 = self.fields.find((v) => {
188
+ return v.id1 === k;
189
+ });
190
+ if (tempFd1) {
191
+ tempFd1.value1 = tempFd1.text = tempData[k];
192
+ }
193
+ }
194
+ }
195
+ else if (data.responseData.ClientAction === Enum.ClientActionType.ExcuteScript) {
196
+ var f = new Function(data.responseData.content);
197
+ self.scripts.$tempUpdate = common.initFunction(f);
198
+ common.excute.call(self.scripts, '$tempUpdate();');
199
+ delete self.scripts.$tempUpdate;
200
+ }
201
+ callback();
202
+ },
203
+ //获取查询数据参数
204
+ get searchData() {
205
+ var rtn = {
206
+ fields: []
207
+ };
208
+ this.fields.forEach((v) => {
209
+ var tempObj = v.searchObj;
210
+ if (tempObj && tempObj.searchValue1 && tempObj.searchValue1 !== '') {
211
+ rtn.fields.push(tempObj);
212
+ }
213
+ });
214
+ return rtn;
215
+ },
216
+ hatchHandle(itemId, attrName, attrValue, item) {
217
+ switch (attrName) {
218
+ case 'code1':
219
+ rtn.validMrf(item);//验证必填关联组件
220
+ rtn.hiddenHandle(item, true);
221
+ break;
222
+ //case 'lk':
223
+ case 'locked':
224
+ if (item.self && item.self.resize) {
225
+ item.self.resize();//重新计算多选框长度
226
+ }
227
+ break;
228
+ default:
229
+ break;
230
+ }
231
+ },
232
+ //隐藏关联组件
233
+ hiddenHandle(item, update) {
234
+ if (item.id) {
235
+ let sign = false;
236
+ let field = null;
237
+
238
+ for (var i in rtn.source.fields) {
239
+ if (rtn.source.fields[i].hiddenRelationField === item.id) {
240
+ field = rtn.source.fields[i];
241
+
242
+ if (field) {
243
+ let hiddenValueArr = field.hiddenRelationFieldValue.split(',');
244
+ if (hiddenValueArr.indexOf(item.code1) > -1) {
245
+ field.show = false;
246
+ }
247
+ else {
248
+ field.show = true;
249
+ }
250
+ sign = true;
251
+
252
+ if (update && rtn.self && sign) {
253
+ rtn.self.$forceUpdate();
254
+ }
255
+ }
256
+ }
257
+ }
258
+
259
+ }
260
+ },
261
+ //验证必填关联组件
262
+ validMrf(item) {
263
+ let field = rtn.fields[item.mrf];
264
+
265
+ if (field && field.self) {
266
+ if (field.type === Enum.ControlType.List) {
267
+ //f.required = '0';
268
+ }
269
+ else {
270
+ field.self.validExcute();
271
+ }
272
+ }
273
+ },
274
+ allRequiredHandle() {
275
+ rtn.fields.forEach(v => {
276
+ rtn.requiredHandle(v, null, false);
277
+ });
278
+ },
279
+ //处理必填关联组件
280
+ requiredHandle(item, update, doMrf) {
281
+ if (item.id) {
282
+ let field = null;
283
+
284
+ for (var i in rtn.source.fields) {
285
+ if (rtn.source.fields[i].requiredRelationField === item.id) {
286
+ field = rtn.source.fields[i];
287
+ let f = rtn.fieldsDic[field.fieldName1];
288
+
289
+ if (field) {
290
+ let hiddenValueArr = field.requiredRelationFieldValue.split(',');
291
+ if (hiddenValueArr.indexOf(item.value) > -1) {
292
+ field.required = true;
293
+ }
294
+ else {
295
+ field.required = false;
296
+ }
297
+
298
+ if (f && f.self && f.self.$forceUpdate) {
299
+ f.self.$forceUpdate();
300
+ }
301
+
302
+ if (update && rtn.self) {
303
+ rtn.self.$forceUpdate();
304
+ }
305
+ }
306
+ }
307
+ }
308
+
309
+ if (doMrf !== false) {
310
+ rtn.validMrf(item);
311
+ }
312
+ }
313
+ },
314
+ //绑定联动参数组件
315
+ getRefFieldPara(refFieldNameArr) {
316
+ let submitData = {};
317
+ var tempFormData = rtn.getFormObj();
318
+ refFieldNameArr.forEach((v) => {
319
+ submitData[v] = tempFormData[v];
320
+ });
321
+ return submitData;
322
+ },
323
+ getParentFieldPara(parentFieldNameArr) {
324
+ let submitData = {};
325
+ var tempFormData = rtn.getFormObj();
326
+ parentFieldNameArr.forEach((v) => {
327
+ submitData[v] = tempFormData[v];
328
+ });
329
+
330
+ if(JSON.stringify(submitData) == "{}"){
331
+ return '';
332
+ }
333
+ else{
334
+ if(parentFieldNameArr.length>1){
335
+ return JSON.stringify(submitData);
336
+ }
337
+ else{
338
+ return submitData[parentFieldNameArr[0]];
339
+ }
340
+ }
341
+ },
342
+ //检查是否关闭tab后触发来源页面操作
343
+ checkCloseTabThen(notification) {
344
+ var rtn = false;
345
+ if (notification == Enum.ActionType.CloseTabThenDelete
346
+ || notification == Enum.ActionType.CloseTabThenDelete
347
+ || notification == Enum.ActionType.CloseTabThenDelete) {
348
+ rtn = true;
349
+ }
350
+ return rtn;
351
+ }
352
+ };
353
+ valid.InitForm(rtn);
354
+ return rtn;
355
+ };
356
+ if (typeof source === 'string') {
357
+ apiParam = apiParam ? apiParam : {};
358
+ Vue.prototype.$api.postHandler(common.globalUri(), { "action": source, "para": apiParam }).then(
359
+ function (response) {
360
+ if (response.rtnCode === Enum.ReturnCode.Successful) {
361
+ var data = response.content;
362
+ var rtn = init(data);
363
+ if (callBack) {
364
+ callBack(rtn);
365
+ }
366
+ }
367
+ else {
368
+ if (failCallBack) {
369
+ failCallBack();
370
+ }
371
+ }
372
+ }
373
+ );
374
+ }
375
+ else {
376
+ var data = source;
377
+ return init(data);
378
+ }
379
+ };
380
+ export default Form;