张涛 1 年之前
父節點
當前提交
79c8872851
共有 8 個檔案被更改,包括 99 行新增27 行删除
  1. 1
    0
      .env
  2. 1
    0
      .env.production
  3. 5
    4
      src/components/Upload/UploadImage.jsx
  4. 6
    14
      src/components/Upload/request.js
  5. 24
    8
      src/pages/member/index.jsx
  6. 3
    0
      src/services/ossPolicy.js
  7. 58
    0
      src/store/oss.js
  8. 1
    1
      src/utils/request.js

+ 1
- 0
.env 查看文件

@@ -0,0 +1 @@
1
+VITE_SERVER_BASE=/api/admin

+ 1
- 0
.env.production 查看文件

@@ -0,0 +1 @@
1
+VITE_SERVER_BASE=http://api.crm2.njyunzhi.com/api/admin

+ 5
- 4
src/components/Upload/UploadImage.jsx 查看文件

@@ -40,13 +40,14 @@ export default (props) => {
40 40
     if (info.file.status === 'done') {
41 41
       setLoading(false);
42 42
       const { url, fileType } = info.file.response;
43
-      onChange(url);
43
+      onChange(info.file.response.res);
44 44
     }
45 45
   };
46 46
 
47 47
   const previewUrl = getRealPath ? getRealPath(value) : value;
48
-console.log(value)
49
-console.log(previewUrl)
48
+// console.log(value)
49
+// console.log(previewUrl)
50
+console.log("propsprops",props)
50 51
   return (
51 52
     <Upload
52 53
       listType="picture-card"
@@ -55,7 +56,7 @@ console.log(previewUrl)
55 56
       beforeUpload={beforeUpload}
56 57
       onChange={handleChange}
57 58
     >
58
-      {value ? <img src={value} alt="avatar" style={{ width: '100%', height: '100%' }} /> : <UploadButton loading={loading} />}
59
+      {value ? <img src={previewUrl} alt="avatar" style={{ width: '100%', height: '100%' }} /> : <UploadButton loading={loading} />}
59 60
     </Upload>
60 61
   );
61 62
 }

+ 6
- 14
src/components/Upload/request.js 查看文件

@@ -1,17 +1,7 @@
1
-import request from '@/utils/request';
2 1
 
3
-const upload = (file, fileType = 'image') => {
4
-  const formData = new FormData();
5
-  formData.append("file", file);
6
-  formData.append("fileType", fileType);
7
-  return request('/upload', {
8
-    method: 'post',
9
-    data: formData,
10
-    headers: {
11
-      'Content-Type': 'multipart/form-data',
12
-    }
13
-  });
14
-}
2
+import { uploadFile as upload } from "@/store/oss";
3
+
4
+
15 5
 
16 6
 /**
17 7
  * 上传文件
@@ -19,8 +9,10 @@ const upload = (file, fileType = 'image') => {
19 9
  */
