Admin
2022-11-25 5a28e6e5194ddd3727fb5411c785bef0f29152bb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
<template>
    <div class="table">
        <div class="table_content">
            <div style="display: flex;justify-content: center">
            <el-radio-group v-model="activeTab" @input="switchSheet()">
                <el-radio-button :label="1">批发</el-radio-button>
                <el-radio-button :label="2">零售</el-radio-button>
            </el-radio-group>
            </div>
            <div style="display: flex;justify-content: space-between;align-items: center;margin: 10px 0 20px;height: 40px">
                <div style="width: 140px"></div>
                <h2 style="text-align: center;margin: 0">{{taskName}}{{ activeTab==1?'批发':'零售' }}环节信息报送汇总表({{sheetStatus==1?'省级层面':(sheetStatus==2?'市级层面':'区县级')}})</h2>
                <el-button icon="el-icon-download" style="width: 140px" size="medium" type="primary" @click="exportSheet()" id="export">导出汇总表</el-button>
            </div>
            <div class="tabpanel">
                <table v-show="sheetStatus==1||sheetStatus==2" class="data-table" id="tableExcel" v-if="thisLevelStatistic && institutionalData && institutionalData.length>0">
                    <tr>
                        <th rowspan="3">序号</th>
                        <th rowspan="3">{{sheetStatus==1?'地市':'区县'}}</th>
                        <th colspan="2">企业基本情况</th>
                        <th colspan="11">企业自查及整改</th>
                        <th colspan="9">检查及整改情况</th>
                        <th colspan="4">执法处罚情况</th>
                    </tr>
                    <tr>
                        <th rowspan="2">企业总数</th>
                        <th rowspan="2">任务下发时有效期内企业总数</th>
                        <th rowspan="2">自查企业数量</th>
                        <th rowspan="2">自查覆盖率要求</th>
                        <th rowspan="2">已完成覆盖率</th>
                        <th rowspan="2">当前有效期内企业数量</th>
                        <th rowspan="2">企业库存数量/万箱</th>
                        <th rowspan="2">企业库容量/万箱</th>
                        <th colspan="2">隐患问题情况</th>
                        <th colspan="3">整改情况</th>
                        <th rowspan="2">检查层级</th>
                        <th rowspan="2">检查企业数量</th>
                        <th rowspan="2">检查覆盖率要求</th>
                        <th rowspan="2">已完成覆盖率</th>
                        <th colspan="2">隐患问题情况</th>
                        <th colspan="3">整改情况</th>
                        <th rowspan="2">吊销许可证数量</th>
                        <th rowspan="2">暂扣许可证数量</th>
                        <th rowspan="2">罚款企业数量</th>
                        <th rowspan="2">罚款金额</th>
                    </tr>
                    <tr>
                        <th>隐患总数</th>
                        <th>重大隐患数量</th>
                        <th>整改总数</th>
                        <th>重大隐患整改数量</th>
                        <th>隐患整改率</th>
                        <th>隐患总数</th>
                        <th>重大隐患数量</th>
                        <th>整改隐患总数</th>
                        <th>整改重大隐患数量</th>
                        <th>隐患整改率</th>
                    </tr>
                    <tr>
                        <td colspan="2">合计</td>
                        <td>{{sum.enterpriseSum}}</td>
                        <td>{{sum.validEnterpriseNum}}</td>
                        <td>{{sum.selfCheckEnterpriseNum}}</td>
                        <td>{{sum.selfCheckRateRequire + '%'}}</td>
                        <td :class="(sum.selfCheckEnterpriseNum / sum.validEnterpriseNum) * 100<sum.selfCheckRateRequire?'warning':''">
                            {{sum.validEnterpriseNum==0?'--':(sum.selfCheckEnterpriseNum / sum.validEnterpriseNum).toFixed(2) * 100 + '%'}}
                        </td>
                        <td>{{sum.validSelfCheckEnterpriseNum}}</td>
                        <td>{{sum.stockNum}}</td>
                        <td>{{sum.storageCapacity}}</td>
                        <td>{{sum.selfhiddendangerSum}}</td>
                        <td>{{sum.selfmajorHiddendangerNum}}</td>
                        <td>{{sum.selfcompletedRectifyHiddendangerSum}}</td>
                        <td>{{sum.selfcompletedRectifyMajorHiddendangerNum}}</td>
                        <td>{{sum.selfhiddendangerSum==0?'--':(sum.selfcompletedRectifyHiddendangerSum / sum.selfhiddendangerSum).toFixed(2) * 100 + '%'}}</td>
                        <td>--</td>
                        <td>{{sum.spotCheckEnterpriseNum}}</td>
                        <td>{{sum.spotCheckRateRequire + '%'}}</td>
                        <td :class="(sum.spotCheckEnterpriseNum / sum.validEnterpriseNum) * 100<sum.spotCheckRateRequire?'warning':''">
                            {{(sum.spotCheckEnterpriseNum / sum.validEnterpriseNum).toFixed(2) * 100 + '%'}}
                        </td>
                        <td>{{sum.spotCheckHiddendangerSum}}</td>
                        <td>{{sum.spotCheckMajorHiddendangerNum}}</td>
                        <td>{{sum.spotCheckCompletedRectifyHiddendangerSum}}</td>
                        <td>{{sum.spotCheckCompletedRectifyMajorHiddendangerNum}}</td>
                        <td>
                            {{sum.spotCheckHiddendangerSum == 0?'--':(sum.spotCheckCompletedRectifyHiddendangerSum / sum.spotCheckHiddendangerSum).toFixed(2) * 100 + '%'}}
                        </td>
                        <td>{{sum.revokeLicenseEnterpriseSum}}</td>
                        <td>{{sum.detainLicenseSum}}</td>
                        <td>{{sum.amerceEnterpriseNum}}</td>
                        <td>{{sum.amerceMoneySum}}</td>
                    </tr>
                    <tr>
                        <td colspan="2">{{ sheetStatus==1?'省本级':'市本级' }}</td>
                        <td>{{thisLevelStatistic.enterpriseSum?thisLevelStatistic.enterpriseSum: '--'}}</td>
                        <td>{{thisLevelStatistic.validEnterpriseNum?thisLevelStatistic.validEnterpriseNum: '--'}}</td>
                        <td>{{thisLevelStatistic.selfCheckEnterpriseNum?thisLevelStatistic.selfCheckEnterpriseNum: '--'}}</td>
                        <td>{{thisLevelStatistic.selfCheckRateRequire?thisLevelStatistic.selfCheckRateRequire: '--'}}</td>
                        <td>{{thisLevelStatistic.selfCheckCompleteRate?thisLevelStatistic.selfCheckCompleteRate: '--'}}</td>
                        <td>{{thisLevelStatistic.validSelfCheckEnterpriseNum?thisLevelStatistic.validSelfCheckEnterpriseNum: '--'}}</td>
                        <td>{{thisLevelStatistic.stockNum?thisLevelStatistic.stockNum:'--'}}</td>
                        <td>{{thisLevelStatistic.storageCapacity?thisLevelStatistic.storageCapacity: '--'}}</td>
                        <td>{{thisLevelStatistic.hiddendangerSum?thisLevelStatistic.hiddendangerSum:'--'}}</td>
                        <td>{{thisLevelStatistic.majorHiddendangerNum?thisLevelStatistic.majorHiddendangerNum:'--'}}</td>
                        <td>{{thisLevelStatistic.completedRectifyHiddendangerSum?thisLevelStatistic.completedRectifyHiddendangerSum:'--'}}</td>
                        <td>{{thisLevelStatistic.completedRectifyMajorHiddendangerNum?thisLevelStatistic.completedRectifyMajorHiddendangerNum:'--'}}</td>
                        <td>{{thisLevelStatistic.hiddendangerRectifyRate?thisLevelStatistic.hiddendangerRectifyRate:'--'}}</td>
                        <td>{{sheetStatus==1?'省级':'市级'}}</td>
                        <td>{{thisLevelStatistic.thisLevelSpotCheckinfo.spotCheckEnterpriseNum}}</td>
                        <td>
                            {{typeof thisLevelStatistic.thisLevelSpotCheckinfo.spotCheckRateRequire=="string"?thisLevelStatistic.thisLevelSpotCheckinfo.spotCheckRateRequire:thisLevelStatistic.thisLevelSpotCheckinfo.spotCheckRateRequire + '%'}}
                        </td>
                        <td>
                            {{typeof thisLevelStatistic.thisLevelSpotCheckinfo.spotCheckCompleteRate=="string"?thisLevelStatistic.thisLevelSpotCheckinfo.spotCheckCompleteRate:thisLevelStatistic.thisLevelSpotCheckinfo.spotCheckCompleteRate + '%'}}
                        </td>
                        <td>{{thisLevelStatistic.thisLevelSpotCheckHiddendangerinfo.spotCheckHiddendangerSum}}</td>
                        <td>{{thisLevelStatistic.thisLevelSpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum}}</td>
                        <td>{{thisLevelStatistic.thisLevelSpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum}}</td>
                        <td>{{thisLevelStatistic.thisLevelSpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum}}</td>
                        <td>
                            {{thisLevelStatistic.thisLevelSpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate==null?'--':thisLevelStatistic.thisLevelSpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate + '%'}}
                        </td>
                        <td>{{thisLevelStatistic.thisLevelSpotCheckinfo.revokeLicenseEnterpriseSum}}</td>
                        <td>{{thisLevelStatistic.thisLevelSpotCheckinfo.detainLicenseSum}}</td>
                        <td>{{thisLevelStatistic.thisLevelSpotCheckinfo.amerceEnterpriseNum}}</td>
                        <td>{{thisLevelStatistic.thisLevelSpotCheckinfo.amerceMoneySum}}</td>
                    </tr>
                    <template v-if="institutionalData && institutionalData.length>0" v-for="(item,index) in institutionalData">
                    <tr v-if="item.citySpotCheckinfo || item.areaSpotCheckinfo">
                        <td :rowspan="sheetStatus==1?2:1">{{ index + 1}}</td>
                        <td :rowspan="sheetStatus==1?2:1" class="point-item" @click="toDig(item.enterpriseCity,item.enterpriseArea)">
                            {{sheetStatus==1?item.enterpriseCity:item.enterpriseArea }}
                        </td>
                        <td :rowspan="sheetStatus==1?2:1">{{item.enterpriseSum}}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{item.validEnterpriseNum}}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{item.selfCheckEnterpriseNum}}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{item.selfCheckRateRequire + '%'}}</td>
                        <td :rowspan="sheetStatus==1?2:1" :class="item.selfCheckCompleteRate<item.selfCheckRateRequire?'warning':''">
                            {{item.selfCheckCompleteRate + '%'}}
                        </td>
                        <td :rowspan="sheetStatus==1?2:1">{{ item.validSelfCheckEnterpriseNum }}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{ item.stockNum }}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{ item.storageCapacity }}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{ item.hiddendangerSum }}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{ item.majorHiddendangerNum }}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{ item.completedRectifyHiddendangerSum }}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{ item.completedRectifyMajorHiddendangerNum }}</td>
                        <td :rowspan="sheetStatus==1?2:1">{{ item.hiddendangerRectifyRate==null?'--':item.hiddendangerRectifyRate + '%' }}</td>
                        <td>{{ sheetStatus==1?'设立区级':'县级' }}</td>
                        <td v-if="(item.citySpotCheckinfo && item.citySpotCheckinfo.spotCheckEnterpriseNum)|| (item.areaSpotCheckinfo && item.areaSpotCheckinfo.spotCheckEnterpriseNum)" class="point-item" @click="checkEnterprise(item.enterpriseCity,item.enterpriseArea)">
                            {{sheetStatus==1?item.citySpotCheckinfo.spotCheckEnterpriseNum:item.areaSpotCheckinfo.spotCheckEnterpriseNum}}
                        </td>
                        <td v-if="(item.citySpotCheckinfo && item.citySpotCheckinfo.spotCheckRateRequire)|| (item.areaSpotCheckinfo && item.areaSpotCheckinfo.spotCheckRateRequire)">
                            {{sheetStatus==1?item.citySpotCheckinfo.spotCheckRateRequire + '%':item.areaSpotCheckinfo.spotCheckRateRequire + '%'}}
                        </td>
                        <td v-if="sheetStatus==1 && item.citySpotCheckinfo && item.citySpotCheckinfo.spotCheckCompleteRate" :class="item.citySpotCheckinfo.spotCheckCompleteRate<item.citySpotCheckinfo.spotCheckRateRequire?'warning':''">
                            {{item.citySpotCheckinfo.spotCheckCompleteRate==null?'--':item.citySpotCheckinfo.spotCheckCompleteRate + '%'}}
                        </td>
                        <td v-else :class="item.areaSpotCheckinfo.spotCheckCompleteRate<item.areaSpotCheckinfo.spotCheckRateRequire?'warning':''">
                            {{item.areaSpotCheckinfo.spotCheckCompleteRate==null?'--':item.areaSpotCheckinfo.spotCheckCompleteRate + '%'}}
                        </td>
                        <td v-if="(item.citySpotCheckHiddendangerinfo && item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerSum)|| (item.areaSpotCheckHiddendangerinfo && item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerSum)">
                            {{sheetStatus==1?item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerSum:item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerSum}}
                        </td>
                        <td v-if="(item.citySpotCheckHiddendangerinfo && item.citySpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum)|| (item.areaSpotCheckHiddendangerinfo && item.areaSpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum)">
                            {{sheetStatus==1?item.citySpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum:item.areaSpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum}}
                        </td>
                        <td v-if="(item.citySpotCheckHiddendangerinfo && item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum)|| (item.areaSpotCheckHiddendangerinfo && item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum)">
                            {{sheetStatus==1?item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum:item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum}}
                        </td>
                        <td v-if="(item.citySpotCheckHiddendangerinfo && item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum)|| (item.areaSpotCheckHiddendangerinfo && item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum)">
                            {{sheetStatus==1?item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum:item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum}}
                        </td>
                        <td v-if="sheetStatus==1 && item.citySpotCheckHiddendangerinfo && item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate">
                            {{item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate == null ? '--' : item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate + '%' }}
                        </td>
                        <td v-else>
                            {{item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate==null?'--':item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate + '%'}}
                        </td>
                        <td v-if="(item.citySpotCheckinfo && item.citySpotCheckinfo.revokeLicenseEnterpriseSum)|| (item.areaSpotCheckinfo && item.areaSpotCheckinfo.revokeLicenseEnterpriseSum)">
                            {{sheetStatus==1?item.citySpotCheckinfo.revokeLicenseEnterpriseSum:item.areaSpotCheckinfo.revokeLicenseEnterpriseSum}}
                        </td>
                        <td v-if="(item.citySpotCheckinfo && item.citySpotCheckinfo.detainLicenseSum)|| (item.areaSpotCheckinfo && item.areaSpotCheckinfo.detainLicenseSum)">
                            {{sheetStatus==1?item.citySpotCheckinfo.detainLicenseSum:item.areaSpotCheckinfo.detainLicenseSum}}
                        </td>
                        <td v-if="(item.citySpotCheckinfo && item.citySpotCheckinfo.amerceEnterpriseNum)|| (item.areaSpotCheckinfo && item.areaSpotCheckinfo.amerceEnterpriseNum)">
                            {{sheetStatus==1?item.citySpotCheckinfo.amerceEnterpriseNum:item.areaSpotCheckinfo.amerceEnterpriseNum}}
                        </td>
                        <td v-if="(item.citySpotCheckinfo && item.citySpotCheckinfo.amerceMoneySum)|| (item.areaSpotCheckinfo && item.areaSpotCheckinfo.amerceMoneySum)">
                            {{sheetStatus==1?item.citySpotCheckinfo.amerceMoneySum:item.areaSpotCheckinfo.amerceMoneySum}}
                        </td>
                    </tr>
                    <tr v-if="sheetStatus==1">
                        <td>县级</td>
                        <td class="point-item" @click="checkEnterprise(item.enterpriseCity,'all')">{{item.areaSpotCheckinfo.spotCheckEnterpriseNum}}</td>
                        <td>{{item.areaSpotCheckinfo.spotCheckRateRequire==null?'--':item.areaSpotCheckinfo.spotCheckRateRequire + '%'}}</td>
                        <td :class="item.areaSpotCheckinfo.spotCheckCompleteRate<item.areaSpotCheckinfo.spotCheckRateRequire?'warning':''">{{item.areaSpotCheckinfo.spotCheckCompleteRate==null?'--':item.areaSpotCheckinfo.spotCheckCompleteRate + '%'}}</td>
                        <td>{{item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerSum}}</td>
                        <td>{{item.areaSpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum}}</td>
                        <td>{{item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum}}</td>
                        <td>{{item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum}}</td>
                        <td>{{item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate==null?'--':item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate + '%'}}</td>
                        <td>{{item.areaSpotCheckinfo.revokeLicenseEnterpriseSum}}</td>
                        <td>{{item.areaSpotCheckinfo.detainLicenseSum}}</td>
                        <td>{{item.areaSpotCheckinfo.amerceEnterpriseNum}}</td>
                        <td>{{item.areaSpotCheckinfo.amerceMoneySum}}</td>
                    </tr>
                    </template>
                </table>
                <div v-else style="text-align: center;font-size: 16px">暂无汇总数据</div>
                <area-form v-show="sheetStatus==3" ref="areaSheet"></area-form>
            </div>
        </div>
        <check-enterprises ref="enterprises"></check-enterprises>
    </div>
