Your Name 3 years ago
parent
commit
4dfe5ec95f

+ 2
- 2
config/dev.js View File

3
     NODE_ENV: '"development"'
3
     NODE_ENV: '"development"'
4
   },
4
   },
5
   defineConstants: {
5
   defineConstants: {
6
-    HOST: '"https://xlk.njyz.tech"',
7
-    // HOST: '"https://xlj.newlandsh.com"',
6
+    // HOST: '"https://xlk.njyz.tech"',
7
+    HOST: '"https://xlj.newlandsh.com"',
8
     // HOST: '"http://127.0.0.1:8081"',
8
     // HOST: '"http://127.0.0.1:8081"',
9
     WSS_HOST: '"wss://xlk.njyz.tech"',
9
     WSS_HOST: '"wss://xlk.njyz.tech"',
10
     OSS_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
10
     OSS_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',

+ 0
- 23
src/components/Poster/Poster.jsx View File

70
         }
70
         }
71
       }, 200);
71
       }, 200);
72
 
72
 
73
-
74
-      // Promise.all([
75
-      //   // sdk.getImage(poster),
76
-      //   sdk.getImage(miniCode),
77
-      //   // sdk.getImage(avatar),
78
-      // ]).then((res) => {
79
-      //   const [posterImg, miniCodeImg, avatarImg] = res
80
-
81
-      //   // 封面
82
-      //   sdk.drawImage(posterImg, conf.poster)
83
-      //   // 头像
84
-      //   sdk.drawImage(avatarImg, conf.avatar)
85
-      //   // 小程序码
86
-      //   sdk.drawImage(miniCodeImg, conf.miniCode)
87
-
88
-      //   //
89
-      //   const image = sdk.toDataURL()
90
-      //   onEnd(image, sdk)
91
-      // }).catch(([e1, e2, e3]) => {
92
-      //   if (onError) {
93
-      //     onError([e1, e2, e3])
94
-      //   }
95
-      // })
96
     }
73
     }
97
   }, [sdk, dataSource, onStart, onEnd, onError])
74
   }, [sdk, dataSource, onStart, onEnd, onError])
98
 
75
 

+ 10
- 39
src/components/Poster/index.jsx View File

1
 import React, { useRef, useState } from 'react'
1
 import React, { useRef, useState } from 'react'
2
 import Taro from '@tarojs/taro'
2
 import Taro from '@tarojs/taro'
3
-// import PageModal from '@/components/PageModal'
4
-import { authorize } from '@/utils/wxAuth'
5
 import { View, Image, Button } from '@tarojs/components'
3
 import { View, Image, Button } from '@tarojs/components'
6
 import Spin2 from '@/components/Spin/Spin2'
4
 import Spin2 from '@/components/Spin/Spin2'
5
+import { save2Album } from '@/utils/image'
7
 import Poster from './Poster'
6
 import Poster from './Poster'
8
 import './style.scss'
7
 import './style.scss'
9
 
8
 
37
       return
36
       return
38
     }
37
     }
39
 
38
 
