1
0

page.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import React from 'react';
  2. import './index.less';
  3. import { Tabs } from 'antd-mobile';
  4. import Page from '@src/containers/Page';
  5. import { formatDate } from '@src/services/Tools';
  6. import Button from '../../../components/Button';
  7. import { Textbook } from '../../../stores/textbook';
  8. import { TextbookSubject } from '../../../../Constant';
  9. const TextbookSubjectTabs = TextbookSubject.map(row => {
  10. return {
  11. title: row.label,
  12. key: row.value,
  13. };
  14. });
  15. export default class extends Page {
  16. initState() {
  17. return {
  18. tab: TextbookSubjectTabs[0],
  19. day: 0,
  20. };
  21. }
  22. initData() {
  23. Textbook.getInfo()
  24. .then(result => {
  25. result.day = parseInt((new Date().getTime() - new Date(result.latest.startDate).getTime()) / 86400000, 10);
  26. result.hasService = true;
  27. this.setState(result);
  28. });
  29. this.refreshTab(this.state.tab);
  30. }
  31. refreshTab(tab) {
  32. this.setState({ tab });
  33. Textbook.listHistory(tab.key).then(result => {
  34. this.setState({ list: result });
  35. });
  36. }
  37. renderView() {
  38. const { latest = {}, hasService, tab, day } = this.state;
  39. return (
  40. <div>
  41. <div className="tip">最近换库时间:{latest.startDate ? formatDate(latest.startDate, 'YYYY-MM-DD') : ''},已换库{day}天。</div>
  42. <Tabs page={tab.key} tabs={TextbookSubjectTabs} onChange={(v) => {
  43. linkTo('/textbook/detail');
  44. this.refreshTab(v);
  45. }} />
  46. <div>{hasService ? this.renderList() : this.renderEmpty()}</div>
  47. <div className="fixed">
  48. <Button block disabled={!hasService} size="lager" onClick={() => {
  49. console.log(1);
  50. linkTo('/textbook/detail');
  51. }}>
  52. 查阅机经
  53. </Button>
  54. </div>
  55. </div>
  56. );
  57. }
  58. renderList() {
  59. const { list = [] } = this.state;
  60. return (
  61. <div className="list">
  62. <div className="log-title">更新日志</div>
  63. {list.map(row => {
  64. return <div className="item">
  65. <div className="title">
  66. 版本{row.version}<span className="date">{formatDate(row.createTime)}</span>
  67. </div>
  68. <div className="desc" dangerouslySetInnerHTML={{ __html: row.content }} />
  69. </div>;
  70. })}
  71. </div>
  72. );
  73. }
  74. renderEmpty() {
  75. const { unUseRecord } = this.state;
  76. if (unUseRecord > 0) {
  77. return <div className="empty">
  78. <div className="text">
  79. 还未开通本月机经。 <br />
  80. 您可至千行网站「我的-工具」查看往期机经。
  81. </div>
  82. <Button block width={120} radius onClick={() => {
  83. linkTo(`/open/${unUseRecord}`);
  84. }}>
  85. 去开通
  86. </Button>
  87. </div>;
  88. }
  89. return (
  90. <div className="empty">
  91. <div className="text">
  92. 还未购买本月机经。 <br />
  93. 您可至千行网站「我的-工具」查看往期机经。
  94. </div>
  95. <Button block width={120} radius onClick={() => {
  96. linkTo('/product/service/textbook');
  97. }}>
  98. 去购买
  99. </Button>
  100. </div>
  101. );
  102. }
  103. }