马宇豪
2024-01-18 7446bd01fb7eb8ee4dd80176cd0dd5b049edee99
src/views/safetyReview/projectManage/components/siteCheckRcd.vue
@@ -1,6 +1,15 @@
<template>
  <div class="riskBox">
    <el-form ref="formRef" :model="state.formData" :rules="state.rules" class="register-form" label-position="top">
      <el-row :gutter="30" style="margin-bottom: 20px">
        <el-col :span="18">
          <el-alert title="说明:现场勘验记录由项目组成员通过APP端进行信息填报,组长完成现场勘验并在APP端提交后,电脑可对资料信息完善并进行下一步操作。" type="warning" />
        </el-col>
        <el-col :span="6" style="display:flex;justify-content: right">
          <el-button type="primary">全部查看</el-button>
          <el-button type="primary">全部下载</el-button>
        </el-col>
      </el-row>
      <el-row :gutter="30">
        <el-col :span="6">
          <el-form-item prop="investigationDate" label="现场勘验时间">
@@ -36,29 +45,18 @@
          </el-form-item>
        </el-col>
      </el-row>
<!--      <el-row :gutter="30">-->
<!--        <el-col :span="6">-->
<!--          <el-form-item label="附件上传">-->
<!--            <el-upload-->
<!--                accept="image/*"-->
<!--                :action="state.uploadUrl"-->
<!--                :headers="state.header"-->
<!--                method="post"-->
<!--                :on-success="(response, file, fileList) => handleAvatarSuccess(response, file, fileList, 1)"-->
<!--                :on-preview="handlePictureCardPreview"-->
<!--                v-model:file-list="state.socialList"-->
<!--                list-type="picture-card"-->
<!--                :before-upload="picSize"-->
<!--                :on-remove="(file, file_list)=>{handleRemove(file, file_list, 1)}"-->
<!--            >-->
<!--              <el-icon><Plus /></el-icon>-->
<!--              <template #tip>-->
<!--                <div class="el-upload__tip">上传jpg/png图片尺寸小于5M</div>-->
<!--              </template>-->
<!--            </el-upload>-->
<!--          </el-form-item>-->
<!--        </el-col>-->
<!--      </el-row>-->
      <el-row :gutter="30">
        <el-col :span="6">
          <el-form-item label="附件上传">
            <el-upload accept="image/*" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="handleAvatarSuccess" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='state.imgLimit' v-model:file-list="state.fileList" list-type="picture-card" :before-upload="picSize" :on-remove="handleRemove" :before-remove="beforeRemove">
              <el-icon><Plus /></el-icon>
              <template #tip>
                <div class="el-upload__tip">上传jpg/png图片尺寸小于5M,最多可上传1张</div>
              </template>
            </el-upload>
          </el-form-item>
        </el-col>
      </el-row>
      <el-form-item prop="recordData" label="现场勘验记录">
        <el-input
            v-model="state.formData.recordData"
@@ -81,6 +79,8 @@
import {ElMessage} from "element-plus"
import {Search} from '@element-plus/icons-vue'
import {addRisk, editRisk, getRiskDetail} from "@/api/projectManage/riskAnalysis"
import {delPic} from "@/api/login"
import { getToken } from "@/utils/auth";
import Cookies from "js-cookie"
const emit = defineEmits(["getNextStatus"])
import MapLocation from "./mapLocation.vue"
@@ -97,6 +97,11 @@
  planPersons: [],
  rules: {
    recordData: [{required: true, message: '请填写现场勘验记录', trigger: 'blur'}]
  },
  imgLimit: 1,
  uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
  header: {
    Authorization: 'Bearer ' + getToken()
  }
})
@@ -163,6 +168,56 @@
  state.formData.location = lng + ',' + lat
}
// 图片上传
const showTip =()=>{
  ElMessage({
    type: 'warning',
    message: '超出文件上传数量'
  });
}
const picSize = async (rawFile) => {
  if(rawFile.size / 1024 / 1024 > 5){
    ElMessage({
      type: 'warning',
      message: '文件大小不能超过5M'
    });
    return false
  }
};
const handlePictureCardPreview = (uploadFile) => {
  state.dialogImageUrl = uploadFile.url
  state.dialogImg = true
};
const handleAvatarSuccess = (res, uploadFile) => {
  if(res.code == 200){
    // state.registerForm.agency.reportPath = res.data.path
  }else{
    ElMessage({
      type: 'warning',
      message: '文件上传失败'
    })
  }
}
const handleRemove = async (file, uploadFiles) => {
  const res = await delPic({path: state.registerForm.agency.reportPath})
  if(res.code == 200){
    ElMessage({
      type: 'success',
      message: '文件已删除'
    })
  }else{
    ElMessage({
      type: 'warning',
      message: res.message
    })
  }
}
defineExpose({
  riskOpen
});