40
-    authorize('scope.writePhotosAlbum').then(() => {
41
-      setLoading(true)
42
-
43
-      // 先生成到临时位置
44
-      sdkRef.current.download().then((tempPath) => {
45
-        // 再保存到相册
46
-        Taro.saveImageToPhotosAlbum({
47
-          filePath: tempPath,
48
-          success: () => {
49
-            Taro.showToast({
50
-              title: '保存成功',
51
-              icon: 'none',
52
-              duration: 3000,
53
-            })
54
-            onSuccess()
55
-          },
56
-          fail: (err) => {
57
-            console.error(err)
58
-            const message = err.errMsg || err.message || err
59
-            Taro.showToast({
60
-              title: message,
61
-              icon: 'none',
62
-            })
63
-          },
64
-          complete: () => {
65
-            setLoading(false)
66
-          }
67
-        })
68
-      }).catch((err) => {
39
+    // 保存到相册
40
+    setLoading(true)
41
+    sdkRef.current.download().then((tempPath) => {
42
+      save2Album(tempPath).then(() => {
69
         setLoading(false)
43
         setLoading(false)
70
-        console.error(err)
71
-        const message = err.errMsg || err.message || err
72
-        Taro.showToast({
73
-          title: message,
74
-          icon: 'none',
75
-        })
76
-      })
44
+        onSuccess()
45
+        Taro.showToast({ title: '保存成功', icon: 'none' })
46
+      }, () => setLoading(false))
77
     }).catch((err) => {
47
     }).catch((err) => {
48
+      setLoading(false)
78
       console.error(err)
49
       console.error(err)
79
       const message = err.errMsg || err.message || err
50
       const message = err.errMsg || err.message || err
80
       Taro.showToast({
51
       Taro.showToast({
85
   }
56
   }
86
 
57
 
87
   const handleImage = (e) => {
58
   const handleImage = (e) => {
88
-    Taro.previewImage({ current: img, urls: [img] })
59
+    Taro.previewImage({ current: img, urls: [img], showmenu: true })
89
   }
60
   }
90
 
61
 
91
   return (
62
   return (

+ 13
- 12
src/pages/mine/myRecommendCode/index.jsx View File

1
 import { useState, useEffect } from 'react'
1
 import { useState, useEffect } from 'react'
2
 import { Image } from '@tarojs/components'
2
 import { Image } from '@tarojs/components'
3
 import withLayout from '@/layout'
3
 import withLayout from '@/layout'
4
-import '@/assets/css/iconfont.css'
5
 import { fetch } from '@/utils/request'
4
 import { fetch } from '@/utils/request'
6
 import { API_QRCODE } from '@/constants/api'
5
 import { API_QRCODE } from '@/constants/api'
7
-import { getImgURL } from '@/utils/image'
6
+import { getImgURL, save2Album } from '@/utils/image'
8
 import Taro from '@tarojs/taro'
7
 import Taro from '@tarojs/taro'
8
+import '@/assets/css/iconfont.css'
9
 import './index.scss'
9
 import './index.scss'
10
 
10
 
11
 export default withLayout((props) => {
11
 export default withLayout((props) => {
27
     Taro.downloadFile({
27
     Taro.downloadFile({
28
       url: QrCodeUrl,
28
       url: QrCodeUrl,
29
       success: function(res) {
29
       success: function(res) {
30
-        let tempFilePath = res.tempFilePath
31
-        Taro.saveFile({
32
-          tempFilePath: tempFilePath,
33
-          success: function() {
34
-            Taro.showToast({title: '保存成功', icon: 'none'})
35
-          },
36
-          fail: function() {
37
-            Taro.showToast({title: '保存失败', icon: 'none'})
38
-          }
30
+        save2Album(res.tempFilePath).then(() => {
31
+          Taro.showToast({ title: '保存成功', icon: 'none' })
32
+        })
33
+      },
34
+      fail: function(err) {
35
+        console.error(err)
36
+        Taro.showToast({
37
+          title: '操作失败, 您可以试试预览保存',
38
+          icon: 'none'
39
         })
39
         })
40
       }
40
       }
41
     })
41
     })
44
   const PreviewImage = () => {
44
   const PreviewImage = () => {
45
     Taro.previewImage({
45
     Taro.previewImage({
46
       current: QrCodeUrl,
46
       current: QrCodeUrl,
47
-      urls: [QrCodeUrl]
47
+      urls: [QrCodeUrl],
48
+      showmenu: true,
48
     })
49
     })
49
   }
50
   }
50
 
51
 

+ 45
- 0
src/utils/image.js View File

1
 
1
 
2
+import Taro from '@tarojs/taro'
3
+import { authorize } from './wxAuth'
2
 // eslint-disable-next-line no-undef
4
 // eslint-disable-next-line no-undef
3
 const host = HOST;
5
 const host = HOST;
4
 
6
 
9
 
11
 
10
   return `${host}${img}`;
12
   return `${host}${img}`;
11
 }
13
 }
14
+
15
+/**
16
+ * 保存到相册
17
+ * @param {*} tempPath 
18
+ * @returns 
19
+ */
20
+export function save2Album(tempPath) {
21
+  return new Promise((resolve, reject) => {
22
+    authorize('scope.writePhotosAlbum').then(() => {
23
+      // 再保存到相册
24
+      Taro.saveImageToPhotosAlbum({
25
+        filePath: tempPath,
26
+        success: () => {
27
+          resolve()
28
+        },
29
+        fail: (err) => {
30
+          console.error(err)
31
+          let message = err.errMsg || err.message || err
32
+          if (message.indexOf('cancel') > -1) {
33
+            message = '您已取消'
34
+          }
35
+          Taro.showToast({
36
+            title: message,
37
+            icon: 'none',
38
+          })
39
+          reject(err)
40
+        }
41
+      })
42
+    }).catch((err) => {
43
+      console.error(err)
44
+      let message = err.errMsg || err.message || err
45
+      if (message.indexOf('cancel') > -1) {
46
+        message = '您已取消'
47
+      }
48
+
49
+      Taro.showToast({
50
+        title: message,
51
+        icon: 'none',
52
+      })
53
+      reject(err)
54
+    })
55
+  })
56
+}