diff --git a/src/views/evaluation/evaluationUpload.vue b/src/views/evaluation/evaluationUpload.vue index 52972317..03df3379 100644 --- a/src/views/evaluation/evaluationUpload.vue +++ b/src/views/evaluation/evaluationUpload.vue @@ -681,6 +681,7 @@ import { import { useStore } from "vuex"; import { message } from "ant-design-vue"; import {timeoutUpload} from "@/api/configPublic"; +import md5 from 'js-md5'; export default { name: 'evaluationUpload', components:{ @@ -883,7 +884,8 @@ import {timeoutUpload} from "@/api/configPublic"; key: "reportReleaseNums", className: "h", ellipsis: true, - width: 100, + align: "center", + width: 60, }, { title: "上传日期", @@ -1067,7 +1069,7 @@ import {timeoutUpload} from "@/api/configPublic"; const bgcheck = (record) =>{ router.push({ path:'/evadown', - query:{id:record.id,name:record.evaluationName,permission:trueFalse(record.permission,5),deleteIds:trueFalse(record.permission,3)} + query:{id:record.id,name:record.evaluationName,permission:trueFalse(record.permission,5),deleteIds:trueFalse(record.permission,3)||trueFalse(record.permission,6)} }) } watch(() => state.searchParam.pageSize, () => { @@ -1264,11 +1266,14 @@ import {timeoutUpload} from "@/api/configPublic"; return false; }; const beforeUpload3 = async (file) => { + console.log(file.type,'type') state.stateType = file.type - const pattern = /^([0-9\u4e00-\u9fa5\a-z\A-Z]+-){2}[0-9\u4e00-\u9fa5\a-z\A-Z]+\.\w*$/; - if (!pattern.test(file.name)) { - message.error('上传文件名称格式不对') - return false + if(file.type === "application/pdf"){ + const pattern = /^([0-9\u4e00-\u9fa5\a-z\A-Z]+-){2}[0-9\u4e00-\u9fa5\a-z\A-Z]+\.\w*$/; + if (!pattern.test(file.name)) { + message.error('上传文件名称格式不对') + return false + } } const isJpgOrPng = file.type === "application/x-zip-compressed" || @@ -1287,23 +1292,60 @@ import {timeoutUpload} from "@/api/configPublic"; if(state.uploadId){ formData.pid= state.uploadId } - boeRequest('/activityApi/evaluation/import post formData',formData).then((res)=>{ - if(res.code === 200){ - if(state.stateType == "application/pdf"){ - // state.idValue = res.data.map(item=>item.id) - state.downloadUrl = res.data.map(item=>item.downloadUrl) - state.valueAll = res.data - state.totalNumber.importTrue = [] - }else{ - // state.idValue = res.data.evaluationDetailList.map(item=>item.id) - state.downloadUrl = res.data.evaluationDetailList.map(item=>item.downloadUrl) - state.totalNumber = res.data - state.totalNumber.importTrue = res.data.failedIds - state.valueAll = res.data.evaluationDetailList + // 计算文件MD5值 + const fileReader = new FileReader(); + const calculateMD5 = new Promise((resolve, reject) => { + fileReader.onload = (event) => { + console.log(event.target.result,'result'); + resolve(md5(event.target.result)); + }; + fileReader.onerror = (error) => { + reject(error); + }; + }); + fileReader.readAsArrayBuffer(file); + try { + const md5Hash = await calculateMD5; + console.log(`File MD5: ${md5Hash}`); + formData.md5Upload = md5Hash; + boeRequest('/activityApi/evaluation/import post formData', formData).then((res) => { + if (res.code === 200) { + if (state.stateType == "application/pdf") { + state.downloadUrl = res.data.map(item => item.downloadUrl); + state.valueAll = res.data; + state.totalNumber.importTrue = []; + } else { + state.downloadUrl = res.data.evaluationDetailList.map(item => item.downloadUrl); + state.totalNumber = res.data; + state.totalNumber.importTrue = res.data.failedIds; + state.valueAll = res.data.evaluationDetailList; + } + state.uploadDownLoad = false; } - state.uploadDownLoad = false - } - }) + }); + } catch (error) { + console.error('Failed to calculate MD5:', error); + message.error('无法计算文件MD5,请重试'); + return false; + } + + // boeRequest('/activityApi/evaluation/import post formData',formData).then((res)=>{ + // if(res.code === 200){ + // if(state.stateType == "application/pdf"){ + // // state.idValue = res.data.map(item=>item.id) + // state.downloadUrl = res.data.map(item=>item.downloadUrl) + // state.valueAll = res.data + // state.totalNumber.importTrue = [] + // }else{ + // // state.idValue = res.data.evaluationDetailList.map(item=>item.id) + // state.downloadUrl = res.data.evaluationDetailList.map(item=>item.downloadUrl) + // state.totalNumber = res.data + // state.totalNumber.importTrue = res.data.failedIds + // state.valueAll = res.data.evaluationDetailList + // } + // state.uploadDownLoad = false + // } + // }) return false } const handleChange = (info) => {