login-page.mixin.js 1.9 KB
Newer Older
1 2 3
import {
	mutations
} from '@/uni_modules/uni-id-pages/common/store.js'
4
import config from '@/uni_modules/uni-id-pages/config.js'
5
const mixin = {
6 7 8
	data() {
		return {
			config,
DCloud_JSON's avatar
DCloud_JSON 已提交
9
			uniIdRedirectUrl: '',
10 11 12 13 14
			isMounted: false
		}
	},
	onUnload() {
		// #ifdef H5
DCloud_JSON's avatar
DCloud_JSON 已提交
15
		document.onkeydown = false
16 17 18
		// #endif
	},
	mounted() {
19
		this.isMounted = true
20 21
	},
	onLoad(e) {
DCloud_JSON's avatar
DCloud_JSON 已提交
22 23 24 25 26
		if (e.is_weixin_redirect) {
			uni.showLoading({
				mask: true
			})

27
			if (window.location.href.includes('#')) {
DCloud_JSON's avatar
DCloud_JSON 已提交
28
				// 将url通过 ? 分割获取后面的参数字符串 再通过 & 将每一个参数单独分割出来
29 30 31 32
				const paramsArr = window.location.href.split('?')[1].split('&')
				paramsArr.forEach(item => {
					const arr = item.split('=')
					if (arr[0] == 'code') {
DCloud_JSON's avatar
DCloud_JSON 已提交
33 34 35 36
						e.code = arr[1]
					}
				})
			}
37
			this.$nextTick(n => {
38
				// console.log(this.$refs.uniFabLogin);
39
				this.$refs.uniFabLogin.login({
40
					code: e.code
41 42 43
				}, 'weixin')
			})
		}
DCloud_JSON's avatar
DCloud_JSON 已提交
44 45 46

		if (e.uniIdRedirectUrl) {
			this.uniIdRedirectUrl = decodeURIComponent(e.uniIdRedirectUrl)
47 48 49 50 51 52 53 54
		}

		// #ifdef MP-WEIXIN
		if (getCurrentPages().length === 1) {
			uni.hideHomeButton()
			console.log('已隐藏:返回首页按钮');
		}
		// #endif
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
	},
	computed: {
		needAgreements() {
			if (this.isMounted) {
				if (this.$refs.agreements) {
					return this.$refs.agreements.needAgreements
				} else {
					return false
				}
			}
		},
		agree: {
			get() {
				if (this.isMounted) {
					if (this.$refs.agreements) {
						return this.$refs.agreements.isAgree
					} else {
						return true
					}
				}
			},
			set(agree) {
				if (this.$refs.agreements) {
					this.$refs.agreements.isAgree = agree
				} else {
					console.log('不存在 隐私政策协议组件');
				}
			}
		}
	},
	methods: {
		loginSuccess(e) {
87
			mutations.loginSuccess({
DCloud_JSON's avatar
DCloud_JSON 已提交
88 89 90
				...e,
				uniIdRedirectUrl: this.uniIdRedirectUrl
			})
91 92 93
		}
	}
}
94 95

export default mixin