panyong vor 4 Jahren
Ursprung
Commit
e83851276b

+ 103 - 0
htmldev/loan/package-lock.json

@@ -1453,6 +1453,12 @@
         }
       }
     },
+    "@vant/icons": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npm.taobao.org/@vant/icons/download/@vant/icons-1.3.0.tgz",
+      "integrity": "sha1-lPTJMSL9czHg4A31WAR3murYycI=",
+      "dev": true
+    },
     "@vue/babel-helper-vue-jsx-merge-props": {
       "version": "1.0.0",
       "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz",
@@ -2595,6 +2601,15 @@
       "integrity": "sha1-4eguTz6Zniz9YbFhKA0WoRH4ZCg=",
       "dev": true
     },
+    "axios": {
+      "version": "0.20.0",
+      "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.20.0.tgz?cache=0&sync_timestamp=1597979584536&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.20.0.tgz",
+      "integrity": "sha1-BXujDwSIRpSZOozQf6OUz/EcUL0=",
+      "dev": true,
+      "requires": {
+        "follow-redirects": "^1.10.0"
+      }
+    },
     "babel-eslint": {
       "version": "10.1.0",
       "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz",
@@ -4586,6 +4601,58 @@
         "sha.js": "^2.4.8"
       }
     },
+    "cross-env": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npm.taobao.org/cross-env/download/cross-env-7.0.2.tgz?cache=0&sync_timestamp=1583440924717&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-env%2Fdownload%2Fcross-env-7.0.2.tgz",
+      "integrity": "sha1-vV7TEzmpOjQYrE88qco0Awgq5fk=",
+      "dev": true,
+      "requires": {
+        "cross-spawn": "^7.0.1"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz",
+          "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=",
+          "dev": true,
+          "requires": {
+            "path-key": "^3.1.0",
+            "shebang-command": "^2.0.0",
+            "which": "^2.0.1"
+          }
+        },
+        "path-key": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz",
+          "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=",
+          "dev": true
+        },
+        "shebang-command": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz",
+          "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
+          "dev": true,
+          "requires": {
+            "shebang-regex": "^3.0.0"
+          }
+        },
+        "shebang-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz",
+          "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
+          "dev": true
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz",
+          "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
+        }
+      }
+    },
     "cross-spawn": {
       "version": "6.0.5",
       "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz",
@@ -13455,6 +13522,18 @@
         "spdx-expression-parse": "^3.0.0"
       }
     },
+    "vant": {
+      "version": "2.10.9",
+      "resolved": "https://registry.npm.taobao.org/vant/download/vant-2.10.9.tgz",
+      "integrity": "sha1-MR5/U1QQZ/Rd4HwjAgrCMzknJhU=",
+      "dev": true,
+      "requires": {
+        "@babel/runtime": "7.x",
+        "@vant/icons": "1.3.0",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+        "vue-lazyload": "1.2.3"
+      }
+    },
     "vary": {
       "version": "1.1.2",
       "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
@@ -13521,6 +13600,12 @@
       "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
       "dev": true
     },
+    "vue-lazyload": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npm.taobao.org/vue-lazyload/download/vue-lazyload-1.2.3.tgz",
+      "integrity": "sha1-kB+ewVx+bKeHgaK65KNDaGve2yw=",
+      "dev": true
+    },
     "vue-loader": {
       "version": "15.9.3",
       "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.3.tgz?cache=0&sync_timestamp=1600850341736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.3.tgz",
@@ -13624,6 +13709,12 @@
         }
       }
     },
+    "vue-router": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.5.tgz?cache=0&sync_timestamp=1601637625754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.5.tgz",
+      "integrity": "sha1-05bsA3s1kxvdHpt+3Yb5eI3BUXU=",
+      "dev": true
+    },
     "vue-style-loader": {
       "version": "4.1.2",
       "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-style-loader%2Fdownload%2Fvue-style-loader-4.1.2.tgz",
@@ -13658,6 +13749,12 @@
       "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
       "dev": true
     },
+    "vuex": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.5.1.tgz",
+      "integrity": "sha1-8bjc6mSbwlJUz09DWAgdv12hiz0=",
+      "dev": true
+    },
     "watchpack": {
       "version": "1.7.4",
       "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.4.tgz",
@@ -14274,6 +14371,12 @@
       "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=",
       "dev": true
     },
