Ver código fonte

生成完整的H5地址

Yahoo 4 anos atrás
pai
commit
3ee03607cb
2 arquivos alterados com 46 adições e 12 exclusões
  1. 26 11
      common/model/Setting.js
  2. 20 1
      utils/app.js

+ 26 - 11
common/model/Setting.js

@@ -2,6 +2,7 @@ import * as SettingApi from '@/api/setting'
 import storage from '@/utils/storage'
 
 const CACHE_KEY = 'Setting'
+const OTHER = '_other'
 
 // 写入缓存, 到期时间10分钟
 const setStorage = (data) => {
@@ -27,32 +28,46 @@ const getApiData = () => {
 /**
  * 获取商城设置
  * 有缓存的情况下返回缓存, 没有缓存从后端api获取
- * @param {bool} isCache 是否从缓存中获取
+ * @param {bool} isCache 是否从缓存中获取 [优点不用每次请求后端api 缺点后台更新设置后需等待时效性]
  */
-const data = (isCache = true) => {
+const data = (isCache = false) => {
   return new Promise((resolve, reject) => {
     const cacheData = getStorage()
     if (isCache && cacheData) {
       resolve(cacheData)
     } else {
-      getApiData().then(data => {
-        setStorage(data)
-        resolve(data)
-      })
+      getApiData()
+        .then(data => {
+          setStorage(data)
+          resolve(data)
+        })
     }
   })
 }
 
 // 获取商城设置(指定项)
-const item = (key, isCache = true) => {
+const item = (key, isCache = false) => {
   return new Promise((resolve, reject) => {
-    data(isCache).then(setting => {
-      resolve(setting[key])
-    })
+    data(isCache)
+      .then(setting => {
+        resolve(setting[key])
+      })
+  })
+}
+
+// 获取H5端访问地址
+const h5Url = (isCache = false) => {
+  return new Promise((resolve, reject) => {
+    data(isCache)
+      .then(setting => {
+        const h5Url = setting[OTHER]['h5Url']
+        resolve(h5Url)
+      })
   })
 }
 
 export default {
   data,
-  item
+  item,
+  h5Url
 }

+ 20 - 1
utils/app.js

@@ -91,7 +91,26 @@ export const getTabBarLinks = () => {
 }
 
 /**
- * 生成转发的url参数
+ * 生成完整的H5地址 [带参数]
+ * @param {string} h5Url H5访问地址
+ * @param {string} path 页面路径
+ * @param {object} params 页面参数
+ * @return {string}
+ */
+export const buildUrL = (h5Url, path, params) => {
+  let complete = h5Url
+  if (!util.isEmpty(path)) {
+    complete += '#/' + path
+    const shareParamsStr = getShareUrlParams(params)
+    if (!util.isEmpty(shareParamsStr)) {
+      complete += '?' + shareParamsStr
+    }
+  }
+  return complete
+}
+
+/**
+ * 生成转发的url参数(string格式)
  */
 export const getShareUrlParams = (params) => {
   return util.urlEncode({