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,391 +1,391 @@
1
- <template>
2
- <div>
3
- <Card
4
- :padding="0"
5
- dis-hover
6
- :bordered="false"
7
- style="background: #fff; padding: 14px 16px 14px 16px"
8
- >
9
- <div ref="toolbar" style="padding-bottom: 14px">
10
- <QueryBar
11
- :config="myConfig.queryConfig"
12
- :dictData="dictData"
13
- :moduleMethod="moduleMethod"
14
- @conditionAction="conditionAction"
15
- @doAction="doAction"
16
- />
17
- </div>
18
- <Card
19
- class="billquerygrid"
20
- :padding="0"
21
- :bordered="false"
22
- dis-hover
23
- >
24
- <Dropdown
25
- trigger="custom"
26
- :visible="colsetFlag"
27
- style="
28
- position: absolute;
29
- z-index: 99;
30
- right: 15px;
31
- top: 1px;
32
- padding: 7.5px;
33
- background-color: #f5f7fa;
34
- "
35
- placement="bottom-end"
36
- :transfer="transferFlag"
37
- @on-clickoutside="closeColset"
38
- >
39
- <Tooltip placement="top">
40
- <template #content>
41
- <div>
42
- <span style="font-size: 12px"> 表头设计 </span>
43
- </div>
44
- </template>
45
- <p style="cursor: pointer" @click.stop="openColSet">
46
- <Icon
47
- custom="iconfont icon-custom-colset"
48
- style="margin-top: 4px"
49
- size="16"
50
- color="#515a6e"
51
- />
52
- </p>
53
- </Tooltip>
54
- <template #list>
55
- <DropdownMenu>
56
- <GridColSet
57
- ref="gridcol"
58
- :config="myConfig.gridConfig"
59
- @doAction="doAction"
60
- />
61
- </DropdownMenu>
62
- </template>
63
- </Dropdown>
64
- <SimpleViewGrid
65
- v-if="reset"
66
- ref="grid"
67
- :config="changeGridConfig"
68
- :dictData="dictData"
69
- @dbclick="dbclick"
70
- />
71
- </Card>
72
- </Card>
73
- </div>
74
- </template>
75
-
76
- <script>
77
- import elementResizeDetectorMaker from "element-resize-detector";
78
- import QueryBar from "./querybar.vue";
79
- import GridColSet from "./gridcolset.vue";
80
- import { resolveComponent } from "vue";
81
- export default {
82
- name: "mbillquerygrid",
83
- components: { QueryBar, GridColSet },
84
- data() {
85
- return {
86
- myConfig: {},
87
- changeGridConfig: {},
88
- reset: true,
89
- rowBtnData: [],
90
- transferFlag: false,
91
- colsetFlag: false,
92
- operateFlag: false,
93
- enablePermissions: true,
94
- actionConfig: {},
95
- initRefresh: true,
96
- gridCol: [],
97
- };
98
- },
99
- props: {
100
- config: {
101
- type: Object,
102
- default: null,
103
- },
104
- dictData: {
105
- type: Object,
106
- default: null,
107
- },
108
- moduleMethod: {
109
- type: Array,
110
- default: () => {
111
- return [];
112
- },
113
- },
114
- },
115
- created() {
116
- this.myConfig = Object.assign({}, this.myConfig, this.config);
117
- this.myConfig.gridConfig.headStyle = "";
118
- this.myConfig.gridConfig.showCondition = false;
119
- this.myConfig.gridConfig.overrideData = this.gridOverrideData;
120
- this.myConfig.gridConfig.onSelectionChange = this.gridOnSelectionChange;
121
- this.myConfig.gridConfig.height = 1;
122
- this.myConfig.gridConfig.adjustHeight = 5;
123
- this.myConfig.gridConfig.showBorder = true;
124
- this.myConfig.gridConfig.showStripe = true;
125
- this.myConfig.gridConfig.generalOrientation = true;
126
- this.myConfig.gridConfig.pageSize = "small";
127
- this.myConfig.gridConfig.items.forEach((el) => {
128
- if (el.type !== "CheckBox") {
129
- if (el.tooltip === undefined) {
130
- el.tooltip = true;
131
- }
132
- if (el.resizable === undefined) {
133
- el.resizable = true;
134
- }
135
- }
136
- // 新增:为 ComboBox 设置 codeWithName 默认值
137
- if (el.type === "ComboBox" && el.codeWithName === undefined) {
138
- el.codeWithName =
139
- this.OmdUrl.billQueryComboBoxCodeWithName !== undefined
140
- ? this.OmdUrl.billQueryComboBoxCodeWithName
141
- : true; // 默认值为 true 表示有编码
142
- }
143
- });
144
- if (this.myConfig.gridConfig.initRefresh !== undefined) {
145
- this.initRefresh = this.myConfig.gridConfig.initRefresh;
146
- }
147
- if (!this.myConfig.gridConfig.method) {
148
- this.myConfig.gridConfig.method = this.myConfig.classPrefix + '.search';
149
- }
150
- if (!this.myConfig.gridConfig.resources) {
151
- this.myConfig.gridConfig.resources = this.config.resources;
152
- }
153
- if (!this.myConfig.gridConfig.response) {
154
- this.myConfig.gridConfig.response = this.config.response;
155
- }
156
- if (this.myConfig.enablePermissions !== undefined) {
157
- this.enablePermissions = this.myConfig.enablePermissions;
158
- }
159
- if (this.myConfig.rowBtnData) {
160
- this.rowBtnData = this.$Method.copy(this.myConfig.rowBtnData);
161
- }
162
- if (this.rowBtnData.length > 0) {
163
- this.initRowBtn();
164
- }
165
-
166
- this.myConfig.queryConfig = {};
167
- this.myConfig.queryConfig.curHelpUrl = this.config.curHelpUrl;
168
- this.myConfig.queryConfig.items = this.$Method.copy(
169
- this.myConfig.gridConfig.items,
170
- );
171
- this.myConfig.queryConfig.modulecode = this.config.modulecode;
172
- this.myConfig.queryConfig.enablePermissions = this.enablePermissions;
173
- if (this.myConfig.btnData) {
174
- this.myConfig.queryConfig.btnData = this.myConfig.btnData;
175
- }
176
- if (this.myConfig.addDataflag) {
177
- this.myConfig.queryConfig.addDataflag = this.myConfig.addDataflag;
178
- }
179
- if (this.myConfig.usercustominfo) {
180
- if (this.myConfig.usercustominfo.filterscene) {
181
- this.myConfig.queryConfig.sceneData = this.$Method.copy(
182
- this.myConfig.usercustominfo.filterscene,
183
- );
184
- }
185
- if (this.myConfig.usercustominfo.colset) {
186
- this.gridCol = JSON.parse(
187
- this.$Method.copy(this.myConfig.usercustominfo.colset),
188
- );
189
- }
190
- }
191
-
192
- this.setChangeGridConfig();
193
- },
194
- methods: {
195
- initRowBtn() {
196
- if (this.enablePermissions) {
197
- let btns = [];
198
- this.moduleMethod.forEach((el) => {
199
- let btn = this.rowBtnData.find(
200
- (el2) => el.name === el2.name,
201
- );
202
- if (btn) {
203
- btns.push(btn);
204
- }
205
- });
206
- this.rowBtnData = btns;
207
- }
208
- if (this.rowBtnData.length > 0) {
209
- this.actionConfig.label = "操作";
210
- this.actionConfig.key = "actionbtn";
211
- this.actionConfig.align = "center";
212
- this.actionConfig.render = this.actionRender;
213
- this.actionConfig.fixed = "right";
214
- if (this.rowBtnData.length > 3) {
215
- this.actionConfig.width = 200;
216
- } else {
217
- this.actionConfig.width = 68 * this.rowBtnData.length;
218
- }
219
- this.myConfig.gridConfig.items.push(this.actionConfig);
220
- this.operateFlag = true;
221
- }
222
- },
223
- actionRender(h, params) {
224
- return h("div", [
225
- h(resolveComponent("RowBtnToolbar"), {
226
- config: { items: this.rowBtnData },
227
- onDoAction: (val) => {
228
- val.rowinfo = params;
229
- this.$emit("doAction", val);
230
- },
231
- }),
232
- ]);
233
- },
234
- doAction(obj) {
235
- if (obj.name === "saveGridCol") {
236
- this.gridCol = this.$Method.copy(obj.para);
237
- this.colsetFlag = false;
238
- this.setChangeGridConfig();
239
- this.reset = false;
240
- this.$nextTick(() => {
241
- this.reset = true;
242
- this.$nextTick(() => {
243
- this.refurbish();
244
- });
245
- });
246
- } else if (obj.name === "closeGridCol") {
247
- this.colsetFlag = false;
248
- return;
249
- } else {
250
- if (obj.name !== "saveScene") {
251
- obj.para = this.$refs.grid.getSelection();
252
- }
253
- }
254
- this.$emit("doAction", obj);
255
- },
256
- gridOverrideData(data) {
257
- let self = this;
258
- if (data && data.length > 0) {
259
- this.$nextTick(() => {
260
- let index = 0;
261
- if (self.ph_key) {
262
- let culIndex = data.findIndex(
263
- (el) =>
264
- el[self.myConfig.gridConfig.bindSearchParam] ===
265
- self.ph_key,
266
- );
267
- if (culIndex > -1) {
268
- index = culIndex;
269
- }
270
- }
271
- if (this.$refs.grid) {
272
- this.$refs.grid.setRowHighlight(index, true);
273
- }
274
- });
275
- }
276
- return data;
277
- },
278
- gridOnSelectionChange(rows) {
279
- let obj = {};
280
- obj.name = "gridSelectionChange";
281
- obj.para = rows;
282
- this.$emit("doAction", obj);
283
- },
284
- clearData() {
285
- this.$refs.quick.clearData();
286
- this.refurbish();
287
- },
288
- refurbish(para) {
289
- if (!para) {
290
- para = {};
291
- }
292
- this.$refs.grid.clearSearchBeforeSearchParam();
293
- this.$refs.grid.setSearchBeforeSearchParam(para);
294
- this.$refs.grid.refurbish();
295
- },
296
- getGrid() {
297
- return this.$refs.grid;
298
- },
299
- getBtnToolbar() {
300
- return this.$refs.btn;
301
- },
302
- getQuick() {
303
- return this.$refs.quick;
304
- },
305
- dbclick(e) {
306
- let obj = {};
307
- obj.name = "gridDbClick";
308
- obj.para = e;
309
- this.ph_key = obj.para[this.myConfig.gridConfig.bindSearchParam];
310
- this.$emit("doAction", obj);
311
- },
312
- setPhkey(value) {
313
- this.ph_key = value;
314
- },
315
- quickChagne() {
316
- this.refurbish();
317
- },
318
- setOutsideHeight() {
319
- let height = this.$refs.toolbar.offsetHeight + 30;
320
- this.$refs.grid.setOutsideHeight(height);
321
- },
322
- openColSet() {
323
- this.colsetFlag = true;
324
- },
325
- closeColset() {
326
- this.colsetFlag = false;
327
- },
328
- setChangeGridConfig() {
329
- this.changeGridConfig = this.$Method.copy(this.myConfig.gridConfig);
330
- let isFixed = false;
331
- if (this.gridCol.length > 0) {
332
- let items = [];
333
- this.gridCol.forEach((el) => {
334
- if (el.name && el.visible) {
335
- let tmp = this.myConfig.gridConfig.items.find(
336
- (el2) =>
337
- el.name === el2.name || el.name === el2.sname,
338
- );
339
- if (tmp) {
340
- let tmp2 = this.$Method.copy(tmp);
341
- if (el.fixed) {
342
- tmp2.fixed = "left";
343
- if (!isFixed) {
344
- isFixed = true;
345
- }
346
- }
347
- items.push(tmp2);
348
- }
349
- }
350
- });
351
- if (this.operateFlag) {
352
- items.push(this.actionConfig);
353
- }
354
- this.changeGridConfig.fixedIndex = isFixed;
355
- this.changeGridConfig.items = items;
356
- }
357
- },
358
- conditionAction(action) {
359
- if (
360
- action.name === "condition_search" ||
361
- action.name === "condition_searchFilter"
362
- ) {
363
- this.refurbish(action.para);
364
- }
365
- if (action.name === "condition_clear") {
366
- this.refurbish();
367
- }
368
- },
369
- },
370
- mounted() {
371
- this.observer = elementResizeDetectorMaker();
372
- if (this.$refs.toolbar) {
373
- this.observer.listenTo(this.$refs.toolbar, this.setOutsideHeight);
374
- }
375
- if (this.initRefresh) {
376
- this.refurbish();
377
- }
378
- if (this.gridCol.length > 0) {
379
- this.$refs.gridcol.setData(this.gridCol);
380
- }
381
- },
382
- beforeUnmount() {
383
- if (this.$refs.toolbar) {
384
- this.observer.removeListener(
385
- this.$refs.toolbar,
386
- this.setOutsideHeight,
387
- );
388
- }
389
- },
390
- };
391
- </script>
1
+ <template>
2
+ <div>
3
+ <Card
4
+ :padding="0"
5
+ dis-hover
6
+ :bordered="false"
7
+ style="background: #fff; padding: 14px 16px 14px 16px"
8
+ >
9
+ <div ref="toolbar" style="padding-bottom: 14px">
10
+ <QueryBar
11
+ :config="myConfig.queryConfig"
12
+ :dictData="dictData"
13
+ :moduleMethod="moduleMethod"
14
+ @conditionAction="conditionAction"
15
+ @doAction="doAction"
16
+ />
17
+ </div>
18
+ <Card
19
+ class="billquerygrid"
20
+ :padding="0"
21
+ :bordered="false"
22
+ dis-hover
23
+ >
24
+ <Dropdown
25
+ trigger="custom"
26
+ :visible="colsetFlag"
27
+ style="
28
+ position: absolute;
29
+ z-index: 99;
30
+ right: 15px;
31
+ top: 1px;
32
+ padding: 7.5px;
33
+ background-color: #f5f7fa;
34
+ "
35
+ placement="bottom-end"
36
+ :transfer="transferFlag"
37
+ @on-clickoutside="closeColset"
38
+ >
39
+ <Tooltip placement="top">
40
+ <template #content>
41
+ <div>
42
+ <span style="font-size: 12px"> 表头设计 </span>
43
+ </div>
44
+ </template>
45
+ <p style="cursor: pointer" @click.stop="openColSet">
46
+ <Icon
47
+ custom="iconfont icon-custom-colset"
48
+ style="margin-top: 4px"
49
+ size="16"
50
+ color="#515a6e"
51
+ />
52
+ </p>
53
+ </Tooltip>
54
+ <template #list>
55
+ <DropdownMenu>
56
+ <GridColSet
57
+ ref="gridcol"
58
+ :config="myConfig.gridConfig"
59
+ @doAction="doAction"
60
+ />
61
+ </DropdownMenu>
62
+ </template>
63
+ </Dropdown>
64
+ <SimpleViewGrid
65
+ v-if="reset"
66
+ ref="grid"
67
+ :config="changeGridConfig"
68
+ :dictData="dictData"
69
+ @dbclick="dbclick"
70
+ />
71
+ </Card>
72
+ </Card>
73
+ </div>
74
+ </template>
75
+
76
+ <script>
77
+ import elementResizeDetectorMaker from "element-resize-detector";
78
+ import QueryBar from "./querybar.vue";
79
+ import GridColSet from "./gridcolset.vue";
80
+ import { resolveComponent } from "vue";
81
+ export default {
82
+ name: "mbillquerygrid",
83
+ components: { QueryBar, GridColSet },
84
+ data() {
85
+ return {
86
+ myConfig: {},
87
+ changeGridConfig: {},
88
+ reset: true,
89
+ rowBtnData: [],
90
+ transferFlag: false,
91
+ colsetFlag: false,
92
+ operateFlag: false,
93
+ enablePermissions: true,
94
+ actionConfig: {},
95
+ initRefresh: true,
96
+ gridCol: [],
97
+ };
98
+ },
99
+ props: {
100
+ config: {
101
+ type: Object,
102
+ default: null,
103
+ },
104
+ dictData: {
105
+ type: Object,
106
+ default: null,
107
+ },
108
+ moduleMethod: {
109
+ type: Array,
110
+ default: () => {
111
+ return [];
112
+ },
113
+ },
114
+ },
115
+ created() {
116
+ this.myConfig = Object.assign({}, this.myConfig, this.config);
117
+ this.myConfig.gridConfig.headStyle = "";
118
+ this.myConfig.gridConfig.showCondition = false;
119
+ this.myConfig.gridConfig.overrideData = this.gridOverrideData;
120
+ this.myConfig.gridConfig.onSelectionChange = this.gridOnSelectionChange;
121
+ this.myConfig.gridConfig.height = 1;
122
+ this.myConfig.gridConfig.adjustHeight = 5;
123
+ this.myConfig.gridConfig.showBorder = true;
124
+ this.myConfig.gridConfig.showStripe = true;
125
+ this.myConfig.gridConfig.generalOrientation = true;
126
+ this.myConfig.gridConfig.pageSize = "small";
127
+ this.myConfig.gridConfig.items.forEach((el) => {
128
+ if (el.type !== "CheckBox") {
129
+ if (el.tooltip === undefined) {
130
+ el.tooltip = true;
131
+ }
132
+ if (el.resizable === undefined) {
133
+ el.resizable = true;
134
+ }
135
+ }
136
+ // 新增:为 ComboBox 设置 codeWithName 默认值
137
+ if (el.type === "ComboBox" && el.codeWithName === undefined) {
138
+ el.codeWithName =
139
+ this.OmdUrl.billQueryComboBoxCodeWithName !== undefined
140
+ ? this.OmdUrl.billQueryComboBoxCodeWithName
141
+ : true; // 默认值为 true 表示有编码
142
+ }
143
+ });
144
+ if (this.myConfig.gridConfig.initRefresh !== undefined) {
145
+ this.initRefresh = this.myConfig.gridConfig.initRefresh;
146
+ }
147
+ if (!this.myConfig.gridConfig.method) {
148
+ this.myConfig.gridConfig.method = this.myConfig.classPrefix + '.search';
149
+ }
150
+ if (!this.myConfig.gridConfig.resources) {
151
+ this.myConfig.gridConfig.resources = this.config.resources;
152
+ }
153
+ if (!this.myConfig.gridConfig.response) {
154
+ this.myConfig.gridConfig.response = this.config.response;
155
+ }
156
+ if (this.myConfig.enablePermissions !== undefined) {
157
+ this.enablePermissions = this.myConfig.enablePermissions;
158
+ }
159
+ if (this.myConfig.rowBtnData) {
160
+ this.rowBtnData = this.$Method.copy(this.myConfig.rowBtnData);
161
+ }
162
+ if (this.rowBtnData.length > 0) {
163
+ this.initRowBtn();
164
+ }
165
+
166
+ this.myConfig.queryConfig = {};
167
+ this.myConfig.queryConfig.curHelpUrl = this.config.curHelpUrl;
168
+ this.myConfig.queryConfig.items = this.$Method.copy(
169
+ this.myConfig.gridConfig.items,
170
+ );
171
+ this.myConfig.queryConfig.modulecode = this.config.modulecode;
172
+ this.myConfig.queryConfig.enablePermissions = this.enablePermissions;
173
+ if (this.myConfig.btnData) {
174
+ this.myConfig.queryConfig.btnData = this.myConfig.btnData;
175
+ }
176
+ if (this.myConfig.addDataflag) {
177
+ this.myConfig.queryConfig.addDataflag = this.myConfig.addDataflag;
178
+ }
179
+ if (this.myConfig.usercustominfo) {
180
+ if (this.myConfig.usercustominfo.filterscene) {
181
+ this.myConfig.queryConfig.sceneData = this.$Method.copy(
182
+ this.myConfig.usercustominfo.filterscene,
183
+ );
184
+ }
185
+ if (this.myConfig.usercustominfo.colset) {
186
+ this.gridCol = JSON.parse(
187
+ this.$Method.copy(this.myConfig.usercustominfo.colset),
188
+ );
189
+ }
190
+ }
191
+
192
+ this.setChangeGridConfig();
193
+ },
194
+ methods: {
195
+ initRowBtn() {
196
+ if (this.enablePermissions) {
197
+ let btns = [];
198
+ this.moduleMethod.forEach((el) => {
199
+ let btn = this.rowBtnData.find(
200
+ (el2) => el.name === el2.name,
201
+ );
202
+ if (btn) {
203
+ btns.push(btn);
204
+ }
205
+ });
206
+ this.rowBtnData = btns;
207
+ }
208
+ if (this.rowBtnData.length > 0) {
209
+ this.actionConfig.label = "操作";
210
+ this.actionConfig.key = "actionbtn";
211
+ this.actionConfig.align = "center";
212
+ this.actionConfig.render = this.actionRender;
213
+ this.actionConfig.fixed = "right";
214
+ if (this.rowBtnData.length > 3) {
215
+ this.actionConfig.width = 200;
216
+ } else {
217
+ this.actionConfig.width = 68 * this.rowBtnData.length;
218
+ }
219
+ this.myConfig.gridConfig.items.push(this.actionConfig);
220
+ this.operateFlag = true;
221
+ }
222
+ },
223
+ actionRender(h, params) {
224
+ return h("div", [
225
+ h(resolveComponent("RowBtnToolbar"), {
226
+ config: { items: this.rowBtnData },
227
+ onDoAction: (val) => {
228
+ val.rowinfo = params;
229
+ this.$emit("doAction", val);
230
+ },
231
+ }),
232
+ ]);
233
+ },
234
+ doAction(obj) {
235
+ if (obj.name === "saveGridCol") {
236
+ this.gridCol = this.$Method.copy(obj.para);
237
+ this.colsetFlag = false;
238
+ this.setChangeGridConfig();
239
+ this.reset = false;
240
+ this.$nextTick(() => {
241
+ this.reset = true;
242
+ this.$nextTick(() => {
243
+ this.refurbish();
244
+ });
245
+ });
246
+ } else if (obj.name === "closeGridCol") {
247
+ this.colsetFlag = false;
248
+ return;
249
+ } else {
250
+ if (obj.name !== "saveScene") {
251
+ obj.para = this.$refs.grid.getSelection();
252
+ }
253
+ }
254
+ this.$emit("doAction", obj);
255
+ },
256
+ gridOverrideData(data) {
257
+ let self = this;
258
+ if (data && data.length > 0) {
259
+ this.$nextTick(() => {
260
+ let index = 0;
261
+ if (self.ph_key) {
262
+ let culIndex = data.findIndex(
263
+ (el) =>
264
+ el[self.myConfig.gridConfig.bindSearchParam] ===
265
+ self.ph_key,
266
+ );
267
+ if (culIndex > -1) {
268
+ index = culIndex;
269
+ }
270
+ }
271
+ if (this.$refs.grid) {
272
+ this.$refs.grid.setRowHighlight(index, true);
273
+ }
274
+ });
275
+ }
276
+ return data;
277
+ },
278
+ gridOnSelectionChange(rows) {
279
+ let obj = {};
280
+ obj.name = "gridSelectionChange";
281
+ obj.para = rows;
282
+ this.$emit("doAction", obj);
283
+ },
284
+ clearData() {
285
+ this.$refs.quick.clearData();
286
+ this.refurbish();
287
+ },
288
+ refurbish(para) {
289
+ if (!para) {
290
+ para = {};
291
+ }
292
+ this.$refs.grid.clearSearchBeforeSearchParam();
293
+ this.$refs.grid.setSearchBeforeSearchParam(para);
294
+ this.$refs.grid.refurbish();
295
+ },
296
+ getGrid() {
297
+ return this.$refs.grid;
298
+ },
299
+ getBtnToolbar() {
300
+ return this.$refs.btn;
301
+ },
302
+ getQuick() {
303
+ return this.$refs.quick;
304
+ },
305
+ dbclick(e) {
306
+ let obj = {};
307
+ obj.name = "gridDbClick";
308
+ obj.para = e;
309
+ this.ph_key = obj.para[this.myConfig.gridConfig.bindSearchParam];
310
+ this.$emit("doAction", obj);
311
+ },
312
+ setPhkey(value) {
313
+ this.ph_key = value;
314
+ },
315
+ quickChagne() {
316
+ this.refurbish();
317
+ },
318
+ setOutsideHeight() {
319
+ let height = this.$refs.toolbar.offsetHeight + 30;
320
+ this.$refs.grid.setOutsideHeight(height);
321
+ },
322
+ openColSet() {
323
+ this.colsetFlag = true;
324
+ },
325
+ closeColset() {
326
+ this.colsetFlag = false;
327
+ },
328
+ setChangeGridConfig() {
329
+ this.changeGridConfig = this.$Method.copy(this.myConfig.gridConfig);
330
+ let isFixed = false;
331
+ if (this.gridCol.length > 0) {
332
+ let items = [];
333
+ this.gridCol.forEach((el) => {
334
+ if (el.name && el.visible) {
335
+ let tmp = this.myConfig.gridConfig.items.find(
336
+ (el2) =>
337
+ el.name === el2.name || el.name === el2.sname,
338
+ );
339
+ if (tmp) {
340
+ let tmp2 = this.$Method.copy(tmp);
341
+ if (el.fixed) {
342
+ tmp2.fixed = "left";
343
+ if (!isFixed) {
344
+ isFixed = true;
345
+ }
346
+ }
347
+ items.push(tmp2);
348
+ }
349
+ }
350
+ });
351
+ if (this.operateFlag) {
352
+ items.push(this.actionConfig);
353
+ }
354
+ this.changeGridConfig.fixedIndex = isFixed;
355
+ this.changeGridConfig.items = items;
356
+ }
357
+ },
358
+ conditionAction(action) {
359
+ if (
360
+ action.name === "condition_search" ||
361
+ action.name === "condition_searchFilter"
362
+ ) {
363
+ this.refurbish(action.para);
364
+ }
365
+ if (action.name === "condition_clear") {
366
+ this.refurbish();
367
+ }
368
+ },
369
+ },
370
+ mounted() {
371
+ this.observer = elementResizeDetectorMaker();
372
+ if (this.$refs.toolbar) {
373
+ this.observer.listenTo(this.$refs.toolbar, this.setOutsideHeight);
374
+ }
375
+ if (this.initRefresh) {
376
+ this.refurbish();
377
+ }
378
+ if (this.gridCol.length > 0) {
379
+ this.$refs.gridcol.setData(this.gridCol);
380
+ }
381
+ },
382
+ beforeUnmount() {
383
+ if (this.$refs.toolbar) {
384
+ this.observer.removeListener(
385
+ this.$refs.toolbar,
386
+ this.setOutsideHeight,
387
+ );
388
+ }
389
+ },
390
+ };
391
+ </script>