瀏覽代碼

fix: 调整oss上传签名过期逻辑

lanjianrong 4 年之前
父節點
當前提交
9d57148649

+ 0 - 1
package.json

@@ -193,7 +193,6 @@
   "dependencies": {
     "@ant-design/charts": "^1.0.19",
     "@ant-design/icons": "^4.5.0",
-    "ali-oss": "^6.13.2",
     "antd": "^4.13.0",
     "axios": "^0.21.1",
     "bignumber.js": "^9.0.1",

+ 11 - 8
src/components/FileModal/index.tsx

@@ -119,7 +119,7 @@ export default function FileModal(props: iFileModalProps) {
 
 
   // 上传前的回调
-  const beforeUpload = (file: any) => new Promise<File>((resolve, reject) => {
+  const beforeUpload = async (file: any) =>  {
 
     const { UPLOAD_LIMIT } = consts
     const isLt30M = file.size / 1024 / 1024 < UPLOAD_LIMIT
@@ -127,25 +127,28 @@ export default function FileModal(props: iFileModalProps) {
     if (!isLt30M) {
       file.status = 'error'
       message.error("上传附件大小限制在30MB")
-      return reject()
+      return false
     }
     const expire = parseInt(OSSData.expire) * 1000
     if (expire < Date.now()) {
-      initOssData()
-      file.status = 'error'
-      return reject()
+      try {
+        await initOssData()
+      } catch (error) {
+        file.status = 'error'
+        return false
+      }
     }
 
     const reg = new RegExp(consts.UPLOAD_WHITE)
     if (!reg.test(file.name)) {
       file.status = 'error'
       message.error('不支持该类型文件')
-      return reject()
+      return false
     }
 
     file.url = OSSData.dir + file.name
-    return resolve(file)
-  })
+    return Promise.resolve(file)
+  }
 
   // 移除文件
   const onRemove = (file: any) => {

+ 12 - 12
src/components/OssUpload/index.tsx

@@ -52,11 +52,11 @@ const UploadModal: React.FC<iUploadModalProps> = (props) => {
   }
   // 初始化、获取签名
   const initOssData = async () => {
-    const { code = -1, data = {}, msg = '获取签名' } = await getSignature()
+    const { code = -1, data = {}, msg = '获取签名失败' } = await getSignature()
     if (code === consts.RET_CODE.SUCCESS) {
       setOssData({ ...OSSData, ...data })
     } else {
-      message.error("获取签名失败")
+      message.error(msg)
 
     }
   }
@@ -72,24 +72,23 @@ const UploadModal: React.FC<iUploadModalProps> = (props) => {
   }
 
   // 上传前的回调
-  const beforeUpload = (file: any) => new Promise<File>((resolve, reject) => {
-
-    const { UPLOAD_LIMIT } = consts
+  const beforeUpload = async (file: any) => {
+  const { UPLOAD_LIMIT } = consts
     const isLt30M = file.size / 1024 / 1024 < UPLOAD_LIMIT
 
     if (!isLt30M) {
       file.status = 'error'
       message.error("上传附件大小限制在30MB")
-      return reject()
+      return false
     }
     const expire = parseInt(OSSData.expire) * 1000
     if (expire < Date.now()) {
       try {
-        initOssData()
+        await initOssData()
       } catch (error) {
         file.status = 'error'
-        message.error('签名已过期,请联系管理员')
-        return reject()
+        message.error('获取签名失败,请联系管理员')
+        return false
       }
     }
 
@@ -97,12 +96,13 @@ const UploadModal: React.FC<iUploadModalProps> = (props) => {
     if (!reg.test(file.name)) {
       file.status = 'error'
       message.error('不支持该类型文件')
-      return reject()
+      return false
     }
 
     file.url = OSSData.dir + file.name
-    return resolve(file)
-  })
+    return Promise.resolve(file)
+  }
+
 
   // 移除文件
   const onRemove = (file: any) => {

+ 1 - 2
src/pages/Contract/Content/Income/components/Modal/index.tsx

@@ -14,7 +14,7 @@ import dayjs from 'dayjs'
 import React, { useEffect, useState } from 'react'
 import styles from './index.module.scss'
 import { BigNumber } from "bignumber.js"
-import { observer, Observer } from 'mobx-react'
+import { observer } from 'mobx-react'
 interface ContractSection {
   id: string;
   treeType: number;
@@ -115,7 +115,6 @@ const ContractModal: React.FC<iModalCommonProps> = ({ modalObj: { type, visible,
   }
 
   // 处理添加回款的金额不应该超出最大值
-  // const maxPrice = parseFloat(contractStore.contract.price) - parseFloat(contractType === ContractType.INCOME ? contractStore.contract.returned : contractStore.contract.paid)
   const maxPrice = new BigNumber(contractStore.contract.price).minus(contractType === ContractType.INCOME ? contractStore.contract.returned : contractStore.contract.paid)
 
   const minPrice = new BigNumber(contractType === ContractType.INCOME ? row.contractReturned : row.contractsPaid)