yanjie %!s(int64=4) %!d(string=hai) anos
pai
achega
ee3d8e9cb2
Modificáronse 2 ficheiros con 79 adicións e 32 borrados
  1. 19 17
      pages/index/index.vue
  2. 60 15
      pages/login/login.vue

+ 19 - 17
pages/index/index.vue

xqd
@@ -153,25 +153,27 @@
 			}
 		},
 		onShow() {
-			uni.showModal({
-				title: "提示",
-				content: "尚未登录,请前往登录",
-				confirmText: "去登录",
-				showCancel: false,
-				success() {
-					uni.login({
-						success(res) {
-							if (res.errMsg == "login:ok") {
-								uni.setStorageSync("code", res.code)
-								uni.navigateTo({
-									url: "../login/login"
-								})
+			if (!this.hasLogin) {
+				uni.showModal({
+					title: "提示",
+					content: "尚未登录,请前往登录",
+					confirmText: "去登录",
+					showCancel: false,
+					success() {
+						uni.login({
+							success(res) {
+								if (res.errMsg == "login:ok") {
+									uni.setStorageSync("code", res.code)
+									uni.navigateTo({
+										url: "../login/login"
+									})
+								}
 							}
-						}
-					})
+						})
 
-				}
-			})
+					}
+				})
+			}
 		},
 		mounted() {
 

+ 60 - 15
pages/login/login.vue

xqd xqd xqd xqd
@@ -37,6 +37,18 @@
 				</view>
 			</view>
 		</view>
+		<u-popup v-model="show" mode="center" :mask-close-able="false" border-radius="16">
+			<view style="width: 500rpx;height: 400rpx;position: relative;" class="flex flex-direction align-center justify-center">
+				<view class="text-xl text-bold" style="position: absolute;top:30rpx">
+					提示
+				</view>
+				<view class="text-gray margin-top-sm text-lg">
+					请授权手机号方便注册!
+				</view>
+				<button open-type="getPhoneNumber" style="width: 100%;font-size: 32rpx;position: absolute;bottom: 0;"
+				 @getphonenumber="getPhoneNumber">确认授权</button>
+			</view>
+		</u-popup>
 	</view>
 </template>
 
@@ -44,7 +56,20 @@
 	var _this;
 	import wInput from '../../components/watch-input.vue' //input
 	import wButton from '../../components/watch-button.vue' //button
+	import {
+		mapState,
+		mapMutations,
+		mapGetters,
+		mapActions
+	} from 'vuex';
+	import store from '@/store'
 	export default {
+		computed: {
+			...mapGetters({
+				hasLogin: 'verifyJwt'
+			}),
+			...mapState(['user'])
+		},
 		data() {
 			return {
 				//logo图片 base64
@@ -54,7 +79,10 @@
 				isRotate: false, //是否加载旋转
 				istrue: false,
 				password: "", //密码
-				ispwdlogin: false //是否使用密码登录
+				ispwdlogin: false, //是否使用密码登录
+				session_key: "",
+				openid: "",
+				show: false
 			}
 		},
 		// onShow() {
@@ -155,20 +183,37 @@
 					nickname: event.detail.userInfo.nickName,
 					avatar: event.detail.userInfo.avatarUrl
 				})
-				console.log(event.detail.iv)
-				console.log(event.detail.encryptedData)
-				console.log(res.data.session_key)
-				console.log(res.data.openid)
-				// console.log(res)
-				// if (res.status == 0) {
-				// 	let data = await this.$request.post("api/v2/common/getPhoneNumber", {
-				// 		iv: event.detail.iv,
-				// 		encryptedData: event.detail.encryptedData,
-				// 		session_key: res.data.session_key,
-				// 		openid: res.data.openid
-				// 	})
-				// 	console.log(data)
-				// }
+				if (res.status == 0) {
+					this.session_key = res.data.session_key
+					this.openid = res.data.openid
+					this.show = true
+				}
+			},
+			getPhoneNumber: async function(e) {
+				let res = await this.$request.post("api/v2/common/getPhoneNumber", {
+					iv: e.detail.iv,
+					encryptedData: e.detail.encryptedData,
+					session_key: this.session_key,
+					openid: this.openid
+				})
+				this.show = false
+				if (res.status == 0) {
+					if (res.data.token) {
+						store.commit('setJwt', res.data.token);
+						store.commit('setUser', res.data);
+						store.commit('login');
+						uni.showToast({
+							title: "登录成功",
+							icon: "none",
+							duration: 2000
+						})
+						setTimeout(function() {
+							uni.navigateBack({
+								delta: 1
+							})
+						}, 2000)
+					}
+				}
 			}
 		}
 	}