diff --git a/src/app.ts b/src/app.ts index ff11124..0c2fdeb 100644 --- a/src/app.ts +++ b/src/app.ts @@ -6,17 +6,25 @@ import { getLocaleData } from './service/localeData'; import { checkLogin, checkToken } from './service/checkLogin'; import wechatUser from './wechat'; import { loginAte } from './service/login'; -import { getMemberInfo } from './service/memberInfo'; +import { getInfo } from './service/getInfo'; function App({ children }: PropsWithChildren) { useLaunch(() => { console.log('App launched.'); - if (checkLogin()) { - wechatUser.setToken(checkToken()); - getMemberInfo(); - } else { - loginAte(); - } + // if (checkLogin()) { + // wechatUser.setToken(checkToken()); + // if(getMemberInfo()); + // } else { + // loginAte(); + // } + checkLogin((success) => { + if (success) { + wechatUser.setToken(checkToken()); + getInfo(); + } else { + loginAte(); + } + }); getLocaleData(); }); diff --git a/src/common.ts b/src/common.ts index ab62755..b19ec67 100644 --- a/src/common.ts +++ b/src/common.ts @@ -1,5 +1,8 @@ export type FixStatus = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7; +export const defaultAvatar = + 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png'; + export type Info = { phone: string; name: string; diff --git a/src/service/checkLogin.ts b/src/service/checkLogin.ts index fc4fb53..4044031 100644 --- a/src/service/checkLogin.ts +++ b/src/service/checkLogin.ts @@ -1,7 +1,7 @@ import Taro from '@tarojs/taro'; import { getUrl } from '.'; -export function checkLogin(): boolean { +export function checkLogin(callback: (success: boolean) => void) { let token = checkToken(); if (token.length !== 0) { Taro.request({ @@ -13,16 +13,17 @@ export function checkLogin(): boolean { }) .then((res) => { if (res.data.data.islogin) { - return true; + callback(true); } - return false; + callback(false); }) .catch((err) => { console.log(err); - return false; + callback(false); }); + } else { + callback(false); } - return false; } export function checkToken(): string { diff --git a/src/service/getInfo.ts b/src/service/getInfo.ts new file mode 100644 index 0000000..43dfef8 --- /dev/null +++ b/src/service/getInfo.ts @@ -0,0 +1,47 @@ +import Taro from '@tarojs/taro'; +import wechatUser, { UserInfo } from '@/wechat'; +import { defaultAvatar } from '@/common'; +import { getUrl } from '.'; + +export function getInfo() { + Taro.request({ + url: getUrl('/member/login'), + method: 'POST', + data: { + token: wechatUser.getToken(), + }, + }) + .then((res) => { + const data = res.data.data; + if (res.data.success) { + wechatUser.setInfo(data as UserInfo); + wechatUser.setAccess(true); + Taro.reLaunch({ + url: '/pages/member/member', + }); + } else { + Taro.request({ + url: getUrl('/user/info'), + method: 'GET', + data: { + token: wechatUser.getToken(), + }, + }) + .then((re) => { + const info = re.data.data; + const userInfo: UserInfo = { + name: info.name, + phone: info.phone, + avatar: defaultAvatar, + }; + wechatUser.setInfo(userInfo); + }) + .catch((err) => { + console.log(err); + }); + } + }) + .catch((err) => { + console.log(err); + }); +} diff --git a/src/service/login.ts b/src/service/login.ts index 3e6b14e..7fb3d00 100644 --- a/src/service/login.ts +++ b/src/service/login.ts @@ -25,7 +25,7 @@ export function loginAte() { console.log(err); }); } else { - console.log('登陆失败' + res.errMsg); + console.log('Login Failed: ' + res.errMsg); } }, }); diff --git a/src/service/memberInfo.ts b/src/service/memberInfo.ts deleted file mode 100644 index 5233c08..0000000 --- a/src/service/memberInfo.ts +++ /dev/null @@ -1,25 +0,0 @@ -import Taro from '@tarojs/taro'; -import wechatUser, { UserInfo } from '@/wechat'; -import { getUrl } from '.'; - -export function getMemberInfo() { - 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/service/submitTicket.ts b/src/service/submitTicket.ts index 0f099e5..ece7b2e 100644 --- a/src/service/submitTicket.ts +++ b/src/service/submitTicket.ts @@ -1,6 +1,8 @@ import RepairPage from '@/pages/repair/repair'; import Taro from '@tarojs/taro'; import pt from '@/plain-text'; +import wechatUser, { UserInfo } from '@/wechat'; +import { defaultAvatar } from '@/common'; import { getUrl } from '.'; const relaunchInterval = 1000; @@ -9,6 +11,35 @@ export function submitTicket(that: RepairPage) { that.setState({ isLoading: true, }); + if (!wechatUser.getAccess()) { + const userInfo = wechatUser.getInfo(); + if (userInfo.name == '' || userInfo.phone == '') { + Taro.request({ + url: getUrl('/user/update'), + method: 'POST', + data: { + token: 'token_test', + name: that.state.owner, + phone: that.state.phone, + }, + }) + .then(() => { + const userTicketInfo: UserInfo = { + name: that.state.owner, + phone: that.state.phone, + avatar: defaultAvatar, + }; + wechatUser.setInfo(userTicketInfo); + }) + .catch((err) => { + console.log(err); + Taro.atMessage({ + message: pt.get().button.submitText.error + err.toString(), + type: 'error', + }); + }); + } + } Taro.request({ url: getUrl('/tickets/create'), method: 'POST', diff --git a/src/wechat/index.ts b/src/wechat/index.ts index f67841e..1ff0956 100644 --- a/src/wechat/index.ts +++ b/src/wechat/index.ts @@ -1,3 +1,5 @@ +import { defaultAvatar } from '@/common'; + export interface UserInfo { name: string; phone: string; @@ -13,8 +15,7 @@ class WechatUser { this.userInfo = { name: '', phone: '', - avatar: - 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', + avatar: defaultAvatar, }; this.isMember = false; }