Admin
2022-11-23 90de81ed138823dc498b201bc7873f74016d2f65
src/views/specialCheck/components/sumSheet.vue
@@ -1,168 +1,194 @@
<template>
    <div class="table">
        <div class="table_content">
            <el-tabs type="border-card" v-model="activeTab" @tab-click="switchSheet">
                <el-tab-pane label="批发" name="1" style="display: flex;flex-direction: column;align-items: flex-start">
                    <h2 style="text-align: center">2023年上半年烟花爆竹生产经营安全检查批发环节信息报送汇总表(省级层面)</h2>
                    <table class="data-table">
                        <tr>
                            <th rowspan="3">序号</th>
                            <th rowspan="3">地市</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.selfCheckEnterpriseNum / sum.validEnterpriseNum) * 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.selfcompletedRectifyHiddendangerSum / sum.selfhiddendangerSum) * 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) * 100 + '%'}}
                            </td>
                            <td>{{sum.spotCheckHiddendangerSum}}</td>
                            <td>{{sum.spotCheckMajorHiddendangerNum}}</td>
                            <td>{{sum.spotCheckCompletedRectifyHiddendangerSum}}</td>
                            <td>{{sum.spotCheckCompletedRectifyMajorHiddendangerNum}}</td>
                            <td>{{(sum.spotCheckCompletedRectifyHiddendangerSum / sum.spotCheckHiddendangerSum) * 100 + '%'}}</td>
                            <td>{{sum.revokeLicenseEnterpriseSum}}</td>
                            <td>{{sum.detainLicenseSum}}</td>
                            <td>{{sum.amerceEnterpriseNum}}</td>
                            <td>{{sum.amerceMoneySum}}</td>
                        </tr>
                        <tr>
                            <td colspan="2">{{ unitType==1?'省本级':(unitType==2?'市本级':'县本级') }}</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>省级</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 + '%'}}</td>
                            <td>{{thisLevelStatistic.thisLevelSpotCheckinfo.revokeLicenseEnterpriseSum}}</td>
                            <td>{{thisLevelStatistic.thisLevelSpotCheckinfo.detainLicenseSum}}</td>
                            <td>{{thisLevelStatistic.thisLevelSpotCheckinfo.amerceEnterpriseNum}}</td>
                            <td>{{thisLevelStatistic.thisLevelSpotCheckinfo.amerceMoneySum}}</td>
                        </tr>
                        <template v-for="(item,index) in institutionalData">
                        <tr>
                            <td rowspan="2">{{ index + 1}}</td>
                            <td rowspan="2" @click="toDownSide()">{{item.enterpriseProvince?item.enterpriseProvince:'' + item.enterpriseCity?item.enterpriseCity:'' + item.enterpriseArea?item.enterpriseArea:''}}</td>
                            <td rowspan="2">{{item.enterpriseSum}}</td>
                            <td rowspan="2">{{item.validEnterpriseNum}}</td>
                            <td rowspan="2">{{item.selfCheckEnterpriseNum}}</td>
                            <td rowspan="2">{{item.selfCheckRateRequire + '%'}}</td>
                            <td rowspan="2" :class="item.selfCheckCompleteRate<item.selfCheckRateRequire?'warning':''">{{item.selfCheckCompleteRate + '%'}}</td>
                            <td rowspan="2">{{ item.validSelfCheckEnterpriseNum }}</td>
                            <td rowspan="2">{{ item.stockNum }}</td>
                            <td rowspan="2">{{ item.storageCapacity }}</td>
                            <td rowspan="2">{{ item.hiddendangerSum }}</td>
                            <td rowspan="2">{{ item.majorHiddendangerNum }}</td>
                            <td rowspan="2">{{ item.completedRectifyHiddendangerSum }}</td>
                            <td rowspan="2">{{ item.completedRectifyMajorHiddendangerNum }}</td>
                            <td rowspan="2">{{ item.hiddendangerRectifyRate }}</td>
                            <td>设区市级</td>
                            <td>{{item.citySpotCheckinfo.spotCheckEnterpriseNum}}</td>
                            <td>{{item.citySpotCheckinfo.spotCheckRateRequire + '%'}}</td>
                            <td :class="item.citySpotCheckinfo.spotCheckCompleteRate<item.citySpotCheckinfo.spotCheckRateRequire?'warning':''">{{item.citySpotCheckinfo.spotCheckCompleteRate + '%'}}</td>
                            <td>{{item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerSum}}</td>
                            <td>{{item.citySpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum}}</td>
                            <td>{{item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum}}</td>
                            <td>{{item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum}}</td>
                            <td>{{item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate + '%'}}</td>
                            <td>{{item.citySpotCheckinfo.revokeLicenseEnterpriseSum}}</td>
                            <td>{{item.citySpotCheckinfo.detainLicenseSum}}</td>
                            <td>{{item.citySpotCheckinfo.amerceEnterpriseNum}}</td>
                            <td>{{item.citySpotCheckinfo.amerceMoneySum}}</td>
                        </tr>
                        <tr>
                            <td>县级</td>
                            <td>{{item.areaSpotCheckinfo.spotCheckEnterpriseNum}}</td>
                            <td>{{item.areaSpotCheckinfo.spotCheckRateRequire + '%'}}</td>
                            <td :class="item.areaSpotCheckinfo.spotCheckCompleteRate<item.areaSpotCheckinfo.spotCheckRateRequire?'warning':''">{{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 + '%'}}</td>
                            <td>{{item.areaSpotCheckinfo.revokeLicenseEnterpriseSum}}</td>
                            <td>{{item.areaSpotCheckinfo.detainLicenseSum}}</td>
                            <td>{{item.areaSpotCheckinfo.amerceEnterpriseNum}}</td>
                            <td>{{item.areaSpotCheckinfo.amerceMoneySum}}</td>
                        </tr>
                        </template>
                    </table>
                </el-tab-pane>
                <el-tab-pane label="零售" name="2">
                    <h2 style="text-align: center">2023年上半年烟花爆竹生产经营安全检查零售环节信息报送汇总表(省级层面)</h2>
                </el-tab-pane>
            </el-tabs>
            <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" v-if="sheetStatus==1||sheetStatus==2" style="width: 140px" size="medium" type="primary" @click="exportSheet()" id="export">导出汇总表</el-button>
                <div v-else style="width: 140px"></div>
            </div>
            <div class="tabpanel">
                <table v-show="sheetStatus==1||sheetStatus==2" class="data-table" id="tableExcel">
                    <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-for="(item,index) in institutionalData">
                    <tr>
                        <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 class="point-item" @click="checkEnterprise(item.enterpriseCity,item.enterpriseArea)">{{sheetStatus==1?item.citySpotCheckinfo.spotCheckEnterpriseNum:item.areaSpotCheckinfo.spotCheckEnterpriseNum}}</td>
                        <td>{{sheetStatus==1?item.citySpotCheckinfo.spotCheckRateRequire + '%':item.areaSpotCheckinfo.spotCheckRateRequire + '%'}}</td>
                        <td v-if="sheetStatus==1" :class="item.citySpotCheckinfo.spotCheckCompleteRate<item.citySpotCheckinfo.spotCheckRateRequire?'warning':''">
                            {{item.citySpotCheckinfo.spotCheckCompleteRate + '%'}}
                        </td>
                        <td v-else :class="item.areaSpotCheckinfo.spotCheckCompleteRate<item.areaSpotCheckinfo.spotCheckRateRequire?'warning':''">
                            {{item.areaSpotCheckinfo.spotCheckCompleteRate + '%'}}
                        </td>
                        <td>{{sheetStatus==1?item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerSum:item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerSum}}</td>
                        <td>{{sheetStatus==1?item.citySpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum:item.areaSpotCheckHiddendangerinfo.spotCheckMajorHiddendangerNum}}</td>
                        <td>{{sheetStatus==1?item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum:item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyHiddendangerSum}}</td>
                        <td>{{sheetStatus==1?item.citySpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum:item.areaSpotCheckHiddendangerinfo.spotCheckCompletedRectifyMajorHiddendangerNum}}</td>
                        <td>
                            {{sheetStatus==1?(item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate==null?'--':item.citySpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate + '%'):(item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate==null?'--':item.areaSpotCheckHiddendangerinfo.spotCheckHiddendangerRectifyRate + '%')}}</td>
                        <td>{{sheetStatus==1?item.citySpotCheckinfo.revokeLicenseEnterpriseSum:item.areaSpotCheckinfo.revokeLicenseEnterpriseSum}}</td>
                        <td>{{sheetStatus==1?item.citySpotCheckinfo.detainLicenseSum:item.areaSpotCheckinfo.detainLicenseSum}}</td>
                        <td>{{sheetStatus==1?item.citySpotCheckinfo.amerceEnterpriseNum:item.areaSpotCheckinfo.amerceEnterpriseNum}}</td>
                        <td>{{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 + '%'}}</td>
                        <td :class="item.areaSpotCheckinfo.spotCheckCompleteRate<item.areaSpotCheckinfo.spotCheckRateRequire?'warning':''">{{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>
                <area-form v-show="sheetStatus==3" ref="areaSheet"></area-form>
            </div>
        </div>
        <check-enterprises ref="enterprises"></check-enterprises>
    </div>
</template>
@@ -173,21 +199,28 @@
import {computePageCount} from "../../../utils";
import {parseError} from "../../../utils/messageDialog";
import { getCheckUnitType,getDataStatistics, getSpecialCheckTask } from "@/api/specialCheck"
import areaForm from "./areaForm"
import checkEnterprises from "./checkEnterprises"
export default {
name: "sumSheet",
    components: {},
    components: {
        areaForm,
        checkEnterprises
    },
    data(){
        return{
            taskId: null,
            taskName: '',
            unitType: null,
            sheetStatus: 1,
            recordTotal: 0,
            pageSize: 10,
            currentPage: 1,
            listLoading: false,
            activeTab: '1',
            enterpriseCity: null,
            enterpriseArea: null,
            activeTab: 1,
            enterpriseCity: '',
            enterpriseArea: '',
            sum:{
                enterpriseSum: null,
                validEnterpriseNum: null,
@@ -220,9 +253,8 @@
    },
    created() {
        const t = this
        if(t.taskId){t.getDataStatistics()}
        else{t.getCheckTask()}
        t.getCheckUnitType()
        if(t.taskId){t.getDataStatistics()}
    },
    computed: {
        ...mapGetters([
@@ -237,6 +269,7 @@
            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',
@@ -245,25 +278,12 @@
            }
            t.listLoading = false
        },
        async getCheckTask(){
            const t = this
            const res = await getSpecialCheckTask()
            if(res.data.code === "200"){
                t.taskId = res.data.result.specialCheckTaskSimplifyInfos[0].id
                t.getDataStatistics()
            }else{
                t.$message({
                    type:'warning',
                    message:res.data.message
                })
            }
        },
        getSum(arr){
            return arr.reduce((prev,curr)=>prev+curr)
        },
        async getDataStatistics(){
            const t = this
            const data = {id: t.taskId,enterpriseType: Number(t.activeTab),enterpriseCity: t.enterpriseCity,enterpriseArea: t.enterpriseArea,pageIndex: t.currentPage,pageSize: t.pageSize}
            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
@@ -272,22 +292,33 @@
                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))
                console.log(Array.from(t.institutionalData, ({ stockNum }) => stockNum),'666666666666')
                t.sum.storageCapacity = t.getSum(Array.from(t.institutionalData, ({ storageCapacity }) => storageCapacity))
                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))
                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}))
                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',
@@ -295,18 +326,73 @@
                })
            }
        },
        switchSheet(tab, event) {
        switchSheet() {
            const t = this
            t.getDataStatistics()
            console.log(t.sheetStatus,'status')
            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.getDataStatistics()
                t.sheetStatus = 2
            }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) {
            var 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
            var table = document.getElementById(tableid);
            var ctx = { worksheet: 'Worksheet', table: table.innerHTML };
            var 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?'市级层面':'区县级'))
            t.tableToExcel("tableExcel", "export",sheetName);
        }
    }
}
</script>
<style lang="scss" scoped>
::v-deep.el-tabs--border-card .el-tabs__content{
    height: calc(100vh - 200px);
    overflow: scroll !important;
.tabpanel{
    width: 100%;
    height: calc(100vh - 240px);
    overflow: auto;
}
.data-table{
    border-collapse: collapse;
@@ -349,6 +435,14 @@
                border-right: none;
            }
        }
        .point-item{
            cursor: pointer;
            &:hover{
                text-decoration: underline;
                color: #409EFF;
            }
        }
        .warning{
            color: red;
        }