Pārlūkot izejas kodu

一键成片优化1

Figo 1 mēnesi atpakaļ
vecāks
revīzija
83f6a5de37
12 mainītis faili ar 1604 papildinājumiem un 1596 dzēšanām
  1. 26 20
      apis/index.js
  2. 89 88
      manifest.json
  3. 2 2
      package-lock.json
  4. 582 561
      pages/index/index.vue
  5. 713 657
      pages/order/order_confirm.vue
  6. 63 147
      pages/user/index.vue
  7. 9 47
      request/index.js
  8. 27 0
      template.h5.html
  9. 1 73
      utils/preCheck.js
  10. 46 0
      utils/wxAuth.js
  11. 1 1
      vue.config.js
  12. 45 0
      yarn.lock

+ 26 - 20
apis/index.js

@@ -2,41 +2,47 @@ import request from "@/request"
 
 // 首页数据
 export const home = (data) => {
-	return request.get({
-		url: '/api/index',
-		data: data,
-	})
+    return request.get({
+        url: '/api/index',
+        data: data,
+    })
+}
+export const getWxBuyConfig = (data) => {
+    return request.post({
+        url: '/api/order/saveCommon',
+        data: data,
+    })
 }
 
 // 根据ID获取套餐数据
 export const getPackageById = (data) => {
-	return request.get({
-		url: '/api/getPackageById',
-		data: data,
-	})
+    return request.get({
+        url: '/api/getPackageById',
+        data: data,
+    })
 }
 
 // 根据ID获取配置参数
 export const getConfigById = (data) => {
-	return request.get({
-		url: '/api/getConfigById',
-		data: data,
-	})
+    return request.get({
+        url: '/api/getConfigById',
+        data: data,
+    })
 }
 
 // 上传文件
 export const upload = (data) => {
-	return request.post({
-		url: '/sys/oss/upload',
-		data: data,
-	})
+    return request.post({
+        url: '/sys/oss/upload',
+        data: data,
+    })
 }
 
 
 // 下单
 export const save = (data) => {
-	return request.post({
-		url: '/api/order/save',
-		data: data,
-	})
+    return request.post({
+        url: '/api/order/save',
+        data: data,
+    })
 }

+ 89 - 88
manifest.json

