From 34ec919649adfefeecd0418284dd7b02e9ed49b8 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期三, 23 四月 2025 15:42:17 +0800 Subject: [PATCH] 添加批发仓库监测预警 --- src/views/selfCheck/components/selfReport.vue | 256 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 178 insertions(+), 78 deletions(-) diff --git a/src/views/selfCheck/components/selfReport.vue b/src/views/selfCheck/components/selfReport.vue index 6f9f9c6..ccdb390 100644 --- a/src/views/selfCheck/components/selfReport.vue +++ b/src/views/selfCheck/components/selfReport.vue @@ -5,113 +5,222 @@ :close-on-click-modal="false" width="60%" center + @close="reset()" > <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>{{checkForm.stockNum}}</span></div> <div><span>库容:</span> <span> - <el-input placeholder="请输入库容量" v-model="checkForm.store"></el-input> + <el-input placeholder="请输入库容量" type="number" v-model="checkForm.storageCapacity"></el-input> </span> </div> </div> <el-divider/> <div class="form-info"> <div>自查自改填报</div> - <div> - <span>自查是否有隐患:</span> - <el-radio-group v-model="checkForm.isRisky"> - <el-radio :label="1">是</el-radio> - <el-radio :label="2">否</el-radio> - </el-radio-group> - </div> </div> - <div class="risk-list" v-if="checkForm.isRisky==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"> - <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="level"> - <el-radio-group v-model="item.level"> - <el-radio :label="1">一般隐患</el-radio> - <el-radio :label="2">重大隐患</el-radio> - </el-radio-group> - </td> - <td class="edit"> - <el-button type="text" @click="deleteItem(index)">删除</el-button> - </td> - </tr> - </table> - <div class="addBtn"> - <el-button type="primary" plain icon="el-icon-plus" @click="addItem()">新增隐患问题</el-button> - </div> - </div> - <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> - </span> - <span>电话号码:</span> - <span> - <el-input v-model="checkForm.reportPhone"></el-input> - </span> - </div> + <el-form :model="checkForm" :rules="rules" ref="checkForm" label-width="150px" class="demo-ruleForm"> + + + <el-form-item label="自查是否有隐患:" prop="hiddendangerStatus"> + <el-radio-group v-model="checkForm.hiddendangerStatus"> + <el-radio :label="1">是</el-radio> + <el-radio :label="0">否</el-radio> + </el-radio-group> + </el-form-item> + + <div class="risk-list" v-if="checkForm.hiddendangerStatus==1"> + <table class="risk-table"> + <th><span>序号</span><span>检查出的隐患问题</span><span>检查时间</span><span>最后整改期限</span><span>隐患等级</span><span>操作</span></th> + <tr v-for="(item,index) in checkForm.submitHiddendangers"> + <td class="num">{{index + 1}}</td> + <td class="info"><el-input type="textarea" :rows="1" placeholder="请简述隐患问题" v-model="item.hiddendangerRemark"></el-input></td> + <td class="date"><el-date-picker v-model="item.checkTime" type="datetime" placeholder="选择检查时间" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker></td> + <td class="deadline"><el-date-picker v-model="item.rectifyDeadlineTime" type="datetime" placeholder="选择整改期限" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker></td> + <td class="level"> + <el-radio-group v-model="item.hiddendangerLevel"> + <el-radio :label="1">一般隐患</el-radio> + <el-radio :label="2">重大隐患</el-radio> + </el-radio-group> + </td> + <td class="edit"> + <el-button type="text" @click="deleteItem(index)">删除</el-button> + </td> + </tr> + </table> + <div class="addBtn"> + <el-button type="primary" plain icon="el-icon-plus" @click="addItem()">新增隐患问题</el-button> + </div> + </div> + <el-form-item label="填报人:" prop="selfcheckReportUserName"> + <el-input v-model="checkForm.selfcheckReportUserName"></el-input> + </el-form-item> + + <el-form-item label="电话号码:" prop="selfcheckReportUserMobile"> + <el-input v-model="checkForm.selfcheckReportUserMobile"></el-input> + </el-form-item> + + </el-form> + <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">取消</el-button> - <el-button type="primary" @click="confirmSend()">提交</el-button> + <el-button type="primary" v-stop-re-click @click="submitForm('checkForm')">提交</el-button> </span> </el-dialog> </template> <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: '', checkForm:{ - store: '', - isRisky: 2, - riskList: [ + stockNum: null, + storageCapacity: null, + hiddendangerStatus: null, + submitHiddendangers: [ { - info: '', - time: '', - deadline: '', - level: '' + id: null, + hiddendangerRemark: '', + checkTime: '', + rectifyDeadlineTime: '', + hiddendangerLevel: null } ], - reporter: '', - reportPhone: '' + selfcheckReportUserName: '', + selfcheckReportUserMobile: '' }, + rules: { + hiddendangerStatus: [ + { required: true, message: '请选择是否查出隐患', trigger: 'blur' } + ], + selfcheckReportUserName: [{ required: true, message: '请输入填报人', trigger: 'blur' }], + selfcheckReportUserMobile: [{ required: true, message: '请输入电话号码', trigger: 'blur' }] + } } }, watch: { }, + created() { + console.log(this.id) + }, methods:{ addItem(){ const newItem = { - info: '', - time: '', - level: '' + hiddendangerRemark: '', + checkTime: '', + rectifyDeadlineTime: '', + hiddendangerLevel: null } - this.checkForm.riskList.push(newItem) + this.checkForm.submitHiddendangers.push(newItem) }, deleteItem(i){ - console.log(i) - this.checkForm.riskList.splice(i,1) + const t = this + if(t.checkForm.submitHiddendangers.length == 1){ + t.$message({ + type:'warning', + message: '检查的隐患信息不可为空' + }) + }else{ + t.checkForm.submitHiddendangers.splice(i,1) + } }, - confirmSend(){ - this.dialogVisible = false + + async getReportInfo(){ + const t = this + let res = await getSelfBaseInfo({id:t.id}) + if(res.data.code === "200"){ + t.enterpriseName = res.data.result.enterpriseName + t.licenceValidStatus = res.data.result.licenceValidStatus + t.licenceValidDeadline = res.data.result.licenceValidDeadline + t.checkForm.stockNum = res.data.result.stockNum + }else{ + t.$message({ + type:'warning', + message:res.data.message + }) + } + }, + + submitForm(formName){ + const t = this + t.$refs[formName].validate(async (valid) => { + if(t.checkForm.hiddendangerStatus == 0){ + t.checkForm.submitHiddendangers = [] + } + + if(valid){ + if(t.checkForm.hiddendangerStatus == 1){ + if(t.checkForm.submitHiddendangers.find((e) => e.hiddendangerRemark == '') || t.checkForm.submitHiddendangers.find((e) => e.checkTime == '') || t.checkForm.submitHiddendangers.find((e) => e.rectifyDeadlineTime == '') || t.checkForm.submitHiddendangers.find((e) => e.hiddendangerLevel == null)){ + t.$message({ + type:'warning', + message: '请完善检查的隐患信息' + }) + return + } + } + if(t.checkForm.storageCapacity == null){ + t.$message({ + type:'warning', + message: '请输入库容信息' + }) + return + } + t.checkForm.id = t.id + let res = await saveSelfCheckReport(t.checkForm) + if(res.data.code === "200"){ + t.$message({ + type:'success', + message: '提交成功!' + }) + }else{ + t.$message({ + type:'warning', + message:res.data.message + }) + } + t.dialogVisible = false + t.$parent.getUncheckList(); + } else { + console.log('error submit!!'); + return false; + } + }) + }, + reset(){ + this.checkForm = { + stockNum: null, + storageCapacity: null, + hiddendangerStatus: null, + submitHiddendangers: [ + { + id: null, + hiddendangerRemark: '', + checkTime: '', + rectifyDeadlineTime: '', + hiddendangerLevel: null + } + ], + selfcheckReportUserName: '', + selfcheckReportUserMobile: '' + } } - }, + } } </script> @@ -149,21 +258,12 @@ } } .form-info{ - display: flex; - align-items: center; - &>div{ - margin-bottom: 10px; - margin-right: 40px; - display: flex; - align-items: center; - } - &>div:first-of-type{ - font-size: 18px; - font-weight: bolder; - padding-left: 0; - } + font-size: 18px; + font-weight: bolder; + padding-left: 0; } .risk-list{ + margin-bottom: 20px; .risk-table{ width: 100%; border-collapse: collapse; -- Gitblit v1.9.2