From 0351819fa2a527a5995ed62db523b5a73f0bdbb9 Mon Sep 17 00:00:00 2001 From: Dawn1Ocean <1785590531@qq.com> Date: Thu, 11 Apr 2024 17:01:08 +0800 Subject: [PATCH] add confirm modal in AskLeave --- mock/api.ts | 2 +- src/pages/AskLeave/AskLeave.tsx | 106 +++++++++++++++++++++++++------- src/plain-text/AskLeave.ts | 25 ++++++++ 3 files changed, 110 insertions(+), 23 deletions(-) diff --git a/mock/api.ts b/mock/api.ts index 6291236..fc7b1b3 100644 --- a/mock/api.ts +++ b/mock/api.ts @@ -135,7 +135,7 @@ export default { 'GET /checklogin': { success: true, data: { - islogin: false, + islogin: true, }, }, }; diff --git a/src/pages/AskLeave/AskLeave.tsx b/src/pages/AskLeave/AskLeave.tsx index 2e25aea..80dd156 100644 --- a/src/pages/AskLeave/AskLeave.tsx +++ b/src/pages/AskLeave/AskLeave.tsx @@ -6,6 +6,7 @@ import { AtInput, AtList, AtListItem, + AtModal, } from 'taro-ui'; import { Component, ReactNode } from 'react'; import Taro from '@tarojs/taro'; @@ -20,11 +21,12 @@ export default class AskLeavePage extends Component { state = { isLoading: false, isDisable: false, + showModal: false, range: [ - ['1', '2', '3', '4', '5', '6', '7'], - ['1', '2', '3'], + ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], + ['第一班', '第二班', '第三班'], ], - shift: [], + shift: [0, 0], reason: '', substitute: '', }; @@ -35,10 +37,45 @@ export default class AskLeavePage extends Component { }); } - onShiftSelect(shift: []) { + onShiftSelect(event) { this.setState({ - shift, + shift: event.detail.value, }); + console.log(event); + } + + onModalClose() { + this.setState({ + showModal: false, + }); + setTimeout(() => { + this.setState({ + isDisable: false, + }); + }, submitInterval); + } + + onModalCancel() { + this.setState({ + showModal: false, + }); + setTimeout(() => { + this.setState({ + isDisable: false, + }); + }, submitInterval); + } + + onModalConfirm() { + this.setState({ + showModal: false, + }); + askLeave(this); + setTimeout(() => { + this.setState({ + isDisable: false, + }); + }, submitInterval); } handleReasonChange(reason: string) { @@ -69,6 +106,12 @@ export default class AskLeavePage extends Component { }, submitInterval); return; } + if (this.state.substitute == '') { + this.setState({ + showModal: true, + }); + return; + } askLeave(this); setTimeout(() => { this.setState({ @@ -79,30 +122,49 @@ export default class AskLeavePage extends Component { render(): ReactNode { return ( + + - - + + + + + + + - - - - + {pt.get().askLeave.reason.title} + +