page.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import React from 'react';
  2. import './index.less';
  3. import { Tabs } from 'antd-mobile';
  4. import Page from '@src/containers/Page';
  5. import Money from '../../../components/Money';
  6. import Button from '../../../components/Button';
  7. import { Course } from '../../../stores/course';
  8. export default class extends Page {
  9. initState() {
  10. return { tab: 'serviceContent' };
  11. }
  12. initData() {
  13. const { id } = this.params;
  14. Course.get(id).then(result => {
  15. this.setState({ data: result });
  16. });
  17. }
  18. buy() {
  19. }
  20. renderView() {
  21. const { data = {}, tab } = this.state;
  22. return (
  23. <div>
  24. <div className="b-g" style={{ backgroundImage: `url(${data.cover})` }}>
  25. <div className="title">{data.title}</div>
  26. </div>
  27. {/* <div className="tip">访问{UserUrl}/course/detail/{data.id},试听该课程</div> */}
  28. <div className="detail">
  29. <Tabs
  30. page={tab}
  31. tabs={[
  32. { title: '服务介绍', key: 'serviceContent' },
  33. { title: '适合人群呢', key: 'crowdContent' },
  34. { title: '授课流程', key: 'processContent' },
  35. { title: 'FAQs', key: 'faq' },
  36. { title: '用户评价', key: 'comment' },
  37. ]}
  38. onChange={(value) => {
  39. this.setState({ tab: value.key });
  40. }}
  41. />
  42. <div dangerouslySetInnerHTML={{ __html: data[tab] }} />
  43. </div>
  44. <div className="fixed">
  45. <div className="fee">
  46. 总额: <Money value={data.price} size="lager" />
  47. </div>
  48. <Button width={110} className="f-r" radius onClick={() => {
  49. this.buy();
  50. }}>
  51. 立即购买
  52. </Button>
  53. </div>
  54. </div>
  55. );
  56. }
  57. }