From 3d5cd6c8daa118422e4da7ec5e7bbb3fb9d8ad7c Mon Sep 17 00:00:00 2001 From: Dawn_Ocean <1785590531@qq.com> Date: Mon, 18 Mar 2024 14:22:49 +0800 Subject: [PATCH] add retrieve in service --- doc/api.md | 11 ++++++ mock/api.ts | 3 ++ .../TicketListItem/TicketListItem.tsx | 2 +- src/pages/TicketDetail/TicketDetail.tsx | 26 ++++++++++--- src/service/retrieve.ts | 38 +++++++++++++++++++ 5 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 src/service/retrieve.ts diff --git a/doc/api.md b/doc/api.md index 51baa50..adb56c0 100644 --- a/doc/api.md +++ b/doc/api.md @@ -215,6 +215,17 @@ Request } ``` +### 确认已取回 `POST /tickets/retrieve` + +Request + +```json +{ + "token": "token_test", + "id": "id", +} +``` + ### 获取七天内未完成工单 `POST /tickets/uncompleted` Request diff --git a/mock/api.ts b/mock/api.ts index 6eb71a1..98e0133 100644 --- a/mock/api.ts +++ b/mock/api.ts @@ -58,6 +58,9 @@ export default { 'POST /tickets/update': { data: {}, }, + 'POST /tickets/retrieve': { + data: {}, + }, 'POST /member/login': { success: true, data: { diff --git a/src/components/TicketListItem/TicketListItem.tsx b/src/components/TicketListItem/TicketListItem.tsx index 967020f..da5cf70 100644 --- a/src/components/TicketListItem/TicketListItem.tsx +++ b/src/components/TicketListItem/TicketListItem.tsx @@ -34,7 +34,7 @@ export class TicketListItem { [2, clock], [3, finished], [4, clock], - [5, finished], + [5, tick], [6, clock], [7, fail], ]); diff --git a/src/pages/TicketDetail/TicketDetail.tsx b/src/pages/TicketDetail/TicketDetail.tsx index f0cb46e..a45084e 100644 --- a/src/pages/TicketDetail/TicketDetail.tsx +++ b/src/pages/TicketDetail/TicketDetail.tsx @@ -19,6 +19,7 @@ import Taro from '@tarojs/taro'; import wechatUser from '@/wechat'; import { addToOreo } from '@/service/addToOreo'; import { pickTicket } from '@/service/pickTicket'; +import { retrieve } from '@/service/retrieve'; const submitInterval = 5000; @@ -37,6 +38,8 @@ interface TicketDetailState { isOreoDisable: boolean; isPickLoading: boolean; isPickDisable: boolean; + isRetrieveLoading: boolean; + isRetrieveDisable: boolean; } export default class TicketDetail extends Component<{}, TicketDetailState> { @@ -55,6 +58,8 @@ export default class TicketDetail extends Component<{}, TicketDetailState> { isOreoDisable: false, isPickLoading: false, isPickDisable: false, + isRetrieveLoading: false, + isRetrieveDisable: false, }; componentDidMount(): void { @@ -140,11 +145,17 @@ export default class TicketDetail extends Component<{}, TicketDetailState> { return; } - handleCommentConfirm(): void { - return; - } - handleRetrieveConfirm(): void { + this.setState({ + isRetrieveDisable: true, + showRetrieveModal: false, + }); + retrieve(this); + setTimeout(() => { + this.setState({ + isRetrieveDisable: false, + }); + }, submitInterval); return; } @@ -264,7 +275,12 @@ export default class TicketDetail extends Component<{}, TicketDetailState> { className='at-col' style={{ marginLeft: 10, paddingRight: 5, width: '50%' }} > - + {pt.get().ticketDetail.tookAway} diff --git a/src/service/retrieve.ts b/src/service/retrieve.ts new file mode 100644 index 0000000..dafb732 --- /dev/null +++ b/src/service/retrieve.ts @@ -0,0 +1,38 @@ +import TicketDetail from '@/pages/TicketDetail/TicketDetail'; +import Taro from '@tarojs/taro'; +import pt from '@/plain-text'; +import { getUrl } from '.'; + +export function retrieve(that: TicketDetail) { + that.setState({ + isRetrieveLoading: true, + }); + Taro.request({ + url: getUrl('/tickets/retrieve'), + method: 'POST', + data: { + token: 'token_test', + id: that.state.id, + }, + }) + .then((res) => { + console.log(res.data); + that.setState({ + isRetrieveLoading: false, + }); + Taro.atMessage({ + message: pt.get().button.submitText.success, + type: 'success', + }); + }) + .catch((err) => { + console.log(err); + that.setState({ + isRetrieveLoading: false, + }); + Taro.atMessage({ + message: pt.get().button.submitText.error + err.toString(), + type: 'error', + }); + }); +}