centaline-data-driven 1.1.55 → 1.1.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/.babelrc +12 -12
  2. package/.editorconfig +9 -9
  3. package/.gitattributes +63 -63
  4. package/.postcssrc.js +10 -10
  5. package/.vs/Centaline.Front_End.DataDriven/DesignTimeBuild/.dtbcache +0 -0
  6. package/.vs/Centaline.Front_End.DataDriven/v16/Server/sqlite3/db.lock +0 -0
  7. package/.vs/Centaline.Front_End.DataDriven/v16/Server/sqlite3/storage.ide +0 -0
  8. package/Centaline.Front_End.DataDriven.csproj +37 -37
  9. package/Centaline.Front_End.DataDriven.sln +25 -25
  10. package/Properties/launchSettings.json +26 -26
  11. package/README.md +140 -140
  12. package/build/build.js +41 -41
  13. package/build/centaline/centaline.path.js +59 -59
  14. package/build/centaline/webpack.centaline.conf.js +106 -106
  15. package/build/check-versions.js +54 -54
  16. package/build/utils.js +102 -102
  17. package/build/vue-loader.conf.js +22 -22
  18. package/build/webpack.base.conf.js +82 -82
  19. package/build/webpack.dev.conf.js +111 -111
  20. package/build/webpack.prod.conf.js +145 -145
  21. package/config/dev.env.js +12 -12
  22. package/config/index.js +73 -73
  23. package/config/prod.env.js +4 -4
  24. package/index.html +14 -14
  25. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.dgspec.json +73 -0
  26. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.g.props +29 -0
  27. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.g.targets +15 -0
  28. package/obj/Debug/netcoreapp2.1/Centaline.Front_End.DataDriven.AssemblyInfo.cs +23 -0
  29. package/obj/Debug/netcoreapp2.1/Centaline.Front_End.DataDriven.RazorAssemblyInfo.cs +20 -0
  30. package/obj/project.assets.json +11907 -0
  31. package/package.json +75 -75
  32. package/src/App.vue +10 -10
  33. package/src/Detail.vue +29 -26
  34. package/src/Edit.vue +32 -32
  35. package/src/Form.vue +45 -29
  36. package/src/SearchList.vue +41 -40
  37. package/src/SearchTree.vue +51 -51
  38. package/src/Tabs.vue +19 -19
  39. package/src/centaline/api/index.js +249 -249
  40. package/src/centaline/comfirm/index.js +11 -11
  41. package/src/centaline/comfirm/src/comfirm.vue +44 -44
  42. package/src/centaline/common/index.js +738 -738
  43. package/src/centaline/css/common.css +752 -748
  44. package/src/centaline/css/max.css +208 -208
  45. package/src/centaline/dialogList/index.js +11 -11
  46. package/src/centaline/dialogList/src/dialog.vue +210 -210
  47. package/src/centaline/dialogList/src/dialogList.vue +65 -65
  48. package/src/centaline/dialogList/src/dialogNew.vue +78 -78
  49. package/src/centaline/dialogList/src/drag.js +77 -77
  50. package/src/centaline/directives/index.js +23 -23
  51. package/src/centaline/dynamicBtn/index.js +11 -11
  52. package/src/centaline/dynamicBtn/src/dynamicBtn.vue +100 -100
  53. package/src/centaline/dynamicCb/index.js +11 -11
  54. package/src/centaline/dynamicCb/src/dynamicCb.vue +72 -72
  55. package/src/centaline/dynamicCheckbox/index.js +11 -11
  56. package/src/centaline/dynamicCheckbox/src/dynamicCheckbox.vue +128 -128
  57. package/src/centaline/dynamicComboBoxWithTextBox/index.js +11 -11
  58. package/src/centaline/dynamicComboBoxWithTextBox/src/dynamicComboBoxWithTextBox.vue +240 -240
  59. package/src/centaline/dynamicD/index.js +11 -11
  60. package/src/centaline/dynamicD/src/dynamicD.vue +92 -92
  61. package/src/centaline/dynamicDetail/index.js +10 -10
  62. package/src/centaline/dynamicDetail/src/dynamicDetail.vue +40 -40
  63. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailOFI.vue +1280 -1280
  64. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailRET.vue +1346 -1293
  65. package/src/centaline/dynamicDrop/index.js +11 -11
  66. package/src/centaline/dynamicDrop/src/dynamicDrop.vue +54 -54
  67. package/src/centaline/dynamicDtd/index.js +11 -11
  68. package/src/centaline/dynamicDtd/src/dynamicDtd.vue +125 -125
  69. package/src/centaline/dynamicDtd/src/dynamicDtdOld.vue +93 -93
  70. package/src/centaline/dynamicFile/index.js +11 -11
  71. package/src/centaline/dynamicFile/src/dynamicFile.vue +289 -288
  72. package/src/centaline/dynamicForm/index.js +24 -24
  73. package/src/centaline/dynamicForm/src/dynamicForm.vue +564 -564
  74. package/src/centaline/dynamicForm/src/dynamicFormList.vue +209 -209
  75. package/src/centaline/dynamicForm/src/dynamicFormListTable.vue +376 -376
  76. package/src/centaline/dynamicGp/index.js +11 -11
  77. package/src/centaline/dynamicGp/src/dynamicGp.vue +27 -27
  78. package/src/centaline/dynamicHyperLink/index.js +10 -10
  79. package/src/centaline/dynamicHyperLink/src/dynamicHyperLink.vue +54 -54
  80. package/src/centaline/dynamicInput/index.js +35 -35
  81. package/src/centaline/dynamicInput/src/dynamicInput.vue +35 -35
  82. package/src/centaline/dynamicInputNumber/index.js +11 -11
  83. package/src/centaline/dynamicInputNumber/src/dynamicInputNumber.vue +157 -157
  84. package/src/centaline/dynamicIti/index.js +11 -11
  85. package/src/centaline/dynamicIti/src/dynamicIti.vue +148 -148
  86. package/src/centaline/dynamicL/index.js +11 -11
  87. package/src/centaline/dynamicL/src/dynamicL.vue +37 -37
  88. package/src/centaline/dynamicLabel/index.js +11 -11
  89. package/src/centaline/dynamicLabel/src/dynamicLabel.vue +73 -73
  90. package/src/centaline/dynamicLs/index.js +22 -22
  91. package/src/centaline/dynamicLs/src/dynamicLs.vue +233 -233
  92. package/src/centaline/dynamicMo/index.js +13 -13
  93. package/src/centaline/dynamicMo/src/dynamicMo.vue +421 -421
  94. package/src/centaline/dynamicMt/index.js +11 -11
  95. package/src/centaline/dynamicMt/src/dynamicMt.vue +44 -44
  96. package/src/centaline/dynamicPlaceHolder/index.js +10 -10
  97. package/src/centaline/dynamicPlaceHolder/src/dynamicPlaceHolder.vue +29 -29
  98. package/src/centaline/dynamicPopupSearchList/index.js +11 -11
  99. package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchList.vue +157 -157
  100. package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchListTable.vue +239 -239
  101. package/src/centaline/dynamicRichText/index.js +11 -11
  102. package/src/centaline/dynamicRichText/src/dynamicRichText.vue +33 -33
  103. package/src/centaline/dynamicSearchList/index.js +11 -11
  104. package/src/centaline/dynamicSearchList/src/dynamicSearchCategory.vue +121 -121
  105. package/src/centaline/dynamicSearchList/src/dynamicSearchList.vue +135 -135
  106. package/src/centaline/dynamicSearchList/src/dynamicSearchScreen.vue +206 -206
  107. package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +1082 -1069
  108. package/src/centaline/dynamicSearchList/src/dynamicTableStatistics.vue +30 -30
  109. package/src/centaline/dynamicSearchList/src/dynamicTableTip.vue +46 -46
  110. package/src/centaline/dynamicSearchList/src/dynamicTableToolbar.vue +61 -61
  111. package/src/centaline/dynamicSeg/index.js +11 -11
  112. package/src/centaline/dynamicSeg/src/dynamicSeg.vue +100 -100
  113. package/src/centaline/dynamicSensitiveEye/index.js +11 -11
  114. package/src/centaline/dynamicSensitiveEye/src/dynamicSensitiveEye.vue +74 -74
  115. package/src/centaline/dynamicSo/index.js +14 -14
  116. package/src/centaline/dynamicSo/src/dynamicSo.vue +329 -328
  117. package/src/centaline/dynamicSo/src/dynamicSo/345/211/257/346/234/254.vue +69 -69
  118. package/src/centaline/dynamicSos/index.js +14 -14
  119. package/src/centaline/dynamicSos/src/dynamicSos - /345/244/215/345/210/266.vue" +223 -223
  120. package/src/centaline/dynamicSos/src/dynamicSos.vue +261 -260
  121. package/src/centaline/dynamicSw/index.js +11 -11
  122. package/src/centaline/dynamicSw/src/dynamicSw.vue +74 -74
  123. package/src/centaline/dynamicT/index.js +11 -11
  124. package/src/centaline/dynamicT/src/dynamicT.vue +79 -79
  125. package/src/centaline/dynamicTab/index.js +11 -11
  126. package/src/centaline/dynamicTab/src/dynamicTab.vue +49 -49
  127. package/src/centaline/dynamicTabs/index.js +11 -11
  128. package/src/centaline/dynamicTabs/src/dynamicTabs.vue +69 -69
  129. package/src/centaline/dynamicTags/index.js +13 -13
  130. package/src/centaline/dynamicTags/src/dynamicTags - /345/244/215/345/210/266.vue" +391 -391
  131. package/src/centaline/dynamicTags/src/dynamicTags.vue +427 -427
  132. package/src/centaline/dynamicTimeSelect/index.js +11 -11
  133. package/src/centaline/dynamicTimeSelect/src/dynamicTimeSelect.vue +141 -141
  134. package/src/centaline/dynamicTree/index.js +11 -11
  135. package/src/centaline/dynamicTree/src/dynamicSearchTree.vue +66 -66
  136. package/src/centaline/dynamicTree/src/dynamicTree.vue +233 -233
  137. package/src/centaline/dynamicTree/src/dynamicTreeList.vue +74 -74
  138. package/src/centaline/formData/index.js +290 -290
  139. package/src/centaline/imgPreview/index.js +42 -42
  140. package/src/centaline/imgPreview/src/imgPreview.vue +26 -26
  141. package/src/centaline/index.js +51 -51
  142. package/src/centaline/loader/index.js +157 -157
  143. package/src/centaline/loader/src/ctl/Base.js +270 -261
  144. package/src/centaline/loader/src/ctl/Button.js +44 -44
  145. package/src/centaline/loader/src/ctl/Cb.js +27 -27
  146. package/src/centaline/loader/src/ctl/Checkbox.js +107 -107
  147. package/src/centaline/loader/src/ctl/ComboBoxWithTextBox.js +162 -162
  148. package/src/centaline/loader/src/ctl/D.js +31 -31
  149. package/src/centaline/loader/src/ctl/Detail.js +228 -175
  150. package/src/centaline/loader/src/ctl/Dtd.js +115 -115
  151. package/src/centaline/loader/src/ctl/DtdOld.js +129 -129
  152. package/src/centaline/loader/src/ctl/File.js +292 -292
  153. package/src/centaline/loader/src/ctl/Form.js +380 -380
  154. package/src/centaline/loader/src/ctl/FormList.js +428 -428
  155. package/src/centaline/loader/src/ctl/GM.js +20 -20
  156. package/src/centaline/loader/src/ctl/Gp.js +9 -9
  157. package/src/centaline/loader/src/ctl/Hd.js +13 -13
  158. package/src/centaline/loader/src/ctl/HyperLink.js +24 -24
  159. package/src/centaline/loader/src/ctl/InputNumber.js +51 -51
  160. package/src/centaline/loader/src/ctl/Iti.js +108 -108
  161. package/src/centaline/loader/src/ctl/L.js +18 -18
  162. package/src/centaline/loader/src/ctl/Mo.js +183 -183
  163. package/src/centaline/loader/src/ctl/Mt.js +20 -20
  164. package/src/centaline/loader/src/ctl/PlaceHolder.js +15 -15
  165. package/src/centaline/loader/src/ctl/Router.js +273 -273
  166. package/src/centaline/loader/src/ctl/SearchCategory.js +54 -54
  167. package/src/centaline/loader/src/ctl/SearchScreen.js +236 -236
  168. package/src/centaline/loader/src/ctl/SearchTable.js +787 -772
  169. package/src/centaline/loader/src/ctl/Seg.js +37 -37
  170. package/src/centaline/loader/src/ctl/SensitiveEye.js +65 -65
  171. package/src/centaline/loader/src/ctl/So.js +117 -117
  172. package/src/centaline/loader/src/ctl/Sos.js +128 -128
  173. package/src/centaline/loader/src/ctl/Sw.js +27 -27
  174. package/src/centaline/loader/src/ctl/T.js +65 -65
  175. package/src/centaline/loader/src/ctl/Tabs.js +57 -57
  176. package/src/centaline/loader/src/ctl/Tags.js +191 -191
  177. package/src/centaline/loader/src/ctl/TimeSelect.js +87 -87
  178. package/src/centaline/loader/src/ctl/Tree.js +151 -151
  179. package/src/centaline/loader/src/ctl/Ttts.js +78 -78
  180. package/src/centaline/loader/src/ctl/lib/Enum.js +580 -563
  181. package/src/centaline/loader/src/ctl/lib/LibFunction.js +364 -364
  182. package/src/centaline/loader/src/ctl.js +36 -36
  183. package/src/centaline/mixins/dynamicElement.js +151 -151
  184. package/src/centaline/mixins/dynamicSelect.js +84 -84
  185. package/src/centaline/mixins/emitter.js +33 -33
  186. package/src/centaline/progress/index.js +11 -11
  187. package/src/centaline/progress/src/progress.vue +70 -70
  188. package/src/centaline/quickInput/src/quickInput.vue +64 -64
  189. package/src/centaline/selectOption/src/selectOption.vue +61 -61
  190. package/src/centaline/selectOption/src/selectOptionVertical.vue +80 -80
  191. package/src/centaline/templateControls/index.js +17 -17
  192. package/src/centaline/templateControls/src/dynamicTableA.vue +20 -20
  193. package/src/centaline/templateControls/src/dynamicTableCurrency.vue +62 -62
  194. package/src/centaline/templateControls/src/dynamicTableImg.vue +25 -25
  195. package/src/centaline/templates/index.js +34 -34
  196. package/src/centaline/templates/src/ContractSearch.js +67 -67
  197. package/src/centaline/templates/src/test.js +44 -44
  198. package/src/centaline/validate/index.js +332 -332
  199. package/src/main.js +55 -46
  200. package/src/router/index.js +44 -44
  201. package/wwwroot/static/centaline/centaline-data-driven.js +1 -1
  202. package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
