ocpview-plus 1.3.15 → 1.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/README.md +55 -43
  2. package/dist/ocpviewplus.min.esm.js +574 -482
  3. package/dist/ocpviewplus.min.js +9 -9
  4. package/dist/style.css +1 -1
  5. package/dist/styles/efviewplus.css +1 -1
  6. package/package.json +146 -146
  7. package/src/components/base/ContractPrintMixins.js +30 -30
  8. package/src/components/base/controlbase.vue +190 -190
  9. package/src/components/base/controlbox.vue +102 -102
  10. package/src/components/base/index.js +2 -2
  11. package/src/components/base/load.js +19 -19
  12. package/src/components/base/probase.js +220 -220
  13. package/src/components/base/size.js +78 -78
  14. package/src/components/billbox/billbox.vue +67 -67
  15. package/src/components/billbox/index.js +1 -1
  16. package/src/components/cascaderbox/cascaderbox.vue +184 -184
  17. package/src/components/cascaderbox/index.js +2 -2
  18. package/src/components/checkbox/checkbox.vue +75 -75
  19. package/src/components/checkbox/checkgroupbox.vue +103 -103
  20. package/src/components/checkbox/index.js +2 -2
  21. package/src/components/colorbox/colorbox.vue +43 -43
  22. package/src/components/colorbox/index.js +1 -1
  23. package/src/components/combobox/combobox.vue +219 -219
  24. package/src/components/combobox/index.js +1 -1
  25. package/src/components/conditionbox/conditionbase.vue +194 -194
  26. package/src/components/conditionbox/conditionbox.vue +62 -62
  27. package/src/components/conditionbox/conditionfilterbox.vue +479 -479
  28. package/src/components/conditionbox/conditionselectorbox.vue +237 -237
  29. package/src/components/conditionbox/index.js +4 -4
  30. package/src/components/conditionbox/queryconditionbox.vue +25 -25
  31. package/src/components/conditionbox/queryconditionboxbase.vue +123 -123
  32. package/src/components/conditionbox/searchconditionbox.vue +113 -113
  33. package/src/components/conditionbox/searchgrid.vue +391 -391
  34. package/src/components/datebox/DateBoxV1.vue +22 -22
  35. package/src/components/datebox/datebox.vue +129 -129
  36. package/src/components/datebox/daterangebox.vue +154 -154
  37. package/src/components/datebox/index.js +5 -5
  38. package/src/components/form/baseform.vue +676 -676
  39. package/src/components/form/detailsbox.vue +487 -487
  40. package/src/components/form/formbox.vue +28 -28
  41. package/src/components/form/formcardbox.vue +267 -267
  42. package/src/components/form/formcardbox2.vue +228 -228
  43. package/src/components/form/formcardgroupbox.vue +251 -251
  44. package/src/components/form/formcompro.js +18 -18
  45. package/src/components/form/formdetail.vue +128 -128
  46. package/src/components/form/formdetailtwo.vue +302 -302
  47. package/src/components/form/index.js +9 -9
  48. package/src/components/form/toolanchor.js +45 -45
  49. package/src/components/form/workform.vue +167 -167
  50. package/src/components/grid/basegrid.vue +1062 -1062
  51. package/src/components/grid/editgrid.vue +51 -51
  52. package/src/components/grid/editgridbase.vue +1062 -1062
  53. package/src/components/grid/editgridcard.vue +193 -193
  54. package/src/components/grid/expandrow.vue +137 -137
  55. package/src/components/grid/index.js +5 -5
  56. package/src/components/grid/viewgrid.vue +121 -121
  57. package/src/components/grid/viewgridbase.vue +1286 -1286
  58. package/src/components/icon/common-icon.vue +53 -53
  59. package/src/components/icon/eicon.vue +28 -28
  60. package/src/components/icon/icons.vue +42 -42
  61. package/src/components/icon/index.js +1 -1
  62. package/src/components/label/index.js +2 -2
  63. package/src/components/label/showtext.vue +94 -94
  64. package/src/components/load/loadcartoon.vue +227 -227
  65. package/src/components/map/index.js +1 -1
  66. package/src/components/map/mapbox.vue +348 -348
  67. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanel.vue +184 -184
  68. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTable.vue +838 -838
  69. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlbox.vue +126 -126
  70. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlboxNumberbox.vue +27 -27
  71. package/src/components/masterplate/RewriteBillListDetails/BillListPanel.vue +126 -126
  72. package/src/components/masterplate/RewriteBillListDetails/BillListPanelQueryBar.vue +280 -280
  73. package/src/components/masterplate/RewriteBillListDetails/BillListPanelTable.vue +346 -346
  74. package/src/components/masterplate/RewriteBillListDetails/index.vue +325 -325
  75. package/src/components/masterplate/RewriteBillListDetails/mixins/useVxeGridEditTypeKeydownEventHook.js +251 -251
  76. package/src/components/masterplate/RewriteListdetails/BillListPanelV2.vue +115 -115
  77. package/src/components/masterplate/RewriteListdetails/BillListPanelV2QueryBar.vue +24 -24
  78. package/src/components/masterplate/RewriteListdetails/BillListPanelV3.vue +121 -121
  79. package/src/components/masterplate/RewriteListdetails/BillListPanelV3QueryBar.vue +275 -275
  80. package/src/components/masterplate/RewriteListdetails/indexV2.vue +320 -320
  81. package/src/components/masterplate/RewriteListdetails/indexV3.vue +331 -331
  82. package/src/components/masterplate/appendix.vue +586 -586
  83. package/src/components/masterplate/approval.vue +863 -863
  84. package/src/components/masterplate/base.vue +1028 -1028
  85. package/src/components/masterplate/billasyncimport.vue +614 -614
  86. package/src/components/masterplate/billconditionbox.vue +223 -223
  87. package/src/components/masterplate/billconditionsbox.vue +427 -427
  88. package/src/components/masterplate/billdetailform.vue +1028 -1028
  89. package/src/components/masterplate/billimport.vue +301 -301
  90. package/src/components/masterplate/billquerygrid.vue +391 -391
  91. package/src/components/masterplate/billsinglegrid.vue +234 -234
  92. package/src/components/masterplate/birtreport.vue +185 -185
  93. package/src/components/masterplate/contractappendix.vue +688 -688
  94. package/src/components/masterplate/detailbtntoolbar.vue +311 -311
  95. package/src/components/masterplate/detailsbox.vue +386 -386
  96. package/src/components/masterplate/editgridcard.vue +292 -292
  97. package/src/components/masterplate/editgridcard2.vue +127 -127
  98. package/src/components/masterplate/formcard.vue +105 -105
  99. package/src/components/masterplate/formcardgroupbox.vue +167 -167
  100. package/src/components/masterplate/formdetailtwo.vue +366 -366
  101. package/src/components/masterplate/gridcolset.vue +226 -226
  102. package/src/components/masterplate/index.js +54 -54
  103. package/src/components/masterplate/layouttemplate.vue +51 -51
  104. package/src/components/masterplate/leftlistrightdetails.vue +581 -581
  105. package/src/components/masterplate/leftlistrightlist.vue +464 -464
  106. package/src/components/masterplate/lefttreerightdetails.vue +636 -636
  107. package/src/components/masterplate/levelreport.vue +510 -510
  108. package/src/components/masterplate/listbtntoolbar.vue +276 -276
  109. package/src/components/masterplate/listdetails.vue +768 -768
  110. package/src/components/masterplate/operlog.vue +272 -272
  111. package/src/components/masterplate/options.vue +110 -110
  112. package/src/components/masterplate/page.vue +102 -102
  113. package/src/components/masterplate/promptmessage.vue +73 -73
  114. package/src/components/masterplate/querybar.vue +490 -490
  115. package/src/components/masterplate/report.vue +357 -357
  116. package/src/components/masterplate/rowbtntoolbar.vue +126 -126
  117. package/src/components/masterplate/simpletree.vue +137 -137
  118. package/src/components/masterplate/simpleviewgrid.vue +144 -144
  119. package/src/components/mychart/bar/bar.vue +201 -201
  120. package/src/components/mychart/basechart.vue +190 -190
  121. package/src/components/mychart/complexmychart/barline.vue +153 -153
  122. package/src/components/mychart/gauge/gauge.vue +82 -82
  123. package/src/components/mychart/index.js +8 -8
  124. package/src/components/mychart/line/line.vue +201 -201
  125. package/src/components/mychart/liquidfill/liquidfill.vue +108 -108
  126. package/src/components/mychart/pie/pie.vue +95 -95
  127. package/src/components/mychart/radar/radar.vue +121 -121
  128. package/src/components/mychart/scatter/scatter.vue +75 -75
  129. package/src/components/numberbox/NumberBoxV1.vue +39 -39
  130. package/src/components/numberbox/append.js +11 -11
  131. package/src/components/numberbox/index.js +4 -4
  132. package/src/components/numberbox/numberbox.vue +302 -302
  133. package/src/components/numberbox/numberrangebox.vue +422 -422
  134. package/src/components/picturebox/filebox.vue +369 -369
  135. package/src/components/picturebox/index.js +2 -2
  136. package/src/components/picturebox/picturebox.vue +541 -541
  137. package/src/components/picturebox/uploadbox.vue +164 -164
  138. package/src/components/poptagbox/index.js +1 -1
  139. package/src/components/poptagbox/poptagbox.vue +388 -388
  140. package/src/components/poptextbox/index.js +1 -1
  141. package/src/components/poptextbox/poptextbox.vue +624 -624
  142. package/src/components/radiobox/index.js +1 -1
  143. package/src/components/radiobox/radiogroupbox.vue +75 -75
  144. package/src/components/richtextbox/editor.vue +150 -150
  145. package/src/components/richtextbox/index.js +1 -1
  146. package/src/components/richtextbox/richtextbox.vue +448 -448
  147. package/src/components/textbox/index.js +1 -1
  148. package/src/components/textbox/textbox.vue +97 -97
  149. package/src/components/timebox/index.js +1 -1
  150. package/src/components/timebox/timebox.vue +75 -75
  151. package/src/components/toolbar/ebutton.vue +169 -169
  152. package/src/components/toolbar/index.js +3 -3
  153. package/src/components/toolbar/toolbar.vue +445 -445
  154. package/src/components/tree/CompatTree.vue +297 -297
  155. package/src/components/tree/basetree.vue +1098 -1098
  156. package/src/components/tree/index.js +2 -2
  157. package/src/components/tree/treedata.vue +53 -53
  158. package/src/components/tree/treedatabase.vue +189 -189
  159. package/src/components/upload/billimport.vue +233 -233
  160. package/src/components/upload/index.js +1 -1
  161. package/src/components/videobox/index.js +1 -1
  162. package/src/components/videobox/uploadbox.vue +148 -148
  163. package/src/components/videobox/videobox.vue +503 -503
  164. package/src/components/wrichtextbox/editor.vue +219 -219
  165. package/src/components/wrichtextbox/index.js +1 -1
  166. package/src/components/wrichtextbox/wrichtextbox.vue +62 -62
  167. package/src/index.js +231 -231
  168. package/src/locale/format.js +51 -51
  169. package/src/locale/index.js +63 -63
  170. package/src/locale/lang/zh-CN.js +123 -123
  171. package/src/locale/lang/zh-TW.js +114 -114
  172. package/src/locale/lang/zh-UG.js +115 -115
  173. package/src/locale/lang.js +15 -15
  174. package/src/method/case/case.js +1274 -1274
  175. package/src/method/config/queryconfig.js +24 -24
  176. package/src/method/const/const.js +815 -815
  177. package/src/method/index.js +7 -7
  178. package/src/plugins/theme/theme-variable.css +114 -114
  179. package/src/plugins/vxeTable/index.js +241 -241
  180. package/src/plugins/vxeTable/renderer/components/TableFilterInput.vue +51 -51
  181. package/src/plugins/vxeTable/renderer/filter.js +32 -32
  182. package/src/static/excel/exportexcel.js +626 -626
  183. package/src/static/iview/coustom.js +462 -462
  184. package/src/store/index.js +18 -18
  185. package/src/store/modules/app.js +53 -53
  186. package/src/styles/README.md +3 -3
  187. package/src/styles/common.less +80 -80
  188. package/src/styles/components/anchor.less +74 -74
  189. package/src/styles/components/approval.less +135 -135
  190. package/src/styles/components/button.less +208 -208
  191. package/src/styles/components/card.less +51 -51
  192. package/src/styles/components/content.less +38 -38
  193. package/src/styles/components/font.less +313 -313
  194. package/src/styles/components/form.less +71 -71
  195. package/src/styles/components/iconfont/fonts/iconfont.less +1384 -1384
  196. package/src/styles/components/iconfont/fonts/iconfont.svg +703 -703
  197. package/src/styles/components/index.less +16 -16
  198. package/src/styles/components/input.less +290 -290
  199. package/src/styles/components/modal.less +203 -203
  200. package/src/styles/components/page.less +340 -340
  201. package/src/styles/components/select.less +361 -361
  202. package/src/styles/components/steps.less +367 -367
  203. package/src/styles/components/table.less +544 -544
  204. package/src/styles/components/tabs.less +249 -249
  205. package/src/styles/components/upload.less +82 -82
  206. package/src/styles/custom.less +67 -67
  207. package/src/styles/index.less +6 -6
  208. package/src/styles/pack.less +6 -6
  209. package/src/utils/EfuMessenger.js +155 -155
  210. package/src/utils/assist.js +353 -353
  211. package/src/utils/index.js +1 -1
  212. package/src/utils/random_str.js +10 -10
  213. package/src/components/masterplate/detailgridbox.vue +0 -386
