add button disable in ticketdetail with relavant services

main
Dawn_Ocean 2024-03-22 15:36:18 +08:00
parent f3f5be793b
commit 97a8d0570a
6 changed files with 63 additions and 8 deletions

View File

@ -6,9 +6,9 @@
"owner": "唐姐姐",
"phone": "15555555555",
"description": "清灰",
"workers": [],
"workers": ["宇航员"],
"createdTime": "2024-03-07T19:52:48.523303",
"status": 2,
"status": 5,
"isConfirmed": false,
"notes": [
{

View File

@ -21,6 +21,7 @@ import { addToOreo } from '@/service/addToOreo';
import { pickTicket } from '@/service/pickTicket';
import { retrieve } from '@/service/retrieve';
import { changeStatus } from '@/service/changeStatus';
import { getDisable } from '@/service/getDisable';
const submitInterval = 5000;
@ -35,14 +36,18 @@ interface TicketDetailState {
comment: string;
isOreoLoading: boolean;
isOreoDisable: boolean;
isOreoDisable_main: boolean;
isPickLoading: boolean;
isPickDisable: boolean;
isPickDisable_main: boolean;
isRetrieveLoading: boolean;
isRetrieveDisable: boolean;
isRetrieveDisable_main: boolean;
isStatusLoading: boolean;
isStatusDisable: boolean;
isCommentLoading: boolean;
isCommentDisable: boolean;
isCommentDisable_main: boolean;
}
export default class TicketDetail extends Component<{}, TicketDetailState> {
@ -57,14 +62,18 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
comment: '',
isOreoLoading: false,
isOreoDisable: false,
isOreoDisable_main: false,
isPickLoading: false,
isPickDisable: false,
isPickDisable_main: false,
isRetrieveLoading: false,
isRetrieveDisable: false,
isRetrieveDisable_main: false,
isStatusLoading: false,
isStatusDisable: false,
isCommentLoading: false,
isCommentDisable: false,
isCommentDisable_main: false,
};
componentDidMount(): void {
@ -74,6 +83,7 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
id: id,
isMember: wechatUser.getAccess(),
});
getDisable(this, id);
}
onAddToOreo(): void {
@ -237,7 +247,9 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
>
<AtButton
loading={this.state.isPickLoading}
disabled={this.state.isPickDisable}
disabled={
this.state.isPickDisable || this.state.isPickDisable_main
}
type='secondary'
onClick={this.onPick.bind(this)}
>
@ -250,7 +262,9 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
>
<AtButton
loading={this.state.isOreoLoading}
disabled={this.state.isOreoDisable}
disabled={
this.state.isOreoDisable || this.state.isOreoDisable_main
}
type='primary'
onClick={this.onAddToOreo.bind(this)}
>
@ -280,7 +294,9 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
style={{ marginLeft: '20rpx', paddingRight: '10rpx', width: '50%' }}
>
<AtButton
disabled={this.state.isCommentDisable}
disabled={
this.state.isCommentDisable || this.state.isCommentDisable_main
}
loading={this.state.isCommentLoading}
type='secondary'
onClick={this.onAddComment.bind(this)}
@ -301,7 +317,9 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
>
<AtButton
loading={this.state.isRetrieveLoading}
disabled={this.state.isRetrieveDisable}
disabled={
this.state.isRetrieveDisable || this.state.isRetrieveDisable_main
}
type='primary'
onClick={this.onRetrieved.bind(this)}
>
@ -313,7 +331,9 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
style={{ marginRight: '20rpx', paddingLeft: '10rpx', width: '50%' }}
>
<AtButton
disabled={this.state.isCommentDisable}
disabled={
this.state.isCommentDisable || this.state.isCommentDisable_main
}
loading={this.state.isCommentLoading}
type='secondary'
onClick={this.onAddComment.bind(this)}

View File

@ -9,6 +9,7 @@ export class TicketInfo {
createdTime: moment.Moment;
status: FixStatus;
info: Info;
workers: string[];
}
export class TicketNote {

View File

@ -0,0 +1,33 @@
import TicketDetail from '@/pages/TicketDetail/TicketDetail';
import Taro from '@tarojs/taro';
import wechatUser from '@/wechat';
import { getUrl } from '.';
export function getDisable(that: TicketDetail, id: number) {
Taro.request({
url: getUrl('/tickets/info'),
method: 'GET',
data: {
id: id,
},
})
.then((res) => {
const data = res.data.data;
if (data.status === 3 || data.status === 5 || data.status === 7) {
that.setState({
isRetrieveDisable_main: true,
isCommentDisable_main: true,
});
}
if (wechatUser.getAccess()) {
if (data.workers.includes(wechatUser.getInfo().name)) {
that.setState({
isPickDisable_main: true,
});
}
}
})
.catch((reason) => {
console.error(reason);
});
}

View File

@ -30,7 +30,7 @@ export function memberLogin(that: UserMemberPage) {
wechatUser.setInfo(res.data.data as UserInfo);
wechatUser.setAccess(true);
Taro.reLaunch({
url: '/pages/member/member',
url: '/pages/index/index',
});
} else {
Taro.atMessage({

View File

@ -24,6 +24,7 @@ export function getTicketInfo(that: DetailFramework, id: number) {
id: data.id,
type: data.type,
device: data.device,
workers: data.workers,
deviceModel: data.deviceModel,
description: data.description,
createdTime: moment(data.createdTime as string),