87 lines
2.2 KiB
TypeScript
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);
|
|
});
|
|
}
|