wrap up detailframework in atcard in repair page

yhy
Dawn_Ocean 2024-03-14 16:51:21 +08:00
parent 84507f7214
commit 9931b23337
8 changed files with 68 additions and 35 deletions

View File

@ -3,7 +3,7 @@
{
"id": 6830,
"type": 1,
"status": 5,
"status": 2,
"device": "主机",
"deviceModel": "技嘉",
"owner": "武技栏",

View File

@ -1,5 +1,5 @@
{
"id": 6847,
"id": 6830,
"type": 1,
"device": "华硕",
"deviceModel": "灵耀X14",
@ -8,7 +8,7 @@
"description": "清灰",
"workers": [],
"createdTime": "2024-03-07T19:52:48.523303",
"status": 5,
"status": 2,
"isConfirmed": false,
"notes": [
{

View File

@ -131,7 +131,9 @@ export default class DetailFramework extends Component<
</View>
) : (
<View style={{ padding: 10 }}>
<NoteList noteList={[this.state.notes[-1]]} />
<NoteList
noteList={[this.state.notes[this.state.notes.length - 1]]}
/>
</View>
)
) : (

View File

@ -16,7 +16,7 @@ import { submitTicket } from '@/service/submitTicket';
import type CustomTabBar from '@/custom-tab-bar';
import repairLogo from '@/assets/icons/RepairPage/repair.svg';
import DetailFramework from '@/components/DetailFramework/DetailFramework';
import { TicketListItem } from '@/components/TicketListItem/TicketListItem';
import { getCurrentTicket } from '@/service/currentTicket';
import './repair.scss';
interface RepairPageState {
@ -29,11 +29,22 @@ interface RepairPageState {
isLoading: boolean;
isDisable: boolean;
checkedList: Array<number>;
currentTicket: Array<TicketListItem>;
currentTicketsId: Array<number>;
}
const submitInterval = 5000;
const middleButton = <View></View>;
const isInfoShow = {
device: true,
createdTime: true,
description: false,
current: true,
notelist: true,
showAllNotes: false,
};
export default class RepairPage extends Component<{}, RepairPageState> {
state = {
type: 1 as 0 | 1,
@ -45,10 +56,12 @@ export default class RepairPage extends Component<{}, RepairPageState> {
isLoading: false,
isDisable: true,
checkedList: [0],
currentTicket: [],
currentTicketsId: [] as Array<number>,
};
componentDidMount(): void {
getCurrentTicket(this, middleButton, isInfoShow);
setTimeout(() => {
this.setState({
isDisable: false,
@ -149,19 +162,20 @@ export default class RepairPage extends Component<{}, RepairPageState> {
}
render(): ReactNode {
const middleButton = <View></View>;
const isInfoShow = {
device: true,
createdTime: true,
description: false,
current: true,
notelist: true,
showAllNotes: false,
};
const ticketsRenderer = this.state.currentTicketsId.map((id, idx) => (
<AtCard key={idx}>
<DetailFramework
id={id}
isInfoShow={isInfoShow}
middleButton={middleButton}
/>
</AtCard>
));
console.log(ticketsRenderer);
return (
<View>
<AtMessage />
{ticketsRenderer}
<AtCard
note={pt.get().repairPage.cardText.note}
title={pt.get().repairPage.cardText.title}

View File

@ -1,4 +1,10 @@
export interface RepairPageText {
currentTicket: {
errorMessage: string;
title: string;
note: string;
extra: string;
};
typeText: {
computer: string;
appliance: string;
@ -40,6 +46,12 @@ export interface RepairPageText {
}
export const repairPageZhCn: RepairPageText = {
currentTicket: {
errorMessage: '未获取到工单!',
title: '',
note: '',
extra: '',
},
typeText: {
computer: '电脑',
appliance: '电器',
@ -81,6 +93,12 @@ export const repairPageZhCn: RepairPageText = {
};
export const repairPageEnUs: RepairPageText = {
currentTicket: {
errorMessage: '未获取到工单!',
title: '',
note: '',
extra: '',
},
typeText: {
computer: 'Computer',
appliance: 'Appliance',

View File

@ -1,9 +1,11 @@
import RepairPage from '@/pages/repair/repair';
import Taro from '@tarojs/taro';
import { TicketListItem } from '@/components/TicketListItem/TicketListItem';
import pt from '@/plain-text';
import DetailFramework from '@/components/DetailFramework/DetailFramework';
import { getUrl } from '.';
export function getCurrentTicket(that: RepairPage) {
export function getCurrentTicket(that: RepairPage, middleButton, isInfoShow) {
Taro.request({
url: getUrl('/user/mytickets'),
method: 'GET',
@ -13,17 +15,21 @@ export function getCurrentTicket(that: RepairPage) {
})
.then((res) => {
const data = res.data.data;
const currentTicket: Array<TicketListItem> = [];
data.list.array.forEach((ticket: TicketListItem) => {
if (ticket['status'] != 5) {
currentTicket.push(ticket);
let newIdList: Array<number> = [];
data.list.map((ticket: TicketListItem) => {
if (ticket['status'] !== 5) {
newIdList.push(ticket.id);
}
});
that.setState({
currentTicket: currentTicket,
currentTicketsId: newIdList,
});
})
.catch((err) => {
console.log(err);
Taro.atMessage({
message: pt.get().button.submitText.error + err.toString(),
type: 'error',
});
});
}

View File

@ -13,20 +13,15 @@ export function getMyTicketList(that: MyTicketPage) {
},
})
.then((res) => {
let former = that.state.rs;
if (!res.data.success) {
that.setState({
rs: {
loading: false,
success: false,
},
rs: former.trans(false),
});
return;
}
that.setState({
rs: {
loading: false,
success: true,
},
rs: former.trans(true),
fixList: res.data.data.list.map(
(item) =>
new TicketListItem(
@ -40,11 +35,9 @@ export function getMyTicketList(that: MyTicketPage) {
});
})
.catch((reason) => {
let former = that.state.rs;
that.setState({
rs: {
loading: false,
success: false,
},
rs: former.trans(false),
});
console.log(reason);
});