@@ -1,209 +1,209 @@
1
- <template>
2
- <div class="ct-form-list" :class="model.attrs.size?'ct-form-list-'+model.attrs.size:''">
3
- <div style="padding-bottom:5px;text-align:right" class=" max-btn-add">
4
- <el-button type="success" size="mini" class="max-btn-add" icon="el-icon-circle-plus-outline" @click="addRow">新增</el-button>
5
- </div>
6
- <div style="position:relative">
7
- <div style="width:100%;overflow:auto;">
8
- <table border="0" cellpadding="0" cellspacing="0">
9
- <thead>
10
- <tr>
11
- <th v-for="i in model.rows[0].field" v-if="i.show !== false" :style="{'min-width':i.width+'px'}">
12
- {{i.label}}
13
- </th>
14
- </tr>
15
- </thead>
16
- <tbody>
17
- <tr v-for="(r,index) in model.rows" v-if="index > 0 && !r.deleted">
18
- <td v-for="(i, findex) in r.field" v-if="i.show !== false" :style="{'min-width':i.width+'px'}">
19
- <span v-if="r.isSet && model.rowEdit">
20
- <component ref="Fields" :is="i.is" :vmodel="model.currentRow.field[findex]" :api="model.OptApi"></component>
21
- </span>
22
- <span v-else>{{i.labelValue}}</span>
23
- <!--<span v-else><component ref="Fields" :is="i.is" :vmodel="i" :api="model.OptApi"></component></span>-->
24
- </td>
25
- <td v-if="r.edit || r.delete" style="visibility:hidden;width:85px;">
26
- <!--<el-button v-if="r.edit" type="primary" size="mini" icon="el-icon-edit"></el-button>
27
- <el-button v-if="r.delete" type="danger" size="mini" icon="el-icon-delete" @click=""></el-button>-->
28
- <span class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;">
29
- 修改
30
- </span>
31
- <span class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;">
32
- 删除
33
- </span>
34
- </td>
35
- </tr>
36
- </tbody>
37
- </table>
38
- </div>
39
- <table class="ct-form-fixed" border="0" cellpadding="0" cellspacing="0" style="" v-if="model.rows.findIndex((v1)=>{return v1.edit || v1.delete}) >= 0">
40
- <thead>
41
- <tr>
42
- <th style="width:85px;">
43
- 操作
44
- </th>
45
- </tr>
46
- </thead>
47
- <tbody>
48
- <tr v-for="(r,index) in model.rows" v-if="index > 0 && !r.deleted" :key="index">
49
- <td v-if="r.edit || r.delete">
50
- <!--<el-button v-if="r.edit" type="primary" size="mini" icon="el-icon-edit" @click="editRow(index)"></el-button>
51
- <el-button v-if="r.delete" type="danger" size="mini" icon="el-icon-delete" @click="deleteRow(index)"></el-button>-->
52
- <span v-if="r.edit && r.isSet" class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="pwdChange(r, index, 1)">
53
- 保存
54
- </span>
55
- <span v-else-if="r.edit" class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="pwdChange(r, index, 2)">
56
- 修改
57
- </span>
58
- <span v-if="r.delete && !r.isSet" class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;" @click="deleteRow(index)">
59
- 删除
60
- </span>
61
- <span v-else-if="r.delete" class="el-tag el-tag--mini" style="cursor: pointer;" @click="pwdChange(r, index, 3)">
62
- 取消
63
- </span>
64
- </td>
65
- <td v-else>
66
- &nbsp;
67
- </td>
68
- </tr>
69
- </tbody>
70
- </table>
71
- </div>
72
- </div>
73
- </template>
74
- <script>
75
- //Form内表格,已弃用
76
- export default {
77
- name: 'ct-form-list',
78
- props: {
79
- vmodel: Object,
80
- api: String
81
- },
82
- data() {
83
- return {
84
- model:null
85
- }
86
- },
87
- created() {
88
- this.model = this.vmodel;
89
- this.model.OptApi = this.api;
90
- },
91
- methods: {
92
- deleteRow(index) {
93
- var self = this;
94
- this.model.deleteRow(index, () => {
95
- self.$forceUpdate();
96
- });
97
- },
98
- editRow(index) {
99
- var self = this;
100
- this.model.editRow(index, () => {
101
- self.$forceUpdate();
102
- });
103
- },
104
- addRow() {
105
- var self = this;
106
- if (self.model.dialogEdit) {
107
- this.model.addRow(() => {
108
- self.$forceUpdate();
109
- });
110
- }
111
- else {
112
- for (let i of self.model.rows) {
113
- if (i.isSet) return self.$message.warning("请先保存当前编辑项");
114
- }
115
- let newRow = self.model.getCloneRowData(0);
116
- newRow.isSet = true;
117
- self.model.rows.push(newRow);
118
- self.model.currentRow = self.model.getCloneRowData(0);
119
- self.model.currentRow.isNew = true;
120
- self.model.currentRow.index = self.model.rows.length - 1;
121
- }
122
- },
123
- //修改
124
- pwdChange(row, index, cg) {
125
- let app = this;
126
- if (app.model.dialogEdit) {
127
- editRow(index);
128
- return;
129
- }
130
-
131
- //点击修改 判断是否已经保存所有操作
132
- for (let i of self.model.rows) {
133
- if (i.isSet && app.model.currentRow.index !== index) {
134
- app.$message.warning("请先保存当前编辑项");
135
- return false;
136
- }
137
- }
138
- //是否是取消操作
139
- if (cg === 3) {
140
- if (app.model.currentRow.isNew) app.model.rows.splice(index, 1);
141
- return row.isSet = !row.isSet;
142
- }
143
- //提交数据
144
- if (row.isSet) {//保存
145
- if (!app.model.isDuplicated(app.model.currentRow.data, app.model.currentRow.isNew ? -1 : index)) {
146
- let data = app.model.currentRow.field;
147
- for (let k in data) {
148
- row[k].value = data[k].value;
149
- row[k].value1 = data[k].value1;
150
- };
151
- if (app.model.currentRow.isNew) {
152
- app.model.addSourceRow(row);
153
- }
154
-
155
- row.isSet = false;
156
- }
157
- }
158
- else {//修改
159
- app.model.currentRow = app.model.getCloneRowData(index);
160
- app.model.currentRow.isNew = false;
161
- app.model.currentRow.index = index;
162
- row.isSet = true;
163
- }
164
- },
165
- }
166
- }
167
- </script>
168
- <style>
169
- .ct-form-list {
170
- position:relative;
171
- }
172
-
173
- .ct-form-list table {
174
- border-top: 1px solid #ebeef5;
175
- border-left: 1px solid #ebeef5;
176
- min-width: 100%;
177
- background-color:#ffffff;
178
- }
179
- .ct-form-list table th, .ct-form-list table td {
180
- word-wrap: break-word;
181
- white-space: nowrap;
182
- min-width: 50px;
183
- padding: 5px 10px;
184
- border-bottom: 1px solid #ebeef5;
185
- border-right: 1px solid #ebeef5;
186
- position:relative;
187
- }
188
- .ct-form-list.ct-form-list-mini, .ct-form-list.ct-form-list-mini td {
189
- min-height: 28px;
190
- line-height: 26px;
191
- font-size: 12px;
192
- }
193
- .ct-form-list.ct-form-list-small, .ct-form-list.ct-form-list-small td {
194
- height: 32px;
195
- line-height: 32px;
196
- font-size: 13px;
197
- }
198
- .ct-form-list.ct-form-list-medium, .ct-form-list.ct-form-list-medium td {
199
- height: 36px;
200
- line-height: 36px;
201
- font-size: 14px;
202
- }
203
- .ct-form-fixed {
204
- position: absolute;
205
- top: 0px;
206
- right: 0px;
207
- min-width: unset !important;
208
- }
209
- </style>
1
+ <template>
2
+ <div class="ct-form-list" :class="model.attrs.size?'ct-form-list-'+model.attrs.size:''">
3
+ <div style="padding-bottom:5px;text-align:right" class=" max-btn-add">
4
+ <el-button type="success" size="mini" class="max-btn-add" icon="el-icon-circle-plus-outline" @click="addRow">新增</el-button>
5
+ </div>
6
+ <div style="position:relative">
7
+ <div style="width:100%;overflow:auto;">
8
+ <table border="0" cellpadding="0" cellspacing="0">
9
+ <thead>
10
+ <tr>
11
+ <th v-for="i in model.rows[0].field" v-if="i.show !== false" :style="{'min-width':i.width+'px'}">
12
+ {{i.label}}
13
+ </th>
14
+ </tr>
15
+ </thead>
16
+ <tbody>
17
+ <tr v-for="(r,index) in model.rows" v-if="index > 0 && !r.deleted">
18
+ <td v-for="(i, findex) in r.field" v-if="i.show !== false" :style="{'min-width':i.width+'px'}">
19
+ <span v-if="r.isSet && model.rowEdit">
20
+ <component ref="Fields" :is="i.is" :vmodel="model.currentRow.field[findex]" :api="model.OptApi"></component>
21
+ </span>
22
+ <span v-else>{{i.labelValue}}</span>
23
+ <!--<span v-else><component ref="Fields" :is="i.is" :vmodel="i" :api="model.OptApi"></component></span>-->
24
+ </td>
25
+ <td v-if="r.edit || r.delete" style="visibility:hidden;width:85px;">
26
+ <!--<el-button v-if="r.edit" type="primary" size="mini" icon="el-icon-edit"></el-button>
27
+ <el-button v-if="r.delete" type="danger" size="mini" icon="el-icon-delete" @click=""></el-button>-->
28
+ <span class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;">
29
+ 修改
30
+ </span>
31
+ <span class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;">
32
+ 删除
33
+ </span>
34
+ </td>
35
+ </tr>
36
+ </tbody>
37
+ </table>
38
+ </div>
39
+ <table class="ct-form-fixed" border="0" cellpadding="0" cellspacing="0" style="" v-if="model.rows.findIndex((v1)=>{return v1.edit || v1.delete}) >= 0">
40
+ <thead>
41
+ <tr>
42
+ <th style="width:85px;">
43
+ 操作
44
+ </th>
45
+ </tr>
46
+ </thead>
47
+ <tbody>
48
+ <tr v-for="(r,index) in model.rows" v-if="index > 0 && !r.deleted" :key="index">
49
+ <td v-if="r.edit || r.delete">
50
+ <!--<el-button v-if="r.edit" type="primary" size="mini" icon="el-icon-edit" @click="editRow(index)"></el-button>
51
+ <el-button v-if="r.delete" type="danger" size="mini" icon="el-icon-delete" @click="deleteRow(index)"></el-button>-->
52
+ <span v-if="r.edit && r.isSet" class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="pwdChange(r, index, 1)">
53
+ 保存
54
+ </span>
55
+ <span v-else-if="r.edit" class="el-tag el-tag--info el-tag--mini" style="cursor: pointer;" @click="pwdChange(r, index, 2)">
56
+ 修改
57
+ </span>
58
+ <span v-if="r.delete && !r.isSet" class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;" @click="deleteRow(index)">
59
+ 删除
60
+ </span>
61
+ <span v-else-if="r.delete" class="el-tag el-tag--mini" style="cursor: pointer;" @click="pwdChange(r, index, 3)">
62
+ 取消
63
+ </span>
64
+ </td>
65
+ <td v-else>
66
+ &nbsp;
67
+ </td>
68
+ </tr>
69
+ </tbody>
70
+ </table>
71
+ </div>
72
+ </div>
73
+ </template>
74
+ <script>
75
+ //Form内表格,已弃用
76
+ export default {
77
+ name: 'ct-form-list',
78
+ props: {
79
+ vmodel: Object,
80
+ api: String
81
+ },
82
+ data() {
83
+ return {
84
+ model:null
85
+ }
86
+ },
87
+ created() {
88
+ this.model = this.vmodel;
89
+ this.model.OptApi = this.api;
90
+ },
91
+ methods: {
92
+ deleteRow(index) {
93
+ var self = this;
94
+ this.model.deleteRow(index, () => {
95
+ self.$forceUpdate();
96
+ });
97
+ },
98
+ editRow(index) {
99
+ var self = this;
100
+ this.model.editRow(index, () => {
101
+ self.$forceUpdate();
102
+ });
103
+ },
104
+ addRow() {
105
+ var self = this;
106
+ if (self.model.dialogEdit) {
107
+ this.model.addRow(() => {
108
+ self.$forceUpdate();
109
+ });
110
+ }
111
+ else {
112
+ for (let i of self.model.rows) {
113
+ if (i.isSet) return self.$message.warning("请先保存当前编辑项");
114
+ }
115
+ let newRow = self.model.getCloneRowData(0);
116
+ newRow.isSet = true;
117
+ self.model.rows.push(newRow);
118
+ self.model.currentRow = self.model.getCloneRowData(0);
119
+ self.model.currentRow.isNew = true;
120
+ self.model.currentRow.index = self.model.rows.length - 1;
121
+ }
122
+ },
123
+ //修改
124
+ pwdChange(row, index, cg) {
125
+ let app = this;
126
+ if (app.model.dialogEdit) {
127
+ editRow(index);
128
+ return;
129
+ }
130
+
131
+ //点击修改 判断是否已经保存所有操作
132
+ for (let i of self.model.rows) {
133
+ if (i.isSet && app.model.currentRow.index !== index) {
134
+ app.$message.warning("请先保存当前编辑项");
135
+ return false;
136
+ }
137
+ }
138
+ //是否是取消操作
139
+ if (cg === 3) {
140
+ if (app.model.currentRow.isNew) app.model.rows.splice(index, 1);
141
+ return row.isSet = !row.isSet;
142
+ }
143
+ //提交数据
144
+ if (row.isSet) {//保存
145
+ if (!app.model.isDuplicated(app.model.currentRow.data, app.model.currentRow.isNew ? -1 : index)) {
146
+ let data = app.model.currentRow.field;
147
+ for (let k in data) {
148
+ row[k].value = data[k].value;
149
+ row[k].value1 = data[k].value1;
150
+ };
151
+ if (app.model.currentRow.isNew) {
152
+ app.model.addSourceRow(row);
153
+ }
154
+
155
+ row.isSet = false;
156
+ }
157
+ }
158
+ else {//修改
159
+ app.model.currentRow = app.model.getCloneRowData(index);
160
+ app.model.currentRow.isNew = false;
161
+ app.model.currentRow.index = index;
162
+ row.isSet = true;
163
+ }
164
+ },
165
+ }
166
+ }
167
+ </script>
168
+ <style>
169
+ .ct-form-list {
170
+ position:relative;
171
+ }
172
+
173
+ .ct-form-list table {
174
+ border-top: 1px solid #ebeef5;
175
+ border-left: 1px solid #ebeef5;
176
+ min-width: 100%;
177
+ background-color:#ffffff;
178
+ }
179
+ .ct-form-list table th, .ct-form-list table td {
180
+ word-wrap: break-word;
181
+ white-space: nowrap;
182
+ min-width: 50px;
183
+ padding: 5px 10px;
184
+ border-bottom: 1px solid #ebeef5;
185
+ border-right: 1px solid #ebeef5;
186
+ position:relative;
187
+ }
188
+ .ct-form-list.ct-form-list-mini, .ct-form-list.ct-form-list-mini td {
189
+ min-height: 28px;
190
+ line-height: 26px;
191
+ font-size: 12px;
192
+ }
193
+ .ct-form-list.ct-form-list-small, .ct-form-list.ct-form-list-small td {
194
+ height: 32px;
195
+ line-height: 32px;
196
+ font-size: 13px;
197
+ }
198
+ .ct-form-list.ct-form-list-medium, .ct-form-list.ct-form-list-medium td {
199
+ height: 36px;
200
+ line-height: 36px;
201
+ font-size: 14px;
202
+ }
203
+ .ct-form-fixed {
204
+ position: absolute;
205
+ top: 0px;
206
+ right: 0px;
207
+ min-width: unset !important;
208
+ }
209
+ </style>