diff --git a/src/pages/TicketDetail/TicketDetail.tsx b/src/pages/TicketDetail/TicketDetail.tsx index 2e365cc..543d931 100644 --- a/src/pages/TicketDetail/TicketDetail.tsx +++ b/src/pages/TicketDetail/TicketDetail.tsx @@ -6,6 +6,7 @@ import { AtActionSheet, AtActionSheetItem, AtButton, + AtCheckbox, AtFloatLayout, AtForm, AtMessage, @@ -30,6 +31,7 @@ interface TicketDetailState { isMember: boolean; showOreoModal: boolean; showCommentLayout: boolean; + showReminderLayout: boolean; showRetrieveModal: boolean; showStatusSheet: boolean; showPickModal: boolean; @@ -48,6 +50,10 @@ interface TicketDetailState { isCommentLoading: boolean; isCommentDisable: boolean; isCommentDisable_main: boolean; + isReminderLoading: boolean; + isReminderDisable: boolean; + reminderList: Array; + statusToBe: number; } export default class TicketDetail extends Component<{}, TicketDetailState> { @@ -56,6 +62,7 @@ export default class TicketDetail extends Component<{}, TicketDetailState> { isMember: false, showOreoModal: false, showCommentLayout: false, + showReminderLayout: false, showRetrieveModal: false, showStatusSheet: false, showPickModal: false, @@ -74,6 +81,10 @@ export default class TicketDetail extends Component<{}, TicketDetailState> { isCommentLoading: false, isCommentDisable: false, isCommentDisable_main: false, + isReminderDisable: false, + isReminderLoading: false, + reminderList: [], + statusToBe: 0, }; componentDidMount(): void { @@ -128,6 +139,12 @@ export default class TicketDetail extends Component<{}, TicketDetailState> { }); } + handleReminderCancel(): void { + this.setState({ + showReminderLayout: false, + }); + } + handleRetrieveCancel(): void { this.setState({ showRetrieveModal: false, @@ -193,7 +210,14 @@ export default class TicketDetail extends Component<{}, TicketDetailState> { showStatusSheet: false, isStatusDisable: true, }); - changeStatus(this, status); + if (status == 3 || status == 5 || status == 7) { + this.setState({ + showReminderLayout: true, + statusToBe: status, + }); + } else { + changeStatus(this, status); + } setTimeout(() => { this.setState({ isStatusDisable: false, @@ -234,6 +258,57 @@ export default class TicketDetail extends Component<{}, TicketDetailState> { }, submitInterval); } + handleReminderChange(reminderList: Array) { + this.setState({ + reminderList: reminderList, + }); + return reminderList; + } + + onReminderSubmit() { + this.setState({ + isReminderDisable: true, + }); + if ( + this.state.reminderList.includes(1) && + this.state.reminderList.includes(3) + ) { + this.setState({ + showReminderLayout: false, + }); + changeStatus(this, this.state.statusToBe); + } else { + Taro.atMessage({ + message: pt.get().button.submitText.blank, + type: 'error', + }); + } + setTimeout(() => { + this.setState({ + isReminderDisable: false, + }); + }, submitInterval); + } + + reminderOption = [ + { + value: 0, + label: pt.get().repairPage.checkboxText.none, + }, + { + value: 1, + label: pt.get().repairPage.checkboxText.usbDisk, + }, + { + value: 2, + label: pt.get().repairPage.checkboxText.mouseOrReceiver, + }, + { + value: 3, + label: pt.get().repairPage.checkboxText.powerAdapter, + }, + ]; + render(): ReactNode { const middleButton = this.state.isMember ? ( @@ -402,6 +477,27 @@ export default class TicketDetail extends Component<{}, TicketDetailState> { + + + + + {pt.get().button.buttonText.submit} + + +