import { View } from '@tarojs/components'; import { Component, ReactNode } from 'react'; import Taro from '@tarojs/taro'; import { AtForm, AtInput, AtButton, AtCheckbox, AtCard, AtSegmentedControl, AtMessage, } from 'taro-ui'; import pt from '@/plain-text'; import PageFooter from '@/components/PageFooter/PageFooter'; 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 { getCurrentTicket } from '@/service/currentTicket'; import { randomInt } from '@/utils/random'; import './repair.scss'; interface RepairPageState { type: 0 | 1; device: string; deviceModel: string; owner: string; phone: string; description: string; isLoading: boolean; isDisable: boolean; checkedList: Array; currentTicketsIdName: Array>; } const submitInterval = 5000; const middleButton = ; 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, device: '', deviceModel: '', owner: '', phone: '', description: '', isLoading: false, isDisable: true, checkedList: [0], currentTicketsIdName: [] as Array>, }; componentDidMount(): void { getCurrentTicket(this); setTimeout(() => { this.setState({ isDisable: false, }); }, submitInterval); } // 以下是TabBar相关 pageCtx = Taro.getCurrentInstance().page; componentDidShow() { const tabbar = Taro.getTabBar(this.pageCtx); tabbar?.setSelected(1); } // 以上是TabBar相关 handleTypeChange(type: 0 | 1) { this.setState({ type: type, }); return type; } handleDeviceChange(device: string) { this.setState({ device: device, }); return device; } handleDeviceModelChange(deviceModel: string) { this.setState({ deviceModel: deviceModel, }); return deviceModel; } handleOwnerChange(owner: string) { this.setState({ owner: owner, }); return owner; } handlePhoneChange(phone: string) { this.setState({ phone: phone, }); return phone; } handleDescriptionChange(description: string) { this.setState({ description: description, }); return description; } checkboxOption = [ { value: 0, label: pt.get().repairPage.checkboxText.none, }, { value: 1, label: pt.get().repairPage.checkboxText.usbDisk, }, { value: 2, label: pt.get().repairPage.checkboxText.mouseOrReceiver, }, { value: 3, label: pt.get().repairPage.checkboxText.powerAdapter, }, { value: 4, label: pt.get().repairPage.checkboxText.others.label, desc: pt.get().repairPage.checkboxText.others.desc, }, ]; handleCheckboxChange(checkedList: Array) { this.setState({ checkedList: checkedList, }); return checkedList; } onSubmit() { this.setState({ isLoading: true, isDisable: true, }); submitTicket(this); Taro.reLaunch({ url: '/pages/repair/repair', }); } render(): ReactNode { const ticketsRenderer = this.state.currentTicketsIdName.map((pair, idx) => ( { Taro.navigateTo({ url: '/pages/TicketDetail/TicketDetail?id=' + pair.keys()[0], }); }} note={ pt.get().tips.tipsText[ randomInt(0, pt.get().tips.tipsText.length - 1) ] } > )); return ( {ticketsRenderer} {pt.get().button.buttonText.submit} ); } }