xinelu-applet-ui/pages/login/login.vue
2023-12-19 14:41:16 +08:00

196 lines
4.9 KiB
Vue

<template>
<view class="app">
<image src="../../static/logo.png" mode=""></image>
<!-- <view class="text">
新医路健康服务平台
</view> -->
<button class="loginbtn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumberp">手机号快捷登录</button>
<u-toast ref="uToast" />
</view>
</template>
<script>
import {
appLoginpwd,
getWeChatUser,
isRegistered,
} from '../../api/pages/login/index.js'
import {
getCurrentUser,
} from '@/api/pages/homepage/homepage.js'
import {
createMobileToken
} from '@/api/pages/login/index.js'
import {
mapMutations
} from "vuex";
export default {
data() {
return {
phonecode: undefined,
logincode: undefined,
timer: undefined,
cityCode: null,
SOCKETURL: '',
// scenenurseStationId: undefined,
};
},
onShow() {
if (uni.getStorageSync('location') && uni.getStorageSync('region')) {} else {
this.getAddress()
}
this.phonecode = undefined
this.logincode = undefined
let that = this
wx.login({
provider: 'weixin',
success: function(loginRes) {
that.logincode = loginRes.code
}
});
// this.scenenurseStationId = uni.getStorageSync('scenenurseStationId');
},
methods: {
...mapMutations(['scoket']),
//获取当前位置
getAddress() {
let that = this;
uni.getLocation({
type: 'wgs84',
success: (res) => {
let location = res.latitude + ',' + res.longitude
//调用逆解析接口
uni.request({
url: 'https://apis.map.qq.com/ws/geocoder/v1/?location=location', //腾讯官方逆解析接口,可直接复制
data: {
location: location,
'key': "Q4DBZ-UIMC2-B63UX-CUZ6A-S3UT7-TBF3V", //自己申请的Key
},
method: "GET",
success(res) {
if (uni.getStorageSync('location')) {
uni.setStorageSync('location', res.data.result.address_component
.city)
var address = uni.getStorageSync('location')
}
if (address == '德州市') {
uni.setStorageSync("region", 1)
} else if (address == '东营市') {
uni.setStorageSync("region", 2)
} else if (address == '济南市') {
uni.setStorageSync("region", 3)
}
},
fail: res => {
console.log(res.errMsg, '解析失败返回的错误信息');
}
})
},
//失败
fail: (res) => {
uni.showToast({
icon: 'none',
title: '获取地址失败,请打开定位',
})
}
})
},
getPhoneNumberp(val) {
let that = this;
if (val.detail.code) {
that.phonecode = val.detail.code
that.login();
}
},
login() {
wx.login({
provider: 'weixin',
success: function(loginRes) {
that.logincode = loginRes.code
}
});
let that = this;
// console.log(that.logincode, that.phonecode)
isRegistered(that.logincode, that.phonecode).then(resp => {
if (resp.data.openid && resp.data.phone) {
uni.setStorageSync("openid", resp.data.openid)
uni.setStorageSync("phone", resp.data.phone)
}
if (resp.data.code == '0') {
that.$refs.uToast.show({
title: '未注册,请先注册',
type: 'error',
duration: '1500',
})
if (that.timer) {
learTimeout(that.timer)
}
that.timer = setTimeout(() => {
uni.redirectTo({
url: '/pages/register/register',
})
}, 1500)
} else if (resp.data.code == '2') {
that.$refs.uToast.show({
title: '已被其他人注册',
type: 'error',
duration: '1500',
})
} else if (resp.data.code == '1') {
getCurrentUser(resp.data.openid).then(res => {
if (res.code == 200) {
if (res.data) {
uni.setStorageSync('patientId', res.data.id);
uni.setStorageSync('userinfo', res.data);
that.scoket();
}
that.$refs.uToast.show({
title: '登录成功',
type: 'success',
back: 1
})
} else {
that.$refs.uToast.show({
title: '登录失败',
type: 'error',
})
}
})
}
})
},
pwdlogin() {
var that = this
uni.clearStorageSync();
that.login()
// createMobileToken().then(res => {
// uni.setStorageSync("token", res.data.token)
// if (this.scenenurseStationId) {
// uni.setStorageSync("scenenurseStationId", this.scenenurseStationId)
// }
// that.login()
// })
},
}, //1.分享给朋友
onShareAppMessage(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '新医路健康服务平台',
path: url,
}
},
//2.分享到朋友圈
onShareTimeline(res) {
let pages = getCurrentPages();
let url = pages[pages.length - 1].$page.fullPath
return {
title: '新医路健康服务平台',
path: url,
}
},
}
</script>
<style lang="scss">
@import "./login.scss";
</style>