add addToOreo in service

main
Dawn_Ocean 2024-03-18 13:39:15 +08:00
parent e39e8d4e13
commit 501f27bfbb
3 changed files with 65 additions and 3 deletions

View File

@ -17,6 +17,7 @@ import PageFooter from '@/components/PageFooter/PageFooter';
import { submitComment } from '@/service/submitComment'; import { submitComment } from '@/service/submitComment';
import Taro from '@tarojs/taro'; import Taro from '@tarojs/taro';
import wechatUser from '@/wechat'; import wechatUser from '@/wechat';
import { addToOreo } from '@/service/addToOreo';
const submitInterval = 5000; const submitInterval = 5000;
@ -31,6 +32,10 @@ interface TicketDetailState {
comment: string; comment: string;
isLoading: boolean; isLoading: boolean;
isDisable: boolean; isDisable: boolean;
isOreoLoading: boolean;
isOreoDisable: boolean;
isPickLoading: boolean;
isPickDisable: boolean;
} }
export default class TicketDetail extends Component<{}, TicketDetailState> { export default class TicketDetail extends Component<{}, TicketDetailState> {
@ -45,6 +50,10 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
comment: '', comment: '',
isLoading: false, isLoading: false,
isDisable: false, isDisable: false,
isOreoLoading: false,
isOreoDisable: false,
isPickLoading: false,
isPickDisable: false,
}; };
componentDidMount(): void { componentDidMount(): void {
@ -117,6 +126,16 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
} }
handleOreoConfirm(): void { handleOreoConfirm(): void {
this.setState({
isOreoDisable: true,
showOreoModal: false,
});
addToOreo(this);
setTimeout(() => {
this.setState({
isOreoDisable: false,
});
}, submitInterval);
return; return;
} }
@ -188,7 +207,12 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
className='at-col' className='at-col'
style={{ marginLeft: 10, paddingRight: 5, width: '50%' }} style={{ marginLeft: 10, paddingRight: 5, width: '50%' }}
> >
<AtButton type='primary' onClick={this.onAddToOreo.bind(this)}> <AtButton
loading={this.state.isOreoLoading}
disabled={this.state.isOreoDisable}
type='primary'
onClick={this.onAddToOreo.bind(this)}
>
{pt.get().ticketDetail.addToOreo} {pt.get().ticketDetail.addToOreo}
</AtButton> </AtButton>
</View> </View>
@ -251,6 +275,7 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
return ( return (
<View> <View>
<AtMessage />
<AtModal <AtModal
isOpened={this.state.showOreoModal} isOpened={this.state.showOreoModal}
title={pt.get().modal.addToOreo.title} title={pt.get().modal.addToOreo.title}

View File

@ -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 addToOreo(that: TicketDetail) {
that.setState({
isOreoLoading: true,
});
Taro.request({
url: getUrl('/tickets/addtooreo'),
method: 'POST',
data: {
token: 'token_test',
id: that.state.id,
},
})
.then((res) => {
console.log(res.data);
that.setState({
isOreoLoading: 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',
});
});
}

View File

@ -6,7 +6,7 @@ import { getUrl } from '.';
export function getUncompletedTicketList(that: MemberPage) { export function getUncompletedTicketList(that: MemberPage) {
Taro.request({ Taro.request({
url: getUrl('/member/tickets/uncompleted'), url: getUrl('/tickets/uncompleted'),
method: 'GET', method: 'GET',
data: { data: {
token: 'token_test', token: 'token_test',
@ -30,7 +30,6 @@ export function getUncompletedTicketList(that: MemberPage) {
item.deviceModel, item.deviceModel,
item.status, item.status,
moment(item.createdTime), moment(item.createdTime),
true,
), ),
), ),
}); });