From b41498976e012781f650189294938aa45185ef44 Mon Sep 17 00:00:00 2001 From: Dawn_Ocean <1785590531@qq.com> Date: Fri, 15 Mar 2024 14:28:26 +0800 Subject: [PATCH] add blank judgement; fixed setstate in render bug --- .../DetailFramework/DetailFramework.tsx | 11 +++-- src/pages/repair/repair.tsx | 27 +++++++++++++ src/pages/user/inform/inform.tsx | 8 +++- src/pages/user/member/member.tsx | 30 ++++++++++++++ src/pages/user/report/report.tsx | 40 ++++++------------- src/service/memberLogin.ts | 26 ------------ src/service/report.ts | 38 ++++++++++++++++++ src/service/submitTicket.ts | 37 ++--------------- 8 files changed, 123 insertions(+), 94 deletions(-) create mode 100644 src/service/report.ts diff --git a/src/components/DetailFramework/DetailFramework.tsx b/src/components/DetailFramework/DetailFramework.tsx index 641941b..c31f255 100644 --- a/src/components/DetailFramework/DetailFramework.tsx +++ b/src/components/DetailFramework/DetailFramework.tsx @@ -57,6 +57,11 @@ export default class DetailFramework extends Component< title: navBar.ticketDetail, }); getTicketInfo(this, this.props.id); + const status = this.state.ticketInfo.status; + this.setState({ + current: mapStatusStep.get(status) || 0, + items: pt.get().ticketDetail.stepItems, + }); } props: Readonly = { @@ -79,12 +84,6 @@ export default class DetailFramework extends Component< return Request failed; } - const status = this.state.ticketInfo.status; - // this.setState({ - // current: mapStatusStep.get(status) || 0, - // items: pt.get().ticketDetail.stepItems, - // }); - const elements: ShowElements = { device: this.props.isInfoShow['device'] ? ( diff --git a/src/pages/repair/repair.tsx b/src/pages/repair/repair.tsx index e70f385..23b17fd 100644 --- a/src/pages/repair/repair.tsx +++ b/src/pages/repair/repair.tsx @@ -152,7 +152,34 @@ export default class RepairPage extends Component<{}, RepairPageState> { } onSubmit() { + this.setState({ + isDisable: true, + }); + if ( + this.state.description == '' || + this.state.device == '' || + this.state.deviceModel == '' || + this.state.owner == '' || + this.state.phone == '' || + this.state.checkedList.length === 0 + ) { + Taro.atMessage({ + message: pt.get().button.submitText.blank, + type: 'error', + }); + setTimeout(() => { + this.setState({ + isDisable: false, + }); + }, submitInterval); + return; + } submitTicket(this); + setTimeout(() => { + this.setState({ + isDisable: false, + }); + }, submitInterval); } render(): ReactNode { diff --git a/src/pages/user/inform/inform.tsx b/src/pages/user/inform/inform.tsx index a3ab1ed..f2d9902 100644 --- a/src/pages/user/inform/inform.tsx +++ b/src/pages/user/inform/inform.tsx @@ -36,10 +36,16 @@ export default class InformPage extends Component { } onSubmit() { this.setState({ - isLoading: true, isDisable: true, }); console.log(this.state.name, this.state.phone); + if (this.state.name == '' || this.state.phone == '') { + Taro.atMessage({ + message: pt.get().button.submitText.blank, + type: 'error', + }); + return; + } updateUserInfo(this); setTimeout(() => { this.setState({ diff --git a/src/pages/user/member/member.tsx b/src/pages/user/member/member.tsx index cd43f80..4b925da 100644 --- a/src/pages/user/member/member.tsx +++ b/src/pages/user/member/member.tsx @@ -6,6 +6,8 @@ import { memberLogin, memberLogout } from '@/service/memberLogin'; import wechatUser from '@/wechat'; import './member.scss'; +const logInterval = 5000; + export default class UserMemberPage extends Component { state = { stuid: '', @@ -31,11 +33,39 @@ export default class UserMemberPage extends Component { return passwd; } onSubmit() { + this.setState({ + isDisable: true, + }); + if (this.state.stuid == '' || this.state.passwd == '') { + Taro.atMessage({ + message: pt.get().button.submitText.blank, + type: 'error', + }); + setTimeout(() => { + this.setState({ + isDisable: false, + }); + }, logInterval); + return; + } memberLogin(this); + setTimeout(() => { + this.setState({ + isDisable: false, + }); + }, logInterval); } onLogout() { + this.setState({ + isDisable: true, + }); memberLogout(this); + setTimeout(() => { + this.setState({ + isDisable: false, + }); + }, logInterval); } render(): ReactNode { diff --git a/src/pages/user/report/report.tsx b/src/pages/user/report/report.tsx index c8e4349..f74e7c8 100644 --- a/src/pages/user/report/report.tsx +++ b/src/pages/user/report/report.tsx @@ -1,8 +1,8 @@ import { AtTextarea, AtButton, AtForm, AtMessage } from 'taro-ui'; import { Component, ReactNode } from 'react'; -import { getUrl } from '@/service'; import Taro from '@tarojs/taro'; import pt from '@/plain-text'; +import { reportMessage } from '@/service/report'; import './report.scss'; const submitInterval = 5000; @@ -27,35 +27,21 @@ export default class ReportPage extends Component { } onSubmit() { this.setState({ - isLoading: true, isDisable: true, }); - console.log(this.state.report); - Taro.request({ - url: getUrl('/report'), - method: 'POST', - data: { - token: 'token_test', - report: this.state.report, - }, - }) - .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', - }); + if (this.state.report == '') { + Taro.atMessage({ + message: pt.get().button.submitText.blank, + type: 'error', }); - this.setState({ - isLoading: false, - }); + setTimeout(() => { + this.setState({ + isDisable: false, + }); + }, submitInterval); + return; + } + reportMessage(this); setTimeout(() => { this.setState({ isDisable: false, diff --git a/src/service/memberLogin.ts b/src/service/memberLogin.ts index bb700f2..6511bda 100644 --- a/src/service/memberLogin.ts +++ b/src/service/memberLogin.ts @@ -4,26 +4,10 @@ import pt from '@/plain-text'; import wechatUser from '@/wechat'; import { getUrl } from '.'; -const logInterval = 5000; - export function memberLogin(that: UserMemberPage) { that.setState({ - isDisable: true, isLoading: true, }); - if (that.state.stuid == '' || that.state.passwd == '') { - Taro.atMessage({ - message: pt.get().button.submitText.blank, - type: 'error', - }); - setTimeout(() => { - that.setState({ - isDisable: false, - isLoading: false, - }); - }, logInterval); - return; - } Taro.request({ url: getUrl('/member/login'), method: 'POST', @@ -56,11 +40,6 @@ export function memberLogin(that: UserMemberPage) { message: pt.get().button.loginText.error + err.toString(), type: 'error', }); - setTimeout(() => { - that.setState({ - isDisable: false, - }); - }, logInterval); }); } @@ -98,10 +77,5 @@ export function memberLogout(that: UserMemberPage) { message: pt.get().button.logoutText.error + err.toString(), type: 'error', }); - setTimeout(() => { - that.setState({ - isDisable: false, - }); - }, logInterval); }); } diff --git a/src/service/report.ts b/src/service/report.ts new file mode 100644 index 0000000..23545ac --- /dev/null +++ b/src/service/report.ts @@ -0,0 +1,38 @@ +import ReportPage from '@/pages/user/report/report'; +import Taro from '@tarojs/taro'; +import pt from '@/plain-text'; +import { getUrl } from '.'; + +export function reportMessage(that: ReportPage) { + that.setState({ + isLoading: true, + }); + Taro.request({ + url: getUrl('/report'), + method: 'POST', + data: { + token: 'token_test', + report: that.state.report, + }, + }) + .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', + }); + }); +} diff --git a/src/service/submitTicket.ts b/src/service/submitTicket.ts index a49f91f..2262ac3 100644 --- a/src/service/submitTicket.ts +++ b/src/service/submitTicket.ts @@ -3,35 +3,10 @@ import Taro from '@tarojs/taro'; import pt from '@/plain-text'; import { getUrl } from '.'; -const submitInterval = 5000; - export function submitTicket(that: RepairPage) { - if (that.state.isDisable != true || that.state.isLoading != true) { - that.setState({ - isDisable: true, - isLoading: true, - }); - } - if ( - that.state.description == '' || - that.state.device == '' || - that.state.deviceModel == '' || - that.state.owner == '' || - that.state.phone == '' || - that.state.checkedList.length === 0 - ) { - Taro.atMessage({ - message: pt.get().button.submitText.blank, - type: 'error', - }); - setTimeout(() => { - that.setState({ - isDisable: false, - isLoading: false, - }); - }, submitInterval); - return; - } + that.setState({ + isLoading: true, + }); Taro.request({ url: getUrl('/tickets/create'), method: 'POST', @@ -69,10 +44,4 @@ export function submitTicket(that: RepairPage) { type: 'error', }); }); - setTimeout(() => { - that.setState({ - isDisable: false, - isLoading: false, - }); - }, submitInterval); }