Compare commits

..

No commits in common. "9931b23337698019523d75f56e784b120ccd2475" and "0dac2ad18584aba54b0d3ea443da4b1dc44fe55c" have entirely different histories.

26 changed files with 107 additions and 265 deletions

View File

@ -58,7 +58,6 @@
## 主页 ## 主页
1. 信息显示 1. 信息显示
1. 不显示是哪一班,只显示今日值班时间
2. (协会成员)相关信息 2. (协会成员)相关信息
3. 提醒事项 3. 提醒事项
4. 如何联系到协会 4. 如何联系到协会
@ -69,21 +68,8 @@
2. 维修进度提示 2. 维修进度提示
3. (面向协会成员)维修列表 3. (面向协会成员)维修列表
## 成员
1. 最近七天内未取回的工单列表
2. 值班组长上传本班相关信息
3. 现在自己是否要值班(值班时间显示)
## 我的 ## 我的
1. 更改手机号等个人信息(手机号可以填写多个) 1. 更改手机号等个人信息(手机号可以填写多个)
2. (备选)修改用户名、头像 2. (备选)修改用户名、头像
3. 设置真名(可帮助预填写工单) 3. 设置真名(可帮助预填写工单)
# 主席团管理页面
1. 值班表导入、更新
2. 成员权限管理
3. 特殊维修时间(如学园维修)、值班信息更新

View File

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

View File

