index.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import React from 'react';
  2. import { Tooltip } from 'antd';
  3. import './index.less';
  4. import Assets from '@src/components/Assets';
  5. import Module from '../Module';
  6. import ProgressButton from '../ProgressButton';
  7. import Button from '../Button';
  8. function Panel(props) {
  9. const { style, message, data = {}, col = 3, title, onClick } = props;
  10. return (
  11. <Module style={style} className="panel">
  12. <div className="header">
  13. <span>{title}</span>
  14. <Tooltip title={message} trigger="click">
  15. <Assets className="qa" name="QA" svg />
  16. </Tooltip>
  17. </div>
  18. <div className="body">
  19. <div className="chart-info">
  20. <div className="chart" />
  21. <div className="info">
  22. {(data.info || []).map(row => {
  23. return (
  24. <div className="item">
  25. <div className="title">{row.title}</div>
  26. <div className="data">
  27. <span className="text">{row.number}</span>
  28. {row.unit}
  29. </div>
  30. </div>
  31. );
  32. })}
  33. </div>
  34. </div>
  35. <div className={`list col-${col}`}>
  36. {(data.children || []).map(item => {
  37. return (
  38. <ProgressButton
  39. className="item"
  40. progress={item.progress}
  41. onClick={() => {
  42. if (onClick) onClick(item);
  43. }}
  44. >
  45. {item.title}
  46. </ProgressButton>
  47. );
  48. })}
  49. </div>
  50. </div>
  51. </Module>
  52. );
  53. }
  54. Panel.propTypes = {};
  55. export default Panel;
  56. export function TotalPanel(props) {
  57. const { style, title, lock, data = {} } = props;
  58. return (
  59. <Module style={style} className="panel total-panel">
  60. <div className="header">
  61. <span>{title}</span>
  62. {lock && <Assets name="lock" />}
  63. </div>
  64. <div className="body">
  65. <div className="chart-info">
  66. <div className="chart" />
  67. <div className="info">
  68. {(data.info || []).map(row => {
  69. return (
  70. <div className="item">
  71. <div className="title">{row.title}</div>
  72. <div className="data">
  73. <span className="text">{row.number}</span>
  74. {row.unit}
  75. </div>
  76. </div>
  77. );
  78. })}
  79. <div className="date">有效期至:2019-11-13</div>
  80. </div>
  81. </div>
  82. </div>
  83. </Module>
  84. );
  85. }
  86. export function WaitPanel(props) {
  87. const { style, title } = props;
  88. return (
  89. <Module style={style} className="panel wait-panel">
  90. <div className="header">
  91. <span>{title}</span>
  92. <Assets name="lock" />
  93. </div>
  94. <div className="body">
  95. <div className="title">请于20190-07-05前开通</div>
  96. <div className="btn">
  97. <Button size="lager" width={120} radius>
  98. 立即开通
  99. </Button>
  100. </div>
  101. </div>
  102. </Module>
  103. );
  104. }
  105. export function BuyPanel(props) {
  106. const { style, title } = props;
  107. return (
  108. <Module style={style} className="panel buy-panel">
  109. <div className="header">
  110. <span>{title}</span>
  111. <Assets name="lock" />
  112. </div>
  113. <div className="body">
  114. <Assets name="banner_1" />
  115. <Button radius size="small" width={80}>
  116. 立即购买
  117. </Button>
  118. </div>
  119. </Module>
  120. );
  121. }