ocpview-plus 1.3.15 → 1.3.17

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,389 +1,389 @@
1
- <template>
2
- <div v-show="myConfig.visible" >
3
- <Tag :color="color" :size="myConfig.tagSize" v-for="(tempItem,index) in data" :key="index + '_edit'" :closable="tempItem.closable" @on-close="closeTag(index)">{{ tempItem.label}}</Tag>
4
- <Button ref="btn" v-show="!myConfig.readOnly" icon="ios-add" type="dashed" :size="myConfig.size" @click="click">{{myConfig.btnText}}</Button>
5
- <Modal v-model="popShow" :styles="queryConfig.popStyle" :width="currentWidth" :title="modeTitle" :footer-hide="footerHide" :draggable="draggable" :closable="myConfig.closable" class="efuture-model">
6
- <div style="padding-left:16px;padding-right:16px;"><component :is="pop" ref="popView" :config="queryConfig" :dictData="myConfig.dictData" @conditionAction="conditionAction" :isPop="true" @dbclick="dbclick"/></div>
7
- <template #footer>
8
- <div>
9
- <Row type="flex" justify="center" align="middle" :gutter="8">
10
- <Col>
11
- <Button type="primary" style="width:120px" @click="ok" >确认</Button>
12
- </Col>
13
- </Row>
14
- </div>
15
- </template>
16
- </Modal>
17
- </div>
18
- </template>
19
- <script>
20
- import Base from '@/components/base/controlbase.vue';
21
- export default {
22
- name: 'poptagbox',
23
- extends: Base,
24
- data () {
25
- return {
26
- myConfig: {
27
- isTree:false,
28
- selectkey:'',
29
- color:'primary',
30
- closable:true,
31
- tagSize:'default',
32
- size:'small',
33
- clearCondition:true,
34
- btnText:'添加',
35
- popControl:'',
36
- dictData:{}
37
-
38
- },
39
- queryConfig:{
40
- popStyle:{
41
- top:'20px'
42
- }
43
- },
44
- popShow:false,
45
- data:[],
46
- selectTreeData:[],
47
- customRows:[],
48
- draggable:false,
49
- value:[],
50
- oldValue:[],
51
- color:'default',
52
- footerHide:false
53
- };
54
- },
55
- props:{
56
- fatherValue: {
57
- type: Array,
58
- default: () => []
59
- }
60
- } ,
61
- computed: {
62
- pop () {
63
- if (this.queryConfig.popControl) {
64
- return this.queryConfig.popControl;
65
- } else {
66
- if (this.queryConfig.isTree) {
67
- return 'TreeBox';
68
- } else {
69
- return 'ViewGrid';
70
- }
71
- }
72
- },
73
- modeTitle() {
74
- let title = this.config.label;
75
- if (this.queryConfig.title) {
76
- title = this.queryConfig.title;
77
- }
78
- if (this.myConfig.curlTitle) {
79
- title = this.myConfig.curlTitle
80
- }
81
- return title;
82
- }
83
- },
84
- methods:{
85
- conditionAction(temp) {
86
- switch(temp.action) {
87
- case 'condition_ok':
88
- if (temp.rows) {
89
- this.customRows = [];
90
- let flag = true;
91
- if (temp.rows.length === 0) {
92
- this.$refs.popView.alert('请选择');
93
- this.popShow = true;
94
- return true;
95
- }
96
- if (this.queryConfig.isTree) {
97
- if (this.queryConfig.allowLastNode) {
98
- temp.rows.some(el => {
99
- if (this.$refs.popView.isChildren(el)) {
100
- flag = false;
101
- return true;
102
- }
103
- });
104
- }
105
- if (!flag) {
106
- this.$refs.popView.alert('选中的节点存在非末级节点,请检查');
107
- this.popShow = true;
108
- } else {
109
- if (this.config.allowLastNode === true) {
110
- let rows = [];
111
- temp.rows.forEach(el => {
112
- if (!el.children || el.children.length === 0) {
113
- rows.push(el);
114
- }
115
- });
116
- this.setCommmonValue(rows);
117
- } else {
118
- this.setCommmonValue(temp.rows);
119
- }
120
- this.popShow = false;
121
- }
122
- } else {
123
- this.setCommmonValue(temp.rows);
124
- this.popShow = false;
125
- }
126
- }
127
- break;
128
- case 'condition_cancel':
129
- this.popShow = false;
130
- break;
131
- }
132
- if (!this.popShow) {
133
- document.querySelector('body').removeAttribute("style");
134
- }
135
- },
136
- overrideSearchParam (param) {
137
- if (this.myConfig.overrideSearchParam) {
138
- return this.myConfig.overrideSearchParam(param);
139
- } else {
140
- return param;
141
- }
142
- },
143
- setCommmonValue(rows) {
144
- let that = this;
145
- if (this.myConfig.onAddTag) {
146
- let temp = {};
147
- temp.addData = rows;
148
- temp.data = this.$Method.copy(this.data);
149
- temp.control = that;
150
- temp.name = this.myConfig.name;
151
- let tmp = this.myConfig.onAddTag(temp);
152
- if (tmp && tmp.length > 0) {
153
- tmp.forEach(el => {
154
- if (!el.label) {
155
- if (this.myConfig.setLabel) {
156
- el.label = this.myConfig.setLabel(el);
157
- }
158
- }
159
- el.closable = true;
160
- this.data.push(el);
161
- });
162
- }
163
- } else {
164
- rows.forEach(el => {
165
- if (this.myConfig.setLabel) {
166
- el.label = this.myConfig.setLabel(el);
167
- }
168
- el.closable = true;
169
- this.data.push(el);
170
- });
171
- }
172
- this.setFatherValue();
173
- },
174
- setFatherValue() {
175
- let para = this.valueToFatherValue();
176
- para.name = this.myConfig.name;
177
- this.$emit('inputValue', para);
178
- },
179
-
180
- customInit () {
181
- if (this.config.selectkey) {
182
- Object.assign(this.queryConfig, this.getQueryConfig(this.config.selectkey));
183
- if (!this.queryConfig.isConfig) {
184
- this.queryConfig.resources = this.OmdUrl[this.queryConfig.resources];
185
- }
186
- if (this.queryConfig.draggable) {
187
- this.draggable = this.queryConfig.draggable;
188
- }
189
- this.queryConfig.overrideSearchParam = this.overrideSearchParam;
190
- if (this.config.multiSelect !== undefined) {
191
- this.queryConfig.multiSelect = this.config.multiSelect;
192
- }
193
- if (this.config.showAll !== undefined) {
194
- this.queryConfig.showAll = this.config.showAll;
195
- }
196
- if (this.queryConfig.popControl) {
197
- this.footerHide = true;
198
- }
199
-
200
- this.setSizeConfig(this.queryConfig);
201
-
202
- if (JSON.stringify(this.myConfig.dictData) === '{}') {
203
- let obj = {};
204
- if (this.queryConfig.items && this.queryConfig.items.length > 0) {
205
- this.queryConfig.items.forEach(el => {
206
- let dictkey = el.dictkey;
207
- if (el.customDictkey) {
208
- dictkey = el.customDictkey;
209
- }
210
- if (dictkey) {
211
- obj[dictkey] = '';
212
- }
213
- });
214
- }
215
- if (JSON.stringify(obj) !== '{}') {
216
- if (this.myConfig.getDictData) {
217
- obj = this.myConfig.getDictData(obj);
218
- }
219
- this.myConfig.dictData = obj;
220
- }
221
- }
222
- if (this.myConfig.sysDictData !== undefined) {
223
- if (this.myConfig.dictData === undefined) {
224
- this.myConfig.dictData = {};
225
- }
226
- this.myConfig.dictData = Object.assign({}, this.myConfig.sysDictData, this.myConfig.dictData);
227
- }
228
-
229
- if(this.queryConfig.isTree) {
230
- this.queryConfig.showTitle = false;
231
- }
232
- }
233
- if (this.myConfig.readOnly) {
234
- this.color = 'default';
235
- } else {
236
- this.color = this.myConfig.color;
237
- }
238
- },
239
- valueToFatherValue() {
240
- let para= {};
241
- para.value = [];
242
- if (this.data && this.data.length > 0) {
243
- this.data.forEach(el => {
244
- let temp = this.$Method.copy(el);
245
- delete temp.label;
246
- delete temp.closable;
247
- para.value.push(temp);
248
- });
249
- }
250
- return para;
251
- },
252
- click(){
253
- let flag = true;
254
- if (!this.queryConfig.isTree) {
255
- if (this.$refs.popView.$children.length > 0) {
256
- if (this.$refs.popView.$children[0].customClear) {
257
- this.$refs.popView.$children[0].customClear();
258
- }
259
- this.$refs.popView.clearData();
260
- }
261
- }
262
- if (this.myConfig.readOnly) {
263
- return;
264
- }
265
- if (this.myConfig.searchBefore) {
266
- this.$refs['popView'].clearSearchBeforeSearchParam();
267
- flag = this.myConfig.searchBefore(this,this.$refs['popView']);
268
- if (flag) {
269
- if (this.searchParam !== undefined) {
270
- this.$refs['popView'].setSearchBeforeSearchParam(this.searchParam);
271
- }
272
- }
273
- }
274
- if (flag) {
275
- if (this.config.selectkey) {
276
- this.popShow = true;
277
- if (this.myConfig.clearCondition) {
278
- if (this.$refs['popView'].clearCondition) {
279
- this.$refs['popView'].clearCondition();
280
- }
281
- }
282
- if (this.queryConfig.manualLoad) {
283
- this.$refs['popView'].refurbish();
284
- } else {
285
- this.$refs['popView'].setData([]);
286
- }
287
-
288
- }
289
- }
290
- },
291
-
292
- closeTag (index) {
293
- let flag = true;
294
- let that = this;
295
- if (this.myConfig.onDelTag) {
296
- let temp = {};
297
- temp.delIndex = index;
298
- temp.data = this.$Method.copy(this.data);
299
- temp.control = that;
300
- temp.name = this.myConfig.name;
301
- flag = this.myConfig.onDelTag(temp);
302
- }
303
- if (flag) {
304
- if (index > -1) {
305
- this.data.splice(index, 1);
306
- this.setFatherValue();
307
- }
308
- }
309
- },
310
- onSelectChange() {
311
- return this.$refs.myTreeBox.onSelectChange();
312
- },
313
-
314
- onToggleExpand() {
315
- return this.$refs.myTreeBox.onToggleExpand();
316
- },
317
- dbclick(e) {
318
- let temp = {};
319
- temp.action= 'condition_ok';
320
- temp.rows = [];
321
- temp.rows.push(e);
322
- this.conditionAction(temp);
323
- },
324
- ok() {
325
- let temp = {};
326
- temp.action= 'condition_ok';
327
- temp.rows = this.$refs.popView.getSelection();
328
- this.conditionAction(temp);
329
- },
330
- watchCustomFatherValue () {
331
- this.data = [];
332
- if (this.value && this.value.length > 0) {
333
- this.value.forEach(el => {
334
- let elx = this.$Method.copy(el);
335
- if (this.config.setLabel) {
336
- elx.label = this.config.setLabel(elx);
337
- } else {
338
- elx.label = '';
339
- }
340
- elx.closable = true;
341
- this.data.push(elx);
342
- });
343
- }
344
- },
345
-
346
- setCustomPro(obj) {
347
- if (obj.readOnly !== undefined) {
348
- let data = this.$Method.copy(this.data);
349
- if (obj.readOnly) {
350
- this.color = 'default';
351
- } else {
352
- this.color = this.myConfig.color;
353
- }
354
- data.forEach((el,index) => {
355
- let temp = this.$Method.copy(el);
356
- if (obj.readOnly === true) {
357
- temp.closable = false;
358
- } else {
359
- temp.closable = true;
360
- }
361
- this.data.splice(index, 1,temp);
362
- });
363
-
364
- }
365
- return obj;
366
- },
367
- setFocus(value) {
368
- if (value) {
369
- this.$refs.btn.$el.focus();
370
- } else {
371
- this.$refs.btn.$el.blur();
372
- }
373
- }
374
- },
375
- mounted() {
376
- //this._setCustomWidth(this.clientWidth);
377
- },
378
- watch:{
379
- popShow:{
380
- handler(newValue) {
381
- if (this.config.onOpenChange) {
382
- this.config.onOpenChange(newValue);
383
- }
384
- },
385
- immediate: true
386
- }
387
- }
388
- };
1
+ <template>
2
+ <div v-show="myConfig.visible" >
3
+ <Tag :color="color" :size="myConfig.tagSize" v-for="(tempItem,index) in data" :key="index + '_edit'" :closable="tempItem.closable" @on-close="closeTag(index)">{{ tempItem.label}}</Tag>
4
+ <Button ref="btn" v-show="!myConfig.readOnly" icon="ios-add" type="dashed" :size="myConfig.size" @click="click">{{myConfig.btnText}}</Button>
5
+ <Modal v-model="popShow" :styles="queryConfig.popStyle" :width="currentWidth" :title="modeTitle" :footer-hide="footerHide" :draggable="draggable" :closable="myConfig.closable" class="efuture-model">
6
+ <div style="padding-left:16px;padding-right:16px;"><component :is="pop" ref="popView" :config="queryConfig" :dictData="myConfig.dictData" @conditionAction="conditionAction" :isPop="true" @dbclick="dbclick"/></div>
7
+ <template #footer>
8
+ <div>
9
+ <Row type="flex" justify="center" align="middle" :gutter="8">
10
+ <Col>
11
+ <Button type="primary" style="width:120px" @click="ok" >确认</Button>
12
+ </Col>
13
+ </Row>
14
+ </div>
15
+ </template>
16
+ </Modal>
17
+ </div>
18
+ </template>
19
+ <script>
20
+ import Base from '@/components/base/controlbase.vue';
21
+ export default {
22
+ name: 'poptagbox',
23
+ extends: Base,
24
+ data () {
25
+ return {
26
+ myConfig: {
27
+ isTree:false,
28
+ selectkey:'',
29
+ color:'primary',
30
+ closable:true,
31
+ tagSize:'default',
32
+ size:'small',
33
+ clearCondition:true,
34
+ btnText:'添加',
35
+ popControl:'',
36
+ dictData:{}
37
+
38
+ },
39
+ queryConfig:{
40
+ popStyle:{
41
+ top:'20px'
42
+ }
43
+ },
44
+ popShow:false,
45
+ data:[],
46
+ selectTreeData:[],
47
+ customRows:[],
48
+ draggable:false,
49
+ value:[],
50
+ oldValue:[],
51
+ color:'default',
52
+ footerHide:false
53
+ };
54
+ },
55
+ props:{
56
+ fatherValue: {
57
+ type: Array,
58
+ default: () => []
59
+ }
60
+ } ,
61
+ computed: {
62
+ pop () {
63
+ if (this.queryConfig.popControl) {
64
+ return this.queryConfig.popControl;
65
+ } else {
66
+ if (this.queryConfig.isTree) {
67
+ return 'TreeBox';
68
+ } else {
69
+ return 'ViewGrid';
70
+ }
71
+ }
72
+ },
73
+ modeTitle() {
74
+ let title = this.config.label;
75
+ if (this.queryConfig.title) {
76
+ title = this.queryConfig.title;
77
+ }
78
+ if (this.myConfig.curlTitle) {
79
+ title = this.myConfig.curlTitle
80
+ }
81
+ return title;
82
+ }
83
+ },
84
+ methods:{
85
+ conditionAction(temp) {
86
+ switch(temp.action) {
87
+ case 'condition_ok':
88
+ if (temp.rows) {
89
+ this.customRows = [];
90
+ let flag = true;
91
+ if (temp.rows.length === 0) {
92
+ this.$refs.popView.alert('请选择');
93
+ this.popShow = true;
94
+ return true;
95
+ }
96
+ if (this.queryConfig.isTree) {
97
+ if (this.queryConfig.allowLastNode) {
98
+ temp.rows.some(el => {
99
+ if (this.$refs.popView.isChildren(el)) {
100
+ flag = false;
101
+ return true;
102
+ }
103
+ });
104
+ }
105
+ if (!flag) {
106
+ this.$refs.popView.alert('选中的节点存在非末级节点,请检查');
107
+ this.popShow = true;
108
+ } else {
109
+ if (this.config.allowLastNode === true) {
110
+ let rows = [];
111
+ temp.rows.forEach(el => {
112
+ if (!el.children || el.children.length === 0) {
113
+ rows.push(el);
114
+ }
115
+ });
116
+ this.setCommmonValue(rows);
117
+ } else {
118
+ this.setCommmonValue(temp.rows);
119
+ }
120
+ this.popShow = false;
121
+ }
122
+ } else {
123
+ this.setCommmonValue(temp.rows);
124
+ this.popShow = false;
125
+ }
126
+ }
127
+ break;
128
+ case 'condition_cancel':
129
+ this.popShow = false;
130
+ break;
131
+ }
132
+ if (!this.popShow) {
133
+ document.querySelector('body').removeAttribute("style");
134
+ }
135
+ },
136
+ overrideSearchParam (param) {
137
+ if (this.myConfig.overrideSearchParam) {
138
+ return this.myConfig.overrideSearchParam(param);
139
+ } else {
140
+ return param;
141
+ }
142
+ },
143
+ setCommmonValue(rows) {
144
+ let that = this;
145
+ if (this.myConfig.onAddTag) {
146
+ let temp = {};
147
+ temp.addData = rows;
148
+ temp.data = this.$Method.copy(this.data);
149
+ temp.control = that;
150
+ temp.name = this.myConfig.name;
151
+ let tmp = this.myConfig.onAddTag(temp);
152
+ if (tmp && tmp.length > 0) {
153
+ tmp.forEach(el => {
154
+ if (!el.label) {
155
+ if (this.myConfig.setLabel) {
156
+ el.label = this.myConfig.setLabel(el);
157
+ }
158
+ }
159
+ el.closable = true;
160
+ this.data.push(el);
161
+ });
162
+ }
163
+ } else {
164
+ rows.forEach(el => {
165
+ if (this.myConfig.setLabel) {
166
+ el.label = this.myConfig.setLabel(el);
167
+ }
168
+ el.closable = true;
169
+ this.data.push(el);
170
+ });
171
+ }
172
+ this.setFatherValue();
173
+ },
174
+ setFatherValue() {
175
+ let para = this.valueToFatherValue();
176
+ para.name = this.myConfig.name;
177
+ this.$emit('inputValue', para);
178
+ },
179
+
180
+ customInit () {
181
+ if (this.config.selectkey) {
182
+ Object.assign(this.queryConfig, this.getQueryConfig(this.config.selectkey));
183
+ if (!this.queryConfig.isConfig) {
184
+ this.queryConfig.resources = this.OmdUrl[this.queryConfig.resources];
185
+ }
186
+ if (this.queryConfig.draggable) {
187
+ this.draggable = this.queryConfig.draggable;
188
+ }
189
+ this.queryConfig.overrideSearchParam = this.overrideSearchParam;
190
+ if (this.config.multiSelect !== undefined) {
191
+ this.queryConfig.multiSelect = this.config.multiSelect;
192
+ }
193
+ if (this.config.showAll !== undefined) {
194
+ this.queryConfig.showAll = this.config.showAll;
195
+ }
196
+ if (this.queryConfig.popControl) {
197
+ this.footerHide = true;
198
+ }
199
+
200
+ this.setSizeConfig(this.queryConfig);
201
+
202
+ if (JSON.stringify(this.myConfig.dictData) === '{}') {
203
+ let obj = {};
204
+ if (this.queryConfig.items && this.queryConfig.items.length > 0) {
205
+ this.queryConfig.items.forEach(el => {
206
+ let dictkey = el.dictkey;
207
+ if (el.customDictkey) {
208
+ dictkey = el.customDictkey;
209
+ }
210
+ if (dictkey) {
211
+ obj[dictkey] = '';
212
+ }
213
+ });
214
+ }
215
+ if (JSON.stringify(obj) !== '{}') {
216
+ if (this.myConfig.getDictData) {
217
+ obj = this.myConfig.getDictData(obj);
218
+ }
219
+ this.myConfig.dictData = obj;
220
+ }
221
+ }
222
+ if (this.myConfig.sysDictData !== undefined) {
223
+ if (this.myConfig.dictData === undefined) {
224
+ this.myConfig.dictData = {};
225
+ }
226
+ this.myConfig.dictData = Object.assign({}, this.myConfig.sysDictData, this.myConfig.dictData);
227
+ }
228
+
229
+ if(this.queryConfig.isTree) {
230
+ this.queryConfig.showTitle = false;
231
+ }
232
+ }
233
+ if (this.myConfig.readOnly) {
234
+ this.color = 'default';
235
+ } else {
236
+ this.color = this.myConfig.color;
237
+ }
238
+ },
239
+ valueToFatherValue() {
240
+ let para= {};
241
+ para.value = [];
242
+ if (this.data && this.data.length > 0) {
243
+ this.data.forEach(el => {
244
+ let temp = this.$Method.copy(el);
245
+ delete temp.label;
246
+ delete temp.closable;
247
+ para.value.push(temp);
248
+ });
249
+ }
250
+ return para;
251
+ },
252
+ click(){
253
+ let flag = true;
254
+ if (!this.queryConfig.isTree) {
255
+ if (this.$refs.popView.$children.length > 0) {
256
+ if (this.$refs.popView.$children[0].customClear) {
257
+ this.$refs.popView.$children[0].customClear();
258
+ }
259
+ this.$refs.popView.clearData();
260
+ }
261
+ }
262
+ if (this.myConfig.readOnly) {
263
+ return;
264
+ }
265
+ if (this.myConfig.searchBefore) {
266
+ this.$refs['popView'].clearSearchBeforeSearchParam();
267
+ flag = this.myConfig.searchBefore(this,this.$refs['popView']);
268
+ if (flag) {
269
+ if (this.searchParam !== undefined) {
270
+ this.$refs['popView'].setSearchBeforeSearchParam(this.searchParam);
271
+ }
272
+ }
273
+ }
274
+ if (flag) {
275
+ if (this.config.selectkey) {
276
+ this.popShow = true;
277
+ if (this.myConfig.clearCondition) {
278
+ if (this.$refs['popView'].clearCondition) {
279
+ this.$refs['popView'].clearCondition();
280
+ }
281
+ }
282
+ if (this.queryConfig.manualLoad) {
283
+ this.$refs['popView'].refurbish();
284
+ } else {
285
+ this.$refs['popView'].setData([]);
286
+ }
287
+
288
+ }
289
+ }
290
+ },
291
+
292
+ closeTag (index) {
293
+ let flag = true;
294
+ let that = this;
295
+ if (this.myConfig.onDelTag) {
296
+ let temp = {};
297
+ temp.delIndex = index;
298
+ temp.data = this.$Method.copy(this.data);
299
+ temp.control = that;
300
+ temp.name = this.myConfig.name;
301
+ flag = this.myConfig.onDelTag(temp);
302
+ }
303
+ if (flag) {
304
+ if (index > -1) {
305
+ this.data.splice(index, 1);
306
+ this.setFatherValue();
307
+ }
308
+ }
309
+ },
310
+ onSelectChange() {
311
+ return this.$refs.myTreeBox.onSelectChange();
312
+ },
313
+
314
+ onToggleExpand() {
315
+ return this.$refs.myTreeBox.onToggleExpand();
316
+ },
317
+ dbclick(e) {
318
+ let temp = {};
319
+ temp.action= 'condition_ok';
320
+ temp.rows = [];
321
+ temp.rows.push(e);
322
+ this.conditionAction(temp);
323
+ },
324
+ ok() {
325
+ let temp = {};
326
+ temp.action= 'condition_ok';
327
+ temp.rows = this.$refs.popView.getSelection();
328
+ this.conditionAction(temp);
329
+ },
330
+ watchCustomFatherValue () {
331
+ this.data = [];
332
+ if (this.value && this.value.length > 0) {
333
+ this.value.forEach(el => {
334
+ let elx = this.$Method.copy(el);
335
+ if (this.config.setLabel) {
336
+ elx.label = this.config.setLabel(elx);
337
+ } else {
338
+ elx.label = '';
339
+ }
340
+ elx.closable = true;
341
+ this.data.push(elx);
342
+ });
343
+ }
344
+ },
345
+
346
+ setCustomPro(obj) {
347
+ if (obj.readOnly !== undefined) {
348
+ let data = this.$Method.copy(this.data);
349
+ if (obj.readOnly) {
350
+ this.color = 'default';
351
+ } else {
352
+ this.color = this.myConfig.color;
353
+ }
354
+ data.forEach((el,index) => {
355
+ let temp = this.$Method.copy(el);
356
+ if (obj.readOnly === true) {
357
+ temp.closable = false;
358
+ } else {
359
+ temp.closable = true;
360
+ }
361
+ this.data.splice(index, 1,temp);
362
+ });
363
+
364
+ }
365
+ return obj;
366
+ },
367
+ setFocus(value) {
368
+ if (value) {
369
+ this.$refs.btn.$el.focus();
370
+ } else {
371
+ this.$refs.btn.$el.blur();
372
+ }
373
+ }
374
+ },
375
+ mounted() {
376
+ //this._setCustomWidth(this.clientWidth);
377
+ },
378
+ watch:{
379
+ popShow:{
380
+ handler(newValue) {
381
+ if (this.config.onOpenChange) {
382
+ this.config.onOpenChange(newValue);
383
+ }
384
+ },
385
+ immediate: true
386
+ }
387
+ }
388
+ };
389
389
  </script>