Your Name 3 gadus atpakaļ
vecāks
revīzija
048a2c0fcf

+ 2
- 1
config/index.js Parādīt failu

24
     '@/store': path.resolve(__dirname, '..', 'src/store'),
24
     '@/store': path.resolve(__dirname, '..', 'src/store'),
25
     '@/services': path.resolve(__dirname, '..', 'src/services'),
25
     '@/services': path.resolve(__dirname, '..', 'src/services'),
26
     '@/utils': path.resolve(__dirname, '..', 'src/utils'),
26
     '@/utils': path.resolve(__dirname, '..', 'src/utils'),
27
+    '@/native': path.resolve(__dirname, '..', 'src/native'),
27
     '@/pages': path.resolve(__dirname, '..', 'src/pages'),
28
     '@/pages': path.resolve(__dirname, '..', 'src/pages'),
28
   },
29
   },
29
   copy: {
30
   copy: {
30
     patterns: [
31
     patterns: [
31
-      { from: 'src/native/', to: 'dist/native/' },
32
+      // { from: 'src/native/', to: 'dist/native/' },
32
     ],
33
     ],
33
     options: {
34
     options: {
34
     }
35
     }

Binārs
src/assets/poster-empty.png Parādīt failu


+ 48
- 20
src/components/Poster/Poster.jsx Parādīt failu

39
         }
39
         }
40
       })
40
       })
41
 
41
 
42
-      Promise.all([
43
-        sdk.getImage(poster),
44
-        sdk.getImage(miniCode),
45
-        sdk.getImage(avatar),
46
-      ]).then((res) => {
47
-        const [posterImg, miniCodeImg, avatarImg] = res
42
+      // 名称
43
+      sdk.darwText(name, conf.name)
44
+      // 小程序码
45
+      sdk.darwText(desc, conf.desc)
48
 
46
 
49
-        // 封面
47
+      let cnt = 0
48
+      // 封面
49
+      sdk.getImage(poster).then((posterImg) => {
50
         sdk.drawImage(posterImg, conf.poster)
50
         sdk.drawImage(posterImg, conf.poster)
51
-        // 头像
51
+        cnt += 1
52
+      }).catch(() => cnt += 1)
53
+      // 头像
54
+      sdk.getImage(avatar).then((avatarImg) => {
52
         sdk.drawImage(avatarImg, conf.avatar)
55
         sdk.drawImage(avatarImg, conf.avatar)
53
-        // 小程序码
56
+        cnt += 1
57
+      }).catch(() => cnt += 1)
58
+      // 小程序码
59
+      sdk.getImage(miniCode).then((miniCodeImg) => {
54
         sdk.drawImage(miniCodeImg, conf.miniCode)
60
         sdk.drawImage(miniCodeImg, conf.miniCode)
55
-        // 名称
56
-        sdk.darwText(name, conf.name)
57
-        // 小程序码
58
-        sdk.darwText(desc, conf.desc)
61
+        cnt += 1
62
+      }).catch(() => cnt += 1)
59
 
63
 
60
-        //
61
-        const image = sdk.toDataURL()
62
-        onEnd(image, sdk)
63
-      }).catch(([e1, e2, e3]) => {
64
-        if (onError) {
65
-          onError([e1, e2, e3])
64
+      const ticker = setInterval(() => {
65
+        if (cnt >= 3) {
66
+          // 图片全部处理完
67
+          const image = sdk.toDataURL()
68
+          onEnd(image, sdk)
69
+          clearInterval(ticker)
66
         }
70
         }
67
-      })
71
+      }, 200);
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
+      // })
68
     }
96
     }
69
   }, [sdk, dataSource, onStart, onEnd, onError])
97
   }, [sdk, dataSource, onStart, onEnd, onError])
70
 
98
 

+ 10
- 6
src/components/Poster/index.jsx Parādīt failu

84
     })
84
     })
85
   }
85
   }
86
 
86
 
