add change inDutyCnt button and service
This commit is contained in:
@@ -62,6 +62,11 @@ class Card extends Component {
|
||||
}
|
||||
|
||||
export class MemberDutyInfo extends Component {
|
||||
state: {
|
||||
isLoading: false;
|
||||
isDisable: false;
|
||||
};
|
||||
|
||||
props = {
|
||||
data: new MemberDutyData(),
|
||||
};
|
||||
@@ -88,12 +93,19 @@ export class MemberDutyInfo extends Component {
|
||||
return (
|
||||
<View>
|
||||
<Card isInDuty={data.isInDuty} />
|
||||
<AtTimeline
|
||||
items={[
|
||||
{ title: id.currentDutyText(data.currentDuty || 'off') },
|
||||
{ title: id.inDutyCnt(data.inDutyCnt as number) },
|
||||
]}
|
||||
/>
|
||||
<View
|
||||
style={{
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
}}
|
||||
>
|
||||
<AtTimeline
|
||||
items={[
|
||||
{ title: id.currentDutyText(data.currentDuty || 'off') },
|
||||
{ title: id.inDutyCnt(data.inDutyCnt as number) },
|
||||
]}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { View } from '@tarojs/components';
|
||||
import { Component, ReactNode } from 'react';
|
||||
import { AtAccordion, AtButton, AtCard, AtList } from 'taro-ui';
|
||||
import { AtAccordion, AtButton, AtCard, AtInputNumber, AtList } from 'taro-ui';
|
||||
import Taro from '@tarojs/taro';
|
||||
import pt from '@/plain-text';
|
||||
import { getUncompletedTicketList } from '@/service/uncompletedTicket';
|
||||
@@ -10,11 +10,14 @@ import { RequestState } from '@/service';
|
||||
import moment from 'moment';
|
||||
import { getMemberDutyInfo } from '@/service/memberDutyInfo';
|
||||
import PageFooter from '@/components/PageFooter/PageFooter';
|
||||
import { changeDutyCnt } from '@/service/changeDutyCount';
|
||||
import './member.scss';
|
||||
import { MemberDutyData, MemberDutyInfo } from './MemberDutyInfo';
|
||||
import { MemberStepInfo, MemberTipsInfo } from './MemberStepTipsInfo';
|
||||
import MemberTitleCard from './MemberTitleCard';
|
||||
|
||||
const submitInterval = 5000;
|
||||
|
||||
class CardContent {
|
||||
title: string;
|
||||
note: string;
|
||||
@@ -64,15 +67,18 @@ interface MemberPageState {
|
||||
fixList: Array<TicketListItem>;
|
||||
rs: RequestState;
|
||||
dutyData: MemberDutyData;
|
||||
inDutyCnt: number;
|
||||
dutyInfoCard: CardContent;
|
||||
stepInfoCard: CardContent;
|
||||
tipsInfoCard: CardContent;
|
||||
//rs: RequestState;
|
||||
isLoading: boolean;
|
||||
isDisable: boolean;
|
||||
}
|
||||
|
||||
export default class MemberPage extends Component<{}, MemberPageState> {
|
||||
state = {
|
||||
dutyData: new MemberDutyData(),
|
||||
inDutyCnt: 0,
|
||||
dutyInfoCard: {
|
||||
title: pt.get().mainPage.cardTitle.dutyInfo,
|
||||
note: pt.get().mainPage.cardTips.dutyInfo,
|
||||
@@ -91,9 +97,10 @@ export default class MemberPage extends Component<{}, MemberPageState> {
|
||||
extra: pt.get().mainPage.extraInfo.dutyInfo,
|
||||
content: () => <MemberTipsInfo />,
|
||||
},
|
||||
// rs: new RequestState(),
|
||||
fixList: [new TicketListItem(0, '', '', 1, moment())],
|
||||
rs: new RequestState(),
|
||||
isLoading: false,
|
||||
isDisable: false,
|
||||
};
|
||||
|
||||
componentDidMount(): void {
|
||||
@@ -112,6 +119,25 @@ export default class MemberPage extends Component<{}, MemberPageState> {
|
||||
}
|
||||
// 以上是TabBar相关
|
||||
|
||||
handleCnt(inDutyCnt: number) {
|
||||
this.setState({
|
||||
inDutyCnt: inDutyCnt,
|
||||
});
|
||||
return inDutyCnt;
|
||||
}
|
||||
|
||||
onChangeCnt() {
|
||||
this.setState({
|
||||
isDisable: true,
|
||||
});
|
||||
changeDutyCnt(this);
|
||||
setTimeout(() => {
|
||||
this.setState({
|
||||
isDisable: false,
|
||||
});
|
||||
}, submitInterval);
|
||||
}
|
||||
|
||||
render(): ReactNode {
|
||||
const memberPage = pt.get().memberPage;
|
||||
if (this.state.rs.loading) {
|
||||
@@ -128,6 +154,56 @@ export default class MemberPage extends Component<{}, MemberPageState> {
|
||||
<View style={{ marginTop: '60rpx' }}>
|
||||
{memberPageCard(this.state.dutyInfoCard)}
|
||||
{memberPageCard(this.state.tipsInfoCard)}
|
||||
{this.state.dutyData.isInDuty ? (
|
||||
<ExpandItem
|
||||
title={memberPage.expandTitle.admin}
|
||||
content={
|
||||
<View
|
||||
style={{
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
marginBottom: '40rpx',
|
||||
}}
|
||||
>
|
||||
<View
|
||||
className='.at-article__h3'
|
||||
style={{
|
||||
marginTop: '40rpx',
|
||||
}}
|
||||
>
|
||||
{pt.get().memberPage.dutyCount.text}
|
||||
</View>
|
||||
<View
|
||||
style={{
|
||||
marginTop: '40rpx',
|
||||
}}
|
||||
>
|
||||
<AtInputNumber
|
||||
type='number'
|
||||
min={0}
|
||||
max={10}
|
||||
step={1}
|
||||
value={this.state.inDutyCnt}
|
||||
onChange={this.handleCnt.bind(this)}
|
||||
/>
|
||||
</View>
|
||||
<View style={{ marginLeft: 'auto', marginTop: '40rpx' }}>
|
||||
<AtButton
|
||||
type='secondary'
|
||||
size='small'
|
||||
loading={this.state.isLoading}
|
||||
disabled={this.state.isDisable}
|
||||
onClick={this.onChangeCnt.bind(this)}
|
||||
>
|
||||
{pt.get().memberPage.dutyCount.button}
|
||||
</AtButton>
|
||||
</View>
|
||||
</View>
|
||||
}
|
||||
/>
|
||||
) : (
|
||||
<View></View>
|
||||
)}
|
||||
<ExpandItem
|
||||
title={memberPage.expandTitle.stepInfo}
|
||||
content={memberPageCard(this.state.stepInfoCard)}
|
||||
|
||||
Reference in New Issue
Block a user