马宇豪
2024-11-26 bd19a941293d124d7c58c6d351e7e86c1fa15559
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">
@@ -31,7 +43,7 @@
              <el-upload accept=".pdf" :action="uploadUrl" :headers="header" method="post" :on-exceed="showTip" :on-success="handleAvatarSuccess" :limit='1' v-model:file-list="fileList" :before-upload="picSize" :on-remove="handleRemove" :before-remove="beforeRemove">
                <el-button type="primary">点击上传</el-button>
                <template #tip>
                  <div class="el-upload__tip">仅支持上传pdf文件,尺寸小于2M,最多可上传1张</div>
                  <div class="el-upload__tip">仅支持上传pdf文件,尺寸小于5M,最多可上传1张</div>
                </template>
              </el-upload>
            </el-form-item>
@@ -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,21 +147,37 @@
          remarks: '',
          evaluateTime: '',
          files: '',
          deleted: '0'
          deleted: 0,
          threeMeanwhileType: ''
        }
        state.fileList = []
      }else{
        state.title = '重新上报';
        state.form = {
          type: 1,
          uuid: data.uuid,
          name: '',
          remarks: '',
          evaluateTime: '',
          files: '',
          deleted: '0'
        Object.keys(state.form).forEach(key => {
          if (Object.prototype.hasOwnProperty.call(data,key)) {
            state.form[key] = JSON.parse(JSON.stringify(data))[key];
          }
        })
        if(data.files !== ''){
          state.fileList = state.form.files.split(',').map((i,index) => {
            return {
              url:  i,
              name: '文件' + (index+1)
            }
          })
        }else{
          state.fileList = []
        }
        // state.form = {
        //   type: 1,
        //   uuid: data.uuid,
        //   name: '',
        //   remarks: '',
        //   evaluateTime: '',
        //   files: '',
        //   deleted: '0'
        // }
      }
      state.fileList = []
    };
    // 图片上传
@@ -156,10 +189,10 @@
    }
    const picSize = async(rawFile: any) => {
      if(rawFile.size / 1024 / 1024 > 2){
      if(rawFile.size / 1024 / 1024 > 5){
        ElMessage({
          type: 'warning',
          message: '文件大小不能超过2M'
          message: '文件大小不能超过5M'
        });
        return false
      }
@@ -169,6 +202,7 @@
      if(res){
          uploadFile.name = res
          state.form.files = res
        console.log(state.fileList,'list')
      }else{
        ElMessage({
          type: 'warning',