87
+  const handleImage = (e) => {
88
+    Taro.previewImage({ current: img, urls: [img] })
89
+  }
90
+
87
   return (
91
   return (
88
     // <Modal title={title} visible={show} onClose={onClose}>
92
     // <Modal title={title} visible={show} onClose={onClose}>
89
     // eslint-disable-next-line react/jsx-no-undef
93
     // eslint-disable-next-line react/jsx-no-undef
90
-    <page-container show={show} position='bottom' onClickOverlay={onClose}>
91
-      <View className='modal-poster' onClick={onClose}>
94
+    <page-modal show={show} position='bottom' onClickOverlay={onClose} height="60vh">
95
+      <View className='modal-poster'>
92
         <View className='modal-poster-img-box'>
96
         <View className='modal-poster-img-box'>
93
-        {
97
+        {/* {
94
           !processing
98
           !processing
95
-            ? <Image src={img} mode='scaleToFill' onClick={() => Taro.previewImage({ current: img, urls: [img] })} />
99
+            ? <Image src={img} mode='scaleToFill' onClick={handleImage} />
96
             : <Spin2 spinning={processing} size={32} />
100
             : <Spin2 spinning={processing} size={32} />
97
-        }
101
+        } */}
98
         </View>
102
         </View>
99
         <Button className='modal-poster-action' onClick={handleSave} disabled={!img} loading={loading}>
103
         <Button className='modal-poster-action' onClick={handleSave} disabled={!img} loading={loading}>
100
           {btnText}
104
           {btnText}
101
         </Button>
105
         </Button>
102
       </View>
106
       </View>
103
       <Poster dataSource={dataSource} onStart={() => setProcessing(true)} onEnd={handlePoster} />
107
       <Poster dataSource={dataSource} onStart={() => setProcessing(true)} onEnd={handlePoster} />
104
-    </page-container>
108
+    </page-modal>
105
   )
109
   )
106
 }
110
 }

+ 8
- 4
src/components/Poster/style.scss Parādīt failu

1
 .modal-poster {
1
 .modal-poster {
2
-  width: 100vw;
3
-  height: 100vh;
2
+  // width: 100vw;
3
+  // height: 100vh;
4
   // height: calc(100vh - 62rpx);
4
   // height: calc(100vh - 62rpx);
5
+  height: 100%;
5
   box-sizing: border-box;
6
   box-sizing: border-box;
6
   padding: 40rpx;
7
   padding: 40rpx;
7
 
8
 
8
   &-img-box {
9
   &-img-box {
9
-    flex: auto;
10
-    width: 70%;
11
     height: calc(100% - 92rpx - 40rpx);
10
     height: calc(100% - 92rpx - 40rpx);
12
     margin: 0 auto;
11
     margin: 0 auto;
13
     background: #fff;
12
     background: #fff;
14
     box-shadow: 0 14rpx 24rpx 0 rgba(0, 0, 0, 0.2);
13
     box-shadow: 0 14rpx 24rpx 0 rgba(0, 0, 0, 0.2);
15
     position: relative;
14
     position: relative;
16
 
15
 
16
+    .empty-poster {
17
+      width: auto;
18
+      height: 100%;
19
+    }
20
+
17
     image {
21
     image {
18
       width: 100%;
22
       width: 100%;
19
       height: 100%;
23
       height: 100%;

+ 1
- 1
src/pages/index/buildingDetail/index.config.js Parādīt failu

2
   navigationBarTitleText: '楼盘详情',
2
   navigationBarTitleText: '楼盘详情',
3
   enableShareAppMessage: true,
3
   enableShareAppMessage: true,
4
   usingComponents: {
4
   usingComponents: {
5
-    'page-container': '/native/PageContainer/index'
5
+    'page-modal': '@/native/PageContainer/index'
6
   }
6
   }
7
 }
7
 }

+ 7
- 0
src/utils/hooks/usePoster.js Parādīt failu

16
           name: person.name || person.nickname,
16
           name: person.name || person.nickname,
17
           avatar: person.avatarurl,
17
           avatar: person.avatarurl,
18
         })
18
         })
19
+      }).catch(() => {
20
+        setPosterData({
21
+          poster,
22
+          miniCode: undefined,
23
+          name: person.name || person.nickname,
24
+          avatar: person.avatarurl,
25
+        })
19
       })
26
       })
20
     }
27
     }
21
   // eslint-disable-next-line react-hooks/exhaustive-deps
28
   // eslint-disable-next-line react-hooks/exhaustive-deps