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,276 +1,276 @@
1
- <template>
2
- <Row type="flex" :gutter="0" justify="start" align="middle">
3
- <Col span="18">
4
- <Row v-if="!notpowerFlag" type="flex" :gutter="0" justify="start" align="middle">
5
- <Col v-if="addDataBtnFlag">
6
- <Button :custom-icon="mainButtonCustomIcon" :icon="mainButtonIcon" type="primary" class="mainBtn" :disabled="!!addReadOnly" @click="addData" >{{myConfig.mainButtonText}}</Button>
7
- </Col>
8
- <Col v-if="addDataBtnFlag">
9
- <Divider type="vertical" class="dividercommon"/>
10
- </Col>
11
- <template v-for="(item,index) in btnItems" :key="'btn_' + index">
12
- <Col v-if="!moreFlag || index < myConfig.showNum" style="margin-right:10px">
13
- <Button :icon="item.icon" :custom-icon="item.customIcon" @click="action(item.name)" :disabled="!!item.readOnly">{{item.text}}</Button>
14
- </Col>
15
- </template>
16
- <Col v-if="moreFlag">
17
- <Dropdown>
18
- <Button type="info" icon="ios-arrow-down" > </Button>
19
- <template #list>
20
- <DropdownMenu>
21
- <template v-for="(item,index) in btnItems" :key="'btn_' + index">
22
- <DropdownItem v-if="index > myConfig.showNum" :disabled="item.readOnly">
23
- <Button :type="item.type" :icon="item.icon" :custom-icon="item.customIcon" :size="item.size" @click="action(item.name)" :disabled="!!item.readOnly">{{item.text}}</Button>
24
- </DropdownItem>
25
- </template>
26
- </DropdownMenu>
27
- </template>
28
- </Dropdown>
29
- </Col>
30
- </Row>
31
- <Row v-else type="flex" :gutter="0" justify="start" align="middle">
32
- <Icon custom="iconfont icon-custom-tishi" size="20" color="#F3B352"/> <span style="margin-left: 12px;font-size:18px;color:#F3B352;font-weight:bold">注意:当前页面您没有操作权限</span>
33
- </Row>
34
- </Col>
35
- <Col span="6">
36
- <Row type="flex" :gutter="0" justify="end" align="middle">
37
- <Col v-if="billoperlog">
38
- <Button customIcon="iconfont icon-custom-baopidan" @click="openBilloperlog">操作日志</Button>
39
- </Col>
40
- <Col v-if="billoperlog">
41
- <Divider type="vertical" class="dividercommon"/>
42
- </Col>
43
- <Col>
44
- <PromptMessages modetype="2" style="height:100%"/>
45
- </Col>
46
- </Row>
47
-
48
- </Col>
49
- </Row>
50
- </template>
51
-
52
- <script>
53
- import PromptMessages from './promptmessage.vue';
54
- export default {
55
- name:'listbtntoolbar',
56
- components:{
57
- PromptMessages
58
- },
59
- data () {
60
- return {
61
- myConfig:{
62
- showNum:10,
63
- enablePermissions:true,
64
- curHelpUrl:'',
65
- modulecode:'',
66
- items:[],
67
- mainButton:'addData',
68
- mainButtonText:'新增',
69
- mainButtonIcon:null,
70
- mainButtonCustomIcon:'iconfont icon-custom-add'
71
- },
72
- addDataBtnFlag:true,
73
- addReadOnly:false,
74
- showHelpBtn:false,
75
- showModuleCode:false,
76
- moreFlag:false,
77
- btnItems:[],
78
- ignoreModule:['downTemplate'],
79
- notpowerFlag:true,
80
- billoperlog:false,
81
- };
82
- },
83
- props:{
84
- config: {
85
- type:Object,
86
- default:null
87
- },
88
- moduleMethod:{
89
- type:Array,
90
- default: () => {
91
- return [];
92
- }
93
- },
94
- },
95
- created () {
96
- this.init();
97
- },
98
- methods: {
99
- init () {
100
- this.myConfig = Object.assign({},this.myConfig, this.config);
101
- if (this.myConfig.ignoreModule) {
102
- let ignoreModule = this.$Method.copy(this.ignoreModule);
103
- let flag = true;
104
- this.myConfig.ignoreModule.forEach(el => {
105
- flag = false;
106
- this.ignoreModule.some(el2 => {
107
- if (el2 == el) {
108
- flag = true;
109
- return true;
110
- }
111
- });
112
- if (!flag) {
113
- ignoreModule.push(el);
114
- }
115
- });
116
- }
117
- if (this.myConfig.items && this.myConfig.items.length > 0) {
118
- this.myConfig.items.forEach(el => {
119
- if (el.name !== this.myConfig.mainButton) {
120
- let tmp = this.$Method.copy(el);
121
- if (tmp.readOnly === undefined) {
122
- tmp.readOnly = false;
123
- }
124
- if (tmp.icon && tmp.icon.startsWith('custom')) {
125
- tmp.customIcon='iconfont icon-' + tmp.icon;
126
- tmp.icon = null;
127
- }
128
- this.btnItems.push(tmp);
129
- } else {
130
- if (el.icon && el.icon.startsWith('custom')) {
131
- this.mainButtonCustomIcon = 'iconfont icon-' + el.icon;
132
- this.mainButtonIcon = null;
133
- } else {
134
- this.mainButtonIcon = el.icon;
135
- this.mainButtonCustomIcon = null;
136
- }
137
-
138
- }
139
- });
140
- }
141
-
142
- if (this.myConfig.curHelpUrl) {
143
- this.showHelpBtn = true;
144
- }
145
- if (this.myConfig.modulecode) {
146
- this.showModuleCode = true;
147
- }
148
-
149
- if (this.myConfig.enablePermissions) {
150
- if (this.moduleMethod && this.moduleMethod.length > 0) {
151
- let addIndex = this.moduleMethod.findIndex(el => el.name === this.myConfig.mainButton);
152
- if (addIndex === -1) {
153
- this.addDataBtnFlag = false;
154
- } else {
155
- this.addDataBtnFlag = true;
156
- }
157
- let btnItems = [];
158
- this.moduleMethod.forEach(el =>{
159
- let tmp = this.btnItems.find(el2 => el.name === el2.name);
160
- if (tmp) {
161
- btnItems.push(tmp);
162
- }
163
- });
164
- if (btnItems.length === 0) {
165
- this.btnItems = [];
166
- this.notpowerFlag = true;
167
- } else{
168
- this.ignoreModule.forEach(el => {
169
- let tmp = btnItems.find(el2 => el2.name === el)
170
- if (!tmp) {
171
- let tmp2 = this.btnItems.find(el3 => el3.name === el);
172
- if (tmp2) {
173
- btnItems.push(tmp2);
174
- }
175
- }
176
- });
177
- let mainIndex = this.ignoreModule.findIndex(el => el === this.myConfig.mainButton);
178
- if (mainIndex > -1) {
179
- this.addDataBtnFlag = true;
180
- }
181
- this.btnItems = btnItems;
182
- this.notpowerFlag = false;
183
- }
184
- } else {
185
- this.notpowerFlag = true;
186
- }
187
- } else {
188
- this.notpowerFlag = false;
189
- }
190
- if (this.btnItems.length > this.myConfig.showNum){
191
- this.moreFlag = true;
192
- }
193
-
194
- if (this.myConfig.billoperlog) {
195
- this.billoperlog = true;
196
- }
197
- },
198
- action(name) {
199
- let obj = {};
200
- obj.name = name;
201
- this.$emit('doAction', obj);
202
- },
203
- openBilloperlog() {
204
- this.doBtn('openBilloperlog');
205
- },
206
-
207
- setAllReadOnly (value) {
208
- let btn = this.$Method.copy(this.btnItems);
209
- this.addReadOnly = value;
210
- btn.forEach(el => {
211
- this.doCommonPro(el.name,'readOnly', value);
212
- });
213
- },
214
- setReadOnly (obj, value) {
215
- if (obj) {
216
- if (obj instanceof Array) {
217
- obj.forEach(el => {
218
- if (el === this.myConfig.mainButton) {
219
- this.addReadOnly = value;
220
- } else {
221
- this.doCommonPro(el,'readOnly', value);
222
- }
223
- });
224
- } else {
225
- if (obj === this.myConfig.mainButton) {
226
- this.addReadOnly = value;
227
- } else {
228
- this.doCommonPro(obj,'readOnly', value);
229
- }
230
- }
231
- }
232
- },
233
- doCommonPro (btnName, proName, value) {
234
- let index = this.btnItems.findIndex(el => el.name === btnName);
235
- if (index > -1) {
236
- let pro = {};
237
- pro[proName] = value;
238
- let temp = Object.assign({},this.btnItems[index], pro);
239
- this.btnItems.splice(index,1,temp);
240
- }
241
- },
242
- addData() {
243
- this.doBtn(this.myConfig.mainButton);
244
- },
245
- doBtn(name) {
246
- let obj = {};
247
- obj.name = name;
248
- this.$emit('doAction', obj);
249
- },
250
- changedStatus(value) {
251
- if (this.myConfig.status && this.myConfig.status[value]) {
252
- let btn = this.$Method.copy(this.btnItems);
253
- btn.forEach(el => {
254
- let tmp = this.myConfig.status[value].find(el2 => el2 === el.name);
255
- if (tmp) {
256
- if (el.readOnly !== false) {
257
- this.doCommonPro(el.name,'readOnly', false);
258
- }
259
- } else {
260
- if (el.readOnly !== true) {
261
- this.doCommonPro(el.name,'readOnly', true);
262
- }
263
- }
264
- });
265
- }
266
- }
267
- }
268
-
269
- };
270
- </script>
271
- <style lang="less" scoped>
272
- .dividercommon {
273
- margin:1px 12px 0 12px;
274
- height:32px;
275
- }
276
- </style>
1
+ <template>
2
+ <Row type="flex" :gutter="0" justify="start" align="middle">
3
+ <Col span="18">
4
+ <Row v-if="!notpowerFlag" type="flex" :gutter="0" justify="start" align="middle">
5
+ <Col v-if="addDataBtnFlag">
6
+ <Button :custom-icon="mainButtonCustomIcon" :icon="mainButtonIcon" type="primary" class="mainBtn" :disabled="!!addReadOnly" @click="addData" >{{myConfig.mainButtonText}}</Button>
7
+ </Col>
8
+ <Col v-if="addDataBtnFlag">
9
+ <Divider type="vertical" class="dividercommon"/>
10
+ </Col>
11
+ <template v-for="(item,index) in btnItems" :key="'btn_' + index">
12
+ <Col v-if="!moreFlag || index < myConfig.showNum" style="margin-right:10px">
13
+ <Button :icon="item.icon" :custom-icon="item.customIcon" @click="action(item.name)" :disabled="!!item.readOnly">{{item.text}}</Button>
14
+ </Col>
15
+ </template>
16
+ <Col v-if="moreFlag">
17
+ <Dropdown>
18
+ <Button type="info" icon="ios-arrow-down" > </Button>
19
+ <template #list>
20
+ <DropdownMenu>
21
+ <template v-for="(item,index) in btnItems" :key="'btn_' + index">
22
+ <DropdownItem v-if="index > myConfig.showNum" :disabled="item.readOnly">
23
+ <Button :type="item.type" :icon="item.icon" :custom-icon="item.customIcon" :size="item.size" @click="action(item.name)" :disabled="!!item.readOnly">{{item.text}}</Button>
24
+ </DropdownItem>
25
+ </template>
26
+ </DropdownMenu>
27
+ </template>
28
+ </Dropdown>
29
+ </Col>
30
+ </Row>
31
+ <Row v-else type="flex" :gutter="0" justify="start" align="middle">
32
+ <Icon custom="iconfont icon-custom-tishi" size="20" color="#F3B352"/> <span style="margin-left: 12px;font-size:18px;color:#F3B352;font-weight:bold">注意:当前页面您没有操作权限</span>
33
+ </Row>
34
+ </Col>
35
+ <Col span="6">
36
+ <Row type="flex" :gutter="0" justify="end" align="middle">
37
+ <Col v-if="billoperlog">
38
+ <Button customIcon="iconfont icon-custom-baopidan" @click="openBilloperlog">操作日志</Button>
39
+ </Col>
40
+ <Col v-if="billoperlog">
41
+ <Divider type="vertical" class="dividercommon"/>
42
+ </Col>
43
+ <Col>
44
+ <PromptMessages modetype="2" style="height:100%"/>
45
+ </Col>
46
+ </Row>
47
+
48
+ </Col>
49
+ </Row>
50
+ </template>
51
+
52
+ <script>
53
+ import PromptMessages from './promptmessage.vue';
54
+ export default {
55
+ name:'listbtntoolbar',
56
+ components:{
57
+ PromptMessages
58
+ },
59
+ data () {
60
+ return {
61
+ myConfig:{
62
+ showNum:10,
63
+ enablePermissions:true,
64
+ curHelpUrl:'',
65
+ modulecode:'',
66
+ items:[],
67
+ mainButton:'addData',
68
+ mainButtonText:'新增',
69
+ mainButtonIcon:null,
70
+ mainButtonCustomIcon:'iconfont icon-custom-add'
71
+ },
72
+ addDataBtnFlag:true,
73
+ addReadOnly:false,
74
+ showHelpBtn:false,
75
+ showModuleCode:false,
76
+ moreFlag:false,
77
+ btnItems:[],
78
+ ignoreModule:['downTemplate'],
79
+ notpowerFlag:true,
80
+ billoperlog:false,
81
+ };
82
+ },
83
+ props:{
84
+ config: {
85
+ type:Object,
86
+ default:null
87
+ },
88
+ moduleMethod:{
89
+ type:Array,
90
+ default: () => {
91
+ return [];
92
+ }
93
+ },
94
+ },
95
+ created () {
96
+ this.init();
97
+ },
98
+ methods: {
99
+ init () {
100
+ this.myConfig = Object.assign({},this.myConfig, this.config);
101
+ if (this.myConfig.ignoreModule) {
102
+ let ignoreModule = this.$Method.copy(this.ignoreModule);
103
+ let flag = true;
104
+ this.myConfig.ignoreModule.forEach(el => {
105
+ flag = false;
106
+ this.ignoreModule.some(el2 => {
107
+ if (el2 == el) {
108
+ flag = true;
109
+ return true;
110
+ }
111
+ });
112
+ if (!flag) {
113
+ ignoreModule.push(el);
114
+ }
115
+ });
116
+ }
117
+ if (this.myConfig.items && this.myConfig.items.length > 0) {
118
+ this.myConfig.items.forEach(el => {
119
+ if (el.name !== this.myConfig.mainButton) {
120
+ let tmp = this.$Method.copy(el);
121
+ if (tmp.readOnly === undefined) {
122
+ tmp.readOnly = false;
123
+ }
124
+ if (tmp.icon && tmp.icon.startsWith('custom')) {
125
+ tmp.customIcon='iconfont icon-' + tmp.icon;
126
+ tmp.icon = null;
127
+ }
128
+ this.btnItems.push(tmp);
129
+ } else {
130
+ if (el.icon && el.icon.startsWith('custom')) {
131
+ this.mainButtonCustomIcon = 'iconfont icon-' + el.icon;
132
+ this.mainButtonIcon = null;
133
+ } else {
134
+ this.mainButtonIcon = el.icon;
135
+ this.mainButtonCustomIcon = null;
136
+ }
137
+
138
+ }
139
+ });
140
+ }
141
+
142
+ if (this.myConfig.curHelpUrl) {
143
+ this.showHelpBtn = true;
144
+ }
145
+ if (this.myConfig.modulecode) {
146
+ this.showModuleCode = true;
147
+ }
148
+
149
+ if (this.myConfig.enablePermissions) {
150
+ if (this.moduleMethod && this.moduleMethod.length > 0) {
151
+ let addIndex = this.moduleMethod.findIndex(el => el.name === this.myConfig.mainButton);
152
+ if (addIndex === -1) {
153
+ this.addDataBtnFlag = false;
154
+ } else {
155
+ this.addDataBtnFlag = true;
156
+ }
157
+ let btnItems = [];
158
+ this.moduleMethod.forEach(el =>{
159
+ let tmp = this.btnItems.find(el2 => el.name === el2.name);
160
+ if (tmp) {
161
+ btnItems.push(tmp);
162
+ }
163
+ });
164
+ if (btnItems.length === 0) {
165
+ this.btnItems = [];
166
+ this.notpowerFlag = true;
167
+ } else{
168
+ this.ignoreModule.forEach(el => {
169
+ let tmp = btnItems.find(el2 => el2.name === el)
170
+ if (!tmp) {
171
+ let tmp2 = this.btnItems.find(el3 => el3.name === el);
172
+ if (tmp2) {
173
+ btnItems.push(tmp2);
174
+ }
175
+ }
176
+ });
177
+ let mainIndex = this.ignoreModule.findIndex(el => el === this.myConfig.mainButton);
178
+ if (mainIndex > -1) {
179
+ this.addDataBtnFlag = true;
180
+ }
181
+ this.btnItems = btnItems;
182
+ this.notpowerFlag = false;
183
+ }
184
+ } else {
185
+ this.notpowerFlag = true;
186
+ }
187
+ } else {
188
+ this.notpowerFlag = false;
189
+ }
190
+ if (this.btnItems.length > this.myConfig.showNum){
191
+ this.moreFlag = true;
192
+ }
193
+
194
+ if (this.myConfig.billoperlog) {
195
+ this.billoperlog = true;
196
+ }
197
+ },
198
+ action(name) {
199
+ let obj = {};
200
+ obj.name = name;
201
+ this.$emit('doAction', obj);
202
+ },
203
+ openBilloperlog() {
204
+ this.doBtn('openBilloperlog');
205
+ },
206
+
207
+ setAllReadOnly (value) {
208
+ let btn = this.$Method.copy(this.btnItems);
209
+ this.addReadOnly = value;
210
+ btn.forEach(el => {
211
+ this.doCommonPro(el.name,'readOnly', value);
212
+ });
213
+ },
214
+ setReadOnly (obj, value) {
215
+ if (obj) {
216
+ if (obj instanceof Array) {
217
+ obj.forEach(el => {
218
+ if (el === this.myConfig.mainButton) {
219
+ this.addReadOnly = value;
220
+ } else {
221
+ this.doCommonPro(el,'readOnly', value);
222
+ }
223
+ });
224
+ } else {
225
+ if (obj === this.myConfig.mainButton) {
226
+ this.addReadOnly = value;
227
+ } else {
228
+ this.doCommonPro(obj,'readOnly', value);
229
+ }
230
+ }
231
+ }
232
+ },
233
+ doCommonPro (btnName, proName, value) {
234
+ let index = this.btnItems.findIndex(el => el.name === btnName);
235
+ if (index > -1) {
236
+ let pro = {};
237
+ pro[proName] = value;
238
+ let temp = Object.assign({},this.btnItems[index], pro);
239
+ this.btnItems.splice(index,1,temp);
240
+ }
241
+ },
242
+ addData() {
243
+ this.doBtn(this.myConfig.mainButton);
244
+ },
245
+ doBtn(name) {
246
+ let obj = {};
247
+ obj.name = name;
248
+ this.$emit('doAction', obj);
249
+ },
250
+ changedStatus(value) {
251
+ if (this.myConfig.status && this.myConfig.status[value]) {
252
+ let btn = this.$Method.copy(this.btnItems);
253
+ btn.forEach(el => {
254
+ let tmp = this.myConfig.status[value].find(el2 => el2 === el.name);
255
+ if (tmp) {
256
+ if (el.readOnly !== false) {
257
+ this.doCommonPro(el.name,'readOnly', false);
258
+ }
259
+ } else {
260
+ if (el.readOnly !== true) {
261
+ this.doCommonPro(el.name,'readOnly', true);
262
+ }
263
+ }
264
+ });
265
+ }
266
+ }
267
+ }
268
+
269
+ };
270
+ </script>
271
+ <style lang="less" scoped>
272
+ .dividercommon {
273
+ margin:1px 12px 0 12px;
274
+ height:32px;
275
+ }
276
+ </style>