From dd567255759a8f8feac42405a057f9e1c2e1899b Mon Sep 17 00:00:00 2001 From: FrozenArcher Date: Mon, 11 Mar 2024 22:57:12 +0800 Subject: [PATCH 1/5] refactor main page service --- src/pages/index/DutyInfo.tsx | 16 +++++------ src/pages/index/index.tsx | 51 +++++++++--------------------------- src/service/MainPage.ts | 43 ++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 47 deletions(-) create mode 100644 src/service/MainPage.ts diff --git a/src/pages/index/DutyInfo.tsx b/src/pages/index/DutyInfo.tsx index 4e3daac..1b41a54 100644 --- a/src/pages/index/DutyInfo.tsx +++ b/src/pages/index/DutyInfo.tsx @@ -15,10 +15,10 @@ export class DutyData { } isInDuty: boolean; - inDutyCnt: number; - currentDuty: 'off' | '1' | '2' | '3'; - offDutyReason: string; // from backend - dutyRecoverTime: string; // from backend + inDutyCnt?: number; + currentDuty?: 'off' | '1' | '2' | '3'; + offDutyReason?: string; + dutyRecoverTime?: string; } class Card extends Component { @@ -73,8 +73,8 @@ export class DutyInfo extends Component { @@ -89,8 +89,8 @@ export class DutyInfo extends Component { diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index 04f38fb..9d8951f 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -5,7 +5,7 @@ import { AtCard, AtAccordion } from 'taro-ui'; import type CustomTabBar from '@/custom-tab-bar'; import PageFooter from '@/components/PageFooter/PageFooter'; import pt from '@/plain-text'; -import { getUrl } from '@/service'; +import { getDutyInfo } from '@/service/MainPage'; import './index.scss'; import TitleCard from './TitleCard'; import { DutyInfo, DutyData } from './DutyInfo'; @@ -56,7 +56,15 @@ class ExpandItem extends Component { } } -export default class Index extends Component { +interface MainPageState { + dutyData: DutyData; + dutyInfoCard: CardContent; + stepInfoCard: CardContent; + tipsInfoCard: CardContent; + //rs: RequestState; +} + +export default class MainPage extends Component<{}, MainPageState> { state = { dutyData: new DutyData(), dutyInfoCard: { @@ -77,46 +85,11 @@ export default class Index extends Component { extra: '额外信息', content: () => , }, + // rs: new RequestState(), }; componentDidMount(): void { - Taro.request({ - url: getUrl('/dutyinfo'), - method: 'GET', - data: { - token: 'token_test', - }, - }) - .then(res => { - const data = res.data.data; - if (data.isInDuty) { - this.setState({ - dutyData: { - isInDuty: data.isInDuty, - inDutyCnt: data.inDutyCnt, - currentDuty: data.currentDuty, - }, - }); - } else { - this.setState({ - dutyData: { - isInDuty: data.isInDuty, - offDutyReason: data.offDutyReason, - dutyRecoverTime: data.dutyRecoverTime, - }, - }); - } - }) - .catch(err => { - console.log(err); - this.setState({ - dutyData: { - isInDuty: false, - offDutyReason: '获取失败!Network Error!', - dutyRecoverTime: '获取失败!Network Error!', - }, - }); - }); + getDutyInfo(this); } // 以下是TabBar相关 diff --git a/src/service/MainPage.ts b/src/service/MainPage.ts new file mode 100644 index 0000000..5cf7125 --- /dev/null +++ b/src/service/MainPage.ts @@ -0,0 +1,43 @@ +import MainPage from '@/pages/index'; +import Taro from '@tarojs/taro'; +import { getUrl } from '.'; + +export function getDutyInfo(that: MainPage) { + Taro.request({ + url: getUrl('/dutyinfo'), + method: 'GET', + data: { + token: 'token_test', + }, + }) + .then(res => { + const data = res.data.data; + if (data.isInDuty) { + that.setState({ + dutyData: { + isInDuty: data.isInDuty, + inDutyCnt: data.inDutyCnt, + currentDuty: data.currentDuty, + }, + }); + } else { + that.setState({ + dutyData: { + isInDuty: data.isInDuty, + offDutyReason: data.offDutyReason, + dutyRecoverTime: data.dutyRecoverTime, + }, + }); + } + }) + .catch(err => { + console.log(err); + that.setState({ + dutyData: { + isInDuty: false, + offDutyReason: '获取失败!Network Error!', + dutyRecoverTime: '获取失败!Network Error!', + }, + }); + }); +} From 6583b51750c213a529ffbcfbd2ca31cf17617c0f Mon Sep 17 00:00:00 2001 From: FrozenArcher Date: Mon, 11 Mar 2024 23:08:27 +0800 Subject: [PATCH 2/5] refactor mainpage service --- src/pages/user/inform/inform.tsx | 29 ++----------------------- src/service/UserInfo.ts | 36 ++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 27 deletions(-) create mode 100644 src/service/UserInfo.ts diff --git a/src/pages/user/inform/inform.tsx b/src/pages/user/inform/inform.tsx index 01a3d5e..6d9cb24 100644 --- a/src/pages/user/inform/inform.tsx +++ b/src/pages/user/inform/inform.tsx @@ -1,9 +1,9 @@ import { Component, ReactNode } from 'react'; import { AtForm, AtInput, AtButton, AtMessage } from 'taro-ui'; import { View } from '@tarojs/components'; -import { getUrl } from '@/service'; import Taro from '@tarojs/taro'; import pt from '@/plain-text'; +import { updateUserInfo } from '@/service/UserInfo'; import './inform.scss'; const submitInterval = 5000; @@ -40,32 +40,7 @@ export default class InformPage extends Component { isDisable: true, }); console.log(this.state.name, this.state.phone); - Taro.request({ - url: getUrl('/user/update'), - method: 'POST', - data: { - token: 'token_test', - name: this.state.name, - phone: this.state.phone, - }, - }) - .then(res => { - console.log(res.data); - Taro.atMessage({ - message: pt.get().button.submitText.success, - type: 'success', - }); - }) - .catch(err => { - console.log(err); - Taro.atMessage({ - message: pt.get().button.submitText.error + err.toString(), - type: 'error', - }); - }); - this.setState({ - isLoading: false, - }); + updateUserInfo(this); setTimeout(() => { this.setState({ isDisable: false, diff --git a/src/service/UserInfo.ts b/src/service/UserInfo.ts new file mode 100644 index 0000000..b92967b --- /dev/null +++ b/src/service/UserInfo.ts @@ -0,0 +1,36 @@ +import InformPage from '@/pages/user/inform/inform'; +import Taro from '@tarojs/taro'; +import pt from '@/plain-text'; +import { getUrl } from '.'; + +export function updateUserInfo(that: InformPage) { + Taro.request({ + url: getUrl('/user/update'), + method: 'POST', + data: { + token: 'token_test', + name: that.state.name, + phone: that.state.phone, + }, + }) + .then(res => { + console.log(res.data); + that.setState({ + isLoading: false, + }); + Taro.atMessage({ + message: pt.get().button.submitText.success, + type: 'success', + }); + }) + .catch(err => { + console.log(err); + that.setState({ + isLoading: false, + }); + Taro.atMessage({ + message: pt.get().button.submitText.error + err.toString(), + type: 'error', + }); + }); +} From 9c6cbd91ffbf378905461d4af29e9292967523bd Mon Sep 17 00:00:00 2001 From: FrozenArcher Date: Mon, 11 Mar 2024 23:12:41 +0800 Subject: [PATCH 3/5] rename files --- src/pages/index/index.tsx | 2 +- src/pages/user/inform/inform.tsx | 2 +- src/service/{MainPage.ts => dutyInfo.ts} | 0 src/service/{UserInfo.ts => userData.ts} | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename src/service/{MainPage.ts => dutyInfo.ts} (100%) rename src/service/{UserInfo.ts => userData.ts} (100%) diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index 9d8951f..fd07424 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -5,7 +5,7 @@ import { AtCard, AtAccordion } from 'taro-ui'; import type CustomTabBar from '@/custom-tab-bar'; import PageFooter from '@/components/PageFooter/PageFooter'; import pt from '@/plain-text'; -import { getDutyInfo } from '@/service/MainPage'; +import { getDutyInfo } from '@/service/dutyInfo'; import './index.scss'; import TitleCard from './TitleCard'; import { DutyInfo, DutyData } from './DutyInfo'; diff --git a/src/pages/user/inform/inform.tsx b/src/pages/user/inform/inform.tsx index 6d9cb24..a3ab1ed 100644 --- a/src/pages/user/inform/inform.tsx +++ b/src/pages/user/inform/inform.tsx @@ -3,7 +3,7 @@ import { AtForm, AtInput, AtButton, AtMessage } from 'taro-ui'; import { View } from '@tarojs/components'; import Taro from '@tarojs/taro'; import pt from '@/plain-text'; -import { updateUserInfo } from '@/service/UserInfo'; +import { updateUserInfo } from '@/service/userData'; import './inform.scss'; const submitInterval = 5000; diff --git a/src/service/MainPage.ts b/src/service/dutyInfo.ts similarity index 100% rename from src/service/MainPage.ts rename to src/service/dutyInfo.ts diff --git a/src/service/UserInfo.ts b/src/service/userData.ts similarity index 100% rename from src/service/UserInfo.ts rename to src/service/userData.ts From eaa22dcaa56cff2b37632d6789116d99fcb41b79 Mon Sep 17 00:00:00 2001 From: FrozenArcher Date: Tue, 12 Mar 2024 00:34:58 +0800 Subject: [PATCH 4/5] refactor user and app service --- src/app.ts | 19 +++---------------- src/pages/user/user.tsx | 13 ++----------- src/service/localeData.ts | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 27 deletions(-) create mode 100644 src/service/localeData.ts diff --git a/src/app.ts b/src/app.ts index 6a55898..d1242a9 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,26 +1,13 @@ import { PropsWithChildren } from 'react'; -import Taro, { useLaunch } from '@tarojs/taro'; -import { getUrl } from '@/service'; -import pt from '@/plain-text'; +import { useLaunch } from '@tarojs/taro'; import 'taro-ui/dist/style/index.scss'; import './app.scss'; +import { getLocaleData } from './service/localeData'; function App({ children }: PropsWithChildren) { useLaunch(() => { console.log('App launched.'); - Taro.request({ - url: getUrl('/user/locale/get'), - method: 'GET', - data: { - token: 'token_test', - }, - }).then(res => { - console.log(res.data); - pt.setLang(res.data.data.lang); - Taro.reLaunch({ - url: '/pages/index/index', - }); - }); + getLocaleData(); }); // children 是将要会渲染的页面 diff --git a/src/pages/user/user.tsx b/src/pages/user/user.tsx index 1b42ca8..9e2921a 100644 --- a/src/pages/user/user.tsx +++ b/src/pages/user/user.tsx @@ -1,7 +1,6 @@ import { AtList, AtListItem, AtToast } from 'taro-ui'; import { Component, ReactNode } from 'react'; import { View, Picker, Image, Text } from '@tarojs/components'; -import { getUrl } from '@/service'; import Taro from '@tarojs/taro'; import type CustomTabBar from '@/custom-tab-bar'; import PageFooter from '@/components/PageFooter/PageFooter'; @@ -9,6 +8,7 @@ import aboutIcon from '@/assets/icons/AboutPage/about.svg'; import pt, { Lang } from '@/plain-text'; import wechatUser from '@/wechat'; import logo from '@/assets/images/UserPage/logo.png'; +import { setLocaleData } from '@/service/localeData'; import './user.scss'; const listLangInterval = 20; @@ -70,16 +70,7 @@ export default class UserPage extends Component { }); let currentLang = this.showLangDict[this.state.selector[e.detail.value]]; pt.setLang(currentLang); - Taro.request({ - url: getUrl('/user/locale/update'), - method: 'POST', - data: { - token: 'token_test', - lang: currentLang, - }, - }).then(res => { - console.log(res.data); - }); + setLocaleData(currentLang); Taro.reLaunch({ url: '/pages/user/user', }); diff --git a/src/service/localeData.ts b/src/service/localeData.ts new file mode 100644 index 0000000..174321e --- /dev/null +++ b/src/service/localeData.ts @@ -0,0 +1,32 @@ +import Taro from '@tarojs/taro'; +import pt, { Lang } from '@/plain-text'; +import { getUrl } from '.'; + +export function setLocaleData(lang: Lang) { + Taro.request({ + url: getUrl('/user/locale/update'), + method: 'POST', + data: { + token: 'token_test', + lang: lang, + }, + }).then(res => { + console.log(res.data); + }); +} + +export function getLocaleData() { + Taro.request({ + url: getUrl('/user/locale/get'), + method: 'GET', + data: { + token: 'token_test', + }, + }).then(res => { + console.log(res.data); + pt.setLang(res.data.data.lang); + Taro.reLaunch({ + url: '/pages/index/index', + }); + }); +} From 32ce5067640e585b6e66e7335deb7bc173bdbfd1 Mon Sep 17 00:00:00 2001 From: FrozenArcher Date: Tue, 12 Mar 2024 01:12:56 +0800 Subject: [PATCH 5/5] add steps --- src/pages/TicketDetail/TicketDetail.tsx | 30 ++++++++++++++++++++++--- src/plain-text/TicketDetail.ts | 19 ++++++++++++++++ src/plain-text/index.ts | 8 +++++++ 3 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 src/plain-text/TicketDetail.ts diff --git a/src/pages/TicketDetail/TicketDetail.tsx b/src/pages/TicketDetail/TicketDetail.tsx index 592dfe1..5cab35b 100644 --- a/src/pages/TicketDetail/TicketDetail.tsx +++ b/src/pages/TicketDetail/TicketDetail.tsx @@ -3,10 +3,23 @@ import { View } from '@tarojs/components'; import { getCurrentInstance } from '@tarojs/runtime'; import Taro from '@tarojs/taro'; import pt from '@/plain-text'; +import { AtSteps } from 'taro-ui'; -export default class TicketDetail extends Component { +interface StepItemData { + title: string; +} + +interface TicketDetailState { + id: number; + current: number; + items: Array; +} + +export default class TicketDetail extends Component<{}, TicketDetailState> { state = { id: 0, + current: 0, + items: [], }; componentDidMount(): void { const navBar = pt.get().navBar; @@ -14,12 +27,23 @@ export default class TicketDetail extends Component { title: navBar.ticketDetail, }); const { router } = getCurrentInstance(); - const id = router?.params.id; + const id = router?.params.id as number; + const items = pt.get().ticketDetail.stepItems; this.setState({ id: id, + items: items, }); } render(): ReactNode { - return TicketDetail: {this.state.id}; + return ( + + {}} + /> + TicketDetail: {this.state.id} + + ); } } diff --git a/src/plain-text/TicketDetail.ts b/src/plain-text/TicketDetail.ts new file mode 100644 index 0000000..5de15ab --- /dev/null +++ b/src/plain-text/TicketDetail.ts @@ -0,0 +1,19 @@ +interface StepItem { + title: string; +} + +export interface TicketDetailText { + stepItems: Array; +} + +export const ticketDetailZhCn: TicketDetailText = { + stepItems: [{ title: '创建成功' }, { title: '维修中' }, { title: '待取回' }], +}; + +export const ticketDetailEnUs: TicketDetailText = { + stepItems: [ + { title: 'Ticket created' }, + { title: 'Repairing' }, + { title: 'Take home' }, + ], +}; diff --git a/src/plain-text/index.ts b/src/plain-text/index.ts index 79765d1..a20d939 100644 --- a/src/plain-text/index.ts +++ b/src/plain-text/index.ts @@ -9,6 +9,11 @@ import { ButtonText, buttonEnUs, buttonZhCn } from './Button'; import { MemberPageText, memberPageEnUs, memberPageZhCn } from './MemberPage'; import { TicketListText, ticketListEnUs, ticketListZhCn } from './TicketList'; import { NavBarTitle, navBarTitleEnUs, navBarTitleZhCh } from './NavBarTitle'; +import { + TicketDetailText, + ticketDetailEnUs, + ticketDetailZhCn, +} from './TicketDetail'; interface TextRecord { pageFooter: PageFooterText; @@ -22,6 +27,7 @@ interface TextRecord { memberPage: MemberPageText; ticketList: TicketListText; navBar: NavBarTitle; + ticketDetail: TicketDetailText; } const textZhCn: TextRecord = { @@ -36,6 +42,7 @@ const textZhCn: TextRecord = { memberPage: memberPageZhCn, ticketList: ticketListZhCn, navBar: navBarTitleZhCh, + ticketDetail: ticketDetailZhCn, }; const textEnUs: TextRecord = { @@ -50,6 +57,7 @@ const textEnUs: TextRecord = { memberPage: memberPageEnUs, ticketList: ticketListEnUs, navBar: navBarTitleEnUs, + ticketDetail: ticketDetailEnUs, }; // type Lang = 'zh_CN' | 'en_US' | ...;