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/areaEnterprises.vue  |   99 ++
 src/views/usermng/user.vue                             |  178 +++--
 src/views/specialCheck/components/areaForm.vue         |  150 ++++
 src/views/selfCheck/components/repair.vue              |  103 +-
 src/views/specialCheck/components/sumSheet.vue         |  490 ++++++++-----
 src/router/index.js                                    |   14 
 src/views/specialCheck/components/checkEnterprises.vue |  143 ++++
 src/views/specialCheck/components/feedbackDetails.vue  |   29 
 /dev/null                                              |  243 -------
 src/api/specialCheck.js                                |   35 +
 src/views/specialCheck/components/wholesaleForm.vue    |   15 
 src/views/selfCheck/components/selfReport.vue          |  213 +++--
 src/views/specialCheck/index.vue                       |   55 
 src/views/selfCheck/components/supervisionDetails.vue  |  110 ++
 src/views/specialCheck/components/sendWork.vue         |   49 
 src/views/selfCheck/index.vue                          |   15 
 src/views/selfCheck/components/checkDetails.vue        |   43 +
 src/App.vue                                            |    1 
 src/views/selfCheck/supervision.vue                    |    1 
 19 files changed, 1,244 insertions(+), 742 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index ec9032c..bee05da 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -5,6 +5,7 @@
 </template>
 
 <script>
+
 export default {
   name: 'App'
 }
diff --git a/src/api/specialCheck.js b/src/api/specialCheck.js
index 822313e..ff59d9b 100644
--- a/src/api/specialCheck.js
+++ b/src/api/specialCheck.js
@@ -96,3 +96,38 @@
         data
     })
 }
+
+// 点击栏目数字跳转到监管机构抽查情况
+export function getSpotCheckRecord(data){
+    return request({
+        headers:{
+            'Authorization':getToken()
+        },
+        url:process.env.BASE_API+ '/taskSpotCheck/select/getSpotCheckRecordWithHiddendangerCount',
+        method:'post',
+        data
+    })
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/router/index.js b/src/router/index.js
index 8166572..d57f811 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -123,19 +123,7 @@
         component: () => import('@/views/dashboard/index'),
         name: 'Dashboard1',
         meta: { title: '首页', icon: 'el-icon-dash', noCache: true, affix: true }
-      },
-        {
-            path: 'specialCheck',
-            component: () => import('@/views/specialCheck/index'),
-            name: 'specialCheck',
-            meta: { title: '专项检查', icon: 'el-icon-dash', noCache: true, affix: true }
-        },
-        {
-            path: 'selfCheck',
-            component: () => import('@/views/selfCheck/index'),
-            name: 'selfCheck',
-            meta: { title: '专项自查', icon: 'el-icon-dash', noCache: true, affix: true }
-        }
+      }
     ],
     hidden: true
   },
diff --git a/src/views/selfCheck/components/checkDetails.vue b/src/views/selfCheck/components/checkDetails.vue
index 6d073fe..9214023 100644
--- a/src/views/selfCheck/components/checkDetails.vue
+++ b/src/views/selfCheck/components/checkDetails.vue
@@ -5,9 +5,10 @@
         :close-on-click-modal="false"
         width="75%"
         center
+        @close="resetForm()"
     >
          <div slot="title" class="dialog-title">
-            烟花爆竹批发企业自查情况信息报送表
+            烟花爆竹{{enterpriseType==1?'批发':'零售'}}企业自查情况信息报送表
          </div>
         <div class="table-tit">
             <div>企业名称: <span class="m-color">{{corpInfo.enterpriseName}}</span></div>
@@ -90,20 +91,22 @@
         data(){
             return{
                 dialogVisible:false,
+                enterpriseType: null,
                 id: null,
                 corpInfo:{
                     enterpriseName: '',
                     enterpriseProvince: '',
                     enterpriseCity: '',
                     enterpriseArea: '',
-                    licenceValidStatus: 0,
-                    stockNum: 0,
-                    store: 0,
+                    licenceValidStatus: null,
+                    stockNum: null,
+                    storageCapacity: null,
+                    hiddendangerStatus: null,
                     hiddendangerInfos: [],
-                    hiddendangerSum: 0,
-                    majorHiddendangerNum: 0,
-                    completedRectifyHiddendangerSum: 0,
-                    completedRectifyMajorHiddendangerNum: 0,
+                    hiddendangerSum: null,
+                    majorHiddendangerNum: null,
+                    completedRectifyHiddendangerSum: null,
+                    completedRectifyMajorHiddendangerNum: null,
                     selfcheckReportUserName: '',
                     selfcheckReportUserMobile: '',
                     reportModifyTime: ''
@@ -118,8 +121,8 @@
                 let res = await getEnterpriseInfo({id: t.id})
                 if(res.data.code === "200"){
                     t.corpInfo = res.data.result
-                    console.log(t.corpInfo,'t.corpInfo')
                 }else{
+                    t.dialogVisible = false
                     t.$message({
                         type:'warning',
                         message:res.data.message
@@ -129,6 +132,26 @@
 
             confirmBack(){
                 this.dialogVisible = false
+            },
+            resetForm(){
+                this.corpInfo={
+                    enterpriseName: '',
+                    enterpriseProvince: '',
+                    enterpriseCity: '',
+                    enterpriseArea: '',
+                    licenceValidStatus: null,
+                    stockNum: null,
+                    storageCapacity: null,
+                    hiddendangerStatus: null,
+                    hiddendangerInfos: [],
+                    hiddendangerSum: null,
+                    majorHiddendangerNum: null,
+                    completedRectifyHiddendangerSum: null,
+                    completedRectifyMajorHiddendangerNum: null,
+                    selfcheckReportUserName: '',
+                    selfcheckReportUserMobile: '',
+                    reportModifyTime: ''
+                }
             }
         },
     }
@@ -228,6 +251,8 @@
                         line-height: 1.5;
                         text-align: left;
                         padding: 10px;
+                        &::-webkit-scrollbar { width: 0; height: 0; color: transparent }
+                        &::scrollbar { width: 0; height: 0; color: transparent }
                     }
                 }
             }
diff --git a/src/views/selfCheck/components/repair.vue b/src/views/selfCheck/components/repair.vue
index 8f1e622..16033f7 100644
--- a/src/views/selfCheck/components/repair.vue
+++ b/src/views/selfCheck/components/repair.vue
@@ -3,7 +3,7 @@
         :visible.sync="dialogVisible"
         append-to-body
         :close-on-click-modal="false"
-        width="60%"
+        width="80%"
         center
     >
         <div class="table_cont">
@@ -27,19 +27,19 @@
                 <el-table-column label="负责人" prop="chargePerson" align="center"></el-table-column>
                 <el-table-column label="整改状态" prop="rectifyStatus" align="center">
                     <template slot-scope="scope">
-                        <span>{{ scope.row.rectifyStatus ==0?'未整改':'已整改' }}</span>
+                        <span>{{ scope.row.rectifyStatus ==1?'已整改':'未整改' }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="完成整改时间" prop="completeRectifyTime	" align="center"></el-table-column>
+                <el-table-column label="完成整改时间" prop="completeRectifyTime" align="center"></el-table-column>
                 <el-table-column label="隐患等级" prop="hiddendangerLevel" align="center">
                     <template slot-scope="scope">
                         <span>{{ scope.row.hiddendangerLevel==1 ? '一般隐患' : '重大隐患' }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+                <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
                     <template slot-scope="scope">
-                        <el-button v-if="scope.row.rectifyStatus==0" type="text" @click="toFix(scope.row)">整改填报</el-button>
-                        <el-button v-else type="text">--</el-button>
+                        <span v-if="scope.row.rectifyStatus==1">已整改</span>
+                        <el-button v-else type="text" @click="toFix(scope.row)">整改填报</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -59,7 +59,7 @@
         </div>
         <span slot="footer" class="dialog-footer">
           <el-button @click="dialogVisible = false">取消</el-button>
-          <el-button type="primary" @click="confirm()">提交</el-button>
+          <el-button type="primary" @click="confirm()">确认</el-button>
         </span>
         <el-dialog
             :visible.sync="dialogFix"
@@ -68,32 +68,34 @@
             :close-on-click-modal="false"
             width="40%"
             center
+            @close="resetFix()"
         >
-            <el-form ref="fixformRef" :model="fixForm" label-width="140px">
+            <el-form ref="fixForm" :model="fixForm" :rules="fixRule" label-width="160px">
                 <el-form-item label="当前隐患:">
-                    <el-input type="textarea" v-model="fixForm.info"></el-input>
+                    <el-input type="textarea" readonly v-model="fixForm.info"></el-input>
                 </el-form-item>
 
-                <el-form-item label="当前完成整改日期:">
+                <el-form-item label="当前完成整改日期:" prop="completeRectifyTime">
                     <el-date-picker
                         v-model="fixForm.completeRectifyTime"
-                        type="date"
+                        type="datetime"
+                        value-format="yyyy-MM-dd HH:mm:ss"
                         placeholder="请选择整改日期">
                     </el-date-picker>
                 </el-form-item>
-                <el-form-item label="整改资金:">
-                    <el-input v-model="fixForm.rectifyPrice"></el-input>
+                <el-form-item label="整改资金:" prop="rectifyPrice">
+                    <el-input v-model="fixForm.rectifyPrice" type="number" placeholder="请输入整改资金金额"></el-input>
                 </el-form-item>
-                <el-form-item label="整改措施:">
-                    <el-input type="textarea" autosize v-model="fixForm.rectifyMeasure"></el-input>
+                <el-form-item label="整改措施:" prop="rectifyMeasure">
+                    <el-input type="textarea" autosize v-model="fixForm.rectifyMeasure" placeholder="请输入整改措施"></el-input>
                 </el-form-item>
-                <el-form-item label="负责人:">
-                    <el-input v-model="fixForm.chargePerson"></el-input>
+                <el-form-item label="负责人:" prop="chargePerson">
+                    <el-input v-model="fixForm.chargePerson" placeholder="请输入整改负责人"></el-input>
                 </el-form-item>
             </el-form>
             <span slot="footer" class="dialog-footer">
               <el-button @click="dialogFix = false">取消</el-button>
-              <el-button type="primary" @click="confirmFix()">提交</el-button>
+              <el-button type="primary" @click="confirmFix('fixForm')">提交</el-button>
             </span>
         </el-dialog>
     </el-dialog>
@@ -113,7 +115,6 @@
                 dialogFix: false,
                 recordTotal: 0,
                 pageSize: 10,
-                pageTotal: 0,
                 currentPage: 1,
                 tableKey: 0,
                 dialogVisible:false,
@@ -123,14 +124,20 @@
                     enterpriseSubmitId: null,
                     info: '',
                     completeRectifyTime: '',
-                    rectifyPrice: 0,
+                    rectifyPrice: null,
                     rectifyMeasure: '',
                     chargePerson: ''
+                },
+                fixRule:{
+                    completeRectifyTime: [{ required: true, message: '请选择完成整改日期', trigger: 'blur' }],
+                    rectifyPrice: [{ required: true, message: '请输入整改资金', trigger: 'blur' }],
+                    rectifyMeasure: [{ required: true, message: '请输入整改措施', trigger: 'blur' }],
+                    chargePerson: [{ required: true, message: '请输入负责人', trigger: 'blur' }]
                 }
             }
         },
         created() {
-            this.getSelfRectifyInfo()
+            // this.getSelfRectifyInfo()
         },
         watch: {
         },
