1
0

page.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import React from 'react';
  2. import './index.less';
  3. import Page from '@src/containers/Page';
  4. import Money from '../../../components/Money';
  5. import Button from '../../../components/Button';
  6. import { SpecialRadioGroup } from '../../../components/Radio';
  7. import { Main } from '../../../stores/main';
  8. import { Order } from '../../../stores/order';
  9. import { ServiceParamMap } from '../../../../Constant';
  10. export default class extends Page {
  11. initState() {
  12. return {
  13. index: 0,
  14. };
  15. }
  16. initData() {
  17. const { service } = this.params;
  18. Main.getService(service)
  19. .then(result => {
  20. result.package = (result.package || []).map((row, index) => {
  21. row.label = `¥${row.price}/${row.title}`;
  22. row.value = index;
  23. return row;
  24. });
  25. this.setState({ data: result });
  26. });
  27. }
  28. buy() {
  29. const { service } = this.params;
  30. const { index } = this.state;
  31. const param = ServiceParamMap[service] ? ServiceParamMap[service][index].value : '';
  32. Order.speedPay({ productType: 'service', service, param });
  33. }
  34. // expire_info: '',
  35. renderView() {
  36. const { data = {}, index } = this.state;
  37. data.package = data.package || [];
  38. const item = data.package[index] || {};
  39. return (
  40. <div>
  41. <div className="b-g" style={{ backgroundImage: `url(${data.image})` }}>
  42. <div className="title">{item.title}</div>
  43. </div>
  44. <div className="detail">
  45. {data.package.length > 1 && <div className="title">可选套餐</div>}
  46. {data.package.length > 1 && (
  47. <SpecialRadioGroup
  48. theme="theme"
  49. list={data.package}
  50. value={index}
  51. onChange={value => this.setState({ index: value })}
  52. />
  53. )}
  54. {data.package.length > 1 && <div className="division" />}
  55. <div className="title">服务介绍</div>
  56. <h3>服务</h3>
  57. <p>
  58. {item.description} {item.expire_info}
  59. </p>
  60. <h3>退款政策</h3>
  61. <p>{item.refund_policy}</p>
  62. <h3>版权说明</h3>
  63. <p>{item.copyright_nnotes}</p>
  64. </div>
  65. <div className="fixed">
  66. <div className="fee">
  67. 总额: <Money value={item.price} size="lager" />
  68. </div>
  69. <Button
  70. width={110}
  71. className="f-r"
  72. radius
  73. onClick={() => {
  74. this.buy();
  75. }}
  76. >
  77. 立即购买
  78. </Button>
  79. </div>
  80. </div>
  81. );
  82. }
  83. }