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,233 +1,233 @@
1
- <template>
2
- <div style="width:100%">
3
- <el-form :label-position="'left'" :model="$data" :ref="elementValue.Name" @submit.native.prevent="onSubmit(elementValue.Name)">
4
- <p v-if="getButtons('top')" style="text-align:right;padding-right:30px">
5
- <el-button v-for="(btn,bindex) in getButtons('top')" :key="btn.dn" :type="$common.getBtnType(btn.controlType)" size="mini" @click="handlebtn(null, null,btn,elementValue.Rows)">{{btn.dn}}</el-button>
6
- </p>
7
- <el-table v-if="elementValue.Rows" :data="elementValue.Rows.slice(1,elementValue.Rows.length)" style="width: 100%">
8
- <el-table-column v-if="head.controlType !== 'hd'" v-for="(head,index) in elementValue.Rows[0].Row" :label="head.dn" :width="head.wd?head.wd:180" :key="head.fieldName1">
9
- <template slot-scope="scope">
10
- <div style="width:100%" v-if="inForm && elementValue.RowEdit === '1'">
11
- <ct-label v-model="scope.row.Row[index]" v-if="scope.row.Row[index].Read && scope.row.Row[index].Read === '1' && !listEditRow[(scope.$index + 1)]" :dynamicData="scope.row.Row[index]"></ct-label>
12
- <el-form-item v-else-if="elementValue.RowEdit && elementValue.RowEdit === '1' && listEditRow[(scope.$index + 1)]" label-width="0px" :ref="'elementValue.Rows['+(scope.$index + 1)+'].Row['+index+']'" :rules="listRules[scope.$index + 1][index]" :prop="elementValue.Rows[scope.$index].Row[index].controlType === 'iTi'?'elementValue.Rows['+(scope.$index + 1)+'].Row['+index+']':'elementValue.Rows['+(scope.$index+1)+'].Row['+index+'].code1'">
13
- <ct-input v-model="scope.row.Row[index]" :optApi="optApi" :dynamicData="scope.row.Row[index]" @input="elementInput" :row="1" @change="changeHandle($event,scope.row.Row[index],scope.$index)" @click="handlebtn(scope.$index, scope.row,scope.row.Row[index],elementValue.Rows)"></ct-input>
14
- </el-form-item>
15
- <ct-label v-model="scope.row.Row[index]" v-else :dynamicData="scope.row.Row[index]"></ct-label>
16
- </div>
17
- <div style="width:100%" v-else>
18
- <ct-label v-model="scope.row.Row[index]" v-if="scope.row.Row[index].Read && scope.row.Row[index].Read === '1'" :dynamicData="scope.row.Row[index]"></ct-label>
19
- <ct-input v-model="scope.row.Row[index]" v-else-if="elementValue.RowEdit && elementValue.RowEdit === '1'" :dynamicData="scope.row.Row[index]" @input="elementInput" :row="1"></ct-input>
20
- <ct-label v-model="scope.row.Row[index]" v-else :dynamicData="scope.row.Row[index]"></ct-label>
21
- </div>
22
- </template>
23
- </el-table-column>
24
- <el-table-column v-if="getButtons().length > 0" fixed="right" :width="80 * getButtons().length">
25
- <template slot-scope="scope">
26
- <el-button v-for="(btn,bindex) in getButtons()" :key="btn.dn" :type="$common.getBtnType(btn.controlType)" size="mini" @click="handlebtn(scope.$index, scope.row,btn,elementValue.Rows)">{{btn.dn}}</el-button>
27
- </template>
28
- </el-table-column>
29
- </el-table>
30
- <p v-if="getButtons('down')">
31
- <el-button v-for="(btn,bindex) in getButtons('down')" :key="btn.dn" :type="$common.getBtnType(btn.controlType)" size="mini" @click="handlebtn(scope.$index, scope.row,btn,elementValue.Rows)">{{btn.dn}}</el-button>
32
- </p>
33
- <el-dialog :visible.sync="editShow" v-show="editShow" @closed="$set(editData, 'Fields', []);$set(editData, 'NewRow', false);">
34
- <ct-form v-model="editData" :dynamicData="editData" :sync="false" :col="1" @ctSubmit="editSave" :isDialog="true"></ct-form>
35
- </el-dialog>
36
- </el-form>
37
- </div>
38
- </template>
39
-
40
- <script>
41
- //该组件已废弃
42
- import dynamicElement from '../../mixins/dynamicElement'
43
- export default {
44
- name: 'ct-ls',
45
- mixins: [dynamicElement],
46
- props: ["inForm",'formRefs','scripts','optApi'],
47
- data() {
48
- return {
49
- listHead: [],
50
- listContent: [],
51
- listRules: [[]],
52
- editData: {
53
- "FormTitle": "编辑",
54
- "OptApi": this.optApi,
55
- "Button": [
56
- {
57
- "dn": "保存",
58
- "action": "submit",
59
- "dt": "p"
60
- }
61
- ],
62
- "Fields": [
63
-
64
- ],
65
- "NewRow": false,
66
- "Scripts": {}
67
- },
68
- editShow: false,
69
- elementScripts: {
70
- formData: {}
71
- },
72
- formData: {},
73
- listEditRow: []
74
- }
75
- },
76
- methods: {
77
- handlebtn(index, data, button, rows) {
78
- var self = this;
79
- var stick = true;
80
- if (typeof button.onClick !== 'undefined') {
81
- this.elementScripts.formData.fieldsPath = 'elementValue.Rows[' + (index + 1) + "].Row";
82
- var onClicks = button.onClick.split(';');
83
- for (var str in onClicks) {
84
- if (onClicks[str].trim() === '') {
85
- continue;
86
- }
87
- var itemStick = new Function('try{ return this.elementScripts.' + onClicks[str].trim().replace(/\(\s*\)/, '(\'' + button.fieldName1 + '\')') + '}catch(ex){return ' + onClicks[str].trim() + '}').call(this);
88
- if (stick !== false) {
89
- stick = itemStick;
90
- }
91
- }
92
- }
93
- if (stick !== false) {
94
- var newRow;
95
- switch (button.action) {
96
- case 'delete':
97
- rows.splice(index + 1, 1);
98
- this.$emit("input", this.elementValue);
99
- break;
100
- case 'edit':
101
- if (this.elementValue.RowEdit === '1') {
102
- var itemEditRow = this.$common.deepClone(this.listEditRow);
103
- if (itemEditRow[index + 1] === true) {
104
- self.$refs[self.elementValue.Name].validate((valid, Obj) => {
105
- if (valid) {
106
- itemEditRow[index + 1] = !itemEditRow[index + 1];
107
- }
108
- self.listEditRow = itemEditRow;
109
- });
110
- }
111
- else {
112
- itemEditRow[index + 1] = !itemEditRow[index + 1];
113
- self.listEditRow = itemEditRow;
114
- }
115
- }
116
- else {
117
- this.$set(this.editData, 'Fields', data.Row);
118
- this.$set(this, 'editShow', true);
119
- }
120
- break;
121
- case 'add':
122
- if (this.elementValue.RowEdit === '1') {
123
- newRow = this.$common.deepClone(rows[0]);
124
- var i = rows.length;
125
- rows.push(newRow);
126
- var rowRules = [];
127
- for (var j = 0; j < this.elementValue.Rows[i].Row.length; j++) {
128
- var itemRule = this.$validate.getValidate(this.elementValue.Rows[i].Row[j], this.elementValue.Rows[i].Row);
129
- if (this.elementValue.Rows[i].Row[j].mrf) {
130
- var itemValid = this.$validate.dynamicRequiredList.call(this, this.elementValue.Rows[i].Row[j], i);
131
- itemRule.push(itemValid);
132
- }
133
- rowRules.push(itemRule);
134
- }
135
- this.listRules.push(rowRules);
136
- var itemEditRow = this.$common.deepClone(this.listEditRow);
137
- itemEditRow[rows.length - 1]= true;
138
- self.listEditRow = itemEditRow;
139
- this.$emit("input", this.elementValue);
140
- }
141
- else {
142
- newRow = this.$common.deepClone(rows[0]);
143
- this.$set(this.editData, 'Fields', newRow.Row);
144
- this.$set(this.editData, 'NewRow', true);
145
- this.$set(this, 'editShow', true);
146
- }
147
- break;
148
- default:
149
- break;
150
- }
151
- }
152
- },
153
- editSave(data) {
154
- if (data.NewRow === true) {
155
- this.$set(this.editData, 'NewRow', false);
156
- this.elementValue.Rows.push({ Row: this.$common.deepClone(data.Fields)});
157
- }
158
- else {
159
- this.editData.Fields.forEach((value) => {
160
- var updateField = data.Fields.find((uValue) => { return uValue.fieldName1 === value.fieldName1 && uValue.controlType === value.controlType });
161
- if (updateField && typeof updateField.code1 !== 'undefined') {
162
- this.$set(value, 'v1', updateField.code1);
163
- this.$set(value, 'v2', updateField.v2);
164
- this.$set(value, 'oldOptions', updateField.oldOptions);
165
- }
166
- });
167
- }
168
- this.$set(this, 'editShow', false);
169
- this.$emit("input", this.elementValue);
170
- },
171
- getButtons(position) {
172
- switch (position){
173
- case 'top':
174
- return this.elementValue.Button.filter((value) => { return value.position === 'top' });
175
- case 'down':
176
- return this.elementValue.Button.filter((value) => { return value.position === 'down' });
177
- default:
178
- return this.elementValue.Button.filter((value) => { return typeof value.position === 'undefined' || value.position === 'row' })
179
- }
180
- },
181
- changeHandle(fieldName, field,index) {
182
- if (typeof field.onChange !== 'undefined') {
183
- this.elementScripts.formData.fieldsPath = 'elementValue.Rows[' + (index + 1) + "].Row";
184
- var changes = field.onChange.split(';');
185
- for (var str in changes) {
186
- if (changes[str].trim() === '') {
187
- continue;
188
- }
189
- eval('try{ this.elementScripts.' + changes[str].trim().replace(/\(\s*\)/, '(\'' + fieldName + '\')') + '}catch(ex){' + changes[str].trim() + '}');
190
- }
191
- }
192
- }
193
- },
194
- created() {
195
- if (this.inForm && this.elementValue.RowEdit === '1') {
196
- for (var i = 1; i < this.elementValue.Rows.length; i++) {
197
- var rowRules = [];
198
- for (var j = 0; j < this.elementValue.Rows[i].Row.length; j++) {
199
- var itemRule = this.$validate.getValidate(this.elementValue.Rows[i].Row[j], this.elementValue.Rows[i].Row);
200
- if (this.elementValue.Rows[i].Row[j].mrf) {
201
- var itemValid = this.$validate.dynamicRequiredList.call(this, this.elementValue.Rows[i].Row[j],i);
202
- itemRule.push(itemValid);
203
- }
204
- rowRules.push(itemRule);
205
- }
206
- this.listRules.push(rowRules);
207
- }
208
- }
209
- },
210
- mounted() {
211
- var self = this;
212
- this.$nextTick(function () {
213
- if (self.inForm && self.elementValue.RowEdit === '1') {
214
- self.formRefs[self.elementValue.Name] = self.$refs[self.elementValue.Name];
215
- }
216
- if (typeof self.scripts !== 'undefined') {
217
- self.elementScripts = Object.assign({}, self.scripts, self.elementScripts);
218
- for (var func in self.elementScripts) {
219
- if (typeof self.elementScripts[func] === 'function') {
220
- self.editData.Scripts[func] = self.elementScripts[func];
221
- }
222
- }
223
- self.elementScripts.formData = self.$common.formData();
224
- self.formData = self.elementScripts.formData;
225
- self.elementScripts.formData.self = self;
226
- }
227
- });
228
- this.elementValue.Rows.forEach((value, index) => {
229
- this.listEditRow[index] = false;
230
- });
231
- }
232
- }
233
- </script>
1
+ <template>
2
+ <div style="width:100%">
3
+ <el-form :label-position="'left'" :model="$data" :ref="elementValue.Name" @submit.native.prevent="onSubmit(elementValue.Name)">
4
+ <p v-if="getButtons('top')" style="text-align:right;padding-right:30px">
5
+ <el-button v-for="(btn,bindex) in getButtons('top')" :key="btn.dn" :type="$common.getBtnType(btn.controlType)" size="mini" @click="handlebtn(null, null,btn,elementValue.Rows)">{{btn.dn}}</el-button>
6
+ </p>
7
+ <el-table v-if="elementValue.Rows" :data="elementValue.Rows.slice(1,elementValue.Rows.length)" style="width: 100%">
8
+ <el-table-column v-if="head.controlType !== 'hd'" v-for="(head,index) in elementValue.Rows[0].Row" :label="head.dn" :width="head.wd?head.wd:180" :key="head.fieldName1">
9
+ <template slot-scope="scope">
10
+ <div style="width:100%" v-if="inForm && elementValue.RowEdit === '1'">
11
+ <ct-label v-model="scope.row.Row[index]" v-if="scope.row.Row[index].Read && scope.row.Row[index].Read === '1' && !listEditRow[(scope.$index + 1)]" :dynamicData="scope.row.Row[index]"></ct-label>
12
+ <el-form-item v-else-if="elementValue.RowEdit && elementValue.RowEdit === '1' && listEditRow[(scope.$index + 1)]" label-width="0px" :ref="'elementValue.Rows['+(scope.$index + 1)+'].Row['+index+']'" :rules="listRules[scope.$index + 1][index]" :prop="elementValue.Rows[scope.$index].Row[index].controlType === 'iTi'?'elementValue.Rows['+(scope.$index + 1)+'].Row['+index+']':'elementValue.Rows['+(scope.$index+1)+'].Row['+index+'].code1'">
13
+ <ct-input v-model="scope.row.Row[index]" :optApi="optApi" :dynamicData="scope.row.Row[index]" @input="elementInput" :row="1" @change="changeHandle($event,scope.row.Row[index],scope.$index)" @click="handlebtn(scope.$index, scope.row,scope.row.Row[index],elementValue.Rows)"></ct-input>
14
+ </el-form-item>
15
+ <ct-label v-model="scope.row.Row[index]" v-else :dynamicData="scope.row.Row[index]"></ct-label>
16
+ </div>
17
+ <div style="width:100%" v-else>
18
+ <ct-label v-model="scope.row.Row[index]" v-if="scope.row.Row[index].Read && scope.row.Row[index].Read === '1'" :dynamicData="scope.row.Row[index]"></ct-label>
19
+ <ct-input v-model="scope.row.Row[index]" v-else-if="elementValue.RowEdit && elementValue.RowEdit === '1'" :dynamicData="scope.row.Row[index]" @input="elementInput" :row="1"></ct-input>
20
+ <ct-label v-model="scope.row.Row[index]" v-else :dynamicData="scope.row.Row[index]"></ct-label>
21
+ </div>
22
+ </template>
23
+ </el-table-column>
24
+ <el-table-column v-if="getButtons().length > 0" fixed="right" :width="80 * getButtons().length">
25
+ <template slot-scope="scope">
26
+ <el-button v-for="(btn,bindex) in getButtons()" :key="btn.dn" :type="$common.getBtnType(btn.controlType)" size="mini" @click="handlebtn(scope.$index, scope.row,btn,elementValue.Rows)">{{btn.dn}}</el-button>
27
+ </template>
28
+ </el-table-column>
29
+ </el-table>
30
+ <p v-if="getButtons('down')">
31
+ <el-button v-for="(btn,bindex) in getButtons('down')" :key="btn.dn" :type="$common.getBtnType(btn.controlType)" size="mini" @click="handlebtn(scope.$index, scope.row,btn,elementValue.Rows)">{{btn.dn}}</el-button>
32
+ </p>
33
+ <el-dialog :visible.sync="editShow" v-show="editShow" @closed="$set(editData, 'Fields', []);$set(editData, 'NewRow', false);">
34
+ <ct-form v-model="editData" :dynamicData="editData" :sync="false" :col="1" @ctSubmit="editSave" :isDialog="true"></ct-form>
35
+ </el-dialog>
36
+ </el-form>
37
+ </div>
38
+ </template>
39
+
40
+ <script>
41
+ //该组件已废弃
42
+ import dynamicElement from '../../mixins/dynamicElement'
43
+ export default {
44
+ name: 'ct-ls',
45
+ mixins: [dynamicElement],
46
+ props: ["inForm",'formRefs','scripts','optApi'],
47
+ data() {
48
+ return {
49
+ listHead: [],
50
+ listContent: [],
51
+ listRules: [[]],
52
+ editData: {
53
+ "FormTitle": "编辑",
54
+ "OptApi": this.optApi,
55
+ "Button": [
56
+ {
57
+ "dn": "保存",
58
+ "action": "submit",
59
+ "dt": "p"
60
+ }
61
+ ],
62
+ "Fields": [
63
+
64
+ ],
65
+ "NewRow": false,
66
+ "Scripts": {}
67
+ },
68
+ editShow: false,
69
+ elementScripts: {
70
+ formData: {}
71
+ },
72
+ formData: {},
73
+ listEditRow: []
74
+ }
75
+ },
76
+ methods: {
77
+ handlebtn(index, data, button, rows) {
78
+ var self = this;
79
+ var stick = true;
80
+ if (typeof button.onClick !== 'undefined') {
81
+ this.elementScripts.formData.fieldsPath = 'elementValue.Rows[' + (index + 1) + "].Row";
82
+ var onClicks = button.onClick.split(';');
83
+ for (var str in onClicks) {
84
+ if (onClicks[str].trim() === '') {
85
+ continue;
86
+ }
87
+ var itemStick = new Function('try{ return this.elementScripts.' + onClicks[str].trim().replace(/\(\s*\)/, '(\'' + button.fieldName1 + '\')') + '}catch(ex){return ' + onClicks[str].trim() + '}').call(this);
88
+ if (stick !== false) {
89
+ stick = itemStick;
90
+ }
91
+ }
92
+ }
93
+ if (stick !== false) {
94
+ var newRow;
95
+ switch (button.action) {
96
+ case 'delete':
97
+ rows.splice(index + 1, 1);
98
+ this.$emit("input", this.elementValue);
99
+ break;
100
+ case 'edit':
101
+ if (this.elementValue.RowEdit === '1') {
102
+ var itemEditRow = this.$common.deepClone(this.listEditRow);
103
+ if (itemEditRow[index + 1] === true) {
104
+ self.$refs[self.elementValue.Name].validate((valid, Obj) => {
105
+ if (valid) {
106
+ itemEditRow[index + 1] = !itemEditRow[index + 1];
107
+ }
108
+ self.listEditRow = itemEditRow;
109
+ });
110
+ }
111
+ else {
112
+ itemEditRow[index + 1] = !itemEditRow[index + 1];
113
+ self.listEditRow = itemEditRow;
114
+ }
115
+ }
116
+ else {
117
+ this.$set(this.editData, 'Fields', data.Row);
118
+ this.$set(this, 'editShow', true);
119
+ }
120
+ break;
121
+ case 'add':
122
+ if (this.elementValue.RowEdit === '1') {
123
+ newRow = this.$common.deepClone(rows[0]);
124
+ var i = rows.length;
125
+ rows.push(newRow);
126
+ var rowRules = [];
127
+ for (var j = 0; j < this.elementValue.Rows[i].Row.length; j++) {
128
+ var itemRule = this.$validate.getValidate(this.elementValue.Rows[i].Row[j], this.elementValue.Rows[i].Row);
129
+ if (this.elementValue.Rows[i].Row[j].mrf) {
130
+ var itemValid = this.$validate.dynamicRequiredList.call(this, this.elementValue.Rows[i].Row[j], i);
131
+ itemRule.push(itemValid);
132
+ }
133
+ rowRules.push(itemRule);
134
+ }
135
+ this.listRules.push(rowRules);
136
+ var itemEditRow = this.$common.deepClone(this.listEditRow);
137
+ itemEditRow[rows.length - 1]= true;
138
+ self.listEditRow = itemEditRow;
139
+ this.$emit("input", this.elementValue);
140
+ }
141
+ else {
142
+ newRow = this.$common.deepClone(rows[0]);
143
+ this.$set(this.editData, 'Fields', newRow.Row);
144
+ this.$set(this.editData, 'NewRow', true);
145
+ this.$set(this, 'editShow', true);
146
+ }
147
+ break;
148
+ default:
149
+ break;
150
+ }
151
+ }
152
+ },
153
+ editSave(data) {
154
+ if (data.NewRow === true) {
155
+ this.$set(this.editData, 'NewRow', false);
156
+ this.elementValue.Rows.push({ Row: this.$common.deepClone(data.Fields)});
157
+ }
158
+ else {
159
+ this.editData.Fields.forEach((value) => {
160
+ var updateField = data.Fields.find((uValue) => { return uValue.fieldName1 === value.fieldName1 && uValue.controlType === value.controlType });
161
+ if (updateField && typeof updateField.code1 !== 'undefined') {
162
+ this.$set(value, 'v1', updateField.code1);
163
+ this.$set(value, 'v2', updateField.v2);
164
+ this.$set(value, 'oldOptions', updateField.oldOptions);
165
+ }
166
+ });
167
+ }
168
+ this.$set(this, 'editShow', false);
169
+ this.$emit("input", this.elementValue);
170
+ },
171
+ getButtons(position) {
172
+ switch (position){
173
+ case 'top':
174
+ return this.elementValue.Button.filter((value) => { return value.position === 'top' });
175
+ case 'down':
176
+ return this.elementValue.Button.filter((value) => { return value.position === 'down' });
177
+ default:
178
+ return this.elementValue.Button.filter((value) => { return typeof value.position === 'undefined' || value.position === 'row' })
179
+ }
180
+ },
181
+ changeHandle(fieldName, field,index) {
182
+ if (typeof field.onChange !== 'undefined') {
183
+ this.elementScripts.formData.fieldsPath = 'elementValue.Rows[' + (index + 1) + "].Row";
184
+ var changes = field.onChange.split(';');
185
+ for (var str in changes) {
186
+ if (changes[str].trim() === '') {
187
+ continue;
188
+ }
189
+ eval('try{ this.elementScripts.' + changes[str].trim().replace(/\(\s*\)/, '(\'' + fieldName + '\')') + '}catch(ex){' + changes[str].trim() + '}');
190
+ }
191
+ }
192
+ }
193
+ },
194
+ created() {
195
+ if (this.inForm && this.elementValue.RowEdit === '1') {
196
+ for (var i = 1; i < this.elementValue.Rows.length; i++) {
197
+ var rowRules = [];
198
+ for (var j = 0; j < this.elementValue.Rows[i].Row.length; j++) {
199
+ var itemRule = this.$validate.getValidate(this.elementValue.Rows[i].Row[j], this.elementValue.Rows[i].Row);
200
+ if (this.elementValue.Rows[i].Row[j].mrf) {
201
+ var itemValid = this.$validate.dynamicRequiredList.call(this, this.elementValue.Rows[i].Row[j],i);
202
+ itemRule.push(itemValid);
203
+ }
204
+ rowRules.push(itemRule);
205
+ }
206
+ this.listRules.push(rowRules);
207
+ }
208
+ }
209
+ },
210
+ mounted() {
211
+ var self = this;
212
+ this.$nextTick(function () {
213
+ if (self.inForm && self.elementValue.RowEdit === '1') {
214
+ self.formRefs[self.elementValue.Name] = self.$refs[self.elementValue.Name];
215
+ }
216
+ if (typeof self.scripts !== 'undefined') {
217
+ self.elementScripts = Object.assign({}, self.scripts, self.elementScripts);
218
+ for (var func in self.elementScripts) {
219
+ if (typeof self.elementScripts[func] === 'function') {
220
+ self.editData.Scripts[func] = self.elementScripts[func];
221
+ }
222
+ }
223
+ self.elementScripts.formData = self.$common.formData();
224
+ self.formData = self.elementScripts.formData;
225
+ self.elementScripts.formData.self = self;
226
+ }
227
+ });
228
+ this.elementValue.Rows.forEach((value, index) => {
229
+ this.listEditRow[index] = false;
230
+ });
231
+ }
232
+ }
233
+ </script>
@@ -1,13 +1,13 @@
1
- import dynamicMo from './src/dynamicMo'
2
- import api from '../api/index'
3
-
4
- dynamicMo.install = function (Vue) {
5
- Vue.component(dynamicMo.name, dynamicMo);
6
- Vue.use(api);
7
- }
8
-
9
- if (typeof window !== 'undefined' && window.Vue) {
10
- window.Vue.use(dynamicMo);
11
- }
12
-
13
- export default dynamicMo;
1
+ import dynamicMo from './src/dynamicMo'
2
+ import api from '../api/index'
3
+
4
+ dynamicMo.install = function (Vue) {
5
+ Vue.component(dynamicMo.name, dynamicMo);
6
+ Vue.use(api);
7
+ }
8
+
9
+ if (typeof window !== 'undefined' && window.Vue) {
10
+ window.Vue.use(dynamicMo);
11
+ }
12
+
13
+ export default dynamicMo;