6 changed files with 223 additions and 77 deletions
-
194App - 副本.vue
-
56App.vue
-
1common/api.js
-
22common/shared.js
-
2main.js
-
25pages/login/index.vue
@ -0,0 +1,194 @@ |
|||||
|
<script> |
||||
|
export default { |
||||
|
globalData: { |
||||
|
wxlogin: () => {} |
||||
|
}, |
||||
|
onLaunch: function() { |
||||
|
this.getUserInfo(); |
||||
|
}, |
||||
|
onShow: function() { |
||||
|
// #ifdef MP-WEIXIN |
||||
|
this.getUpdateWexin(); // 小程序更新检查 |
||||
|
// #endif |
||||
|
}, |
||||
|
onHide: function() { |
||||
|
console.log('App Hide') |
||||
|
}, |
||||
|
methods: { |
||||
|
wxlogin(){ |
||||
|
uni.login({ |
||||
|
complete: result => { |
||||
|
if(result.errMsg == 'login:ok'){ |
||||
|
let code = result.code; |
||||
|
this.$http(this.API.API_WXLOGIN, { code }).then(res => { |
||||
|
console.log("获得用户信息", res); |
||||
|
uni.setStorageSync('userinfo', res.data); |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 获取用户信息 |
||||
|
getUserInfo(){ |
||||
|
this.globalData.wxlogin = this.wxlogin; |
||||
|
let userinfo = uni.getStorageSync('userinfo'); |
||||
|
if(userinfo && userinfo.id){ |
||||
|
return; |
||||
|
} |
||||
|
// console.log(this.globalData) |
||||
|
|
||||
|
this.wxlogin(); |
||||
|
|
||||
|
// uni.login({ |
||||
|
// complete: result => { |
||||
|
// if(result.errMsg == 'login:ok'){ |
||||
|
// let code = result.code; |
||||
|
// this.userCode(code); |
||||
|
// } |
||||
|
// } |
||||
|
// }) |
||||
|
}, |
||||
|
// 接口code换取用户信息 |
||||
|
userCode(code){ |
||||
|
console.log("code", code); |
||||
|
this.$http(this.API.API_WXLOGIN, { code }).then(res => { |
||||
|
console.log("获得用户信息", res); |
||||
|
uni.setStorageSync('userinfo', res.data); |
||||
|
}) |
||||
|
}, |
||||
|
// 登录 |
||||
|
login(){ |
||||
|
this.checkSession().then(code => { |
||||
|
this.userCode(code); |
||||
|
}).catch(err => { |
||||
|
console.log("进入。。。。。。") |
||||
|
uni.login({ |
||||
|
complete: result => { |
||||
|
console.log(result) |
||||
|
if(result.errMsg == 'login:ok'){ |
||||
|
let code = result.code; |
||||
|
this.userCode(code); |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
}); |
||||
|
}, |
||||
|
// 校验登录态是否过期,如果没有过期还要判断本地有没有token |
||||
|
checkSession(){ |
||||
|
return new Promise((resolve, reject) => { |
||||
|
uni.checkSession({ |
||||
|
complete: result => { |
||||
|
if(result.errMsg == 'checkSession:ok'){ // 处于登录状态 session未过期 |
||||
|
// let login_token = uni.getStorageSync('login_token'); |
||||
|
let login_token = undefined; |
||||
|
if(login_token){ |
||||
|
resolve(login_token); |
||||
|
}else{ |
||||
|
reject(); // 本地没有token,重新调取登录 |
||||
|
} |
||||
|
}else{ // session已过期,需要重新登录 |
||||
|
reject(); |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
}); |
||||
|
}, |
||||
|
// 小程序版本更新检查 |
||||
|
getUpdateWexin(){ |
||||
|
const updateManager = uni.getUpdateManager(); // 获取版本更新管理器对象 |
||||
|
updateManager.onCheckForUpdate(function(res) { |
||||
|
// 请求完新版本信息的回调 |
||||
|
if (res.hasUpdate) { |
||||
|
updateManager.onUpdateReady(function(res2) { |
||||
|
uni.showModal({ |
||||
|
title: '更新提示', |
||||
|
content: '发现新版本,是否重启应用?', |
||||
|
confirmColor: '#FE9903', |
||||
|
showCancel: false, |
||||
|
success(res2) { |
||||
|
if (res2.confirm) { |
||||
|
// 新的版本已经下载好,调用applyUpdate应用新版本并重启 |
||||
|
updateManager.applyUpdate(); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
updateManager.onUpdateFailed(function(res) { |
||||
|
// 新的版本下载失败 |
||||
|
uni.showModal({ |
||||
|
title: '提示', |
||||
|
content: '检查到有新版本,但下载失败,请检查网络设置', |
||||
|
confirmColor: '#FE9903', |
||||
|
success(res) { |
||||
|
if (res.confirm) { |
||||
|
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 |
||||
|
updateManager.applyUpdate(); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss"> |
||||
|
@import "uview-ui/index.scss"; |
||||
|
@import './colorui/main.css'; |
||||
|
@import './colorui/icon.css'; |
||||
|
@import "@/colorui/animation.css"; |
||||
|
@import '@/common/styles/common.css'; |
||||
|
/*每个页面公共css */ |
||||
|
//底部按钮 |
||||
|
.btn-bottom { |
||||
|
position: fixed; |
||||
|
left: 0; |
||||
|
bottom: 0; |
||||
|
width: 100%; |
||||
|
z-index: 1; |
||||
|
} |
||||
|
|
||||
|
// loading加载 |
||||
|
.loading-more { |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
padding-top: 10px; |
||||
|
padding-bottom: 10px; |
||||
|
text-align: center; |
||||
|
font-size: 28rpx; |
||||
|
color: #999; |
||||
|
} |
||||
|
.loading-more-text::before { |
||||
|
content: ''; |
||||
|
width: 20px; |
||||
|
height: 20px; |
||||
|
display: inline-block; |
||||
|
vertical-align: middle; |
||||
|
-webkit-animation: weuiLoading 1s steps(12, end) infinite; |
||||
|
animation: weuiLoading 1s steps(12, end) infinite; |
||||
|
background-repeat: no-repeat; |
||||
|
background-image: url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E"); |
||||
|
background-size: 100%; |
||||
|
} |
||||
|
@-webkit-keyframes weuiLoading { |
||||
|
0% { |
||||
|
transform: rotate3d(0, 0, 1, 0deg); |
||||
|
} |
||||
|
|
||||
|
100% { |
||||
|
transform: rotate3d(0, 0, 1, 360deg); |
||||
|
} |
||||
|
} |
||||
|
@keyframes weuiLoading { |
||||
|
0% { |
||||
|
transform: rotate3d(0, 0, 1, 0deg); |
||||
|
} |
||||
|
|
||||
|
100% { |
||||
|
transform: rotate3d(0, 0, 1, 360deg); |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue