page.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. import React from 'react';
  2. import './index.less';
  3. import { Link } from 'react-router-dom';
  4. import Page from '@src/containers/Page';
  5. import { Checkbox } from 'antd';
  6. // import Assets from '@src/components/Assets';
  7. // import { getMap, formatDate } from '@src/services/Tools';
  8. import Button from '../../../components/Button';
  9. import Money from '../../../components/Money';
  10. import { Order } from '../../../stores/order';
  11. import { Main } from '../../../stores/main';
  12. // import { ServiceKey } from '../../../../Constant';
  13. // const ServiceKeyMap = getMap(ServiceKey, 'value', 'label');
  14. export default class extends Page {
  15. initState() {
  16. return {};
  17. }
  18. initData() {
  19. const { id } = this.params;
  20. Order.getOrder(id).then(result => {
  21. this.setState({ data: result });
  22. });
  23. Main.getContract('course').then(result => {
  24. this.setState({ contract: result });
  25. });
  26. }
  27. pay() {
  28. const { id } = this.params;
  29. Order.wechatJs(id).then(() => {});
  30. }
  31. renderView() {
  32. const { productType } = this.state;
  33. let info = '';
  34. if (productType === 'data') {
  35. info = this.renderData();
  36. }
  37. if (productType === 'course_package') {
  38. info = this.renderCoursePackage();
  39. } else {
  40. info = this.renderSingle();
  41. }
  42. info = this.renderData();
  43. return (
  44. <div className="detail">
  45. <div className="title" style={{ marginBottom: 0 }}>
  46. 商品信息
  47. </div>
  48. {info}
  49. <div className="title">退款政策</div>
  50. <div className="desc">本产品为虚拟产品,购买成功后不支持退款。</div>
  51. <div className="title">版权说明</div>
  52. <div className="desc">本商品仅限购买者本人使用,不可商用和传播。</div>
  53. <div className="agree">
  54. <Checkbox />
  55. 我已阅读并同意 <Link to="">千行课程购买协议</Link>
  56. </div>
  57. <div className="fixed">
  58. <div className="tip">*若在购买过程中遇到问题,请联系千行小助手协助解决</div>
  59. <div className="fee">
  60. 应付: <Money value={1000} size="lager" />
  61. </div>
  62. <Button
  63. width={110}
  64. className="f-r"
  65. radius
  66. onClick={() => {
  67. this.buy();
  68. }}
  69. >
  70. 立即购买
  71. </Button>
  72. </div>
  73. </div>
  74. );
  75. }
  76. renderData() {
  77. return (
  78. <div className="info data">
  79. <div className="info-block">
  80. XXXXXX资料 <Money className="f-r" value={300} />
  81. </div>
  82. <div className="info-block">
  83. <div className="info-item">
  84. OG 20 语法 SC <span className="f-r">开通有效期: 3个月 使用有效期: 3个月</span>
  85. </div>
  86. <div className="info-item">
  87. OG 20 语法 SC <span className="f-r">开通有效期: 3个月 使用有效期: 3个月</span>
  88. </div>
  89. <div className="info-item">
  90. OG 20 语法 SC <span className="f-r">开通有效期: 3个月 使用有效期: 3个月</span>
  91. </div>
  92. </div>
  93. </div>
  94. );
  95. }
  96. renderCoursePackage() {
  97. return (
  98. <div className="info course-package">
  99. <div className="info-block">
  100. OG 20套餐 <Money className="f-r" value={300} />
  101. </div>
  102. <div className="info-block">
  103. 开通有效期 <span className="f-r">3个月</span>
  104. </div>
  105. <div className="info-block">
  106. 使用有效期 <span className="f-r">3个月</span>
  107. </div>
  108. </div>
  109. );
  110. }
  111. renderSingle() {
  112. return (
  113. <div className="info single">
  114. <div className="info-block">
  115. OG 20套餐 <Money className="f-r" value={300} />
  116. </div>
  117. <div className="info-block">
  118. 开通有效期 <span className="f-r">3个月</span>
  119. </div>
  120. <div className="info-block">
  121. 使用有效期 <span className="f-r">3个月</span>
  122. </div>
  123. </div>
  124. );
  125. }
  126. }