ocpview-plus 1.3.15 → 1.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/README.md +55 -43
  2. package/dist/ocpviewplus.min.esm.js +574 -482
  3. package/dist/ocpviewplus.min.js +9 -9
  4. package/dist/style.css +1 -1
  5. package/dist/styles/efviewplus.css +1 -1
  6. package/package.json +146 -146
  7. package/src/components/base/ContractPrintMixins.js +30 -30
  8. package/src/components/base/controlbase.vue +190 -190
  9. package/src/components/base/controlbox.vue +102 -102
  10. package/src/components/base/index.js +2 -2
  11. package/src/components/base/load.js +19 -19
  12. package/src/components/base/probase.js +220 -220
  13. package/src/components/base/size.js +78 -78
  14. package/src/components/billbox/billbox.vue +67 -67
  15. package/src/components/billbox/index.js +1 -1
  16. package/src/components/cascaderbox/cascaderbox.vue +184 -184
  17. package/src/components/cascaderbox/index.js +2 -2
  18. package/src/components/checkbox/checkbox.vue +75 -75
  19. package/src/components/checkbox/checkgroupbox.vue +103 -103
  20. package/src/components/checkbox/index.js +2 -2
  21. package/src/components/colorbox/colorbox.vue +43 -43
  22. package/src/components/colorbox/index.js +1 -1
  23. package/src/components/combobox/combobox.vue +219 -219
  24. package/src/components/combobox/index.js +1 -1
  25. package/src/components/conditionbox/conditionbase.vue +194 -194
  26. package/src/components/conditionbox/conditionbox.vue +62 -62
  27. package/src/components/conditionbox/conditionfilterbox.vue +479 -479
  28. package/src/components/conditionbox/conditionselectorbox.vue +237 -237
  29. package/src/components/conditionbox/index.js +4 -4
  30. package/src/components/conditionbox/queryconditionbox.vue +25 -25
  31. package/src/components/conditionbox/queryconditionboxbase.vue +123 -123
  32. package/src/components/conditionbox/searchconditionbox.vue +113 -113
  33. package/src/components/conditionbox/searchgrid.vue +391 -391
  34. package/src/components/datebox/DateBoxV1.vue +22 -22
  35. package/src/components/datebox/datebox.vue +129 -129
  36. package/src/components/datebox/daterangebox.vue +154 -154
  37. package/src/components/datebox/index.js +5 -5
  38. package/src/components/form/baseform.vue +676 -676
  39. package/src/components/form/detailsbox.vue +487 -487
  40. package/src/components/form/formbox.vue +28 -28
  41. package/src/components/form/formcardbox.vue +267 -267
  42. package/src/components/form/formcardbox2.vue +228 -228
  43. package/src/components/form/formcardgroupbox.vue +251 -251
  44. package/src/components/form/formcompro.js +18 -18
  45. package/src/components/form/formdetail.vue +128 -128
  46. package/src/components/form/formdetailtwo.vue +302 -302
  47. package/src/components/form/index.js +9 -9
  48. package/src/components/form/toolanchor.js +45 -45
  49. package/src/components/form/workform.vue +167 -167
  50. package/src/components/grid/basegrid.vue +1062 -1062
  51. package/src/components/grid/editgrid.vue +51 -51
  52. package/src/components/grid/editgridbase.vue +1062 -1062
  53. package/src/components/grid/editgridcard.vue +193 -193
  54. package/src/components/grid/expandrow.vue +137 -137
  55. package/src/components/grid/index.js +5 -5
  56. package/src/components/grid/viewgrid.vue +121 -121
  57. package/src/components/grid/viewgridbase.vue +1286 -1286
  58. package/src/components/icon/common-icon.vue +53 -53
  59. package/src/components/icon/eicon.vue +28 -28
  60. package/src/components/icon/icons.vue +42 -42
  61. package/src/components/icon/index.js +1 -1
  62. package/src/components/label/index.js +2 -2
  63. package/src/components/label/showtext.vue +94 -94
  64. package/src/components/load/loadcartoon.vue +227 -227
  65. package/src/components/map/index.js +1 -1
  66. package/src/components/map/mapbox.vue +348 -348
  67. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanel.vue +184 -184
  68. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTable.vue +838 -838
  69. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlbox.vue +126 -126
  70. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlboxNumberbox.vue +27 -27
  71. package/src/components/masterplate/RewriteBillListDetails/BillListPanel.vue +126 -126
  72. package/src/components/masterplate/RewriteBillListDetails/BillListPanelQueryBar.vue +280 -280
  73. package/src/components/masterplate/RewriteBillListDetails/BillListPanelTable.vue +346 -346
  74. package/src/components/masterplate/RewriteBillListDetails/index.vue +325 -325
  75. package/src/components/masterplate/RewriteBillListDetails/mixins/useVxeGridEditTypeKeydownEventHook.js +251 -251
  76. package/src/components/masterplate/RewriteListdetails/BillListPanelV2.vue +115 -115
  77. package/src/components/masterplate/RewriteListdetails/BillListPanelV2QueryBar.vue +24 -24
  78. package/src/components/masterplate/RewriteListdetails/BillListPanelV3.vue +121 -121
  79. package/src/components/masterplate/RewriteListdetails/BillListPanelV3QueryBar.vue +275 -275
  80. package/src/components/masterplate/RewriteListdetails/indexV2.vue +320 -320
  81. package/src/components/masterplate/RewriteListdetails/indexV3.vue +331 -331
  82. package/src/components/masterplate/appendix.vue +586 -586
  83. package/src/components/masterplate/approval.vue +863 -863
  84. package/src/components/masterplate/base.vue +1028 -1028
  85. package/src/components/masterplate/billasyncimport.vue +614 -614
  86. package/src/components/masterplate/billconditionbox.vue +223 -223
  87. package/src/components/masterplate/billconditionsbox.vue +427 -427
  88. package/src/components/masterplate/billdetailform.vue +1028 -1028
  89. package/src/components/masterplate/billimport.vue +301 -301
  90. package/src/components/masterplate/billquerygrid.vue +391 -391
  91. package/src/components/masterplate/billsinglegrid.vue +234 -234
  92. package/src/components/masterplate/birtreport.vue +185 -185
  93. package/src/components/masterplate/contractappendix.vue +688 -688
  94. package/src/components/masterplate/detailbtntoolbar.vue +311 -311
  95. package/src/components/masterplate/detailsbox.vue +386 -386
  96. package/src/components/masterplate/editgridcard.vue +292 -292
  97. package/src/components/masterplate/editgridcard2.vue +127 -127
  98. package/src/components/masterplate/formcard.vue +105 -105
  99. package/src/components/masterplate/formcardgroupbox.vue +167 -167
  100. package/src/components/masterplate/formdetailtwo.vue +366 -366
  101. package/src/components/masterplate/gridcolset.vue +226 -226
  102. package/src/components/masterplate/index.js +54 -54
  103. package/src/components/masterplate/layouttemplate.vue +51 -51
  104. package/src/components/masterplate/leftlistrightdetails.vue +581 -581
  105. package/src/components/masterplate/leftlistrightlist.vue +464 -464
  106. package/src/components/masterplate/lefttreerightdetails.vue +636 -636
  107. package/src/components/masterplate/levelreport.vue +510 -510
  108. package/src/components/masterplate/listbtntoolbar.vue +276 -276
  109. package/src/components/masterplate/listdetails.vue +768 -768
  110. package/src/components/masterplate/operlog.vue +272 -272
  111. package/src/components/masterplate/options.vue +110 -110
  112. package/src/components/masterplate/page.vue +102 -102
  113. package/src/components/masterplate/promptmessage.vue +73 -73
  114. package/src/components/masterplate/querybar.vue +490 -490
  115. package/src/components/masterplate/report.vue +357 -357
  116. package/src/components/masterplate/rowbtntoolbar.vue +126 -126
  117. package/src/components/masterplate/simpletree.vue +137 -137
  118. package/src/components/masterplate/simpleviewgrid.vue +144 -144
  119. package/src/components/mychart/bar/bar.vue +201 -201
  120. package/src/components/mychart/basechart.vue +190 -190
  121. package/src/components/mychart/complexmychart/barline.vue +153 -153
  122. package/src/components/mychart/gauge/gauge.vue +82 -82
  123. package/src/components/mychart/index.js +8 -8
  124. package/src/components/mychart/line/line.vue +201 -201
  125. package/src/components/mychart/liquidfill/liquidfill.vue +108 -108
  126. package/src/components/mychart/pie/pie.vue +95 -95
  127. package/src/components/mychart/radar/radar.vue +121 -121
  128. package/src/components/mychart/scatter/scatter.vue +75 -75
  129. package/src/components/numberbox/NumberBoxV1.vue +39 -39
  130. package/src/components/numberbox/append.js +11 -11
  131. package/src/components/numberbox/index.js +4 -4
  132. package/src/components/numberbox/numberbox.vue +302 -302
  133. package/src/components/numberbox/numberrangebox.vue +422 -422
  134. package/src/components/picturebox/filebox.vue +369 -369
  135. package/src/components/picturebox/index.js +2 -2
  136. package/src/components/picturebox/picturebox.vue +541 -541
  137. package/src/components/picturebox/uploadbox.vue +164 -164
  138. package/src/components/poptagbox/index.js +1 -1
  139. package/src/components/poptagbox/poptagbox.vue +388 -388
  140. package/src/components/poptextbox/index.js +1 -1
  141. package/src/components/poptextbox/poptextbox.vue +624 -624
  142. package/src/components/radiobox/index.js +1 -1
  143. package/src/components/radiobox/radiogroupbox.vue +75 -75
  144. package/src/components/richtextbox/editor.vue +150 -150
  145. package/src/components/richtextbox/index.js +1 -1
  146. package/src/components/richtextbox/richtextbox.vue +448 -448
  147. package/src/components/textbox/index.js +1 -1
  148. package/src/components/textbox/textbox.vue +97 -97
  149. package/src/components/timebox/index.js +1 -1
  150. package/src/components/timebox/timebox.vue +75 -75
  151. package/src/components/toolbar/ebutton.vue +169 -169
  152. package/src/components/toolbar/index.js +3 -3
  153. package/src/components/toolbar/toolbar.vue +445 -445
  154. package/src/components/tree/CompatTree.vue +297 -297
  155. package/src/components/tree/basetree.vue +1098 -1098
  156. package/src/components/tree/index.js +2 -2
  157. package/src/components/tree/treedata.vue +53 -53
  158. package/src/components/tree/treedatabase.vue +189 -189
  159. package/src/components/upload/billimport.vue +233 -233
  160. package/src/components/upload/index.js +1 -1
  161. package/src/components/videobox/index.js +1 -1
  162. package/src/components/videobox/uploadbox.vue +148 -148
  163. package/src/components/videobox/videobox.vue +503 -503
  164. package/src/components/wrichtextbox/editor.vue +219 -219
  165. package/src/components/wrichtextbox/index.js +1 -1
  166. package/src/components/wrichtextbox/wrichtextbox.vue +62 -62
  167. package/src/index.js +231 -231
  168. package/src/locale/format.js +51 -51
  169. package/src/locale/index.js +63 -63
  170. package/src/locale/lang/zh-CN.js +123 -123
  171. package/src/locale/lang/zh-TW.js +114 -114
  172. package/src/locale/lang/zh-UG.js +115 -115
  173. package/src/locale/lang.js +15 -15
  174. package/src/method/case/case.js +1274 -1274
  175. package/src/method/config/queryconfig.js +24 -24
  176. package/src/method/const/const.js +815 -815
  177. package/src/method/index.js +7 -7
  178. package/src/plugins/theme/theme-variable.css +114 -114
  179. package/src/plugins/vxeTable/index.js +241 -241
  180. package/src/plugins/vxeTable/renderer/components/TableFilterInput.vue +51 -51
  181. package/src/plugins/vxeTable/renderer/filter.js +32 -32
  182. package/src/static/excel/exportexcel.js +626 -626
  183. package/src/static/iview/coustom.js +462 -462
  184. package/src/store/index.js +18 -18
  185. package/src/store/modules/app.js +53 -53
  186. package/src/styles/README.md +3 -3
  187. package/src/styles/common.less +80 -80
  188. package/src/styles/components/anchor.less +74 -74
  189. package/src/styles/components/approval.less +135 -135
  190. package/src/styles/components/button.less +208 -208
  191. package/src/styles/components/card.less +51 -51
  192. package/src/styles/components/content.less +38 -38
  193. package/src/styles/components/font.less +313 -313
  194. package/src/styles/components/form.less +71 -71
  195. package/src/styles/components/iconfont/fonts/iconfont.less +1384 -1384
  196. package/src/styles/components/iconfont/fonts/iconfont.svg +703 -703
  197. package/src/styles/components/index.less +16 -16
  198. package/src/styles/components/input.less +290 -290
  199. package/src/styles/components/modal.less +203 -203
  200. package/src/styles/components/page.less +340 -340
  201. package/src/styles/components/select.less +361 -361
  202. package/src/styles/components/steps.less +367 -367
  203. package/src/styles/components/table.less +544 -544
  204. package/src/styles/components/tabs.less +249 -249
  205. package/src/styles/components/upload.less +82 -82
  206. package/src/styles/custom.less +67 -67
  207. package/src/styles/index.less +6 -6
  208. package/src/styles/pack.less +6 -6
  209. package/src/utils/EfuMessenger.js +155 -155
  210. package/src/utils/assist.js +353 -353
  211. package/src/utils/index.js +1 -1
  212. package/src/utils/random_str.js +10 -10
  213. package/src/components/masterplate/detailgridbox.vue +0 -386