@@ -148,7 +155,7 @@
             async getSelfRectifyInfo(){
                 const t = this
                 t.listLoading = true
-                let res = await getSelfRectifyInfo(t.id)
+                let res = await getSelfRectifyInfo({id: t.id})
                 if(res.data.code === "200"){
                     t.checkList = res.data.result.hiddendangerBaseInfos
                 }else{
@@ -162,6 +169,7 @@
 
             confirm(){
                 this.dialogVisible = false
+                this.$parent.getUncheckList()
             },
 
             toFix(row){
@@ -171,25 +179,42 @@
                 t.dialogFix = true
             },
 
-            async confirmFix(){
+            async confirmFix(formName){
                 const t = this
-                t.listLoading = true
-                t.fixForm.enterpriseSubmitId = t.id
-                let {info,...data} = t.fixForm
-                let res = await saveSelfRectifyInfo(data)
-                if(res.data.code === "200"){
-                    t.$message({
-                        type:'success',
-                        message:res.data.message
-                    })
-                }else{
-                    t.$message({
-                        type:'warning',
-                        message:res.data.message
-                    })
+                t.$refs[formName].validate(async (valid) => {
+                    if(valid){
+                        t.fixForm.enterpriseSubmitId = t.id
+                        let {info,...data} = t.fixForm
+                        let res = await saveSelfRectifyInfo(data)
+                        if(res.data.code === "200"){
+                            t.$message({
+                                type:'success',
+                                message: '提交成功'
+                            })
+                        }else{
+                            t.$message({
+                                type:'warning',
+                                message:res.data.message
+                            })
+                        }
+                        t.dialogFix = false
+                        t.getSelfRectifyInfo()
+                    } else {
+                        console.log('error submit!!');
+                        return false;
+                    }
+                })
+            },
+            resetFix(){
+                this.fixForm = {
+                    id: null,
+                    enterpriseSubmitId: null,
+                    info: '',
+                    completeRectifyTime: '',
+                    rectifyPrice: null,
+                    rectifyMeasure: '',
+                    chargePerson: ''
                 }
-                t.listLoading = false
-                t.dialogFix = false
             }
         },
     }
diff --git a/src/views/selfCheck/components/selfReport.vue b/src/views/selfCheck/components/selfReport.vue
index 19a4b0a..f9f7010 100644
--- a/src/views/selfCheck/components/selfReport.vue
+++ b/src/views/selfCheck/components/selfReport.vue
@@ -5,6 +5,7 @@
         :close-on-click-modal="false"
         width="60%"
         center
+        @close="reset()"
     >
         <div class="company-info">
             <div>企业基本信息</div>
@@ -17,58 +18,61 @@
             <div><span>库存:</span><span>{{stockNum}}</span></div>
             <div><span>库容:</span>
                 <span>
-                    <el-input placeholder="请输入库容量" v-model="checkForm.storageCapacity"></el-input>
+                    <el-input placeholder="请输入库容量" type="number" v-model="checkForm.storageCapacity"></el-input>
                 </span>
             </div>
         </div>
         <el-divider/>
         <div class="form-info">
             <div>自查自改填报</div>
-            <div>
-                <span>自查是否有隐患:</span>
+        </div>
+
+        <el-form :model="checkForm" :rules="rules" ref="checkForm" label-width="150px" class="demo-ruleForm">
+
+
+            <el-form-item label="自查是否有隐患:" prop="hiddendangerStatus">
                 <el-radio-group v-model="checkForm.hiddendangerStatus">
                     <el-radio :label="1">是</el-radio>
                     <el-radio :label="0">否</el-radio>
                 </el-radio-group>
-            </div>
-        </div>
-        <div class="risk-list" v-if="checkForm.hiddendangerStatus==1">
-            <table class="risk-table">
-                <th><span>序号</span><span>检查出的隐患问题</span><span>检查时间</span><span>最后整改期限</span><span>隐患等级</span><span>操作</span></th>
-                <tr v-for="(item,index) in checkForm.submitHiddendangers">
-                    <td class="num">{{index + 1}}</td>
-                    <td class="info"><el-input type="textarea" :rows="1" placeholder="请输入内容" v-model="item.hiddendangerRemark"></el-input></td>
-                    <td class="date"><el-date-picker v-model="item.checkTime" type="datetime" placeholder="选择检查时间"></el-date-picker></td>
-                    <td class="deadline"><el-date-picker v-model="item.rectifyDeadlineTime" type="datetime" placeholder="选择整改期限"></el-date-picker></td>
-                    <td class="level">
-                        <el-radio-group v-model="item.hiddendangerLevel">
-                            <el-radio :label="1">一般隐患</el-radio>
-                            <el-radio :label="2">重大隐患</el-radio>
-                        </el-radio-group>
-                    </td>
-                    <td class="edit">
-                        <el-button type="text" @click="deleteItem(index)">删除</el-button>
-                    </td>
-                </tr>
-            </table>
-            <div class="addBtn">
-                <el-button type="primary" plain icon="el-icon-plus" @click="addItem()">新增隐患问题</el-button>
-            </div>
+            </el-form-item>
 
-        </div>
-        <div style="display: flex;align-items: center;margin-top: 20px">
-            <span>填报人:</span>
-            <span style="margin-right: 40px">
+            <div class="risk-list" v-if="checkForm.hiddendangerStatus==1">
+                <table class="risk-table">
+                    <th><span>序号</span><span>检查出的隐患问题</span><span>检查时间</span><span>最后整改期限</span><span>隐患等级</span><span>操作</span></th>
+                    <tr v-for="(item,index) in checkForm.submitHiddendangers">
+                        <td class="num">{{index + 1}}</td>
+                        <td class="info"><el-input type="textarea" :rows="1" placeholder="请简述隐患问题" v-model="item.hiddendangerRemark"></el-input></td>
+                        <td class="date"><el-date-picker v-model="item.checkTime" type="datetime" placeholder="选择检查时间" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker></td>
+                        <td class="deadline"><el-date-picker v-model="item.rectifyDeadlineTime" type="datetime" placeholder="选择整改期限" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker></td>
+                        <td class="level">
+                            <el-radio-group v-model="item.hiddendangerLevel">
+                                <el-radio :label="1">一般隐患</el-radio>
+                                <el-radio :label="2">重大隐患</el-radio>
+                            </el-radio-group>
+                        </td>
+                        <td class="edit">
+                            <el-button type="text" @click="deleteItem(index)">删除</el-button>
+                        </td>
+                    </tr>
+                </table>
+                <div class="addBtn">
+                    <el-button type="primary" plain icon="el-icon-plus" @click="addItem()">新增隐患问题</el-button>
+                </div>
+            </div>
+            <el-form-item label="填报人:" prop="selfcheckReportUserName">
                 <el-input v-model="checkForm.selfcheckReportUserName"></el-input>
-            </span>
-            <span>电话号码:</span>
-            <span>
+            </el-form-item>
+
+            <el-form-item label="电话号码:" prop="selfcheckReportUserMobile">
                 <el-input v-model="checkForm.selfcheckReportUserMobile"></el-input>
-            </span>
-        </div>
+            </el-form-item>
+
+        </el-form>
+
         <span slot="footer" class="dialog-footer">
           <el-button @click="dialogVisible = false">取消</el-button>
-          <el-button type="primary" @click="confirmSend()">提交</el-button>
+          <el-button type="primary" @click="submitForm('checkForm')">提交</el-button>
         </span>
     </el-dialog>
 </template>
@@ -87,23 +91,33 @@
                 licenceValidDeadline: '',
                 stockNum: 0,
                 checkForm:{
-                    storageCapacity: 0,
-                    hiddendangerStatus: 0,
+                    storageCapacity: null,
+                    hiddendangerStatus: null,
                     submitHiddendangers: [
                         {
                             id: null,
                             hiddendangerRemark: '',
                             checkTime: '',
                             rectifyDeadlineTime: '',
-                            hiddendangerLevel: 1
+                            hiddendangerLevel: null
                         }
                     ],
                     selfcheckReportUserName: '',
                     selfcheckReportUserMobile: ''
                 },
+                rules: {
+                    hiddendangerStatus: [
+                        { required: true, message: '请选择是否查出隐患', trigger: 'blur' }
+                    ],
+                    selfcheckReportUserName: [{ required: true, message: '请输入填报人', trigger: 'blur' }],
+                    selfcheckReportUserMobile: [{ required: true, message: '请输入电话号码', trigger: 'blur' }]
+                }
             }
         },
         watch: {
+        },
+        created() {
+            console.log(this.id)
         },
         methods:{
             addItem(){
@@ -111,20 +125,27 @@
                     hiddendangerRemark: '',
                     checkTime: '',
                     rectifyDeadlineTime: '',
-                    hiddendangerLevel: 1
+                    hiddendangerLevel: null
                 }
                 this.checkForm.submitHiddendangers.push(newItem)
             },
             deleteItem(i){
-                console.log(i)
-                this.checkForm.submitHiddendangers.splice(i,1)
+                const t = this
+                if(t.checkForm.submitHiddendangers.length == 1){
+                    t.$message({
+                        type:'warning',
+                        message: '检查的隐患信息不可为空'
+                    })
+                }else{
+                    t.checkForm.submitHiddendangers.splice(i,1)
+                }
             },
 