</template>
 
<script>
import {mapGetters} from "vuex";
import Cookies from "_js-cookie@2.2.0@js-cookie";
import {paramList} from "../../../api/contract";
import {computePageCount} from "../../../utils";
import {parseError} from "../../../utils/messageDialog";
import { getCheckUnitType,getDataStatistics, getSpecialCheckTask } from "@/api/specialCheck"
import areaForm from "./areaForm"
import checkEnterprises from "./checkEnterprises"
import FileSaver from 'file-saver'
import XLSX from 'xlsx'
 
export default {
name: "sumSheet",
    components: {
        areaForm,
        checkEnterprises
    },
    data(){
        return{
            taskId: null,
            taskName: '',
            unitType: null,
            sheetStatus: 1,
            recordTotal: 0,
            pageSize: 10,
            currentPage: 1,
            listLoading: false,
            activeTab: 1,
            enterpriseCity: '',
            enterpriseArea: '',
            sum:{
                enterpriseSum: null,
                validEnterpriseNum: null,
                selfCheckEnterpriseNum: null,
                selfCheckRateRequire: 100,
                validSelfCheckEnterpriseNum: null,
                stockNum: null,
                storageCapacity: null,
                selfhiddendangerSum: null,
                selfmajorHiddendangerNum: null,
                selfcompletedRectifyHiddendangerSum: null,
                selfcompletedRectifyMajorHiddendangerNum: null,
                spotCheckEnterpriseNum: null,
                spotCheckRateRequire: 100,
                spotCheckHiddendangerSum: null,
                spotCheckMajorHiddendangerNum: null,
                spotCheckCompletedRectifyHiddendangerSum:null,
                spotCheckCompletedRectifyMajorHiddendangerNum:null,
                revokeLicenseEnterpriseSum:null,
                detainLicenseSum:null,
                amerceEnterpriseNum:null,
                amerceMoneySum:null
            },
            thisLevelStatistic: {
                thisLevelSpotCheckinfo:{},
                thisLevelSpotCheckHiddendangerinfo:{}
            },
            institutionalData: []
        }
    },
    created() {
        const t = this
        t.getCheckUnitType()
        // if(t.taskId){t.getDataStatistics()}
    },
    computed: {
        ...mapGetters([
            'userType',
            'name'
        ])
    },
    methods:{
        async getCheckUnitType(){
            const t = this
            t.listLoading = true
            let res = await getCheckUnitType()
            if(res.data.code === "200"){
                t.unitType = res.data.result.checkUnitType
                t.sheetStatus = res.data.result.checkUnitType
            }else{
                t.$message({
                    type:'warning',
                    message:res.data.message
                })
            }
            t.listLoading = false
        },
        getSum(arr){
            return arr.reduce((prev,curr)=>prev+curr)
        },
        async getDataStatistics(){
            const t = this
            const loading = this.$loading({
                lock: true,
                target: document.querySelector('.tabpanel'),
                text: '正在获取汇总数据',
                spinner: 'el-icon-loading',
                fullscreen: false
            });
            const data = {id: t.taskId,enterpriseType: t.activeTab,enterpriseCity: t.enterpriseCity,enterpriseArea: t.enterpriseArea,pageIndex: t.currentPage,pageSize: t.pageSize}
            const res = await getDataStatistics(data)
            if(res.data.code === "200"){
                t.thisLevelStatistic = res.data.result.thisLevelInstitutionalDataInfo
                t.institutionalData = res.data.result.institutionalDataInfo
                t.sum.enterpriseSum = t.getSum(Array.from(t.institutionalData, ({ enterpriseSum }) => enterpriseSum))
                t.sum.validEnterpriseNum = t.getSum(Array.from(t.institutionalData, ({ validEnterpriseNum }) => validEnterpriseNum))
                t.sum.selfCheckEnterpriseNum = t.getSum(Array.from(t.institutionalData, ({ selfCheckEnterpriseNum }) => selfCheckEnterpriseNum))
                t.sum.validSelfCheckEnterpriseNum = t.getSum(Array.from(t.institutionalData, ({ validSelfCheckEnterpriseNum }) => validSelfCheckEnterpriseNum))
                t.sum.stockNum = t.getSum(Array.from(t.institutionalData, ({ stockNum }) => stockNum)).toFixed(2)
                t.sum.storageCapacity = t.getSum(Array.from(t.institutionalData, ({ storageCapacity }) => storageCapacity)).toFixed(2)
                t.sum.selfhiddendangerSum = t.getSum(Array.from(t.institutionalData, ({ hiddendangerSum }) => hiddendangerSum))
                t.sum.selfmajorHiddendangerNum = t.getSum(Array.from(t.institutionalData, ({ majorHiddendangerNum }) => majorHiddendangerNum))
                t.sum.selfcompletedRectifyHiddendangerSum = t.getSum(Array.from(t.institutionalData, ({ completedRectifyHiddendangerSum }) => completedRectifyHiddendangerSum))
                t.sum.selfcompletedRectifyMajorHiddendangerNum = t.getSum(Array.from(t.institutionalData, ({ completedRectifyMajorHiddendangerNum }) => completedRectifyMajorHiddendangerNum))
                if(t.sheetStatus == 1){
                    t.sum.spotCheckEnterpriseNum = t.getSum(t.institutionalData.map(item=>{return item.citySpotCheckinfo.spotCheckEnterpriseNum}))
                    t.sum.spotCheckHiddendangerSum = t.getSum(t.institutionalData.map(item=>{return item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerSum}))
                    t.sum.spotCheckMajorHiddendangerNum = t.getSum(t.institutionalData.map(item=>{return item.citySpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum}))
                    t.sum.spotCheckCompletedRectifyHiddendangerSum = t.getSum(t.institutionalData.map(item=>{return item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum}))
                    t.sum.spotCheckCompletedRectifyMajorHiddendangerNum = t.getSum(t.institutionalData.map(item=>{return item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum}))
                    t.sum.revokeLicenseEnterpriseSum = t.getSum(t.institutionalData.map(item=>{return item.citySpotCheckinfo.revokeLicenseEnterpriseSum}))
                    t.sum.detainLicenseSum = t.getSum(t.institutionalData.map(item=>{return item.citySpotCheckinfo.detainLicenseSum}))
                    t.sum.amerceEnterpriseNum = t.getSum(t.institutionalData.map(item=>{return item.citySpotCheckinfo.amerceEnterpriseNum}))
                    t.sum.amerceMoneySum = t.getSum(t.institutionalData.map(item=>{return item.citySpotCheckinfo.amerceMoneySum}))
                }else{
                    t.sum.spotCheckEnterpriseNum = t.getSum(t.institutionalData.map(item=>{return item.areaSpotCheckinfo.spotCheckEnterpriseNum}))
                    t.sum.spotCheckHiddendangerSum = t.getSum(t.institutionalData.map(item=>{return item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerSum}))
                    t.sum.spotCheckMajorHiddendangerNum = t.getSum(t.institutionalData.map(item=>{return item.areaSpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum}))
                    t.sum.spotCheckCompletedRectifyHiddendangerSum = t.getSum(t.institutionalData.map(item=>{return item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum}))
                    t.sum.spotCheckCompletedRectifyMajorHiddendangerNum = t.getSum(t.institutionalData.map(item=>{return item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum}))
                    t.sum.revokeLicenseEnterpriseSum = t.getSum(t.institutionalData.map(item=>{return item.areaSpotCheckinfo.revokeLicenseEnterpriseSum}))
                    t.sum.detainLicenseSum = t.getSum(t.institutionalData.map(item=>{return item.areaSpotCheckinfo.detainLicenseSum}))
                    t.sum.amerceEnterpriseNum = t.getSum(t.institutionalData.map(item=>{return item.areaSpotCheckinfo.amerceEnterpriseNum}))
                    t.sum.amerceMoneySum = t.getSum(t.institutionalData.map(item=>{return item.areaSpotCheckinfo.amerceMoneySum}))
                }
            }else{
                t.$message({
                    type:'warning',
                    message:res.data.message
                })
            }
            loading.close();
        },
        switchSheet() {
            const t = this
            if(t.sheetStatus == 1 || t.sheetStatus == 2){
                t.getDataStatistics()
            }else{
                t.$refs.areaSheet.enterpriseType = t.activeTab
                t.$refs.areaSheet.getAreaStatistics()
            }
        },
 
        checkEnterprise(city,area){
            const t = this
            t.$refs.enterprises.taskId = t.taskId
            t.$refs.enterprises.enterpriseType = t.activeTab
            t.$refs.enterprises.enterpriseArea = area
            if(t.sheetStatus == 1){
                t.$refs.enterprises.enterpriseCity = city
            }else{
                t.$refs.enterprises.enterpriseCity = null
            }
            t.$refs.enterprises.dialogVisible = true
            t.$refs.enterprises.getEnterprises()
        },
 
        toDig(city,area){
            const t = this
            if(t.sheetStatus==1){
                t.enterpriseCity = city
                t.sheetStatus = 2
                t.getDataStatistics()
                console.log(t.sheetStatus,t.institutionalData[0].citySpotCheckinfo.spotCheckEnterpriseNum,'666666666666666666')
            }else{
                t.sheetStatus = 3
                t.$refs.areaSheet.taskId = t.taskId
                t.$refs.areaSheet.enterpriseType = t.activeTab
                t.enterpriseArea = area
                t.$refs.areaSheet.enterpriseArea = area
                t.$refs.areaSheet.getAreaStatistics()
            }
        },
        tableToExcel(tableid,btnname,sheetname) {
            let uri = 'data:application/vnd.ms-excel;base64,'
                , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><meta charset="UTF-8"><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
                , base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }
                , format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }
            //根据ID获取table表格HTML
            let table = document.getElementById(tableid);
            let ctx = { worksheet: 'Worksheet', table: table.innerHTML };
            let alink = document.createElement("a");
            alink.href = uri + base64(format(template, ctx));
            alink.download = sheetname + ').xls';
            alink.click();
        },
        exportSheet(){
            const t = this
            const sheetName = t.taskName + (t.activeTab==1 ?'批发':'零售') + '环节信息报送汇总表(' + (t.sheetStatus==1?'省级层面':(t.sheetStatus==2?'市级层面':'区县级'))
            if(t.sheetStatus==1||t.sheetStatus==2){
                t.tableToExcel("tableExcel", "export",sheetName);
            }else{
                let wb = XLSX.utils.table_to_book(document.querySelector('#' + 'areaSheet'))
                let wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
                try {
                    FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), sheetName + ').xlsx')
                } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
                // return wbout
            }
        },
    }
}
</script>
 
