From bd19a941293d124d7c58c6d351e7e86c1fa15559 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 26 十一月 2024 11:18:50 +0800 Subject: [PATCH] 新增数据上报修改 --- src/views/dataUpload/saftyBaseInfo/parkingInfo/index.vue | 19 ++ src/views/dataUpload/saftyBaseInfo/equipInfo/components/addReport.vue | 44 +++- src/views/specialWorkSystem/specialIndex/index.vue | 30 +++ src/views/dataUpload/saftyBaseInfo/judgeReport/components/addReport.vue | 32 ++ src/views/dataUpload/saftyBaseInfo/cardInfo/components/addReport.vue | 121 ++++++++++++ src/views/dataUpload/saftyBaseInfo/productionInfo/components/addReport.vue | 26 ++ src/views/dataUpload/saftyBaseInfo/parkingInfo/components/addReport.vue | 102 +++++++++++ src/views/dataUpload/saftyBaseInfo/equipInfo/index.vue | 2 src/views/dataUpload/saftyBaseInfo/judgeReport/index.vue | 40 ++++ src/views/dataUpload/saftyBaseInfo/productionInfo/index.vue | 5 src/views/dataUpload/saftyBaseInfo/cardInfo/index.vue | 63 ++++++ 11 files changed, 444 insertions(+), 40 deletions(-) diff --git a/src/views/dataUpload/saftyBaseInfo/cardInfo/components/addReport.vue b/src/views/dataUpload/saftyBaseInfo/cardInfo/components/addReport.vue index b9e18f9..f925199 100644 --- a/src/views/dataUpload/saftyBaseInfo/cardInfo/components/addReport.vue +++ b/src/views/dataUpload/saftyBaseInfo/cardInfo/components/addReport.vue @@ -9,8 +9,20 @@ </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="分类名称" prop="cateName"> + <el-form-item label="分类名称"> <el-input v-model.trim="form.cateName" placeholder="分类名称" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="分类标识" prop="cateType"> + <el-select v-model="form.cateType" style="width: 100%"> + <el-option + v-for="item in typeList" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> @@ -38,6 +50,24 @@ <el-input v-model.trim="form.notifyUser" placeholder="提醒人" clearable></el-input> </el-form-item> </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="附件"> + <el-upload accept="image/*" multiple list-type="picture-card" :action="uploadUrl" :headers="header" method="post" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :on-success="handleAvatarSuccess" :limit='2' v-model:file-list="fileList" :before-upload="picSize" :on-remove="handleRemove" :before-remove="beforeRemove"> + <el-icon><Plus /></el-icon> + <template #tip> + <div class="el-upload__tip">上传图片尺寸小于2M,最多可上传2张</div> + </template> + </el-upload> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-if="title == '新增上报'? false : true"> + <el-form-item label="删除状态" prop="deleted"> + <el-radio-group v-model="form.deleted"> + <el-radio :label="0">未删除</el-radio> + <el-radio :label="1">已删除</el-radio> + </el-radio-group> + </el-form-item> + </el-col> </el-row> </el-form> <template #footer> @@ -56,6 +86,7 @@ import axios from "axios"; import {workApplyApi} from "/@/api/specialWorkSystem/workApply"; import {judgeReportApi} from "/@/api/dataUpload/saftyBaseInfo/judgeReport"; +import Cookies from "js-cookie"; // 定义接口来定义对象的类型 interface DataState { @@ -70,8 +101,17 @@ effectiveTime: string dueTime: string notifyUser: string + cateType: string + deleted: number | null + files: string } rules:{} + typeList: Array<any> + fileList: [], + uploadUrl: string, + header: {}, + imgDialog: boolean, + imageUrl: string } export default defineComponent({ @@ -89,14 +129,26 @@ pusTime: '', effectiveTime: '', dueTime: '', - notifyUser: '' + notifyUser: '', + cateType: '', + deleted: 0, + files: '' }, + typeList:[], rules:{ name: [{ required: true, message: '请填写证书名称', trigger: 'blur' }], - cateName: [{ required: true, message: '请填写分类名称', trigger: 'blur' }], + cateType: [{ required: true, message: '请选择分类标识', trigger: 'blur' }], orgName: [{ required: true, message: '请填写发证机构', trigger: 'blur' }], notifyUser: [{ required: true, message: '请填写提醒人', trigger: 'blur' }] - } + }, + fileList: [], + uploadUrl: import.meta.env.VITE_API_URL + '/account/file/upload', + header: { + uid: Cookies.get('uid'), + Authorization: Cookies.get('token') + }, + imgDialog: false, + imageUrl: '' }) // 页面加载时 @@ -104,8 +156,9 @@ }) // 打开弹窗 - const open = (type: string, data: object) => { + const open = (type: string, data: object,cateTypeList: Array<any>) => { state.isShowDialog = true; + state.typeList = cateTypeList if (type === 'add') { state.title = '新增上报'; state.form = { @@ -116,7 +169,10 @@ pusTime: '', effectiveTime: '', dueTime: '', - notifyUser: '' + notifyUser: '', + cateType: '', + deleted: 0, + files: '' } }else{ state.title = '重新上报' @@ -125,6 +181,16 @@ state.form[key] = JSON.parse(JSON.stringify(data))[key]; } }) + if(data.files !== ''){ + state.fileList = data.files.split(',').map((i,index) => { + return { + url: i, + name: i + } + }) + }else{ + state.fileList=[] + } // state.form = { // uuid: data.uuid, // name: '', @@ -142,6 +208,7 @@ const onSubmit = async () => { formRef.value.validate(async (valid:Boolean) => { if(valid){ + state.form.files = state.fileList.map(i=>i.name).join(',') const res = await judgeReportApi().addCard([state.form]) if(res.data.code == 200){ ElMessage({ @@ -165,9 +232,51 @@ }) } + // 图片上传 + const showTip =()=>{ + ElMessage({ + type: 'warning', + message: '超出文件上传数量' + }); + } + + const picSize = async(rawFile: any) => { + if(rawFile.size / 1024 / 1024 > 2){ + ElMessage({ + type: 'warning', + message: '文件大小不能超过2M' + }); + return false + } + } + + const handleAvatarSuccess = (res:any, uploadFile: any) => { + if(res){ + uploadFile.name = res + }else{ + ElMessage({ + type: 'warning', + message: '文件上传失败' + }) + } + } + + const handlePictureCardPreview = (uploadFile) => { + state.imageUrl = uploadFile.url + state.imgDialog = true; + } + + const handleRemove = (file, uploadFiles,type) => { + state.fileList = uploadFiles + } return { formRef, + showTip, + picSize, + handleAvatarSuccess, + handlePictureCardPreview, + handleRemove, open, onSubmit, ...toRefs(state) diff --git a/src/views/dataUpload/saftyBaseInfo/cardInfo/index.vue b/src/views/dataUpload/saftyBaseInfo/cardInfo/index.vue index be7b1e6..beae67d 100644 --- a/src/views/dataUpload/saftyBaseInfo/cardInfo/index.vue +++ b/src/views/dataUpload/saftyBaseInfo/cardInfo/index.vue @@ -17,6 +17,24 @@ <el-table-column prop="effectiveTime" label="有效期至" show-overflow-tooltip></el-table-column> <el-table-column prop="dueTime" label="到期提醒时间" show-overflow-tooltip></el-table-column> <el-table-column prop="notifyUser" label="提醒人" show-overflow-tooltip></el-table-column> + <el-table-column prop="cateType" label="分类标识" show-overflow-tooltip> + <template #default="scope"> + {{getTypeName(scope.row.cateType)}} + </template> + </el-table-column> + <el-table-column prop="files" label="附件" show-overflow-tooltip> + <template #default="scope"> + <div v-if="scope.row.files && scope.row.files !== ''"> + <el-image + v-for="(item,index) in scope.row.files.split(',')" + style="width: 50px; height: 50px" + :src="item" + fit="cover" + :preview-teleported= true + /> + </div> + </template> + </el-table-column> <el-table-column label="操作" width="140"> <template #default="scope"> <el-button size="small" text type="primary" @click="openDialog('update',scope.row)">重新上报</el-button> @@ -47,7 +65,13 @@ pageIndex: number pageSize: number } + cateTypeList: Array<typeList> total: null | number +} + +interface typeList{ + value: string + label: string } export default defineComponent({ @@ -62,7 +86,37 @@ pageIndex: 1, pageSize: 10 }, - total: null + total: null, + cateTypeList: [ + { + value: 'CATETYPE1', + label: '营业执照' + }, + { + value: 'CATETYPE2', + label: '安全生产许可证' + }, + { + value: 'CATETYPE3', + label: '危险化学品登记证' + }, + { + value: 'CATETYPE4', + label: '主要负责人考核合格证' + }, + { + value: 'CATETYPE5', + label: '安全管理人员考核合格证' + }, + { + value: 'CATETYPE6', + label: '特种作业人员操作证' + }, + { + value: 'CATETYPE0', + label: '其他' + } + ] }); // 页面加载时 @@ -84,7 +138,11 @@ } const openDialog=(type:string,data:object)=>{ - reportRef.value.open(type,data) + reportRef.value.open(type,data,state.cateTypeList) + } + + const getTypeName = (type: string)=>{ + return state.cateTypeList.find(i=>i.value == type)?.label } // 删除用户 @@ -125,6 +183,7 @@ return { reportRef, openDialog, + getTypeName, getData, onRowDel, onHandleSizeChange, diff --git a/src/views/dataUpload/saftyBaseInfo/equipInfo/components/addReport.vue b/src/views/dataUpload/saftyBaseInfo/equipInfo/components/addReport.vue index 57a0bdc..9ce78fc 100644 --- a/src/views/dataUpload/saftyBaseInfo/equipInfo/components/addReport.vue +++ b/src/views/dataUpload/saftyBaseInfo/equipInfo/components/addReport.vue @@ -52,10 +52,20 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="设备状况" prop="status"> <el-select v-model="form.status" placeholder="请选择设备状况"> - <el-option :key="1" label="1" :value="1"/> - <el-option :key="2" label="2" :value="2"/> - <el-option :key="3" label="3" :value="3"/> + <el-option :key="1" label="在用" :value="1"/> + <el-option :key="2" label="停用" :value="2"/> + <el-option :key="3" label="报废" :value="3"/> </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="设备使用年限" prop="designUseYears"> + <el-input v-model.trim="form.designUseYears" type="number" placeholder="设备使用年限/年" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="首次使用日期" prop="firstUseDate"> + <el-date-picker v-model="form.firstUseDate" value-format="YYYY-MM-DD" type="date" placeholder="选择首次使用日期" style="width: 100%" /> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> @@ -66,9 +76,9 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="检验状态"> <el-select v-model="form.checkStatus" placeholder="请选择检验状态"> - <el-option :key="1" label="1" :value="1"/> - <el-option :key="2" label="2" :value="2"/> - <el-option :key="3" label="3" :value="3"/> + <el-option :key="1" label="待检验" :value="1"/> + <el-option :key="2" label="已检验" :value="2"/> + <el-option :key="3" label="超期待检验" :value="3"/> </el-select> </el-form-item> </el-col> @@ -95,8 +105,8 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-if="title == '新增上报'? false : true"> <el-form-item label="删除状态" prop="deleted"> <el-radio-group v-model="form.deleted"> - <el-radio label="0">未删除</el-radio> - <el-radio label="1">已删除</el-radio> + <el-radio :label="0">未删除</el-radio> + <el-radio :label="1">已删除</el-radio> </el-radio-group> </el-form-item> </el-col> @@ -139,8 +149,10 @@ checkStatus: number | null nextCheckTime: string lastCheckTime: string - files: string, - deleted: string + files: string + deleted: number | null + designUseYears: number | null + firstUseDate: string } rules:{} fileList: [], @@ -171,7 +183,9 @@ nextCheckTime: '', lastCheckTime: '', files: '', - deleted: '0' + firstUseDate: '', + designUseYears: null, + deleted: 0 }, rules:{ no: [{ required: true, message: '请填写编号', trigger: 'blur' }], @@ -180,7 +194,9 @@ cateName: [{ required: true, message: '请填写分类名称', trigger: 'blur' }], model: [{ required: true, message: '请填写型号', trigger: 'blur' }], registerNo: [{ required: true, message: '请填写注册登记编号', trigger: 'blur' }], - productionTime: [{ required: true, message: '请选择出场时间', trigger: 'blur' }] + productionTime: [{ required: true, message: '请选择出场时间', trigger: 'blur' }], + designUseYears: [{ required: true, message: '请填写设备使用年限', trigger: 'blur' }], + firstUseDate: [{ required: true, message: '请选择首次使用日期', trigger: 'blur' }] }, fileList: [], uploadUrl: import.meta.env.VITE_API_URL + '/account/file/upload', @@ -215,7 +231,9 @@ nextCheckTime: '', lastCheckTime: '', files: '', - deleted: '0' + firstUseDate: '', + designUseYears: null, + deleted: 1 } state.fileList = [] }else{ diff --git a/src/views/dataUpload/saftyBaseInfo/equipInfo/index.vue b/src/views/dataUpload/saftyBaseInfo/equipInfo/index.vue index 587cd79..058437e 100644 --- a/src/views/dataUpload/saftyBaseInfo/equipInfo/index.vue +++ b/src/views/dataUpload/saftyBaseInfo/equipInfo/index.vue @@ -34,6 +34,8 @@ </el-table-column> <el-table-column prop="registerTable" label="注册等级表" show-overflow-tooltip></el-table-column> <el-table-column prop="checkStatus" label="检验状态" show-overflow-tooltip></el-table-column> + <el-table-column prop="designUseYears" label="设备使用年限" show-overflow-tooltip></el-table-column> + <el-table-column prop="firstUseDate" label="首次使用日期" show-overflow-tooltip></el-table-column> <el-table-column prop="nextCheckTime" label="下次检验时间" show-overflow-tooltip></el-table-column> <el-table-column prop="lastCheckTime" label="上次校验时间" show-overflow-tooltip></el-table-column> <el-table-column label="操作" width="140"> diff --git a/src/views/dataUpload/saftyBaseInfo/judgeReport/components/addReport.vue b/src/views/dataUpload/saftyBaseInfo/judgeReport/components/addReport.vue index 4463662..9a62be3 100644 --- a/src/views/dataUpload/saftyBaseInfo/judgeReport/components/addReport.vue +++ b/src/views/dataUpload/saftyBaseInfo/judgeReport/components/addReport.vue @@ -1,7 +1,7 @@ <template> <div class="system-add-user-container"> <el-dialog :title="title" v-model="isShowDialog" width="50%"> - <el-form :model="form" size="default" ref="formRef" :rules="rules" label-width="120px"> + <el-form :model="form" size="default" ref="formRef" :rules="rules" label-width="150px"> <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="" prop="type"> @@ -9,6 +9,18 @@ <el-radio :label="1">安全评价报告</el-radio> <el-radio :label="2">安全三同时</el-radio> </el-radio-group> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-if="form.type == 2"> + <el-form-item label="安全三同时文件类型"> + <el-select v-model="form.threeMeanwhileType" style="width: 100%"> + <el-option + v-for="item in typeList" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> @@ -39,8 +51,8 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-if="title == '新增上报'? false : true"> <el-form-item label="删除状态" prop="deleted"> <el-radio-group v-model="form.deleted"> - <el-radio label="0">未删除</el-radio> - <el-radio label="1">已删除</el-radio> + <el-radio :label="0">未删除</el-radio> + <el-radio :label="1">已删除</el-radio> </el-radio-group> </el-form-item> </el-col> @@ -76,10 +88,12 @@ remarks: string evaluateTime: string files: string - deleted: string + deleted: number | null + threeMeanwhileType: string } rules:{}, fileList: [], + typeList: Array<any> uploadUrl: string, header: {} } @@ -98,7 +112,8 @@ remarks: '', evaluateTime: '', files: '', - deleted: '0' + deleted: 0, + threeMeanwhileType: '' }, rules:{ type: [{ required: true, message: '请选择报告类型', trigger: 'blur'}], @@ -107,6 +122,7 @@ evaluateTime: [{ required: true, message: '请选择评价时间', trigger: 'blur'}] }, fileList: [], + typeList: [], uploadUrl: import.meta.env.VITE_API_URL + '/account/file/upload', header: { uid: Cookies.get('uid'), @@ -119,8 +135,9 @@ }) // 打开弹窗 - const open = (type: string, data: object) => { + const open = (type: string, data: object,typeList: Array<any>) => { state.isShowDialog = true; + state.typeList = typeList if (type === 'add') { state.title = '新增上报'; state.form = { @@ -130,7 +147,8 @@ remarks: '', evaluateTime: '', files: '', - deleted: '0' + deleted: 0, + threeMeanwhileType: '' } state.fileList = [] }else{ diff --git a/src/views/dataUpload/saftyBaseInfo/judgeReport/index.vue b/src/views/dataUpload/saftyBaseInfo/judgeReport/index.vue index 6e3bad3..b70392b 100644 --- a/src/views/dataUpload/saftyBaseInfo/judgeReport/index.vue +++ b/src/views/dataUpload/saftyBaseInfo/judgeReport/index.vue @@ -24,6 +24,14 @@ <el-button v-if="scope.row.files !== ''" size="small" text type="primary" @click="openFile(scope.row.files)">查看</el-button> </template> </el-table-column> + <el-table-column prop="threeMeanwhileType" label="安全三同时文件类型" show-overflow-tooltip> + <template #default="scope"> + <span v-if="scope.row.type == 2"> + {{getTypeName(scope.row.threeMeanwhileType)}} + </span> + <span v-else>/</span> + </template> + </el-table-column> <el-table-column label="操作" width="140"> <template #default="scope"> <el-button size="small" text type="primary" @click="openDialog('update',scope.row)">重新上报</el-button> @@ -67,6 +75,7 @@ pageSize: number } total: null | number + typeList: Array<object> } export default defineComponent({ @@ -81,7 +90,29 @@ pageIndex: 1, pageSize: 10 }, - total: null + total: null, + typeList: [ + { + value: 'TMT1', + label: '立项文件' + }, + { + value: 'TMT2', + label: '安全预评价报告', + }, + { + value: 'TMT3', + label: '设计专篇' + }, + { + value: 'TMT4', + label: '安全验收报告' + }, + { + value: 'TMT5', + label: '安全现状报告' + } + ] }); // 页面加载时 @@ -103,7 +134,11 @@ } const openDialog=(type:string,data:object)=>{ - reportRef.value.open(type,data) + reportRef.value.open(type,data,state.typeList) + } + + const getTypeName = (type: string)=>{ + return state.typeList.find(i=>i.value == type)?.label } const openFile=(file: string)=>{ @@ -162,6 +197,7 @@ return { reportRef, openFile, + getTypeName, openDialog, getData, onRowDel, diff --git a/src/views/dataUpload/saftyBaseInfo/parkingInfo/components/addReport.vue b/src/views/dataUpload/saftyBaseInfo/parkingInfo/components/addReport.vue index a7e8dd1..4323d75 100644 --- a/src/views/dataUpload/saftyBaseInfo/parkingInfo/components/addReport.vue +++ b/src/views/dataUpload/saftyBaseInfo/parkingInfo/components/addReport.vue @@ -56,8 +56,29 @@ <el-input v-model.trim="form.programme" placeholder="方案" clearable></el-input> </el-form-item> </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="附件"> + <el-upload accept="image/*" multiple list-type="picture-card" :action="uploadUrl" :headers="header" method="post" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :on-success="handleAvatarSuccess" :limit='2' v-model:file-list="fileList" :before-upload="picSize" :on-remove="handleRemove" :before-remove="beforeRemove"> + <el-icon><Plus /></el-icon> + <template #tip> + <div class="el-upload__tip">上传图片尺寸小于2M,最多可上传2张</div> + </template> + </el-upload> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-if="title == '新增上报'? false : true"> + <el-form-item label="删除状态" prop="deleted"> + <el-radio-group v-model="form.deleted"> + <el-radio :label="0">未删除</el-radio> + <el-radio :label="1">已删除</el-radio> + </el-radio-group> + </el-form-item> + </el-col> </el-row> </el-form> + <el-dialog v-model="imgDialog"> + <img width="100%" :src="imageUrl" alt="Preview Image" /> + </el-dialog> <template #footer> <span class="dialog-footer"> <el-button @click="isShowDialog = !isShowDialog" size="default">取 消</el-button> @@ -74,6 +95,7 @@ import axios from "axios"; import {workApplyApi} from "/@/api/specialWorkSystem/workApply"; import {judgeReportApi} from "/@/api/dataUpload/saftyBaseInfo/judgeReport"; +import Cookies from "js-cookie"; // 定义接口来定义对象的类型 interface DataState { @@ -91,8 +113,15 @@ seq: string preparation: string programme: string + deleted: number | null + filePath: string } rules:{} + fileList: [], + uploadUrl: string, + header: {}, + imgDialog: boolean, + imageUrl: string } export default defineComponent({ @@ -113,14 +142,24 @@ craftName: '', seq: '', preparation: '', - programme: '' + programme: '', + deleted: 0, + filePath: '' }, rules:{ programmeName: [{ required: true, message: '请填写方案名称', trigger: 'blur' }], startTime: [{ required: true, message: '请选择开始时间', trigger: 'blur' }], endTime: [{ required: true, message: '请选择结束时间', trigger: 'blur' }], programmeType: [{ required: true, message: '请选择开停车类型', trigger: 'blur' }] - } + }, + fileList: [], + uploadUrl: import.meta.env.VITE_API_URL + '/account/file/upload', + header: { + uid: Cookies.get('uid'), + Authorization: Cookies.get('token') + }, + imgDialog: false, + imageUrl: '' }) // 页面加载时 @@ -143,8 +182,11 @@ craftName: '', seq: '', preparation: '', - programme: '' + programme: '', + deleted: 1, + filePath: '' } + state.fileList=[] }else{ state.title = '重新上报'; Object.keys(state.form).forEach(key => { @@ -152,6 +194,16 @@ state.form[key] = JSON.parse(JSON.stringify(data))[key]; } }) + if(data.filePath !== ''){ + state.fileList = data.filePath.split(',').map((i,index) => { + return { + url: i, + name: i + } + }) + }else{ + state.fileList=[] + } // state.form = { // uuid: data.uuid, // programmeName: '', @@ -172,6 +224,7 @@ const onSubmit = async () => { formRef.value.validate(async (valid:Boolean) => { if(valid){ + state.form.filePath = state.fileList.map(i=>i.name).join(',') const res = await judgeReportApi().addParking([state.form]) if(res.data.code == 200){ ElMessage({ @@ -195,10 +248,53 @@ }) } + // 图片上传 + const showTip =()=>{ + ElMessage({ + type: 'warning', + message: '超出文件上传数量' + }); + } + + const picSize = async(rawFile: any) => { + if(rawFile.size / 1024 / 1024 > 2){ + ElMessage({ + type: 'warning', + message: '文件大小不能超过2M' + }); + return false + } + } + + const handleAvatarSuccess = (res:any, uploadFile: any) => { + if(res){ + uploadFile.name = res + }else{ + ElMessage({ + type: 'warning', + message: '文件上传失败' + }) + } + } + + const handlePictureCardPreview = (uploadFile) => { + state.imageUrl = uploadFile.url + state.imgDialog = true; + } + + const handleRemove = (file, uploadFiles,type) => { + state.fileList = uploadFiles + } + return { formRef, open, + showTip, + picSize, + handleAvatarSuccess, + handlePictureCardPreview, + handleRemove, onSubmit, ...toRefs(state) }; diff --git a/src/views/dataUpload/saftyBaseInfo/parkingInfo/index.vue b/src/views/dataUpload/saftyBaseInfo/parkingInfo/index.vue index cc33892..503f329 100644 --- a/src/views/dataUpload/saftyBaseInfo/parkingInfo/index.vue +++ b/src/views/dataUpload/saftyBaseInfo/parkingInfo/index.vue @@ -14,13 +14,30 @@ <el-table-column prop="programmeName" label="方案名称" show-overflow-tooltip></el-table-column> <el-table-column prop="startTime" label="开始时间" show-overflow-tooltip></el-table-column> <el-table-column prop="endTime" label="结束时间" show-overflow-tooltip></el-table-column> - <el-table-column prop="programmeType" label="开停车类型" show-overflow-tooltip></el-table-column> + <el-table-column prop="programmeType" label="开停车类型" show-overflow-tooltip> + <template #default="scope"> + {{scope.row.programmeType == 1?'开车':scope.row.programmeType == 2?'停车':''}} + </template> + </el-table-column> <el-table-column prop="responsibleDept" label="负责部门" show-overflow-tooltip></el-table-column> <el-table-column prop="responsiblePerson" label="负责人" show-overflow-tooltip></el-table-column> <el-table-column prop="craftName" label="危险工艺" show-overflow-tooltip></el-table-column> <el-table-column prop="seq" label="顺序" show-overflow-tooltip></el-table-column> <el-table-column prop="preparation" label="准备" show-overflow-tooltip></el-table-column> <el-table-column prop="programme" label="方案" show-overflow-tooltip></el-table-column> + <el-table-column prop="filePath" label="附件" show-overflow-tooltip> + <template #default="scope"> + <div v-if="scope.row.filePath && scope.row.filePath !== ''"> + <el-image + v-for="(item,index) in scope.row.filePath.split(',')" + style="width: 50px; height: 50px" + :src="item" + fit="cover" + :preview-teleported= true + /> + </div> + </template> + </el-table-column> <el-table-column label="操作" width="140"> <template #default="scope"> <el-button size="small" text type="primary" @click="openDialog('update',scope.row)">重新上报</el-button> diff --git a/src/views/dataUpload/saftyBaseInfo/productionInfo/components/addReport.vue b/src/views/dataUpload/saftyBaseInfo/productionInfo/components/addReport.vue index a446533..abfabc3 100644 --- a/src/views/dataUpload/saftyBaseInfo/productionInfo/components/addReport.vue +++ b/src/views/dataUpload/saftyBaseInfo/productionInfo/components/addReport.vue @@ -29,6 +29,11 @@ </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="设计产能" prop="designCapacity"> + <el-input v-model.trim="form.designCapacity" type="number" placeholder="设计产能" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="涉及的危险化学品"> <el-input v-model.trim="form.msds" :autosize="{ minRows: 1 }" type="textarea" placeholder="涉及的危险化学品" clearable></el-input> </el-form-item> @@ -66,6 +71,14 @@ <div class="el-upload__tip">上传图片尺寸小于2M,最多可上传2张</div> </template> </el-upload> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-if="title == '新增上报'? false : true"> + <el-form-item label="删除状态" prop="deleted"> + <el-radio-group v-model="form.deleted"> + <el-radio :label="0">未删除</el-radio> + <el-radio :label="1">已删除</el-radio> + </el-radio-group> </el-form-item> </el-col> </el-row> @@ -109,6 +122,8 @@ craftDraw: string reactionType: string keyMonitorUnit: string + deleted: number | null + designCapacity: number | null } rules:{}, fileList: [], @@ -138,14 +153,17 @@ controlMean: '', craftDraw: '', reactionType: '', - keyMonitorUnit: '' + keyMonitorUnit: '', + deleted: 0, + designCapacity: null }, rules:{ craftName: [{ required: true, message: '请填写工艺名称', trigger: 'blur' }], craftContent: [{ required: true, message: '请填写工艺简介', trigger: 'blur' }], mainProdEquip: [{ required: true, message: '请填写主要生产设备', trigger: 'blur' }], keyParts: [{ required: true, message: '请填写重点部位', trigger: 'blur' }], - hazardCode: [{ required: true, message: '请填写重大危险源', trigger: 'blur' }] + hazardCode: [{ required: true, message: '请填写重大危险源', trigger: 'blur' }], + designCapacity: [{ required: true, message: '请填写设计产能', trigger: 'blur' }] }, fileList: [], uploadUrl: import.meta.env.VITE_API_URL + '/account/file/upload', @@ -179,7 +197,9 @@ controlMean: '', craftDraw: '', reactionType: '', - keyMonitorUnit: '' + keyMonitorUnit: '', + deleted: 0, + designCapacity: null } state.fileList=[] }else{ diff --git a/src/views/dataUpload/saftyBaseInfo/productionInfo/index.vue b/src/views/dataUpload/saftyBaseInfo/productionInfo/index.vue index 364f1b2..5a3534c 100644 --- a/src/views/dataUpload/saftyBaseInfo/productionInfo/index.vue +++ b/src/views/dataUpload/saftyBaseInfo/productionInfo/index.vue @@ -22,8 +22,7 @@ <el-table-column prop="controlMean" label="现有安全控制手段" show-overflow-tooltip></el-table-column> <el-table-column prop="craftDraw" label="工艺图纸" show-overflow-tooltip> <template #default="scope"> -<!-- <el-button v-if="scope.row.craftDraw !== ''" v-for="item in scope.row.craftDraw.split(',')" size="small" text type="primary" @click="openFile(item)">查看</el-button>--> - <div v-if="scope.row.craftDraw !== ''"> + <div v-if="scope.row.craftDraw && scope.row.craftDraw !== ''"> <el-image v-for="(item,index) in scope.row.craftDraw.split(',')" style="width: 50px; height: 50px" @@ -32,11 +31,11 @@ :preview-teleported= true /> </div> - </template> </el-table-column> <el-table-column prop="reactionType" label="反应类型" show-overflow-tooltip></el-table-column> <el-table-column prop="keyMonitorUnit" label="重点监控单元" show-overflow-tooltip></el-table-column> + <el-table-column prop="designCapacity" label="设计产能" show-overflow-tooltip></el-table-column> <el-table-column label="操作" width="140"> <template #default="scope"> <el-button size="small" text type="primary" @click="openDialog('update',scope.row)">重新上报</el-button> diff --git a/src/views/specialWorkSystem/specialIndex/index.vue b/src/views/specialWorkSystem/specialIndex/index.vue index cb681d5..30ed8e9 100644 --- a/src/views/specialWorkSystem/specialIndex/index.vue +++ b/src/views/specialWorkSystem/specialIndex/index.vue @@ -94,6 +94,22 @@ /> </div> </el-col> + <el-col :span="6" style="display:flex;align-items: center;"> + <span style="white-space: nowrap">开始时间:</span> + <div class="grid-content topInfo"> + <el-date-picker + v-model="searchDate2" + size="small" + :teleported="false" + type="daterange" + unlink-panels + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" + /> + </div> + </el-col> <el-col :span="4" style="display:flex;align-items: center"> <span style="white-space: nowrap">作业票编号:</span> <div class="grid-content topInfo"> @@ -313,6 +329,7 @@ searchDep2: number | null; searchDep: number | null; searchDate: Array<any>, + searchDate2: Array<any>, totalSize: number; details: {}; workType1: Array<type>; @@ -383,6 +400,8 @@ workPermitNo: '', startTime: '', endTime: '', + workStartTime: '', + workEndTime: '', workAllStatus: null, seDepId: null }, @@ -413,6 +432,7 @@ searchDep2: null, searchDep: null, searchDate: [], + searchDate2: [], workData: [], isFull: false, themeColor: '#333', @@ -661,6 +681,7 @@ } const getMydepList = async()=>{ const dateRange = JSON.parse(JSON.stringify(state.searchDate)) + const dateRange2 = JSON.parse(JSON.stringify(state.searchDate2)) if(dateRange[1]){ dateRange[1] = dateRange[1].replace('00:00:00','23:59:59') state.searchParams.startTime = dateRange[0] @@ -668,6 +689,14 @@ }else{ state.searchParams.startTime = '' state.searchParams.endTime = '' + } + if(dateRange2[1]){ + dateRange2[1] = dateRange2[1].replace('00:00:00','23:59:59') + state.searchParams.workStartTime = dateRange2[0] + state.searchParams.workEndTime = dateRange2[1] + }else{ + state.searchParams.workStartTime = '' + state.searchParams.workEndTime = '' } let res = await specialIndexApi().getMydepList({pageIndex: state.pageIndex,pageSize: state.pageSize,searchParams: state.searchParams}) if (res.data.code === '200') { @@ -872,6 +901,7 @@ seDepId: null } state.searchDate = [] + state.searchDate2 = [] state.pageIndex = 1 getMydepList() }; -- Gitblit v1.9.2