diff --git a/mock/api.ts b/mock/api.ts index c112e25..d464824 100644 --- a/mock/api.ts +++ b/mock/api.ts @@ -22,6 +22,7 @@ export default { }, }, 'POST /user/update': { + success: true, data: {}, }, 'GET /user/locale/get': { @@ -31,9 +32,11 @@ export default { }, }, 'POST /user/locale/update': { + success: true, data: {}, }, 'POST /report': { + success: true, data: {}, }, 'GET /user/mytickets': { @@ -45,21 +48,27 @@ export default { data: ticketInfo, }, 'POST /tickets/addnote': { + success: true, data: {}, }, 'POST /tickets/create': { + success: true, data: {}, }, 'POST /tickets/addtooreo': { + success: true, data: {}, }, 'POST /tickets/pick': { + success: true, data: {}, }, 'POST /tickets/update': { + success: true, data: {}, }, 'POST /tickets/retrieve': { + success: true, data: {}, }, 'POST /member/login': { diff --git a/src/app.ts b/src/app.ts index d1242a9..e3f775e 100644 --- a/src/app.ts +++ b/src/app.ts @@ -3,10 +3,20 @@ import { useLaunch } from '@tarojs/taro'; import 'taro-ui/dist/style/index.scss'; import './app.scss'; import { getLocaleData } from './service/localeData'; +import { checkLogin, checkToken } from './service/checkLogin'; +import wechatUser from './wechat'; +import { loginAte } from './service/login'; +import { memberInfo } from './service/memberInfo'; function App({ children }: PropsWithChildren) { useLaunch(() => { console.log('App launched.'); + if (checkLogin()) { + wechatUser.setToken(checkToken()); + memberInfo(); + } else { + loginAte(); + } getLocaleData(); }); diff --git a/src/service/checkLogin.ts b/src/service/checkLogin.ts new file mode 100644 index 0000000..fc4fb53 --- /dev/null +++ b/src/service/checkLogin.ts @@ -0,0 +1,40 @@ +import Taro from '@tarojs/taro'; +import { getUrl } from '.'; + +export function checkLogin(): boolean { + let token = checkToken(); + if (token.length !== 0) { + Taro.request({ + url: getUrl('/checklogin'), + method: 'GET', + data: { + token: token, + }, + }) + .then((res) => { + if (res.data.data.islogin) { + return true; + } + return false; + }) + .catch((err) => { + console.log(err); + return false; + }); + } + return false; +} + +export function checkToken(): string { + try { + let token: string = Taro.getStorageSync('token'); + if (token) { + return token; + } else { + return ''; + } + } catch (err) { + console.log(err); + return ''; + } +} diff --git a/src/service/login.ts b/src/service/login.ts new file mode 100644 index 0000000..bfb0177 --- /dev/null +++ b/src/service/login.ts @@ -0,0 +1,33 @@ +import Taro from '@tarojs/taro'; +import wechatUser from '@/wechat'; +import { getUrl } from '.'; + +export function loginAte() { + Taro.login({ + success: function (res) { + if (res.code) { + Taro.request({ + url: getUrl('/login'), + method: 'POST', + data: { + code: res.code, + }, + }) + .then((re) => { + const data = re.data.data; + Taro.setStorage({ + key: 'token', + data: data.token, + }); + wechatUser.setToken(data.token); + wechatUser.setAccess(data.isMember); + }) + .catch((err) => { + console.log(err); + }); + } else { + console.log('登陆失败' + res.errMsg); + } + }, + }); +} diff --git a/src/service/memberInfo.ts b/src/service/memberInfo.ts new file mode 100644 index 0000000..d588889 --- /dev/null +++ b/src/service/memberInfo.ts @@ -0,0 +1,25 @@ +import Taro from '@tarojs/taro'; +import wechatUser, { UserInfo } from '@/wechat'; +import { getUrl } from '.'; + +export function memberInfo() { + Taro.request({ + url: getUrl('/member/login'), + method: 'POST', + data: { + token: wechatUser.getToken(), + }, + }) + .then((res) => { + if (res.data.success) { + wechatUser.setInfo(res.data.data as UserInfo); + wechatUser.setAccess(true); + Taro.reLaunch({ + url: '/pages/member/member', + }); + } + }) + .catch((err) => { + console.log(err); + }); +} diff --git a/src/wechat/index.ts b/src/wechat/index.ts index 36bc8bd..8249680 100644 --- a/src/wechat/index.ts +++ b/src/wechat/index.ts @@ -7,6 +7,7 @@ export interface UserInfo { class WechatUser { private userInfo: UserInfo; private isMember: boolean; + private token: string; constructor() { this.userInfo = { @@ -26,6 +27,10 @@ class WechatUser { return this.userInfo; } + getToken() { + return this.token; + } + setInfo(userInfo: UserInfo) { this.userInfo = userInfo; } @@ -33,6 +38,10 @@ class WechatUser { setAccess(isMember: boolean) { this.isMember = isMember; } + + setToken(token: string) { + this.token = token; + } } const wechatUser = new WechatUser();