EVA-Notify/src/service/ticketsInfo.ts

87 lines
2.2 KiB
TypeScript

import { TicketInfo, TicketNote } from '@/pages/TicketDetail/TicketNote';
import DetailFramework from '@/components/DetailFramework/DetailFramework';
import Taro from '@tarojs/taro';
import moment from 'moment';
import { FixStatus } from '@/common';
import pt from '@/plain-text';
import { getUrl } from '.';
const mapStatusStep: Map<FixStatus, 0 | 1 | 2 | 3> = new Map([
[0, 0],
[1, 1],
[2, 2],
[3, 3],
[4, 2],
[5, 3],
[6, 2],
[7, 3],
]);
export function getTicketInfo(that: DetailFramework, id: number) {
Taro.request({
url: getUrl('/tickets/info'),
method: 'GET',
data: {
id: id,
},
})
.then((res) => {
let former = that.state.rs;
if (!res.data.success) {
that.setState({
rs: former.trans(false),
});
} else {
const data = res.data.data;
const ticketDetail: TicketInfo = {
id: data.id,
type: data.type,
device: data.device,
workers: data.workers,
deviceModel: data.deviceModel,
description: data.description,
createdTime: moment(data.createdTime as string),
status: data.status,
info: {
phone: data.phone,
name: data.owner,
},
};
const notes: Array<TicketNote> = [];
data.notes.map(
(item: {
avatar: string;
id: number;
op: string;
type: 0 | 1 | 2;
content: string;
createdTime: string;
}) => {
notes.push({
avatar: item.avatar,
id: item.id,
op: item.op,
type: item.type,
content: item.content,
createdTime: moment(item.createdTime as string),
});
},
);
that.setState({
ticketInfo: ticketDetail,
notes: notes,
rs: former.trans(true),
current: mapStatusStep.get(data.status) || 0,
items: pt.get().ticketDetail.stepItems,
});
}
})
.catch((reason) => {
let former = that.state.rs;
that.setState({
rs: former.trans(false),
});
console.error(reason.errMsg);
});
}