@@ -1,367 +1,367 @@
1
- <template>
2
- <Card :padding="0" style="padding-left:20px;padding-right:20px" dis-hover>
3
- <p @click="toggle" style="cursor:pointer;margin-top: 14px;margin-bottom:14px;" >
4
- <template v-if="!isAdd">
5
- <Row type="flex" :gutter="0" align="middle">
6
- <Col span="18">
7
- <Icon custom='iconfont icon-custom-pack' color="#f3b352" v-show="showForm" size="14" />
8
- <Icon v-show="!showForm" color="#f3b352" custom='iconfont icon-custom-spread' size="14"/>
9
- <span style="margin-left:16px;font-size: 14px;font-weight:bold" v-text="title" />
10
- </Col>
11
- <Col span="6" v-show="showForm" >
12
- <Row type="flex" justify="end" align="middle" :gutter="0">
13
- <Col>
14
- <Button style="float:right" size="small" customIcon="iconfont icon-custom-recallcard" type="text" :disabled="btnReadOnly" @click.stop="resetRow" >撤消</Button>
15
- </Col>
16
- <Col >
17
- <Divider type="vertical" style="margin: 0 15px 0 15px;float:right"/>
18
- </Col>
19
- <Col>
20
- <Button style="float:right" size="small" customIcon="iconfont icon-custom-delcard" type="text" :disabled="btnReadOnly" @click.stop="delBatchRow">删除</Button>
21
- </Col>
22
- </Row>
23
- </Col>
24
- </Row>
25
- <Divider type="vertical" style="margin: 0 15px 0 15px;float:right"/>
26
- </template>
27
- <template v-else>
28
- <Badge status="processing" text="新增项" />
29
- </template>
30
- </p>
31
- <Divider v-show="showForm" style="margin-top:0px;margin-bottom:10px;"/>
32
- <div v-show="showForm" style="padding-left:10px">
33
- <Formcard ref="form" :key="myConfig.name" :config="myConfig" :dictData="dictData" @doAction="doAction"/>
34
- <Divider v-show="showChildrenGrid" style="margin-bottom:10px;margin-top: 10px;"/>
35
- <EditGridCard v-show="showChildrenGrid" ref="grid" :config="gridConfig" :dictData="dictData" >
36
- <template #header>
37
- <Row type="flex" justify="start" align="middle" :gutter="0" style="margin-bottom: 10px;display: flex;">
38
- <Col v-if="showAddBtn">
39
- <Button customIcon="iconfont icon-custom-rowadd" type="text" size="small" :disabled="btnReadOnly" @click="addRow" >添加</Button>
40
- </Col>
41
- <Col v-if="showAddBtn && showDelBatchBtn">
42
- <Divider type="vertical" style="margin: 0 15px 0 15px;height: 20px"/>
43
- </Col>
44
- <Col v-if="showDelBatchBtn">
45
- <Button customIcon="iconfont icon-custom-rowdel" size="small" type="text" :disabled="btnReadOnly" @click="delRow">删除</Button>
46
- </Col>
47
- <Col class="col-align" v-if="showZoom" style="flex:1;text-align: right;">
48
- <Button type="ghost" shape="circle" :customIcon="[isFull ? 'iconfont icon-custom-minimize' : 'iconfont icon-custom-fullscreen']" @click="setZoom"></Button>
49
- </Col>
50
- </Row>
51
- </template>
52
- </EditGridCard>
53
- <Row v-if="isAdd" type="flex" justify="end" align="middle" style="margin-top: 10px;margin-bottom: 10px;" :gutter="16">
54
- <Col>
55
- <Button style="width:84px" @click="cancel">取消</Button>
56
- </Col>
57
- <Col>
58
- <Button style="width:84px" type="info" @click="save">确认</Button>
59
- </Col>
60
- </Row>
61
- </div>
62
- </Card>
63
- </template>
64
-
65
- <script>
66
- import Formcard from './formcard.vue';
67
- import EditGridCard from './editgridcard.vue';
68
- export default {
69
- name:'mformdetail',
70
- components:{Formcard,EditGridCard},
71
- data () {
72
- return {
73
- editFlag:false,
74
- showChildrenGrid:false,
75
- gridConfig:{},
76
- myConfig:{},
77
- readOnly:false,
78
- btnReadOnly:false,
79
- showAddBtn:true,
80
- showDelBatchBtn:true,
81
- showForm:true,
82
- showZoom: false,
83
- isFull: false,
84
- };
85
- },
86
- props:{
87
- config:{
88
- type:Object,
89
- default:null
90
- },
91
- valueData:{
92
- type:Object,
93
- default () {
94
- return {};
95
- }
96
- },
97
- dictData: {
98
- type: Object,
99
- default:null
100
- },
101
- index:{
102
- type:String,
103
- default:''
104
- },
105
- curlIndex:{
106
- type:[String,Number],
107
- default:''
108
- },
109
- isAdd:{
110
- type:Boolean,
111
- default:false
112
- }
113
- },
114
- created () {
115
- this.init();
116
- },
117
- computed: {
118
- title() {
119
- let title = '标题';
120
- if (this.config.titleName) {
121
- if (this.valueData[this.config.titleName]) {
122
- title = this.valueData[this.config.titleName];
123
- }
124
- }
125
- let titlePrefix = '#';
126
- if (this.config.titlePrefix) {
127
- titlePrefix = this.config.titlePrefix;
128
- }
129
- let resultTitle = titlePrefix + (Number(this.index)+1) + ' ' + title;
130
- return resultTitle;
131
- }
132
- },
133
- methods:{
134
- init () {
135
- this.myConfig = Object.assign({},this.myConfig, this.config.formConfig);
136
- if (this.config.showEffectValue !== undefined) {
137
- this.myConfig.showEffectValue = this.config.showEffectValue;
138
- }
139
- this.myConfig.modetype = '3';
140
- if (this.config.gridConfig !== undefined && this.config.gridConfig.items && this.config.gridConfig.items.length > 0) {
141
- Object.assign(this.gridConfig, this.config.gridConfig);
142
- this.gridConfig.showCheckBox = true;
143
- if (this.config.showEffectValue !== undefined) {
144
- this.gridConfig.showEffectValue = this.config.showEffectValue;
145
- }
146
- this.gridConfig.modetype = '3';
147
- if (this.gridConfig.showAddBtn !== undefined) {
148
- this.showAddBtn = this.gridConfig.showAddBtn;
149
- }
150
- if (this.gridConfig.showDelBatchBtn !== undefined) {
151
- this.showDelBatchBtn = this.gridConfig.showDelBatchBtn;
152
- }
153
- if (this.gridConfig.showZoom !== undefined) {
154
- this.showZoom = this.gridConfig.showZoom;
155
- }
156
- this.gridConfig.addRowBefore = this.addRowBefore;
157
- this.gridConfig.delRowBefore = this.delRowBefore;
158
- this.showChildrenGrid = true;
159
- if (this.gridConfig.height === undefined) {
160
- this.gridConfig.height = 200;
161
- }
162
- } else {
163
- this.showChildrenGrid = false;
164
- }
165
- },
166
- toggle () {
167
- this.showForm = !this.showForm;
168
- },
169
- addRowBefore(e) {
170
- if (this.config.gridConfig.addRowBefore) {
171
- e.form = this.$refs.form.getData();
172
- return this.config.gridConfig.addRowBefore(e);
173
- }
174
- return true;
175
- },
176
- delRowBefore(e) {
177
- if (this.config.gridConfig.delRowBefore) {
178
- e.form = this.$refs.form.getData();
179
- return this.config.gridConfig.delRowBefore(e);
180
- }
181
- return true;
182
- },
183
- edit () {
184
- this.editFlag = true;
185
- if (this.$refs.form) {
186
- this.$refs.form.setFormReadOnly(false);
187
- }
188
- if (this.$refs.grid) {
189
- this.$refs.grid.setReadOnly(false);
190
- }
191
- let obj = {};
192
- obj.name = 'editForm';
193
- obj.para = {};
194
- obj.para.curlIndex = this.curlIndex;
195
- obj.para.formObject = this.$refs.form;
196
- obj.para.form = this.$refs.form.getData();
197
- if (this.$refs.grid) {
198
- obj.para.gridObject = this.$refs.grid;
199
- }
200
- this.$emit('doAction', obj);
201
- },
202
- del () {
203
- let obj = {};
204
- obj.name = 'delForm';
205
- obj.para = {};
206
- obj.para.curlIndex = this.curlIndex;
207
- this.$emit('doAction', obj);
208
- },
209
- checkValidate () {
210
- this.$refs.form.checkValidate();
211
- if (this.$refs.form.isError()) {
212
- return true;
213
- } else {
214
- return false;
215
- }
216
- },
217
- save () {
218
- this.$refs.form.checkValidate();
219
- if (this.$refs.form.isError()) {
220
- return false;
221
- }
222
- let obj = {};
223
- obj.name = 'saveForm';
224
- obj.para = {};
225
- obj.para.curlIndex = this.curlIndex;
226
- obj.para.data = this.$refs.form.getData();
227
- if (this.showChildrenGrid && this.$refs.grid) {
228
- if (this.$refs.grid.checkValidate()) {
229
- return false;
230
- }
231
- obj.para.data[this.config.gridName] = this.$refs.grid.getChangeData();
232
- if (obj.para.data[this.config.gridName].length > 0 && obj.para.data.flag === undefined) {
233
- obj.para.data.flag = 'U';
234
- }
235
- }
236
- if (!this.isAdd) {
237
- this.editFlag = false;
238
- }
239
- this.$emit('doAction', obj);
240
- },
241
- getChangeData () {
242
- let data = this.$refs.form.getData();
243
- if (data.flag === undefined) {
244
- data.flag = 'U';
245
- }
246
- if (this.showChildrenGrid && this.$refs.grid) {
247
- if (this.$refs.grid.checkValidate()) {
248
- return false;
249
- }
250
- data[this.config.gridName] = this.$refs.grid.getChangeData();
251
- if (data[this.config.gridName].length > 0 && data.flag === undefined) {
252
- data.flag = 'U';
253
- }
254
- }
255
- return data;
256
- },
257
- cancel () {
258
- if (!this.isAdd) {
259
- this.editFlag = false;
260
- }
261
- this.$refs.form.setData(this.valueData);
262
- this.$refs.form.setFormReadOnly(true);
263
- if (this.showChildrenGrid && this.$refs.grid) {
264
- this.$refs.grid.setReadOnly(true);
265
- this.$refs.grid.setData(this.valueData[this.config.gridName]);
266
- }
267
- let obj = {};
268
- obj.name = 'cancelForm';
269
- this.$emit('doAction', obj);
270
- },
271
-
272
- setReadOnly (value) {
273
- this.readOnly = value;
274
- this.btnReadOnly = value;
275
- this.$refs.form.setFormReadOnly(value);
276
- if (this.showChildrenGrid && this.$refs.grid) {
277
- this.$refs.grid.setReadOnly(value);
278
- }
279
- },
280
- clearData() {
281
- this.$refs.form.clearData();
282
- if (this.$refs.grid) {
283
- this.$refs.grid.clearData();
284
- }
285
- },
286
- isChange () {
287
- let flag = this.$refs.form.isChange();
288
- if (!flag) {
289
- if (this.showChildrenGrid && this.$refs.grid) {
290
- flag = this.$refs.grid.isChange();
291
- }
292
- }
293
- return flag;
294
- },
295
- setFormReadOnly(value) {
296
- this.readOnly = value;
297
- },
298
- setData(data) {
299
- this.customSetData(data);
300
- },
301
- setEffectData(data) {
302
- if (this.$refs.form) {
303
- this.$refs.form.setEffectData(data);
304
- }
305
- if (this.showChildrenGrid && this.$refs.grid) {
306
- let gridData = [];
307
- if (data[this.config.gridName]) {
308
- gridData = data[this.config.gridName];
309
- }
310
- this.$refs.grid.setEffectData(gridData);
311
- }
312
- },
313
- getData() {
314
- let data = this.$refs.form.getData();
315
- if (this.showChildrenGrid && this.$refs.grid && this.config.gridName) {
316
- data[this.config.gridName] = this.$refs.grid.getData();
317
- }
318
- return data;
319
- },
320
- customSetData(data) {
321
- if (this.$refs.form) {
322
- this.$refs.form.setData(data);
323
- }
324
- if (this.showChildrenGrid && this.$refs.grid) {
325
- let gridData = [];
326
- if (data[this.config.gridName]) {
327
- gridData = data[this.config.gridName];
328
- }
329
- this.$refs.grid.setData(gridData);
330
- }
331
- },
332
- setShowForm(value) {
333
- this.showForm = value;
334
- },
335
- setBtnReadOnly(value) {
336
- this.btnReadOnly = value;
337
- },
338
- addRow () {
339
- this.$refs.grid.addRow();
340
- },
341
- delRow() {
342
- this.$refs.grid.delBatchRow();
343
- },
344
- setShowZoom() {
345
- this.isFull = !this.isFull;
346
- },
347
- delBatchRow() {
348
- let obj = {};
349
- obj.name = 'delRowData'
350
- obj.para = {};
351
- obj.para.curlIndex = this.curlIndex;
352
- this.$emit('doAction', obj);
353
- },
354
- resetRow() {
355
- this.customSetData(this.valueData);
356
- },
357
- doAction(obj) {
358
- this.$emit('doAction', obj);
359
- }
360
- },
361
- mounted () {
362
- this.$nextTick(()=> {
363
- this.customSetData(this.valueData);
364
- });
365
- }
366
- };
1
+ <template>
2
+ <Card :padding="0" style="padding-left:20px;padding-right:20px" dis-hover>
3
+ <p @click="toggle" style="cursor:pointer;margin-top: 14px;margin-bottom:14px;" >
4
+ <template v-if="!isAdd">
5
+ <Row type="flex" :gutter="0" align="middle">
6
+ <Col span="18">
7
+ <Icon custom='iconfont icon-custom-pack' color="#f3b352" v-show="showForm" size="14" />
8
+ <Icon v-show="!showForm" color="#f3b352" custom='iconfont icon-custom-spread' size="14"/>
9
+ <span style="margin-left:16px;font-size: 14px;font-weight:bold" v-text="title" />
10
+ </Col>
11
+ <Col span="6" v-show="showForm" >
12
+ <Row type="flex" justify="end" align="middle" :gutter="0">
13
+ <Col>
14
+ <Button style="float:right" size="small" customIcon="iconfont icon-custom-recallcard" type="text" :disabled="btnReadOnly" @click.stop="resetRow" >撤消</Button>
15
+ </Col>
16
+ <Col >
17
+ <Divider type="vertical" style="margin: 0 15px 0 15px;float:right"/>
18
+ </Col>
19
+ <Col>
20
+ <Button style="float:right" size="small" customIcon="iconfont icon-custom-delcard" type="text" :disabled="btnReadOnly" @click.stop="delBatchRow">删除</Button>
21
+ </Col>
22
+ </Row>
23
+ </Col>
24
+ </Row>
25
+ <Divider type="vertical" style="margin: 0 15px 0 15px;float:right"/>
26
+ </template>
27
+ <template v-else>
28
+ <Badge status="processing" text="新增项" />
29
+ </template>
30
+ </p>
31
+ <Divider v-show="showForm" style="margin-top:0px;margin-bottom:10px;"/>
32
+ <div v-show="showForm" style="padding-left:10px">
33
+ <Formcard ref="form" :key="myConfig.name" :config="myConfig" :dictData="dictData" @doAction="doAction"/>
34
+ <Divider v-show="showChildrenGrid" style="margin-bottom:10px;margin-top: 10px;"/>
35
+ <EditGridCard v-show="showChildrenGrid" ref="grid" :config="gridConfig" :dictData="dictData" >
36
+ <template #header>
37
+ <Row type="flex" justify="start" align="middle" :gutter="0" style="margin-bottom: 10px;display: flex;">
38
+ <Col v-if="showAddBtn">
39
+ <Button customIcon="iconfont icon-custom-rowadd" type="text" size="small" :disabled="btnReadOnly" @click="addRow" >添加</Button>
40
+ </Col>
41
+ <Col v-if="showAddBtn && showDelBatchBtn">
42
+ <Divider type="vertical" style="margin: 0 15px 0 15px;height: 20px"/>
43
+ </Col>
44
+ <Col v-if="showDelBatchBtn">
45
+ <Button customIcon="iconfont icon-custom-rowdel" size="small" type="text" :disabled="btnReadOnly" @click="delRow">删除</Button>
46
+ </Col>
47
+ <Col class="col-align" v-if="showZoom" style="flex:1;text-align: right;">
48
+ <Button type="ghost" shape="circle" :customIcon="[isFull ? 'iconfont icon-custom-minimize' : 'iconfont icon-custom-fullscreen']" @click="setZoom"></Button>
49
+ </Col>
50
+ </Row>
51
+ </template>
52
+ </EditGridCard>
53
+ <Row v-if="isAdd" type="flex" justify="end" align="middle" style="margin-top: 10px;margin-bottom: 10px;" :gutter="16">
54
+ <Col>
55
+ <Button style="width:84px" @click="cancel">取消</Button>
56
+ </Col>
57
+ <Col>
58
+ <Button style="width:84px" type="info" @click="save">确认</Button>
59
+ </Col>
60
+ </Row>
61
+ </div>
62
+ </Card>
63
+ </template>
64
+
65
+ <script>
66
+ import Formcard from './formcard.vue';
67
+ import EditGridCard from './editgridcard.vue';
68
+ export default {
69
+ name:'mformdetail',
70
+ components:{Formcard,EditGridCard},
71
+ data () {
72
+ return {
73
+ editFlag:false,
74
+ showChildrenGrid:false,
75
+ gridConfig:{},
76
+ myConfig:{},
77
+ readOnly:false,
78
+ btnReadOnly:false,
79
+ showAddBtn:true,
80
+ showDelBatchBtn:true,
81
+ showForm:true,
82
+ showZoom: false,
83
+ isFull: false,
84
+ };
85
+ },
86
+ props:{
87
+ config:{
88
+ type:Object,
89
+ default:null
90
+ },
91
+ valueData:{
92
+ type:Object,
93
+ default () {
94
+ return {};
95
+ }
96
+ },
97
+ dictData: {
98
+ type: Object,
99
+ default:null
100
+ },
101
+ index:{
102
+ type:String,
103
+ default:''
104
+ },
105
+ curlIndex:{
106
+ type:[String,Number],
107
+ default:''
108
+ },
109
+ isAdd:{
110
+ type:Boolean,
111
+ default:false
112
+ }
113
+ },
114
+ created () {
115
+ this.init();
116
+ },
117
+ computed: {
118
+ title() {
119
+ let title = '标题';
120
+ if (this.config.titleName) {
121
+ if (this.valueData[this.config.titleName]) {
122
+ title = this.valueData[this.config.titleName];
123
+ }
124
+ }
125
+ let titlePrefix = '#';
126
+ if (this.config.titlePrefix) {
127
+ titlePrefix = this.config.titlePrefix;
128
+ }
129
+ let resultTitle = titlePrefix + (Number(this.index)+1) + ' ' + title;
130
+ return resultTitle;
131
+ }
132
+ },
133
+ methods:{
134
+ init () {
135
+ this.myConfig = Object.assign({},this.myConfig, this.config.formConfig);
136
+ if (this.config.showEffectValue !== undefined) {
137
+ this.myConfig.showEffectValue = this.config.showEffectValue;
138
+ }
139
+ this.myConfig.modetype = '3';
140
+ if (this.config.gridConfig !== undefined && this.config.gridConfig.items && this.config.gridConfig.items.length > 0) {
141
+ Object.assign(this.gridConfig, this.config.gridConfig);
142
+ this.gridConfig.showCheckBox = true;
143
+ if (this.config.showEffectValue !== undefined) {
144
+ this.gridConfig.showEffectValue = this.config.showEffectValue;
145
+ }
146
+ this.gridConfig.modetype = '3';
147
+ if (this.gridConfig.showAddBtn !== undefined) {
148
+ this.showAddBtn = this.gridConfig.showAddBtn;
149
+ }
150
+ if (this.gridConfig.showDelBatchBtn !== undefined) {
151
+ this.showDelBatchBtn = this.gridConfig.showDelBatchBtn;
152
+ }
153
+ if (this.gridConfig.showZoom !== undefined) {
154
+ this.showZoom = this.gridConfig.showZoom;
155
+ }
156
+ this.gridConfig.addRowBefore = this.addRowBefore;
157
+ this.gridConfig.delRowBefore = this.delRowBefore;
158
+ this.showChildrenGrid = true;
159
+ if (this.gridConfig.height === undefined) {
160
+ this.gridConfig.height = 200;
161
+ }
162
+ } else {
163
+ this.showChildrenGrid = false;
164
+ }
165
+ },
166
+ toggle () {
167
+ this.showForm = !this.showForm;
168
+ },
169
+ addRowBefore(e) {
170
+ if (this.config.gridConfig.addRowBefore) {
171
+ e.form = this.$refs.form.getData();
172
+ return this.config.gridConfig.addRowBefore(e);
173
+ }
174
+ return true;
175
+ },
176
+ delRowBefore(e) {
177
+ if (this.config.gridConfig.delRowBefore) {
178
+ e.form = this.$refs.form.getData();
179
+ return this.config.gridConfig.delRowBefore(e);
180
+ }
181
+ return true;
182
+ },
183
+ edit () {
184
+ this.editFlag = true;
185
+ if (this.$refs.form) {
186
+ this.$refs.form.setFormReadOnly(false);
187
+ }
188
+ if (this.$refs.grid) {
189
+ this.$refs.grid.setReadOnly(false);
190
+ }
191
+ let obj = {};
192
+ obj.name = 'editForm';
193
+ obj.para = {};
194
+ obj.para.curlIndex = this.curlIndex;
195
+ obj.para.formObject = this.$refs.form;
196
+ obj.para.form = this.$refs.form.getData();
197
+ if (this.$refs.grid) {
198
+ obj.para.gridObject = this.$refs.grid;
199
+ }
200
+ this.$emit('doAction', obj);
201
+ },
202
+ del () {
203
+ let obj = {};
204
+ obj.name = 'delForm';
205
+ obj.para = {};
206
+ obj.para.curlIndex = this.curlIndex;
207
+ this.$emit('doAction', obj);
208
+ },
209
+ checkValidate () {
210
+ this.$refs.form.checkValidate();
211
+ if (this.$refs.form.isError()) {
212
+ return true;
213
+ } else {
214
+ return false;
215
+ }
216
+ },
217
+ save () {
218
+ this.$refs.form.checkValidate();
219
+ if (this.$refs.form.isError()) {
220
+ return false;
221
+ }
222
+ let obj = {};
223
+ obj.name = 'saveForm';
224
+ obj.para = {};
225
+ obj.para.curlIndex = this.curlIndex;
226
+ obj.para.data = this.$refs.form.getData();
227
+ if (this.showChildrenGrid && this.$refs.grid) {
228
+ if (this.$refs.grid.checkValidate()) {
229
+ return false;
230
+ }
231
+ obj.para.data[this.config.gridName] = this.$refs.grid.getChangeData();
232
+ if (obj.para.data[this.config.gridName].length > 0 && obj.para.data.flag === undefined) {
233
+ obj.para.data.flag = 'U';
234
+ }
235
+ }
236
+ if (!this.isAdd) {
237
+ this.editFlag = false;
238
+ }
239
+ this.$emit('doAction', obj);
240
+ },
241
+ getChangeData () {
242
+ let data = this.$refs.form.getData();
243
+ if (data.flag === undefined) {
244
+ data.flag = 'U';
245
+ }
246
+ if (this.showChildrenGrid && this.$refs.grid) {
247
+ if (this.$refs.grid.checkValidate()) {
248
+ return false;
249
+ }
250
+ data[this.config.gridName] = this.$refs.grid.getChangeData();
251
+ if (data[this.config.gridName].length > 0 && data.flag === undefined) {
252
+ data.flag = 'U';
253
+ }
254
+ }
255
+ return data;
256
+ },
257
+ cancel () {
258
+ if (!this.isAdd) {
259
+ this.editFlag = false;
260
+ }
261
+ this.$refs.form.setData(this.valueData);
262
+ this.$refs.form.setFormReadOnly(true);
263
+ if (this.showChildrenGrid && this.$refs.grid) {
264
+ this.$refs.grid.setReadOnly(true);
265
+ this.$refs.grid.setData(this.valueData[this.config.gridName]);
266
+ }
267
+ let obj = {};
268
+ obj.name = 'cancelForm';
269
+ this.$emit('doAction', obj);
270
+ },
271
+
272
+ setReadOnly (value) {
273
+ this.readOnly = value;
274
+ this.btnReadOnly = value;
275
+ this.$refs.form.setFormReadOnly(value);
276
+ if (this.showChildrenGrid && this.$refs.grid) {
277
+ this.$refs.grid.setReadOnly(value);
278
+ }
279
+ },
280
+ clearData() {
281
+ this.$refs.form.clearData();
282
+ if (this.$refs.grid) {
283
+ this.$refs.grid.clearData();
284
+ }
285
+ },
286
+ isChange () {
287
+ let flag = this.$refs.form.isChange();
288
+ if (!flag) {
289
+ if (this.showChildrenGrid && this.$refs.grid) {
290
+ flag = this.$refs.grid.isChange();
291
+ }
292
+ }
293
+ return flag;
294
+ },
295
+ setFormReadOnly(value) {
296
+ this.readOnly = value;
297
+ },
298
+ setData(data) {
299
+ this.customSetData(data);
300
+ },
301
+ setEffectData(data) {
302
+ if (this.$refs.form) {
303
+ this.$refs.form.setEffectData(data);
304
+ }
305
+ if (this.showChildrenGrid && this.$refs.grid) {
306
+ let gridData = [];
307
+ if (data[this.config.gridName]) {
308
+ gridData = data[this.config.gridName];
309
+ }
310
+ this.$refs.grid.setEffectData(gridData);
311
+ }
312
+ },
313
+ getData() {
314
+ let data = this.$refs.form.getData();
315
+ if (this.showChildrenGrid && this.$refs.grid && this.config.gridName) {
316
+ data[this.config.gridName] = this.$refs.grid.getData();
317
+ }
318
+ return data;
319
+ },
320
+ customSetData(data) {
321
+ if (this.$refs.form) {
322
+ this.$refs.form.setData(data);
323
+ }
324
+ if (this.showChildrenGrid && this.$refs.grid) {
325
+ let gridData = [];
326
+ if (data[this.config.gridName]) {
327
+ gridData = data[this.config.gridName];
328
+ }
329
+ this.$refs.grid.setData(gridData);
330
+ }
331
+ },
332
+ setShowForm(value) {
333
+ this.showForm = value;
334
+ },
335
+ setBtnReadOnly(value) {
336
+ this.btnReadOnly = value;
337
+ },
338
+ addRow () {
339
+ this.$refs.grid.addRow();
340
+ },
341
+ delRow() {
342
+ this.$refs.grid.delBatchRow();
343
+ },
344
+ setShowZoom() {
345
+ this.isFull = !this.isFull;
346
+ },
347
+ delBatchRow() {
348
+ let obj = {};
349
+ obj.name = 'delRowData'
350
+ obj.para = {};
351
+ obj.para.curlIndex = this.curlIndex;
352
+ this.$emit('doAction', obj);
353
+ },
354
+ resetRow() {
355
+ this.customSetData(this.valueData);
356
+ },
357
+ doAction(obj) {
358
+ this.$emit('doAction', obj);
359
+ }
360
+ },
361
+ mounted () {
362
+ this.$nextTick(()=> {
363
+ this.customSetData(this.valueData);
364
+ });
365
+ }
366
+ };
367
367
  </script>