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, "id": 6830,
"type": 1, "type": 1,
"status": 5, "status": 2,
"device": "主机", "device": "主机",
"deviceModel": "技嘉", "deviceModel": "技嘉",
"owner": "武技栏", "owner": "武技栏",

View File

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

View File

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

View File

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

View File

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

View File

@ -1,9 +1,11 @@
import RepairPage from '@/pages/repair/repair'; import RepairPage from '@/pages/repair/repair';
import Taro from '@tarojs/taro'; import Taro from '@tarojs/taro';
import { TicketListItem } from '@/components/TicketListItem/TicketListItem'; import { TicketListItem } from '@/components/TicketListItem/TicketListItem';
import pt from '@/plain-text';
import DetailFramework from '@/components/DetailFramework/DetailFramework';
import { getUrl } from '.'; import { getUrl } from '.';
export function getCurrentTicket(that: RepairPage) { export function getCurrentTicket(that: RepairPage, middleButton, isInfoShow) {
Taro.request({ Taro.request({
url: getUrl('/user/mytickets'), url: getUrl('/user/mytickets'),
method: 'GET', method: 'GET',
@ -13,17 +15,21 @@ export function getCurrentTicket(that: RepairPage) {
}) })
.then((res) => { .then((res) => {
const data = res.data.data; const data = res.data.data;
const currentTicket: Array<TicketListItem> = []; let newIdList: Array<number> = [];
data.list.array.forEach((ticket: TicketListItem) => { data.list.map((ticket: TicketListItem) => {
if (ticket['status'] != 5) { if (ticket['status'] !== 5) {
currentTicket.push(ticket); newIdList.push(ticket.id);
} }
}); });
that.setState({ that.setState({
currentTicket: currentTicket, currentTicketsId: newIdList,
}); });
}) })
.catch((err) => { .catch((err) => {
console.log(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) => { .then((res) => {
let former = that.state.rs;
if (!res.data.success) { if (!res.data.success) {
that.setState({ that.setState({
rs: { rs: former.trans(false),
loading: false,
success: false,
},
}); });
return; return;
} }
that.setState({ that.setState({
rs: { rs: former.trans(true),
loading: false,
success: true,
},
fixList: res.data.data.list.map( fixList: res.data.data.list.map(
(item) => (item) =>
new TicketListItem( new TicketListItem(
@ -40,11 +35,9 @@ export function getMyTicketList(that: MyTicketPage) {
}); });
}) })
.catch((reason) => { .catch((reason) => {
let former = that.state.rs;
that.setState({ that.setState({
rs: { rs: former.trans(false),
loading: false,
success: false,
},
}); });
console.log(reason); console.log(reason);
}); });