| | |
| | | </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"> |
| | |
| | | <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> |
| | |
| | | import axios from "axios"; |
| | | import {workApplyApi} from "/@/api/specialWorkSystem/workApply"; |
| | | import {judgeReportApi} from "/@/api/dataUpload/saftyBaseInfo/judgeReport"; |
| | | import Cookies from "js-cookie"; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface DataState { |
| | |
| | | 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({ |
| | |
| | | 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: '' |
| | | }) |
| | | |
| | | // 页面加载时 |
| | |
| | | |
| | | }) |
| | | // 打开弹窗 |
| | | 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 = { |
| | |
| | | pusTime: '', |
| | | effectiveTime: '', |
| | | dueTime: '', |
| | | notifyUser: '' |
| | | notifyUser: '', |
| | | cateType: '', |
| | | deleted: 0, |
| | | files: '' |
| | | } |
| | | }else{ |
| | | state.title = '重新上报' |
| | |
| | | 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: '', |
| | |
| | | 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({ |
| | |
| | | }) |
| | | } |
| | | |
| | | // 图片上传 |
| | | 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) |
| | |
| | | <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> |
| | |
| | | pageIndex: number |
| | | pageSize: number |
| | | } |
| | | cateTypeList: Array<typeList> |
| | | total: null | number |
| | | } |
| | | |
| | | interface typeList{ |
| | | value: string |
| | | label: string |
| | | } |
| | | |
| | | export default defineComponent({ |
| | |
| | | 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: '其他' |
| | | } |
| | | ] |
| | | }); |
| | | |
| | | // 页面加载时 |
| | |
| | | } |
| | | |
| | | 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 |
| | | } |
| | | |
| | | // 删除用户 |
| | |
| | | return { |
| | | reportRef, |
| | | openDialog, |
| | | getTypeName, |
| | | getData, |
| | | onRowDel, |
| | | onHandleSizeChange, |
| | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | checkStatus: number | null |
| | | nextCheckTime: string |
| | | lastCheckTime: string |
| | | files: string, |
| | | deleted: string |
| | | files: string |
| | | deleted: number | null |
| | | designUseYears: number | null |
| | | firstUseDate: string |
| | | } |
| | | rules:{} |
| | | fileList: [], |
| | |
| | | nextCheckTime: '', |
| | | lastCheckTime: '', |
| | | files: '', |
| | | deleted: '0' |
| | | firstUseDate: '', |
| | | designUseYears: null, |
| | | deleted: 0 |
| | | }, |
| | | rules:{ |
| | | no: [{ required: true, message: '请填写编号', trigger: 'blur' }], |
| | |
| | | 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', |
| | |
| | | nextCheckTime: '', |
| | | lastCheckTime: '', |
| | | files: '', |
| | | deleted: '0' |
| | | firstUseDate: '', |
| | | designUseYears: null, |
| | | deleted: 1 |
| | | } |
| | | state.fileList = [] |
| | | }else{ |
| | |
| | | </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"> |
| | |
| | | <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"> |
| | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | remarks: string |
| | | evaluateTime: string |
| | | files: string |
| | | deleted: string |
| | | deleted: number | null |
| | | threeMeanwhileType: string |
| | | } |
| | | rules:{}, |
| | | fileList: [], |
| | | typeList: Array<any> |
| | | uploadUrl: string, |
| | | header: {} |
| | | } |
| | |
| | | remarks: '', |
| | | evaluateTime: '', |
| | | files: '', |
| | | deleted: '0' |
| | | deleted: 0, |
| | | threeMeanwhileType: '' |
| | | }, |
| | | rules:{ |
| | | type: [{ required: true, message: '请选择报告类型', trigger: 'blur'}], |
| | |
| | | evaluateTime: [{ required: true, message: '请选择评价时间', trigger: 'blur'}] |
| | | }, |
| | | fileList: [], |
| | | typeList: [], |
| | | uploadUrl: import.meta.env.VITE_API_URL + '/account/file/upload', |
| | | header: { |
| | | uid: Cookies.get('uid'), |
| | |
| | | |
| | | }) |
| | | // 打开弹窗 |
| | | 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 = { |
| | |
| | | remarks: '', |
| | | evaluateTime: '', |
| | | files: '', |
| | | deleted: '0' |
| | | deleted: 0, |
| | | threeMeanwhileType: '' |
| | | } |
| | | state.fileList = [] |
| | | }else{ |
| | |
| | | <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> |
| | |
| | | pageSize: number |
| | | } |
| | | total: null | number |
| | | typeList: Array<object> |
| | | } |
| | | |
| | | export default defineComponent({ |
| | |
| | | pageIndex: 1, |
| | | pageSize: 10 |
| | | }, |
| | | total: null |
| | | total: null, |
| | | typeList: [ |
| | | { |
| | | value: 'TMT1', |
| | | label: '立项文件' |
| | | }, |
| | | { |
| | | value: 'TMT2', |
| | | label: '安全预评价报告', |
| | | }, |
| | | { |
| | | value: 'TMT3', |
| | | label: '设计专篇' |
| | | }, |
| | | { |
| | | value: 'TMT4', |
| | | label: '安全验收报告' |
| | | }, |
| | | { |
| | | value: 'TMT5', |
| | | label: '安全现状报告' |
| | | } |
| | | ] |
| | | }); |
| | | |
| | | // 页面加载时 |
| | |
| | | } |
| | | |
| | | 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)=>{ |
| | |
| | | return { |
| | | reportRef, |
| | | openFile, |
| | | getTypeName, |
| | | openDialog, |
| | | getData, |
| | | onRowDel, |
| | |
| | | <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> |
| | |
| | | import axios from "axios"; |
| | | import {workApplyApi} from "/@/api/specialWorkSystem/workApply"; |
| | | import {judgeReportApi} from "/@/api/dataUpload/saftyBaseInfo/judgeReport"; |
| | | import Cookies from "js-cookie"; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface DataState { |
| | |
| | | seq: string |
| | | preparation: string |
| | | programme: string |
| | | deleted: number | null |
| | | filePath: string |
| | | } |
| | | rules:{} |
| | | fileList: [], |
| | | uploadUrl: string, |
| | | header: {}, |
| | | imgDialog: boolean, |
| | | imageUrl: string |
| | | } |
| | | |
| | | export default defineComponent({ |
| | |
| | | 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: '' |
| | | }) |
| | | |
| | | // 页面加载时 |
| | |
| | | craftName: '', |
| | | seq: '', |
| | | preparation: '', |
| | | programme: '' |
| | | programme: '', |
| | | deleted: 1, |
| | | filePath: '' |
| | | } |
| | | state.fileList=[] |
| | | }else{ |
| | | state.title = '重新上报'; |
| | | Object.keys(state.form).forEach(key => { |
| | |
| | | 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: '', |
| | |
| | | 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({ |
| | |
| | | }) |
| | | } |
| | | |
| | | // 图片上传 |
| | | 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) |
| | | }; |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | craftDraw: string |
| | | reactionType: string |
| | | keyMonitorUnit: string |
| | | deleted: number | null |
| | | designCapacity: number | null |
| | | } |
| | | rules:{}, |
| | | fileList: [], |
| | |
| | | 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', |
| | |
| | | controlMean: '', |
| | | craftDraw: '', |
| | | reactionType: '', |
| | | keyMonitorUnit: '' |
| | | keyMonitorUnit: '', |
| | | deleted: 0, |
| | | designCapacity: null |
| | | } |
| | | state.fileList=[] |
| | | }else{ |
| | |
| | | <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" |
| | |
| | | :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> |
| | |
| | | /> |
| | | </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"> |
| | |
| | | searchDep2: number | null; |
| | | searchDep: number | null; |
| | | searchDate: Array<any>, |
| | | searchDate2: Array<any>, |
| | | totalSize: number; |
| | | details: {}; |
| | | workType1: Array<type>; |
| | |
| | | workPermitNo: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | workStartTime: '', |
| | | workEndTime: '', |
| | | workAllStatus: null, |
| | | seDepId: null |
| | | }, |
| | |
| | | searchDep2: null, |
| | | searchDep: null, |
| | | searchDate: [], |
| | | searchDate2: [], |
| | | workData: [], |
| | | isFull: false, |
| | | themeColor: '#333', |
| | |
| | | } |
| | | 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] |
| | |
| | | }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') { |
| | |
| | | seDepId: null |
| | | } |
| | | state.searchDate = [] |
| | | state.searchDate2 = [] |
| | | state.pageIndex = 1 |
| | | getMydepList() |
| | | }; |