@ -1,5 +1,5 @@
{ {
"id": 6830, "id": 6847,
"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": 2, "status": 5,
"isConfirmed": false, "isConfirmed": false,
"notes": [ "notes": [
{ {

View File

@ -1,7 +1,7 @@
{ {
"list": [ "list": [
{ {
"id": 6832, "id": 6830,
"type": 1, "type": 1,
"status": 2, "status": 2,
"device": "ROG", "device": "ROG",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -1,21 +1,14 @@
import { View } from '@tarojs/components'; import { View } from '@tarojs/components';
import { AtCard, AtSteps } from 'taro-ui';
import { Component, ReactNode } from 'react'; import { Component, ReactNode } from 'react';
import Taro from '@tarojs/taro'; import Taro from '@tarojs/taro';
import { import { TicketInfo, TicketNote } from '@/pages/TicketDetail/TicketNote';
ShowElements, import NoteList from '@/components/NoteList/NoteList';
TicketInfo, import PageFooter from '@/components/PageFooter/PageFooter';
TicketNote,
} from '@/pages/TicketDetail/TicketNote';
import pt from '@/plain-text'; import pt from '@/plain-text';
import { RequestState } from '@/service'; import { RequestState } from '@/service';
import { getTicketInfo } from '@/service/ticketsInfo'; import { getTicketInfo } from '@/service/ticketsInfo';
import { FixStatus } from '@/common'; import { FixStatus } from '@/common';
import { AtCard, AtSteps } from 'taro-ui';
import NoteList from '../NoteList/NoteList';
interface StepItemData {
title: string;
}
const mapStatusStep: Map<FixStatus, 0 | 1 | 2 | 3> = new Map([ const mapStatusStep: Map<FixStatus, 0 | 1 | 2 | 3> = new Map([
[1, 0], [1, 0],
@ -25,6 +18,10 @@ const mapStatusStep: Map<FixStatus, 0 | 1 | 2 | 3> = new Map([
[5, 3], [5, 3],
]); ]);
interface StepItemData {
title: string;
}
interface DetailFrameworkState { interface DetailFrameworkState {
current: number; current: number;
items: Array<StepItemData>; items: Array<StepItemData>;
@ -36,7 +33,6 @@ interface DetailFrameworkState {
interface DetailFrameworkProps { interface DetailFrameworkProps {
middleButton: JSX.Element; middleButton: JSX.Element;
id: number; id: number;
isInfoShow: { [key: string]: boolean };
} }
export default class DetailFramework extends Component< export default class DetailFramework extends Component<
@ -56,20 +52,16 @@ export default class DetailFramework extends Component<
Taro.setNavigationBarTitle({ Taro.setNavigationBarTitle({
title: navBar.ticketDetail, title: navBar.ticketDetail,
}); });
const items = pt.get().ticketDetail.stepItems;
this.setState({
items: items,
});
getTicketInfo(this, this.props.id); getTicketInfo(this, this.props.id);
} }
props: Readonly<DetailFrameworkProps> = { props: Readonly<DetailFrameworkProps> = {
middleButton: <View></View>, middleButton: <View></View>,
id: 0, id: 0,
isInfoShow: {
device: true,
createdTime: true,
description: true,
current: true,
notelist: true,
showAllNotes: true,
},
}; };
render(): ReactNode { render(): ReactNode {
@ -82,27 +74,18 @@ export default class DetailFramework extends Component<
const status = this.state.ticketInfo.status; const status = this.state.ticketInfo.status;
this.setState({ this.setState({
current: mapStatusStep.get(status) || 0, current: mapStatusStep.get(status) || 0,
items: pt.get().ticketDetail.stepItems,
}); });
const elements: ShowElements = { return (
device: this.props.isInfoShow['device'] ? ( <View>
<View className='at-article__h1'> <View className='at-article__h1'>
{this.state.ticketInfo.device + {this.state.ticketInfo.device +
' ' + ' ' +
this.state.ticketInfo.deviceModel} this.state.ticketInfo.deviceModel}
</View> </View>
) : (
<View></View>
),
createdTime: this.props.isInfoShow['createdTime'] ? (
<View className='at-article__info'> <View className='at-article__info'>
{pt.get().common.createdAtText(this.state.ticketInfo.createdTime)} {pt.get().common.createdAtText(this.state.ticketInfo.createdTime)}
</View> </View>
) : (
<View></View>
),
description: this.props.isInfoShow['description'] ? (
<View style={{ marginTop: 10, marginBottom: 10 }}> <View style={{ marginTop: 10, marginBottom: 10 }}>
<AtCard title={pt.get().ticketDetail.descTitle}> <AtCard title={pt.get().ticketDetail.descTitle}>
<View className='at-article__h3'> <View className='at-article__h3'>
@ -110,10 +93,6 @@ export default class DetailFramework extends Component<
</View> </View>
</AtCard> </AtCard>
</View> </View>
) : (
<View></View>
),
current: this.props.isInfoShow['current'] ? (
<View style={{ padding: 10 }}> <View style={{ padding: 10 }}>
<AtSteps <AtSteps
items={this.state.items} items={this.state.items}
@ -121,34 +100,13 @@ export default class DetailFramework extends Component<
onChange={() => {}} onChange={() => {}}
/> />
</View> </View>
) : (
<View></View>
),
notelist: this.props.isInfoShow['notelist'] ? (
this.props.isInfoShow['showAllNotes'] ? (
<View style={{ padding: 10 }}>
<NoteList noteList={this.state.notes} />
</View>
) : (
<View style={{ padding: 10 }}>
<NoteList
noteList={[this.state.notes[this.state.notes.length - 1]]}
/>
</View>
)
) : (
<View></View>
),
};
return (
<View>
{elements.device}
{elements.createdTime}
{elements.description}
{elements.current}
{this.props.middleButton} {this.props.middleButton}
{elements.notelist}
<View style={{ padding: 10 }}>
<NoteList noteList={this.state.notes} />
</View>
<PageFooter />
</View> </View>
); );
} }

View File

@ -1,3 +0,0 @@
export default {
component: true,
};

View File

@ -4,7 +4,6 @@ import { getCurrentInstance } from '@tarojs/runtime';
import pt from '@/plain-text'; import pt from '@/plain-text';
import { AtButton } from 'taro-ui'; import { AtButton } from 'taro-ui';
import DetailFramework from '@/components/DetailFramework/DetailFramework'; import DetailFramework from '@/components/DetailFramework/DetailFramework';
import PageFooter from '@/components/PageFooter/PageFooter';
interface TicketDetailState { interface TicketDetailState {
id: number; id: number;
@ -44,23 +43,9 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
</View> </View>
); );
const isInfoShow = {
device: true,
createdTime: true,
description: true,
current: true,
notelist: true,
showAllNotes: true,
};
return ( return (
<View> <View>
<DetailFramework <DetailFramework middleButton={middleButton} id={this.state.id} />
middleButton={middleButton}
id={this.state.id}
isInfoShow={isInfoShow}
/>
<PageFooter />
</View> </View>
); );
} }

View File

@ -18,12 +18,4 @@ export class TicketNote {
createdTime: moment.Moment; createdTime: moment.Moment;
} }
export class ShowElements {
device: JSX.Element;
createdTime: JSX.Element;
description: JSX.Element;
current: JSX.Element;
notelist: JSX.Element;
}
export type StatusStr = '1' | '2' | '3' | '4' | '5'; export type StatusStr = '1' | '2' | '3' | '4' | '5';

View File

@ -12,7 +12,6 @@ export default class TitleCard extends React.Component {
<Image <Image
style='width: 50px; height: 50px; margin-left: 15px;' style='width: 50px; height: 50px; margin-left: 15px;'
src={logo} src={logo}
mode='aspectFit'
/> />
</View> </View>
<View className='page-title'> <View className='page-title'>

View File

@ -15,8 +15,6 @@ import PageFooter from '@/components/PageFooter/PageFooter';
import { submitTicket } from '@/service/submitTicket'; 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 { getCurrentTicket } from '@/service/currentTicket';
import './repair.scss'; import './repair.scss';
interface RepairPageState { interface RepairPageState {
@ -29,22 +27,10 @@ interface RepairPageState {
isLoading: boolean; isLoading: boolean;
isDisable: boolean; isDisable: boolean;
checkedList: Array<number>; checkedList: Array<number>;
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,
@ -56,12 +42,9 @@ export default class RepairPage extends Component<{}, RepairPageState> {
isLoading: false, isLoading: false,
isDisable: true, isDisable: true,
checkedList: [0], checkedList: [0],
currentTicketsId: [] as Array<number>,
}; };
componentDidMount(): void { componentDidMount(): void {
getCurrentTicket(this, middleButton, isInfoShow);
setTimeout(() => { setTimeout(() => {
this.setState({ this.setState({
isDisable: false, isDisable: false,
@ -162,20 +145,9 @@ export default class RepairPage extends Component<{}, RepairPageState> {
} }
render(): ReactNode { render(): ReactNode {
const ticketsRenderer = this.state.currentTicketsId.map((id, idx) => (
<AtCard key={idx}>
<DetailFramework
id={id}
isInfoShow={isInfoShow}
middleButton={middleButton}
/>
</AtCard>
));
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

@ -6,8 +6,8 @@ import moment from 'moment';
import pt from '@/plain-text'; import pt from '@/plain-text';
import { RequestState } from '@/service'; import { RequestState } from '@/service';
import { getMyTicketList } from '@/service/myTicket'; import { getMyTicketList } from '@/service/myTicket';
import { TicketListItem } from '@/components/TicketListItem/TicketListItem';
import './myTicket.scss'; import './myTicket.scss';
import { TicketListItem } from './TicketListItem';
interface MyTicketState { interface MyTicketState {
fixList: Array<TicketListItem>; fixList: Array<TicketListItem>;

View File

@ -111,7 +111,6 @@ export default class UserPage extends Component {
onTap={this.onTapImage} onTap={this.onTapImage}
style='width: 100px;height: 100px;' style='width: 100px;height: 100px;'
src={logo} src={logo}
mode='aspectFit'
/> />
</View> </View>
<AtToast <AtToast

View File

@ -41,7 +41,7 @@ export const buttonEnUs: ButtonText = {
error: 'Error: ', error: 'Error: ',
}, },
loginText: { loginText: {
success: 'Login Success', success: '登录成功',
error: 'Login Failed', error: '登录失败',
}, },
}; };

View File

@ -23,10 +23,10 @@ export const informPageZhCn: InformPageText = {
export const informPageEnUs: InformPageText = { export const informPageEnUs: InformPageText = {
phoneText: { phoneText: {
title: 'Phone', title: 'Phone',
placeholder: 'Used for querying tickets', placeholder: '便于查询工单',
}, },
nameText: { nameText: {
title: 'Real Name', title: 'Real Name',
placeholder: '(Required) Bounded to your ticket', placeholder: '必填,与工单绑定',
}, },
}; };

View File

@ -97,21 +97,21 @@ export const mainPageZhCn: MainPageText = {
}; };
export const mainPageEnUs: MainPageText = { export const mainPageEnUs: MainPageText = {
mainTitleLine: 'Hi! This is EVA.', mainTitleLine: '您好这里是E志者协会',
subTitleLine: 'For maintenance, please go to [204 Lab, E3 building]', subTitleLine: '维修请至【东三-204】实验室',
cardTitle: { cardTitle: {
dutyInfo: 'Duty Situation', dutyInfo: '204 值班情况',
stepInfo: 'Maintenance Steps', stepInfo: '维修步骤',
tipsInfo: 'Tips', tipsInfo: '注意事项',
}, },
cardTips: { cardTips: {
dutyInfo: 'Tips: Please go to [Repair] and filling out tickets online.', dutyInfo: '提示:可以先前往【维修】页面,在线上预填写工单!',
stepInfo: 'Tips: Please retrieve your devices before 20:30!', stepInfo: '提示:请在 20:30 之前取走自己的物品哦!',
tipsInfo: '', tipsInfo: '',
}, },
expandTitle: { expandTitle: {
stepInfo: 'Check for maintenance steps', stepInfo: '查看维修步骤',
tipsInfo: 'Check for tips', tipsInfo: '查看注意事项',
}, },
extraInfo: { extraInfo: {
dutyInfo: '', dutyInfo: '',
@ -119,38 +119,38 @@ export const mainPageEnUs: MainPageText = {
tipsInfo: '', tipsInfo: '',
}, },
stepList: [ stepList: [
{ title: 'Filling out tickets online' }, { title: '线上填写工单' },
{ title: 'Go to [204 Lab, E3 building] for maintenance' }, { title: '去【东三-204】实验室维修电脑' },
{ title: 'Waiting for the device maintenance' }, { title: '等待电脑维修' },
{ title: 'The maintenance is over, retrieve the device' }, { title: '维修结束,取回电脑' },
], ],
tipsList: [ tipsList: [
{ title: 'Dell/Alienware, Surface, Apple cannot be dissassembled.' }, { title: '戴尔/外星人、Surface、苹果电脑不能拆机哦~' },
{ title: 'Data is priceless, please backup your data at any time!' }, { title: '数据无价,请随时做好数据备份哦~' },
{ title: '204 is also a laboratory. Do not eat inside.' }, { title: '204 也是实验室,请勿在内饮食~' },
{ title: 'We are volunteers and do not take any gifts.' }, { title: '我们是志愿服务,不收取任何礼物哦~' },
], ],
dutyCard: { dutyCard: {
offDuty: { offDuty: {
title: 'Off Duty', title: '未值班',
reason: (s) => 'Reason for cessation of duty: ' + s, reason: (s) => '值班停止原因:' + s,
recoverTime: (t) => 'Resumption of duty: ' + t, recoverTime: (t) => '恢复值班时间:' + t,
}, },
inDuty: { inDuty: {
title: 'On Duty', title: '值班中',
currentDutyText: (c) => { currentDutyText: (c) => {
switch (c) { switch (c) {
case 'off': case 'off':
return 'Currently not on duty'; return '当前未值班';
case '1': case '1':
return '1st Shift 13:30-16:00'; return '第一班 13:30-16:00';
case '2': case '2':
return '2nd Shift 16:00-18:00'; return '第二班 16:00-18:00';
case '3': case '3':
return '3rd Shift 18:00-20:30'; return '第三班 18:00-20:30';
} }
}, },
inDutyCnt: (n) => 'EVA members on duty: ' + n, inDutyCnt: (n) => '当前值班人数:' + n,
}, },
}, },
}; };

View File

@ -23,10 +23,10 @@ export const memberPageZhCn: MemberPageText = {
export const memberPageEnUs: MemberPageText = { export const memberPageEnUs: MemberPageText = {
stuidText: { stuidText: {
title: 'Student ID', title: 'Student ID',
placeholder: 'Consistent with EVA Auth', placeholder: '与统一身份认证学号一致',
}, },
passwdText: { passwdText: {
title: 'Password', title: 'Password',
placeholder: 'Consistent with EVA Auth', placeholder: '与 EVA 统一身份认证一致',
}, },
}; };

View File

@ -1,10 +1,4 @@
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;
@ -46,12 +40,6 @@ export interface RepairPageText {
} }
export const repairPageZhCn: RepairPageText = { export const repairPageZhCn: RepairPageText = {
currentTicket: {
errorMessage: '未获取到工单!',
title: '',
note: '',
extra: '',
},
typeText: { typeText: {
computer: '电脑', computer: '电脑',
appliance: '电器', appliance: '电器',
@ -93,48 +81,42 @@ export const repairPageZhCn: RepairPageText = {
}; };
export const repairPageEnUs: RepairPageText = { export const repairPageEnUs: RepairPageText = {
currentTicket: {
errorMessage: '未获取到工单!',
title: '',
note: '',
extra: '',
},
typeText: { typeText: {
computer: 'Computer', computer: '电脑',
appliance: 'Appliance', appliance: '电器',
}, },
deviceText: { deviceText: {
title: 'Brand', title: '设备品牌',
placeholder: 'e.g. ROG', placeholder: 'e.g. ROG',
}, },
deviceModelText: { deviceModelText: {
title: 'Device Model', title: '设备型号',
placeholder: 'e.g. Zephyrus G14 2022', placeholder: 'e.g. Zephyrus G14 2022',
}, },
ownerText: { ownerText: {
title: 'Name', title: '机主姓名',
placeholder: 'e.g. Dean Ma', placeholder: 'e.g. Dean Ma',
}, },
phoneText: { phoneText: {
title: 'Tel', title: '联系方式',
placeholder: 'e.g. 18888888888', placeholder: 'e.g. 18888888888',
}, },
descriptionText: { descriptionText: {
title: 'Problem Description', title: '问题描述',
placeholder: 'e.g. ZJUWLAN inaccessable', placeholder: 'e.g. ZJUWLAN 无法登入校内网站',
}, },
checkboxText: { checkboxText: {
none: 'None', none: '无附件',
usbDisk: 'USB Disk', usbDisk: 'U',
mouseOrReceiver: 'Mouse/Receiver', mouseOrReceiver: '鼠标/接收器',
powerAdapter: 'Power Adapter', powerAdapter: '电源适配器',
others: { others: {
label: 'Others', label: '其他',
desc: 'Please elaborate in the comments', desc: '请于评论中详述',
}, },
}, },
cardText: { cardText: {
note: 'Please keep the ticket description as short as possible', note: '工单描述请尽量简短哦!',
title: 'Pre-filling working tickets', title: '预填写工单',
}, },
}; };

View File

@ -9,5 +9,5 @@ export const reportPageZhCn: ReportPageText = {
export const reportPageEnUs: ReportPageText = { export const reportPageEnUs: ReportPageText = {
placeHolderText: placeHolderText:
'Feel free to post your suggestions about the weapp or about us!', '无论是有关于小程序的建议还是关于E志者协会的建议都可以提出来哦',
}; };

View File

@ -40,7 +40,7 @@ export const ticketDetailEnUs: TicketDetailText = {
{ title: 'Created' }, { title: 'Created' },
{ title: 'Repairing' }, { title: 'Repairing' },
{ title: 'Finished' }, { title: 'Finished' },
{ title: 'Retrieved' }, { title: 'Retrived' },
], ],
createTicketMessage: 'Created ticket', createTicketMessage: 'Created ticket',
statusModifyPrefix: 'Modified repair status to: ', statusModifyPrefix: 'Modified repair status to: ',
@ -48,10 +48,10 @@ export const ticketDetailEnUs: TicketDetailText = {
['1', 'Repairing'], ['1', 'Repairing'],
['2', '2(?)'], ['2', '2(?)'],
['3', '3(?)'], ['3', '3(?)'],
['4', 'Device to be retrieved'], ['4', 'Device to be taken home'],
['5', 'Ticket finished'], ['5', 'Ticket finished'],
]), ]),
descTitle: 'Problem description', descTitle: 'Problem description',
tookAway: 'Already retrieved', tookAway: 'Already took home',
addNote: 'Add a comment', addNote: 'Add a comment',
}; };

View File

@ -20,13 +20,13 @@ export const ticketListZhCn: TicketListText = {
export const ticketListEnUs: TicketListText = { export const ticketListEnUs: TicketListText = {
createdAt: (time) => { createdAt: (time) => {
return 'Created at' + ' ' + time; return '创建于' + ' ' + time;
}, },
statusMap: new Map([ statusMap: new Map([
[1, 'Created'], [1, '创建成功'],
[2, 'Repairing'], [2, '维修中'],
[3, 'Pending Retrieval'], [3, '待取回'],
[4, 'Retrieved'], [4, '已取回'],
[5, 'Retrieved'], [5, '已取回'],
]), ]),
}; };

View File

@ -54,27 +54,27 @@ export const userPageZhCn: UserPageText = {
export const userPageEnUs: UserPageText = { export const userPageEnUs: UserPageText = {
memberEntry: { memberEntry: {
front: 'Click ', front: '再点击 ',
behind: ' more times to enter member login page', behind: ' 次以进入协会成员登录页面',
}, },
ticketColumn: { ticketColumn: {
title: 'My Tickets', title: '我的工单',
note: 'View the history of your tickets here!', note: '在这里查看历史工单!',
}, },
infoColumn: { infoColumn: {
title: 'My Information', title: '我的信息',
note: 'It will help us contact you!', note: '能帮助亦可更好地找到你哦!',
}, },
settingsColumn: { settingsColumn: {
title: 'Settings', title: 'Settings',
note: 'Configure the applet here!', note: '在这里配置小程序',
}, },
reportColumn: { reportColumn: {
title: 'Report', title: '意见反馈',
note: 'Let us know if you have any suggestions!', note: '有什么想说的都可以告诉亦可哦!',
}, },
aboutColumn: { aboutColumn: {
title: 'About Us', title: '关于我们',
note: 'View developer information.', note: '查看开发者信息',
}, },
}; };

View File

@ -1,35 +0,0 @@
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, middleButton, isInfoShow) {
Taro.request({
url: getUrl('/user/mytickets'),
method: 'GET',
data: {
token: 'token_test',
},
})
.then((res) => {
const data = res.data.data;
let newIdList: Array<number> = [];
data.list.map((ticket: TicketListItem) => {
if (ticket['status'] !== 5) {
newIdList.push(ticket.id);
}
});
that.setState({
currentTicketsId: newIdList,
});
})
.catch((err) => {
console.log(err);
Taro.atMessage({
message: pt.get().button.submitText.error + err.toString(),
type: 'error',
});
});
}

View File

@ -1,5 +1,5 @@
import MyTicketPage from '@/pages/user/myTicket/myTicket'; import MyTicketPage from '@/pages/user/myTicket/myTicket';
import { TicketListItem } from '@/components/TicketListItem/TicketListItem'; import { TicketListItem } from '@/pages/user/myTicket/TicketListItem';
import Taro from '@tarojs/taro'; import Taro from '@tarojs/taro';
import moment from 'moment'; import moment from 'moment';
import { getUrl } from '.'; import { getUrl } from '.';
@ -13,15 +13,20 @@ 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: former.trans(false), rs: {
loading: false,
success: false,
},
}); });
return; return;
} }
that.setState({ that.setState({
rs: former.trans(true), rs: {
loading: false,
success: true,
},
fixList: res.data.data.list.map( fixList: res.data.data.list.map(
(item) => (item) =>
new TicketListItem( new TicketListItem(
@ -35,9 +40,11 @@ export function getMyTicketList(that: MyTicketPage) {
}); });
}) })
.catch((reason) => { .catch((reason) => {
let former = that.state.rs;
that.setState({ that.setState({
rs: former.trans(false), rs: {
loading: false,
success: false,
},
}); });
console.log(reason); console.log(reason);
}); });