@@ -1,88 +1,89 @@
-{
-	"name": "高投短视频分销系统",
-	"appid": "__UNI__1F0A327",
-	"description": "",
-	"versionName": "1.0.0",
-	"versionCode": "100",
-	"transformPx": false,
-	/* 5+App特有相关 */
-	"app-plus": {
-		"usingComponents": true,
-		"nvueStyleCompiler": "uni-app",
-		"compilerVersion": 3,
-		"splashscreen": {
-			"alwaysShowBeforeRender": true,
-			"waiting": true,
-			"autoclose": true,
-			"delay": 0
-		},
-		/* 模块配置 */
-		"modules": {},
-		/* 应用发布信息 */
-		"distribute": {
-			/* android打包配置 */
-			"android": {
-				"permissions": [
-					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
-					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-					"<uses-feature android:name=\"android.hardware.camera\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-				]
-			},
-			/* ios打包配置 */
-			"ios": {},
-			/* SDK配置 */
-			"sdkConfigs": {}
-		}
-	},
-	/* 快应用特有相关 */
-	"quickapp": {},
-	/* 小程序特有相关 */
-	"mp-weixin": {
-		"appid": "",
-		"setting": {
-			"urlCheck": false
-		},
-		"usingComponents": true
-	},
-	"mp-alipay": {
-		"usingComponents": true
-	},
-	"mp-baidu": {
-		"usingComponents": true
-	},
-	"mp-toutiao": {
-		"usingComponents": true
-	},
-	"uniStatistics": {
-		"enable": false
-	},
-	"vueVersion": "2",
-	"h5": {
-		"router": {
-			"mode": "hash",
-			"base": "./"
-		},
-		"sdkConfigs": {
-			"weixin": {
-				"appid": "wx32a0607fd20c6c16",
-				"scope": "snsapi_userinfo",
-				"callback": "https://videotest.9jodia.net" // 必须与微信后台配置域名一致
-			}
-		},
-		"devServer": {
-			"port": "https://videotest.9jodia.net"
-		}
-	}
-}
+{
+    "name" : "高投短视频分销系统",
+    "appid" : "__UNI__9C96AFB",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2",
+    "h5" : {
+        "router" : {
+            "mode" : "hash",
+            "base" : "/h5/"
+        },
+        "sdkConfigs" : {
+            "weixin" : {
+                "appid" : "wx32a0607fd20c6c16",
+                "scope" : "snsapi_userinfo",
+                "callback" : "https://videotest.9jodia.net" // 必须与微信后台配置域名一致
+            }
+        },
+        "devServer" : {
+            "port" : 80
+        },
+        "template" : "template.h5.html"
+    }
+}

+ 2 - 2
package-lock.json

@@ -46,7 +46,7 @@
 		},
 		"node_modules/jweixin-module": {
 			"version": "1.6.0",
-			"resolved": "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz",
+			"resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
 			"integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
 		},
 		"node_modules/mutation-observer": {
@@ -92,7 +92,7 @@
 		},
 		"jweixin-module": {
 			"version": "1.6.0",
-			"resolved": "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz",
+			"resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
 			"integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
 		},
 		"mutation-observer": {

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 582 - 561
pages/index/index.vue


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 713 - 657
pages/order/order_confirm.vue


+ 63 - 147
pages/user/index.vue

@@ -6,7 +6,7 @@
     </view>
     <view class="news">
       <image :src="avatar"></image>
-      <view v-if="name" class="phone">{{name}}</view>
+      <view v-if="userInfo" class="phone">{{ userInfo.realName }}</view>
       <view v-else class="phone" @click="toLogin()">点击登录</view>
     </view>
     <view class="content">
@@ -47,15 +47,14 @@
 </template>
 
 <script>
-import config from '@/config'
-import { loginWx,logout } from '@/apis/user.js'
+import {logout} from '@/apis/user.js'
+
 export default {
   components: {},
   data() {
     return {
-      name: uni.getStorageSync('name'),
+      userInfo: uni.getStorageSync('userInfo'),
       token: uni.getStorageSync('token'),
-      code: '',
       bgImg: "https://ovp-shop.oss-cn-hangzhou.aliyuncs.com/static/9dshop/bg_top%403x.png",
       logoImg: "https://ovp-shop.oss-cn-hangzhou.aliyuncs.com/static/9dshop/img_logo%403x.png",
       tongzhi: "https://ovp-shop.oss-cn-hangzhou.aliyuncs.com/static/9dshop/ic_tongzhi%403x.png",
@@ -89,97 +88,14 @@ export default {
   computed: {},
   watch: {},
   onLoad() {
-    
-    let token = uni.getStorageSync('token')
-    if(!token){
-      this.toLogin()
-    }
-    // if(code !== null || code !== "") {
-    //     this.getOpenidAndUserinfo(code)
-    // }
+    this.changeTabbar()
   },
   onShow() {
-    this.changeTabbar()
+
   },
   methods: {
+    toLogin(){
 
-    toLogin() {
-      let isWX = this.isWechat()
-      if (isWX) {
-        // let code = this.getUrlCode('code')
-        let code = '001t0H000xuK7U'
-        uni.showToast({
-          title: code,
-        })
-        if (code !== null && code !== undefined) {
-          this.code = code
-          this.getOpenidAndUserinfo(code)
-        } else {
-          this.getCode()
-        }
-      }
-    },
-    // 判断是否为微信环境
-    isWechat() {
-      var ua = navigator.userAgent.toLowerCase()
-
-      var isWXWork = ua.match(/wxwork/i) == 'wxwork'
-
-      var isWeixin = !isWXWork && ua.match(/MicroMessenger/i) == 'micromessenger'
-      return isWeixin
-
-    },
-    getCode() {
-      const appid = config.appid
-      let loc_href = encodeURIComponent(window.location.href);
-      let mainstate = Math.random()
-      let wxUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${loc_href}&response_type=code&scope=snsapi_base&state=${mainstate}#wechat_redirect`;
-      window.location.href = wxUrl;
-    },
-    getUrlCode(name) {
-      return new URL(window.location.href).searchParams.get(name + '')
-    },
-
-    getOpenidAndUserinfo(code){
-      loginWx({
-				code: code
-			}).then(res => {
-				const {
-					name,
-					customerVo,
-					token,
-				} = res
-				uni.setStorageSync('openId', openId)
-				const userInfo = uni.getStorageSync('userInfo')
-				if (token) { // 登录成功 后更新用户信息
-
-					uni.setStorageSync('accessToken', token)
-					uni.setStorageSync('name', name)
-          this.name = name
-					// uni.setStorageSync('userInfo', customerVo)
-					// 设置默认地址
-					// addressFind().then(addrList => {
-					// 	const defaultAddrIndex = addrList.findIndex(item => item.defaultFlag === 1);
-					// 	defaultAddrIndex !== -1 && uni.setStorageSync('currentBuyerAddr', addrList[
-					// 		defaultAddrIndex]);
-					// })
-				}
-				if (!token) { // 未登录过
-					// const channel = getUrlParamsNormal('channel')
-					// if (channel === 'qrcode') { // 扫码进入的页面
-					// 	uni.redirectTo({
-					// 		url: '/pages/card/cardPhysical/index'
-					// 	})
-					// } else { // 进入登录
-					// 	uni.redirectTo({
-					// 		url: '/pages/login/index'
-					// 	})
-					// }
-					uni.switchTab({
-						url: '/pages/user/index'
-					})
-				}
-			})
     },
     changeTabbar() {
       uni.setTabBarStyle({
@@ -190,13 +106,13 @@ export default {
     },
     toOrder(item) {
       this.$router.push({
-        path: '/pages/order/index?status=' + item.value 
-      })  
+        path: '/pages/order/index?status=' + item.value
+      })
     },
-    outLogin(){
+    outLogin() {
       logout().then(res => {
-        uni.removeStorageSync('accessToken')
-        uni.removeStorageSync('name')
+        uni.removeStorageSync('token')
+        uni.removeStorageSync('userInfo')
         this.name = ''
         this.token = ''
       })
@@ -224,42 +140,42 @@ export default {
   background-position: top;
 
   .title {
-    padding: 16rpx 32rpx;
+    padding: 16 rpx 32 rpx;
 
     image {
-      height: 56rpx;
+      height: 56 rpx;
     }
   }
 
   .news {
-    padding: 64rpx 48rpx 0;
+    padding: 64 rpx 48 rpx 0;
     display: flex;
     align-items: center;
 
     image {
-      width: 104rpx;
-      height: 104rpx;
+      width: 104 rpx;
+      height: 104 rpx;
       background-color: aqua;
       border-radius: 50%;
     }
 
     .phone {
       font-weight: bold;
-      font-size: 44rpx;
+      font-size: 44 rpx;
       color: #0D121A;
-      margin-left: 32rpx;
+      margin-left: 32 rpx;
     }
   }
 
   .content {
-    padding: 0 24rpx;
-    margin-top: 40rpx;
+    padding: 0 24 rpx;
+    margin-top: 40 rpx;
     box-sizing: content-box;
   }
 
   .more {
-    width: 32rpx;
-    height: 32rpx;
+    width: 32 rpx;
+    height: 32 rpx;
   }
 
   .order-wrap {
@@ -270,11 +186,11 @@ export default {
 
     .unpay {
       // box-sizing: border-box;
-      width: 638rpx;
+      width: 638 rpx;
       background: #FFEEE2;
-      border-radius: 24rpx 24rpx 0rpx 0rpx;
-      border: 2rpx solid #FFFEFD;
-      padding: 16rpx 18rpx 16rpx 16rpx;
+      border-radius: 24 rpx 24 rpx 0 rpx 0 rpx;
+      border: 2 rpx solid #FFFEFD;
+      padding: 16 rpx 18 rpx 16 rpx 16 rpx;
       display: flex;
       justify-content: space-between;
       align-items: center;
@@ -284,14 +200,14 @@ export default {
         align-items: center;
 
         image {
-          width: 48rpx;
-          height: 48rpx;
+          width: 48 rpx;
+          height: 48 rpx;
         }
 
         .tip {
-          font-size: 24rpx;
+          font-size: 24 rpx;
           color: #FF7441;
-          margin-left: 14rpx;
+          margin-left: 14 rpx;
 
           text {
             font-weight: bold;
@@ -300,26 +216,26 @@ export default {
       }
 
       .right {
-        width: 120rpx;
-        height: 44rpx;
+        width: 120 rpx;
+        height: 44 rpx;
         font-weight: 500;
         background: #FF7441;
-        border-radius: 24rpx;
-        font-size: 24rpx;
+        border-radius: 24 rpx;
+        font-size: 24 rpx;
         color: #FFFFFF;
         text-align: center;
-        line-height: 44rpx;
+        line-height: 44 rpx;
       }
     }
 
     .order {
-      padding: 32rpx 32rpx 40rpx;
+      padding: 32 rpx 32 rpx 40 rpx;
       width: 100%;
       box-sizing: border-box;
-      height: 260rpx;
+      height: 260 rpx;
       background: linear-gradient(180deg, #DEF5FD 0%, #FFFFFF 100%);
-      border-radius: 32rpx;
-      border: 2rpx solid #FFFFFF;
+      border-radius: 32 rpx;
+      border: 2 rpx solid #FFFFFF;
 
       .order_top {
         display: flex;
@@ -328,19 +244,19 @@ export default {
 
         .mytt {
           font-weight: 500;
-          font-size: 32rpx;
+          font-size: 32 rpx;
           color: #0D121A;
         }
 
         .myall {
           font-weight: 400;
-          font-size: 26rpx;
+          font-size: 26 rpx;
           color: #0D121A;
           display: flex;
           align-items: center;
 
           .all {
-            margin-right: 8rpx;
+            margin-right: 8 rpx;
 
           }
         }
@@ -350,23 +266,23 @@ export default {
         display: flex;
         justify-content: space-between;
         align-items: center;
-        margin-top: 48rpx;
+        margin-top: 48 rpx;
 
         .order-box-item {
           display: flex;
           flex-direction: column;
           align-items: center;
-          width: 128rpx;
+          width: 128 rpx;
 
           image {
-            width: 64rpx;
-            height: 64rpx;
+            width: 64 rpx;
+            height: 64 rpx;
           }
 
           .name {
-            font-size: 24rpx;
+            font-size: 24 rpx;
             color: #0D121A;
-            margin-top: 16rpx;
+            margin-top: 16 rpx;
           }
         }
       }
@@ -375,37 +291,37 @@ export default {
 
   .cantact {
     width: 100%;
-    height: 112rpx;
+    height: 112 rpx;
     background: #FFFFFF;
-    border-radius: 24rpx;
+    border-radius: 24 rpx;
     display: flex;
     justify-content: space-between;
     align-items: center;
-    padding: 24rpx 32rpx;
-    margin-top: 24rpx;
+    padding: 24 rpx 32 rpx;
+    margin-top: 24 rpx;
 
     .canl {
       display: flex;
       align-items: center;
 
       image {
-        margin-right: 24rpx;
-        width: 64rpx;
-        height: 64rpx;
+        margin-right: 24 rpx;
+        width: 64 rpx;
+        height: 64 rpx;
       }
     }
   }
 
   .outline {
-    width: 622rpx;
-    height: 96rpx;
-    border-radius: 36rpx;
-    border: 4rpx solid #E2E4EB;
-    font-size: 28rpx;
+    width: 622 rpx;
+    height: 96 rpx;
+    border-radius: 36 rpx;
+    border: 4 rpx solid #E2E4EB;
+    font-size: 28 rpx;
     color: #0D121A;
     text-align: center;
-    line-height: 96rpx;
-    margin: 48rpx auto;
+    line-height: 96 rpx;
+    margin: 48 rpx auto;
   }
 }
 </style>

+ 9 - 47
request/index.js

@@ -1,78 +1,40 @@
 import {
 	baseUrl
 } from "@/config"
-import platform from "@/utils/platform"
-import getEnv from "@/utils/env" // 获取环境变量
-import store from "@/store"
+
 import {
 	wipeNulish
 } from '@/utils/utils.js'
 
 function requestHandle(obj) {
-	let header = obj.header || {}
 	const reqData = wipeNulish(obj.data) || {}
-	const accessToken = uni.getStorageSync('accessToken') || ''
-	const tokenType = uni.getStorageSync('tokenType') || ''
-	const Authorization = accessToken && tokenType ? `${tokenType} ${accessToken}` : ''
-	const customRes = obj.customRes
-	const plat = platform()
-	const env = getEnv()
+	const token = uni.getStorageSync('token') || ''
+
 	let base = baseUrl
 	const BASE_URL = obj.url.indexOf("http") > -1 || obj.url.indexOf("https://") > -1 ? obj.url : base + obj.url;
-	Object.assign(header, {
-		Authorization: Authorization,
-		platform: plat
-	})
 	return new Promise((resolve, reject) => {
 		uni.request({
 			method: obj.method,
 			url: BASE_URL,
 			data: reqData,
-			header: header,
+			header: {
+				token,
+			},
 			dataType: "json"
 		}).then(response => {
-
-			const {error, data: {
+			const { data: {
 					data,
 					code,
 					msg
 				}
 			} = response || {}
-
-			if (error) {
-				uni.showToast({
-					title: "服务器炸了",
-					icon: 'none'
-				})
-			}
-			if (customRes) {
-				resolve(response.data)
-			} else if (code === 424) { // 登录过期
-				uni.removeStorageSync('accessToken')
-				uni.removeStorageSync('tokenType')
-				uni.removeStorageSync('userInfo')
-				uni.removeStorageSync('currentBuyerAddr')
-				// uni.removeStorageSync('payOpenId')
-				const pages = getCurrentPages()
-				if (pages[pages.length - 1].$page.fullPath.includes('login')) {
-					return
-				}
-				uni.showToast({
-					title: msg,
-					icon: 'none',
-					mask: true
-				})
-				setTimeout(() => {
-					uni.reLaunch({
-						url: '/pages/login/index'
-					})
-				}, 1000)
-			} else if (code !== 0) {
+			if (code !== 0) {
 				uni.showToast({
 					title: msg || '服务器开小差',
 					icon: 'none'
 				})
 			} else {
+
 				resolve(data)
 			}
 		}).catch(error => {

+ 27 - 0
template.h5.html

@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+	<head>
+		<meta charset="utf-8">
+		<meta http-equiv="X-UA-Compatible" content="IE=edge">
+		<title>
+			<%= htmlWebpackPlugin.options.title %>
+		</title>
+		<!-- Open Graph data -->
+		<!-- <meta property="og:title" content="Title Here" /> -->
+		<!-- <meta property="og:url" content="http://www.example.com/" /> -->
+		<!-- <meta property="og:image" content="http://example.com/image.jpg" /> -->
+		<!-- <meta property="og:description" content="Description Here" /> -->
+		<script>
+			var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
+			document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+		</script>
+		<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
+	</head>
+	<body>
+		<noscript>
+			<strong>Please enable JavaScript to continue.</strong>
+		</noscript>
+		<div id="app"></div>
+		<!-- built files will be auto injected -->
+	</body>
+</html>

+ 1 - 73
utils/preCheck.js

@@ -1,73 +1 @@
-import platform from '@/utils/platform.js'
-import config from '@/config'
-import getEnv from "@/utils/env"
-import {
-	getUrlParamsNormal
-} from '@/utils/utils.js'
-import {
-	loginWx,
-} from '@/apis/user.js'
-// import {
-// 	addressFind
-// } from '@/apis/purchase.js'
-if (platform() === 'H5') {
-	const getWxQuery = (name) => {
-		return new URL(window.location.href).searchParams.get(name + '')
-	}
-	let openIdSt = ''
-	if (getEnv() === 'dev') {
-		const opId = getUrlParamsNormal('openId') || uni.getStorageSync('openId')
-		uni.setStorageSync('openId', opId)
-		openIdSt = opId || uni.getStorageSync('openId')
-	} else {
-		openIdSt = uni.getStorageSync('openId')
-	}
-	if (!openIdSt) {
-		const code = getWxQuery('code')
-		if (code) {
-			loginWx({
-				code: code
-			}).then(res => {
-				const {
-					name,
-					token,
-				} = res
-				if (token) { // 登录成功 后更新用户信息
-					uni.setStorageSync('accessToken', token)
-					uni.setStorageSync('name', name)
-					// 设置默认地址
-					// addressFind().then(addrList => {
-					// 	const defaultAddrIndex = addrList.findIndex(item => item.defaultFlag === 1);
-					// 	defaultAddrIndex !== -1 && uni.setStorageSync('currentBuyerAddr', addrList[
-					// 		defaultAddrIndex]);
-					// })
-				}
-				if (!token) { // 未登录过
-					// const channel = getUrlParamsNormal('channel')
-					// if (channel === 'qrcode') { // 扫码进入的页面
-					// 	uni.redirectTo({
-					// 		url: '/pages/card/cardPhysical/index'
-					// 	})
-					// } else { // 进入登录
-					// 	uni.redirectTo({
-					// 		url: '/pages/login/index'
-					// 	})
-					// }
-					uni.switchTab({
-						url: '/pages/user/index'
-					})
-				}
-			})
-		} else {
-			// uni.setStorageSync('indexHref', window.location.href)
-			// if (getEnv() !== 'mock') {
-			// 	const state = Math.random()
-			// 	const redirect_uri = encodeURIComponent(window.location.href)
-			// 	const appid = config.appid
-			// 	const scope = 'snsapi_base'
-			// 	window.location.href =
-			// 		`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${redirect_uri}&response_type=code&scope=${scope}&state=${state}#wechat_redirect`
-			// }
-		}
-	}
-}
+import platform from '@/utils/platform.js'

+ 46 - 0
utils/wxAuth.js

@@ -0,0 +1,46 @@
+import config from '@/config'
+import {loginWx} from "../apis/user";
+// 配置信息,需要替换为自己的信息
+const APPID = config.appid;
+const REDIRECT_URI = encodeURIComponent(window.location.href);
+
+// 判断是否在微信浏览器中
+function isWechatBrowser() {
+    return /MicroMessenger/i.test(navigator.userAgent)
+}
+
+// 获取授权链接
+function getAuthorizeUrl() {
+    return `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${APPID}&redirect_uri=${REDIRECT_URI}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect`;
+}
+
+// 获取 code
+function getCodeFromUrl() {
+    const url = window.location.href;
+    const reg = /code=([^&]*)/;
+    const arr = url.match(reg);
+    return arr ? arr[1] : null;
+}
+
+// 获取微信用户信息
+export async function getWxUserInfo() {
+    if (!isWechatBrowser()) {
+        console.error('请在微信浏览器中打开');
+        return null;
+    }
+    const code = getCodeFromUrl();
+    if (!code) {
+        console.log('授权跳转')
+        window.location.href = getAuthorizeUrl();
+        return null;
+    }
+    loginWx({
+        code: code
+    }).then(res => {
+        uni.setStorageSync('token', res.token)
+        uni.setStorageSync('realName',res.realName)
+        return res
+    })
+
+
+}

+ 1 - 1
vue.config.js

@@ -3,7 +3,7 @@ module.exports = {
     devServer: {
       proxy: {
         '/renren-api': {
-          target: 'http://10.0.60.21:8081',
+          target: 'https://videotest.9jodia.net/',
           changeOrigin: true,
           pathRewrite: {
             '^/renren-api': '/renren-api'

+ 45 - 0
yarn.lock

@@ -0,0 +1,45 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/runtime@^7.17.2":
+  version "7.27.0"
+  resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.0.tgz"
+  integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==
+  dependencies:
+    regenerator-runtime "^0.14.0"
+
+copy-text-to-clipboard@^3.0.1:
+  version "3.2.0"
+  resolved "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz"
+  integrity sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==
+
+core-js@^3.11.0:
+  version "3.41.0"
+  resolved "https://registry.npmmirror.com/core-js/-/core-js-3.41.0.tgz"
+  integrity sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==
+
+jweixin-module@^1.6.0:
+  version "1.6.0"
+  resolved "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz#4a7ea614083e3c9c3f49e2fdc2bb882cfa58dfcd"
+  integrity sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==
+
+mutation-observer@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz"
+  integrity sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==
+
+regenerator-runtime@^0.14.0:
+  version "0.14.1"
+  resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz"
+  integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
+
+vconsole@^3.15.0:
+  version "3.15.1"
+  resolved "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.1.tgz"
+  integrity sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==
+  dependencies:
+    "@babel/runtime" "^7.17.2"
+    copy-text-to-clipboard "^3.0.1"
+    core-js "^3.11.0"
+    mutation-observer "^1.0.3"