diff --git a/src/components/Upload/react-resumable.js b/src/components/Upload/react-resumable.js index 8848f1d..7103f1e 100644 --- a/src/components/Upload/react-resumable.js +++ b/src/components/Upload/react-resumable.js @@ -23,7 +23,7 @@ function isIE() { } } -/** +/** * 大文件上传组件 */ export default class ReactResumableJs extends React.Component { @@ -129,7 +129,7 @@ export default class ReactResumableJs extends React.Component {
{ - isIE() ? + isIE() ?
推荐使用谷歌、火狐、360浏览器的极速模式下上传文件
: null }
@@ -184,7 +184,7 @@ export default class ReactResumableJs extends React.Component { /** * 格式化计时器 - * @param {*} value + * @param {*} value */ __format(value) { if (value < 10) { @@ -221,14 +221,17 @@ export default class ReactResumableJs extends React.Component { /** * 添加文件时的监听 - * - * @param {*} file + * + * @param {*} file */ __fileAddedListener(resumable) { // 更新文件队列表单 let strIndex = resumable.fileName.lastIndexOf(".") let fileSuffix = resumable.fileName.substring(strIndex + 1, resumable.fileName.length) - if (this.props.fileAccept == ('.' + fileSuffix)) { + const allowedTypes = this.props.fileAccept.split(',').map(type => type.trim().toLowerCase()); + // 判断文件后缀 + // if (this.props.fileAccept == ('.' + fileSuffix)) { + if (allowedTypes.includes('.' + fileSuffix)) { let _cache = this.state.fileList; _cache.length = 0; _cache.push({ @@ -261,7 +264,7 @@ export default class ReactResumableJs extends React.Component { getTendererFileStatus(data).then((res) => { // 判断是否已投标 if (res.code == 200) { if(res.data == false){ - + var fileReader = new FileReader(); if (fileReader.readAsBinaryString === undefined) { FileReader.prototype.readAsBinaryString = function (fileData) { //解决ie11 大文件堆栈溢出的问题(for arrayBufferToString) @@ -279,7 +282,7 @@ export default class ReactResumableJs extends React.Component { } reader.readAsArrayBuffer(fileData); } - } + } fileReader.readAsBinaryString(resumable.file); fileReader.onload = e => { resumable.uniqueIdentifier = SparkMD5.hashBinary(e.target.result); @@ -324,7 +327,7 @@ export default class ReactResumableJs extends React.Component { /** * 文件上传进度播报 - * @param {*} file + * @param {*} file */ __fileProgressListener(file) { // 更新文件队列表单 @@ -341,7 +344,7 @@ export default class ReactResumableJs extends React.Component { /** * 文件上传完成 - * @param {*} file + * @param {*} file */ __fileSuccessListener(file) { let _cache = this.state.fileList; @@ -381,7 +384,7 @@ export default class ReactResumableJs extends React.Component { /** * 文件上传失败 - * @param {*} file + * @param {*} file */ __fileErrorListener(file) { // 更新文件队列表单 @@ -401,7 +404,7 @@ export default class ReactResumableJs extends React.Component { } } - /** + /** * 移除上传列表中的文件 */ __removeFile(filename) { @@ -444,7 +447,7 @@ export default class ReactResumableJs extends React.Component { this.setState({ fileList: _cache, timer: 0 }); } - /** + /** * 暂停上传 */ __uploadPause(filename) { @@ -468,7 +471,7 @@ export default class ReactResumableJs extends React.Component { } } - /** + /** * 恢复上传 */ __uploadResum(filename) { diff --git a/src/pages/Tender/UploadResponse/index.tsx b/src/pages/Tender/UploadResponse/index.tsx index 6e452f5..3f04f53 100644 --- a/src/pages/Tender/UploadResponse/index.tsx +++ b/src/pages/Tender/UploadResponse/index.tsx @@ -273,7 +273,8 @@ const Index: React.FC<{}> = () => { if (index == 'single') { currentDate = val setEndTime(new Date(val.endDate).getTime()) - filetype = '.file' + // filetype = '.file' + filetype = '.rar,.zip,.doc,.docx,.xls,.xlsx,.pdf' object = JSON.stringify(val) path = '/' + val.createYear + '/' + val.tpId + '/' + val.sectionId + '/' + val.tdocId + '/uploadFile/' + val.tendererId } else { @@ -312,10 +313,10 @@ const Index: React.FC<{}> = () => { /** * 大文件上传完成后的组件返回 - * - * @param file - * @param resumable - * @param callback + * + * @param file + * @param resumable + * @param callback */ const onUploadSuccess = (file: any, cache: any, callback: any) => { cache.push({ @@ -346,34 +347,42 @@ const Index: React.FC<{}> = () => { clearInterval(task); } else { if (switchBtn) { - getDecrypt(uuid).then((res) => { - if (res.code == 200) { - if (res.data.consumptionState == '2' || res.data.consumptionState == '4') { - if (res.data.stateMessage) { - message.error(res.data.stateMessage) - callback(cache.length - 1, res.data.stateMessage, 2); - } else { - message.error('验证错误,请刷新页面后重新上传!') - callback(cache.length - 1, "文件验证失败", 2); - } - switchBtn = false; - clearInterval(task); - return; - } else if (res.data.consumptionState == '3') { - message.success(res.data.stateMessage) - setTimeout(() => { - message.destroy() - }, 3000) - test = 100; - callback(cache.length - 1, "文件验证成功", test); - switchBtn = false; - clearInterval(task); - return; - } else { - callback(cache.length - 1, "文件验证中", test); - } - } - }) + setTimeout(() => { + message.destroy() + }, 3000) + test = 100; + callback(cache.length - 1, "文件验证成功", test); + switchBtn = false; + clearInterval(task); + return; + // getDecrypt(uuid).then((res) => { + // if (res.code == 200) { + // if (res.data.consumptionState == '2' || res.data.consumptionState == '4') { + // if (res.data.stateMessage) { + // message.error(res.data.stateMessage) + // callback(cache.length - 1, res.data.stateMessage, 2); + // } else { + // message.error('验证错误,请刷新页面后重新上传!') + // callback(cache.length - 1, "文件验证失败", 2); + // } + // switchBtn = false; + // clearInterval(task); + // return; + // } else if (res.data.consumptionState == '3') { + // message.success(res.data.stateMessage) + // setTimeout(() => { + // message.destroy() + // }, 3000) + // test = 100; + // callback(cache.length - 1, "文件验证成功", test); + // switchBtn = false; + // clearInterval(task); + // return; + // } else { + // callback(cache.length - 1, "文件验证中", test); + // } + // } + // }) } } }, 3000); @@ -416,7 +425,10 @@ const Index: React.FC<{}> = () => { } else { let strIndex = resumable.fileName.lastIndexOf(".") let fileSuffix = resumable.fileName.substring(strIndex + 1, resumable.fileName.length) - if (('.' + fileSuffix) != fileT) { + // 判断文件类型 + const fileTypes = fileT.split(',').map((type: string) => type.trim().toLowerCase()); + // if (('.' + fileSuffix) != fileT) { + if (!fileTypes.includes('.' + fileSuffix)) { message.error('请上传' + fileT + '类型的文件') } else if (fileSuffix == 'file' && resumable.file.size > 200 * 1024 * 1024) { message.error('文件最大为200MB')