import React from 'react'; import './index.less'; import { Tabs } from 'antd-mobile'; import Page from '@src/containers/Page'; import { formatDate } from '@src/services/Tools'; import Button from '../../../components/Button'; import { Textbook } from '../../../stores/textbook'; import { TextbookSubject } from '../../../../Constant'; const TextbookSubjectTabs = TextbookSubject.map(row => { return { title: row.label, key: row.value, }; }); export default class extends Page { initState() { return { tab: TextbookSubjectTabs[0], day: 0, }; } initData() { Textbook.getInfo() .then(result => { result.day = parseInt((new Date().getTime() - new Date(result.latest.startDate).getTime()) / 86400000, 10); this.setState(result); }); this.refreshTab(this.state.tab); } refreshTab(tab) { this.setState({ tab }); Textbook.allHistory(tab.key).then(result => { result = result.map(row => { row.version = row[`${tab.key}Version`]; row.content = row[`${tab.key}Content`]; row.createTime = formatDate(row.createTime, 'YYYY-MM-DD HH:mm:ss'); return row; }); this.setState({ list: result }); }); } renderView() { const { latest = {}, hasService, tab, day } = this.state; return ( <div> <div className="tip">最近换库时间:{latest.startDate ? formatDate(latest.startDate, 'YYYY-MM-DD') : ''},已换库{day}天。</div> <Tabs page={tab.key} tabs={TextbookSubjectTabs} onChange={(v) => { this.refreshTab(v); }} /> <div>{hasService ? this.renderList() : this.renderEmpty()}</div> <div className="fixed"> <Button block disabled={!hasService} size="lager" onClick={() => { linkTo(`/textbook/detail/${tab.key}`); }}> 查阅机经 </Button> </div> </div> ); } renderList() { const { list = [] } = this.state; return ( <div className="list"> <div className="log-title">更新日志</div> {list.map(row => { return <div className="item"> <div className="title"> 版本{row.version}<span className="date">{row.createTime}</span> </div> <div className="desc" >{row.content}</div> </div>; })} </div> ); } renderEmpty() { const { unUseRecord } = this.state; if (unUseRecord) { return <div className="empty"> <div className="text"> 还未开通本月机经。 <br /> 您可至千行网站「我的-工具」查看往期机经。 </div> <Button block width={120} radius onClick={() => { linkTo(`/open/${unUseRecord.id}`); }}> 去开通 </Button> </div>; } return ( <div className="empty"> <div className="text"> 还未购买本月机经。 <br /> 您可至千行网站「我的-工具」查看往期机经。 </div> <Button block width={120} radius onClick={() => { linkTo('/product/service/textbook'); }}> 去购买 </Button> </div> ); } }