-            async getUncheckList(){
+            async getReportInfo(){
                 const t = this
-                let res = await getSelfBaseInfo(t.id)
+                let res = await getSelfBaseInfo({id:t.id})
                 if(res.data.code === "200"){
-                    t.recordTotal = res.data.result.enterpriseName
+                    t.enterpriseName = res.data.result.enterpriseName
                     t.licenceValidStatus = res.data.result.licenceValidStatus
                     t.licenceValidDeadline = res.data.result.licenceValidDeadline
                     t.stockNum = res.data.result.stockNum
@@ -136,32 +157,69 @@
                 }
             },
 
-            async confirmSend(){
+            submitForm(formName){
                 const t = this
-                let data = t.checkForm
-                data.id = t.id
-                if(data.storageCapacity.toString()=='' || data.submitHiddendangers.hiddendangerRemark == '' || data.submitHiddendangers.checkTime == '' || data.submitHiddendangers.rectifyDeadlineTime==''||data.submitHiddendangers.hiddendangerLevel.toString()==''){
-                    t.$message({
-                        type:'warning',
-                        message:'请完善表单信息'
-                    })
-                    return
+                t.$refs[formName].validate(async (valid) => {
+                    if(t.checkForm.hiddendangerStatus == 0){
+                        t.checkForm.submitHiddendangers = []
+                    }
+
+                    if(valid){
+                        if(t.checkForm.hiddendangerStatus == 1){
+                            if(t.checkForm.submitHiddendangers.find((e) => e.hiddendangerRemark == '') || t.checkForm.submitHiddendangers.find((e) => e.checkTime == '') || t.checkForm.submitHiddendangers.find((e) => e.rectifyDeadlineTime == '') || t.checkForm.submitHiddendangers.find((e) => e.hiddendangerLevel == null)){
+                                t.$message({
+                                    type:'warning',
+                                    message: '请完善检查的隐患信息'
+                                })
+                                return
+                            }
+                        }
+                        if(t.checkForm.storageCapacity == null){
+                            t.$message({
+                                type:'warning',
+                                message: '请输入库容信息'
+                            })
+                            return
+                        }
+                        t.checkForm.id = t.id
+                        let res = await saveSelfCheckReport(t.checkForm)
+                        if(res.data.code === "200"){
+                            t.$message({
+                                type:'success',
+                                message: '提交成功!'
+                            })
+                        }else{
+                            t.$message({
+                                type:'warning',
+                                message:res.data.message
+                            })
+                        }
+                        t.dialogVisible = false
+                        t.$parent.getUncheckList();
+                    } else {
+                        console.log('error submit!!');
+                        return false;
+                    }
+                })
+            },
+            reset(){
+                this.checkForm = {
+                    storageCapacity: null,
+                    hiddendangerStatus: null,
+                    submitHiddendangers: [
+                        {
+                            id: null,
+                            hiddendangerRemark: '',
+                            checkTime: '',
+                            rectifyDeadlineTime: '',
+                            hiddendangerLevel: null
+                        }
+                    ],
+                    selfcheckReportUserName: '',
+                    selfcheckReportUserMobile: ''
                 }
-                let res = await saveSelfCheckReport(data)
-                if(res.data.code === "200"){
-                    t.$message({
-                        type:'success',
-                        message:res.data.message
-                    })
-                }else{
-                    t.$message({
-                        type:'warning',
-                        message:res.data.message
-                    })
-                }
-                t.dialogVisible = false
             }
-        },
+        }
     }
 </script>
 
@@ -199,21 +257,12 @@
         }
     }
     .form-info{
-        display: flex;
-        align-items: center;
-        &>div{
-            margin-bottom: 10px;
-            margin-right: 40px;
-            display: flex;
-            align-items: center;
-        }
-        &>div:first-of-type{
-            font-size: 18px;
-            font-weight: bolder;
-            padding-left: 0;
-        }
+        font-size: 18px;
+        font-weight: bolder;
+        padding-left: 0;
     }
     .risk-list{
+        margin-bottom: 20px;
         .risk-table{
             width: 100%;
             border-collapse: collapse;
diff --git a/src/views/supervision/components/supervisionDetails.vue b/src/views/selfCheck/components/supervisionDetails.vue
similarity index 74%
rename from src/views/supervision/components/supervisionDetails.vue
rename to src/views/selfCheck/components/supervisionDetails.vue
index e90bc37..6afdea9 100644
--- a/src/views/supervision/components/supervisionDetails.vue
+++ b/src/views/selfCheck/components/supervisionDetails.vue
@@ -5,6 +5,7 @@
         :close-on-click-modal="false"
         width="75%"
         center
+        @close="resetForm()"
     >
          <div slot="title" class="dialog-title">
             烟花爆竹批发企业自查情况信息报送表
@@ -40,7 +41,7 @@
                     <td class="w-30 overText">{{item.rectifyMeasure}}</td>
                     <td class="w-10">{{item.rectifyPrice}}</td>
                     <td class="w-10">{{item.chargePerson}}</td>
-                    <td class="w-20">
+                    <td class="w-20 overText">
                         <span v-if="item.rectifyStatus == 0">
                             未整改
                             <el-button type="text" @click="toRectify(item)">去整改</el-button>
@@ -78,32 +79,34 @@
             :close-on-click-modal="false"
             width="40%"
             center
+            @close="resetEdit()"
         >
-            <el-form ref="reportFormRef" :model="reportForm" label-width="140px">
+            <el-form ref="reportForm" :model="reportForm" :rules="reportRule" label-width="140px">
                 <el-form-item label="当前隐患:">
-                    <el-input type="textarea" v-model="reportForm.info"></el-input>
+                    <el-input type="textarea" readonly v-model="reportForm.info"></el-input>
                 </el-form-item>
 
-                <el-form-item label="当前完成整改日期:">
+                <el-form-item label="当前完成整改日期:" prop="completeRectifyTime">
                     <el-date-picker
                         v-model="reportForm.completeRectifyTime"
-                        type="date"
+                        type="datetime"
+                        value-format="yyyy-MM-dd HH:mm:ss"
                         placeholder="请选择整改日期">
                     </el-date-picker>
                 </el-form-item>
-                <el-form-item label="整改资金:">
+                <el-form-item label="整改资金:" prop="rectifyPrice">
                     <el-input v-model="reportForm.rectifyPrice"></el-input>
                 </el-form-item>
-                <el-form-item label="整改措施:">
+                <el-form-item label="整改措施:" prop="rectifyMeasure">
                     <el-input type="textarea" autosize v-model="reportForm.rectifyMeasure"></el-input>
                 </el-form-item>
-                <el-form-item label="负责人:">
+                <el-form-item label="负责人:" prop="chargePerson">
                     <el-input v-model="reportForm.chargePerson"></el-input>
                 </el-form-item>
             </el-form>
             <span slot="footer" class="dialog-footer">
               <el-button @click="dialogReport = false">取消</el-button>
-              <el-button type="primary" @click="confirmReport()">提交</el-button>
+              <el-button type="primary" @click="confirmReport('reportForm')">提交</el-button>
             </span>
         </el-dialog>
     </el-dialog>
@@ -126,27 +129,33 @@
                     enterpriseProvince: '',
                     enterpriseCity: '',
                     enterpriseArea: '',
-                    checkUnitType: 1,
+                    checkUnitType: null,
                     checkName: '',
                     checkTime: '',
-                    hiddendangerStatus: 0,
+                    hiddendangerStatus: null,
                     hiddendangerInfos: [],
-                    hiddendangerSum: 0,
-                    majorHiddendangerNum: 0
+                    hiddendangerSum: null,
+                    majorHiddendangerNum: null
                 },
                 reportForm:{
                     id: null,
                     info: '',
                     completeRectifyTime: '',
-                    rectifyPrice: 0,
+                    rectifyPrice: null,
                     rectifyMeasure: '',
                     chargePerson: ''
+                },
+                reportRule:{
+                    completeRectifyTime: [{ required: true, message: '请选择完成整改日期', trigger: 'blur' }],
+                    rectifyPrice: [{ required: true, message: '请输入整改资金', trigger: 'blur' }],
+                    rectifyMeasure: [{ required: true, message: '请输入整改措施', trigger: 'blur' }],
+                    chargePerson: [{ required: true, message: '请输入负责人', trigger: 'blur' }]
                 }
             }
         },
         created() {
             const t = this
-            t.getEnterpriseInfo()
+            // t.getEnterpriseInfo()
         },
         watch: {
         },
@@ -158,6 +167,7 @@
                 if(res.data.code === "200"){
                     t.corpInfo = res.data.result
                 }else{
+                    t.dialogVisible = false
                     t.$message({
                         type:'warning',
                         message:res.data.message
@@ -171,22 +181,56 @@
                 t.dialogReport = true
             },
 
-            async confirmReport(){
+            async confirmReport(formName){
                 const t = this
-                let {info,...data} = t.reportForm
-                let res = await updateSpotCheckRectifyInfo(data)
-                if(res.data.code === "200"){
-                    t.$message({
-                        type:'success',
-                        message:res.data.message
-                    })
-                }else{
-                    t.$message({
-                        type:'warning',
-                        message:res.data.message
-                    })
+                t.$refs[formName].validate(async (valid) => {
+                    if(valid){
+                        let {info,...data} = t.reportForm
+                        let res = await updateSpotCheckRectifyInfo(data)
+                        if(res.data.code === "200"){
+                            t.$message({
+                                type:'success',
+                                message:res.data.message
+                            })
+                        }else{
+                            t.$message({
+                                type:'warning',
+                                message:res.data.message
+                            })
+                        }
+                        t.dialogReport = false
+                        t.getEnterpriseInfo()
+                        t.$parent.getSpotCheckList()
+                    } else {
+                        console.log('error submit!!');
+                        return false;
+                    }
+                })
+            },
+            resetForm(){
+              this.corpInfo ={
+                  enterpriseName: '',
+                  enterpriseProvince: '',
+                  enterpriseCity: '',
+                  enterpriseArea: '',
+                  checkUnitType: null,
+                  checkName: '',
+                  checkTime: '',
+                  hiddendangerStatus: null,
+                  hiddendangerInfos: [],
+                  hiddendangerSum: null,
+                  majorHiddendangerNum: null
+              }
+            },
+            resetEdit(){
+                this.reportForm = {
+                    id: null,
+                    info: '',
+                    completeRectifyTime: '',
+                    rectifyPrice: null,
+                    rectifyMeasure: '',
+                    chargePerson: ''
                 }
-                t.dialogReport = false
             },
             confirmBack(){
                 this.dialogVisible = false
@@ -276,6 +320,9 @@
                     &.w-20{
                         width: 20%;
                     }
+                    &.w-30{
+                        width: 30%;
+                    }
                     &.w-50{
                         width: 50%;
                     }
@@ -285,14 +332,13 @@
                     &.w-75{
                         width: 75%;
                     }
-                    &.w-33{
-                        width: 33.33%;
-                    }
                     &.overText{
                         overflow: auto;
                         line-height: 1.5;
                         text-align: left;
                         padding: 10px;
+                        &::-webkit-scrollbar { width: 0; height: 0; color: transparent }
+                        &::scrollbar { width: 0; height: 0; color: transparent }
                     }
                 }
             }
diff --git a/src/views/selfCheck/index.vue b/src/views/selfCheck/index.vue
index 516e47f..3908fbc 100644
--- a/src/views/selfCheck/index.vue
+++ b/src/views/selfCheck/index.vue
@@ -17,19 +17,21 @@
                 <el-table-column label="自查期限(之前)" prop="enterpriseSelfCheckDeadline" align="center"></el-table-column>
                 <el-table-column label="是否自查" prop="selfcheckStatus" width="130" align="center" sortable>
                     <template slot-scope="scope">
-                        <span>{{ scope.row.selfcheckStatus == 0 ? '未自查' : '已自查' }}</span>
+                        <span>{{ scope.row.selfcheckStatus == 1 ? '已自查' : '未自查' }}</span>
                     </template>
                 </el-table-column>
                 <el-table-column label="自查时间" prop="selfcheckTime" align="center"></el-table-column>
                 <el-table-column label="是否隐患" prop="hiddendangerStatus" align="center">
                     <template slot-scope="scope">
-                        <span>{{ scope.row.hiddendangerStatus == 0 ? '否' : '是' }}</span>
+                        <span>{{ scope.row.hiddendangerStatus == null ? '' : (scope.row.hiddendangerStatus == 1 ?'是':'否') }}</span>
                     </template>
                 </el-table-column>
                 <el-table-column label="整改情况" prop="rectifyStatus" align="center" class-name="small-padding fixed-width">
                     <template slot-scope="scope">
-                        <el-button v-if="scope.row.rectifyStatus == 1" type="text" @click="toRepair(scope.row)">去整改</el-button>
-                        <span v-else>已完成</span>
+                        <span v-if="scope.row.rectifyStatus==0">无需整改</span>
+                        <el-button v-else-if="scope.row.rectifyStatus==1" type="text" @click="toRepair(scope.row)">去整改</el-button>
+                        <span v-else-if="scope.row.rectifyStatus==2">已整改</span>
+                        <span v-else>--</span>
                     </template>
                 </el-table-column>
                 <el-table-column label="详情" align="center" class-name="small-padding fixed-width">
@@ -65,7 +67,7 @@
     import { getToken } from '@/utils/auth'
     import selfReport from "./components/selfReport"
     import repair from "./components/repair"
-    import checkDetails from "./components/repair"
+    import checkDetails from "./components/checkDetails"
     import { getUnDoneCheckTask } from '@/api/selfCheck'
 
     export default {
@@ -114,18 +116,21 @@
                 const t = this
                 t.$refs.report.dialogVisible = true
                 t.$refs.report.id = row.id
+                t.$refs.report.getReportInfo()
             },
 
             toDetail(row){
                 const t = this
                 t.$refs.details.dialogVisible = true
                 t.$refs.details.id = row.id
+                t.$refs.details.getEnterpriseInfo()
             },
 
             toRepair(row){
                 const t = this
                 t.$refs.repair.dialogVisible = true
                 t.$refs.repair.id = row.id
+                t.$refs.repair.getSelfRectifyInfo()
             },
 
             async getUncheckList(){
diff --git a/src/views/supervision/index.vue b/src/views/selfCheck/supervision.vue
similarity index 98%
rename from src/views/supervision/index.vue
rename to src/views/selfCheck/supervision.vue
index e6b7564..e338805 100644
--- a/src/views/supervision/index.vue
+++ b/src/views/selfCheck/supervision.vue
@@ -105,6 +105,7 @@
                 t.$refs.details.dialogVisible = true
                 t.$refs.details.id = row.id
                 t.$refs.details.unitType = row.checkUnitType
+                t.$refs.details.getEnterpriseInfo()
             },
 
             async getSpotCheckList(){
diff --git a/src/views/specialCheck/components/areaEnterprises.vue b/src/views/specialCheck/components/areaEnterprises.vue
new file mode 100644
index 0000000..663379c
--- /dev/null
+++ b/src/views/specialCheck/components/areaEnterprises.vue
@@ -0,0 +1,99 @@
+<template>
+    <el-dialog
+        :visible.sync="dialogVisible"
+        append-to-body
+        :close-on-click-modal="false"
+        width="80%"
+        center
+    >
+        <div class="table_cont">
+
+            <el-table
+                :key="tableKey"
+                :data="checkList"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+            >
+
+                <el-table-column type="index" label="序号" align="center" width="80"/>
+                <el-table-column label="检查单位" prop="checkUnitName" align="center"></el-table-column>
+                <el-table-column label="检查层级" prop="checkUnitType" align="center">
+                    <template slot-scope="scope">
+                        <span>{{ scope.row.checkUnitType ==1?'省级':(scope.row.checkUnitType ==2?'市级':(scope.row.checkUnitType ==3?'区县级':'自查')) }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="隐患总数" prop="hiddendangerSum" align="center"></el-table-column>
+                <el-table-column label="重大隐患总数" prop="majorHiddendangerNum" align="center"></el-table-column>
+                <el-table-column label="整改数量" prop="completedRectifyHiddendangerSum" width="130" align="center" sortable></el-table-column>
+                <el-table-column label="重大隐患整改数量" prop="completedRectifyMajorHiddendangerNum" align="center"></el-table-column>
+                <el-table-column label="是否外埠检查" align="center">否</el-table-column>
+                <el-table-column label="检查时间" prop="checkTime" align="center"></el-table-column>
+                <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
+                    <template slot-scope="scope">
+                        <el-button type="text" @click="toCheck(scope.row.id)">查看</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </div>
+        <span slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="dialogVisible = false">确认</el-button>
+        </span>
+        <check-details ref="report"></check-details>
+    </el-dialog>
+</template>
+
+<script>
+    import {computePageCount} from "@/utils";
+    import { getSpotCheckRecord } from "@/api/specialCheck";
+    import checkDetails from "../../selfCheck/components/checkDetails"
+
+    export default {
+        name: "areaEnterprises",
+        components: {
+            checkDetails
+        },
+        data(){
+            return{
+                tableKey: 0,
+                enterpriseType: null,
+                dialogVisible:false,
+                checkList:[]
+            }
+        },
+        created() {
+
+        },
+        watch: {
+        },
+        methods:{
+            toCheck(id){
+                const t = this
+                t.$refs.report.id = id
+                t.$refs.report.enterpriseType = t.enterpriseType
+                t.$refs.report.getEnterpriseInfo()
+                t.$refs.report.dialogVisible = true
+            }
+        },
+    }
+</script>
+
+<style lang="scss" scoped>
+    .input-with-select .el-select {
+        width: 120px;
+    }
+
+    .el-date-editor.el-input{
+        width: 100%;
+    }
+
+    .el-divider__text{
+        background-color: #fafafa;
+        color: #034EA2;
+    }
+
+    .table_cont{
+        width: 100%;
+    }
+</style>
diff --git a/src/views/specialCheck/components/areaForm.vue b/src/views/specialCheck/components/areaForm.vue
new file mode 100644
index 0000000..a6af8d1
--- /dev/null
+++ b/src/views/specialCheck/components/areaForm.vue
@@ -0,0 +1,150 @@
+<template>
+    <div class="table">
+        <div class="table_content">
+<!--            <div></div>-->
+            <el-table
+                v-loading="listLoading"
+                :key="tableKey"
+                :data="checkData"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+            >
+
+                <el-table-column type="index" label="序号" align="center" width="80"/>
+                <el-table-column label="单位名称" prop="enterpriseName" align="center" width="180"></el-table-column>
+                <el-table-column label="联系电话" prop="enterpriseOfficephone" align="center"></el-table-column>
+                <el-table-column label="库存数量/万箱" prop="stockNum" align="center"></el-table-column>
+                <el-table-column label="库容量/万箱" prop="storageCapacity" align="center"></el-table-column>
+                <el-table-column label="是否查出隐患" prop="hiddendangerStatus" align="center">
+                    <template slot-scope="scope">
+                        <span>{{ scope.row.hiddendangerStatus == 1 ? '是' : '否' }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="是否自查" prop="selfcheckStatus" align="center">
+                    <template slot-scope="scope">
+                        <span>{{ scope.row.selfcheckStatus == 1 ? '已自查' : '未自查' }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="被检查次数" prop="checkedTimes" align="center"></el-table-column>
+                <el-table-column label="隐患数量" prop="hiddendangerSum" align="center"></el-table-column>
+                <el-table-column label="整改数量" prop="rectifyHiddendangerSum" align="center"></el-table-column>
+                <el-table-column label="重大整改数量" prop="rectifyMajorHiddendangerNum" align="center"></el-table-column>
+                <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width">
+                    <template slot-scope="scope">
+                        <el-button type="text" @click="toEnterprises(scope.row.selfAndcheckInfos)">查看</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+
+            <el-pagination
+                v-show="recordTotal>0"
+                :current-page="currentPage"
+                :page-sizes="[10, 15]"
+                :page-size="pageSize"
+                :total="recordTotal"
+                layout="total, sizes, prev, pager, next, jumper"
+                background
+                style="float:right;margin:3px"
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+            />
+        </div>
+        <area-enterprises ref="enterPrises"></area-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, getEnterpriseCompleteInfoList, getDataStatistics, getSpecialCheckTask } from "@/api/specialCheck"
+import AreaEnterprises from "./areaEnterprises";
+
+export default {
+name: "areaForm",
+    components: {AreaEnterprises},
+    data(){
+        return{
+            recordTotal: 0,
+            pageSize: 10,
+            currentPage: 1,
+            unitType: null,
+            taskId: null,
+            enterpriseType: null,
+            enterpriseCity: '',
+            enterpriseArea: '',
+            listLoading: false,
+            tableKey: 0,
+            checkData: []
+        }
+    },
+    created() {
+        const t = this
+        t.getCheckUnitType()
+        if(t.taskId){t.getAreaStatistics()}
+    },
+    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
+            }else{
+                t.$message({
+                    type:'warning',
+                    message:res.data.message
+                })
+            }
+            t.listLoading = false
+        },
+        async getAreaStatistics(){
+            const t = this
+            const data = {id: t.taskId,enterpriseType: t.enterpriseType,enterpriseCity: t.enterpriseCity,enterpriseArea: t.enterpriseArea,pageIndex: t.currentPage,pageSize: t.pageSize}
+            const res = await getDataStatistics(data)
+            if(res.data.code === "200"){
+                t.checkData = res.data.result.records
+                t.recordTotal = res.data.result.total
+            }else{
+                t.$message({
+                    type:'warning',
+                    message:res.data.message
+                })
+            }
+        },
+
+        handleSizeChange: function (val) {
+            this.pageSize = val
+            this.currentPage = 1
+            this.getAreaStatistics()
+        },
+        handleCurrentChange: function (val) {
+            this.currentPage = val
+            this.getAreaStatistics()
+        },
+
+        toEnterprises(infos){
+            this.$refs.enterPrises.checkList = infos
+            this.$refs.enterPrises.enterpriseType = this.enterpriseType
+            this.$refs.enterPrises.dialogVisible = true
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+    .table{
+        width: 100%;
+        height: 100%;
+    }
+</style>
diff --git a/src/views/specialCheck/components/checkEnterprises.vue b/src/views/specialCheck/components/checkEnterprises.vue
new file mode 100644
index 0000000..6dacddc
--- /dev/null
+++ b/src/views/specialCheck/components/checkEnterprises.vue
@@ -0,0 +1,143 @@
+<template>
+    <el-dialog
+        :visible.sync="dialogVisible"
+        append-to-body
+        :close-on-click-modal="false"
+        width="80%"
+        center
+    >
+        <div class="table_cont">
+
+            <el-table
+                v-loading="listLoading"
+                :key="tableKey"
+                :data="checkList"
+                border
+                fit
+                highlight-current-row
+                style="width: 100%;"
+            >
+
+                <el-table-column type="index" label="序号" align="center" width="80"/>
+                <el-table-column label="被检查企业" prop="enterpriseName" align="center" width="180"></el-table-column>
+                <el-table-column label="检查单位" prop="checkName" align="center"></el-table-column>
+                <el-table-column label="隐患总数" prop="hiddendangerSum" align="center"></el-table-column>
+                <el-table-column label="重大隐患总数" prop="majorHiddendangerNum" align="center"></el-table-column>
+                <el-table-column label="整改数量" prop="completedRectifyHiddendangerSum" width="130" align="center" sortable></el-table-column>
+                <el-table-column label="重大隐患整改数量" prop="completedRectifyMajorHiddendangerNum" align="center"></el-table-column>
+                <el-table-column label="是否外埠检查" align="center">否</el-table-column>
+                <el-table-column label="检查时间" prop="checkTime" align="center"></el-table-column>
+                <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
+                    <template slot-scope="scope">
+                        <el-button type="text" @click="toCheck(scope.row.id)">查看</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+
+            <el-pagination
+                v-show="recordTotal>0"
+                :current-page="pageIndex"
+                :page-sizes="[10, 20, 30, 50]"
+                :page-size="pageSize"
+                :total="recordTotal"
+                layout="total, sizes, prev, pager, next, jumper"
+                background
+                style="float:right;margin:3px"
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+            />
+        </div>
+        <span slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="dialogVisible = false">确认</el-button>
+        </span>
+        <check-details ref="report"></check-details>
+    </el-dialog>
+</template>
+
+<script>
+    import {computePageCount} from "@/utils";
+    import { getSpotCheckRecord } from "@/api/specialCheck";
+    import checkDetails from "../../selfCheck/components/checkDetails"
+
+    export default {
+        name: "checkEnterprises",
+        components: {
+            checkDetails
+        },
+        data(){
+            return{
+                taskId: null,
+                enterpriseType: null,
+                enterpriseCity: '',
+                enterpriseArea: '',
+                listLoading: false,
+                recordTotal: 0,
+                pageSize: 10,
+                pageIndex: 1,
+                tableKey: 0,
+                dialogVisible:false,
+                checkList:[]
+            }
+        },
+        created() {
+            // this.getEnterprises()
+        },
+        watch: {
+        },
+        methods:{
+            handleSizeChange: function (val) {
+                this.pageSize = val
+                this.pageIndex = 1
+                this.getEnterprises()
+            },
+            handleCurrentChange: function (val) {
+                this.pageIndex = val
+                this.getEnterprises()
+            },
+
+            async getEnterprises(){
+                const t = this
+                t.listLoading = true
+                const data = {taskId: t.taskId,enterpriseType:t.enterpriseType,enterpriseCity:t.enterpriseCity,enterpriseArea:t.enterpriseArea,pageIndex:t.pageIndex,pageSize:t.pageSize}
+                let res = await getSpotCheckRecord(data)
+                if(res.data.code === "200"){
+                    t.checkList = res.data.result.records
+                    t.recordTotal = res.data.result.total
+                }else{
+                    t.$message({
+                        type:'warning',
+                        message:res.data.message
+                    })
+                }
+                t.listLoading = false
+            },
+
+            toCheck(id){
+                const t = this
+                t.$refs.report.id = id
+                t.$refs.report.enterpriseType = t.enterpriseType
+                t.$refs.report.getEnterpriseInfo()
+                t.$refs.report.dialogVisible = true
+            }
+        },
+    }
+</script>
+
+<style lang="scss" scoped>
+    .input-with-select .el-select {
+        width: 120px;
+    }
+
+    .el-date-editor.el-input{
+        width: 100%;
+    }
+
+    .el-divider__text{
+        background-color: #fafafa;
+        color: #034EA2;
+    }
+
+    .table_cont{
+        width: 100%;
+    }
+</style>
diff --git a/src/views/specialCheck/components/feedbackDetails.vue b/src/views/specialCheck/components/feedbackDetails.vue
index bd6ee74..ba8cfa2 100644
--- a/src/views/specialCheck/components/feedbackDetails.vue
+++ b/src/views/specialCheck/components/feedbackDetails.vue
@@ -5,10 +5,11 @@
         :close-on-click-modal="false"
         width="75%"
         center
+        @close="resetForm()"
     >
          <div slot="title" class="dialog-title">
             <span></span>
-            <div class="">烟花爆竹批发企业检查情况反馈表</div>
+            <div class="">烟花爆竹{{enterpriseType==1?'批发':'零售'}}企业检查情况反馈表</div>
             <span>
                 <el-button type="primary" @click="openSelfCheck()">查看企业自查表</el-button>
             </span>
@@ -473,6 +474,7 @@
             return{
                 id: null,
                 unitType: null,
+                enterpriseType: null,
                 dialogVisible:false,
                 editDialog: false,
                 activeTab: '1',
@@ -521,6 +523,10 @@
                 }
             }
         },
+        created() {
+            const t = this
+            console.log(t.unitType,t.checkData,'data')
+        },
         watch: {
         },
         methods:{
@@ -530,6 +536,7 @@
             openSelfCheck(){
                 const t = this
                 t.$refs.report.id = t.id
+                t.$refs.report.enterpriseType = t.enterpriseType
                 t.$refs.report.getEnterpriseInfo()
                 t.$refs.report.dialogVisible = true
             },
@@ -759,7 +766,25 @@
                         console.log('error submit!!');
                         return false;
                     }
-                });
+                })
+            },
+            resetForm(){
+                this.feedbackForm = {
+                    id: null,
+                    checkTime: '',
+                    hiddendangerStatus: null,
+                    hiddendangerInfos: [
+                        {
+                            spotCheckHiddendanger: '',
+                            hiddendangerLevel: null
+                        }
+                    ],
+                    amerceStatus: null,
+                    amerceMoney: null,
+                    stopProductionStatus: null,
+                    revokeLicenseStatus: null,
+                    detainLicenseStatus: null
+                }
             },
             resetEdit(){
                 this.editForm = {
diff --git a/src/views/specialCheck/components/reportDetails.vue b/src/views/specialCheck/components/reportDetails.vue
deleted file mode 100644
index ff1f72e..0000000
--- a/src/views/specialCheck/components/reportDetails.vue
+++ /dev/null
@@ -1,243 +0,0 @@
-<template>
-    <el-dialog
-        :visible.sync="dialogVisible"
-        append-to-body
-        :close-on-click-modal="false"
-        width="75%"
-        center
-    >
-         <div slot="title" class="dialog-title">
-            烟花爆竹批发企业自查情况信息报送表
-         </div>
-        <div class="table-tit">
-            <div>企业名称: <span class="m-color">{{corpInfo.name}}</span></div>
-            <div>所属省市县: <span class="m-color">{{corpInfo.location}}</span></div>
-        </div>
-        <div class="corp-list">
-            <table class="corp-table">
-                <th class="m-color b-font">企业基本情况</th>
-                <tr>
-                    <td class="m-color w-33">批发许可证状态</td>
-                    <td class="m-color w-33">库存(万箱)</td>
-                    <td class="m-color w-33">库容(万箱)</td>
-                </tr>
-                <tr>
-                    <td class="w-33">{{corpInfo.isInDate}}</td>
-                    <td class="w-33">{{corpInfo.stock}}</td>
-                    <td class="w-33">{{corpInfo.store}}</td>
-                </tr>
-                <tr class="m-color b-font" style="text-align: center">自查与整改情况</tr>
-                <tr>
-                    <td class="m-color w-5">序号</td>
-                    <td class="m-color w-15">自查隐患问题描述</td>
-                    <td class="m-color w-10">检查时间</td>
-                    <td class="m-color w-10">隐患等级</td>
-                    <td class="m-color w-25">整改措施</td>
-                    <td class="m-color w-10">整改资金(元)</td>
-                    <td class="m-color w-5">责任人</td>
-                    <td class="m-color w-20">隐患状态</td>
-                </tr>
-                <tr v-for="(item,index) in corpInfo.measures" :key="index">
-                    <td class="w-5">{{index}}</td>
-                    <td class="w-15 overText">{{item.desc}}</td>
-                    <td class="w-10">{{item.checkTime}}</td>
-                    <td class="w-10">{{item.level}}</td>
-                    <td class="w-25 overText">{{item.action}}</td>
-                    <td class="w-10">{{item.money}}</td>
-                    <td class="w-5">{{item.name}}</td>
-                    <td class="w-20">{{item.status}}</td>
-                </tr>
-                <tr>
-                    <td class="m-color w-50">隐患问题情况</td>
-                    <td class="m-color w-50">整改情况</td>
-                </tr>
-                <tr>
-                    <td class="m-color w-25">隐患总数</td>
-                    <td class="m-color w-25">重大隐患数量</td>
-                    <td class="m-color w-25">已整改隐患总数</td>
-                    <td class="m-color w-25">已整改重大隐患数量</td>
-                </tr>
-                <tr>
-                    <td class="w-25">{{corpInfo.totalRisks}}</td>
-                    <td class="w-25">{{corpInfo.majorRisk}}</td>
-                    <td class="w-25">{{corpInfo.fixRisks}}</td>
-                    <td class="w-25">{{corpInfo.fixMajorRisk}}</td>
-                </tr>
-            </table>
-            <div class="table-bottom">
-                <div>填报人: <span class="m-color">{{corpInfo.reporter}}</span></div>
-            </div>
-            <div class="table-bottom">
-                <div>填报人联系电话: <span class="m-color">{{corpInfo.reportPhone}}</span></div>
-                <div>填报时间: <span class="m-color">{{corpInfo.reportTime}}</span></div>
-            </div>
-        </div>
-        <span slot="footer" class="dialog-footer">
-          <el-button>情况反馈</el-button>
-          <el-button type="primary" @click="confirmBack()">返回列表</el-button>
-        </span>
-    </el-dialog>
-</template>
-
-<script>
-    import {computePageCount} from "@/utils";
-    import { getEnterpriseInfo } from "@/api/selfCheck";
-    export default {
-        name: "reportDetails",
-        data(){
-            return{
-                dialogVisible:false,
-                id: null,
-                corpInfo:{
-                    enterpriseName: '',
-                    enterpriseProvince: '',
-                    enterpriseCity: '',
-                    enterpriseArea: '',
-                    licenceValidStatus: 0,
-                    stockNum: 0,
-                    store: 0,
-                    hiddendangerInfos: [],
-                    hiddendangerSum: 0,
-                    majorHiddendangerNum: 0,
-                    completedRectifyHiddendangerSum: 0,
-                    completedRectifyMajorHiddendangerNum: 0,
-                    selfcheckReportUserName: '',
-                    selfcheckReportUserMobile: '',
-                    reportModifyTime: ''
-                }
-            }
-        },
-        watch: {
-        },
-        methods:{
-            async getEnterpriseInfo(){
-                const t = this
-                let res = await getEnterpriseInfo({id: t.id})
-                if(res.data.code === "200"){
-                    t.corpInfo = res.data.result
-                }else{
-                    t.$message({
-                        type:'warning',
-                        message:res.data.message
-                    })
-                }
-            },
-
-            confirmBack(){
-                this.dialogVisible = false
-            }
-        },
-    }
-</script>
-
-<style lang="scss" scoped>
-    .input-with-select .el-select {
-        width: 120px;
-    }
-
-    .el-date-editor.el-input{
-        width: 100%;
-    }
-    .dialog-title{
-        font-size: 22px;
-        font-weight: bolder;
-    }
-    .table-tit{
-        display: flex;
-        align-items: center;
-        margin-bottom: 10px;
-        div:first-of-type{
-            margin-right: 100px;
-        }
-    }
-    .corp-list{
-        .corp-table{
-            width: 100%;
-            border-collapse: collapse;
-            border: 1px solid #79bbff;
-            margin: 10px 0;
-            th{
-                padding: 10px 0;
-                border: 1px solid #79bbff;
-                border-bottom: 1px solid #ccc;
-            }
-            tr{
-                width: 100%;
-                height: 44px;
-                line-height: 42px;
-                border-bottom: 1px solid #ccc;
-
-                &:last-of-type{
-                    border-bottom: none;
-                }
-                td{
-                    border-right: 1px solid #ccc;
-                    display: inline-block;
-                    height: 44px;
-                    vertical-align: middle;
-                    text-align: center;
-                    line-height: 42px;
-
-                    &:last-of-type{
-                        border-right: none;
-                    }
-                    ::v-deep.el-textarea{
-                        .el-textarea__inner{
-                            min-height: 40px !important;
-                            background-color:  #ecf5ff;
-                            border: 1px solid #d9ecff;
-                        }
-                    }
-
-                    &.w-5{
-                        width: 5%;
-                    }
-                    &.w-10{
-                        width: 10%;
-                    }
-                    &.w-15{
-                        width: 15%;
-                    }
-                    &.w-20{
-                        width: 20%;
-                    }
-                    &.w-50{
-                        width: 50%;
-                    }
-                    &.w-25{
-                        width: 25%;
-                    }
-                    &.w-75{
-                        width: 75%;
-                    }
-                    &.w-33{
-                        width: 33.33%;
-                    }
-                    &.overText{
-                        overflow: auto;
-                        line-height: 1.5;
-                        text-align: left;
-                        padding: 10px;
-                    }
-                }
-            }
-            .b-font{
-                font-size: 16px;
-                font-weight: bolder;
-            }
-            ::v-deep.mid{
-                .el-input__inner{
-                    text-align: center;
-                    background-color:  #ecf5ff;
-                    border: 1px solid #d9ecff;
-                }
-            }
-        }
-        .table-bottom{
-            display: flex;
-            align-items: center;
-            justify-content: space-between;
-            margin-bottom: 10px;
-        }
-    }
-</style>
diff --git a/src/views/specialCheck/components/sendWork.vue b/src/views/specialCheck/components/sendWork.vue
index 211bb81..a0e471c 100644
--- a/src/views/specialCheck/components/sendWork.vue
+++ b/src/views/specialCheck/components/sendWork.vue
@@ -6,8 +6,9 @@
         :close-on-click-modal="false"
         width="60%"
         center
+        @close="resetForm('workForm')"
     >
-        <el-form :model="workForm" :rules="rules" ref="ruleForm" label-width="80px">
+        <el-form :model="workForm" :rules="rules" ref="workForm" label-width="80px">
             <el-form-item label="专项检查任务名称:" label-width="180px" prop="taskName">
                 <el-input type="textarea" v-model="workForm.taskName"></el-input>
             </el-form-item>
@@ -162,8 +163,8 @@
             </el-form-item>
         </el-form>
         <span slot="footer" class="dialog-footer">
-          <el-button @click="resetForm('ruleForm')">重置</el-button>
-          <el-button type="primary" @click="confirmSend('ruleForm')">确认下发</el-button>
+          <el-button @click="resetForm('workForm')">重置</el-button>
+          <el-button type="primary" @click="confirmSend('workForm')">确认下发</el-button>
         </span>
     </el-dialog>
 </template>
@@ -217,22 +218,34 @@
         methods:{
             confirmSend(formName){
                 const t = this
-                t.$refs[formName].validate(async (valid) => {
+                console.log(t.workForm,'66666666666')
+                t.$refs[formName].validate((valid) => {
                     if (valid) {
-                        let res = await sendCheckTask(t.workForm)
-                        if(res.data.code === "200"){
-                            t.$message({
-                                type:'success',
-                                message:res.data.message
-                            })
-                        }else{
-                            t.$message({
-                                type:'warning',
-                                message:res.data.message
-                            })
-                        }
-                        t.dialogVisible = false
-                        t.resetForm(formName)
+                        this.$confirm('此操作将把任务下发给所有单位, 是否继续?', '提示', {
+                            confirmButtonText: '确定',
+                            cancelButtonText: '取消',
+                            type: 'warning'
+                        }).then(async () => {
+                            let res = await sendCheckTask(t.workForm)
+                            if(res.data.code === "200"){
+                                t.$message({
+                                    type:'success',
+                                    message: '任务下发成功'
+                                })
+                            }else{
+                                t.$message({
+                                    type:'warning',
+                                    message:res.data.message
+                                })
+                            }
+                            t.dialogVisible = false
+                            t.$parent.getSpecialCheckTask();
+                        }).catch(() => {
+                            this.$message({
+                                type: 'info',
+                                message: '已取消下发'
+                            });
+                        });
                     } else {
                         return false;
                     }
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;
         }
diff --git a/src/views/specialCheck/components/wholesaleForm.vue b/src/views/specialCheck/components/wholesaleForm.vue
index be125b7..150749c 100644
--- a/src/views/specialCheck/components/wholesaleForm.vue
+++ b/src/views/specialCheck/components/wholesaleForm.vue
@@ -2,8 +2,8 @@
     <div class="table">
         <div class="filter-container">
             <div class="table-tit">
-                <h2 v-show="enterpriseType == 1">2023年上半年烟花爆竹生产经营安全检查(批发)</h2>
-                <h2 v-show="enterpriseType == 2">2023年上半年烟花爆竹生产经营安全检查(零售)</h2>
+                <h2 v-show="enterpriseType == 1">{{taskName}}(批发)</h2>
+                <h2 v-show="enterpriseType == 2">{{taskName}}(零售)</h2>
                 <span>(检查一家反馈一家,没有检查出隐患问题的也要登记反馈)</span>
             </div>
             <div class="control-bar">
@@ -129,6 +129,7 @@
             currentPage: 1,
             unitType: null,
             taskId: null,
+            taskName: '',
             enterpriseType: null,
             selfcheckStatus: null,
             thislevelCheckStatus: null,
@@ -156,11 +157,7 @@
     created() {
         const t = this
         t.getCheckUnitType()
-        if(t.taskId && t.enterpriseType){
-            t.getEnterpriseCompleteInfoList()
-        }else{
-            t.getCheckTask()
-        }
+        t.getCheckTask()
     },
     computed: {
         ...mapGetters([
@@ -188,6 +185,7 @@
             const res = await getSpecialCheckTask()
             if(res.data.code === "200"){
                 t.taskId = res.data.result.specialCheckTaskSimplifyInfos[0].id
+                t.taskName = res.data.result.specialCheckTaskSimplifyInfos[0].taskName
                 t.enterpriseType = 1
                 t.getEnterpriseCompleteInfoList()
             }else{
@@ -273,6 +271,7 @@
             const t = this
             t.$refs.report.id = row.id
             t.$refs.report.getEnterpriseInfo()
+            t.$refs.report.enterpriseType = t.enterpriseType
             t.$refs.report.dialogVisible = true
         },
 
@@ -283,7 +282,9 @@
             t.$refs.feedback.feedbackForm.id = row.id
             t.$refs.feedback.getSpotCheckReportInfo()
             t.$refs.feedback.unitType = t.unitType
+            t.$refs.feedback.enterpriseType = t.enterpriseType
             t.$refs.feedback.dialogVisible = true
+            t.$refs.feedback.getSpotCheckReportInfo()
         }
     }
 }
diff --git a/src/views/specialCheck/index.vue b/src/views/specialCheck/index.vue
index 135ca32..4d88493 100644
--- a/src/views/specialCheck/index.vue
+++ b/src/views/specialCheck/index.vue
@@ -3,27 +3,21 @@
         <div class="menu-area">
             <el-button v-if="unitType==1" class="add-btn" type="primary" icon="el-icon-plus" @click="sendJob()">新任务下发</el-button>
             <el-menu
-                default-active="1"
+                default-active="0-1"
                 class="el-menu-vertical-demo"
-                background-color="#eeeeee"
+                background-color="#eee"
                 text-color="#333"
                 unique-opened
                 active-text-color="#034EA2"
                 @select="menuSelect">
-                <el-submenu v-for="(item,i) in taskMenu" :key="i" :index="item.id + ''">
+                <el-submenu v-for="(item,i) in taskMenu" :key="i" :index="item.id + '-' + item.taskName">
                     <template slot="title">
                         <i class="el-icon-s-order"></i>
                         <span>{{item.taskName}}</span>
                     </template>
-                    <el-menu-item index="1">
-                        <span slot="title">安全检查反馈情况(批发)</span>
-                    </el-menu-item>
-                    <el-menu-item index="2">
-                        <span slot="title">安全检查反馈情况(零售)</span>
-                    </el-menu-item>
-                    <el-menu-item index="3" v-if="unitType==1||unitType==2">
-                        <span slot="title">安全检查情况汇总</span>
-                    </el-menu-item>
+                    <el-menu-item :index="i + '-' + 1">安全检查反馈情况(批发)</el-menu-item>
+                    <el-menu-item :index="i + '-' + 2">安全检查反馈情况(零售)</el-menu-item>
+                    <el-menu-item :index="i + '-' + 3" v-if="unitType==1||unitType==2">安全检查情况汇总</el-menu-item>
                 </el-submenu>
             </el-menu>
         </div>
@@ -56,9 +50,10 @@
         data() {
             return {
                 curTab: 1,
-                unitType: 1,
+                unitType: null,
                 taskMenu: [],
-                taskId: null
+                taskId: null,
+                openeds:[]
             }
         },
         created() {
@@ -96,9 +91,11 @@
                 const res = await getSpecialCheckTask()
                 if(res.data.code === "200"){
                     t.taskMenu = res.data.result.specialCheckTaskSimplifyInfos
-                    t.$refs.wholesale.taskId = t.taskMenu[0].id
-                    t.$refs.wholesale.enterpriseType = 1
-                    t.$refs.wholesale.getEnterpriseCompleteInfoList()
+                    t.openeds[0] = t.taskMenu[0].id + '-' + t.taskMenu[0].taskName
+                    t.openeds[1] = '1'
+                    console.log(t.openeds,'openeds')
+                    // t.$refs.wholesale.enterpriseType = t.unitType
+                    // t.$refs.wholesale.getEnterpriseCompleteInfoList()
                 }else{
                     t.$message({
                         type:'warning',
@@ -109,16 +106,20 @@
 
             menuSelect(key, keyPath) {
                 const t = this
-                console.log(key, keyPath,'切换')
-                if(key == 1 || key == 2){
-                    t.$refs.wholesale.taskId = Number(keyPath[0])
-                    t.$refs.wholesale.enterpriseType = Number(key)
+                if(key.split('-')[1] == '1' || key.split('-')[1] == '2'){
+                    t.$refs.wholesale.taskId = Number(keyPath[0].split('-')[0])
+                    t.$refs.wholesale.taskName = keyPath[0].split('-')[1]
+                    t.$refs.wholesale.enterpriseType = Number(key.split('-')[1])
                     t.$refs.wholesale.getEnterpriseCompleteInfoList()
                 }else{
-                    t.$refs.sumSheet.taskId = Number(keyPath[0])
+                    t.$refs.sumSheet.taskId = Number(keyPath[0].split('-')[0])
+                    t.$refs.sumSheet.taskName = keyPath[0].split('-')[1]
+                    t.$refs.sumSheet.enterpriseCity = ''
+                    t.$refs.sumSheet.enterpriseArea = ''
+                    t.$refs.sumSheet.sheetStatus = t.unitType
                     t.$refs.sumSheet.getDataStatistics()
                 }
-                t.curTab = key
+                t.curTab = Number(key.split('-')[1])
             },
 
             sendJob(){
@@ -137,6 +138,14 @@
 
         .menu-area{
             width: 18%;
+
+            .el-menu{
+                height: 80vh;
+                overflow: hidden;
+                overflow-y: scroll;
+                &::-webkit-scrollbar { width: 0; height: 0; color: transparent }
+                &::scrollbar { width: 0; height: 0; color: transparent }
+            }
             .add-btn{
                 width: 100%;
                 margin-bottom: 20px;
diff --git a/src/views/usermng/user.vue b/src/views/usermng/user.vue
index 8250c78..db971f7 100644
--- a/src/views/usermng/user.vue
+++ b/src/views/usermng/user.vue
@@ -114,28 +114,28 @@
                   </el-option>
               </el-select>
           </div>
-          <div class="basic_search">
-              <el-select v-model="queryForm.town" clearable filterable @change="changeArea('town')" >
-                  <el-option
-                      v-for="item in streetList"
-                      :key="item.id"
-                      :label="item.name"
-                      :value="item.name"
-                  >
-                  </el-option>
-              </el-select>
-          </div>
-          <div class="basic_search">
-              <el-select v-model="queryForm.community" clearable filterable>
-                  <el-option
-                      v-for="item in committeeList"
-                      :key="item.id"
-                      :label="item.name"
-                      :value="item.name"
-                  >
-                  </el-option>
-              </el-select>
-          </div>
+<!--          <div class="basic_search">-->
+<!--              <el-select v-model="queryForm.town" clearable filterable @change="changeArea('town')" >-->
+<!--                  <el-option-->
+<!--                      v-for="item in streetList"-->
+<!--                      :key="item.id"-->
+<!--                      :label="item.name"-->
+<!--                      :value="item.name"-->
+<!--                  >-->
+<!--                  </el-option>-->
+<!--              </el-select>-->
+<!--          </div>-->
+<!--          <div class="basic_search">-->
+<!--              <el-select v-model="queryForm.community" clearable filterable>-->
+<!--                  <el-option-->
+<!--                      v-for="item in committeeList"-->
+<!--                      :key="item.id"-->
+<!--                      :label="item.name"-->
+<!--                      :value="item.name"-->
+<!--                  >-->
+<!--                  </el-option>-->
+<!--              </el-select>-->
+<!--          </div>-->
       </div>
     <div class="table_content">
       <el-table
@@ -159,6 +159,11 @@
             <span>{{ scope.row.company }}</span>
           </template>
         </el-table-column>
+          <el-table-column label="级别" prop="unittype" align="center" width="150" sortable="custom">
+              <template slot-scope="scope">
+                  <span>{{ scope.row.unittype == 1? '省级':(scope.row.unittype == 2 ? '市、州级' : '区、县级') }}</span>
+              </template>
+          </el-table-column>
         <el-table-column label="办公电话" prop="phone" align="center" sortable="custom">
         <template slot-scope="scope">
           <span>{{ scope.row.phone }}</span>
@@ -201,7 +206,7 @@
         </el-table-column>
         <el-table-column label="管辖地区" prop="province" align="center" width="300" sortable="custom">
           <template slot-scope="scope">
-            <span>{{ scope.row.province+'-'+scope.row.city+'-'+scope.row.area+'-'+scope.row.town+'-'+scope.row.community | parseGX}}</span>
+            <span>{{ scope.row.province+'-'+scope.row.city+'-'+scope.row.area | parseGX}}</span>
           </template>
         </el-table-column>
         <el-table-column label="更新时间" prop="lastmodifieddate" align="center" sortable="custom">
@@ -209,7 +214,7 @@
             <span>{{ scope.row.lastmodifieddate | parseTime('{y}-{m}-{d}') }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
+        <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width" fixed="right">
           <template slot-scope="scope">
             <el-button type="text" @click="showEditHandle(scope.row)">编辑</el-button>
             <el-button  v-show="userType != 3" :disabled="disableRole(scope.row)" type="text" align="center" @click="showAssignRole(scope.row)">分配角色</el-button>
@@ -232,7 +237,7 @@
       />
     </div>
     <el-dialog :title="dialogStatus==='create'?'新增':'编辑'" :visible.sync="dialogFormVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="700px">
-      <el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="100px" style="margin-left:50px;width:500px;" element-loading-text="保存中...">
+      <el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="120px" style="margin-left:50px;width:500px;" element-loading-text="保存中...">
         <el-form-item label="用户名:" prop="username">
           <el-input v-model.trim="dataForm.username"/>
         </el-form-item>
@@ -281,7 +286,17 @@
           <el-form-item label="统一社会信用代码:" prop="job">
               <el-input v-model.trim="dataForm.code"/>
           </el-form-item>
-        <el-form-item label="管辖地区:">
+          <el-form-item label="选择监管级别:" prop="unittype">
+              <el-select v-model="dataForm.unittype" filterable placeholder="请选择级别">
+                  <el-option
+                      v-for="item in unitTypeList"
+                      :key="item.name"
+                      :label="item.name"
+                      :value="item.value">
+                  </el-option>
+              </el-select>
+          </el-form-item>
+        <el-form-item label="管辖省份:" prop="province">
           <el-select v-model="dataForm.province" filterable placeholder="请选择省份" @change="resetCity">
             <el-option
               v-for="item in provinceList"
@@ -290,7 +305,9 @@
               :value="item.name">
             </el-option>
           </el-select>
-          <el-select v-model="dataForm.city"  placeholder="请选择城市" @change="resetArea">
+        </el-form-item>
+          <el-form-item label="管辖市州:" v-if="dataForm.unittype == 2 || dataForm.unittype == 3" prop="city">
+          <el-select v-model="dataForm.city" placeholder="请选择城市" @change="resetArea">
             <el-option
               v-for="item in cityList"
               :key="item.name"
@@ -299,7 +316,9 @@
               >
             </el-option>
           </el-select>
-          <el-select v-model="dataForm.area"  placeholder="请选择区县" @change="resetTown">
+          </el-form-item>
+          <el-form-item label="管辖区县:" v-if="dataForm.unittype == 3" prop="area">
+          <el-select v-model="dataForm.area" placeholder="请选择区县" @change="resetTown">
             <el-option
               v-for="item in areaList"
               :key="item.name"
@@ -308,25 +327,25 @@
               >
             </el-option>
           </el-select>
-          <el-select v-model="dataForm.town"  placeholder="请选择街道" @change="resetCommunity">
-            <el-option
-              v-for="item in townList"
-              :key="item.name"
-              :label="item.name"
-              :value="item.name"
-             >
-            </el-option>
-          </el-select>
-          <el-select v-model="dataForm.community"  placeholder="请选择社区">
-            <el-option
-              v-for="item in communityList"
-              :key="item.name"
-              :label="item.name"
-              :value="item.name"
-              >
-            </el-option>
-          </el-select>
-        </el-form-item>
+          </el-form-item>
+<!--          <el-select v-model="dataForm.town"  placeholder="请选择街道" @change="resetCommunity">-->
+<!--            <el-option-->
+<!--              v-for="item in townList"-->
+<!--              :key="item.name"-->
+<!--              :label="item.name"-->
+<!--              :value="item.name"-->
+<!--             >-->
+<!--            </el-option>-->
+<!--          </el-select>-->
+<!--          <el-select v-model="dataForm.community"  placeholder="请选择社区">-->
+<!--            <el-option-->
+<!--              v-for="item in communityList"-->
+<!--              :key="item.name"-->
+<!--              :label="item.name"-->
+<!--              :value="item.name"-->
+<!--              >-->
+<!--            </el-option>-->
+<!--          </el-select>-->
         <el-form-item label="用户类型:" prop="type">
           <el-select v-model.trim="dataForm.type" placeholder="请选择用户类型" auto-complete="on" style="width:100%;">
             <el-option v-show="userType != 3" :value="2" label="管理员"/>
@@ -452,19 +471,13 @@
       for (let i = 0; i < arr.length; i++){
         if (arr[i] == null || arr[i] == '' || arr[i] == 'null'){
           if (i == 0){
-            guanxia = '全部省份';
+            guanxia = '';
           }
           if (i == 1){
-            guanxia += '-全部城市';
+            guanxia += '';
           }
           if (i == 2){
-            guanxia += '-全部区县';
-          }
-          if (i == 3){
-            guanxia += '-全部街道';
-          }
-          if (i == 4){
-            guanxia += '-全部居委会';
+            guanxia += '';
           }
         }else {
           if (i == 0){
@@ -507,6 +520,7 @@
       currentPage: 1,
       pageTotal: 0,
       tableKey: 0,
+      unittype: null,
       userData: null,
       listLoading: true,
       queryForm: {
@@ -516,9 +530,7 @@
           job:'',
           province:'',
           city:'',
-          area:'',
-          town:'',
-          community:'',
+          area:''
       },
       dataForm: {
         id: '',
@@ -532,11 +544,10 @@
         province: '',
         city: '',
         area: '',
-        town: '',
-        community: '',
         type:'',
         job:'',
         code:'',
+        unittype: null
       },
       importDialogFormVisible: false,
       importDialogFormVisible2: false,
@@ -550,8 +561,26 @@
         email: [{ validator: validateEmail, trigger: 'blur' }],
         password: [{ required: true, message: '密码不能为空', trigger: 'blur' }],
         confirmPassword: [{ required: true, message: '确认密码不能为空', trigger: 'blur' }],
-        type: [{ required: true, message: '用户类型不能为空', trigger: 'blur' }]
+        type: [{ required: true, message: '用户类型不能为空', trigger: 'blur' }],
+        unittype: [{ required: true, message: '监管级别不能为空', trigger: 'blur' }],
+        province: [{ required: true, message: '请选择管辖范围', trigger: 'blur' }],
+        city: [{ required: true, message: '请选择管辖范围', trigger: 'blur' }],
+        area: [{ required: true, message: '请选择管辖范围', trigger: 'blur' }]
       },
+        unitTypeList:[
+            {
+                name: '省级',
+                value: 1
+            },
+            {
+                name: '市、州级',
+                value: 2
+            },
+            {
+                name: '区、县级',
+                value: 3
+            }
+        ],
       provinceList:[],
       cityList:[],
       areaList:[],
@@ -577,7 +606,6 @@
     }
   },
   created() {
-      console.log(this.userType)
     this.getUserList()
     this.getProvince()
   },
@@ -634,6 +662,13 @@
             parseError({ error: '密码输入不一致', vm: _this })
             return
           }
+          if(_this.dataForm.unittype == 1){
+              _this.dataForm.city = ''
+              _this.dataForm.area = ''
+          }
+            if(_this.dataForm.unittype == 2){
+                _this.dataForm.area = ''
+            }
           const userName = Cookies.get('userName')
           _this.dataForm['operator'] = userName
           createUser(_this.dataForm).then(response => {
@@ -701,9 +736,8 @@
         province: '',
         city: '',
         area: '',
-        town: '',
-        community: '',
         type: '',
+        unittype: null,
         job: ''
       }
       this.cityList = []
@@ -729,6 +763,13 @@
               return
             }
           }
+            if(_this.dataForm.unittype == 1){
+                _this.dataForm.city = ''
+                _this.dataForm.area = ''
+            }
+            if(_this.dataForm.unittype == 2){
+                _this.dataForm.area = ''
+            }
           const userName = Cookies.get('userName')
           _this.dataForm['lastmodifiedby'] = userName
           updateUser(_this.dataForm).then(response => {
@@ -817,10 +858,9 @@
       this.dataForm.province = row.province
       this.dataForm.city = row.city
       this.dataForm.area = row.area
-      this.dataForm.town = row.town
-      this.dataForm.community = row.community
       this.dataForm.job = row.job
       this.dataForm.type = row.type
+      this.dataForm.unittype = row.unittype
       this.dialogFormVisible = true
       this.$nextTick(() => {
         this.$refs['dataForm'].clearValidate()
@@ -830,16 +870,12 @@
       params['province'] = row.province
       params['city'] = row.city
       params['area'] = row.area
-      params['town'] = row.town
-      params['community'] = row.community
       getDistrictByName(params).then(response => {
         const res = response.data
         if (res.code == 200){
           this.provinceList = res.result.provinceList;
           this.cityList = res.result.cityList;
           this.areaList = res.result.areaList;
-          this.townList = res.result.townList;
-          this.communityList = res.result.communityList;
         } else {
           parseError({ error: res.message, vm: _this })
         }

--
Gitblit v1.9.2