1 files deleted
8 files modified
6 files added
| New file |
| | |
| | | import request from '@/utils/request' |
| | | import { getToken } from '@/utils/auth' |
| | | |
| | | // 查询未完成专项任务 |
| | | export function getUnDoneCheckTask(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/checkTask/select/selectUnDoneCheckTaskByPage', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 上报自查情况 |
| | | export function saveSelfCheckReport(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/enterpriseTaskReport/insert/saveSelfCheckReport', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 根据上传任务id查询任务基础信息 |
| | | export function getSelfBaseInfo(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/enterpriseTaskReport/select/getSelfCheckReportBaseInfo', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 根据上传任务id查询关联的隐患基本信息 |
| | | export function getSelfRectifyInfo(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/enterpriseTaskReport/select/getSelfCheckRectifyBaseInfo', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 根据隐患id反馈隐患报告 |
| | | export function saveSelfRectifyInfo(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/enterpriseTaskReport/insert/saveSelfCheckRectifyReport', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 根据记录上传id查询所有的报送信息 |
| | | export function getEnterpriseInfo(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/enterpriseTaskReport/select/getEnterpriseSubmitInfo', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 获取所有被监管机构抽查记录 |
| | | export function getSpotCheckTask(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/enterpriseTaskReport/select/listCompletedSpotCheckTaskByPage', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 根据抽查记录和监管层级查询抽查报告 |
| | | export function getSpotCheckRecorder(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/enterpriseTaskReport/select/getSpotCheckRecorderByUnitType', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 根据监管机构的抽查记录进行整改反馈 |
| | | export function updateSpotCheckRectifyInfo(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/enterpriseTaskReport/update/updateSpotCheckRectifyInfo', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| New file |
| | |
| | | import request from '@/utils/request' |
| | | import { getToken } from '@/utils/auth' |
| | | |
| | | // 监管机构所属层级 |
| | | export function getCheckUnitType(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/checkUnit/select/getCheckUnitType', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 查询需要执行的专项任务 |
| | | export function getSpecialCheckTask(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/checkTask/select/listSpecialCheckTask', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 监管机构下发任务(省级) |
| | | export function sendCheckTask(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/checkTask/insert/saveCheckTask', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 查询所辖企业专项任务完成情况 |
| | | export function getEnterpriseCompleteInfoList(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/checkTask/select/listEnterpriseCompletionInfo', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 抽查企业自查记录并反馈 |
| | | export function saveSpotCheckReport(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/taskSpotCheck/insert/saveSpotCheckReport', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 查询所有层级的抽查报告 |
| | | export function getSpotCheckReportInfo(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/taskSpotCheck/select/getSpotCheckReportInfo', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 对抽查报告进行修改 |
| | | export function updateSpotCheckReport(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/taskSpotCheck/update/updateSpotCheckReport', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 数据统计接口 |
| | | export function getDataStatistics(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/checkDataStatistics/select/getDataStatistics', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| New file |
| | |
| | | <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.enterpriseName}}</span></div> |
| | | <div>所属省市县: <span class="m-color">{{corpInfo.enterpriseProvince + corpInfo.enterpriseCity + corpInfo.enterpriseArea}}</span></div> |
| | | </div> |
| | | <div class="corp-list" v-if="corpInfo.selfcheckStatus==1"> |
| | | <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.licenceValidStatus==0 ? '有效期内' : '失效'}}</td> |
| | | <td class="w-33">{{corpInfo.stockNum}}</td> |
| | | <td class="w-33">{{corpInfo.storageCapacity}}</td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="text-align: center" v-if="corpInfo.hiddendangerStatus == 1">自查与整改情况</tr> |
| | | <tr v-if="corpInfo.hiddendangerStatus == 1"> |
| | | <td class="m-color w-5">序号</td> |
| | | <td class="m-color w-15">自查隐患问题描述</td> |
| | | <td class="m-color w-12">检查时间</td> |
| | | <td class="m-color w-10">隐患等级</td> |
| | | <td class="m-color w-23">整改措施</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.hiddendangerInfos" :key="index" v-if="corpInfo.hiddendangerStatus == 1"> |
| | | <td class="w-5">{{index}}</td> |
| | | <td class="w-15 overText">{{item.hiddendangerRemark}}</td> |
| | | <td class="w-12 overText">{{item.checkTime}}</td> |
| | | <td class="w-10">{{item.hiddendangerLevel == 1 ? '一般隐患' : '重大隐患'}}</td> |
| | | <td class="w-23 overText">{{item.rectifyMeasure}}</td> |
| | | <td class="w-10">{{item.rectifyPrice}}</td> |
| | | <td class="w-5 overText">{{item.chargePerson}}</td> |
| | | <td class="w-20 overText">{{item.rectifyStatus == 0 ? '整改完成期限:' + item.rectifyDeadlineTime : item.completeRectifyTime + '整改完成'}}</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.hiddendangerSum?corpInfo.hiddendangerSum:0}}</td> |
| | | <td class="w-25">{{corpInfo.majorHiddendangerNum?corpInfo.majorHiddendangerNum:0}}</td> |
| | | <td class="w-25">{{corpInfo.completedRectifyHiddendangerSum?corpInfo.completedRectifyHiddendangerSum:0}}</td> |
| | | <td class="w-25">{{corpInfo.completedRectifyMajorHiddendangerNum?corpInfo.completedRectifyMajorHiddendangerNum:0}}</td> |
| | | </tr> |
| | | </table> |
| | | <div class="table-bottom"> |
| | | <div v-if="corpInfo.selfcheckReportUserName">填报人: <span class="m-color">{{corpInfo.selfcheckReportUserName}}</span></div> |
| | | </div> |
| | | <div class="table-bottom"> |
| | | <div v-if="corpInfo.selfcheckReportUserMobile">填报人联系电话: <span class="m-color">{{corpInfo.selfcheckReportUserMobile}}</span></div> |
| | | <div v-if="corpInfo.reportModifyTime">填报时间: <span class="m-color">{{corpInfo.reportModifyTime}}</span></div> |
| | | </div> |
| | | </div> |
| | | <div v-else style="font-size: 18px;margin-top: 20px;color: #034EA2;font-weight: bolder"> |
| | | 该企业未上报自查信息 |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <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 |
| | | console.log(t.corpInfo,'t.corpInfo') |
| | | }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-12{ |
| | | width: 12%; |
| | | } |
| | | &.w-15{ |
| | | width: 15%; |
| | | } |
| | | &.w-20{ |
| | | width: 20%; |
| | | } |
| | | &.w-23{ |
| | | width: 23%; |
| | | } |
| | | &.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> |
| | |
| | | > |
| | | |
| | | <el-table-column type="index" label="序号" align="center" width="80"/> |
| | | |
| | | <el-table-column label="检查出的隐患问题" prop="info" align="center" width="180"> |
| | | <el-table-column label="检查出的隐患问题" prop="hiddendangerRemark" align="center" width="180"></el-table-column> |
| | | <el-table-column label="检查时间" prop="checkTime" align="center"></el-table-column> |
| | | <el-table-column label="最后整改期限" prop="rectifyDeadlineTime" align="center"></el-table-column> |
| | | <el-table-column label="整改资金(元)" prop="rectifyPrice" align="center"></el-table-column> |
| | | <el-table-column label="整改措施" prop="rectifyMeasure" width="130" align="center" sortable></el-table-column> |
| | | <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.info }}</span> |
| | | <span>{{ scope.row.rectifyStatus ==0?'未整改':'已整改' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="检查时间" prop="checkTime" align="center"> |
| | | <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.checkTime}}</span> |
| | | <span>{{ scope.row.hiddendangerLevel==1 ? '一般隐患' : '重大隐患' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="最后整改期限" prop="deadline" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.deadline }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="整改资金(元)" prop="money" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.money }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="整改措施" prop="action" width="130" align="center" sortable> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.action }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="负责人" prop="principal" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.principal }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="整改状态" prop="fixStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.fixStatus ==0?'未整改':'已整改' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="完成整改时间" prop="finishTime" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.finishTime }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="隐患等级" prop="level" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.level==0 ? '一般隐患' : '重大隐患' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-if="scope.row.fixStatus==0" type="text" @click="toFix(scope.row)">整改填报</el-button> |
| | | <el-button v-if="scope.row.rectifyStatus==0" type="text" @click="toFix(scope.row)">整改填报</el-button> |
| | | <el-button v-else type="text">--</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | |
| | | <el-form-item label="当前完成整改日期:"> |
| | | <el-date-picker |
| | | v-model="fixForm.finishDate" |
| | | v-model="fixForm.completeRectifyTime" |
| | | type="date" |
| | | placeholder="请选择整改日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="整改资金:"> |
| | | <el-input v-model="fixForm.money"></el-input> |
| | | <el-input v-model="fixForm.rectifyPrice"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="整改措施:"> |
| | | <el-input type="textarea" autosize v-model="fixForm.actions"></el-input> |
| | | <el-input type="textarea" autosize v-model="fixForm.rectifyMeasure"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="负责人:"> |
| | | <el-input v-model="fixForm.name"></el-input> |
| | | <el-input v-model="fixForm.chargePerson"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | |
| | | <script> |
| | | import {computePageCount} from "@/utils"; |
| | | import { getSelfRectifyInfo, saveSelfRectifyInfo } from "@/api/selfCheck"; |
| | | |
| | | export default { |
| | | name: "repair", |
| | | data(){ |
| | | return{ |
| | | id: null, |
| | | listLoading: false, |
| | | dialogFix: false, |
| | | recordTotal: 0, |
| | |
| | | currentPage: 1, |
| | | tableKey: 0, |
| | | dialogVisible:false, |
| | | checkList:[ |
| | | { |
| | | info: '虫吃鼠咬', |
| | | checkTime: '2022-10-31', |
| | | deadline: '2022-11-01', |
| | | money: '30', |
| | | action: '补充灭虫药', |
| | | principal: '叼毛', |
| | | fixStatus: 1, |
| | | finishTime: '2022-11-01', |
| | | level: 1 |
| | | }, |
| | | { |
| | | info: '虫吃鼠咬', |
| | | checkTime: '2022-10-31', |
| | | deadline: '2022-11-01', |
| | | money: '3000', |
| | | action: '补充灭虫药', |
| | | principal: '叼毛', |
| | | fixStatus: 0, |
| | | finishTime: '2022-11-01', |
| | | level: 0 |
| | | } |
| | | ], |
| | | checkList:[], |
| | | fixForm:{ |
| | | id: null, |
| | | enterpriseSubmitId: null, |
| | | info: '', |
| | | finishDate: '', |
| | | money: '', |
| | | actions: '', |
| | | name: '' |
| | | completeRectifyTime: '', |
| | | rectifyPrice: 0, |
| | | rectifyMeasure: '', |
| | | chargePerson: '' |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getSelfRectifyInfo() |
| | | }, |
| | | watch: { |
| | | }, |
| | |
| | | // this.getDataList() |
| | | }, |
| | | |
| | | async getSelfRectifyInfo(){ |
| | | const t = this |
| | | t.listLoading = true |
| | | let res = await getSelfRectifyInfo(t.id) |
| | | if(res.data.code === "200"){ |
| | | t.checkList = res.data.result.hiddendangerBaseInfos |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | t.listLoading = false |
| | | }, |
| | | |
| | | confirm(){ |
| | | this.dialogVisible = false |
| | | }, |
| | | |
| | | confirmFix(){ |
| | | this.dialogFix = false |
| | | toFix(row){ |
| | | const t= this |
| | | t.fixForm.info = row.hiddendangerRemark |
| | | t.fixForm.id = row.id |
| | | t.dialogFix = true |
| | | }, |
| | | |
| | | toFix(){ |
| | | this.dialogFix = true |
| | | async confirmFix(){ |
| | | 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.listLoading = false |
| | | t.dialogFix = false |
| | | } |
| | | }, |
| | | } |
| | |
| | | > |
| | | <div class="company-info"> |
| | | <div>企业基本信息</div> |
| | | <div><span>企业名称:</span><span>XXXXXXXXXX有限公司</span></div> |
| | | <div><span>许可证:</span><span>在有效期(有效期至:XXXXX)</span></div> |
| | | <div><span>库存:</span><span>100(万箱)</span></div> |
| | | <div><span>企业名称:</span><span>{{enterpriseName}}</span></div> |
| | | <div> |
| | | <span>许可证:</span> |
| | | <span v-if="licenceValidStatus == 0">在有效期(有效期至:{{licenceValidDeadline}})</span> |
| | | <span v-else>已过期</span> |
| | | </div> |
| | | <div><span>库存:</span><span>{{stockNum}}</span></div> |
| | | <div><span>库容:</span> |
| | | <span> |
| | | <el-input placeholder="请输入库容量" v-model="checkForm.store"></el-input> |
| | | <el-input placeholder="请输入库容量" v-model="checkForm.storageCapacity"></el-input> |
| | | </span> |
| | | </div> |
| | | </div> |
| | |
| | | <div>自查自改填报</div> |
| | | <div> |
| | | <span>自查是否有隐患:</span> |
| | | <el-radio-group v-model="checkForm.isRisky"> |
| | | <el-radio-group v-model="checkForm.hiddendangerStatus"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="2">否</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <div class="risk-list" v-if="checkForm.isRisky==1"> |
| | | <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.riskList"> |
| | | <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.info"></el-input></td> |
| | | <td class="date"><el-date-picker v-model="item.time" type="datetime" placeholder="选择检查时间"></el-date-picker></td> |
| | | <td class="deadline"><el-date-picker v-model="item.deadline" type="datetime" placeholder="选择整改期限"></el-date-picker></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.level"> |
| | | <el-radio-group v-model="item.hiddendangerLevel"> |
| | | <el-radio :label="1">一般隐患</el-radio> |
| | | <el-radio :label="2">重大隐患</el-radio> |
| | | </el-radio-group> |
| | |
| | | <div style="display: flex;align-items: center;margin-top: 20px"> |
| | | <span>填报人:</span> |
| | | <span style="margin-right: 40px"> |
| | | <el-input v-model="checkForm.reporter"></el-input> |
| | | <el-input v-model="checkForm.selfcheckReportUserName"></el-input> |
| | | </span> |
| | | <span>电话号码:</span> |
| | | <span> |
| | | <el-input v-model="checkForm.reportPhone"></el-input> |
| | | <el-input v-model="checkForm.selfcheckReportUserMobile"></el-input> |
| | | </span> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | |
| | | <script> |
| | | import {computePageCount} from "@/utils"; |
| | | |
| | | import { saveSelfCheckReport, getSelfBaseInfo } from '@/api/selfCheck' |
| | | export default { |
| | | name: "selfReport", |
| | | data(){ |
| | | return{ |
| | | dialogVisible:false, |
| | | dialogVisible: false, |
| | | id: null, |
| | | enterpriseName: '', |
| | | licenceValidStatus: 0, |
| | | licenceValidDeadline: '', |
| | | stockNum: 0, |
| | | checkForm:{ |
| | | store: '', |
| | | isRisky: 2, |
| | | riskList: [ |
| | | storageCapacity: 0, |
| | | hiddendangerStatus: 0, |
| | | submitHiddendangers: [ |
| | | { |
| | | info: '', |
| | | time: '', |
| | | deadline: '', |
| | | level: '' |
| | | id: null, |
| | | hiddendangerRemark: '', |
| | | checkTime: '', |
| | | rectifyDeadlineTime: '', |
| | | hiddendangerLevel: 1 |
| | | } |
| | | ], |
| | | reporter: '', |
| | | reportPhone: '' |
| | | selfcheckReportUserName: '', |
| | | selfcheckReportUserMobile: '' |
| | | }, |
| | | } |
| | | }, |
| | |
| | | methods:{ |
| | | addItem(){ |
| | | const newItem = { |
| | | info: '', |
| | | time: '', |
| | | level: '' |
| | | hiddendangerRemark: '', |
| | | checkTime: '', |
| | | rectifyDeadlineTime: '', |
| | | hiddendangerLevel: 1 |
| | | } |
| | | this.checkForm.riskList.push(newItem) |
| | | this.checkForm.submitHiddendangers.push(newItem) |
| | | }, |
| | | deleteItem(i){ |
| | | console.log(i) |
| | | this.checkForm.riskList.splice(i,1) |
| | | this.checkForm.submitHiddendangers.splice(i,1) |
| | | }, |
| | | confirmSend(){ |
| | | this.dialogVisible = false |
| | | |
| | | async getUncheckList(){ |
| | | const t = this |
| | | let res = await getSelfBaseInfo(t.id) |
| | | if(res.data.code === "200"){ |
| | | t.recordTotal = res.data.result.enterpriseName |
| | | t.licenceValidStatus = res.data.result.licenceValidStatus |
| | | t.licenceValidDeadline = res.data.result.licenceValidDeadline |
| | | t.stockNum = res.data.result.stockNum |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | async confirmSend(){ |
| | | 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 |
| | | } |
| | | 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 |
| | | } |
| | | }, |
| | | } |
| | |
| | | style="width: 100%;" |
| | | > |
| | | |
| | | <el-table-column label="下发日期" prop="sendDate" align="center" width="180"> |
| | | <el-table-column label="下发日期" prop="gmtCreate" align="center" width="180"></el-table-column> |
| | | <el-table-column label="任务名称" prop="taskName" align="center"></el-table-column> |
| | | <el-table-column label="下发部门" prop="createUnit" align="center"></el-table-column> |
| | | <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.sendDate }}</span> |
| | | <span>{{ scope.row.selfcheckStatus == 0 ? '未自查' : '已自查' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="任务名称" prop="name" align="center"> |
| | | <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.name}}</span> |
| | | <span>{{ scope.row.hiddendangerStatus == 0 ? '否' : '是' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="下发部门" prop="department" align="center"> |
| | | <el-table-column label="整改情况" prop="rectifyStatus" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.department }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="自查期限(之前)" prop="deadline" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.deadline }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否自查" prop="isCheck" width="130" align="center" sortable> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.isCheck }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="自查时间" prop="selfCheckTime" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.selfCheckTime }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否隐患" prop="isRisky" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.isRisky }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="整改情况" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="toRepair(scope.row)">去整改</el-button> |
| | | <el-button v-if="scope.row.rectifyStatus == 1" type="text" @click="toRepair(scope.row)">去整改</el-button> |
| | | <span v-else>已完成</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="详情" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-if="scope.row.isCheck == 1" type="text">查看详情</el-button> |
| | | <el-button v-else type="text" @click="toReport(scope.row)">自查填报</el-button> |
| | | <el-button v-if="scope.row.selfcheckStatus == 0" type="text" @click="toReport(scope.row)">自查填报</el-button> |
| | | <el-button v-else type="text" @click="toDetail(scope.row)">查看详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | v-show="recordTotal>0" |
| | | :current-page="currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-sizes="[10, 15]" |
| | | :page-size="pageSize" |
| | | :total="recordTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | |
| | | </div> |
| | | <self-report ref="report"></self-report> |
| | | <repair ref="repair"></repair> |
| | | <check-details ref="details"></check-details> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import {mapGetters} from "vuex"; |
| | | import {MessageBox} from 'element-ui' |
| | | import { getToken } from '@/utils/auth' |
| | | import selfReport from "./components/selfReport"; |
| | | import repair from "./components/repair"; |
| | | import selfReport from "./components/selfReport" |
| | | import repair from "./components/repair" |
| | | import checkDetails from "./components/repair" |
| | | import { getUnDoneCheckTask } from '@/api/selfCheck' |
| | | |
| | | export default { |
| | | name: "selfCheck", |
| | | components:{ |
| | | selfReport, |
| | | repair |
| | | repair, |
| | | checkDetails |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | pageTotal: 0, |
| | | currentPage: 1, |
| | | tableKey: 0, |
| | | checkData: [ |
| | | { |
| | | sendDate: '2022-10-29', |
| | | name: '2023年上半年……', |
| | | department: '新疆维吾尔应急管理厅', |
| | | deadline: '2022-10-30', |
| | | isCheck: 1, |
| | | selfCheckTime: '2022-10-31', |
| | | isRisky: 1 |
| | | }, |
| | | { |
| | | sendDate: '2022-10-29', |
| | | name: '2023年上半年……', |
| | | department: '新疆维吾尔应急管理厅', |
| | | deadline: '2022-10-30', |
| | | isCheck: 0, |
| | | selfCheckTime: '2022-10-31', |
| | | isRisky: 0 |
| | | } |
| | | ] |
| | | checkData: [] |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | const t = this |
| | | t.getUncheckList() |
| | | }, |
| | | mounted() { |
| | | |
| | |
| | | handleSizeChange: function (val) { |
| | | this.pageSize = val |
| | | this.currentPage = 1 |
| | | // this.getDataList() |
| | | this.getUncheckList() |
| | | }, |
| | | handleCurrentChange: function (val) { |
| | | this.currentPage = val |
| | | // this.getDataList() |
| | | this.getUncheckList() |
| | | }, |
| | | |
| | | toReport(row){ |
| | | const t = this |
| | | t.$refs.report.dialogVisible = true |
| | | t.$refs.report.id = row.id |
| | | }, |
| | | |
| | | toDetail(row){ |
| | | const t = this |
| | | t.$refs.details.dialogVisible = true |
| | | t.$refs.details.id = row.id |
| | | }, |
| | | |
| | | toRepair(row){ |
| | | const t = this |
| | | t.$refs.repair.dialogVisible = true |
| | | t.$refs.repair.id = row.id |
| | | }, |
| | | |
| | | async getUncheckList(){ |
| | | const t = this |
| | | t.listLoading = true |
| | | let data = {pageIndex: t.currentPage,pageSize: t.pageSize} |
| | | let res = await getUnDoneCheckTask(data) |
| | | if(res.data.code === "200"){ |
| | | t.recordTotal = res.data.result.total |
| | | t.checkData = res.data.result.records |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | t.listLoading = false |
| | | }, |
| | | } |
| | | } |
| | |
| | | <span></span> |
| | | <div class="">烟花爆竹批发企业检查情况反馈表</div> |
| | | <span> |
| | | <el-button type="primary">查看企业自查表</el-button> |
| | | <el-button type="primary" @click="openSelfCheck()">查看企业自查表</el-button> |
| | | </span> |
| | | </div> |
| | | <div class="feed-report"> |
| | | <div class="feed-tit"> |
| | | <div>企业名称: <span class="m-color">沙湾市国华商贸有限公司</span></div> |
| | | <div>所属省市县: <span class="m-color">新疆维吾尔自治区塔城地区沙湾县</span></div> |
| | | <div>检查层级: <span class="m-color">省级</span></div> |
| | | <div>检查单位: <span class="m-color">新疆维吾尔自治区应急管理厅</span></div> |
| | | <div>企业名称: <span class="m-color">{{ corpInfo.enterpriseName }}</span></div> |
| | | <div>所属省市县: <span class="m-color">{{ corpInfo.enterpriseProvince + corpInfo.enterpriseCity + corpInfo.enterpriseArea }}</span></div> |
| | | <div>检查层级: <span class="m-color">{{ corpInfo.checkUnitType == 1 ? '省级':(corpInfo.checkUnitType == 2 ? '市级' : '区县级') }}</span></div> |
| | | <div>检查单位: <span class="m-color">{{ corpInfo.checkUnit }}</span></div> |
| | | </div> |
| | | <div v-if="(unitType==1 && checkData.provinceCheckStatus==0)||(unitType==2 && checkData.cityCheckStatus==0)||(unitType==3 && checkData.areaCheckStatus==0)"> |
| | | <el-form :model="feedbackForm" :rules="rules" ref="feedbackForm" class="demo-ruleForm"> |
| | | <el-row :gutter="40" type="flex" align="middle" style="margin: 20px 0"> |
| | | <el-col :span="8" style="display: flex;align-items: center"> |
| | | <span style="white-space: nowrap">检查时间:</span> |
| | | <el-col :span="8"> |
| | | <el-form-item label="检查时间:" prop="checkTime" style="display: flex;align-items: center"> |
| | | <!-- <span style="white-space: nowrap">检查时间:</span>--> |
| | | <el-date-picker |
| | | v-model="feedbackForm.checkTime" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择日期时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" style="display: flex;align-items: center"> |
| | | <span style="white-space: nowrap">是否检查出隐患:</span> |
| | | <el-radio-group v-model="feedbackForm.isRisky"> |
| | | <el-form-item label="是否检查出隐患:" prop="hiddendangerStatus" style="display: flex;align-items: center"> |
| | | <!-- <span style="white-space: nowrap">是否检查出隐患:</span>--> |
| | | <el-radio-group v-model="feedbackForm.hiddendangerStatus"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="report-list" v-show="feedbackForm.isRisky == 1"> |
| | | <div class="report-list" v-if="feedbackForm.hiddendangerStatus == 1"> |
| | | <table class="report-table"> |
| | | <th class="m-color b-font" style="background: #337ecc;color: #fff">检查情况</th> |
| | | <tr><td class="m-color">序号</td><td class="m-color">检查出的隐患问题</td><td class="m-color">隐患等级</td><td class="m-color">操作</td></tr> |
| | | <tr v-for="(item,index) in feedbackForm.riskList"> |
| | | <tr v-for="(item,index) in feedbackForm.hiddendangerInfos"> |
| | | <td>{{index + 1}}</td> |
| | | <td><el-input type="textarea" :rows="1" placeholder="请输入内容" v-model="item.info"></el-input></td> |
| | | <td> |
| | | <el-radio-group v-model="item.level"> |
| | | <el-input type="textarea" :rows="1" placeholder="请输入内容" v-model="item.spotCheckHiddendanger"></el-input> |
| | | </td> |
| | | <td> |
| | | <el-radio-group v-model="item.hiddendangerLevel"> |
| | | <el-radio :label="1">一般隐患</el-radio> |
| | | <el-radio :label="2">重大隐患</el-radio> |
| | | </el-radio-group> |
| | |
| | | </td> |
| | | </tr> |
| | | <tr style="text-align: center"><el-button icon="el-icon-plus" type="primary" plain round @click="addItem()">添加行</el-button></tr> |
| | | <tr class="m-color b-font" style="text-align: center">合计</tr> |
| | | <tr> |
| | | <td class="m-color w-50">隐患总数</td> |
| | | <td class="m-color w-50">重大隐患数量</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="w-50 mid"><el-input v-model="feedbackForm.totalRisk"></el-input></td> |
| | | <td class="w-50 mid"><el-input v-model="feedbackForm.majorNum"></el-input></td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="text-align: center">执法处罚情况</tr> |
| | | <tr> |
| | | <td class="m-color w-25 mid">罚款金额(万元)</td> |
| | | <td class="w-25 mid"><el-input v-model="feedbackForm.fine"></el-input></td> |
| | | <td class="w-25 mid"> |
| | | <el-form-item prop="amerceMoney"> |
| | | <el-input v-model="feedbackForm.amerceMoney" type="number" placeholder="请输入罚款金额,未罚款则填“0”"></el-input> |
| | | </el-form-item> |
| | | </td> |
| | | <td class="m-color w-25 mid">是否责令停产整顿</td> |
| | | <td class="w-25 mid"> |
| | | <el-radio-group v-model="feedbackForm.isRectify"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | <el-form-item prop="stopProductionStatus"> |
| | | <el-radio-group v-model="feedbackForm.stopProductionStatus"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="m-color w-25 mid">是否吊销许可证</td> |
| | | <td class="w-25 mid"> |
| | | <el-radio-group v-model="feedbackForm.isRevoke"> |
| | | <el-form-item prop="revokeLicenseStatus"> |
| | | <el-radio-group v-model="feedbackForm.revokeLicenseStatus"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </td> |
| | | <td class="m-color w-25 mid">是否暂扣许可证</td> |
| | | <td class="w-25 mid"> |
| | | <el-radio-group v-model="feedbackForm.isSuspended"> |
| | | <el-form-item prop="detainLicenseStatus"> |
| | | <el-radio-group v-model="feedbackForm.detainLicenseStatus"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | <div> |
| | | 注:重大隐患判定标准:<el-link href="https://www.mem.gov.cn/gk/zcjd/201802/t20180202233295.shtml" target="_blank" type="primary">https://www.mem.gov.cn/gk/zcjd/201802/t20180202 233295.shtml</el-link> |
| | | </div> |
| | | </el-form> |
| | | <div style="display: flex;justify-content: center;margin: 20px 0"> |
| | | <el-button @click="confirmBack()">返回列表</el-button> |
| | | <el-button type="primary">提交</el-button> |
| | | <el-button type="primary" @click="confirmSubmit('feedbackForm')">提交</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div style="margin-top: 20px;text-align: center">--> |
| | | <!-- 重大隐患判定标准:<el-link href="https://www.mem.gov.cn/gk/zcjd/201802/t20180202233295.shtml" target="_blank" type="primary">https://www.mem.gov.cn/gk/zcjd/201802/t20180202 233295.shtml</el-link>--> |
| | | <!-- </div>--> |
| | | <el-divider/> |
| | | <div class="feed-data"> |
| | | <div class="m-color data-time">2022年04月07日</div> |
| | | <div class="m-color data-time">{{tabCheckTime}}</div> |
| | | <el-tabs v-model="activeTab" type="border-card" @tab-click="handleSwitch"> |
| | | <el-tab-pane label="本级" name="1"> |
| | | <div class="record-list"> |
| | | <div class="record-item" v-for="(item,index) in recordList" :key="index"> |
| | | <el-tab-pane :label="unitType==1 ? '本级': '省级'" name="1"> |
| | | <div v-if="checkData.provinceCheckStatus == 1" class="record-list"> |
| | | <div class="record-item"> |
| | | <table class="record-table"> |
| | | <tr> |
| | | <td class="w-75 m-color b-font dark-bg">烟花爆竹批发企业检查情况反馈表</td> |
| | | <td class="w-25"> |
| | | <el-button type="primary" icon="el-icon-edit" plain @click="editRecord(index)">编辑</el-button> |
| | | </td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="background: #409EFF;color: #fff;text-align: center">烟花爆竹批发企业检查情况反馈表</tr> |
| | | <tr> |
| | | <td class="m-color w-50">被检查企业名称</td> |
| | | <td class="m-color w-50">所属省市县</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="w-50">沙湾市国华商贸有限公司</td> |
| | | <td class="w-50">新疆维吾尔自治区乌鲁木齐市米东区</td> |
| | | <td class="w-50">{{ checkData.enterpriseName }}</td> |
| | | <td class="w-50">{{ checkData.enterpriseProvince + checkData.enterpriseCity + checkData.enterpriseArea }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="m-color w-25">检查层级</td> |
| | |
| | | </tr> |
| | | <tr> |
| | | <td class="w-25">省级</td> |
| | | <td class="w-25">新疆维吾尔自治区应急管理厅</td> |
| | | <td class="w-25">{{ item.checkTime }}</td> |
| | | <td class="w-25">{{ item.isRisky }}</td> |
| | | <td class="w-25">{{ checkData.provinceCheckName }}</td> |
| | | <td class="w-25">{{ checkData.provinceCheckTime }}</td> |
| | | <td class="w-25">{{ checkData.provinceHiddendangerStatus == 1 ? '是' : '否' }}</td> |
| | | </tr> |
| | | <tr v-if="item.isRisky=='1'"><td class="m-color">序号</td><td class="m-color">检查出的隐患问题</td><td class="m-color">隐患等级</td></tr> |
| | | <tr v-if="item.isRisky=='1'" v-for="(x,i) in item.riskList"> |
| | | <td>{{ i + 1 }}</td> |
| | | <td class="overText">{{ x.info }}</td> |
| | | <td>{{ x.level }}</td> |
| | | <tr class="m-color b-font" style="text-align: center" v-if="checkData.areaHiddendangerStatus == 1">检查情况</tr> |
| | | <tr v-if="checkData.provinceHiddendangerStatus == 1"> |
| | | <td class="m-color w-5">序号</td> |
| | | <td class="m-color w-25">检查出的隐患问题</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-10">责任人</td> |
| | | <td class="m-color w-15">隐患状态</td> |
| | | </tr> |
| | | <tr v-if="checkData.provinceHiddendangerStatus == 1" v-for="(x,i) in checkData.provinceHiddendangerInfos"> |
| | | <td class="w-5">{{ i + 1 }}</td> |
| | | <td class="overText w-25">{{ x.spotCheckHiddendanger }}</td> |
| | | <td class="w-10">{{ x.hiddendangerLevel==1?'一般隐患':'重大隐患' }}</td> |
| | | <td class="overText w-25">{{ x.rectifyMeasure }}</td> |
| | | <td class="w-10">{{ x.rectifyPrice }}</td> |
| | | <td class="overText w-10">{{ x.chargePerson }}</td> |
| | | <td class="w-15">{{ x.rectifyStatus==1?'已整改完成':'未整改完成' }}</td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="text-align: center">合计</tr> |
| | | <tr> |
| | |
| | | <td class="m-color w-50">重大隐患数量</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="w-50">{{ item.totalRisk }}</td> |
| | | <td class="w-50">{{ item.majorNum }}</td> |
| | | <td class="w-50">{{ checkData.provinceHiddendangerSum ? checkData.provinceHiddendangerSum : 0}}</td> |
| | | <td class="w-50">{{ checkData.provinceMajorHiddendangerNum ? checkData.provinceMajorHiddendangerNum : 0}}</td> |
| | | </tr> |
| | | <tr v-if="item.isRisky=='1'" class="m-color b-font" style="text-align: center">执法处罚情况</tr> |
| | | <tr v-if="item.isRisky=='1'"> |
| | | <tr v-if="checkData.provinceHiddendangerStatus== 1" class="m-color b-font" style="text-align: center">执法处罚情况</tr> |
| | | <tr v-if="checkData.provinceHiddendangerStatus== 1"> |
| | | <td class="m-color w-25">罚款金额(万元)</td> |
| | | <td class="w-25">{{ item.fine }}</td> |
| | | <td class="w-25">{{ checkData.provinceAmerceMoney }}</td> |
| | | <td class="m-color w-25">是否责令停产整顿</td> |
| | | <td class="w-25"> |
| | | {{ item.isRectify }} |
| | | {{ checkData.provinceStopProductionStatus == 1 ? '是': '否' }} |
| | | </td> |
| | | </tr> |
| | | <tr v-if="item.isRisky=='1'"> |
| | | <tr v-if="checkData.provinceHiddendangerStatus== 1"> |
| | | <td class="m-color w-25">是否吊销许可证</td> |
| | | <td class="w-25"> |
| | | {{ item.isRevoke }} |
| | | {{ checkData.provinceRevokeLicenseStatus == 1 ? '是': '否' }} |
| | | </td> |
| | | <td class="m-color w-25">是否暂扣许可证</td> |
| | | <td class="w-25"> |
| | | {{ item.isSuspended }} |
| | | {{ checkData.provinceDetainLicenseStatus == 1 ? '是': '否' }} |
| | | </td> |
| | | </tr> |
| | | <tr style="text-align: center" v-if="unitType == 1"> |
| | | <el-button type="primary" icon="el-icon-edit" plain @click="editRecord(1)">修改</el-button> |
| | | </tr> |
| | | </table> |
| | | <el-divider/> |
| | | </div> |
| | | </div> |
| | | <div v-else style="font-size: 20px;font-weight: bolder;text-align: center"> |
| | | 暂无本级检查反馈 |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="市级" name="2">市级</el-tab-pane> |
| | | <el-tab-pane label="县级" name="3">县级</el-tab-pane> |
| | | <el-tab-pane :label="unitType==2 ? '本级': '市级'" name="2"> |
| | | <div v-if="checkData.cityCheckStatus == 1" class="record-list"> |
| | | <div class="record-item"> |
| | | <table class="record-table"> |
| | | <tr class="m-color b-font" style="background: #409EFF;color: #fff;text-align: center">烟花爆竹批发企业检查情况反馈表</tr> |
| | | <tr> |
| | | <td class="m-color w-50">被检查企业名称</td> |
| | | <td class="m-color w-50">所属省市县</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="w-50">{{ checkData.enterpriseName }}</td> |
| | | <td class="w-50">{{ checkData.enterpriseProvince + checkData.enterpriseCity + checkData.enterpriseArea }}</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">市级</td> |
| | | <td class="w-25">{{ checkData.cityCheckName }}</td> |
| | | <td class="w-25">{{ checkData.cityCheckTime }}</td> |
| | | <td class="w-25">{{ checkData.cityHiddendangerStatus == 1 ? '是' : '否' }}</td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="text-align: center" v-if="checkData.areaHiddendangerStatus == 1">检查情况</tr> |
| | | <tr v-if="checkData.cityHiddendangerStatus == 1"> |
| | | <td class="m-color w-5">序号</td> |
| | | <td class="m-color w-25">检查出的隐患问题</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-10">责任人</td> |
| | | <td class="m-color w-15">隐患状态</td> |
| | | </tr> |
| | | <tr v-if="checkData.cityHiddendangerStatus == 1" v-for="(x,i) in checkData.cityHiddendangerInfos"> |
| | | <td class="w-5">{{ i + 1 }}</td> |
| | | <td class="overText w-25">{{ x.spotCheckHiddendanger }}</td> |
| | | <td class="w-10">{{ x.hiddendangerLevel==1?'一般隐患':'重大隐患' }}</td> |
| | | <td class="overText w-25">{{ x.rectifyMeasure }}</td> |
| | | <td class="w-10">{{ x.rectifyPrice }}</td> |
| | | <td class="overText w-10">{{ x.chargePerson }}</td> |
| | | <td class="w-15">{{ x.rectifyStatus==1?'已整改完成':'未整改完成' }}</td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="text-align: center">合计</tr> |
| | | <tr> |
| | | <td class="m-color w-50">隐患总数</td> |
| | | <td class="m-color w-50">重大隐患数量</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="w-50">{{ checkData.cityHiddendangerSum ? checkData.cityHiddendangerSum : 0}}</td> |
| | | <td class="w-50">{{ checkData.cityMajorHiddendangerNum ? checkData.cityMajorHiddendangerNum : 0}}</td> |
| | | </tr> |
| | | <tr v-if="checkData.cityHiddendangerStatus== 1" class="m-color b-font" style="text-align: center">执法处罚情况</tr> |
| | | <tr v-if="checkData.cityHiddendangerStatus== 1"> |
| | | <td class="m-color w-25">罚款金额(万元)</td> |
| | | <td class="w-25">{{ checkData.cityAmerceMoney }}</td> |
| | | <td class="m-color w-25">是否责令停产整顿</td> |
| | | <td class="w-25"> |
| | | {{ checkData.cityStopProductionStatus == 1 ? '是': '否' }} |
| | | </td> |
| | | </tr> |
| | | <tr v-if="checkData.cityHiddendangerStatus== 1"> |
| | | <td class="m-color w-25">是否吊销许可证</td> |
| | | <td class="w-25"> |
| | | {{ checkData.cityRevokeLicenseStatus == 1 ? '是': '否' }} |
| | | </td> |
| | | <td class="m-color w-25">是否暂扣许可证</td> |
| | | <td class="w-25"> |
| | | {{ checkData.cityDetainLicenseStatus == 1 ? '是': '否' }} |
| | | </td> |
| | | </tr> |
| | | <tr style="text-align: center" v-if="unitType == 2"> |
| | | <el-button type="primary" icon="el-icon-edit" plain @click="editRecord(2)">修改</el-button> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | <div v-else style="font-size: 20px;font-weight: bolder;text-align: center"> |
| | | 暂无本级检查反馈 |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane :label="unitType==3 ? '本级': '区县级'" name="3"> |
| | | <div v-if="checkData.areaCheckStatus == 1" class="record-list"> |
| | | <div class="record-item"> |
| | | <table class="record-table"> |
| | | <tr class="m-color b-font" style="background: #409EFF;color: #fff;text-align: center">烟花爆竹批发企业检查情况反馈表</tr> |
| | | <tr> |
| | | <td class="m-color w-50">被检查企业名称</td> |
| | | <td class="m-color w-50">所属省市县</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="w-50">{{ checkData.enterpriseName }}</td> |
| | | <td class="w-50">{{ checkData.enterpriseProvince + checkData.enterpriseCity + checkData.enterpriseArea }}</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">区县级</td> |
| | | <td class="w-25">{{ checkData.areaCheckName }}</td> |
| | | <td class="w-25">{{ checkData.areaCheckTime }}</td> |
| | | <td class="w-25">{{ checkData.areaHiddendangerStatus == 1 ? '是' : '否' }}</td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="text-align: center" v-if="checkData.areaHiddendangerStatus == 1">检查情况</tr> |
| | | <tr v-if="checkData.areaHiddendangerStatus == 1"> |
| | | <td class="m-color w-5">序号</td> |
| | | <td class="m-color w-25">检查出的隐患问题</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-10">责任人</td> |
| | | <td class="m-color w-15">隐患状态</td> |
| | | </tr> |
| | | <tr v-if="checkData.areaHiddendangerStatus == 1" v-for="(x,i) in checkData.areaHiddendangerInfos"> |
| | | <td class="w-5">{{ i + 1 }}</td> |
| | | <td class="overText w-25">{{ x.spotCheckHiddendanger }}</td> |
| | | <td class="w-10">{{ x.hiddendangerLevel==1?'一般隐患':'重大隐患' }}</td> |
| | | <td class="overText w-25">{{ x.rectifyMeasure }}</td> |
| | | <td class="w-10">{{ x.rectifyPrice }}</td> |
| | | <td class="overText w-10">{{ x.chargePerson }}</td> |
| | | <td class="w-15">{{ x.rectifyStatus==1?'已整改完成':'未整改完成' }}</td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="text-align: center">合计</tr> |
| | | <tr> |
| | | <td class="m-color w-50">隐患总数</td> |
| | | <td class="m-color w-50">重大隐患数量</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="w-50">{{ checkData.areaHiddendangerSum ? checkData.areaHiddendangerSum : 0}}</td> |
| | | <td class="w-50">{{ checkData.areaMajorHiddendangerNum ? checkData.areaMajorHiddendangerNum : 0 }}</td> |
| | | </tr> |
| | | <tr v-if="checkData.areaHiddendangerStatus== 1" class="m-color b-font" style="text-align: center">执法处罚情况</tr> |
| | | <tr v-if="checkData.areaHiddendangerStatus== 1"> |
| | | <td class="m-color w-25">罚款金额(万元)</td> |
| | | <td class="w-25">{{ checkData.areaAmerceMoney }}</td> |
| | | <td class="m-color w-25">是否责令停产整顿</td> |
| | | <td class="w-25"> |
| | | {{ checkData.areaStopProductionStatus == 1 ? '是': '否' }} |
| | | </td> |
| | | </tr> |
| | | <tr v-if="checkData.areaHiddendangerStatus== 1"> |
| | | <td class="m-color w-25">是否吊销许可证</td> |
| | | <td class="w-25"> |
| | | {{ checkData.areaRevokeLicenseStatus == 1 ? '是': '否' }} |
| | | </td> |
| | | <td class="m-color w-25">是否暂扣许可证</td> |
| | | <td class="w-25"> |
| | | {{ checkData.areaDetainLicenseStatus == 1 ? '是': '否' }} |
| | | </td> |
| | | </tr> |
| | | <tr style="text-align: center" v-if="unitType == 3"> |
| | | <el-button type="primary" icon="el-icon-edit" plain @click="editRecord(3)">修改</el-button> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | <div v-else style="font-size: 20px;font-weight: bolder;text-align: center"> |
| | | 暂无本级检查反馈 |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | |
| | |
| | | :close-on-click-modal="false" |
| | | width="50%" |
| | | center |
| | | @close="resetEdit()" |
| | | > |
| | | <el-form ref="editFormRef" :model="editForm" label-width="160px" class="edit-form"> |
| | | <el-row gutter="80"> |
| | | <el-form ref="editForm" :rule="rules" :model="editForm" label-width="160px" class="edit-form"> |
| | | <el-row :gutter="80"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="检查时间:"> |
| | | <el-form-item label="检查时间:" prop="checkTime"> |
| | | <el-date-picker |
| | | v-model="editForm.checkTime" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择日期时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="是否检查出隐患问题:"> |
| | | <el-radio-group v-model="editForm.isRisky"> |
| | | <el-form-item label="是否检查出隐患问题:" prop="hiddendangerStatus"> |
| | | <el-radio-group v-model="editForm.hiddendangerStatus"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <div class="form-list" v-if="editForm.isRisky==1"> |
| | | <div class="form-list" v-if="editForm.hiddendangerStatus==1"> |
| | | <table class="form-table"> |
| | | <th><span>序号</span><span>检查出的隐患问题</span><span>隐患等级</span><span>操作</span></th> |
| | | <tr v-for="(item,index) in editForm.riskList"> |
| | | <tr v-for="(item,index) in editForm.hiddendangerInfos"> |
| | | <td class="num">{{index + 1}}</td> |
| | | <td class="info"><el-input type="textarea" :rows="1" placeholder="请输入内容" v-model="item.info"></el-input></td> |
| | | <td class="info"> |
| | | <el-input type="textarea" :rows="1" placeholder="请输入内容" v-model="item.spotCheckHiddendanger"></el-input> |
| | | </td> |
| | | <td class="level"> |
| | | <el-radio-group v-model="item.level"> |
| | | <el-radio-group v-model="item.hiddendangerLevel"> |
| | | <el-radio :label="1">一般隐患</el-radio> |
| | | <el-radio :label="2">重大隐患</el-radio> |
| | | </el-radio-group> |
| | |
| | | <tr style="text-align: center"><el-button type="primary" plain icon="el-icon-plus" @click="addEditItem()">添加行</el-button></tr> |
| | | </table> |
| | | </div> |
| | | <el-row gutter="80" v-if="editForm.isRisky==1"> |
| | | <el-row :gutter="80" v-if="editForm.hiddendangerStatus==1"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="隐患总数:"> |
| | | <el-input v-model="editForm.totalRisk"></el-input> |
| | | <el-form-item label="罚款金额(万元):" prop="amerceMoney"> |
| | | <el-input v-model="editForm.amerceMoney" type="number" placeholder="请输入罚款金额,未罚款则填“0”"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="是否责令停产整顿:"> |
| | | <el-radio-group v-model="editForm.isRectify"> |
| | | <el-form-item label="是否责令停产整顿:" prop="stopProductionStatus"> |
| | | <el-radio-group v-model="editForm.stopProductionStatus"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row gutter="80" v-if="editForm.isRisky==1"> |
| | | <el-row :gutter="80" v-if="editForm.hiddendangerStatus==1"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="重大隐患数量:"> |
| | | <el-input v-model="editForm.majorNum"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="是否吊销许可证:"> |
| | | <el-radio-group v-model="editForm.isRevoke"> |
| | | <el-form-item label="是否吊销许可证:" prop="revokeLicenseStatus"> |
| | | <el-radio-group v-model="editForm.revokeLicenseStatus"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row gutter="80" v-if="editForm.isRisky==1"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="罚款金额(万元):"> |
| | | <el-input v-model="editForm.fine"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="是否暂扣许可证:"> |
| | | <el-radio-group v-model="editForm.isSuspended"> |
| | | <el-form-item label="是否暂扣许可证:" prop="detainLicenseStatus"> |
| | | <el-radio-group v-model="editForm.detainLicenseStatus"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button>取消</el-button> |
| | | <el-button type="primary">提交</el-button> |
| | | <el-button @click="editDialog = false">取消</el-button> |
| | | <el-button type="primary" @click="postEdit('editForm')">提交</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <check-details ref="report"></check-details> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {computePageCount} from "@/utils"; |
| | | |
| | | import { saveSpotCheckReport, getSpotCheckReportInfo, updateSpotCheckReport } from "@/api/specialCheck" |
| | | import checkDetails from "../../selfCheck/components/checkDetails" |
| | | export default { |
| | | name: "reportDetails", |
| | | name: "feedbackDetails", |
| | | components: {checkDetails}, |
| | | data(){ |
| | | return{ |
| | | id: null, |
| | | unitType: null, |
| | | dialogVisible:false, |
| | | editDialog: false, |
| | | activeTab: '1', |
| | | corpInfo: {}, |
| | | feedbackForm:{ |
| | | id: null, |
| | | checkTime: '', |
| | | isRisky: '', |
| | | riskList: [ |
| | | hiddendangerStatus: null, |
| | | hiddendangerInfos: [ |
| | | { |
| | | info: '', |
| | | level: '' |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | ], |
| | | totalRisk: '', |
| | | majorNum: '', |
| | | fine: '', |
| | | isRectify: '', |
| | | isRevoke: '', |
| | | isSuspended: '' |
| | | amerceStatus: null, |
| | | amerceMoney: null, |
| | | stopProductionStatus: null, |
| | | revokeLicenseStatus: null, |
| | | detainLicenseStatus: null |
| | | }, |
| | | recordList:[ |
| | | { |
| | | checkTime: '2022-11-02', |
| | | isRisky: 1, |
| | | riskList: [ |
| | | { |
| | | info: '测试数据一', |
| | | level: 1 |
| | | }, |
| | | { |
| | | info: '测试数据二', |
| | | level: 0 |
| | | } |
| | | ], |
| | | totalRisk: 1, |
| | | majorNum: 0, |
| | | fine: '2500', |
| | | isRectify: 0, |
| | | isRevoke: 0, |
| | | isSuspended: 1 |
| | | }, |
| | | { |
| | | checkTime: '2022-11-02', |
| | | isRisky: 0, |
| | | riskList: [], |
| | | totalRisk: 0, |
| | | majorNum: 0, |
| | | fine: '', |
| | | isRectify: 0, |
| | | isRevoke: 0, |
| | | isSuspended: 0 |
| | | } |
| | | ], |
| | | rules: { |
| | | checkTime: [{ required: true, message: '请选择检查时间', trigger: 'blur' }], |
| | | hiddendangerStatus: [{ required: true, message: '请选择是否查出隐患', trigger: 'blur' }], |
| | | amerceMoney: [{ required: true, message: '请输入罚款金额(未罚款则填0)', trigger: 'blur' }], |
| | | stopProductionStatus: [{ required: true, message: '请选择是否责令停产整顿', trigger: 'blur' }], |
| | | revokeLicenseStatus: [{ required: true, message: '请选择是否吊销许可证', trigger: 'blur' }], |
| | | detainLicenseStatus: [{ required: true, message: '请选择是否查出暂扣许可证', trigger: 'blur' }] |
| | | }, |
| | | checkData:{}, |
| | | tabCheckTime: '', |
| | | editForm:{ |
| | | id: null, |
| | | checkTime: '', |
| | | isRisky: '', |
| | | riskList: [], |
| | | totalRisk: '', |
| | | majorNum: '', |
| | | fine: '', |
| | | isRectify: '', |
| | | isRevoke: '', |
| | | isSuspended: '' |
| | | hiddendangerStatus: null, |
| | | hiddendangerInfos: [ |
| | | { |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | ], |
| | | amerceStatus: null, |
| | | amerceMoney: null, |
| | | stopProductionStatus: null, |
| | | revokeLicenseStatus: null, |
| | | detainLicenseStatus: null |
| | | } |
| | | } |
| | | }, |
| | |
| | | confirmBack(){ |
| | | this.dialogVisible = false |
| | | }, |
| | | openSelfCheck(){ |
| | | const t = this |
| | | t.$refs.report.id = t.id |
| | | t.$refs.report.getEnterpriseInfo() |
| | | t.$refs.report.dialogVisible = true |
| | | }, |
| | | handleSwitch(tab, event) { |
| | | console.log(tab, event); |
| | | const t = this |
| | | if(tab.index == 0){ |
| | | t.tabCheckTime = t.checkData.provinceCheckTime |
| | | }else if(tab.index == 1){ |
| | | t.tabCheckTime = t.checkData.cityCheckTime |
| | | }else{ |
| | | t.tabCheckTime = t.checkData.areaCheckTime |
| | | } |
| | | }, |
| | | |
| | | async getSpotCheckReportInfo(){ |
| | | const t = this |
| | | let res = await getSpotCheckReportInfo({id: t.id}) |
| | | if(res.data.code === "200"){ |
| | | if(res.data.result == null){ |
| | | t.checkData.provinceCheckStatus = 0 |
| | | t.checkData.cityCheckStatus = 0 |
| | | t.checkData.areaCheckStatus = 0 |
| | | t.checkData.provinceCheckTime = '' |
| | | t.checkData.cityCheckTime = '' |
| | | t.checkData.areaCheckTime = '' |
| | | }else{ |
| | | t.checkData = res.data.result |
| | | t.tabCheckTime = res.data.result.provinceCheckTime |
| | | } |
| | | |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | addItem(){ |
| | | const newItem = { |
| | | info: '', |
| | | level: '' |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | this.feedbackForm.riskList.push(newItem) |
| | | this.feedbackForm.hiddendangerInfos.push(newItem) |
| | | }, |
| | | deleteItem(i){ |
| | | console.log(i) |
| | | this.feedbackForm.riskList.splice(i,1) |
| | | }, |
| | | editRecord(index){ |
| | | const t = this |
| | | if(t.feedbackForm.hiddendangerInfos.length == 1){ |
| | | t.$message({ |
| | | type:'warning', |
| | | message: '检查的隐患信息不可为空' |
| | | }) |
| | | }else{ |
| | | t.feedbackForm.hiddendangerInfos.splice(i,1) |
| | | } |
| | | }, |
| | | |
| | | confirmSubmit(formName){ |
| | | const t = this |
| | | t.$refs[formName].validate(async (valid) => { |
| | | if(t.feedbackForm.hiddendangerStatus == 0){ |
| | | t.feedbackForm.hiddendangerInfos = [] |
| | | t.feedbackForm.amerceStatus = null |
| | | t.feedbackForm.amerceMoney = null |
| | | t.feedbackForm.stopProductionStatus = null |
| | | t.feedbackForm.revokeLicenseStatus = null |
| | | t.feedbackForm.detainLicenseStatus = null |
| | | } |
| | | if(t.feedbackForm.hiddendangerStatus == 1){ |
| | | if(t.feedbackForm.hiddendangerInfos.find((e) => e.spotCheckHiddendanger == '') || t.feedbackForm.hiddendangerInfos.find((e) => e.hiddendangerLevel == null)){ |
| | | t.$message({ |
| | | type:'warning', |
| | | message: '请完善检查的隐患信息' |
| | | }) |
| | | return |
| | | } |
| | | } |
| | | if (valid) { |
| | | if(t.feedbackForm.amerceMoney>0){t.feedbackForm.amerceStatus = 1} |
| | | else{t.feedbackForm.amerceStatus = 0} |
| | | let res = await saveSpotCheckReport(t.feedbackForm) |
| | | if(res.data.code === "200"){ |
| | | t.$message({ |
| | | type:'success', |
| | | message:'提交成功' |
| | | }) |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | t.feedbackForm = { |
| | | id: null, |
| | | checkTime: '', |
| | | hiddendangerStatus: null, |
| | | hiddendangerInfos: [ |
| | | { |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | ], |
| | | amerceStatus: null, |
| | | amerceMoney: null, |
| | | stopProductionStatus: null, |
| | | revokeLicenseStatus: null, |
| | | detainLicenseStatus: null |
| | | }, |
| | | t.dialogVisible = false |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | editRecord(type){ |
| | | const t = this |
| | | t.editForm.id = t.checkData.id |
| | | if(type == 1){ |
| | | t.editForm.checkTime = t.checkData.provinceCheckTime |
| | | t.editForm.hiddendangerStatus = t.checkData.provinceHiddendangerStatus |
| | | if(t.checkData.provinceHiddendangerInfos == null || t.checkData.provinceHiddendangerInfos.length==0){ |
| | | t.editForm.hiddendangerInfos = [ |
| | | { |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | ] |
| | | }else{t.editForm.hiddendangerInfos = t.checkData.provinceHiddendangerInfos} |
| | | t.editForm.amerceMoney = t.checkData.provinceAmerceMoney |
| | | t.editForm.stopProductionStatus = t.checkData.provinceStopProductionStatus |
| | | t.editForm.revokeLicenseStatus = t.checkData.provinceRevokeLicenseStatus |
| | | t.editForm.detainLicenseStatus = t.checkData.provinceDetainLicenseStatus |
| | | } else if(type == 2){ |
| | | t.editForm.checkTime = t.checkData.cityCheckTime |
| | | t.editForm.hiddendangerStatus = t.checkData.cityHiddendangerStatus |
| | | if(t.checkData.cityHiddendangerInfos == null || t.checkData.cityHiddendangerInfos.length==0){ |
| | | t.editForm.hiddendangerInfos = [ |
| | | { |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | ] |
| | | }else{t.editForm.hiddendangerInfos = t.checkData.cityHiddendangerInfos} |
| | | t.editForm.amerceMoney = t.checkData.cityAmerceMoney |
| | | t.editForm.stopProductionStatus = t.checkData.cityStopProductionStatus |
| | | t.editForm.revokeLicenseStatus = t.checkData.cityRevokeLicenseStatus |
| | | t.editForm.detainLicenseStatus = t.checkData.cityDetainLicenseStatus |
| | | } else{ |
| | | t.editForm.checkTime = t.checkData.areaCheckTime |
| | | t.editForm.hiddendangerStatus = t.checkData.areaHiddendangerStatus |
| | | if(t.checkData.areaHiddendangerInfos == null || t.checkData.areaHiddendangerInfos.length==0){ |
| | | t.editForm.hiddendangerInfos = [ |
| | | { |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | ] |
| | | }else{t.editForm.hiddendangerInfos = t.checkData.areaHiddendangerInfos} |
| | | t.editForm.amerceMoney = t.checkData.areaAmerceMoney |
| | | t.editForm.stopProductionStatus = t.checkData.areaStopProductionStatus |
| | | t.editForm.revokeLicenseStatus = t.checkData.areaRevokeLicenseStatus |
| | | t.editForm.detainLicenseStatus = t.checkData.areaDetainLicenseStatus |
| | | } |
| | | t.editDialog = true |
| | | }, |
| | | addEditItem(){ |
| | | const newItem = { |
| | | info: '', |
| | | level: '' |
| | | |
| | | postEdit(formName){ |
| | | const t = this |
| | | t.$refs[formName].validate(async (valid) => { |
| | | if(t.editForm.hiddendangerStatus == 0){ |
| | | t.editForm.hiddendangerInfos = [] |
| | | t.editForm.amerceStatus = null |
| | | t.editForm.amerceMoney = null |
| | | t.editForm.stopProductionStatus = null |
| | | t.editForm.revokeLicenseStatus = null |
| | | t.editForm.detainLicenseStatus = null |
| | | } |
| | | if(t.editForm.hiddendangerStatus == 1){ |
| | | if(t.editForm.hiddendangerInfos.find((e) => e.spotCheckHiddendanger == '') || t.editForm.hiddendangerInfos.find((e) => e.hiddendangerLevel == null)){ |
| | | t.$message({ |
| | | type:'warning', |
| | | message: '请完善检查的隐患信息' |
| | | }) |
| | | return |
| | | } |
| | | } |
| | | t.editForm.hiddendangerInfos = Array.from(t.editForm.hiddendangerInfos,item=>{ |
| | | return {spotCheckHiddendanger: item.spotCheckHiddendanger, hiddendangerLevel: item.hiddendangerLevel, spotCheckUnitType: t.unitType, spotCheckId: t.checkData.id} |
| | | }) |
| | | if (valid) { |
| | | if(t.editForm.amerceMoney>0){t.editForm.amerceStatus = 1} |
| | | else{t.editForm.amerceStatus = 0} |
| | | t.editForm.amerceMoney = Number(t.editForm.amerceMoney) |
| | | let res = await updateSpotCheckReport(t.editForm) |
| | | if(res.data.code === "200"){ |
| | | t.$message({ |
| | | type:'success', |
| | | message:'提交成功' |
| | | }) |
| | | t.getSpotCheckReportInfo() |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | t.editForm = { |
| | | id: null, |
| | | checkTime: '', |
| | | hiddendangerStatus: null, |
| | | hiddendangerInfos: [ |
| | | { |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | ], |
| | | amerceStatus: null, |
| | | amerceMoney: null, |
| | | stopProductionStatus: null, |
| | | revokeLicenseStatus: null, |
| | | detainLicenseStatus: null |
| | | }, |
| | | t.editDialog = false |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | resetEdit(){ |
| | | this.editForm = { |
| | | id: null, |
| | | checkTime: '', |
| | | hiddendangerStatus: null, |
| | | hiddendangerInfos: [ |
| | | { |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | ], |
| | | amerceStatus: null, |
| | | amerceMoney: null, |
| | | stopProductionStatus: null, |
| | | revokeLicenseStatus: null, |
| | | detainLicenseStatus: null |
| | | } |
| | | this.editForm.riskList.push(newItem) |
| | | }, |
| | | addEditItem(){ |
| | | const t = this |
| | | const newItem = { |
| | | spotCheckHiddendanger: '', |
| | | hiddendangerLevel: null |
| | | } |
| | | t.editForm.hiddendangerInfos.push(newItem) |
| | | }, |
| | | deleteEditItem(i){ |
| | | console.log(i) |
| | | this.editForm.riskList.splice(i,1) |
| | | const t = this |
| | | if(t.editForm.hiddendangerInfos.length == 1){ |
| | | t.$message({ |
| | | type:'warning', |
| | | message: '检查的隐患信息不可为空' |
| | | }) |
| | | }else{ |
| | | t.editForm.hiddendangerInfos.splice(i,1) |
| | | } |
| | | }, |
| | | }, |
| | | } |
| | |
| | | position: absolute; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | right: 10px; |
| | | right: 20px; |
| | | top: 0; |
| | | z-index: 99999; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | &:nth-of-type(1){ |
| | | &.w-5{ |
| | | width: 5%; |
| | | } |
| | | &:nth-of-type(2){ |
| | | width: 60% |
| | | &.w-10{ |
| | | width: 10%; |
| | | } |
| | | &:nth-of-type(3){ |
| | | width: 35%; |
| | | &.w-15{ |
| | | width: 15%; |
| | | } |
| | | &.w-50{ |
| | | width: 50%; |
| | | &.w-20{ |
| | | width: 20%; |
| | | } |
| | | &.w-25{ |
| | | width: 25%; |
| | | } |
| | | &.w-50{ |
| | | width: 50%; |
| | | } |
| | | &.w-75{ |
| | | width: 75%; |
| | | } |
| | |
| | | |
| | | <script> |
| | | import {computePageCount} from "@/utils"; |
| | | |
| | | import { getEnterpriseInfo } from "@/api/selfCheck"; |
| | | export default { |
| | | name: "reportDetails", |
| | | data(){ |
| | | return{ |
| | | dialogVisible:false, |
| | | id: null, |
| | | corpInfo:{ |
| | | name: '沙湾市国华商贸有限公司', |
| | | location: '新疆维吾尔自治区塔城地区沙湾县', |
| | | isInDate: true, |
| | | stock: '0.7321', |
| | | store: '3', |
| | | measures: [ |
| | | { |
| | | desc: '未及时设防未及时设防未及时设防未及时设防未及时设防未及时设防未及时设防未及时设防未及时设防未及时设防未及时设防', |
| | | checkTime: '2022年12月13日', |
| | | level: '一般隐患', |
| | | action: '及时设防', |
| | | money: '30', |
| | | name: '田维云', |
| | | status: '整改完成期限:2022年10月13日' |
| | | }, |
| | | { |
| | | desc: '未及时设防', |
| | | checkTime: '2022年12月13日', |
| | | level: '一般隐患', |
| | | action: '及时设防', |
| | | money: '0', |
| | | name: '刘海亮', |
| | | status: '整改完成期限:2022年10月13日' |
| | | } |
| | | ], |
| | | totalRisks: 2, |
| | | majorRisk: 0, |
| | | fixRisks: 2, |
| | | fixMajorRisk: 0, |
| | | reporter: '张建路', |
| | | reportPhone: '15699336111', |
| | | reportTime: '2022-10-13' |
| | | 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 |
| | | } |
| | |
| | | width="60%" |
| | | center |
| | | > |
| | | <el-form ref="form" :model="workForm" label-width="80px"> |
| | | <el-form-item label="专项检查任务名称:" label-width="140px"> |
| | | <el-input type="textarea" v-model="workForm.name"></el-input> |
| | | <el-form :model="workForm" :rules="rules" ref="ruleForm" 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> |
| | | <div class="form-part"> |
| | | <h3>省级检查指标</h3> |
| | |
| | | <el-divider content-position="left">批发企业</el-divider> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px"> |
| | | <el-input v-model="workForm.pro.whole" class="input-with-select"> |
| | | <el-select v-model="workForm.pro.wholeUnit" slot="append"> |
| | | <el-option label="家" value="1"></el-option> |
| | | <el-option label="%" value="2"></el-option> |
| | | <el-form-item label="完成检查不低于:" label-width="140px" prop="provinceWholesaleCheckTarget"> |
| | | <el-input v-model="workForm.provinceWholesaleCheckTarget" class="input-with-select"> |
| | | <el-select v-model="workForm.provinceWholesaleCheckTargetUnit" slot="append"> |
| | | <el-option label="家" :value="1"></el-option> |
| | | <el-option label="%" :value="2"></el-option> |
| | | </el-select> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成期限:" label-width="140px"> |
| | | <el-form-item label="完成期限:" label-width="140px" prop="provinceWholesaleCheckDeadline"> |
| | | <el-date-picker |
| | | v-model="workForm.pro.wholeDate" |
| | | type="date" |
| | | v-model="workForm.provinceWholesaleCheckDeadline" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请选择截止日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | <el-divider content-position="left">零售企业</el-divider> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px"> |
| | | <el-input v-model="workForm.pro.retail" class="input-with-select"> |
| | | <el-select v-model="workForm.pro.retailUnit" slot="append"> |
| | | <el-option label="家" value="1"></el-option> |
| | | <el-option label="%" value="2"></el-option> |
| | | <el-form-item label="完成检查不低于:" label-width="140px" prop="provinceRetailCheckTarget"> |
| | | <el-input v-model="workForm.provinceRetailCheckTarget" class="input-with-select"> |
| | | <el-select v-model="workForm.provinceRetailCheckTargetUnit" slot="append"> |
| | | <el-option label="家" :value="1"></el-option> |
| | | <el-option label="%" :value="2"></el-option> |
| | | </el-select> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成期限:" label-width="140px"> |
| | | <el-form-item label="完成期限:" label-width="140px" prop="provinceRetailCheckDeadline"> |
| | | <el-date-picker |
| | | v-model="workForm.pro.retailDate" |
| | | type="date" |
| | | v-model="workForm.provinceRetailCheckDeadline" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请选择截止日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | <el-divider content-position="left">批发企业</el-divider> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px"> |
| | | <el-input v-model="workForm.city.whole" class="input-with-select"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px" prop="cityWholesaleCheckTarget"> |
| | | <el-input v-model="workForm.cityWholesaleCheckTarget" class="input-with-select"> |
| | | <template slot="append">%</template> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成期限:" label-width="140px"> |
| | | <el-form-item label="完成期限:" label-width="140px" prop="cityWholesaleCheckDeadline"> |
| | | <el-date-picker |
| | | v-model="workForm.city.wholeDate" |
| | | type="date" |
| | | v-model="workForm.cityWholesaleCheckDeadline" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请选择截止日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | <el-divider content-position="left">零售企业</el-divider> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px"> |
| | | <el-input v-model="workForm.city.retail" class="input-with-select"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px" prop="cityRetailCheckTarget"> |
| | | <el-input v-model="workForm.cityRetailCheckTarget" class="input-with-select"> |
| | | <template slot="append">%</template> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成期限:" label-width="140px"> |
| | | <el-form-item label="完成期限:" label-width="140px" prop="cityRetailCheckDeadline"> |
| | | <el-date-picker |
| | | v-model="workForm.city.retailDate" |
| | | type="date" |
| | | v-model="workForm.cityRetailCheckDeadline" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请选择截止日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | <el-divider content-position="left">批发企业</el-divider> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px"> |
| | | <el-input v-model="workForm.county.whole" class="input-with-select"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px" prop="areaWholesaleCheckTarget"> |
| | | <el-input v-model="workForm.areaWholesaleCheckTarget" class="input-with-select"> |
| | | <template slot="append">%</template> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成期限:" label-width="140px"> |
| | | <el-form-item label="完成期限:" label-width="140px" prop="areaWholesaleCheckDeadline"> |
| | | <el-date-picker |
| | | v-model="workForm.county.wholeDate" |
| | | type="date" |
| | | v-model="workForm.areaWholesaleCheckDeadline" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请选择截止日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | <el-divider content-position="left">零售企业</el-divider> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px"> |
| | | <el-input v-model="workForm.county.retail" class="input-with-select"> |
| | | <el-form-item label="完成检查不低于:" label-width="140px" prop="areaRetailCheckTarget"> |
| | | <el-input v-model="workForm.areaRetailCheckTarget" class="input-with-select"> |
| | | <template slot="append">%</template> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完成期限:" label-width="140px"> |
| | | <el-form-item label="完成期限:" label-width="140px" prop="areaRetailCheckDeadline"> |
| | | <el-date-picker |
| | | v-model="workForm.county.retailDate" |
| | | type="date" |
| | | v-model="workForm.areaRetailCheckDeadline" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="请选择截止日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <el-form-item label="企业自查期限:" label-width="140px"> |
| | | <el-form-item label="企业自查期限:" label-width="140px" prop="enterpriseSelfCheckDeadline"> |
| | | <el-date-picker |
| | | v-model="workForm.corpDate" |
| | | type="date" |
| | | v-model="workForm.enterpriseSelfCheckDeadline" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </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 @click="resetForm('ruleForm')">重置</el-button> |
| | | <el-button type="primary" @click="confirmSend('ruleForm')">确认下发</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {computePageCount} from "@/utils"; |
| | | |
| | | import{sendCheckTask} from "@/api/specialCheck" |
| | | export default { |
| | | name: "sendWork", |
| | | data(){ |
| | | return{ |
| | | dialogVisible:false, |
| | | workForm: { |
| | | name: '', |
| | | pro:{ |
| | | whole: '', |
| | | wholeUnit: '1', |
| | | wholeDate: '', |
| | | retail: '', |
| | | retailUnit: '1', |
| | | retailDate: '' |
| | | }, |
| | | city:{ |
| | | whole: '', |
| | | wholeDate: '', |
| | | retail: '', |
| | | retailDate: '' |
| | | }, |
| | | county:{ |
| | | whole: '', |
| | | wholeDate: '', |
| | | retail: '', |
| | | retailDate: '' |
| | | } |
| | | taskName: '', |
| | | provinceWholesaleCheckTarget: null, |
| | | provinceWholesaleCheckTargetUnit: 1, |
| | | provinceWholesaleCheckDeadline: '', |
| | | provinceRetailCheckTarget: null, |
| | | provinceRetailCheckTargetUnit: 1, |
| | | provinceRetailCheckDeadline: '', |
| | | cityWholesaleCheckTarget: null, |
| | | cityWholesaleCheckDeadline: '', |
| | | cityRetailCheckTarget: null, |
| | | cityRetailCheckDeadline: '', |
| | | areaWholesaleCheckTarget: null, |
| | | areaWholesaleCheckDeadline: '', |
| | | areaRetailCheckTarget: null, |
| | | areaRetailCheckDeadline: '', |
| | | enterpriseSelfCheckDeadline: '' |
| | | }, |
| | | rules: { |
| | | taskName: [{ required: true, message: '请输入任务名称', trigger: 'blur' }], |
| | | provinceWholesaleCheckTarget: [{ required: true, message: '请输入指标', trigger: 'blur' }], |
| | | provinceWholesaleCheckDeadline: [{ required: true, message: '请选择日期', trigger: 'blur' }], |
| | | provinceRetailCheckTarget: [{ required: true, message: '请输入指标', trigger: 'blur' }], |
| | | provinceRetailCheckDeadline: [{ required: true, message: '请选择日期', trigger: 'blur' }], |
| | | cityWholesaleCheckTarget: [{ required: true, message: '请输入指标', trigger: 'blur' }], |
| | | cityWholesaleCheckDeadline: [{ required: true, message: '请选择日期', trigger: 'blur' }], |
| | | cityRetailCheckTarget: [{ required: true, message: '请输入指标', trigger: 'blur' }], |
| | | cityRetailCheckDeadline: [{ required: true, message: '请选择日期', trigger: 'blur' }], |
| | | areaWholesaleCheckTarget: [{ required: true, message: '请输入指标', trigger: 'blur' }], |
| | | areaWholesaleCheckDeadline: [{ required: true, message: '请选择日期', trigger: 'blur' }], |
| | | areaRetailCheckTarget: [{ required: true, message: '请输入指标', trigger: 'blur' }], |
| | | areaRetailCheckDeadline: [{ required: true, message: '请选择日期', trigger: 'blur' }], |
| | | enterpriseSelfCheckDeadline: [{ required: true, message: '请选择日期', trigger: 'blur' }] |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | }, |
| | | methods:{ |
| | | confirmSend(){ |
| | | this.dialogVisible = false |
| | | confirmSend(formName){ |
| | | const t = this |
| | | t.$refs[formName].validate(async (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) |
| | | } else { |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | } |
| | | }, |
| | | } |
| New file |
| | |
| | | <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> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {mapGetters} from "vuex"; |
| | | import Cookies from "_js-cookie@2.2.0@js-cookie"; |
| | | import {paramList} from "../../../api/contract"; |
| | | import {computePageCount} from "../../../utils"; |
| | | import {parseError} from "../../../utils/messageDialog"; |
| | | import { getCheckUnitType,getDataStatistics, getSpecialCheckTask } from "@/api/specialCheck" |
| | | |
| | | export default { |
| | | name: "sumSheet", |
| | | components: {}, |
| | | data(){ |
| | | return{ |
| | | taskId: null, |
| | | unitType: null, |
| | | recordTotal: 0, |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | listLoading: false, |
| | | activeTab: '1', |
| | | enterpriseCity: null, |
| | | enterpriseArea: null, |
| | | sum:{ |
| | | enterpriseSum: null, |
| | | validEnterpriseNum: null, |
| | | selfCheckEnterpriseNum: null, |
| | | selfCheckRateRequire: 100, |
| | | validSelfCheckEnterpriseNum: null, |
| | | stockNum: null, |
| | | storageCapacity: null, |
| | | selfhiddendangerSum: null, |
| | | selfmajorHiddendangerNum: null, |
| | | selfcompletedRectifyHiddendangerSum: null, |
| | | selfcompletedRectifyMajorHiddendangerNum: null, |
| | | spotCheckEnterpriseNum: null, |
| | | spotCheckRateRequire: 100, |
| | | spotCheckHiddendangerSum: null, |
| | | spotCheckMajorHiddendangerNum: null, |
| | | spotCheckCompletedRectifyHiddendangerSum:null, |
| | | spotCheckCompletedRectifyMajorHiddendangerNum:null, |
| | | revokeLicenseEnterpriseSum:null, |
| | | detainLicenseSum:null, |
| | | amerceEnterpriseNum:null, |
| | | amerceMoneySum:null |
| | | }, |
| | | thisLevelStatistic: { |
| | | thisLevelSpotCheckinfo:{}, |
| | | thisLevelSpotCheckHiddendangerinfo:{} |
| | | }, |
| | | institutionalData: [] |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | if(t.taskId){t.getDataStatistics()} |
| | | else{t.getCheckTask()} |
| | | t.getCheckUnitType() |
| | | }, |
| | | 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 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 res = await getDataStatistics(data) |
| | | if(res.data.code === "200"){ |
| | | t.thisLevelStatistic = res.data.result.thisLevelInstitutionalDataInfo |
| | | t.institutionalData = res.data.result.institutionalDataInfo |
| | | t.sum.enterpriseSum = t.getSum(Array.from(t.institutionalData, ({ enterpriseSum }) => enterpriseSum)) |
| | | t.sum.validEnterpriseNum = t.getSum(Array.from(t.institutionalData, ({ validEnterpriseNum }) => validEnterpriseNum)) |
| | | t.sum.selfCheckEnterpriseNum = t.getSum(Array.from(t.institutionalData, ({ selfCheckEnterpriseNum }) => selfCheckEnterpriseNum)) |
| | | t.sum.validSelfCheckEnterpriseNum = t.getSum(Array.from(t.institutionalData, ({ validSelfCheckEnterpriseNum }) => validSelfCheckEnterpriseNum)) |
| | | t.sum.stockNum = t.getSum(Array.from(t.institutionalData, ({ stockNum }) => stockNum)) |
| | | console.log(Array.from(t.institutionalData, ({ stockNum }) => stockNum),'666666666666') |
| | | t.sum.storageCapacity = t.getSum(Array.from(t.institutionalData, ({ storageCapacity }) => storageCapacity)) |
| | | 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})) |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | }, |
| | | switchSheet(tab, event) { |
| | | const t = this |
| | | t.getDataStatistics() |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | ::v-deep.el-tabs--border-card .el-tabs__content{ |
| | | height: calc(100vh - 200px); |
| | | overflow: scroll !important; |
| | | } |
| | | .data-table{ |
| | | border-collapse: collapse; |
| | | border: 1px solid #ccc; |
| | | margin: 0 0 20px; |
| | | background: #fff; |
| | | box-shadow: 0 3px 12px rgba(0,0,0,.2); |
| | | tr{ |
| | | border-bottom: 1px solid #ccc; |
| | | white-space: nowrap; |
| | | font-size: 12px; |
| | | &:last-of-type{ |
| | | border-bottom: none; |
| | | } |
| | | |
| | | th{ |
| | | padding: 6px 4px; |
| | | border: 1px solid #ccc; |
| | | border-left: none; |
| | | font-weight: bolder; |
| | | text-align: center; |
| | | color: #409EFF; |
| | | |
| | | &:first-of-type{ |
| | | border-top: 1px solid #ccc; |
| | | border-left: 1px solid #ccc; |
| | | } |
| | | &.dark-bg{ |
| | | background: #409EFF; |
| | | color: #fff; |
| | | } |
| | | } |
| | | |
| | | td{ |
| | | padding: 6px 4px; |
| | | border-right: 1px solid #ccc; |
| | | text-align: center; |
| | | |
| | | &:last-of-type{ |
| | | border-right: none; |
| | | } |
| | | } |
| | | .warning{ |
| | | color: red; |
| | | } |
| | | } |
| | | .b-font{ |
| | | font-size: 16px; |
| | | font-weight: bolder; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="table"> |
| | | <div class="filter-container"> |
| | | <div class="table-tit"> |
| | | <h2>2023年上半年烟花爆竹生产经营安全检查(批发)</h2> |
| | | <h2 v-show="enterpriseType == 1">2023年上半年烟花爆竹生产经营安全检查(批发)</h2> |
| | | <h2 v-show="enterpriseType == 2">2023年上半年烟花爆竹生产经营安全检查(零售)</h2> |
| | | <span>(检查一家反馈一家,没有检查出隐患问题的也要登记反馈)</span> |
| | | </div> |
| | | <div class="control-bar"> |
| | | <div> |
| | | 批发企业共计<span>17</span>家,其中:已自查<span>15</span>家,未自查<span class="undone">2</span>家;本级已经抽查<span>5</span>家,未检查<span class="undone">12</span>家,完成率<span>100%</span>。 |
| | | <div v-show="enterpriseType == 1"> |
| | | 批发企业共计<span class="point-data" @click="getEnterpriseCompleteInfoList">{{enterpriseCount}}</span>家,其中:已自查<span class="point-data" @click="toSelfEnterprise(1)">{{ selfCheckEnterpriseCount }}</span>家,未自查<span @click="toSelfEnterprise(0)" class="undone point-data">{{ noSelfCheckEnterpriseCount }}</span>家;本级已经抽查<span class="point-data" @click="toLevelEnterprise(1)">{{ thislevelAlreadyCheckCount }}</span>家,未检查<span @click="toLevelEnterprise(0)" class="undone point-data">{{ thislevelNoCheckCount }}</span>家,完成率<span>{{ thislevelCompletionRate + '%' }}</span>。 |
| | | </div> |
| | | <div v-show="enterpriseType == 2"> |
| | | 零售企业共计<span class="point-data" @click="getEnterpriseCompleteInfoList">{{enterpriseCount}}</span>家,其中:已自查<span class="point-data" @click="toSelfEnterprise(1)">{{ selfCheckEnterpriseCount }}</span>家,未自查<span @click="toSelfEnterprise(0)" class="undone point-data">{{ noSelfCheckEnterpriseCount }}</span>家;本级已经抽查<span class="point-data" @click="toLevelEnterprise(1)">{{ thislevelAlreadyCheckCount }}</span>家,未检查<span @click="toLevelEnterprise(0)" class="undone point-data">{{ thislevelNoCheckCount }}</span>家,完成率<span>{{ thislevelCompletionRate + '%' }}</span>。 |
| | | </div> |
| | | <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="showFilter = !showFilter">{{showFilter?'关闭查询':'自定义查询'}}</el-button> |
| | | </div> |
| | |
| | | <el-cascader |
| | | :options="options" |
| | | v-model="selectedOptions" |
| | | :props="{ checkStrictly: true,expandTrigger: 'hover'}" |
| | | :props="{ checkStrictly: true,expandTrigger: 'hover',value: 'label'}" |
| | | separator="-" |
| | | @change="locationChange"> |
| | | </el-cascader> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <span>自查是否有隐患:</span> |
| | | <el-radio-group v-model="search.isRisky"> |
| | | <el-radio-group v-model="search.isRisky" @input="changeRadio()"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="2">否</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-col> |
| | | <el-col :span="4"> |
| | | <el-button style="margin-right: 10px;" type="primary">查询</el-button> |
| | | <el-button class="resetBtn" type="primary" plain>重置</el-button> |
| | | <el-button style="margin-right: 10px;" type="primary" @click="searchData()">查询</el-button> |
| | | <el-button class="resetBtn" type="primary" plain @click="resetSearch()">重置</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </transition> |
| | |
| | | > |
| | | |
| | | <el-table-column type="index" label="序号" align="center" width="80"/> |
| | | <el-table-column label="单位名称" prop="owner" align="center" width="180"> |
| | | <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="hiddendangerStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.owner }}</span> |
| | | <span>{{ scope.row.hiddendangerStatus == 1 ? '是' : '否' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="联系电话" prop="phone" align="center"> |
| | | <el-table-column label="自查填报时间" prop="selfcheckReportTime" width="130" align="center" sortable></el-table-column> |
| | | <el-table-column label="填报状态" prop="selfcheckStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.row.phone}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="库存数量/万箱" prop="stock" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.stock }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="是否查出隐患" prop="isRisk" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.isRisk == 0 ? '否' : '是' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="自查填报时间" prop="selfCheckTime" width="130" align="center" sortable> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.selfCheckTime }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="填报状态" prop="fillStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.fillStatus == 0 ? '未填报' : '已填报' }}</span> |
| | | <span>{{ scope.row.selfcheckStatus == 1 ? '已填报' : '未填报' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="详情" align="center" class-name="small-padding fixed-width"> |
| | |
| | | <el-button type="text" @click="viewDetails(scope.row)">查看</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="反馈状态" prop="feedback" align="center"> |
| | | <el-table-column label="反馈状态" prop="thislevelCheckStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.feedback == 0 ? '未反馈' : '已反馈' }}</span> |
| | | <span>{{ scope.row.thislevelCheckStatus == 1 ? '已反馈' : '未反馈' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="执法抽查" align="center" class-name="small-padding fixed-width"> |
| | | <el-table-column fixed="right" :label="unitType==1?'执法抽查':'执法检查'" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="toFeedback(scope.row)">情况反馈</el-button> |
| | | </template> |
| | |
| | | <el-pagination |
| | | v-show="recordTotal>0" |
| | | :current-page="currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-sizes="[10, 15]" |
| | | :page-size="pageSize" |
| | | :total="recordTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | <report-details ref="report"></report-details> |
| | | <check-details ref="report"></check-details> |
| | | <feedback-details ref="feedback"></feedback-details> |
| | | </div> |
| | | </template> |
| | |
| | | import {paramList} from "../../../api/contract"; |
| | | import {computePageCount} from "../../../utils"; |
| | | import {parseError} from "../../../utils/messageDialog"; |
| | | import ReportDetails from "./reportDetails"; |
| | | import checkDetails from "../../selfCheck/components/checkDetails" |
| | | import feedbackDetails from "./feedbackDetails"; |
| | | import { regionData } from 'element-china-area-data' |
| | | import { getCheckUnitType, getEnterpriseCompleteInfoList, getSpecialCheckTask } from "@/api/specialCheck" |
| | | |
| | | export default { |
| | | name: "wholesaleForm", |
| | | components: {ReportDetails,feedbackDetails}, |
| | | components: {checkDetails,feedbackDetails}, |
| | | data(){ |
| | | return{ |
| | | recordTotal: 0, |
| | | pageSize: 10, |
| | | pageTotal: 0, |
| | | currentPage: 1, |
| | | unitType: null, |
| | | taskId: null, |
| | | enterpriseType: null, |
| | | selfcheckStatus: null, |
| | | thislevelCheckStatus: null, |
| | | listLoading: false, |
| | | showFilter: false, |
| | | search:{ |
| | | name: '', |
| | | location: '', |
| | | isRisky: '' |
| | | province: '', |
| | | city: '', |
| | | area: '', |
| | | isRisky: null |
| | | }, |
| | | tableKey: 0, |
| | | options: regionData, |
| | | selectedOptions: [], |
| | | checkData: [ |
| | | { |
| | | owner: '单位一', |
| | | phone: '88888888', |
| | | stock: 266, |
| | | isRisk: 0, |
| | | selfCheckTime: '2022-10-27 15:16:00', |
| | | fillStatus: 1, |
| | | feedback: 0, |
| | | }, |
| | | { |
| | | owner: '单位二', |
| | | phone: '66666666', |
| | | stock: 288, |
| | | isRisk: 1, |
| | | selfCheckTime: '2022-10-27 15:16:00', |
| | | fillStatus: 0, |
| | | feedback: 1, |
| | | } |
| | | ] |
| | | enterpriseCount: null, |
| | | selfCheckEnterpriseCount: null, |
| | | noSelfCheckEnterpriseCount: null, |
| | | thislevelAlreadyCheckCount: null, |
| | | thislevelNoCheckCount: null, |
| | | thislevelCompletionRate: null, |
| | | checkData: [] |
| | | } |
| | | }, |
| | | created() { |
| | | // this.getDataList(); |
| | | const t = this |
| | | t.getCheckUnitType() |
| | | if(t.taskId && t.enterpriseType){ |
| | | t.getEnterpriseCompleteInfoList() |
| | | }else{ |
| | | t.getCheckTask() |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | |
| | | ]) |
| | | }, |
| | | methods:{ |
| | | // getDataList() { |
| | | // const t = this; |
| | | // const params = {}; |
| | | // params['pageIndex'] = t.currentPage; |
| | | // params['pageSize'] = t.pageSize; |
| | | // params['sort'] = t.sort; |
| | | // params['order'] = t.order; |
| | | // const userName = Cookies.get('userName'); |
| | | // const name = Cookies.get('name'); |
| | | // params['operator'] = name + '(' + userName + ')'; |
| | | // for (const i in t.queryForm) { |
| | | // if (t.queryForm[i] != undefined && t.queryForm[i].toString() != '') { |
| | | // params[i] = t.queryForm[i] |
| | | // } |
| | | // } |
| | | // t.listLoading = true |
| | | // paramList(params).then(response => { |
| | | // const res = response.data; |
| | | // if (res.code === "200") { |
| | | // const result = res.result; |
| | | // t.recordTotal = result.totalCount; |
| | | // t.pageSize = result.pageSize; |
| | | // t.pageTotal = computePageCount(result.totalCount, result.pageSize); |
| | | // t.currentPage = result.pageIndex; |
| | | // t.checkData = result.result |
| | | // } else { |
| | | // parseError({error: res.message, vm: t}) |
| | | // } |
| | | // t.listLoading = false |
| | | // }).catch(error => { |
| | | // t.listLoading = false |
| | | // parseError({error: error, vm: t}) |
| | | // }) |
| | | // }, |
| | | 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 getCheckTask(){ |
| | | const t = this |
| | | const res = await getSpecialCheckTask() |
| | | if(res.data.code === "200"){ |
| | | t.taskId = res.data.result.specialCheckTaskSimplifyInfos[0].id |
| | | t.enterpriseType = 1 |
| | | t.getEnterpriseCompleteInfoList() |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | }, |
| | | async getEnterpriseCompleteInfoList(){ |
| | | const t = this |
| | | t.listLoading = true |
| | | let data = {pageIndex: t.currentPage,pageSize: t.pageSize,taskId: t.taskId,enterpriseType: t.enterpriseType,selfcheckStatus:t.selfcheckStatus,thislevelCheckStatus: t.thislevelCheckStatus,enterpriseName: t.search.name, enterpriseProvince: t.search.province, enterpriseCity: t.search.city, enterpriseArea: t.search.area, hiddendangerStatus: t.search.isRisky} |
| | | let res = await getEnterpriseCompleteInfoList(data) |
| | | if(res.data.code === "200"){ |
| | | t.enterpriseCount = res.data.result.enterpriseCount |
| | | t.selfCheckEnterpriseCount = res.data.result.selfCheckEnterpriseCount |
| | | t.noSelfCheckEnterpriseCount = res.data.result.noSelfCheckEnterpriseCount |
| | | t.thislevelAlreadyCheckCount = res.data.result.thislevelAlreadyCheckCount |
| | | t.thislevelNoCheckCount = res.data.result.thislevelNoCheckCount |
| | | t.thislevelCompletionRate = res.data.result.thislevelCompletionRate |
| | | t.checkData = res.data.result.iPage.records |
| | | t.recordTotal = res.data.result.iPage.total |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | t.listLoading = false |
| | | }, |
| | | |
| | | handleSizeChange: function (val) { |
| | | this.pageSize = val |
| | | this.currentPage = 1 |
| | | // this.getDataList() |
| | | this.getEnterpriseCompleteInfoList() |
| | | }, |
| | | handleCurrentChange: function (val) { |
| | | this.currentPage = val |
| | | // this.getDataList() |
| | | this.getEnterpriseCompleteInfoList() |
| | | }, |
| | | locationChange(value) { |
| | | console.log(value) |
| | | const t = this |
| | | t.search.province = value[0] |
| | | t.search.city = value[1] ? value[1] : '' |
| | | t.search.area = value[2] ? value[2] : '' |
| | | t.getEnterpriseCompleteInfoList() |
| | | }, |
| | | |
| | | viewDetails(row){ |
| | | console.log(row) |
| | | changeRadio(){ |
| | | this.getEnterpriseCompleteInfoList() |
| | | }, |
| | | |
| | | searchData(){ |
| | | this.getEnterpriseCompleteInfoList() |
| | | }, |
| | | |
| | | resetSearch(){ |
| | | this.search = { |
| | | name: '', |
| | | province: '', |
| | | city: '', |
| | | area: '', |
| | | isRisky: null |
| | | } |
| | | this.selectedOptions = [] |
| | | this.getEnterpriseCompleteInfoList() |
| | | }, |
| | | |
| | | toSelfEnterprise(value){ |
| | | const t = this |
| | | t.thislevelCheckStatus = null |
| | | t.selfcheckStatus = value |
| | | t.getEnterpriseCompleteInfoList() |
| | | }, |
| | | toLevelEnterprise(value){ |
| | | const t = this |
| | | t.thislevelCheckStatus = value |
| | | t.selfcheckStatus = null |
| | | t.getEnterpriseCompleteInfoList() |
| | | }, |
| | | viewDetails(row){ |
| | | const t = this |
| | | t.$refs.report.id = row.id |
| | | t.$refs.report.getEnterpriseInfo() |
| | | t.$refs.report.dialogVisible = true |
| | | }, |
| | | |
| | | toFeedback(row){ |
| | | console.log(row) |
| | | const t = this |
| | | t.$refs.feedback.corpInfo = row |
| | | t.$refs.feedback.id = row.id |
| | | t.$refs.feedback.feedbackForm.id = row.id |
| | | t.$refs.feedback.getSpotCheckReportInfo() |
| | | t.$refs.feedback.unitType = t.unitType |
| | | t.$refs.feedback.dialogVisible = true |
| | | } |
| | | } |
| | |
| | | .undone{ |
| | | color: #ff0000; |
| | | } |
| | | |
| | | .point-data{ |
| | | cursor: pointer; |
| | | |
| | | &:hover{ |
| | | text-decoration: underline; |
| | | } |
| | | } |
| | | } |
| | | .filter-item{ |
| | | margin-bottom: 0; |
| | |
| | | <template> |
| | | <div class="app-container" style="padding-bottom:40px"> |
| | | <div class="menu-area"> |
| | | <el-button class="add-btn" type="primary" icon="el-icon-plus" @click="sendJob()">新任务下发</el-button> |
| | | <!-- <div class="menu-tit">2023年上半年安全检查</div>--> |
| | | <el-button v-if="unitType==1" class="add-btn" type="primary" icon="el-icon-plus" @click="sendJob()">新任务下发</el-button> |
| | | <el-menu |
| | | default-active="1" |
| | | class="el-menu-vertical-demo" |
| | | background-color="#eeeeee" |
| | | text-color="#333" |
| | | unique-opened |
| | | active-text-color="#034EA2" |
| | | @select="menuSelect"> |
| | | <el-submenu index="1"> |
| | | <el-submenu v-for="(item,i) in taskMenu" :key="i" :index="item.id + ''"> |
| | | <template slot="title"> |
| | | <i class="el-icon-s-order"></i> |
| | | <span>2023年上半年安全检查</span> |
| | | <span>{{item.taskName}}</span> |
| | | </template> |
| | | <el-menu-item index="1"> |
| | | <span slot="title">安全检查反馈情况(批发)</span> |
| | |
| | | <el-menu-item index="2"> |
| | | <span slot="title">安全检查反馈情况(零售)</span> |
| | | </el-menu-item> |
| | | <el-menu-item index="3"> |
| | | <el-menu-item index="3" v-if="unitType==1||unitType==2"> |
| | | <span slot="title">安全检查情况汇总</span> |
| | | </el-menu-item> |
| | | </el-submenu> |
| | | </el-menu> |
| | | </div> |
| | | <div class="table-area"> |
| | | <wholesale-form v-show="curTab == 1"></wholesale-form> |
| | | <retail-form v-show="curTab == 2"></retail-form> |
| | | <wholesale-form v-show="curTab == 1 || curTab == 2" ref="wholesale"></wholesale-form> |
| | | <sum-sheet v-show="curTab == 3" ref="sumSheet"></sum-sheet> |
| | | </div> |
| | | <send-work ref="send"></send-work> |
| | | </div> |
| | |
| | | import {MessageBox} from 'element-ui' |
| | | import { getToken } from '@/utils/auth' |
| | | import wholesaleForm from './components/wholesaleForm' |
| | | import retailForm from "./components/retailForm" |
| | | import sumSheet from "./components/sumSheet" |
| | | import sendWork from "./components/sendWork" |
| | | import { getCheckUnitType, getSpecialCheckTask } from "@/api/specialCheck" |
| | | |
| | | export default { |
| | | name: "specialCheck", |
| | | components:{ |
| | | wholesaleForm, |
| | | retailForm, |
| | | sumSheet, |
| | | sendWork |
| | | }, |
| | | data() { |
| | | return { |
| | | curTab: 1 |
| | | curTab: 1, |
| | | unitType: 1, |
| | | taskMenu: [], |
| | | taskId: null |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | const t = this |
| | | t.getCheckUnitType() |
| | | t.getSpecialCheckTask() |
| | | }, |
| | | mounted() { |
| | | |
| | |
| | | ]) |
| | | }, |
| | | methods: { |
| | | menuSelect(key, keyPath) { |
| | | this.curTab = key |
| | | 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 getSpecialCheckTask(){ |
| | | const t = this |
| | | 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() |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | 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) |
| | | t.$refs.wholesale.getEnterpriseCompleteInfoList() |
| | | }else{ |
| | | t.$refs.sumSheet.taskId = Number(keyPath[0]) |
| | | t.$refs.sumSheet.getDataStatistics() |
| | | } |
| | | t.curTab = key |
| | | }, |
| | | |
| | | sendJob(){ |
| | | this.$refs.send.dialogVisible = true |
| | | } |
| | |
| | | align-items: flex-start; |
| | | |
| | | .menu-area{ |
| | | width: 20%; |
| | | width: 18%; |
| | | .add-btn{ |
| | | width: 100%; |
| | | margin-bottom: 20px; |
| | | background: #034EA2; |
| | | } |
| | | .menu-tit{ |
| | | ::v-deep.el-submenu__title{ |
| | | height: auto; |
| | | line-height: 1.5; |
| | | padding: 20px 24px 20px 0; |
| | | white-space: pre-wrap; |
| | | } |
| | | ::v-deep.el-menu-item{ |
| | | width: 100%; |
| | | background: #eee; |
| | | padding: 20px 20px 10px; |
| | | font-size: 18px; |
| | | font-weight: bolder; |
| | | box-sizing: border-box; |
| | | height: auto; |
| | | line-height: 1.5; |
| | | padding: 20px 24px 20px 0; |
| | | min-width: 100px; |
| | | white-space: pre-wrap; |
| | | } |
| | | } |
| | | .table-area{ |
| | | width: calc(80% - 20px); |
| | | width: calc(82% - 20px); |
| | | } |
| | | } |
| | | </style> |
| New file |
| | |
| | | <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.enterpriseName}}</span></div> |
| | | <div>所属省市县: <span class="m-color">{{corpInfo.enterpriseProvince + corpInfo.enterpriseCity + corpInfo.enterpriseArea}}</span></div> |
| | | <div>检查层级: <span class="m-color">{{ corpInfo.checkUnitType == 1 ? '省级' : (corpInfo.checkUnitType == 2 ? '市级' : '县级') }}</span></div> |
| | | <div>检查单位: <span class="m-color">{{corpInfo.checkName}}</span></div> |
| | | </div> |
| | | <div class="corp-list"> |
| | | <table class="corp-table"> |
| | | <tr> |
| | | <td class="m-color w-25">检查时间</td> |
| | | <td class="m-color w-25">{{corpInfo.checkTime}}</td> |
| | | <td class="m-color w-25">是否检查出隐患问题</td> |
| | | <td class="m-color w-25">{{corpInfo.hiddendangerStatus==1?'是':'否'}}</td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="text-align: center" v-if="corpInfo.hiddendangerStatus == 1">自查与整改情况</tr> |
| | | <tr v-if="corpInfo.hiddendangerStatus == 1"> |
| | | <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-30">整改措施</td> |
| | | <td class="m-color w-10">整改资金(元)</td> |
| | | <td class="m-color w-10">责任人</td> |
| | | <td class="m-color w-20">隐患状态</td> |
| | | </tr> |
| | | <tr v-for="(item,index) in corpInfo.hiddendangerInfos" :key="index" v-if="corpInfo.hiddendangerStatus == 1"> |
| | | <td class="w-5">{{index}}</td> |
| | | <td class="w-15 overText">{{item.spotCheckHiddendanger}}</td> |
| | | <td class="w-10">{{item.hiddendangerLevel == 1 ? '一般隐患' : '重大隐患'}}</td> |
| | | <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"> |
| | | <span v-if="item.rectifyStatus == 0"> |
| | | 未整改 |
| | | <el-button type="text" @click="toRectify(item)">去整改</el-button> |
| | | </span> |
| | | <span v-else> |
| | | {{item.completeRectifyTime + '整改完成'}} |
| | | </span> |
| | | </td> |
| | | </tr> |
| | | <tr class="m-color b-font" style="text-align: center">合计</tr> |
| | | <tr> |
| | | <td class="m-color w-50">隐患总数</td> |
| | | <td class="m-color w-50">重大隐患数量</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="w-50">{{corpInfo.hiddendangerSum}}</td> |
| | | <td class="w-50">{{corpInfo.majorHiddendangerNum}}</td> |
| | | </tr> |
| | | </table> |
| | | <!-- <div class="table-bottom">--> |
| | | <!-- <div>填报人: <span class="m-color">{{corpInfo.selfcheckReportUserName}}</span></div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="table-bottom">--> |
| | | <!-- <div>填报人联系电话: <span class="m-color">{{corpInfo.selfcheckReportUserMobile}}</span></div>--> |
| | | <!-- <div>填报时间: <span class="m-color">{{corpInfo.reportModifyTime}}</span></div>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="confirmBack()">返回</el-button> |
| | | </span> |
| | | <el-dialog |
| | | :visible.sync="dialogReport" |
| | | title="整改填报" |
| | | append-to-body |
| | | :close-on-click-modal="false" |
| | | width="40%" |
| | | center |
| | | > |
| | | <el-form ref="reportFormRef" :model="reportForm" label-width="140px"> |
| | | <el-form-item label="当前隐患:"> |
| | | <el-input type="textarea" v-model="reportForm.info"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="当前完成整改日期:"> |
| | | <el-date-picker |
| | | v-model="reportForm.completeRectifyTime" |
| | | type="date" |
| | | placeholder="请选择整改日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="整改资金:"> |
| | | <el-input v-model="reportForm.rectifyPrice"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="整改措施:"> |
| | | <el-input type="textarea" autosize v-model="reportForm.rectifyMeasure"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="负责人:"> |
| | | <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> |
| | | </span> |
| | | </el-dialog> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {computePageCount} from "@/utils"; |
| | | import { getSpotCheckRecorder, updateSpotCheckRectifyInfo } from "@/api/selfCheck"; |
| | | |
| | | export default { |
| | | name: "supervisionDetails", |
| | | data(){ |
| | | return{ |
| | | dialogVisible:false, |
| | | dialogReport: false, |
| | | id: null, |
| | | unitType: 1, |
| | | corpInfo:{ |
| | | enterpriseName: '', |
| | | enterpriseProvince: '', |
| | | enterpriseCity: '', |
| | | enterpriseArea: '', |
| | | checkUnitType: 1, |
| | | checkName: '', |
| | | checkTime: '', |
| | | hiddendangerStatus: 0, |
| | | hiddendangerInfos: [], |
| | | hiddendangerSum: 0, |
| | | majorHiddendangerNum: 0 |
| | | }, |
| | | reportForm:{ |
| | | id: null, |
| | | info: '', |
| | | completeRectifyTime: '', |
| | | rectifyPrice: 0, |
| | | rectifyMeasure: '', |
| | | chargePerson: '' |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | t.getEnterpriseInfo() |
| | | }, |
| | | watch: { |
| | | }, |
| | | methods:{ |
| | | async getEnterpriseInfo(){ |
| | | const t = this |
| | | const data = {id: t.id,unitType:t.unitType} |
| | | let res = await getSpotCheckRecorder(data) |
| | | if(res.data.code === "200"){ |
| | | t.corpInfo = res.data.result |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | }, |
| | | toRectify(item){ |
| | | const t = this |
| | | t.reportForm.info = item.spotCheckHiddendanger |
| | | t.reportForm.id = item.id |
| | | t.dialogReport = true |
| | | }, |
| | | |
| | | async confirmReport(){ |
| | | 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.dialogReport = false |
| | | }, |
| | | 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{ |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | flex-flow: wrap; |
| | | background: #ecf5ff; |
| | | padding: 10px; |
| | | border-radius: 4px; |
| | | |
| | | &>div{ |
| | | width: 50%; |
| | | margin-bottom: 10px; |
| | | &:nth-of-type(3),&:nth-of-type(4){ |
| | | margin-bottom: 0; |
| | | } |
| | | } |
| | | } |
| | | .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> |
| New file |
| | |
| | | <template> |
| | | <div class="app-container" style="padding-bottom:40px"> |
| | | <div class="table_content"> |
| | | <el-table |
| | | v-loading="listLoading" |
| | | :key="tableKey" |
| | | :data="checkData" |
| | | border |
| | | fit |
| | | highlight-current-row |
| | | style="width: 100%;" |
| | | > |
| | | |
| | | <el-table-column label="下发日期" prop="gmtCreate" align="center" width="180"></el-table-column> |
| | | <el-table-column label="任务名称" prop="taskName" align="center"></el-table-column> |
| | | <el-table-column label="下发部门" prop="createUnit" align="center"></el-table-column> |
| | | <el-table-column label="检查部门" prop="checkName" align="center"></el-table-column> |
| | | <el-table-column label="被检查日期" prop="checkTime" align="center"></el-table-column> |
| | | <el-table-column label="是否隐患" prop="hiddendangerStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.hiddendangerStatus == 0 ? '否' : '是' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="一般隐患" prop="countHiddendangerCommon" align="center"></el-table-column> |
| | | <el-table-column label="重大隐患" prop="countHiddendangerMajor" align="center"></el-table-column> |
| | | <el-table-column label="总数" prop="hiddendangerSum" align="center"></el-table-column> |
| | | <el-table-column label="整改情况" prop="rectifyStatus" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.rectifyStatus == 0?'存在未整改':'已完成' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="详情" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="toDetail(scope.row)">查看详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | :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> |
| | | <supervision-details ref="details"></supervision-details> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Cookies from 'js-cookie' |
| | | import {computePageCount} from "../../utils"; |
| | | import {mapGetters} from "vuex"; |
| | | import {MessageBox} from 'element-ui' |
| | | import { getToken } from '@/utils/auth' |
| | | import supervisionDetails from "./components/supervisionDetails" |
| | | import { getSpotCheckTask } from '@/api/selfCheck' |
| | | |
| | | export default { |
| | | name: "supervision", |
| | | components:{ |
| | | supervisionDetails |
| | | }, |
| | | data() { |
| | | return { |
| | | listLoading: false, |
| | | recordTotal: 0, |
| | | pageSize: 10, |
| | | pageTotal: 0, |
| | | currentPage: 1, |
| | | tableKey: 0, |
| | | checkData: [] |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | t.getSpotCheckList() |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | | 'userType', |
| | | 'name' |
| | | ]) |
| | | }, |
| | | methods: { |
| | | handleSizeChange: function (val) { |
| | | this.pageSize = val |
| | | this.currentPage = 1 |
| | | this.getSpotCheckList() |
| | | }, |
| | | handleCurrentChange: function (val) { |
| | | this.currentPage = val |
| | | this.getSpotCheckList() |
| | | }, |
| | | |
| | | toDetail(row){ |
| | | const t = this |
| | | t.$refs.details.dialogVisible = true |
| | | t.$refs.details.id = row.id |
| | | t.$refs.details.unitType = row.checkUnitType |
| | | }, |
| | | |
| | | async getSpotCheckList(){ |
| | | const t = this |
| | | t.listLoading = true |
| | | let data = {pageIndex: t.currentPage,pageSize: t.pageSize} |
| | | let res = await getSpotCheckTask(data) |
| | | if(res.data.code === "200"){ |
| | | t.recordTotal = res.data.result.total |
| | | t.checkData = res.data.result.records |
| | | }else{ |
| | | t.$message({ |
| | | type:'warning', |
| | | message:res.data.message |
| | | }) |
| | | } |
| | | t.listLoading = false |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .app-container{ |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: flex-start; |
| | | |
| | | .table_content{ |
| | | width: 100%; |
| | | } |
| | | } |
| | | </style> |