manage-client 3.2.65-aode → 3.2.66-aode

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 (69) hide show
  1. package/build/dev-server.js +193 -193
  2. package/build/webpack.base.conf.js +79 -79
  3. package/client.iml +14 -14
  4. package/package.json +1 -1
  5. package/src/Util.js +383 -383
  6. package/src/components/MeterManage/MeterList.vue +336 -336
  7. package/src/components/WebReport/UserGasAll.vue +214 -214
  8. package/src/components/sale/businessquery/ChangeMeterQuery.vue +667 -667
  9. package/src/components/sale/businessquery/ChargeQuery.vue +663 -663
  10. package/src/components/sale/businessquery/DeductionGas.vue +149 -149
  11. package/src/components/sale/businessquery/DisableQuery.vue +315 -315
  12. package/src/components/sale/businessquery/EnableQuery.vue +315 -315
  13. package/src/components/sale/businessquery/FillCardQuery.vue +436 -436
  14. package/src/components/sale/businessquery/FillGasQuery.vue +435 -435
  15. package/src/components/sale/businessquery/HandplanQuery.vue +705 -705
  16. package/src/components/sale/businessquery/InspectListGas.vue +456 -456
  17. package/src/components/sale/businessquery/NewAccountQuery.vue +506 -506
  18. package/src/components/sale/businessquery/OtherChargeQuery.vue +406 -406
  19. package/src/components/sale/businessquery/QueryUserState.vue +313 -313
  20. package/src/components/sale/businessquery/ReverseQuery.vue +347 -347
  21. package/src/components/sale/businessquery/TransferQuery.vue +363 -363
  22. package/src/components/sale/businessquery/toolCardMakeQuery.vue +340 -340
  23. package/src/components/sale/filesquery/ArchivesManage.vue +3 -0
  24. package/src/components/sale/filesquery/ChangeUserQuery.vue +394 -0
  25. package/src/components/sale/filesquery/DeviceQuery.vue +329 -329
  26. package/src/components/sale/filesquery/MeterQuery.vue +593 -593
  27. package/src/components/sale/filesquery/UserQuery.vue +556 -556
  28. package/src/components/sale/filesquery/filequerydetail/BlackListQueryDetail.vue +219 -219
  29. package/src/components/sale/filesquery/filequerydetail/DisableQueryDetail.vue +272 -272
  30. package/src/components/sale/filesquery/filequerydetail/EnableQueryDetail.vue +274 -274
  31. package/src/components/sale/ncpush/ncUserLoad.vue +176 -176
  32. package/src/components/sale/ncpush/ncpushmanage/NCpushList.vue +497 -497
  33. package/src/components/sale/ncpush/ncrecord/pushdaydatalist.vue +298 -298
  34. package/src/components/sale/ncpush/pushconfirmlist.vue +414 -414
  35. package/src/components/sale/ncpush/pushconfirmmergelist.vue +480 -480
  36. package/src/components/sale/report/aode/DayReportList.vue +516 -516
  37. package/src/components/sale/report/aode/MonthByChargeType.vue +526 -526
  38. package/src/components/sale/report/aode/MonthByUserType.vue +562 -562
  39. package/src/components/sale/report/aode/YearByChargeTpye.vue +254 -254
  40. package/src/components/sale/report/aode/YearByUserType.vue +342 -342
  41. package/src/components/sale/report/aode/iot/FarawayQuery.vue +401 -401
  42. package/src/components/sale/report/aode/iot/ReportQuery.vue +387 -387
  43. package/src/components/sale/report/aode/userbuyQuery.vue +477 -477
  44. package/src/components/valueaddinfo/ValueAddinfoQuery.vue +425 -425
  45. package/src/components/valueaddinfo/renewalvalueAddUserQuery.vue +371 -371
  46. package/src/components/valueaddinfo/valueAddCountQuery.vue +315 -315
  47. package/src/components/valueaddinfo/valueAddUserQuery.vue +404 -404
  48. package/src/components/webmeter/ArreasuserQuery.vue +193 -193
  49. package/src/components/webmeter/DrillData/LostContactAnalysis.vue +531 -531
  50. package/src/components/webmeter/DrillData/LostContactAnalysisList.vue +548 -548
  51. package/src/components/webmeter/DrillData/NewUserGasAll.vue +564 -564
  52. package/src/components/webmeter/DrillData/UserLostContactAnalysis.vue +507 -507
  53. package/src/components/webmeter/EasyExcelExportCk.vue +396 -396
  54. package/src/components/webmeter/IOTArrears/arrears.vue +324 -324
  55. package/src/components/webmeter/IOTArrears/iotRechargeAudit.vue +377 -377
  56. package/src/components/webmeter/NewWebmeterHandplanQuery.vue +605 -605
  57. package/src/components/webmeter/WebmeterHandplanQuery.vue +640 -640
  58. package/src/components/webmeter/dataCollection/DataCollection.vue +630 -630
  59. package/src/components/webmeter/gasAnalysis/GasAnalysisManage.vue +303 -303
  60. package/src/components/webmeter/handplan/NewWebMeterHandPlan.vue +745 -745
  61. package/src/components/webmeter/newwebmeter/NewException/NewMeterException.vue +449 -449
  62. package/src/components/webmeter/newwebmeter/NewException/TotalExceptionByMeter.vue +492 -492
  63. package/src/components/webmeter/newwebmeter/ReportDataQuery.vue +283 -283
  64. package/src/components/webmeter/newwebmeter/UserGasList.vue +295 -295
  65. package/src/components/webmeter/newwebmeter/UserInstructList.vue +311 -311
  66. package/src/components/webmeter/newwebmeter/signAnalysisListMain.vue +386 -386
  67. package/src/components/webmeter/report/ReportList.vue +211 -211
  68. package/src/main.js +56 -56
  69. package/src/saleManage.js +4 -0