<style lang="scss" scoped>
.tabpanel{
    width: 100%;
    height: calc(100vh - 240px);
    overflow: auto;
}
.data-table{
    border-collapse: collapse;
    border: 1px solid #ccc;
    margin: 0 0 20px;
    background: #fff;
    box-shadow: 0 3px 12px rgba(0,0,0,.2);
    tr{
        border-bottom: 1px solid #ccc;
        white-space: nowrap;
        font-size: 12px;
        &:last-of-type{
            border-bottom: none;
        }
 
        th{
            padding: 6px 4px;
            border: 1px solid #ccc;
            border-left: none;
            font-weight: bolder;
            text-align: center;
            color: #034EA2;
 
            &:first-of-type{
                border-top: 1px solid #ccc;
                border-left: 1px solid #ccc;
            }
            &.dark-bg{
                background: #409EFF;
                color: #fff;
            }
        }
 
        td{
            padding: 6px 4px;
            border-right: 1px solid #ccc;
            text-align: center;
 
            &:last-of-type{
                border-right: none;
            }
        }
        .point-item{
            cursor: pointer;
            text-decoration: underline;
            color: #409EFF;
        }
        .warning{
            color: red;
        }
    }
    .b-font{
        font-size: 16px;
        font-weight: bolder;
    }
}
</style>