From 90de81ed138823dc498b201bc7873f74016d2f65 Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期三, 23 十一月 2022 15:20:23 +0800
Subject: [PATCH] 新增安全专项检查与用户层级

---
 src/views/specialCheck/components/sumSheet.vue |  490 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 292 insertions(+), 198 deletions(-)

diff --git a/src/views/specialCheck/components/sumSheet.vue b/src/views/specialCheck/components/sumSheet.vue
index 76bdd82..a7e81d0 100644
--- a/src/views/specialCheck/components/sumSheet.vue
+++ b/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;
         }

--
Gitblit v1.9.2