20 10
 export function uploadFile(params) {
21 11
   const { file, onSuccess, onError } = params;
12
+  console.log(upload)
22 13
   upload(file).then((res) => {
23
-    onSuccess(res, file)
14
+    console.log("resresres",res)
15
+   onSuccess({res}, file);
24 16
   }).catch((e) => {
25 17
     onError(e)
26 18
   });

+ 24
- 8
src/pages/member/index.jsx 查看文件

@@ -11,7 +11,8 @@ export default (props) => {
11 11
   const [isModalOpen, setIsModalOpen] = React.useState(false);
12 12
   const [modalTitle, setModalTitle] = React.useState("");
13 13
   const [modalObj, setModalObj] = React.useState({});
14
-
14
+  const today = moment().format("YYYY-MM-DDTHH:mm:ss");
15
+  const newToday = moment(today);
15 16
   const columns = [
16 17
     {
17 18
       title: "注册日期",
@@ -76,11 +77,11 @@ export default (props) => {
76 77
   const onWrite = (id) => {
77 78
     // putTaMemberCardIdWrite().then((res) => {});
78 79
   };
79
-const actionRef=useRef()
80
+  const actionRef = useRef();
80 81
 
81
-const reload=()=>{
82
-  return actionRef?.current?.reload()
83
-}
82
+  const reload = () => {
83
+    return actionRef?.current?.reload();
84
+  };
84 85
 
85 86
   return (
86 87
     <>
@@ -90,14 +91,29 @@ const reload=()=>{
90 91
         // onEdit={(record) => navigate(`/member/edit?id=${record.memberId}`)}
91 92
         columnOptionRender={(_, record) => {
92 93
           const dataNum = record.taMemberCardList.reduce((total, item) => {
93
-            return (total += item.leftAmount);
94
+            if (!item.expireTime) {
95
+              return (total += item.leftAmount);
96
+            } else {
97
+              const endTime = moment(item.expireTime);
98
+              const expireNum = endTime.diff(newToday, "minutes");
99
+              console.log(expireNum)
100
+              if (expireNum >= 5) {
101
+                return true;
102
+              }else{
103
+                return false
104
+              }
105
+            }
94 106
           }, 0);
107
+          console.log(dataNum)
108
+          console.log(record)
95 109
           return [
96 110
             <Button
97 111
               key="A2"
98 112
               style={{ padding: 0 }}
99 113
               type="link"
100
-              onClick={() => navigate(`/custom/member/edit?id=${record.memberId}`)}
114
+              onClick={() =>
115
+                navigate(`/custom/member/edit?id=${record.memberId}`)
116
+              }
101 117
             >
102 118
               详情
103 119
             </Button>,
@@ -134,7 +150,7 @@ const reload=()=>{
134 150
         modalTitle={modalTitle}
135 151
         modalObj={modalObj}
136 152
         reload={reload}
137
-      /> 
153
+      />
138 154
     </>
139 155
   );
140 156
 };

+ 3
- 0
src/services/ossPolicy.js 查看文件

@@ -0,0 +1,3 @@
1
+import request from "@/utils/request";
2
+
3
+export const getPolicy = () => request("/upload/policy");

+ 58
- 0
src/store/oss.js 查看文件

@@ -0,0 +1,58 @@
1
+import axios from "axios";
2
+import { getPolicy as getOssPolicy } from "@/services/ossPolicy";
3
+
4
+let oss;
5
+let expire = 0;
6
+
7
+const resetPolicy = () => {
8
+  return getOssPolicy().then((res) => {
9
+    oss = res;
10
+    expire = res.expire;
11
+
12
+    return oss;
13
+  });
14
+}
15
+
16
+const getOssAsync = () => {
17
+  const current = (new Date()).getTime() / 1000;
18
+  // 3s 缓冲
19
+  if (expire <= current + 3) {
20
+    // 说明快到期了
21
+    return resetPolicy();
22
+  } else {
23
+    return Promise.resolve(oss);
24
+  }
25
+}
26
+
27
+const request = axios.create();
28
+const uploadFile = file => {
29
+  return getOssAsync().then(oss => {
30
+    const formData = new FormData();
31
+    const fileName= (new Date).getTime() + '_' + file.name;
32
+
33
+    formData.append("OSSAccessKeyId", oss.accessId);
34
+    formData.append("signature", oss.signature);
35
+    formData.append("policy", oss.policy);
36
+    formData.append("key", oss.dir + fileName);
37
+    formData.append("success_action_status", 200);
38
+    formData.append("file", file);
39
+  
40
+    return request(oss.host, {
41
+      method: "post",
42
+      data: formData,
43
+      headers: {
44
+        "Content-Type": "multipart/form-data",
45
+      },
46
+    }).then(res => {
47
+      console.log(res);
48
+
49
+      if (res.status == 200) {
50
+        return `${oss.customDomain}/${oss.dir}${fileName}`;
51
+      }
52
+    });
53
+  });
54
+}
55
+
56
+export {
57
+  uploadFile,
58
+}

+ 1
- 1
src/utils/request.js 查看文件

@@ -7,7 +7,7 @@ const instance = axios.create({
7 7
   baseURL: process.env.NODE_ENV == "development" ? "/api/admin" : SERVER_BASE,
8 8
   timeout: 10000,
9 9
 });
10
-
10
+console.log(process.env.NODE_ENV)
11 11
 // 添加请求拦截器
12 12
 instance.interceptors.request.use(
13 13
   function (config) {