ocpview-plus 0.0.1

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 (195) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/dist/efviewplus.min.esm.js +99954 -0
  4. package/dist/efviewplus.min.js +142 -0
  5. package/dist/locale/lang.js +1 -0
  6. package/dist/locale/zh-CN.js +1 -0
  7. package/dist/locale/zh-TW.js +1 -0
  8. package/dist/locale/zh-UG.js +1 -0
  9. package/dist/style.css +9 -0
  10. package/dist/styles/efviewplus.css +1 -0
  11. package/package.json +144 -0
  12. package/src/components/base/controlbase.vue +191 -0
  13. package/src/components/base/controlbox.vue +102 -0
  14. package/src/components/base/index.js +3 -0
  15. package/src/components/base/load.js +20 -0
  16. package/src/components/base/probase.js +220 -0
  17. package/src/components/base/size.js +78 -0
  18. package/src/components/billbox/billbox.vue +68 -0
  19. package/src/components/billbox/index.js +2 -0
  20. package/src/components/cascaderbox/cascaderbox.vue +184 -0
  21. package/src/components/cascaderbox/index.js +2 -0
  22. package/src/components/checkbox/checkbox.vue +76 -0
  23. package/src/components/checkbox/checkgroupbox.vue +104 -0
  24. package/src/components/checkbox/index.js +3 -0
  25. package/src/components/colorbox/colorbox.vue +44 -0
  26. package/src/components/colorbox/index.js +2 -0
  27. package/src/components/combobox/combobox.vue +220 -0
  28. package/src/components/combobox/index.js +2 -0
  29. package/src/components/conditionbox/conditionbase.vue +195 -0
  30. package/src/components/conditionbox/conditionbox.vue +63 -0
  31. package/src/components/conditionbox/conditionfilterbox.vue +477 -0
  32. package/src/components/conditionbox/conditionselectorbox.vue +237 -0
  33. package/src/components/conditionbox/index.js +5 -0
  34. package/src/components/conditionbox/queryconditionbox.vue +26 -0
  35. package/src/components/conditionbox/queryconditionboxbase.vue +124 -0
  36. package/src/components/conditionbox/searchconditionbox.vue +114 -0
  37. package/src/components/conditionbox/searchgrid.vue +391 -0
  38. package/src/components/datebox/datebox.vue +129 -0
  39. package/src/components/datebox/daterangebox.vue +155 -0
  40. package/src/components/datebox/index.js +3 -0
  41. package/src/components/form/baseform.vue +677 -0
  42. package/src/components/form/detailsbox.vue +487 -0
  43. package/src/components/form/formbox.vue +29 -0
  44. package/src/components/form/formcardbox.vue +268 -0
  45. package/src/components/form/formcardgroupbox.vue +252 -0
  46. package/src/components/form/formcompro.js +19 -0
  47. package/src/components/form/formdetail.vue +129 -0
  48. package/src/components/form/formdetailtwo.vue +302 -0
  49. package/src/components/form/index.js +8 -0
  50. package/src/components/form/toolanchor.js +46 -0
  51. package/src/components/form/workform.vue +168 -0
  52. package/src/components/grid/basegrid.vue +1061 -0
  53. package/src/components/grid/editgrid.vue +51 -0
  54. package/src/components/grid/editgridbase.vue +947 -0
  55. package/src/components/grid/editgridcard.vue +193 -0
  56. package/src/components/grid/expandrow.vue +137 -0
  57. package/src/components/grid/index.js +6 -0
  58. package/src/components/grid/viewgrid.vue +122 -0
  59. package/src/components/grid/viewgridbase.vue +1284 -0
  60. package/src/components/icon/common-icon.vue +53 -0
  61. package/src/components/icon/eicon.vue +29 -0
  62. package/src/components/icon/icons.vue +42 -0
  63. package/src/components/icon/index.js +2 -0
  64. package/src/components/label/index.js +3 -0
  65. package/src/components/label/showtext.vue +95 -0
  66. package/src/components/load/loadcartoon.vue +228 -0
  67. package/src/components/map/index.js +2 -0
  68. package/src/components/map/mapbox.vue +348 -0
  69. package/src/components/masterplate/appendix.vue +586 -0
  70. package/src/components/masterplate/approval.vue +803 -0
  71. package/src/components/masterplate/base.vue +985 -0
  72. package/src/components/masterplate/billasyncimport.vue +614 -0
  73. package/src/components/masterplate/billconditionbox.vue +224 -0
  74. package/src/components/masterplate/billconditionsbox.vue +427 -0
  75. package/src/components/masterplate/billdetailform.vue +990 -0
  76. package/src/components/masterplate/billimport.vue +263 -0
  77. package/src/components/masterplate/billquerygrid.vue +316 -0
  78. package/src/components/masterplate/billsinglegrid.vue +234 -0
  79. package/src/components/masterplate/birtreport.vue +185 -0
  80. package/src/components/masterplate/detailbtntoolbar.vue +311 -0
  81. package/src/components/masterplate/detailsbox.vue +386 -0
  82. package/src/components/masterplate/editgridcard.vue +222 -0
  83. package/src/components/masterplate/editgridcard2.vue +109 -0
  84. package/src/components/masterplate/formcard.vue +106 -0
  85. package/src/components/masterplate/formcardgroupbox.vue +168 -0
  86. package/src/components/masterplate/formdetailtwo.vue +356 -0
  87. package/src/components/masterplate/gridcolset.vue +227 -0
  88. package/src/components/masterplate/index.js +23 -0
  89. package/src/components/masterplate/layouttemplate.vue +33 -0
  90. package/src/components/masterplate/leftlistrightdetails.vue +474 -0
  91. package/src/components/masterplate/leftlistrightlist.vue +465 -0
  92. package/src/components/masterplate/lefttreerightdetails.vue +619 -0
  93. package/src/components/masterplate/levelreport.vue +510 -0
  94. package/src/components/masterplate/listbtntoolbar.vue +257 -0
  95. package/src/components/masterplate/listdetails.vue +769 -0
  96. package/src/components/masterplate/operlog.vue +272 -0
  97. package/src/components/masterplate/options.vue +110 -0
  98. package/src/components/masterplate/page.vue +102 -0
  99. package/src/components/masterplate/promptmessage.vue +74 -0
  100. package/src/components/masterplate/querybar.vue +490 -0
  101. package/src/components/masterplate/report.vue +357 -0
  102. package/src/components/masterplate/rowbtntoolbar.vue +126 -0
  103. package/src/components/masterplate/simpletree.vue +129 -0
  104. package/src/components/masterplate/simpleviewgrid.vue +144 -0
  105. package/src/components/mychart/bar/bar.vue +202 -0
  106. package/src/components/mychart/basechart.vue +190 -0
  107. package/src/components/mychart/complexmychart/barline.vue +154 -0
  108. package/src/components/mychart/gauge/gauge.vue +83 -0
  109. package/src/components/mychart/index.js +9 -0
  110. package/src/components/mychart/line/line.vue +202 -0
  111. package/src/components/mychart/liquidfill/liquidfill.vue +109 -0
  112. package/src/components/mychart/pie/pie.vue +96 -0
  113. package/src/components/mychart/radar/radar.vue +122 -0
  114. package/src/components/mychart/scatter/scatter.vue +76 -0
  115. package/src/components/numberbox/append.js +11 -0
  116. package/src/components/numberbox/index.js +3 -0
  117. package/src/components/numberbox/numberbox.vue +303 -0
  118. package/src/components/numberbox/numberrangebox.vue +423 -0
  119. package/src/components/picturebox/filebox.vue +365 -0
  120. package/src/components/picturebox/index.js +3 -0
  121. package/src/components/picturebox/picturebox.vue +541 -0
  122. package/src/components/picturebox/uploadbox.vue +164 -0
  123. package/src/components/poptagbox/index.js +2 -0
  124. package/src/components/poptagbox/poptagbox.vue +389 -0
  125. package/src/components/poptextbox/index.js +2 -0
  126. package/src/components/poptextbox/poptextbox.vue +601 -0
  127. package/src/components/radiobox/index.js +2 -0
  128. package/src/components/radiobox/radiogroupbox.vue +76 -0
  129. package/src/components/richtextbox/editor.vue +150 -0
  130. package/src/components/richtextbox/index.js +2 -0
  131. package/src/components/richtextbox/richtextbox.vue +448 -0
  132. package/src/components/textbox/index.js +2 -0
  133. package/src/components/textbox/textbox.vue +98 -0
  134. package/src/components/timebox/index.js +2 -0
  135. package/src/components/timebox/timebox.vue +76 -0
  136. package/src/components/toolbar/ebutton.vue +169 -0
  137. package/src/components/toolbar/index.js +3 -0
  138. package/src/components/toolbar/toolbar.vue +446 -0
  139. package/src/components/tree/basetree.vue +725 -0
  140. package/src/components/tree/index.js +3 -0
  141. package/src/components/tree/treedata.vue +51 -0
  142. package/src/components/tree/treedatabase.vue +189 -0
  143. package/src/components/upload/billimport.vue +233 -0
  144. package/src/components/upload/index.js +2 -0
  145. package/src/components/videobox/index.js +2 -0
  146. package/src/components/videobox/uploadbox.vue +148 -0
  147. package/src/components/videobox/videobox.vue +503 -0
  148. package/src/components/wrichtextbox/editor.vue +219 -0
  149. package/src/components/wrichtextbox/index.js +2 -0
  150. package/src/components/wrichtextbox/wrichtextbox.vue +63 -0
  151. package/src/index.js +215 -0
  152. package/src/locale/format.js +51 -0
  153. package/src/locale/index.js +63 -0
  154. package/src/locale/lang/zh-CN.js +123 -0
  155. package/src/locale/lang/zh-TW.js +114 -0
  156. package/src/locale/lang/zh-UG.js +115 -0
  157. package/src/locale/lang.js +15 -0
  158. package/src/method/case/case.js +1180 -0
  159. package/src/method/config/queryconfig.js +24 -0
  160. package/src/method/const/const.js +815 -0
  161. package/src/method/index.js +8 -0
  162. package/src/static/excel/exportexcel.js +627 -0
  163. package/src/static/iview/coustom.js +463 -0
  164. package/src/store/index.js +19 -0
  165. package/src/store/modules/app.js +53 -0
  166. package/src/styles/README.md +3 -0
  167. package/src/styles/common.less +75 -0
  168. package/src/styles/components/anchor.less +74 -0
  169. package/src/styles/components/approval.less +136 -0
  170. package/src/styles/components/button.less +208 -0
  171. package/src/styles/components/card.less +51 -0
  172. package/src/styles/components/content.less +38 -0
  173. package/src/styles/components/font.less +314 -0
  174. package/src/styles/components/form.less +72 -0
  175. package/src/styles/components/iconfont/fonts/iconfont.less +1376 -0
  176. package/src/styles/components/iconfont/fonts/iconfont.svg +699 -0
  177. package/src/styles/components/iconfont/fonts/iconfont.ttf +0 -0
  178. package/src/styles/components/iconfont/fonts/iconfont.woff +0 -0
  179. package/src/styles/components/iconfont/fonts/iconfont.woff2 +0 -0
  180. package/src/styles/components/index.less +16 -0
  181. package/src/styles/components/input.less +290 -0
  182. package/src/styles/components/modal.less +203 -0
  183. package/src/styles/components/page.less +340 -0
  184. package/src/styles/components/select.less +361 -0
  185. package/src/styles/components/steps.less +367 -0
  186. package/src/styles/components/table.less +544 -0
  187. package/src/styles/components/tabs.less +249 -0
  188. package/src/styles/components/upload.less +83 -0
  189. package/src/styles/custom.less +67 -0
  190. package/src/styles/index.less +6 -0
  191. package/src/styles/pack.less +6 -0
  192. package/src/utils/EfuMessenger.js +155 -0
  193. package/src/utils/assist.js +353 -0
  194. package/src/utils/index.js +1 -0
  195. package/src/utils/random_str.js +10 -0
