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