第一次提交
This commit is contained in:
241
App.vue
Executable file
241
App.vue
Executable file
@@ -0,0 +1,241 @@
|
||||
<script>
|
||||
import store from '@/store'
|
||||
import storage from '@/utils/storage'
|
||||
import {
|
||||
ACCESS_TOKEN,
|
||||
USER_ID
|
||||
} from '@/store/mutation-types'
|
||||
import SettingModel from '@/common/model/Setting'
|
||||
import {
|
||||
getSceneData
|
||||
} from './core/app'
|
||||
import {
|
||||
getCaptcha,
|
||||
getAuthCode,
|
||||
login,
|
||||
getPhoneNumber,
|
||||
register,
|
||||
alipayLogin
|
||||
} from '@/websoft/api/login.js'
|
||||
import {
|
||||
tenantId,
|
||||
roleId,
|
||||
userId,
|
||||
username,
|
||||
password
|
||||
} from '@/config.js';
|
||||
import {
|
||||
getUser
|
||||
} from './websoft/api/user'
|
||||
import http from './websoft/api'
|
||||
|
||||
export default {
|
||||
|
||||
/**
|
||||
* 全局变量
|
||||
*/
|
||||
globalData: {},
|
||||
|
||||
/**
|
||||
* 初始化完成时触发
|
||||
*/
|
||||
async onLaunch({
|
||||
path,
|
||||
query,
|
||||
scene
|
||||
}) {
|
||||
// 程序初始化
|
||||
// await this.init(path,query)
|
||||
// 获取头像昵称
|
||||
// await this.getAuthCode()
|
||||
// 小程序主动更新
|
||||
// this.updateManager()
|
||||
// app启动参数
|
||||
// this.onStartupQuery(query)
|
||||
// 设置全局自定义主题
|
||||
// this.setAppTheme()
|
||||
},
|
||||
onShow() {},
|
||||
methods: {
|
||||
// 程序初始化
|
||||
async init(path,query) {
|
||||
console.log("程序初始化:>>>> ");
|
||||
const app = this
|
||||
// 1. 登录获取token
|
||||
const token = storage.get(ACCESS_TOKEN)
|
||||
if(!token){
|
||||
app.doAlipayLogin()
|
||||
// await app.getAuthCode()
|
||||
}
|
||||
if(query && query.equipmentId){
|
||||
this.$navTo(path,query)
|
||||
}
|
||||
console.log("初始化结束:>>>> ");
|
||||
},
|
||||
// 执行支付宝无感登录
|
||||
doAlipayLogin() {
|
||||
const app = this
|
||||
// 游客身份登录获取token
|
||||
login({username, password}).then(res => {
|
||||
// 登录成功
|
||||
store.dispatch('setUserId', res.data.user.userId)
|
||||
store.dispatch('setToken', res.data.access_token)
|
||||
const expiryTime = 30 * 86400 // 过期时间30天
|
||||
storage.set(ACCESS_TOKEN, res.data.access_token, expiryTime)
|
||||
storage.set(USER_ID, res.data.user.userId, expiryTime)
|
||||
// 配置请求头
|
||||
// http.setConfig((config) => {
|
||||
// config.header = {
|
||||
// Authorization: res.data.access_token
|
||||
// }
|
||||
// return config
|
||||
// })
|
||||
})
|
||||
},
|
||||
|
||||
// 获取头像昵称用户名
|
||||
getAuthCode(){
|
||||
const app = this
|
||||
my.getAuthCode({
|
||||
scopes: 'auth_user',
|
||||
success: ({ authCode }) => {
|
||||
console.log("获取支付宝授权码: ",authCode);
|
||||
// 跟进授权码获取支付宝用户ID
|
||||
getAuthCode({ authCode })
|
||||
.then(res => {
|
||||
console.log("userId: ",res.data);
|
||||
// 拿到userId后执行登录事件
|
||||
app.onAuthSuccess(res.data)
|
||||
})
|
||||
.catch(e => {
|
||||
app.$error(e.message)
|
||||
|
||||
})
|
||||
}
|
||||
});
|
||||
},
|
||||
// 执行登录事件
|
||||
onAuthSuccess(userId) {
|
||||
const app = this
|
||||
// 提交到后端
|
||||
alipayLogin({
|
||||
username: userId,
|
||||
password: userId
|
||||
})
|
||||
.then(res => {
|
||||
console.log("老用户登录成功: ", res);
|
||||
// 老用户登录成功
|
||||
store.dispatch('setUserInfo',res.data.user)
|
||||
store.dispatch('setUserId',res.data.user.userId)
|
||||
store.dispatch('setToken',res.data.access_token)
|
||||
const expiryTime = 30 * 86400 // 过期时间30天
|
||||
storage.set(ACCESS_TOKEN, res.data.access_token, expiryTime)
|
||||
storage.set(USER_ID, res.data.user.userId, expiryTime)
|
||||
// 配置请求头
|
||||
http.setConfig((config) => {
|
||||
config.header = {
|
||||
Authorization: res.data.access_token
|
||||
}
|
||||
return config
|
||||
})
|
||||
// 显示登录成功
|
||||
app.$toast(res.message)
|
||||
// 跳转回原页面
|
||||
setTimeout(() => {
|
||||
app.onNavigateBack(1)
|
||||
}, 2000)
|
||||
})
|
||||
.catch(err => {
|
||||
console.log("err: ",err);
|
||||
// 新用户自动注册(默认角色roleId为注册用户81)
|
||||
register({
|
||||
username: userId,
|
||||
roleId
|
||||
}).then(res => {
|
||||
console.log("新用户登录成功: ", res);
|
||||
store.dispatch('setUserInfo',res.data.user)
|
||||
store.dispatch('setUserId',res.data.user.userId)
|
||||
store.dispatch('setToken',res.data.access_token)
|
||||
// 过期时间30天
|
||||
const expiryTime = 30 * 86400
|
||||
storage.set(ACCESS_TOKEN, res.data.access_token, expiryTime)
|
||||
storage.set(USER_ID, res.data.user.userId, expiryTime)
|
||||
// 配置请求头
|
||||
http.setConfig((config) => {
|
||||
config.header = {
|
||||
Authorization: res.data.access_token
|
||||
}
|
||||
return config
|
||||
})
|
||||
// 显示登录成功
|
||||
app.$toast(res.message)
|
||||
// 跳转回原页面
|
||||
setTimeout(() => {
|
||||
app.onNavigateBack(1)
|
||||
}, 2000)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// app启动参数
|
||||
onStartupQuery(query) {
|
||||
// 获取二维码场景值
|
||||
const scene = getSceneData(query)
|
||||
// 记录推荐人ID
|
||||
const refereeId = query.refereeId ? query.refereeId : scene.uid
|
||||
refereeId > 0 && (this.saveRefereeId(refereeId))
|
||||
},
|
||||
|
||||
// 记录推荐人ID
|
||||
saveRefereeId(refereeId) {
|
||||
store.dispatch('SaveRefereeId', refereeId)
|
||||
},
|
||||
|
||||
// 设置全局自定义主题
|
||||
setAppTheme() {
|
||||
SettingModel.setAppTheme()
|
||||
},
|
||||
|
||||
// 小程序主动更新
|
||||
updateManager() {
|
||||
const updateManager = uni.getUpdateManager()
|
||||
updateManager.onCheckForUpdate(res => {
|
||||
// 请求完新版本信息的回调
|
||||
// console.log(res.hasUpdate)
|
||||
})
|
||||
updateManager.onUpdateReady(() => {
|
||||
uni.showModal({
|
||||
title: '更新提示',
|
||||
content: '新版本已经准备好,即将重启应用',
|
||||
showCancel: false,
|
||||
success(res) {
|
||||
if (res.confirm) {
|
||||
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
||||
updateManager.applyUpdate()
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
updateManager.onUpdateFailed(() => {
|
||||
// 新的版本下载失败
|
||||
uni.showModal({
|
||||
title: '更新提示',
|
||||
content: '新版本下载失败',
|
||||
showCancel: false
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
/* uView库样式 */
|
||||
@import "uview-ui/index.scss";
|
||||
/* 项目基础样式 */
|
||||
@import "./app.scss";
|
||||
/* iconfont图标库 */
|
||||
@import "/utils/iconfont.scss";
|
||||
</style>
|
||||
Reference in New Issue
Block a user