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