zhouwx
7 小时以前 5c907144472ab91d2f4c1d10b0651b60e832b239
src/views/build/conpanyFunctionConsult/companyInfo/overview/components/overviewDialog.vue
@@ -28,6 +28,14 @@
                        </div>
                    </div>
                </el-form-item>
                <el-form-item label="营业执照:" prop="filePath">
                  <el-upload accept=".jpg,.jpeg,.png,.pdf" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >
                    <el-button type="primary">点击上传</el-button>
                    <template #tip>
                      <div class="el-upload__tip">尺寸小于5M,最多可上传1张</div>
                    </template>
                  </el-upload>
                </el-form-item>
            </el-form>
            <template #footer v-if="!isReview">
                    <span class="dialog-footer">
@@ -51,6 +59,7 @@
import {addCom, editCom} from "@/api/companyInfo/overview";
import Cookies from "js-cookie";
import {getCompany} from "@/api/onlineEducation/company";
import {delPic} from "@/api/onlineEducation/banner";
const emit = defineEmits(["getList"]);
@@ -68,14 +77,23 @@
        id: '',
        companySummary: '',
        companyId:null,
        companyName: ''
        companyName: '',
        filePath: '',
        fileName: ''
    },
    formRules:{
      companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
      companySummary: [{ required: true, message: '企业概况', trigger: 'blur' }],
      filePath: [{ required: true, message: '请上传营业执照', trigger: 'blur' }],
    },
  isAdmin: false,
  companyList: []
  companyList: [],
  uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
  header: {
    Authorization: getToken()
  },
  fileLimit: 1,
  fileList: []
})
@@ -92,11 +110,24 @@
    showEditor.value = false
    title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
    if(type === 'edit' || type === 'review') {
      Object.keys(state.noticeForm).forEach(key => {
        if (key in value) {
          state.noticeForm[key] = value[key]
        }
      })
      state.noticeForm.companySummary = value.companySummary
      state.noticeForm.id = value.id
      if(state.isAdmin){
        state.noticeForm.companyId = value.companyId
        state.noticeForm.companyName = value.companyName
      }
      if(value.filePath) {
        const obj = {
          url: value.filePath,
          name: value.fileName
        }
        state.fileList = [obj]
      }
    }
    if(type === 'review') {
@@ -220,6 +251,7 @@
    }
    // reset()
  state.fileList = []
    state.companyList = []
    noticeRef.value.clearValidate();
    dialogVisible.value = false;
@@ -229,9 +261,62 @@
      id: '',
      companySummary: '',
      companyId:null,
      companyName: ''
      companyName: '',
      filePath: '',
      fileName: ''
    }
    state.fileList = []
}
const handleAvatarSuccess = (res, uploadFile) => {
  if(res.code == 200){
    state.noticeForm.fileName = res.data.originName
    state.noticeForm.filePath = res.data.path
  }else{
    state.fileList = []
    ElMessage({
      type: 'warning',
      message: '文件上传失败'
    })
  }
}
const showTip =()=>{
  ElMessage({
    type: 'warning',
    message: '超出文件上传数量'
  });
}
const picSize = async (rawFile) => {
  if(rawFile.size / 1024 / 1024 > 5){
    ElMessage({
      type: 'warning',
      message: '文件大小不能超过5M'
    });
    return false
  }
};
const handleRemove = async (file, uploadFiles) => {
  let path = state.noticeForm.filePath;
  await delPic({path: path}).then(res => {
    if(res.code == 200){
      // ElMessage({
      //   type: 'success',
      //   message: '文件已删除'
      // })
      state.noticeForm.filePath = ''
      state.noticeForm.fileName = ''
    }else{
      ElMessage({
        type: 'warning',
        message: res.message
      })
    }
  }).catch(() => {
    state.noticeForm.filePath = ''
  });
}
defineExpose({
    openDialog