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