马宇豪
2024-11-26 bd19a941293d124d7c58c6d351e7e86c1fa15559
新增数据上报修改
已修改11个文件
484 ■■■■■ 文件已修改
src/views/dataUpload/saftyBaseInfo/cardInfo/components/addReport.vue 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataUpload/saftyBaseInfo/cardInfo/index.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataUpload/saftyBaseInfo/equipInfo/components/addReport.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataUpload/saftyBaseInfo/equipInfo/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataUpload/saftyBaseInfo/judgeReport/components/addReport.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataUpload/saftyBaseInfo/judgeReport/index.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataUpload/saftyBaseInfo/parkingInfo/components/addReport.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataUpload/saftyBaseInfo/parkingInfo/index.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataUpload/saftyBaseInfo/productionInfo/components/addReport.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataUpload/saftyBaseInfo/productionInfo/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/specialIndex/index.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
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,
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{
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">
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{
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,
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)
    };
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>
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{
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>
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()
    };