@@ -0,0 +1,446 @@
1
+ <template>
2
+ <div v-show="btnShow">
3
+ <template v-if="tooltype === 'form'">
4
+ <div v-if="visible">
5
+ <Row v-if="'horizontal' === type" type="flex" justify="start" :gutter="myConfig.spacing">
6
+ <Col v-for="(btn,index) in btnList" :key="'btn_' + index" v-show="btn.visible" >
7
+ <Ebutton v-if="btntype === 'Ebutton'" :ref="btn.name" :config="btn" @click="click" :amplify="amplify" :fontplacement="fontplacement" :dynamic="myConfig.btnDynamic"></Ebutton>
8
+ <Button v-if="btntype === 'Button'" :ref="btn.name" @click="action(btn.name)" :icon="btn.iconcls" :type="btn.type" :size="buttonSize" :disabled="btn.disabled">{{btn.text}}</Button>
9
+ </Col>
10
+ </Row>
11
+ <template v-if="'vertical' === type">
12
+ <Row v-for="(btn,index) in btnList" type="flex" :justify="vjustify" :key="'btn_' + index" style="margin-top: 5px;">
13
+ <Ebutton v-if="btntype === 'Ebutton'" :ref="btn.name" :config="btn" @click="click" :amplify="amplify" :fontplacement="fontplacement" :dynamic="myConfig.btnDynamic"> </Ebutton>
14
+ <Button v-if="btntype === 'Button'" v-show="btn.visible" :ref="btn.name" @click="action(btn.name)" :icon="btn.iconcls" :type="btn.type" :size="buttonSize">{{btn.text}}</Button>
15
+ </Row>
16
+ </template>
17
+ </div>
18
+ </template>
19
+ <template v-if="tooltype === 'row'">
20
+ <div v-if="visible">
21
+ <Row v-if="showType" type="flex" justify="center" :gutter="8">
22
+ <Col v-for="(item,index) in btnList" :key="'btn_' + index" v-show="item.visible">
23
+ <Button v-if="myConfig.icon === true" size="small" :type="getType(item)" :icon="item.icon" :custom-icon="item.customIcon" @click="action(item.name)"></Button>
24
+ <Button v-else size="small" :type="getType(item)" @click="action(item.name)" >{{item.text}}</Button>
25
+ </Col>
26
+ </Row>
27
+ <Dropdown v-if="!showType" @on-click="action">
28
+ <a href="javascript:void(0)">
29
+ 操作
30
+ <CommonIcon type="ios-arrow-down"></CommonIcon>
31
+ </a>
32
+ <template #list>
33
+ <DropdownMenu>
34
+ <DropdownItem v-for="(item,index) in btnList" :key="'btndropdown_' + index" v-show="item.visible" :name="item.name">{{item.text}}</DropdownItem>
35
+ </DropdownMenu>
36
+ </template>
37
+ </Dropdown>
38
+ </div>
39
+ </template>
40
+ <template v-if="tooltype === 'batch'">
41
+ <Row v-if="visible" type="flex" justify="end" :gutter="8">
42
+ <Col v-if="showAddData">
43
+ <Button icon="ios-add" @click="action('addData')" >新建</Button>
44
+ </Col>
45
+ <Col>
46
+ <Dropdown v-if="showBatchAction" @on-click="action">
47
+ <Button>
48
+ 批量操作
49
+ <CommonIcon type="ios-arrow-down"></CommonIcon>
50
+ </Button>
51
+ <template #list>
52
+ <DropdownMenu>
53
+ <DropdownItem v-for="(item,index) in btnList" :key="'dropbtn_' + index" v-show="item.visible" :name="item.name">{{item.text}}</DropdownItem>
54
+ </DropdownMenu>
55
+ </template>
56
+ </Dropdown>
57
+ </Col>
58
+ </Row>
59
+ </template>
60
+ </div>
61
+ </template>
62
+ <script>
63
+ import { oneOf } from '../../utils/assist';
64
+ import Ebutton from './ebutton.vue';
65
+ export default {
66
+ name: 'Toolbar',
67
+ data () {
68
+ return {
69
+ globalConfig:{
70
+ moduleMethod:[],
71
+ },
72
+ btnList: [],
73
+ myConfig:{
74
+ spacing:16
75
+ },
76
+ modulecode:'' ,
77
+ token:'',
78
+ buttonSize:'default',
79
+ btnShow:true,
80
+ showType:true,
81
+ visible:true,
82
+ showAddData:false,
83
+ showBatchAction:false,
84
+ vjustify:'center',
85
+ defaultStatus:{ // 按钮同斥规则 N:新增后, V:查看, E:编辑后, S:保存后, A:审核后, C:取消后, D:删除后(默认)
86
+ 'N' : ['saveData'],
87
+ 'V' : [ 'addData', 'editData', 'auditData', 'delData'],
88
+ 'E' : [ 'addData', 'saveData', 'delData'],
89
+ 'S' : [ 'addData', 'editData', 'auditData', 'delData','printData' ],
90
+ 'A' : [ 'addData', 'copyData', 'cancelData'],
91
+ 'C' : [ 'addData', 'printData'],
92
+ 'D' : [ 'addData']
93
+ },
94
+ defaultRule: {
95
+ // 按钮可用规则 Y:已审核, N:录入, C:已取消
96
+ billstatus: {
97
+ Y: [ 'addData', 'cancelData', 'printData' ],
98
+ N: [ 'addData', 'editData', 'auditData', 'delData', 'printData' ],
99
+ C: [ 'addData', 'printData' ]
100
+ }
101
+ },
102
+ };
103
+ },
104
+ props: {
105
+ type: {
106
+ validator (value) {
107
+ return oneOf(value, ['horizontal', 'vertical']);
108
+ },
109
+ default: 'vertical'
110
+ },
111
+ config: {
112
+ type: Object,
113
+ default: () => {
114
+ return {};
115
+ }
116
+ },
117
+
118
+ amplify: {
119
+ type: Boolean,
120
+ default:true
121
+ },
122
+ fontplacement: {
123
+ validator (value) {
124
+ return oneOf(value, ['bottom', 'right']);
125
+ },
126
+ default: 'right'
127
+ },
128
+ showback: {
129
+ type: Boolean,
130
+ default: false
131
+ },
132
+ tooltype: {
133
+ type: String,
134
+ default:'form'
135
+ },
136
+ btntype: {
137
+ validator (value) {
138
+ return oneOf(value, ['Button', 'Ebutton']);
139
+ },
140
+ default: 'Ebutton'
141
+ },
142
+ moduleMethod:{
143
+ type:Array,
144
+ default: () => {
145
+ return [];
146
+ }
147
+ },
148
+ billmoduleid:{
149
+ type: String,
150
+ default:''
151
+ },
152
+ checkBtn:{
153
+ type:Boolean,
154
+ default:false
155
+ },
156
+ row:{
157
+ type: Object,
158
+ default: () => {
159
+ return {};
160
+ }
161
+ }
162
+
163
+ },
164
+ created () {
165
+ this.init();
166
+ },
167
+ components: {
168
+ Ebutton
169
+ },
170
+ methods: {
171
+ init() {
172
+ if (this.config) {
173
+ this.myConfig = Object.assign({}, this.myConfig, this.config);
174
+ }
175
+ if (!this.myConfig.items) {
176
+ this.myConfig.items = [];
177
+ }
178
+ if (this.myConfig.buttonSize) {
179
+ this.buttonSize = this.myConfig.buttonSize;
180
+ }
181
+ if (this.moduleMethod.length > 0) {
182
+ this.globalConfig.moduleMethod = this.$Method.copy(this.moduleMethod);
183
+ }
184
+ this.filterBtn();
185
+ if (this.btnList.length > 0) {
186
+ this.visible = true;
187
+ } else {
188
+ if (this.tooltype === 'batch') {
189
+ this.visible = this.showAddData;
190
+ } else {
191
+ this.visible = false;
192
+ }
193
+ }
194
+ this.btnList.forEach(el => {
195
+ if (el.visible === undefined) {
196
+ el.visible = true;
197
+ }
198
+ });
199
+
200
+ },
201
+ filterBtn() {
202
+ if (this.checkBtn) {
203
+ this.getModuleMethod();
204
+ }
205
+ this.filterBtnByToken();
206
+ },
207
+ getModuleMethod() {
208
+ this.modulecode = this.$Method.getUrlParam('modulecode');
209
+ if (!this.modulecode) {
210
+ this.modulecode = this.$Method.getUrlParam('billmoduleid');
211
+ }
212
+ if (this.billmoduleid) {
213
+ this.modulecode = this.billmoduleid;
214
+ }
215
+ this.token = this.$Method.getUrlParam('token');
216
+ if (this.modulecode && this.token) {
217
+ let btnList = this.getUserModuleMethod(this.modulecode);
218
+ if (btnList) {
219
+ this.globalConfig.moduleMethod = btnList.modulemethod;
220
+ }
221
+ }
222
+ },
223
+ filterBtnByToken() {
224
+ let items = this.commonFilterBtn();
225
+ let formItems = [];
226
+ let rowItems = [];
227
+ let batchItems = [];
228
+ items.forEach(el => {
229
+ if (el.name === 'addData') {
230
+ this.showAddData = true;
231
+ }
232
+ if (el.iconcls === 'batch') {
233
+ batchItems.push(el);
234
+ } else if (el.iconcls === 'row') {
235
+ rowItems.push(el);
236
+ } else {
237
+ formItems.push(el);
238
+ }
239
+ });
240
+
241
+ if (batchItems.length > 0) {
242
+ this.showBatchAction = true;
243
+ }
244
+
245
+ if (this.tooltype === 'batch') {
246
+ this.btnList = this.$Method.copy(batchItems);
247
+ } else if (this.tooltype === 'row') {
248
+ this.btnList = this.$Method.copy(rowItems);
249
+ } else {
250
+ if (this.fontplacement === 'right') {
251
+ this.vjustify = 'start';
252
+ }
253
+ this.btnList = this.$Method.copy(formItems);
254
+ if (this.isBillImport()) {
255
+ let importconfig = {};
256
+ if (this.myConfig.importbtn && JSON.stringify(this.myConfig.importbtn) !== '{}') {
257
+ importconfig = Object.assign({},{iconcls:'_download',name:'downTemplate',text:'导入模版'},this.myConfig.backbtn) ;
258
+ importconfig.name = 'downTemplate';
259
+ } else {
260
+ importconfig = {
261
+ iconcls:'_download',
262
+ name:'downTemplate',
263
+ text:'导入模版'
264
+ };
265
+ }
266
+ importconfig.visible = true;
267
+ this.btnList.push(importconfig);
268
+ }
269
+
270
+ if (this.showback) {
271
+ let back = {};
272
+ if (this.myConfig.backbtn && JSON.stringify(this.myConfig.backbtn) !== '{}') {
273
+ back = Object.assign({},{iconcls:'_back',name:'back',text:'返回'},this.myConfig.backbtn) ;
274
+ back.name = 'back';
275
+ } else {
276
+ back = {
277
+ iconcls:'_back',
278
+ name:'back',
279
+ text:'返回'
280
+ };
281
+ }
282
+ back.visible = true;
283
+ this.btnList.push(back);
284
+ }
285
+ this.initStatus();
286
+ }
287
+ },
288
+ commonFilterBtn() {
289
+ let tokenlength = this.globalConfig.moduleMethod.length;
290
+ if (tokenlength <= 0) {
291
+ return this.myConfig.items;
292
+ }
293
+ let items = [];
294
+ this.globalConfig.moduleMethod.forEach(el => {
295
+ let index = this.myConfig.items.findIndex(el2 => el2.name === el.name);
296
+ if (index > -1) {
297
+ items.push(this.$Method.copy(this.myConfig.items[index]));
298
+ }
299
+ });
300
+ let index2 = this.myConfig.items.findIndex(el => el.name === 'editRowForm');
301
+ if (index2 > -1) {
302
+ items.push(this.$Method.copy(this.myConfig.items[index2]));
303
+ }
304
+ return items;
305
+ },
306
+ initStatus() {
307
+ if (this.myConfig.status) {
308
+ Object.keys(this.defaultStatus).forEach(temp => {
309
+ if (this.myConfig.status[temp] === undefined) {
310
+ this.myConfig.status[temp] = [];
311
+ }
312
+ let array = this.myConfig.status[temp].concat(this.defaultStatus[temp]);
313
+ this.myConfig.status[temp] = this.uniqueArr(array);
314
+ });
315
+ } else {
316
+ this.myConfig.status = this.$Method.copy(this.defaultStatus);
317
+ }
318
+ if (this.myConfig.rule) {
319
+ Object.keys(this.defaultRule).forEach(temp2 => {
320
+ if (this.myConfig.rule[temp2]) {
321
+ Object.keys(this.defaultRule[temp2]).forEach(temp3 => {
322
+ if (this.defaultStatus[temp2]) {
323
+ if (this.myConfig.rule[temp2][temp3] === undefined) {
324
+ this.myConfig.rule[temp2][temp3] = [];
325
+ }
326
+ if (this.defaultStatus[temp2][temp3] === undefined) {
327
+ this.defaultStatus[temp2][temp3] = [];
328
+ }
329
+ } else {
330
+ this.defaultStatus[temp2] ={};
331
+ this.defaultStatus[temp2][temp3] = [];
332
+ if (this.myConfig.rule[temp2][temp3] === undefined) {
333
+ this.myConfig.rule[temp2][temp3] = [];
334
+ }
335
+ }
336
+ let rule = this.myConfig.rule[temp2][temp3].concat(this.defaultStatus[temp2][temp3]);
337
+ this.myConfig.rule[temp2][temp3] = this.uniqueArr(rule);
338
+ });
339
+ }
340
+ });
341
+ } else {
342
+ this.myConfig.rule = this.$Method.copy(this.defaultRule);
343
+ }
344
+ },
345
+ click(name) {
346
+ let para = {};
347
+ para.name = name;
348
+ this.$emit('doAction', para);
349
+ },
350
+ changedStatusCommon(para) {
351
+ this.btnList.forEach(el => {
352
+ this.setReadOnly(el.name,true);
353
+ });
354
+ if (!para) {
355
+ para = [];
356
+ }
357
+ para = para.concat(['back','downTemplate','editRowForm']);
358
+ para.forEach(name =>{
359
+ this.setReadOnly(name,false);
360
+ });
361
+ },
362
+ changedStatus(flag) {
363
+ if (flag) {
364
+ let para = this.myConfig.status[flag];
365
+ this.changedStatusCommon(para);
366
+ }
367
+ },
368
+ isBillImport(){
369
+ return this.btnList.some(item => item.name === 'billImport');
370
+ },
371
+
372
+ gridChangedStatus(name, code) {
373
+ if (this.myConfig && this.myConfig.rule && this.myConfig.rule[name]) {
374
+ let para = this.myConfig.rule[name][code];
375
+ this.changedStatusCommon(para);
376
+ }
377
+ },
378
+ uniqueArr(array) {
379
+ let r = [];
380
+ const lenght = array.length ;
381
+ for (let i = 0, l = lenght; i < l; i++) {
382
+ for (let j = i + 1; j < l; j++)
383
+ if (array[i] === array[j]) j = ++i;
384
+ r.push(array[i]);
385
+ }
386
+ return r;
387
+ },
388
+ action(name) {
389
+ let para = {};
390
+ para.name = name;
391
+ this.$emit('doAction', para);
392
+ },
393
+ getType(item) {
394
+ if (item.type) {
395
+ return item.type;
396
+ } else {
397
+ return 'text';
398
+ }
399
+ },
400
+ setVisible(name,value,tempBtntype) {
401
+ let btntype = this.btntype;
402
+ if (tempBtntype) {
403
+ btntype = tempBtntype;
404
+ }
405
+ if (btntype === 'Ebutton') {
406
+ if (this.$refs[name] && this.$refs[name][0]) {
407
+ this.$refs[name][0].setVisible(value);
408
+ }
409
+ } else {
410
+ const index = this.btnList.findIndex(item => item.name === name);
411
+ if (index > -1) {
412
+ let newConfig = this.$Method.copy(this.btnList[index]);
413
+ newConfig.visible = value;
414
+ this.btnList.splice(index,1,newConfig);
415
+ }
416
+ }
417
+ },
418
+ setReadOnly(name, value,tempBtntype) {
419
+ let btntype = this.btntype;
420
+ if (tempBtntype) {
421
+ btntype = tempBtntype;
422
+ }
423
+ if (btntype === 'Ebutton') {
424
+ if (this.$refs[name] && this.$refs[name][0]) {
425
+ this.$refs[name][0].setEnabled(value);
426
+ }
427
+ } else {
428
+ const index = this.btnList.findIndex(item => item.name === name);
429
+ if (index > -1) {
430
+ let newConfig = this.$Method.copy(this.btnList[index]);
431
+ newConfig.disabled = value;
432
+ this.btnList.splice(index,1,newConfig);
433
+ }
434
+ }
435
+ }
436
+
437
+ },
438
+ mounted () {
439
+ //this.changedStatus('V');
440
+ let self = this;
441
+ if (self.config.customInit) {
442
+ self.config.customInit(self.row,self);
443
+ }
444
+ }
445
+ };
446
+ </script>