张延森 před 5 roky
rodič
revize
12dd2eb4cf
4 změnil soubory, kde provedl 33 přidání a 5 odebrání
  1. 11
    1
      src/app.js
  2. 3
    0
      src/constants/common.js
  3. 8
    1
      src/reducers/system.js
  4. 11
    3
      src/utils/tools.js

+ 11
- 1
src/app.js Zobrazit soubor

@@ -26,7 +26,7 @@ import {
26 26
   ASSIGN_UNREADNUM,
27 27
   INCREASE_UNREADNUM
28 28
 } from '@/constants/user'
29
-import { UPDATE_PRELOAD } from '@/constants/common'
29
+import { UPDATE_PRELOAD, SYNC_SYSTEMINFO } from '@/constants/common'
30 30
 import ready from '@/utils/ready'
31 31
 import login from '@/utils/login'
32 32
 import store from './store'
@@ -191,6 +191,16 @@ class App extends Component {
191 191
     // 预加载数据
192 192
     this.wxPreloadData()
193 193
 
194
+    // 获取系统信息
195
+    wx.getSystemInfo({
196
+      success: (res) => {
197
+        store.dispatch({
198
+          type: SYNC_SYSTEMINFO,
199
+          payload: res,
200
+        })
201
+      }
202
+    })
203
+
194 204
     // console.info('app componentWillMount', params)
195 205
     this.initData()
196 206
   }

+ 3
- 0
src/constants/common.js Zobrazit soubor

@@ -9,3 +9,6 @@ export const TPL_GROUP = "group-result";
9 9
 
10 10
 // 更新预拉取数据
11 11
 export const UPDATE_PRELOAD = 'UPDATE_PRELOAD';
12
+
13
+// 同步系统信息
14
+export const SYNC_SYSTEMINFO = 'SYNC_SYSTEMINFO';

+ 8
- 1
src/reducers/system.js Zobrazit soubor

@@ -1,4 +1,4 @@
1
-import { UPDATE_PRELOAD } from '@/constants/common'
1
+import { UPDATE_PRELOAD, SYNC_SYSTEMINFO } from '@/constants/common'
2 2
 
3 3
 // 初始数据
4 4
 const INITIAL_STATE = {
@@ -7,6 +7,7 @@ const INITIAL_STATE = {
7 7
   orgInfo: {},
8 8
   userInfo: {},
9 9
   settings: [],
10
+  systemInfo: {},
10 11
 }
11 12
 
12 13
 export default function (state = INITIAL_STATE, action) {
@@ -17,6 +18,12 @@ export default function (state = INITIAL_STATE, action) {
17 18
         ...action.payload,
18 19
       }
19 20
     }
21
+    case SYNC_SYSTEMINFO: {
22
+      return {
23
+        ...state,
24
+        systemInfo: action.payload,
25
+      }
26
+    }
20 27
 
21 28
     default:
22 29
       return state

+ 11
- 3
src/utils/tools.js Zobrazit soubor

@@ -1,4 +1,7 @@
1 1
 import Taro from '@tarojs/taro';
2
+import store from '../store'
3
+
4
+console.log('----------store', store.getState())
2 5
 
3 6
 /**
4 7
  * 是否为空
@@ -76,7 +79,7 @@ export function getThumbnail(img, quality) {
76 79
   if (!img) return img
77 80
 
78 81
   if (img.indexOf('https://estateagents.oss-cn-shanghai.aliyuncs.com') === 0) {
79
-    return `${img}?x-oss-process=style/compress${quality || 30}`
82
+    return `${img.replace('oss-cn-shanghai', 'oss-accelerate')}?x-oss-process=style/compress${quality || 30}`
80 83
   }
81 84
 
82 85
   return img
@@ -87,7 +90,7 @@ export function resizeImage(img, size) {
87 90
   if (!img) return img
88 91
 
89 92
   if (img.indexOf('https://estateagents.oss-cn-shanghai.aliyuncs.com') === 0) {
90
-    return `${img}?x-oss-process=style/resize${size || 750}`
93
+    return `${img.replace('oss-cn-shanghai', 'oss-accelerate')}?x-oss-process=style/resize${size || 750}`
91 94
   }
92 95
 
93 96
   return img
@@ -101,7 +104,12 @@ export function transferImage(img) {
101 104
   if (!img) return img
102 105
 
103 106
   if (img.indexOf('https://estateagents.oss-cn-shanghai.aliyuncs.com') === 0) {
104
-    return `${img}?x-oss-process=image/resize,m_lfit,w_750/quality,Q_80`
107
+    if (store.getState().system.systemInfo.platform !== 'ios') {
108
+      // ios 暂时不支持 webp
109
+      return `${img.replace('oss-cn-shanghai', 'oss-accelerate')}?x-oss-process=style/transwebp`
110
+    }
111
+
112
+    return `${img.replace('oss-cn-shanghai', 'oss-accelerate')}?x-oss-process=image/resize,m_lfit,w_750/quality,Q_80`
105 113
   }
106 114
 
107 115
   return img