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,479 +1,479 @@
1
- <template>
2
- <div style="padding-left:10px;padding-right:10px">
3
- <CompatTree v-if="hackReset" :data="data" :render="renderContent" class="demo-tree-render" @update:data="treeData = $event"></CompatTree>
4
- </div>
5
- </template>
6
- <script>
7
- import CompatTree from '../tree/CompatTree.vue';
8
- import { resolveComponent } from 'vue';
9
- export default {
10
- name:'conditionfilterbox',
11
- components : {CompatTree},
12
- props:{
13
- config: {
14
- type: Object,
15
- default () {
16
- return {};
17
- }
18
- },
19
- dictData: {
20
- type: Object,
21
- default:null
22
- }
23
- } ,
24
- data () {
25
- return {
26
- hackReset:true,
27
- myConfig:{
28
- dbtype:'oracle',
29
- rootName:'',
30
- selector:[],
31
- items:[]
32
- },
33
- root:{
34
- title: '',
35
- isConnector:false,
36
- expand: true,
37
- selectorClass:1,
38
- render:this.renderRootContent
39
- },
40
- data: [],
41
- selectorConfig:{}
42
- };
43
- },
44
- created () {
45
- this.init();
46
- },
47
- methods: {
48
- init () {
49
- this.myConfig = Object.assign({}, this.myConfig, this.config);
50
- if (this.dictData) {
51
- this.myConfig.items.forEach(el => {
52
- if (el.dictkey) {
53
- if (el.data === undefined) {
54
- let dictkey = el.dictkey;
55
- if (el.customDictkey) {
56
- dictkey = el.customDictkey;
57
- }
58
- if (this.dictData[dictkey]) {
59
- el.data = this.dictData[dictkey];
60
- }
61
- }
62
- }
63
- });
64
- }
65
- if (this.myConfig.selector && this.myConfig.selector.length > 0) {
66
- this.myConfig.selector.forEach(el => {
67
- if (!this.selectorConfig[el.code]) {
68
- this.selectorConfig[el.code] = {};
69
- this.selectorConfig[el.code].items = [];
70
- }
71
- this.myConfig.items.forEach(el2 => {
72
- if (el.code === el2.selector) {
73
- this.selectorConfig[el.code].items.push(el2);
74
- }
75
- });
76
- });
77
- } else {
78
- this.myConfig.selector = [];
79
- let obj = {};
80
- obj.code = '1';
81
- obj.name = '筛选条件';
82
- if (this.myConfig.rootName){
83
- obj.name = this.myConfig.rootName;
84
- }
85
- this.myConfig.selector.push(obj);
86
- this.selectorConfig[obj.code] = {};
87
- this.selectorConfig[obj.code].items = [];
88
- this.myConfig.items.forEach(el2 => {
89
- el2.selector = obj.code;
90
- this.selectorConfig[obj.code].items.push(el2);
91
- });
92
- }
93
- this.initData();
94
- },
95
- initData() {
96
- this.hackReset = false;
97
- this.data = [];
98
- let root = {};
99
- if (this.myConfig.selector.length === 1) {
100
- root.title = this.myConfig.selector[0].name;
101
- root.isConnector =false;
102
- root.expand =true;
103
- root.selector = this.myConfig.selector[0].code;
104
- root.selectorClass = 1;
105
- root.render = this.renderRootStaticContent;
106
- root.children = [];
107
- let obj = {
108
- title:'连接关系',
109
- operflag:true,
110
- selectorClass:2,
111
- selector:this.myConfig.selector[0].code,
112
- isConnector:true,
113
- expand: true,
114
- form:{'connector':'$and'},
115
- render:this.renderContent,
116
- children:[
117
- {
118
- title:'条件',
119
- operflag:true,
120
- isConnector:false,
121
- expand: true,
122
- selector:this.myConfig.selector[0].code,
123
- selectorClass:3,
124
- }
125
- ]
126
- };
127
- root.children.push(obj);
128
- }
129
- if (this.myConfig.selector.length > 1) {
130
- if (this.myConfig.rootName) {
131
- root.title = this.myConfig.rootName;
132
- } else {
133
- root.title = '筛选条件';
134
- }
135
- root.expand =true;
136
- root.children = [];
137
- root.render = this.renderRootStaticContent;
138
- root.children.push({
139
- title: '连接关系',
140
- isConnector:true,
141
- expand: true,
142
- operflag:false,
143
- selector:'-',
144
- selectorClass:1,
145
- form:{'connector':'$and'},
146
- render:this.renderContent
147
- });
148
- root.children[0].children = [];
149
- this.myConfig.selector.forEach(el => {
150
- let obj = {};
151
- obj.title = el.name,
152
- obj.expand = true;
153
- obj.selectorClass = 2;
154
- obj.selector = el.code;
155
- obj.operflag = false;
156
- obj.render=this.renderRootStaticContent;
157
- obj.children = [];
158
- let temp = {
159
- title:'连接关系',
160
- operflag:true,
161
- selectorClass:3,
162
- selector:el.code,
163
- isConnector:true,
164
- expand: true,
165
- form:{'connector':'$and'},
166
- render:this.renderContent,
167
- children:[
168
- {
169
- title:'条件',
170
- operflag:true,
171
- isConnector:false,
172
- expand: true,
173
- selector:el.code,
174
- selectorClass:4,
175
- }
176
- ]
177
- };
178
- obj.children.push(temp);
179
- root.children[0].children.push(obj);
180
- });
181
- }
182
- this.data.push(root);
183
- this.$nextTick(() =>{
184
- this.hackReset = true;
185
- });
186
- },
187
-
188
- // eslint-disable-next-line no-unused-vars
189
- renderRootContent (h, {root, node, data }) {
190
- let buttonConfig = Object.assign({}, this.buttonProps, {icon: 'ios-add',type: 'primary'});
191
- buttonConfig.style = { width: '64px'};
192
- buttonConfig.onClick = () => { this.append(data); };
193
- return h('div', {
194
- style: {
195
- display: 'block',
196
- width: '100%',
197
- 'line-height':'34px'
198
- }
199
- }, [h('span',data.title),
200
- h('span', {
201
- style: {
202
- display: 'inline-block',
203
- float: 'right',
204
- marginRight: '32px'
205
- }
206
- }, [
207
- h(resolveComponent('Button'), buttonConfig)
208
- ])
209
- ]);
210
- },
211
- renderContent (h, { root, node, data }) {
212
- return h('div',{
213
- style: {
214
- display: 'block',
215
- width: '100%',
216
- 'line-height':'34px'
217
- }
218
- }, [h('span', {
219
- style: {
220
- 'vertical-align':'middle'
221
- }
222
- },data.title),
223
- h('span',{
224
- style: {
225
- display: 'inline-block',
226
- float: 'right',
227
- width:'90%',
228
- marginRight: '32px'
229
- }},[h(resolveComponent('ConditionSelectorBox'),{
230
- isConnector:data.isConnector,
231
- operflag:data.operflag,
232
- config:this.selectorConfig[data.selector],
233
- setOperData:this.setOperData,
234
- valueData:data.form,
235
- onDoAction:(val) =>{
236
- if (val.name === 'doAdd') {
237
- this.append(data);
238
- }
239
- if (val.name === 'doDel') {
240
- this.remove(root, node, data);
241
- }
242
- },
243
- onClick:(form) => {
244
- if (!data.form) {
245
- data.form = {};
246
- }
247
- Object.assign(data.form, form);
248
- }
249
- })])]);
250
- },
251
- // eslint-disable-next-line no-unused-vars
252
- renderRootStaticContent (h, { root, node, data }) {
253
- return h('span',{
254
- style: {
255
- display: 'inline-block',
256
- width: '100%',
257
- 'line-height':'34px'
258
- }
259
- }, [h('span', data.title)]);
260
- },
261
- append (data) {
262
- const children = data.children || [];
263
- let nextClass = Number(data.selectorClass) + 1;
264
- let isConnector = !data.isConnector;
265
- let title ='条件';
266
- if (isConnector) {
267
- title = '连接关系';
268
- let flag = false;
269
- for (let i=0; i<children.length; i++) {
270
- if (children[i].isConnector) {
271
- flag = true;
272
- break;
273
- }
274
- }
275
- if (flag) {
276
- return;
277
- }
278
- }
279
- let obj = {
280
- title:title,
281
- operflag:true,
282
- selectorClass:nextClass,
283
- selector:data.selector,
284
- isConnector:isConnector,
285
- expand: true
286
- };
287
- if (isConnector) {
288
- obj.form = {'connector':'$and'};
289
- }
290
- children.push(obj);
291
- Object.assign(data,{'children':children});
292
- },
293
- setOperData (el, tempData) {
294
- if (this.myConfig.setOperData) {
295
- return this.myConfig.setOperData(el, tempData);
296
- } else {
297
- return tempData;
298
- }
299
- },
300
- remove (root, node, data) {
301
- const parentKey = root.find(el => el === node).parent;
302
- const parent = root.find(el => el.nodeKey === parentKey).node;
303
- const index = parent.children.indexOf(data);
304
- parent.children.splice(index, 1);
305
- },
306
- getQuerySearchParam () {
307
- let para = {};
308
- if (this.myConfig.selector.length === 1){
309
- if (this.data[0].children === undefined) {
310
- return para;
311
- } else {
312
- this.creatSearchParam(this.data[0],para,1);
313
- }
314
- } else {
315
- if (this.data[0].children[0].children === undefined) {
316
- return para;
317
- } else {
318
- this.creatSearchParam(this.data[0].children[0],para,2);
319
- }
320
- }
321
- let temp = [];
322
- this.myConfig.selector.forEach(el=> {
323
- if (para[el.code]) {
324
- temp.push(para[el.code]);
325
- }
326
- });
327
- if (temp.length === 0) {
328
- return {};
329
- } else if (temp.length === 1) {
330
- return this.$Method.copy(temp[0]);
331
- } else {
332
- let obj = {};
333
- obj[this.data[0].children[0].form.connector] = temp;
334
- return obj;
335
- }
336
- },
337
- getQuerySearchParamToString () {
338
- let obj = this.getQuerySearchParam();
339
- let str = '';
340
- str = this.setParaSring(obj,str);
341
- return str;
342
- },
343
- setParaSring(obj,str) {
344
- if (obj.constructor === Array) {
345
- let temp = '';
346
- if (str === '$and') {
347
- str = ' and ';
348
- } else if (str === '$or') {
349
- str = ' or ';
350
- }
351
- obj.forEach(el => {
352
- temp = temp + this.setParaSring(el) + ' ' +str + ' ';
353
- });
354
- if (temp) {
355
- temp = temp.substring(0, temp.length - 5);
356
- }
357
- return temp;
358
- } else {
359
- for (let pro in obj) {
360
- let value = this.$Method.copy(obj[pro]);
361
- if (value.constructor === Array){
362
- return '( ' + this.setParaSring(value,pro) + ' )';
363
- } else {
364
- return this.getCommomParamString(pro,value);
365
- }
366
- }
367
- }
368
- },
369
- getCommomParamString (pro,obj) {
370
- let str = pro ;
371
- for(let temp in obj) {
372
- if (temp === '==') {
373
- str =str + ' = ';
374
- } else {
375
- str =str +' ' + temp + ' ';
376
- }
377
- let v = obj[temp];
378
- let index = this.myConfig.items.findIndex(el => el.name === pro);
379
- if (index > -1) {
380
- if (this.myConfig.dbtype === 'oracle') {
381
- if (this.myConfig.items[index].type === 'DateBox') {
382
- let format = 'yyyy-MM-dd';
383
- if (this.myConfig.items[index].vtype === 'date') {
384
- format = 'yyyy-MM-dd';
385
- } else if (this.myConfig.items[index].vtype === 'datetime') {
386
- format = 'yyyy-MM-dd hh:mm:ss';
387
- } else if (this.myConfig.items[index].vtype ==='month') {
388
- format = 'yyyy-MM';
389
- }
390
- if (this.myConfig.items[index].format) {
391
- format = this.myConfig.items[index].format;
392
- }
393
- v = 'to_date(\'' + v + '\',\'' +format +'\')';
394
- } else {
395
- v = '\'' + v + '\'';
396
- }
397
- } else {
398
- v = '\'' + v + '\'';
399
- }
400
- str = str + v;
401
- return str;
402
- }
403
- }
404
- return '';
405
- },
406
- getCommomParam (obj) {
407
- let param = {};
408
- if (obj.oper === 'LIKE') {
409
- param[obj.field] = {};
410
- param[obj.field][obj.oper] = '%' + obj.value + '%';
411
- } else {
412
- param[obj.field] = {};
413
- if (obj.value.value !== undefined) {
414
- param[obj.field][obj.oper] = obj.value.value;
415
- } else {
416
- param[obj.field][obj.oper] = obj.value;
417
- }
418
- }
419
- return param;
420
- },
421
- creatSearchParam(data,obj,flag) {
422
- data.children.forEach(el => {
423
- if (el.children && el.children.length > 0) {
424
- let temp = null;
425
- if (flag === 2) {
426
- temp = el.children[0];
427
- } else {
428
- temp = el;
429
- }
430
- obj[el.selector] = {};
431
- obj[el.selector][temp.form.connector] = [];
432
- this.creatSearchParamCommon(temp.children,obj[el.selector][temp.form.connector]);
433
- if (obj[el.selector][temp.form.connector].length === 0) {
434
- delete obj[el.selector];
435
- }
436
- }
437
- });
438
- },
439
- creatSearchParamCommon(data,obj) {
440
- if (data && data.length > 0) {
441
- for (let i=0;i<data.length;i++) {
442
- let temp = {};
443
- if (data[i].isConnector) {
444
- temp[data.form.connector] = [];
445
- this.creatSearchParamCommon(data[i].children,temp[data[i].form.connector]);
446
- if (temp[data.form.connector].length > 0) {
447
- obj.push(temp);
448
- }
449
- } else {
450
- if (data[i].form && data[i].form.value) {
451
- if (data[i].children && data[i].children.length > 0) {
452
- let temp = {};
453
- temp[data[i].children[0].form.connector] = [];
454
- this.creatSearchParamCommon(data[i].children[0].children,temp[data[i].children[0].form.connector]);
455
- if (temp[data[i].children[0].form.connector].length > 0) {
456
- temp[data[i].children[0].form.connector].push(this.getCommomParam(data[i].form));
457
- obj.push(temp);
458
- } else {
459
- obj.push(this.getCommomParam(data[i].form));
460
- }
461
- } else {
462
- obj.push(this.getCommomParam(data[i].form));
463
- }
464
- }
465
- }
466
- }
467
- }
468
- },
469
- clearData() {
470
- this.initData();
471
- }
472
- }
473
- };
474
- </script>
475
- <style>
476
- .demo-tree-render .ivu-tree-title{
477
- width: 98%;
478
- }
479
- </style>
1
+ <template>
2
+ <div style="padding-left:10px;padding-right:10px">
3
+ <CompatTree v-if="hackReset" :data="data" :render="renderContent" class="demo-tree-render" @update:data="treeData = $event"></CompatTree>
4
+ </div>
5
+ </template>
6
+ <script>
7
+ import CompatTree from '../tree/CompatTree.vue';
8
+ import { resolveComponent } from 'vue';
9
+ export default {
10
+ name:'conditionfilterbox',
11
+ components : {CompatTree},
12
+ props:{
13
+ config: {
14
+ type: Object,
15
+ default () {
16
+ return {};
17
+ }
18
+ },
19
+ dictData: {
20
+ type: Object,
21
+ default:null
22
+ }
23
+ } ,
24
+ data () {
25
+ return {
26
+ hackReset:true,
27
+ myConfig:{
28
+ dbtype:'oracle',
29
+ rootName:'',
30
+ selector:[],
31
+ items:[]
32
+ },
33
+ root:{
34
+ title: '',
35
+ isConnector:false,
36
+ expand: true,
37
+ selectorClass:1,
38
+ render:this.renderRootContent
39
+ },
40
+ data: [],
41
+ selectorConfig:{}
42
+ };
43
+ },
44
+ created () {
45
+ this.init();
46
+ },
47
+ methods: {
48
+ init () {
49
+ this.myConfig = Object.assign({}, this.myConfig, this.config);
50
+ if (this.dictData) {
51
+ this.myConfig.items.forEach(el => {
52
+ if (el.dictkey) {
53
+ if (el.data === undefined) {
54
+ let dictkey = el.dictkey;
55
+ if (el.customDictkey) {
56
+ dictkey = el.customDictkey;
57
+ }
58
+ if (this.dictData[dictkey]) {
59
+ el.data = this.dictData[dictkey];
60
+ }
61
+ }
62
+ }
63
+ });
64
+ }
65
+ if (this.myConfig.selector && this.myConfig.selector.length > 0) {
66
+ this.myConfig.selector.forEach(el => {
67
+ if (!this.selectorConfig[el.code]) {
68
+ this.selectorConfig[el.code] = {};
69
+ this.selectorConfig[el.code].items = [];
70
+ }
71
+ this.myConfig.items.forEach(el2 => {
72
+ if (el.code === el2.selector) {
73
+ this.selectorConfig[el.code].items.push(el2);
74
+ }
75
+ });
76
+ });
77
+ } else {
78
+ this.myConfig.selector = [];
79
+ let obj = {};
80
+ obj.code = '1';
81
+ obj.name = '筛选条件';
82
+ if (this.myConfig.rootName){
83
+ obj.name = this.myConfig.rootName;
84
+ }
85
+ this.myConfig.selector.push(obj);
86
+ this.selectorConfig[obj.code] = {};
87
+ this.selectorConfig[obj.code].items = [];
88
+ this.myConfig.items.forEach(el2 => {
89
+ el2.selector = obj.code;
90
+ this.selectorConfig[obj.code].items.push(el2);
91
+ });
92
+ }
93
+ this.initData();
94
+ },
95
+ initData() {
96
+ this.hackReset = false;
97
+ this.data = [];
98
+ let root = {};
99
+ if (this.myConfig.selector.length === 1) {
100
+ root.title = this.myConfig.selector[0].name;
101
+ root.isConnector =false;
102
+ root.expand =true;
103
+ root.selector = this.myConfig.selector[0].code;
104
+ root.selectorClass = 1;
105
+ root.render = this.renderRootStaticContent;
106
+ root.children = [];
107
+ let obj = {
108
+ title:'连接关系',
109
+ operflag:true,
110
+ selectorClass:2,
111
+ selector:this.myConfig.selector[0].code,
112
+ isConnector:true,
113
+ expand: true,
114
+ form:{'connector':'$and'},
115
+ render:this.renderContent,
116
+ children:[
117
+ {
118
+ title:'条件',
119
+ operflag:true,
120
+ isConnector:false,
121
+ expand: true,
122
+ selector:this.myConfig.selector[0].code,
123
+ selectorClass:3,
124
+ }
125
+ ]
126
+ };
127
+ root.children.push(obj);
128
+ }
129
+ if (this.myConfig.selector.length > 1) {
130
+ if (this.myConfig.rootName) {
131
+ root.title = this.myConfig.rootName;
132
+ } else {
133
+ root.title = '筛选条件';
134
+ }
135
+ root.expand =true;
136
+ root.children = [];
137
+ root.render = this.renderRootStaticContent;
138
+ root.children.push({
139
+ title: '连接关系',
140
+ isConnector:true,
141
+ expand: true,
142
+ operflag:false,
143
+ selector:'-',
144
+ selectorClass:1,
145
+ form:{'connector':'$and'},
146
+ render:this.renderContent
147
+ });
148
+ root.children[0].children = [];
149
+ this.myConfig.selector.forEach(el => {
150
+ let obj = {};
151
+ obj.title = el.name,
152
+ obj.expand = true;
153
+ obj.selectorClass = 2;
154
+ obj.selector = el.code;
155
+ obj.operflag = false;
156
+ obj.render=this.renderRootStaticContent;
157
+ obj.children = [];
158
+ let temp = {
159
+ title:'连接关系',
160
+ operflag:true,
161
+ selectorClass:3,
162
+ selector:el.code,
163
+ isConnector:true,
164
+ expand: true,
165
+ form:{'connector':'$and'},
166
+ render:this.renderContent,
167
+ children:[
168
+ {
169
+ title:'条件',
170
+ operflag:true,
171
+ isConnector:false,
172
+ expand: true,
173
+ selector:el.code,
174
+ selectorClass:4,
175
+ }
176
+ ]
177
+ };
178
+ obj.children.push(temp);
179
+ root.children[0].children.push(obj);
180
+ });
181
+ }
182
+ this.data.push(root);
183
+ this.$nextTick(() =>{
184
+ this.hackReset = true;
185
+ });
186
+ },
187
+
188
+ // eslint-disable-next-line no-unused-vars
189
+ renderRootContent (h, {root, node, data }) {
190
+ let buttonConfig = Object.assign({}, this.buttonProps, {icon: 'ios-add',type: 'primary'});
191
+ buttonConfig.style = { width: '64px'};
192
+ buttonConfig.onClick = () => { this.append(data); };
193
+ return h('div', {
194
+ style: {
195
+ display: 'block',
196
+ width: '100%',
197
+ 'line-height':'34px'
198
+ }
199
+ }, [h('span',data.title),
200
+ h('span', {
201
+ style: {
202
+ display: 'inline-block',
203
+ float: 'right',
204
+ marginRight: '32px'
205
+ }
206
+ }, [
207
+ h(resolveComponent('Button'), buttonConfig)
208
+ ])
209
+ ]);
210
+ },
211
+ renderContent (h, { root, node, data }) {
212
+ return h('div',{
213
+ style: {
214
+ display: 'block',
215
+ width: '100%',
216
+ 'line-height':'34px'
217
+ }
218
+ }, [h('span', {
219
+ style: {
220
+ 'vertical-align':'middle'
221
+ }
222
+ },data.title),
223
+ h('span',{
224
+ style: {
225
+ display: 'inline-block',
226
+ float: 'right',
227
+ width:'90%',
228
+ marginRight: '32px'
229
+ }},[h(resolveComponent('ConditionSelectorBox'),{
230
+ isConnector:data.isConnector,
231
+ operflag:data.operflag,
232
+ config:this.selectorConfig[data.selector],
233
+ setOperData:this.setOperData,
234
+ valueData:data.form,
235
+ onDoAction:(val) =>{
236
+ if (val.name === 'doAdd') {
237
+ this.append(data);
238
+ }
239
+ if (val.name === 'doDel') {
240
+ this.remove(root, node, data);
241
+ }
242
+ },
243
+ onClick:(form) => {
244
+ if (!data.form) {
245
+ data.form = {};
246
+ }
247
+ Object.assign(data.form, form);
248
+ }
249
+ })])]);
250
+ },
251
+ // eslint-disable-next-line no-unused-vars
252
+ renderRootStaticContent (h, { root, node, data }) {
253
+ return h('span',{
254
+ style: {
255
+ display: 'inline-block',
256
+ width: '100%',
257
+ 'line-height':'34px'
258
+ }
259
+ }, [h('span', data.title)]);
260
+ },
261
+ append (data) {
262
+ const children = data.children || [];
263
+ let nextClass = Number(data.selectorClass) + 1;
264
+ let isConnector = !data.isConnector;
265
+ let title ='条件';
266
+ if (isConnector) {
267
+ title = '连接关系';
268
+ let flag = false;
269
+ for (let i=0; i<children.length; i++) {
270
+ if (children[i].isConnector) {
271
+ flag = true;
272
+ break;
273
+ }
274
+ }
275
+ if (flag) {
276
+ return;
277
+ }
278
+ }
279
+ let obj = {
280
+ title:title,
281
+ operflag:true,
282
+ selectorClass:nextClass,
283
+ selector:data.selector,
284
+ isConnector:isConnector,
285
+ expand: true
286
+ };
287
+ if (isConnector) {
288
+ obj.form = {'connector':'$and'};
289
+ }
290
+ children.push(obj);
291
+ Object.assign(data,{'children':children});
292
+ },
293
+ setOperData (el, tempData) {
294
+ if (this.myConfig.setOperData) {
295
+ return this.myConfig.setOperData(el, tempData);
296
+ } else {
297
+ return tempData;
298
+ }
299
+ },
300
+ remove (root, node, data) {
301
+ const parentKey = root.find(el => el === node).parent;
302
+ const parent = root.find(el => el.nodeKey === parentKey).node;
303
+ const index = parent.children.indexOf(data);
304
+ parent.children.splice(index, 1);
305
+ },
306
+ getQuerySearchParam () {
307
+ let para = {};
308
+ if (this.myConfig.selector.length === 1){
309
+ if (this.data[0].children === undefined) {
310
+ return para;
311
+ } else {
312
+ this.creatSearchParam(this.data[0],para,1);
313
+ }
314
+ } else {
315
+ if (this.data[0].children[0].children === undefined) {
316
+ return para;
317
+ } else {
318
+ this.creatSearchParam(this.data[0].children[0],para,2);
319
+ }
320
+ }
321
+ let temp = [];
322
+ this.myConfig.selector.forEach(el=> {
323
+ if (para[el.code]) {
324
+ temp.push(para[el.code]);
325
+ }
326
+ });
327
+ if (temp.length === 0) {
328
+ return {};
329
+ } else if (temp.length === 1) {
330
+ return this.$Method.copy(temp[0]);
331
+ } else {
332
+ let obj = {};
333
+ obj[this.data[0].children[0].form.connector] = temp;
334
+ return obj;
335
+ }
336
+ },
337
+ getQuerySearchParamToString () {
338
+ let obj = this.getQuerySearchParam();
339
+ let str = '';
340
+ str = this.setParaSring(obj,str);
341
+ return str;
342
+ },
343
+ setParaSring(obj,str) {
344
+ if (obj.constructor === Array) {
345
+ let temp = '';
346
+ if (str === '$and') {
347
+ str = ' and ';
348
+ } else if (str === '$or') {
349
+ str = ' or ';
350
+ }
351
+ obj.forEach(el => {
352
+ temp = temp + this.setParaSring(el) + ' ' +str + ' ';
353
+ });
354
+ if (temp) {
355
+ temp = temp.substring(0, temp.length - 5);
356
+ }
357
+ return temp;
358
+ } else {
359
+ for (let pro in obj) {
360
+ let value = this.$Method.copy(obj[pro]);
361
+ if (value.constructor === Array){
362
+ return '( ' + this.setParaSring(value,pro) + ' )';
363
+ } else {
364
+ return this.getCommomParamString(pro,value);
365
+ }
366
+ }
367
+ }
368
+ },
369
+ getCommomParamString (pro,obj) {
370
+ let str = pro ;
371
+ for(let temp in obj) {
372
+ if (temp === '==') {
373
+ str =str + ' = ';
374
+ } else {
375
+ str =str +' ' + temp + ' ';
376
+ }
377
+ let v = obj[temp];
378
+ let index = this.myConfig.items.findIndex(el => el.name === pro);
379
+ if (index > -1) {
380
+ if (this.myConfig.dbtype === 'oracle') {
381
+ if (this.myConfig.items[index].type === 'DateBox') {
382
+ let format = 'yyyy-MM-dd';
383
+ if (this.myConfig.items[index].vtype === 'date') {
384
+ format = 'yyyy-MM-dd';
385
+ } else if (this.myConfig.items[index].vtype === 'datetime') {
386
+ format = 'yyyy-MM-dd hh:mm:ss';
387
+ } else if (this.myConfig.items[index].vtype ==='month') {
388
+ format = 'yyyy-MM';
389
+ }
390
+ if (this.myConfig.items[index].format) {
391
+ format = this.myConfig.items[index].format;
392
+ }
393
+ v = 'to_date(\'' + v + '\',\'' +format +'\')';
394
+ } else {
395
+ v = '\'' + v + '\'';
396
+ }
397
+ } else {
398
+ v = '\'' + v + '\'';
399
+ }
400
+ str = str + v;
401
+ return str;
402
+ }
403
+ }
404
+ return '';
405
+ },
406
+ getCommomParam (obj) {
407
+ let param = {};
408
+ if (obj.oper === 'LIKE') {
409
+ param[obj.field] = {};
410
+ param[obj.field][obj.oper] = '%' + obj.value + '%';
411
+ } else {
412
+ param[obj.field] = {};
413
+ if (obj.value.value !== undefined) {
414
+ param[obj.field][obj.oper] = obj.value.value;
415
+ } else {
416
+ param[obj.field][obj.oper] = obj.value;
417
+ }
418
+ }
419
+ return param;
420
+ },
421
+ creatSearchParam(data,obj,flag) {
422
+ data.children.forEach(el => {
423
+ if (el.children && el.children.length > 0) {
424
+ let temp = null;
425
+ if (flag === 2) {
426
+ temp = el.children[0];
427
+ } else {
428
+ temp = el;
429
+ }
430
+ obj[el.selector] = {};
431
+ obj[el.selector][temp.form.connector] = [];
432
+ this.creatSearchParamCommon(temp.children,obj[el.selector][temp.form.connector]);
433
+ if (obj[el.selector][temp.form.connector].length === 0) {
434
+ delete obj[el.selector];
435
+ }
436
+ }
437
+ });
438
+ },
439
+ creatSearchParamCommon(data,obj) {
440
+ if (data && data.length > 0) {
441
+ for (let i=0;i<data.length;i++) {
442
+ let temp = {};
443
+ if (data[i].isConnector) {
444
+ temp[data.form.connector] = [];
445
+ this.creatSearchParamCommon(data[i].children,temp[data[i].form.connector]);
446
+ if (temp[data.form.connector].length > 0) {
447
+ obj.push(temp);
448
+ }
449
+ } else {
450
+ if (data[i].form && data[i].form.value) {
451
+ if (data[i].children && data[i].children.length > 0) {
452
+ let temp = {};
453
+ temp[data[i].children[0].form.connector] = [];
454
+ this.creatSearchParamCommon(data[i].children[0].children,temp[data[i].children[0].form.connector]);
455
+ if (temp[data[i].children[0].form.connector].length > 0) {
456
+ temp[data[i].children[0].form.connector].push(this.getCommomParam(data[i].form));
457
+ obj.push(temp);
458
+ } else {
459
+ obj.push(this.getCommomParam(data[i].form));
460
+ }
461
+ } else {
462
+ obj.push(this.getCommomParam(data[i].form));
463
+ }
464
+ }
465
+ }
466
+ }
467
+ }
468
+ },
469
+ clearData() {
470
+ this.initData();
471
+ }
472
+ }
473
+ };
474
+ </script>
475
+ <style>
476
+ .demo-tree-render .ivu-tree-title{
477
+ width: 98%;
478
+ }
479
+ </style>