@@ -1,357 +1,357 @@
1
- <template>
2
- <Card :padding="0" dis-hover :bordered="false" :style="'background:#fff;overflow:hidden;height:' + clientHeight +'px'">
3
- <div ref="toolbarcard" >
4
- <Card :padding="0" style="padding-top:14px;padding-left:16px;padding-right:16px;border-radius:0px;" :bordered="false" dis-hover>
5
- <ListBtnToolbar ref="menutoolbar" :config="menuToolbar" :moduleMethod="moduleMethod" @doAction="doAction"/>
6
- <Divider style="margin-top:16px;margin-bottom:0px;" />
7
- </Card>
8
- </div>
9
- <div ref="formcard">
10
- <Card :padding="0" dis-hover :bordered="false" style="padding-left:14px;padding-right:14px;padding-top:0px;padding-bottom:0px">
11
- <Formcards ref="form" :config="myConfig.formConfig" :dictData="dictData"/>
12
- </Card>
13
- </div>
14
- <Tabs v-if="myConfig.tabFlag" class="tabmode" v-model='curTab' @on-click="tabClick">
15
- <TabPane v-for="(item,index) in myConfig.tabConfig" :label="item.title" style="background:#fff" :name="item.code" :key="index">
16
- <SimpleViewGrid :ref="item.code" :config="myConfig[item.gridName]" :dictData="dictData" @dbclick="dbclick" />
17
- </TabPane>
18
- </Tabs>
19
- <Card v-else :padding="0" style="padding:14px 16px;" :bordered="false" dis-hover>
20
- <SimpleViewGrid ref="grid" :config="myConfig.gridConfig" :dictData="dictData" @dbclick="dbclick" />
21
- </Card>
22
- </Card>
23
- </template>
24
-
25
- <script>
26
- import ListBtnToolbar from './listbtntoolbar.vue';
27
- import Formcards from './formcard.vue';
28
- import elementResizeDetectorMaker from 'element-resize-detector';
29
- export default {
30
- name:'mreport',
31
- components:{ListBtnToolbar,Formcards},
32
- data () {
33
- return {
34
- myConfig:{
35
- titleType:2,
36
- divStyle:'padding:5px',
37
- title:'查询条件',
38
- showMaxRow:2,
39
- tabFlag:false,
40
- showAsyncImportExport:false,
41
- tabConfig:[]
42
- },
43
- curTab:'',
44
- menuToolbar:{},
45
- gridToolbar:{},
46
- hideItems:[],
47
- frontBtn: [{
48
- name:'searchData',text:'查询',icon:'custom-search'
49
- },{
50
- name:'clearData',text:'清除',icon:'custom-clean'
51
- }]
52
- };
53
- },
54
- props:{
55
- config: {
56
- type:Object,
57
- default:null
58
- },
59
- dictData: {
60
- type: Object,
61
- default:null
62
- },
63
- moduleMethod:{
64
- type:Array,
65
- default: () => {
66
- return [];
67
- }
68
- }
69
- },
70
- computed: {
71
- clientHeight () {
72
- return this.$Store.state.app.clientHeight;
73
- }
74
- },
75
- created () {
76
- this.myConfig = Object.assign({},this.myConfig, this.config);
77
- if (this.myConfig.tabFlag) {
78
- this.myConfig.tabConfig.forEach((el,index) => {
79
- if (index === 0) {
80
- this.curTab = el.code;
81
- }
82
- this.initGridConfig(el.gridName);
83
- });
84
- } else {
85
- this.initGridConfig('gridConfig');
86
- }
87
- this.myConfig.formConfig.titleType = this.myConfig.titleType;
88
- if (this.myConfig.formConfig.title === undefined) {
89
- this.myConfig.formConfig.title = this.myConfig.title;
90
- }
91
- if (this.myConfig.menuToolbar && this.myConfig.menuToolbar.items) {
92
- this.menuToolbar = this.$Method.copy(this.myConfig.menuToolbar);
93
- }
94
- let frontBtn = []
95
- this.frontBtn.forEach(el => {
96
- let index = this.menuToolbar.items.findIndex(el2 => el2.name === el);
97
- if (index === -1) {
98
- frontBtn.push(el);
99
- }
100
- });
101
- this.menuToolbar.items = frontBtn.concat(this.menuToolbar.items);
102
- this.menuToolbar.mainButton = 'searchData';
103
- this.menuToolbar.mainButtonText ='查询';
104
- this.menuToolbar.ignoreModule = ['searchData','clearData'];
105
- let lineNum = this.myConfig.formConfig.lineNum;
106
- let culLineNum = 0;
107
- let flag = true;
108
-
109
- this.myConfig.formConfig.items.forEach(el => {
110
- if (el.colNum) {
111
- culLineNum = culLineNum + Number(el.colNum)
112
- } else {
113
- culLineNum++;
114
- }
115
- if (flag && culLineNum > Number(lineNum)* Number(this.myConfig.showMaxRow)) {
116
- flag = false
117
- }
118
- if (!flag){
119
- el.visible = false;
120
- this.hideItems.push(el);
121
- }
122
- });
123
- if (this.hideItems.length > 0) {
124
- this.myConfig.formConfig.items.push({
125
- type:'Divider',
126
- orientation:'right',
127
- hide:true,
128
- style: 'margin:2px 0',
129
- dividerName:'hidedivider',
130
- doHide:this.doHide
131
- });
132
- }
133
- },
134
- methods: {
135
- doAction (obj) {
136
- const method = obj.name;
137
- if (this.$parent[method]) {
138
- this.$parent[method](obj);
139
- } else {
140
- if (this[method]) {
141
- this[method](obj);
142
- }
143
- }
144
- },
145
- dbclick (e) {
146
- let obj = {};
147
- obj.name ='gridDbClick';
148
- obj.rowinfo = {};
149
- obj.rowinfo.row = e;
150
- if (this.myConfig.tabFlag) {
151
- obj.rowinfo.gridObject = this.$refs[this.curTab][0];
152
- } else {
153
- obj.rowinfo.gridObject = this.$refs.grid;
154
- }
155
-
156
- this.doAction(obj);
157
- },
158
- initGridConfig(name) {
159
- if (!this.myConfig[name]) {
160
- return;
161
- }
162
- this.myConfig[name].headStyle='';
163
- this.myConfig[name].showCondition = false;
164
- this.myConfig[name].onSelectionChange = this.gridOnSelectionChange;
165
- if (this.myConfig[name].resources === undefined) {
166
- this.myConfig[name].resources =this.config.resources;
167
- }
168
- if (this.myConfig[name].method === undefined) {
169
- this.myConfig[name].method = this.config.classPrefix + '.' +'query';
170
- }
171
- if (this.myConfig[name].response === undefined) {
172
- this.myConfig[name].response = this.config.response;
173
- }
174
- this.myConfig[name].height = 1;
175
- this.myConfig[name].width = 1;
176
- this.myConfig[name].adjustHeight = 0;
177
- this.myConfig[name].adjustWidth = 0;
178
- this.myConfig[name].pageSize='small';
179
-
180
- if (this.myConfig[name].pageSizeNum === undefined) {
181
- this.myConfig[name].pageSizeNum = 20;
182
- }
183
- this.myConfig[name].items.forEach(el => {
184
- if (el.type !== 'CheckBox') {
185
- if (el.tooltip === undefined) {
186
- el.tooltip = true;
187
- }
188
- }
189
- });
190
- },
191
- tabClick(e) {
192
- if (this.$parent.tabClick) {
193
- this.$parent.tabClick(e);
194
- }
195
- },
196
- clearData () {
197
- this.$refs.form.clearData();
198
- this.$refs.grid.clearSearchBeforeSearchParam();
199
- this.$refs.grid.clearData();
200
- },
201
- doHide(obj) {
202
- let items = [];
203
- this.hideItems.forEach(el => {
204
- let item = {};
205
- if (el.sname) {
206
- item.sname = el.sname;
207
- }
208
- if (el.name) {
209
- item.name = el.name;
210
- }
211
- el.visible = obj.value;
212
- item.visible = obj.value;
213
- items.push(item);
214
- });
215
- this.$refs.form.updateItemsConfig(items);
216
- },
217
- searchData() {
218
- this.$refs.form.checkValidate();
219
- let flag = this.$refs.form.isError();
220
- if (flag) {
221
- this.alert('必填项不允许为空');
222
- return false;
223
- }
224
- if (this.$parent.searchCheck) {
225
- let tmpFlag = true;
226
- tmpFlag = this.$parent.searchCheck();
227
- if (!tmpFlag) {
228
- return false;
229
- }
230
- }
231
-
232
- let data = this.$refs.form.getData();
233
- let searchParam = {};
234
- for (let pro in data) {
235
- if (data[pro] || data[pro] === 0) {
236
- searchParam[pro] = data[pro];
237
- }
238
- }
239
- if (this.myConfig.overrideSearchParam) {
240
- searchParam = this.myConfig.overrideSearchParam(searchParam);
241
- }
242
- if (this.myConfig.tabFlag) {
243
- let gridName = this.myConfig.tabConfig[0].code;
244
- if (this.$refs[gridName] && this.$refs[gridName][0]) {
245
- this.$refs[gridName][0].clearSearchBeforeSearchParam();
246
- this.$refs[gridName][0].setSearchBeforeSearchParam(searchParam);
247
- this.$refs[gridName][0].refurbish();
248
- this.curTab = gridName;
249
- }
250
- } else {
251
- this.$refs.grid.clearSearchBeforeSearchParam();
252
- this.$refs.grid.setSearchBeforeSearchParam(searchParam);
253
- this.$refs.grid.refurbish();
254
- }
255
-
256
- },
257
- exportData() {
258
- if (this.myConfig.tabFlag) {
259
- if (this.$refs[this.curTab] && this.$refs[this.curTab][0]) {
260
- let grid = this.$refs[this.curTab][0];
261
- this.commonExport(grid);
262
- }
263
- } else {
264
- this.commonExport(this.$refs.grid);
265
- }
266
- },
267
- setTab(name) {
268
- this.curTab = name;
269
- },
270
- commonExport(grid) {
271
- let data = grid.getData();
272
- if (data.length === 0) {
273
- this.alert('请先查询数据');
274
- return false;
275
- }
276
- if (grid.config.dynamicColumnFlag) {
277
- grid.dynamicExportExcel();
278
- } else {
279
- if (this.myConfig.showAsyncImportExport) {
280
- if (this.$parent.asyncExport) {
281
- this.$parent.asyncExport(grid)
282
- return;
283
- }
284
- } else {
285
- if (this.myConfig.defaultExport) {
286
- let _param = grid.getSearchParam();
287
- let moduleCode = this.getModulecode();
288
- if (moduleCode) {
289
- _param.moduleCode = moduleCode;
290
- } else {
291
- this.alert('模块号不能为空');
292
- return;
293
- }
294
- _param.exporttype = 'excel';
295
- let _baseUrl = grid.config.resources.replace('rest', 'exportReport');
296
- let _self = this;
297
- this.doExportReport(_baseUrl, grid.config.method, _param, _self);
298
- } else {
299
- grid.export();
300
- }
301
- }
302
- }
303
-
304
-
305
- },
306
- refurbish () {
307
- this.searchData();
308
- },
309
- getGrid (name) {
310
- if (this.myConfig.tabFlag) {
311
- if (this.$refs[name] && this.$refs[name][0]) {
312
- return this.$refs[name][0];
313
- }
314
- } else {
315
- return this.$refs.grid;
316
- }
317
- },
318
- getForm () {
319
- return this.$refs.form;
320
- },
321
- setGridHeight() {
322
- let height = this.$refs.toolbarcard.offsetHeight + this.$refs.formcard.offsetHeight + 43;
323
- if (this.hideItems && this.hideItems.length > 0) {
324
- height = height + 20;
325
- }
326
- if (this.myConfig.tabFlag) {
327
- height = height + 60;
328
- this.myConfig.tabConfig.forEach(el => {
329
- if (this.$refs[el.code] && this.$refs[el.code][0]) {
330
- this.$refs[el.code][0].setOutsideHeight(height);
331
- }
332
- })
333
- } else {
334
- if (this.$refs.grid.showSummary) {
335
- height = height + 36;
336
- }
337
- this.$refs.grid.setOutsideHeight(height);
338
- }
339
- },
340
- setHideDividerValue(value) {
341
- this.$refs.form.setHideDividerValue(value);
342
- }
343
- },
344
- mounted () {
345
- this.observer = elementResizeDetectorMaker();
346
- if (this.$refs.formcard) {
347
- this.observer.listenTo(this.$refs.formcard, this.setGridHeight);
348
- }
349
- },
350
- beforeUnmount() {
351
- if (this.$refs.formcard) {
352
- this.observer.removeListener(this.$refs.formcard, this.setGridHeight);
353
- }
354
- }
355
- };
356
- </script>
357
-
1
+ <template>
2
+ <Card :padding="0" dis-hover :bordered="false" :style="'background:#fff;overflow:hidden;height:' + clientHeight +'px'">
3
+ <div ref="toolbarcard" >
4
+ <Card :padding="0" style="padding-top:14px;padding-left:16px;padding-right:16px;border-radius:0px;" :bordered="false" dis-hover>
5
+ <ListBtnToolbar ref="menutoolbar" :config="menuToolbar" :moduleMethod="moduleMethod" @doAction="doAction"/>
6
+ <Divider style="margin-top:16px;margin-bottom:0px;" />
7
+ </Card>
8
+ </div>
9
+ <div ref="formcard">
10
+ <Card :padding="0" dis-hover :bordered="false" style="padding-left:14px;padding-right:14px;padding-top:0px;padding-bottom:0px">
11
+ <Formcards ref="form" :config="myConfig.formConfig" :dictData="dictData"/>
12
+ </Card>
13
+ </div>
14
+ <Tabs v-if="myConfig.tabFlag" class="tabmode" v-model='curTab' @on-click="tabClick">
15
+ <TabPane v-for="(item,index) in myConfig.tabConfig" :label="item.title" style="background:#fff" :name="item.code" :key="index">
16
+ <SimpleViewGrid :ref="item.code" :config="myConfig[item.gridName]" :dictData="dictData" @dbclick="dbclick" />
17
+ </TabPane>
18
+ </Tabs>
19
+ <Card v-else :padding="0" style="padding:14px 16px;" :bordered="false" dis-hover>
20
+ <SimpleViewGrid ref="grid" :config="myConfig.gridConfig" :dictData="dictData" @dbclick="dbclick" />
21
+ </Card>
22
+ </Card>
23
+ </template>
24
+
25
+ <script>
26
+ import ListBtnToolbar from './listbtntoolbar.vue';
27
+ import Formcards from './formcard.vue';
28
+ import elementResizeDetectorMaker from 'element-resize-detector';
29
+ export default {
30
+ name:'mreport',
31
+ components:{ListBtnToolbar,Formcards},
32
+ data () {
33
+ return {
34
+ myConfig:{
35
+ titleType:2,
36
+ divStyle:'padding:5px',
37
+ title:'查询条件',
38
+ showMaxRow:2,
39
+ tabFlag:false,
40
+ showAsyncImportExport:false,
41
+ tabConfig:[]
42
+ },
43
+ curTab:'',
44
+ menuToolbar:{},
45
+ gridToolbar:{},
46
+ hideItems:[],
47
+ frontBtn: [{
48
+ name:'searchData',text:'查询',icon:'custom-search'
49
+ },{
50
+ name:'clearData',text:'清除',icon:'custom-clean'
51
+ }]
52
+ };
53
+ },
54
+ props:{
55
+ config: {
56
+ type:Object,
57
+ default:null
58
+ },
59
+ dictData: {
60
+ type: Object,
61
+ default:null
62
+ },
63
+ moduleMethod:{
64
+ type:Array,
65
+ default: () => {
66
+ return [];
67
+ }
68
+ }
69
+ },
70
+ computed: {
71
+ clientHeight () {
72
+ return this.$Store.state.app.clientHeight;
73
+ }
74
+ },
75
+ created () {
76
+ this.myConfig = Object.assign({},this.myConfig, this.config);
77
+ if (this.myConfig.tabFlag) {
78
+ this.myConfig.tabConfig.forEach((el,index) => {
79
+ if (index === 0) {
80
+ this.curTab = el.code;
81
+ }
82
+ this.initGridConfig(el.gridName);
83
+ });
84
+ } else {
85
+ this.initGridConfig('gridConfig');
86
+ }
87
+ this.myConfig.formConfig.titleType = this.myConfig.titleType;
88
+ if (this.myConfig.formConfig.title === undefined) {
89
+ this.myConfig.formConfig.title = this.myConfig.title;
90
+ }
91
+ if (this.myConfig.menuToolbar && this.myConfig.menuToolbar.items) {
92
+ this.menuToolbar = this.$Method.copy(this.myConfig.menuToolbar);
93
+ }
94
+ let frontBtn = []
95
+ this.frontBtn.forEach(el => {
96
+ let index = this.menuToolbar.items.findIndex(el2 => el2.name === el);
97
+ if (index === -1) {
98
+ frontBtn.push(el);
99
+ }
100
+ });
101
+ this.menuToolbar.items = frontBtn.concat(this.menuToolbar.items);
102
+ this.menuToolbar.mainButton = 'searchData';
103
+ this.menuToolbar.mainButtonText ='查询';
104
+ this.menuToolbar.ignoreModule = ['searchData','clearData'];
105
+ let lineNum = this.myConfig.formConfig.lineNum;
106
+ let culLineNum = 0;
107
+ let flag = true;
108
+
109
+ this.myConfig.formConfig.items.forEach(el => {
110
+ if (el.colNum) {
111
+ culLineNum = culLineNum + Number(el.colNum)
112
+ } else {
113
+ culLineNum++;
114
+ }
115
+ if (flag && culLineNum > Number(lineNum)* Number(this.myConfig.showMaxRow)) {
116
+ flag = false
117
+ }
118
+ if (!flag){
119
+ el.visible = false;
120
+ this.hideItems.push(el);
121
+ }
122
+ });
123
+ if (this.hideItems.length > 0) {
124
+ this.myConfig.formConfig.items.push({
125
+ type:'Divider',
126
+ orientation:'right',
127
+ hide:true,
128
+ style: 'margin:2px 0',
129
+ dividerName:'hidedivider',
130
+ doHide:this.doHide
131
+ });
132
+ }
133
+ },
134
+ methods: {
135
+ doAction (obj) {
136
+ const method = obj.name;
137
+ if (this.$parent[method]) {
138
+ this.$parent[method](obj);
139
+ } else {
140
+ if (this[method]) {
141
+ this[method](obj);
142
+ }
143
+ }
144
+ },
145
+ dbclick (e) {
146
+ let obj = {};
147
+ obj.name ='gridDbClick';
148
+ obj.rowinfo = {};
149
+ obj.rowinfo.row = e;
150
+ if (this.myConfig.tabFlag) {
151
+ obj.rowinfo.gridObject = this.$refs[this.curTab][0];
152
+ } else {
153
+ obj.rowinfo.gridObject = this.$refs.grid;
154
+ }
155
+
156
+ this.doAction(obj);
157
+ },
158
+ initGridConfig(name) {
159
+ if (!this.myConfig[name]) {
160
+ return;
161
+ }
162
+ this.myConfig[name].headStyle='';
163
+ this.myConfig[name].showCondition = false;
164
+ this.myConfig[name].onSelectionChange = this.gridOnSelectionChange;
165
+ if (this.myConfig[name].resources === undefined) {
166
+ this.myConfig[name].resources =this.config.resources;
167
+ }
168
+ if (this.myConfig[name].method === undefined) {
169
+ this.myConfig[name].method = this.config.classPrefix + '.' +'query';
170
+ }
171
+ if (this.myConfig[name].response === undefined) {
172
+ this.myConfig[name].response = this.config.response;
173
+ }
174
+ this.myConfig[name].height = 1;
175
+ this.myConfig[name].width = 1;
176
+ this.myConfig[name].adjustHeight = 0;
177
+ this.myConfig[name].adjustWidth = 0;
178
+ this.myConfig[name].pageSize='small';
179
+
180
+ if (this.myConfig[name].pageSizeNum === undefined) {
181
+ this.myConfig[name].pageSizeNum = 20;
182
+ }
183
+ this.myConfig[name].items.forEach(el => {
184
+ if (el.type !== 'CheckBox') {
185
+ if (el.tooltip === undefined) {
186
+ el.tooltip = true;
187
+ }
188
+ }
189
+ });
190
+ },
191
+ tabClick(e) {
192
+ if (this.$parent.tabClick) {
193
+ this.$parent.tabClick(e);
194
+ }
195
+ },
196
+ clearData () {
197
+ this.$refs.form.clearData();
198
+ this.$refs.grid.clearSearchBeforeSearchParam();
199
+ this.$refs.grid.clearData();
200
+ },
201
+ doHide(obj) {
202
+ let items = [];
203
+ this.hideItems.forEach(el => {
204
+ let item = {};
205
+ if (el.sname) {
206
+ item.sname = el.sname;
207
+ }
208
+ if (el.name) {
209
+ item.name = el.name;
210
+ }
211
+ el.visible = obj.value;
212
+ item.visible = obj.value;
213
+ items.push(item);
214
+ });
215
+ this.$refs.form.updateItemsConfig(items);
216
+ },
217
+ searchData() {
218
+ this.$refs.form.checkValidate();
219
+ let flag = this.$refs.form.isError();
220
+ if (flag) {
221
+ this.alert('必填项不允许为空');
222
+ return false;
223
+ }
224
+ if (this.$parent.searchCheck) {
225
+ let tmpFlag = true;
226
+ tmpFlag = this.$parent.searchCheck();
227
+ if (!tmpFlag) {
228
+ return false;
229
+ }
230
+ }
231
+
232
+ let data = this.$refs.form.getData();
233
+ let searchParam = {};
234
+ for (let pro in data) {
235
+ if (data[pro] || data[pro] === 0) {
236
+ searchParam[pro] = data[pro];
237
+ }
238
+ }
239
+ if (this.myConfig.overrideSearchParam) {
240
+ searchParam = this.myConfig.overrideSearchParam(searchParam);
241
+ }
242
+ if (this.myConfig.tabFlag) {
243
+ let gridName = this.myConfig.tabConfig[0].code;
244
+ if (this.$refs[gridName] && this.$refs[gridName][0]) {
245
+ this.$refs[gridName][0].clearSearchBeforeSearchParam();
246
+ this.$refs[gridName][0].setSearchBeforeSearchParam(searchParam);
247
+ this.$refs[gridName][0].refurbish();
248
+ this.curTab = gridName;
249
+ }
250
+ } else {
251
+ this.$refs.grid.clearSearchBeforeSearchParam();
252
+ this.$refs.grid.setSearchBeforeSearchParam(searchParam);
253
+ this.$refs.grid.refurbish();
254
+ }
255
+
256
+ },
257
+ exportData() {
258
+ if (this.myConfig.tabFlag) {
259
+ if (this.$refs[this.curTab] && this.$refs[this.curTab][0]) {
260
+ let grid = this.$refs[this.curTab][0];
261
+ this.commonExport(grid);
262
+ }
263
+ } else {
264
+ this.commonExport(this.$refs.grid);
265
+ }
266
+ },
267
+ setTab(name) {
268
+ this.curTab = name;
269
+ },
270
+ commonExport(grid) {
271
+ let data = grid.getData();
272
+ if (data.length === 0) {
273
+ this.alert('请先查询数据');
274
+ return false;
275
+ }
276
+ if (grid.config.dynamicColumnFlag) {
277
+ grid.dynamicExportExcel();
278
+ } else {
279
+ if (this.myConfig.showAsyncImportExport) {
280
+ if (this.$parent.asyncExport) {
281
+ this.$parent.asyncExport(grid)
282
+ return;
283
+ }
284
+ } else {
285
+ if (this.myConfig.defaultExport) {
286
+ let _param = grid.getSearchParam();
287
+ let moduleCode = this.getModulecode();
288
+ if (moduleCode) {
289
+ _param.moduleCode = moduleCode;
290
+ } else {
291
+ this.alert('模块号不能为空');
292
+ return;
293
+ }
294
+ _param.exporttype = 'excel';
295
+ let _baseUrl = grid.config.resources.replace('rest', 'exportReport');
296
+ let _self = this;
297
+ this.doExportReport(_baseUrl, grid.config.method, _param, _self);
298
+ } else {
299
+ grid.export();
300
+ }
301
+ }
302
+ }
303
+
304
+
305
+ },
306
+ refurbish () {
307
+ this.searchData();
308
+ },
309
+ getGrid (name) {
310
+ if (this.myConfig.tabFlag) {
311
+ if (this.$refs[name] && this.$refs[name][0]) {
312
+ return this.$refs[name][0];
313
+ }
314
+ } else {
315
+ return this.$refs.grid;
316
+ }
317
+ },
318
+ getForm () {
319
+ return this.$refs.form;
320
+ },
321
+ setGridHeight() {
322
+ let height = this.$refs.toolbarcard.offsetHeight + this.$refs.formcard.offsetHeight + 43;
323
+ if (this.hideItems && this.hideItems.length > 0) {
324
+ height = height + 20;
325
+ }
326
+ if (this.myConfig.tabFlag) {
327
+ height = height + 60;
328
+ this.myConfig.tabConfig.forEach(el => {
329
+ if (this.$refs[el.code] && this.$refs[el.code][0]) {
330
+ this.$refs[el.code][0].setOutsideHeight(height);
331
+ }
332
+ })
333
+ } else {
334
+ if (this.$refs.grid.showSummary) {
335
+ height = height + 36;
336
+ }
337
+ this.$refs.grid.setOutsideHeight(height);
338
+ }
339
+ },
340
+ setHideDividerValue(value) {
341
+ this.$refs.form.setHideDividerValue(value);
342
+ }
343
+ },
344
+ mounted () {
345
+ this.observer = elementResizeDetectorMaker();
346
+ if (this.$refs.formcard) {
347
+ this.observer.listenTo(this.$refs.formcard, this.setGridHeight);
348
+ }
349
+ },
350
+ beforeUnmount() {
351
+ if (this.$refs.formcard) {
352
+ this.observer.removeListener(this.$refs.formcard, this.setGridHeight);
353
+ }
354
+ }
355
+ };
356
+ </script>
357
+