ocpview-plus 1.3.14 → 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,427 +1,427 @@
1
- <template>
2
- <Card :padding="0" style="padding:14px 16px;" dis-hover>
3
- <Row type="flex" justify="start" align="middle" style="max-height:120px;overflow-y:auto;overflow-x:hidden" >
4
- <Col v-for="temp in data" :key="temp.index" span="12">
5
- <BillConditionBox v-if="reset" :config="myConfig" :ref="temp.index" :curIndex="temp.index" :valueData="temp.form" @doAction="doAction" @inputValue="input"/>
6
- </Col>
7
- </Row>
8
- <Row type="flex" justify="start" align="middle">
9
- <Col span="24" style="margin-bottom:14px">
10
- <p @click.stop="doAdd" style="cursor:pointer">
11
- <Row type="flex" justify="start" align="middle">
12
- <Col>
13
- <Icon custom="iconfont icon-custom-addcond" size="20" color="#AF292E"/>
14
- </Col>
15
- <Col>
16
- <span style="margin-left:18px;color:#AF292E;font-size:14px"> 添加条件 </span>
17
- </Col>
18
- </Row>
19
- </p>
20
- </Col>
21
- </Row>
22
- <Row type="flex" justify="start" align="middle">
23
- <Col style="margin-right:10px">
24
- <Button type="primary" @click="searchFilter" >筛选</Button>
25
- </Col>
26
- <Col >
27
- <Button @click="clearData" >清空筛选值</Button>
28
- </Col>
29
- <Col>
30
- <Divider type="vertical" class="dividercommon" />
31
- </Col>
32
- <Col v-if="!delSceneFlag" >
33
- <Checkbox v-model="saveSceneFlag"><span style="margin-left: 10px;">保存场景</span></Checkbox>
34
- </Col>
35
- <Col v-if="saveSceneFlag || delSceneFlag" style="margin-right:14px">
36
- <Input v-model="scenename" placeholder="请输入场景名称" style="width: 456px" />
37
- </Col>
38
- <Col v-if="saveSceneFlag || delSceneFlag" >
39
- <Button type="info" @click="saveScene" >保存</Button>
40
- </Col>
41
- <Col v-if="delSceneFlag">
42
- <Divider type="vertical" class="dividercommon"/>
43
- </Col>
44
- <Col v-if="delSceneFlag" >
45
- <Button @click="delScene" >删除场景</Button>
46
- </Col>
47
- <Col v-if="delSceneFlag">
48
- <Divider type="vertical" class="dividercommon"/>
49
- </Col>
50
- <Col v-if="delSceneFlag">
51
- <Button @click="addScene">新增</Button>
52
- </Col>
53
- </Row>
54
- </Card>
55
- </template>
56
-
57
- <script>
58
- import BillConditionBox from './billconditionbox';
59
- export default {
60
- name:'mbillconditionsbox',
61
- components: {BillConditionBox},
62
- data () {
63
- return {
64
- saveSceneFlag:false,
65
- delSceneFlag:false,
66
- scenename:'',
67
- reset:true,
68
- data:[],
69
- oldForm:{},
70
- selectorConfig:{}
71
- };
72
- },
73
- props:{
74
- config: {
75
- type: Object,
76
- default () {
77
- return {};
78
- }
79
- },
80
- dictData: {
81
- type: Object,
82
- default() {
83
- return {};
84
- }
85
- }
86
- },
87
- created() {
88
- this.init();
89
- },
90
- methods:{
91
- init () {
92
- this.curlModeType = this.modeType;
93
- this.myConfig = Object.assign({}, this.myConfig, this.config);
94
- if (this.dictData && this.myConfig.items) {
95
- this.myConfig.items.forEach(el => {
96
- if (el.dictkey) {
97
- if (el.data === undefined) {
98
- let dictkey = el.dictkey;
99
- if (el.customDictkey) {
100
- dictkey = el.customDictkey;
101
- }
102
- if (this.dictData[dictkey]) {
103
- el.data = this.dictData[dictkey];
104
- }
105
- }
106
- }
107
- });
108
- }
109
- this.initData();
110
- },
111
- doAction(obj) {
112
- if (obj.name === 'doDel') {
113
- let index = this.data.findIndex(el => el.index === obj.index);
114
- if (index > -1) {
115
- this.data.splice(index ,1);
116
- this.$nextTick(() => {
117
- if (this.data.length === 0) {
118
- let obj = {};
119
- obj.index ='index_0';
120
- obj.form = {};
121
- this.data.push(obj);
122
- }
123
- });
124
- }
125
- }
126
- },
127
- input(e) {
128
- let index = this.data.findIndex(el => el.index === e.index);
129
- if (index > -1) {
130
- let obj = Object.assign({},this.data[index],{form:e.form});
131
- this.data.splice(index,1,obj);
132
- }
133
- },
134
- doAdd() {
135
- let num = this.data.length;
136
- let index = 'index_' + num;
137
- do {
138
- let tempIndex = this.data.findIndex(el => el.index === index);
139
- if (tempIndex > -1) {
140
- num++;
141
- index = 'index_' + num;
142
- } else {
143
- let obj = {};
144
- obj.index = index;
145
- obj.form ={};
146
- this.data.push(obj);
147
- break;
148
- }
149
- } while (true);
150
- },
151
- initData() {
152
- this.data = [];
153
- let obj = {};
154
- obj.index ='index_0';
155
- obj.form = {};
156
- this.data.push(obj);
157
- },
158
- clearData() {
159
- this.data = [];
160
- this.$nextTick(() => {
161
- this.initData();
162
- });
163
- },
164
- getCommomParam (obj, para) {
165
- let param = {};
166
- let config = this.myConfig.items.find(el => el.name === obj.field);
167
- if (config) {
168
- if (config.type === 'DateBox') {
169
- if (!config.vtype || config.vtype === 'date') {
170
- if (obj.oper === '==') {
171
- let temp = {};
172
- temp[obj.field] ={};
173
- temp[obj.field]['>='] = obj.value +' 00:00:00';
174
- let temp2 = {};
175
- temp2[obj.field] ={};
176
- temp2[obj.field]['<='] = obj.value +' 23:59:59';
177
- let temp3 = {};
178
- temp3['$and'] = [];
179
- temp3['$and'].push(temp);
180
- temp3['$and'].push(temp2);
181
- if (para) {
182
- para.push(temp3);
183
- } else {
184
- Object.assign(param,temp3);
185
- }
186
- } else if (obj.oper === '>' || obj.oper === '>=') {
187
- param[obj.field] = {};
188
- if (obj.oper === '>=') {
189
- param[obj.field][obj.oper] = obj.value + ' 00:00:00';
190
- } else {
191
- param[obj.field][obj.oper] = obj.value + ' 23:59:59';
192
- }
193
- } else if (obj.oper === '<' || obj.oper === '<='){
194
- param[obj.field] = {};
195
- if (obj.oper === '<=') {
196
- param[obj.field][obj.oper] = obj.value + ' 23:59:59';
197
- } else {
198
- param[obj.field][obj.oper] = obj.value + ' 00:00:00';
199
- }
200
- } else if (obj.oper === '<>'){
201
- let temp = {};
202
- temp[obj.field] ={};
203
- temp[obj.field]['<'] = obj.value +' 00:00:00';
204
- let temp2 = {};
205
- temp2[obj.field] ={};
206
- temp2[obj.field]['>'] = obj.value +' 23:59:59';
207
- let temp3 = {};
208
- temp3['$or'] = [];
209
- temp3['$or'].push(temp);
210
- temp3['$or'].push(temp2);
211
- if (para) {
212
- para.push(temp3);
213
- } else {
214
- Object.assign(param,temp3);
215
- }
216
- }
217
- } else {
218
- param[obj.field] = {};
219
- if (obj.value.value !== undefined) {
220
- param[obj.field][obj.oper] = obj.value.value;
221
- } else {
222
- param[obj.field][obj.oper] = obj.value;
223
- }
224
- }
225
- } else {
226
- if (obj.oper === 'LIKE') {
227
- param[obj.field] = {};
228
- param[obj.field][obj.oper] = '%' + obj.value + '%';
229
- } else {
230
- param[obj.field] = {};
231
- if (obj.value.value !== undefined) {
232
- param[obj.field][obj.oper] = obj.value.value;
233
- } else {
234
- param[obj.field][obj.oper] = obj.value;
235
- }
236
- }
237
- }
238
-
239
- }
240
-
241
- if (para === undefined) {
242
- return param;
243
- } else {
244
- para.push(param);
245
- }
246
-
247
- },
248
- getQuerySearchParam () {
249
- if (this.data.length === 0) {
250
- return {};
251
- }
252
- if (this.data.length === 1) {
253
- if (this.data[0].form.value || this.data[0].form.value === 0) {
254
- return this.getCommomParam(this.data[0].form);
255
- } else {
256
- return {};
257
- }
258
- }
259
- if (this.data.length > 1) {
260
- let obj = {};
261
- let paraOr = [];
262
- let paraAnd = [];
263
- this.data.forEach(el => {
264
- if (el.form.value || el.form.value === 0) {
265
- if (el.form.relevance === 'or') {
266
- this.getCommomParam(el.form, paraOr);
267
- }
268
- if (el.form.relevance === 'and') {
269
- this.getCommomParam(el.form, paraAnd);
270
- }
271
-
272
- }
273
- });
274
- if (paraOr.length > 0) {
275
- obj['$or'] = paraOr;
276
- }
277
- if (paraAnd.length > 0) {
278
- obj['$and'] = paraAnd;
279
- }
280
- let result = {};
281
- if (paraOr.length > 0 || paraAnd.length > 0) {
282
- result['$and'] = [];
283
- result['$and'].push(obj);
284
- }
285
- return result;
286
- }
287
- },
288
- getData() {
289
- let tmp = {};
290
- tmp.scenename = this.scenename;
291
- tmp.data = JSON.stringify(this.$Method.copy(this.data));
292
- let result = Object.assign({},this.oldForm,tmp);
293
- return result;
294
- },
295
- setData(obj) {
296
- this.data = [];
297
- this.scenename = '';
298
- if (obj.data) {
299
- this.data = JSON.parse(obj.data);
300
- }
301
- if (obj.scenename) {
302
- this.scenename = obj.scenename;
303
- }
304
- this.oldForm = this.$Method.copy(obj);
305
- this.delSceneFlag = true;
306
- this.reset = false;
307
- this.$nextTick(() => {
308
- this.reset = true;
309
- })
310
- },
311
- searchFilter() {
312
- let temp = {};
313
- temp.name = 'condition_searchFilter';
314
- temp.para = this.getQuerySearchParam();
315
- this.$emit('conditionAction',temp);
316
- },
317
- closeFilter (){
318
- let temp = {};
319
- temp.name = 'condition_closeFilter';
320
- this.$emit('conditionAction',temp);
321
- },
322
- addScene () {
323
- this.delSceneFlag = false;
324
- this.saveSceneFlag = false;
325
- this.oldForm = {};
326
- this.initData();
327
- this.reset = false;
328
- this.$nextTick(() => {
329
- this.reset = true;
330
- });
331
- },
332
- saveScene() {
333
- let temp = {};
334
- temp.name = 'saveScene';
335
- temp.para = Object.assign({},this.oldForm,this.getData());
336
- if (this.delSceneFlag) {
337
- temp.para.flag = 'U';
338
- } else {
339
- temp.para.flag = 'I';
340
- }
341
- this.$emit('doAction',temp);
342
- this.$nextTick(() => {
343
- if (!this.delSceneFlag) {
344
- this.delSceneFlag = true;
345
- }
346
- });
347
- },
348
- delScene() {
349
- let temp = {};
350
- temp.name = 'saveScene';
351
- temp.para = Object.assign({},this.oldForm,this.getData());
352
- temp.para.flag ='D';
353
- this.$emit('doAction',temp);
354
- }
355
- }
356
- };
357
- </script>
358
-
359
- <style lang="less" scoped>
360
- .masterplate {
361
- .querybar {
362
- .ivu-input {
363
- height:40px;
364
- }
365
- .ivu-select-single {
366
- .ivu-select-selection {
367
- height: 40px;
368
- position: relative;
369
- }
370
- }
371
-
372
- .ivu-btn {
373
- height:40px;
374
- }
375
- .ivu-btn-red {
376
- color: #fff;
377
- background-color: #AF292E;
378
- }
379
- .ivu-btn-red:hover {
380
- background-color: #FFB5B8;
381
- border-color: #FFB5B8;
382
- }
383
- .ivu-btn-red :focus {
384
- background-color: #7A2531;
385
- border-color: #7A2531;
386
- }
387
- .ivu-btn-black {
388
- color: #fff;
389
- background-color: #4D4E53;
390
- }
391
-
392
- .ivu-btn-black:hover {
393
- background-color: #CDD0D6;
394
- border-color: #CDD0D6;;
395
- }
396
- .ivu-btn-black:focus {
397
- background-color: #000000;
398
- border-color: #000000;;
399
- }
400
- .ivu-btn-default:hover {
401
- color: #EF6E73;
402
- background-color: #FFF9F9;
403
- border-color: #EF6E73;;
404
- }
405
- .ivu-btn-default:focus {
406
- color: #DF3D43;
407
- background-color: #FFF9F9;
408
- border-color: #DF3D43;
409
- }
410
- .modulecodetext {
411
- height:40px;
412
- text-align:center;
413
- vertical-align: middle;
414
- background-color: #F5F7FA;
415
- line-height: 40px;
416
- padding: 0 15px;
417
- }
418
- .dividercommon {
419
- margin:1px 12px 0 12px;
420
- height:32px;
421
- }
422
- }
423
-
424
- }
425
-
426
-
427
- </style>
1
+ <template>
2
+ <Card :padding="0" style="padding:14px 16px;" dis-hover>
3
+ <Row type="flex" justify="start" align="middle" style="max-height:120px;overflow-y:auto;overflow-x:hidden" >
4
+ <Col v-for="temp in data" :key="temp.index" span="12">
5
+ <BillConditionBox v-if="reset" :config="myConfig" :ref="temp.index" :curIndex="temp.index" :valueData="temp.form" @doAction="doAction" @inputValue="input"/>
6
+ </Col>
7
+ </Row>
8
+ <Row type="flex" justify="start" align="middle">
9
+ <Col span="24" style="margin-bottom:14px">
10
+ <p @click.stop="doAdd" style="cursor:pointer">
11
+ <Row type="flex" justify="start" align="middle">
12
+ <Col>
13
+ <Icon custom="iconfont icon-custom-addcond" size="20" color="#AF292E"/>
14
+ </Col>
15
+ <Col>
16
+ <span style="margin-left:18px;color:#AF292E;font-size:14px"> 添加条件 </span>
17
+ </Col>
18
+ </Row>
19
+ </p>
20
+ </Col>
21
+ </Row>
22
+ <Row type="flex" justify="start" align="middle">
23
+ <Col style="margin-right:10px">
24
+ <Button type="primary" @click="searchFilter" >筛选</Button>
25
+ </Col>
26
+ <Col >
27
+ <Button @click="clearData" >清空筛选值</Button>
28
+ </Col>
29
+ <Col>
30
+ <Divider type="vertical" class="dividercommon" />
31
+ </Col>
32
+ <Col v-if="!delSceneFlag" >
33
+ <Checkbox v-model="saveSceneFlag"><span style="margin-left: 10px;">保存场景</span></Checkbox>
34
+ </Col>
35
+ <Col v-if="saveSceneFlag || delSceneFlag" style="margin-right:14px">
36
+ <Input v-model="scenename" placeholder="请输入场景名称" style="width: 456px" />
37
+ </Col>
38
+ <Col v-if="saveSceneFlag || delSceneFlag" >
39
+ <Button type="info" @click="saveScene" >保存</Button>
40
+ </Col>
41
+ <Col v-if="delSceneFlag">
42
+ <Divider type="vertical" class="dividercommon"/>
43
+ </Col>
44
+ <Col v-if="delSceneFlag" >
45
+ <Button @click="delScene" >删除场景</Button>
46
+ </Col>
47
+ <Col v-if="delSceneFlag">
48
+ <Divider type="vertical" class="dividercommon"/>
49
+ </Col>
50
+ <Col v-if="delSceneFlag">
51
+ <Button @click="addScene">新增</Button>
52
+ </Col>
53
+ </Row>
54
+ </Card>
55
+ </template>
56
+
57
+ <script>
58
+ import BillConditionBox from './billconditionbox';
59
+ export default {
60
+ name:'mbillconditionsbox',
61
+ components: {BillConditionBox},
62
+ data () {
63
+ return {
64
+ saveSceneFlag:false,
65
+ delSceneFlag:false,
66
+ scenename:'',
67
+ reset:true,
68
+ data:[],
69
+ oldForm:{},
70
+ selectorConfig:{}
71
+ };
72
+ },
73
+ props:{
74
+ config: {
75
+ type: Object,
76
+ default () {
77
+ return {};
78
+ }
79
+ },
80
+ dictData: {
81
+ type: Object,
82
+ default() {
83
+ return {};
84
+ }
85
+ }
86
+ },
87
+ created() {
88
+ this.init();
89
+ },
90
+ methods:{
91
+ init () {
92
+ this.curlModeType = this.modeType;
93
+ this.myConfig = Object.assign({}, this.myConfig, this.config);
94
+ if (this.dictData && this.myConfig.items) {
95
+ this.myConfig.items.forEach(el => {
96
+ if (el.dictkey) {
97
+ if (el.data === undefined) {
98
+ let dictkey = el.dictkey;
99
+ if (el.customDictkey) {
100
+ dictkey = el.customDictkey;
101
+ }
102
+ if (this.dictData[dictkey]) {
103
+ el.data = this.dictData[dictkey];
104
+ }
105
+ }
106
+ }
107
+ });
108
+ }
109
+ this.initData();
110
+ },
111
+ doAction(obj) {
112
+ if (obj.name === 'doDel') {
113
+ let index = this.data.findIndex(el => el.index === obj.index);
114
+ if (index > -1) {
115
+ this.data.splice(index ,1);
116
+ this.$nextTick(() => {
117
+ if (this.data.length === 0) {
118
+ let obj = {};
119
+ obj.index ='index_0';
120
+ obj.form = {};
121
+ this.data.push(obj);
122
+ }
123
+ });
124
+ }
125
+ }
126
+ },
127
+ input(e) {
128
+ let index = this.data.findIndex(el => el.index === e.index);
129
+ if (index > -1) {
130
+ let obj = Object.assign({},this.data[index],{form:e.form});
131
+ this.data.splice(index,1,obj);
132
+ }
133
+ },
134
+ doAdd() {
135
+ let num = this.data.length;
136
+ let index = 'index_' + num;
137
+ do {
138
+ let tempIndex = this.data.findIndex(el => el.index === index);
139
+ if (tempIndex > -1) {
140
+ num++;
141
+ index = 'index_' + num;
142
+ } else {
143
+ let obj = {};
144
+ obj.index = index;
145
+ obj.form ={};
146
+ this.data.push(obj);
147
+ break;
148
+ }
149
+ } while (true);
150
+ },
151
+ initData() {
152
+ this.data = [];
153
+ let obj = {};
154
+ obj.index ='index_0';
155
+ obj.form = {};
156
+ this.data.push(obj);
157
+ },
158
+ clearData() {
159
+ this.data = [];
160
+ this.$nextTick(() => {
161
+ this.initData();
162
+ });
163
+ },
164
+ getCommomParam (obj, para) {
165
+ let param = {};
166
+ let config = this.myConfig.items.find(el => el.name === obj.field);
167
+ if (config) {
168
+ if (config.type === 'DateBox') {
169
+ if (!config.vtype || config.vtype === 'date') {
170
+ if (obj.oper === '==') {
171
+ let temp = {};
172
+ temp[obj.field] ={};
173
+ temp[obj.field]['>='] = obj.value +' 00:00:00';
174
+ let temp2 = {};
175
+ temp2[obj.field] ={};
176
+ temp2[obj.field]['<='] = obj.value +' 23:59:59';
177
+ let temp3 = {};
178
+ temp3['$and'] = [];
179
+ temp3['$and'].push(temp);
180
+ temp3['$and'].push(temp2);
181
+ if (para) {
182
+ para.push(temp3);
183
+ } else {
184
+ Object.assign(param,temp3);
185
+ }
186
+ } else if (obj.oper === '>' || obj.oper === '>=') {
187
+ param[obj.field] = {};
188
+ if (obj.oper === '>=') {
189
+ param[obj.field][obj.oper] = obj.value + ' 00:00:00';
190
+ } else {
191
+ param[obj.field][obj.oper] = obj.value + ' 23:59:59';
192
+ }
193
+ } else if (obj.oper === '<' || obj.oper === '<='){
194
+ param[obj.field] = {};
195
+ if (obj.oper === '<=') {
196
+ param[obj.field][obj.oper] = obj.value + ' 23:59:59';
197
+ } else {
198
+ param[obj.field][obj.oper] = obj.value + ' 00:00:00';
199
+ }
200
+ } else if (obj.oper === '<>'){
201
+ let temp = {};
202
+ temp[obj.field] ={};
203
+ temp[obj.field]['<'] = obj.value +' 00:00:00';
204
+ let temp2 = {};
205
+ temp2[obj.field] ={};
206
+ temp2[obj.field]['>'] = obj.value +' 23:59:59';
207
+ let temp3 = {};
208
+ temp3['$or'] = [];
209
+ temp3['$or'].push(temp);
210
+ temp3['$or'].push(temp2);
211
+ if (para) {
212
+ para.push(temp3);
213
+ } else {
214
+ Object.assign(param,temp3);
215
+ }
216
+ }
217
+ } else {
218
+ param[obj.field] = {};
219
+ if (obj.value.value !== undefined) {
220
+ param[obj.field][obj.oper] = obj.value.value;
221
+ } else {
222
+ param[obj.field][obj.oper] = obj.value;
223
+ }
224
+ }
225
+ } else {
226
+ if (obj.oper === 'LIKE') {
227
+ param[obj.field] = {};
228
+ param[obj.field][obj.oper] = '%' + obj.value + '%';
229
+ } else {
230
+ param[obj.field] = {};
231
+ if (obj.value.value !== undefined) {
232
+ param[obj.field][obj.oper] = obj.value.value;
233
+ } else {
234
+ param[obj.field][obj.oper] = obj.value;
235
+ }
236
+ }
237
+ }
238
+
239
+ }
240
+
241
+ if (para === undefined) {
242
+ return param;
243
+ } else {
244
+ para.push(param);
245
+ }
246
+
247
+ },
248
+ getQuerySearchParam () {
249
+ if (this.data.length === 0) {
250
+ return {};
251
+ }
252
+ if (this.data.length === 1) {
253
+ if (this.data[0].form.value || this.data[0].form.value === 0) {
254
+ return this.getCommomParam(this.data[0].form);
255
+ } else {
256
+ return {};
257
+ }
258
+ }
259
+ if (this.data.length > 1) {
260
+ let obj = {};
261
+ let paraOr = [];
262
+ let paraAnd = [];
263
+ this.data.forEach(el => {
264
+ if (el.form.value || el.form.value === 0) {
265
+ if (el.form.relevance === 'or') {
266
+ this.getCommomParam(el.form, paraOr);
267
+ }
268
+ if (el.form.relevance === 'and') {
269
+ this.getCommomParam(el.form, paraAnd);
270
+ }
271
+
272
+ }
273
+ });
274
+ if (paraOr.length > 0) {
275
+ obj['$or'] = paraOr;
276
+ }
277
+ if (paraAnd.length > 0) {
278
+ obj['$and'] = paraAnd;
279
+ }
280
+ let result = {};
281
+ if (paraOr.length > 0 || paraAnd.length > 0) {
282
+ result['$and'] = [];
283
+ result['$and'].push(obj);
284
+ }
285
+ return result;
286
+ }
287
+ },
288
+ getData() {
289
+ let tmp = {};
290
+ tmp.scenename = this.scenename;
291
+ tmp.data = JSON.stringify(this.$Method.copy(this.data));
292
+ let result = Object.assign({},this.oldForm,tmp);
293
+ return result;
294
+ },
295
+ setData(obj) {
296
+ this.data = [];
297
+ this.scenename = '';
298
+ if (obj.data) {
299
+ this.data = JSON.parse(obj.data);
300
+ }
301
+ if (obj.scenename) {
302
+ this.scenename = obj.scenename;
303
+ }
304
+ this.oldForm = this.$Method.copy(obj);
305
+ this.delSceneFlag = true;
306
+ this.reset = false;
307
+ this.$nextTick(() => {
308
+ this.reset = true;
309
+ })
310
+ },
311
+ searchFilter() {
312
+ let temp = {};
313
+ temp.name = 'condition_searchFilter';
314
+ temp.para = this.getQuerySearchParam();
315
+ this.$emit('conditionAction',temp);
316
+ },
317
+ closeFilter (){
318
+ let temp = {};
319
+ temp.name = 'condition_closeFilter';
320
+ this.$emit('conditionAction',temp);
321
+ },
322
+ addScene () {
323
+ this.delSceneFlag = false;
324
+ this.saveSceneFlag = false;
325
+ this.oldForm = {};
326
+ this.initData();
327
+ this.reset = false;
328
+ this.$nextTick(() => {
329
+ this.reset = true;
330
+ });
331
+ },
332
+ saveScene() {
333
+ let temp = {};
334
+ temp.name = 'saveScene';
335
+ temp.para = Object.assign({},this.oldForm,this.getData());
336
+ if (this.delSceneFlag) {
337
+ temp.para.flag = 'U';
338
+ } else {
339
+ temp.para.flag = 'I';
340
+ }
341
+ this.$emit('doAction',temp);
342
+ this.$nextTick(() => {
343
+ if (!this.delSceneFlag) {
344
+ this.delSceneFlag = true;
345
+ }
346
+ });
347
+ },
348
+ delScene() {
349
+ let temp = {};
350
+ temp.name = 'saveScene';
351
+ temp.para = Object.assign({},this.oldForm,this.getData());
352
+ temp.para.flag ='D';
353
+ this.$emit('doAction',temp);
354
+ }
355
+ }
356
+ };
357
+ </script>
358
+
359
+ <style lang="less" scoped>
360
+ .masterplate {
361
+ .querybar {
362
+ .ivu-input {
363
+ height:40px;
364
+ }
365
+ .ivu-select-single {
366
+ .ivu-select-selection {
367
+ height: 40px;
368
+ position: relative;
369
+ }
370
+ }
371
+
372
+ .ivu-btn {
373
+ height:40px;
374
+ }
375
+ .ivu-btn-red {
376
+ color: #fff;
377
+ background-color: #AF292E;
378
+ }
379
+ .ivu-btn-red:hover {
380
+ background-color: #FFB5B8;
381
+ border-color: #FFB5B8;
382
+ }
383
+ .ivu-btn-red :focus {
384
+ background-color: #7A2531;
385
+ border-color: #7A2531;
386
+ }
387
+ .ivu-btn-black {
388
+ color: #fff;
389
+ background-color: #4D4E53;
390
+ }
391
+
392
+ .ivu-btn-black:hover {
393
+ background-color: #CDD0D6;
394
+ border-color: #CDD0D6;;
395
+ }
396
+ .ivu-btn-black:focus {
397
+ background-color: #000000;
398
+ border-color: #000000;;
399
+ }
400
+ .ivu-btn-default:hover {
401
+ color: #EF6E73;
402
+ background-color: #FFF9F9;
403
+ border-color: #EF6E73;;
404
+ }
405
+ .ivu-btn-default:focus {
406
+ color: #DF3D43;
407
+ background-color: #FFF9F9;
408
+ border-color: #DF3D43;
409
+ }
410
+ .modulecodetext {
411
+ height:40px;
412
+ text-align:center;
413
+ vertical-align: middle;
414
+ background-color: #F5F7FA;
415
+ line-height: 40px;
416
+ padding: 0 15px;
417
+ }
418
+ .dividercommon {
419
+ margin:1px 12px 0 12px;
420
+ height:32px;
421
+ }
422
+ }
423
+
424
+ }
425
+
426
+
427
+ </style>