+    "weixin-js-sdk": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npm.taobao.org/weixin-js-sdk/download/weixin-js-sdk-1.6.0.tgz",
+      "integrity": "sha1-/1BITYEYzhII8RJIz0ocCDFXdRQ=",
+      "dev": true
+    },
     "which": {
       "version": "1.3.1",
       "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz",

+ 7 - 1
htmldev/loan/package.json

@@ -17,8 +17,10 @@
     "@vue/cli-plugin-babel": "~4.5.0",
     "@vue/cli-plugin-eslint": "~4.5.0",
     "@vue/cli-service": "~4.5.0",
+    "axios": "^0.20.0",
     "babel-eslint": "^10.1.0",
     "babel-plugin-import": "^1.13.0",
+    "cross-env": "^7.0.2",
     "eslint": "^6.7.2",
     "eslint-plugin-vue": "^6.2.2",
     "filemanager-webpack-plugin": "^2.0.5",
@@ -30,7 +32,11 @@
     "sass-loader": "^10.0.2",
     "standard": "^14.3.4",
     "style-resources-loader": "^1.3.3",
-    "vue-template-compiler": "^2.6.11"
+    "vant": "^2.10.9",
+    "vue-router": "^3.4.5",
+    "vue-template-compiler": "^2.6.11",
+    "vuex": "^3.5.1",
+    "weixin-js-sdk": "^1.6.0"
   },
   "eslintConfig": {},
   "postcss": {

+ 0 - 1
htmldev/loan/src/assets/styles/reset.scss

@@ -4,7 +4,6 @@
   padding: 0;
   border: 0;
   box-sizing: border-box;
-  font-size: 0;
   font-family: PingFangSC-Regular, HYQiHei-FES, "Helvetica Neue", Helvetica, STHeiTi, Arial, sans-serif;
   line-height: 1.42857143;
   font-weight: 400;

+ 26 - 0
htmldev/loan/src/utils/getQueryString.js

@@ -0,0 +1,26 @@
+// 获取url参数
+function clearString() {
+  let args = new Array(...arguments)
+  let string = args.shift()
+  while (args.length) {
+    string = string.split(args[0]['str'])[args[0]['index']]
+    args.shift()
+  }
+  return string
+}
+
+export const getQueryString = (name) => {
+  let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|/#/|$)', 'g')
+  let urls = window.location.href.split('?')
+  let result = ''
+  urls.forEach((url) => {
+    let temp = url.match(reg)
+    if (!result && temp && temp.length) {
+      result = clearString(temp[0],
+        { str: `${name}=`, index: 1 },
+        { str: `/#/`, index: 0 },
+        { str: `&`, index: 0 })
+    }
+  })
+  return decodeURIComponent(result)
+}

+ 15 - 0
htmldev/loan/src/utils/platform.js

@@ -0,0 +1,15 @@
+const u = navigator.userAgent
+// 移动终端浏览器版本信息
+export const platform = {
+  ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios终端
+  android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, // android终端或uc浏览器
+  iPhone: u.indexOf('iPhone') > -1, // 是否为iPhone或者QQHD浏览器
+  iPad: u.indexOf('iPad') > -1, // 是否iPad
+  isWeixin: u.toLowerCase().indexOf('micromessenger') !== -1,
+  isAlipay: u.toLowerCase().indexOf('alipay') !== -1,
+  uCBrowser: u.indexOf('UCBrowser') > -1,
+  isChrome: u.indexOf('Chrome') !== -1,
+  isBaidu: !!navigator.userAgent.match(/Baidu/i),
+  isSafari: /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent),
+  u: u
+}

+ 70 - 0
htmldev/loan/src/utils/wxShareConfig.js

@@ -0,0 +1,70 @@
+import wx from 'weixin-js-sdk'
+
+const apiDomain = process.env.API_DOMAIN
+
+const wxJs = () => new Promise(resolve => {
+  window.apiPost(`${apiDomain}/Wx/getSharePackage`, {
+    // 微信二次分享参数不对
+    ShareUrl: location.href
+  }, (res) => {
+    if (res.Status === 1) {
+      resolve(res.Data)
+    }
+  })
+})
+
+/**
+ * wx-js-sdk 配置
+ */
+export const WxConfig = async () => {
+  const { appId, timestamp, nonceStr, signature } = await wxJs()
+  const wxParam = {
+    debug: false,
+    appId: appId,
+    timestamp: timestamp,
+    nonceStr: nonceStr,
+    signature: signature,
+    jsApiList: [
+      'checkJsApi',
+      'openLocation',
+      'getLocation',
+      'updateAppMessageShareData',
+      'updateTimelineShareData',
+      'onMenuShareAppMessage',
+      'onMenuShareTimeline']
+  }
+  wx.config(wxParam)
+  return wx
+}
+
+export const funWxShare = (title = '', desc = '', link = '', imgUrl = '') => {
+  // 低版本微信兼容
+  const appMessage = {
+    title: title, // 分享标题
+    desc: desc, // 分享描述
+    link: link, // 分享链接
+    imgUrl: imgUrl, // 分享图标
+    success: function () {
+    },
+    cancel: function () {
+    }
+  }
+  const timeline = {
+    title: desc, // 分享标题
+    link: link, // 分享链接
+    imgUrl: imgUrl, // 分享图标
+    success: function () {
+    },
+    cancel: function () {
+    }
+  }
+  WxConfig().then(result => {
+    window.wx = result
+    result.ready(() => {
+      // 分享给朋友
+      result.updateAppMessageShareData ? result.updateAppMessageShareData(appMessage) : result.onMenuShareAppMessage(appMessage)
+      // 分享到朋友圈
+      result.updateTimelineShareData ? result.updateTimelineShareData(timeline) : result.onMenuShareTimeline(timeline)
+    })
+  })
+}