75 lines
1.9 KiB
TypeScript
75 lines
1.9 KiB
TypeScript
// pages/no-permission/no-permission.ts
|
|
// 无权限页面 — 账号已禁用或无访问权限时展示
|
|
// onShow 时查询最新状态,状态变化时自动跳转
|
|
|
|
import { request } from "../../utils/request"
|
|
|
|
Page({
|
|
data: {
|
|
statusBarHeight: 0,
|
|
},
|
|
|
|
onLoad() {
|
|
const { statusBarHeight = 0 } = wx.getSystemInfoSync()
|
|
this.setData({ statusBarHeight })
|
|
},
|
|
|
|
onShow() {
|
|
this._checkStatus()
|
|
},
|
|
|
|
/** 查询最新用户状态,非 disabled 时自动跳转 */
|
|
async _checkStatus() {
|
|
const token = wx.getStorageSync("token")
|
|
if (!token) {
|
|
wx.reLaunch({ url: "/pages/login/login" })
|
|
return
|
|
}
|
|
try {
|
|
const data = await request({
|
|
url: "/api/xcx/me",
|
|
method: "GET",
|
|
needAuth: true,
|
|
})
|
|
const app = getApp<IAppOption>()
|
|
app.globalData.authUser = {
|
|
userId: data.user_id,
|
|
status: data.status,
|
|
nickname: data.nickname,
|
|
}
|
|
wx.setStorageSync("userId", data.user_id)
|
|
wx.setStorageSync("userStatus", data.status)
|
|
|
|
switch (data.status) {
|
|
case "disabled":
|
|
case "rejected":
|
|
break // 留在当前页
|
|
case "approved":
|
|
wx.reLaunch({ url: "/pages/mvp/mvp" })
|
|
break
|
|
case "pending":
|
|
wx.reLaunch({ url: "/pages/reviewing/reviewing" })
|
|
break
|
|
case "new":
|
|
wx.reLaunch({ url: "/pages/apply/apply" })
|
|
break
|
|
}
|
|
} catch {
|
|
// 网络错误不阻塞
|
|
}
|
|
},
|
|
|
|
/** 更换登录账号:清除凭证后跳转登录页 */
|
|
onSwitchAccount() {
|
|
const app = getApp<IAppOption>()
|
|
app.globalData.token = undefined
|
|
app.globalData.refreshToken = undefined
|
|
app.globalData.authUser = undefined
|
|
wx.removeStorageSync("token")
|
|
wx.removeStorageSync("refreshToken")
|
|
wx.removeStorageSync("userId")
|
|
wx.removeStorageSync("userStatus")
|
|
wx.reLaunch({ url: "/pages/login/login" })
|
|
},
|
|
})
|