import React from 'react'; import './index.less'; import Page from '@src/containers/Page'; import Assets from '@src/components/Assets'; import { getMap, formatDate } from '@src/services/Tools'; import Checkbox from '../../../components/CheckBox'; import Button from '../../../components/Button'; import Icon from '../../../components/Icon'; import { Order } from '../../../stores/order'; import { ServiceKey } from '../../../../Constant'; const ServiceKeyMap = getMap(ServiceKey, 'value', 'label'); export default class extends Page { initState() { return { state: 'open' }; } initData() { const { id } = this.params; Order.getRecord(id) .then(result => { if (result.isUse) { this.setState({ state: 'finish', data: result }); return; } this.setState(result); }); } submit() { Order.useRecord(this.params.id) .then((result) => { this.setState({ state: 'finish', data: result }); }); } renderView() { const { state } = this.state; switch (state) { case 'finish': return this.renderFinish(); default: return this.renderOpen(); } } renderOpen() { const { productType } = this.state; if (productType === 'service') { return this.renderService(); } return this.renderCourse(); } renderCourse() { const { course = {}, endTime } = this.state; if (!endTime) return null; return ( <div> <div className="icon"> <Assets name="img3" /> </div> <div className="title">您正在开通“{course.data}”</div> <div className="tip">有效期至:{endTime && formatDate(endTime, 'YYYY-MM-DD')}</div> <Button block radius onClick={() => { this.submit(); }}> 立即开通 </Button> <div className="no" onClick={() => { goBack(); }}>暂不开通</div> </div> ); } renderService() { const { service, endTime } = this.state; if (!endTime) return null; return ( <div> <div className="icon"> <Assets name="img3" /> </div> <div className="title">您正在开通“{ServiceKeyMap[service]}”服务</div> <div className="tip">有效期至:{endTime && formatDate(endTime, 'YYYY-MM-DD')}</div> {service === 'textbook' && <div className="check"> <Checkbox checked={!!this.state.checked} onClick={() => { this.setState({ checked: !this.state.checked }); }} /> <span>邮箱订阅机经</span> </div>} <Button block radius onClick={() => { this.submit(); }}> 立即开通 </Button> <div className="no" onClick={() => { goBack(); }}>暂不开通</div> </div> ); } renderFinish() { const { data } = this.state; return ( <div className="finish"> <div className="icon"> <Icon type="check-circle" /> </div> <div className="title">开通成功!</div> <div className="desc">生效时间:{data.useStartTime && formatDate(data.useStartTime, 'YYYY-MM-DD')}</div> </div> ); } }