@@ -1,396 +1,396 @@
1
- <template>
2
- <button class="button_export button_spacing" @click='exportExcel()' :id="'vc-exportexcel-'+attach">{{ btnName }}
3
- </button>
4
- <modal :show.sync="show" v-ref:modal backdrop="false">
5
- <header slot="modal-header" class="modal-header text-center">
6
- <h4 class="modal-title">导出列选择</h4>
7
- <input type="checkbox" class="" id="f_operator" v-model="all">
8
- <label for="f_operator" class="font-size">全选</label>
9
- </header>
10
- <article slot="modal-body">
11
- <div class="auto col-sm-11 col-md-offset-1" style="margin-top: 10px;">
12
- <div class="col-sm-4" v-for="f in fields">
13
- <input type="checkbox" class="" :id="'export-col-'+$index" v-model="modelval" :value="$key">
14
- <label :for="'export-col-'+$index" class="font-size">{{ f }}</label>
15
- </div>
16
- </div>
17
- </article>
18
- <footer slot="modal-footer" class="modal-footer">
19
- <center>
20
- <button v-show="show" type="button" class="btn btn-default" @click='close()'>取消</button>
21
- <button v-show="show" type="button" class="btn btn-success" @click='export()'>导出</button>
22
- </center>
23
- </footer>
24
- </modal>
25
- <modal :show.sync="exportShow" v-ref:modal backdrop="false">
26
- <header slot="modal-header" class="modal-header text-center">
27
- <h4 class="modal-title">导出文件下载</h4>
28
- </header>
29
- <article slot="modal-body" style="height:70px;">
30
- <div class="auto col-sm-12" style="margin-top: 10px;">
31
- <center>
32
- <p v-show="!downbutton">文件正在导出..</p>
33
- <button v-show="downbutton" type="button" class="btn btn-default" @click='downFile()'>下载导出文件</button>
34
- </center>
35
-
36
- </div>
37
- </article>
38
- <footer slot="modal-footer" class="modal-footer">
39
- <button type="button" class="btn btn-default" @click='closeRequeset()'>取消</button>
40
- </footer>
41
- </modal>
42
- <modal :show.sync="progressShow" v-ref:modal width="50%" style="width:auto;" backdrop="false">
43
- <header slot="modal-header" class="modal-header">
44
- 导出文件下载
45
- </header>
46
- <article slot="modal-body" class="modal-body">
47
- <div class="progress" style="margin: 20px">
48
- <div class="progress-bar progress-bar-success progress-bar-striped active" :style="{width: percent+'%'}">
49
- {{ percent }}%
50
- </div>
51
- </div>
52
- <div style="width:100%;display: flex">
53
- <p style="text-align: center;width: 100%;" v-show="!downbutton">文件正在导出..</p>
54
- <button v-show="downbutton" style="margin: 0 auto" type="button" class="btn btn-default" @click='downFile()'>
55
- 下载导出文件
56
- </button>
57
- </div>
58
- </article>
59
- <footer slot="modal-footer" class="modal-footer">
60
- <button type="button" class="btn btn-default" @click='closeRequeset'>关闭</button>
61
- </footer>
62
- </modal>
63
- </template>
64
-
65
- <script>
66
- import co from 'co'
67
-
68
- let postGen = function* (self) {
69
-
70
- let p = {}
71
- self.getuuid();
72
- if (self.uuida == '') return;
73
- // 判断如果有field,说明表头为自动生成,否则为模板导出
74
- if (self.exporthead) {
75
- if (self.sqlName) {
76
- p = self.$resetpost(self.sqlurl, {
77
- data: {
78
- uuid: self.uuida,
79
- body: {
80
- header: self.header,
81
- footer: self.footer,
82
- sumName: self.sumname,
83
- data: self.data,
84
- field: self.exporthead,
85
- templateName: self.templateName,
86
- sqlName: self.sqlName,
87
- uuid: self.uuida
88
- },
89
- bean: self.bean
90
- }
91
- }, {resolveMsg: null, rejectMsg: null}, 1000)
92
- } else if (self.pathName) {
93
- p = self.$resetpost(self.sqlurl, {
94
- data: {
95
- uuid: self.uuida,
96
- body: {
97
- sumName: self.sumname,
98
- data: self.data,
99
- field: self.exporthead,
100
- templateName: self.templateName,
101
- pathName: self.pathName,
102
- },
103
- bean: self.bean
104
- }
105
- }, {resolveMsg: null, rejectMsg: null}, 0)
106
- }
107
- } else {
108
- p = self.$resetpost(self.sqlurl, {
109
- data: {
110
- uuid: self.uuida,
111
- body: {sumName: self.sumname, data: self.data, total: self.total},
112
- bean: self.bean
113
- }
114
- }, {resolveMsg: null, rejectMsg: null}, 1000)
115
- }
116
- if (self.exportprogress) {
117
- self.progressShow = true;
118
- } else {
119
- self.exportShow = true;
120
- }
121
- self.percent = 0;
122
- self.getRequestReturn();
123
- //var link = document.createElement('a');
124
- //p.data.forEach((item) => {
125
- // console.log('导出路径', item.filename)
126
- // // let path = item.filename.substring(item.filename.indexOf('webapps'), (item.filename.length))
127
- // // let pathName = path.substring(path.indexOf('/') + 1, path.length)
128
- // let path = item.filename
129
- // //webapps这个是在服务器上导出用的
130
- // let pathName = "http://" + location.host + "/webapps" + path.split('webapps')[1]
131
- // //excel这个是在本地导出用的
132
- // // let pathName = "http://" + location.host + "/excel" + path.split('excel')[1]
133
- // link.href = pathName;
134
- //link.download = path.split('excel/')[1];
135
- //link.dispatchEvent(new MouseEvent('click'));
136
- //})
137
- //self.modelval = []
138
- //self.fields = {}
139
- //self.exporthead = []
140
- }
141
- export default {
142
- // data:sql需要的替换字段
143
- // sqlurl:导出Excel查询的sql语句
144
- // field:需要导出Excel的字段名和对应中文名或hbm配置文件名(全名)
145
- // total:统计字段(统计行)
146
- // props: ['data', 'sqlurl', 'field', 'total', 'bean', 'chooseCol','sumName'],
147
- data() {
148
- return {
149
- show: false,
150
- all: false,
151
- fields: {},
152
- modelval: [],
153
- // 表头
154
- exporthead: [],
155
- selftotal: [],
156
- exportShow: false,
157
- resultData: '',
158
- downbutton: false,
159
- uuida: '',
160
- timer: '',
161
- uuida: '',
162
- percent: 0,
163
- progressShow: false,
164
- // sumName:[]
165
- }
166
- },
167
- props: {
168
- // 表头
169
- header: {},
170
- // 表尾
171
- footer: {},
172
- sumname: {},
173
- data: {},
174
- sqlurl: {
175
- type: String
176
- },
177
- field: {},
178
- total: {},
179
- bean: {
180
- type: String
181
- },
182
- btnName: {
183
- type: String,
184
- default: '导出Excel'
185
- },
186
- templateName: {
187
- type: String
188
- },
189
- sqlName: {
190
- type: String
191
- },
192
- pathName: {
193
- type: String
194
- },
195
- attach: {
196
- type: String,
197
- default: 'name'
198
- },
199
- chooseCol: {
200
- type: Boolean,
201
- default: false
202
- },
203
- defaultselect: [],
204
- exportprogress: {
205
- type: Boolean,
206
- default: false
207
- }
208
- },
209
- methods: {
210
- progressclose() {
211
- if (this.timer != null) {
212
- clearInterval(this.timer);
213
- }
214
- this.progressShow = false;
215
- this.percent = 0;
216
- },
217
- closeRequeset() {
218
- if (this.timer != null) {
219
- clearInterval(this.timer);
220
- }
221
- this.progressclose();
222
- this.percent = 0;
223
- this.exportShow = false;
224
- this.uuida = '';
225
- this.downbutton = false;
226
- this.resultData = '';
227
- },
228
- async getRequestReturn() {
229
- let timer = null;
230
- let self = this;
231
- let param = {
232
- uuid: this.uuida
233
- };
234
- this.timer = setInterval(function () {
235
- self.$resetpost('/rs/ckh/easyexcel/getBatchOperaPro', {data: param}, {
236
- resolveMsg: null,
237
- rejectMsg: null
238
- }, 0).then((res) => {
239
- if (res.data && res.data.percent) {
240
- if (res.data.percent == 100) {
241
- clearInterval(self.timer);
242
- self.percent = 99;
243
- setTimeout(function () {
244
- self.percent = 100
245
- self.resultData =res.data.exportpath;
246
- self.downbutton = true
247
- }, 500);
248
- } else {
249
- self.percent = res.data.percent
250
- }
251
-
252
- }
253
- });
254
- }, 2000);
255
- },
256
- getuuid() {
257
- let uuidA = '';
258
- var s = [];
259
- var hexDigits = '0123456789abcdef';
260
- for (var i = 0; i < 36; i++) {
261
- s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
262
- }
263
- s[14] = '4';
264
- s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
265
- s[8] = s[13] = s[18] = s[23] = '-';
266
- uuidA = s.join('');
267
- this.uuida = uuidA;
268
- },
269
- exportExcel() {
270
- console.log('选择列,。。', this.chooseCol, this.field)
271
- if (this.field) {
272
- if (this.chooseCol === true) {
273
- this.fields = this.field
274
- this.show = true;
275
- if (this.defaultselect != null && this.defaultselect.length > 0) {
276
- for (var item in this.field) {
277
- this.modelval.push(item)
278
- }
279
- }
280
- } else {
281
- this.data.items = '*'
282
- Object.keys(this.field).forEach((key) => {
283
- this.exporthead.push(key + ':' + this.field[key])
284
- })
285
- this.post()
286
- }
287
- } else {
288
- this.post()
289
- }
290
-
291
- },
292
- downFile() {
293
- // console.log('导出')
294
- // let data = {
295
- // body: {
296
- // field: this.exporthead,
297
- // uuid: this.uuida,
298
- // sqlName: this.sqlName,
299
- // data:this.data,
300
- // templateName:this.templateName,
301
- // isExport: true
302
- // },
303
- // uuid: this.uuida,
304
- // }
305
- // axios.post("/rs/easyexcel/export", {data:data}, { responseType: "blob" }).then(res => {
306
- // const link = document.createElement("a");
307
- // let blob = new Blob([res.data], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
308
- // link.style.display = "none";
309
- // link.href = URL.createObjectURL(blob);
310
- // link.setAttribute("download", decodeURI(data.body.templateName+'.xlsx'));
311
- // document.body.appendChild(link);
312
- // link.click();
313
- // document.body.removeChild(link);
314
- // console.log(res);
315
- // })
316
- var link = document.createElement('a');
317
- console.log('导出路径',this.resultData)
318
- // let path = item.filename.substring(item.filename.indexOf('webapps'), (item.filename.length))
319
- // let pathName = path.substring(path.indexOf('/') + 1, path.length)
320
- let path = this.resultData;
321
- //webapps这个是在服务器上导出用的
322
- let pathName = "http://" + location.host + "/webapps" + path.split('webapps')[1];
323
- console.log('服务器导出路径',pathName)
324
- link.href = pathName;
325
- link.download = path.split('excel/')[1];
326
- link.dispatchEvent(new MouseEvent('click'));
327
- },
328
- export() {
329
- // 获取导出选择的表头和列
330
- let temp = ''
331
- this.modelval.forEach((item) => {
332
- temp = temp + item + ','
333
- this.exporthead.push(item + ':' + this.field[item])
334
- //this.exporthead[item] = this.field[item]
335
- })
336
- temp = temp.slice(0, temp.length - 1)
337
- console.log('表头,,,,', this.exporthead)
338
- this.data.items = temp
339
- this.post()
340
- this.show = false
341
- },
342
- post() {
343
- // if(this.total) {
344
- //
345
- // var temp={"合计":"合计"}
346
- // for (var a in this.field) {
347
- // for (var b in this.total) {
348
- // if(a==b){
349
- // temp[a]=this.total[a]
350
- // }
351
- // }
352
- // }
353
- // this.selftotal.push(temp)
354
- // console.log("========================")
355
- // console.log(temp)
356
- //
357
- // // this.selftotal.push(this.total)
358
- // // this.selftotal[0].a="合计"
359
- // }
360
- let gen = postGen(this)
361
- co(gen)
362
- },
363
- stamp() {
364
- this.modelval = []
365
- this.show = true
366
- },
367
- sortModelval() {
368
- let sortModel = []
369
- Object.keys(this.fields).forEach((key) => {
370
- if (this.modelval.includes(key)) {
371
- sortModel.push(key)
372
- }
373
- })
374
- console.log('看看选择的顺序。。。', sortModel)
375
- this.modelval = sortModel
376
- },
377
- close() {
378
- this.all = false
379
- this.modelval = []
380
- this.show = false
381
- },
382
- },
383
- watch: {
384
- 'all'(val) {
385
- if (val) {
386
- this.modelval = Object.keys(this.fields)
387
- } else {
388
- this.modelval = []
389
- }
390
- },
391
- 'modelval.length'() {
392
- this.sortModelval()
393
- }
394
- }
395
- }
396
- </script>
1
+ <template>
2
+ <button class="button_export button_spacing" @click='exportExcel()' :id="'vc-exportexcel-'+attach">{{ btnName }}
3
+ </button>
4
+ <modal :show.sync="show" v-ref:modal backdrop="false">
5
+ <header slot="modal-header" class="modal-header text-center">
6
+ <h4 class="modal-title">导出列选择</h4>
7
+ <input type="checkbox" class="" id="f_operator" v-model="all">
8
+ <label for="f_operator" class="font-size">全选</label>
9
+ </header>
10
+ <article slot="modal-body">
11
+ <div class="auto col-sm-11 col-md-offset-1" style="margin-top: 10px;">
12
+ <div class="col-sm-4" v-for="f in fields">
13
+ <input type="checkbox" class="" :id="'export-col-'+$index" v-model="modelval" :value="$key">
14
+ <label :for="'export-col-'+$index" class="font-size">{{ f }}</label>
15
+ </div>
16
+ </div>
17
+ </article>
18
+ <footer slot="modal-footer" class="modal-footer">
19
+ <center>
20
+ <button v-show="show" type="button" class="btn btn-default" @click='close()'>取消</button>
21
+ <button v-show="show" type="button" class="btn btn-success" @click='export()'>导出</button>
22
+ </center>
23
+ </footer>
24
+ </modal>
25
+ <modal :show.sync="exportShow" v-ref:modal backdrop="false">
26
+ <header slot="modal-header" class="modal-header text-center">
27
+ <h4 class="modal-title">导出文件下载</h4>
28
+ </header>
29
+ <article slot="modal-body" style="height:70px;">
30
+ <div class="auto col-sm-12" style="margin-top: 10px;">
31
+ <center>
32
+ <p v-show="!downbutton">文件正在导出..</p>
33
+ <button v-show="downbutton" type="button" class="btn btn-default" @click='downFile()'>下载导出文件</button>
34
+ </center>
35
+
36
+ </div>
37
+ </article>
38
+ <footer slot="modal-footer" class="modal-footer">
39
+ <button type="button" class="btn btn-default" @click='closeRequeset()'>取消</button>
40
+ </footer>
41
+ </modal>
42
+ <modal :show.sync="progressShow" v-ref:modal width="50%" style="width:auto;" backdrop="false">
43
+ <header slot="modal-header" class="modal-header">
44
+ 导出文件下载
45
+ </header>
46
+ <article slot="modal-body" class="modal-body">
47
+ <div class="progress" style="margin: 20px">
48
+ <div class="progress-bar progress-bar-success progress-bar-striped active" :style="{width: percent+'%'}">
49
+ {{ percent }}%
50
+ </div>
51
+ </div>
52
+ <div style="width:100%;display: flex">
53
+ <p style="text-align: center;width: 100%;" v-show="!downbutton">文件正在导出..</p>
54
+ <button v-show="downbutton" style="margin: 0 auto" type="button" class="btn btn-default" @click='downFile()'>
55
+ 下载导出文件
56
+ </button>
57
+ </div>
58
+ </article>
59
+ <footer slot="modal-footer" class="modal-footer">
60
+ <button type="button" class="btn btn-default" @click='closeRequeset'>关闭</button>
61
+ </footer>
62
+ </modal>
63
+ </template>
64
+
65
+ <script>
66
+ import co from 'co'
67
+
68
+ let postGen = function* (self) {
69
+
70
+ let p = {}
71
+ self.getuuid();
72
+ if (self.uuida == '') return;
73
+ // 判断如果有field,说明表头为自动生成,否则为模板导出
74
+ if (self.exporthead) {
75
+ if (self.sqlName) {
76
+ p = self.$resetpost(self.sqlurl, {
77
+ data: {
78
+ uuid: self.uuida,
79
+ body: {
80
+ header: self.header,
81
+ footer: self.footer,
82
+ sumName: self.sumname,
83
+ data: self.data,
84
+ field: self.exporthead,
85
+ templateName: self.templateName,
86
+ sqlName: self.sqlName,
87
+ uuid: self.uuida
88
+ },
89
+ bean: self.bean
90
+ }
91
+ }, {resolveMsg: null, rejectMsg: null}, 1000)
92
+ } else if (self.pathName) {
93
+ p = self.$resetpost(self.sqlurl, {
94
+ data: {
95
+ uuid: self.uuida,
96
+ body: {
97
+ sumName: self.sumname,
98
+ data: self.data,
99
+ field: self.exporthead,
100
+ templateName: self.templateName,
101
+ pathName: self.pathName,
102
+ },
103
+ bean: self.bean
104
+ }
105
+ }, {resolveMsg: null, rejectMsg: null}, 0)
106
+ }
107
+ } else {
108
+ p = self.$resetpost(self.sqlurl, {
109
+ data: {
110
+ uuid: self.uuida,
111
+ body: {sumName: self.sumname, data: self.data, total: self.total},
112
+ bean: self.bean
113
+ }
114
+ }, {resolveMsg: null, rejectMsg: null}, 1000)
115
+ }
116
+ if (self.exportprogress) {
117
+ self.progressShow = true;
118
+ } else {
119
+ self.exportShow = true;
120
+ }
121
+ self.percent = 0;
122
+ self.getRequestReturn();
123
+ //var link = document.createElement('a');
124
+ //p.data.forEach((item) => {
125
+ // console.log('导出路径', item.filename)
126
+ // // let path = item.filename.substring(item.filename.indexOf('webapps'), (item.filename.length))
127
+ // // let pathName = path.substring(path.indexOf('/') + 1, path.length)
128
+ // let path = item.filename
129
+ // //webapps这个是在服务器上导出用的
130
+ // let pathName = "http://" + location.host + "/webapps" + path.split('webapps')[1]
131
+ // //excel这个是在本地导出用的
132
+ // // let pathName = "http://" + location.host + "/excel" + path.split('excel')[1]
133
+ // link.href = pathName;
134
+ //link.download = path.split('excel/')[1];
135
+ //link.dispatchEvent(new MouseEvent('click'));
136
+ //})
137
+ //self.modelval = []
138
+ //self.fields = {}
139
+ //self.exporthead = []
140
+ }
141
+ export default {
142
+ // data:sql需要的替换字段
143
+ // sqlurl:导出Excel查询的sql语句
144
+ // field:需要导出Excel的字段名和对应中文名或hbm配置文件名(全名)
145
+ // total:统计字段(统计行)
146
+ // props: ['data', 'sqlurl', 'field', 'total', 'bean', 'chooseCol','sumName'],
147
+ data() {
148
+ return {
149
+ show: false,
150
+ all: false,
151
+ fields: {},
152
+ modelval: [],
153
+ // 表头
154
+ exporthead: [],
155
+ selftotal: [],
156
+ exportShow: false,
157
+ resultData: '',
158
+ downbutton: false,
159
+ uuida: '',
160
+ timer: '',
161
+ uuida: '',
162
+ percent: 0,
163
+ progressShow: false,
164
+ // sumName:[]
165
+ }
166
+ },
167
+ props: {
168
+ // 表头
169
+ header: {},
170
+ // 表尾
171
+ footer: {},
172
+ sumname: {},
173
+ data: {},
174
+ sqlurl: {
175
+ type: String
176
+ },
177
+ field: {},
178
+ total: {},
179
+ bean: {
180
+ type: String
181
+ },
182
+ btnName: {
183
+ type: String,
184
+ default: '导出Excel'
185
+ },
186
+ templateName: {
187
+ type: String
188
+ },
189
+ sqlName: {
190
+ type: String
191
+ },
192
+ pathName: {
193
+ type: String
194
+ },
195
+ attach: {
196
+ type: String,
197
+ default: 'name'
198
+ },
199
+ chooseCol: {
200
+ type: Boolean,
201
+ default: false
202
+ },
203
+ defaultselect: [],
204
+ exportprogress: {
205
+ type: Boolean,
206
+ default: false
207
+ }
208
+ },
209
+ methods: {
210
+ progressclose() {
211
+ if (this.timer != null) {
212
+ clearInterval(this.timer);
213
+ }
214
+ this.progressShow = false;
215
+ this.percent = 0;
216
+ },
217
+ closeRequeset() {
218
+ if (this.timer != null) {
219
+ clearInterval(this.timer);
220
+ }
221
+ this.progressclose();
222
+ this.percent = 0;
223
+ this.exportShow = false;
224
+ this.uuida = '';
225
+ this.downbutton = false;
226
+ this.resultData = '';
227
+ },
228
+ async getRequestReturn() {
229
+ let timer = null;
230
+ let self = this;
231
+ let param = {
232
+ uuid: this.uuida
233
+ };
234
+ this.timer = setInterval(function () {
235
+ self.$resetpost('/rs/ckh/easyexcel/getBatchOperaPro', {data: param}, {
236
+ resolveMsg: null,
237
+ rejectMsg: null
238
+ }, 0).then((res) => {
239
+ if (res.data && res.data.percent) {
240
+ if (res.data.percent == 100) {
241
+ clearInterval(self.timer);
242
+ self.percent = 99;
243
+ setTimeout(function () {
244
+ self.percent = 100
245
+ self.resultData =res.data.exportpath;
246
+ self.downbutton = true
247
+ }, 500);
248
+ } else {
249
+ self.percent = res.data.percent
250
+ }
251
+
252
+ }
253
+ });
254
+ }, 2000);
255
+ },
256
+ getuuid() {
257
+ let uuidA = '';
258
+ var s = [];
259
+ var hexDigits = '0123456789abcdef';
260
+ for (var i = 0; i < 36; i++) {
261
+ s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
262
+ }
263
+ s[14] = '4';
264
+ s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
265
+ s[8] = s[13] = s[18] = s[23] = '-';
266
+ uuidA = s.join('');
267
+ this.uuida = uuidA;
268
+ },
269
+ exportExcel() {
270
+ console.log('选择列,。。', this.chooseCol, this.field)
271
+ if (this.field) {
272
+ if (this.chooseCol === true) {
273
+ this.fields = this.field
274
+ this.show = true;
275
+ if (this.defaultselect != null && this.defaultselect.length > 0) {
276
+ for (var item in this.field) {
277
+ this.modelval.push(item)
278
+ }
279
+ }
280
+ } else {
281
+ this.data.items = '*'
282
+ Object.keys(this.field).forEach((key) => {
283
+ this.exporthead.push(key + ':' + this.field[key])
284
+ })
285
+ this.post()
286
+ }
287
+ } else {
288
+ this.post()
289
+ }
290
+
291
+ },
292
+ downFile() {
293
+ // console.log('导出')
294
+ // let data = {
295
+ // body: {
296
+ // field: this.exporthead,
297
+ // uuid: this.uuida,
298
+ // sqlName: this.sqlName,
299
+ // data:this.data,
300
+ // templateName:this.templateName,
301
+ // isExport: true
302
+ // },
303
+ // uuid: this.uuida,
304
+ // }
305
+ // axios.post("/rs/easyexcel/export", {data:data}, { responseType: "blob" }).then(res => {
306
+ // const link = document.createElement("a");
307
+ // let blob = new Blob([res.data], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
308
+ // link.style.display = "none";
309
+ // link.href = URL.createObjectURL(blob);
310
+ // link.setAttribute("download", decodeURI(data.body.templateName+'.xlsx'));
311
+ // document.body.appendChild(link);
312
+ // link.click();
313
+ // document.body.removeChild(link);
314
+ // console.log(res);
315
+ // })
316
+ var link = document.createElement('a');
317
+ console.log('导出路径',this.resultData)
318
+ // let path = item.filename.substring(item.filename.indexOf('webapps'), (item.filename.length))
319
+ // let pathName = path.substring(path.indexOf('/') + 1, path.length)
320
+ let path = this.resultData;
321
+ //webapps这个是在服务器上导出用的
322
+ let pathName = "http://" + location.host + "/webapps" + path.split('webapps')[1];
323
+ console.log('服务器导出路径',pathName)
324
+ link.href = pathName;
325
+ link.download = path.split('excel/')[1];
326
+ link.dispatchEvent(new MouseEvent('click'));
327
+ },
328
+ export() {
329
+ // 获取导出选择的表头和列
330
+ let temp = ''
331
+ this.modelval.forEach((item) => {
332
+ temp = temp + item + ','
333
+ this.exporthead.push(item + ':' + this.field[item])
334
+ //this.exporthead[item] = this.field[item]
335
+ })
336
+ temp = temp.slice(0, temp.length - 1)
337
+ console.log('表头,,,,', this.exporthead)
338
+ this.data.items = temp
339
+ this.post()
340
+ this.show = false
341
+ },
342
+ post() {
343
+ // if(this.total) {
344
+ //
345
+ // var temp={"合计":"合计"}
346
+ // for (var a in this.field) {
347
+ // for (var b in this.total) {
348
+ // if(a==b){
349
+ // temp[a]=this.total[a]
350
+ // }
351
+ // }
352
+ // }
353
+ // this.selftotal.push(temp)
354
+ // console.log("========================")
355
+ // console.log(temp)
356
+ //
357
+ // // this.selftotal.push(this.total)
358
+ // // this.selftotal[0].a="合计"
359
+ // }
360
+ let gen = postGen(this)
361
+ co(gen)
362
+ },
363
+ stamp() {
364
+ this.modelval = []
365
+ this.show = true
366
+ },
367
+ sortModelval() {
368
+ let sortModel = []
369
+ Object.keys(this.fields).forEach((key) => {
370
+ if (this.modelval.includes(key)) {
371
+ sortModel.push(key)
372
+ }
373
+ })
374
+ console.log('看看选择的顺序。。。', sortModel)
375
+ this.modelval = sortModel
376
+ },
377
+ close() {
378
+ this.all = false
379
+ this.modelval = []
380
+ this.show = false
381
+ },
382
+ },
383
+ watch: {
384
+ 'all'(val) {
385
+ if (val) {
386
+ this.modelval = Object.keys(this.fields)
387
+ } else {
388
+ this.modelval = []
389
+ }
390
+ },
391
+ 'modelval.length'() {
392
+ this.sortModelval()
393
+ }
394
+ }
395
+ }
396
+ </script>