add request to repair page

This commit is contained in:
Dawn1Ocean
2024-03-12 02:25:58 +08:00
parent 9bd6c8f1b4
commit 946a312c61
3 changed files with 134 additions and 6 deletions
+60 -6
View File
@@ -1,14 +1,28 @@
import { View } from '@tarojs/components';
import { Component, ReactNode } from 'react';
import Taro from '@tarojs/taro';
import { AtForm, AtInput, AtButton, AtRadio } from 'taro-ui';
import { AtForm, AtInput, AtButton, AtRadio, AtCheckbox } from 'taro-ui';
import pt from '@/plain-text';
import type CustomTabBar from '../../custom-tab-bar';
import PageFooter from '@/components/PageFooter/PageFooter';
import { submitTicket } from '@/service/submitTicket';
import type CustomTabBar from '@/custom-tab-bar';
import './repair.scss';
export default class RepairPage extends Component {
interface RepairPageState {
type: 0 | 1;
device: string;
deviceModel: string;
owner: string;
phone: string;
description: string;
isLoading: boolean;
isDisable: boolean;
checkedList: Array<number>;
}
export default class RepairPage extends Component<{}, RepairPageState> {
state = {
type: 1,
type: 1 as 0 | 1,
device: '',
deviceModel: '',
owner: '',
@@ -16,6 +30,7 @@ export default class RepairPage extends Component {
description: '',
isLoading: false,
isDisable: false,
checkedList: [0],
};
// 以下是TabBar相关
pageCtx = Taro.getCurrentInstance().page;
@@ -25,7 +40,7 @@ export default class RepairPage extends Component {
}
// 以上是TabBar相关
handleTypeChange(type: number) {
handleTypeChange(type: 0 | 1) {
this.setState({
type: type,
});
@@ -67,7 +82,40 @@ export default class RepairPage extends Component {
return description;
}
onSubmit() {}
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<number>) {
this.setState({
checkedList: checkedList,
});
return checkedList;
}
onSubmit() {
submitTicket(this);
}
render(): ReactNode {
return (
@@ -131,6 +179,11 @@ export default class RepairPage extends Component {
value={this.state.description}
onChange={this.handleDescriptionChange.bind(this)}
/>
<AtCheckbox
options={this.checkboxOption}
selectedList={this.state.checkedList}
onChange={this.handleCheckboxChange.bind(this)}
/>
<AtButton
loading={this.state.isLoading}
formType='submit'
@@ -140,6 +193,7 @@ export default class RepairPage extends Component {
{pt.get().button.buttonText.submit}
</AtButton>
</AtForm>
<PageFooter />
</View>
);
}