index.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. import React, { Component } from 'react';
  2. import './index.less';
  3. import { Popover } from 'antd';
  4. import { Carousel } from 'antd-mobile';
  5. import Assets from '@src/components/Assets';
  6. import { formatDate } from '@src/services/Tools';
  7. import Button from '../Button';
  8. export class CommentFalls extends Component {
  9. createLayout() {
  10. const msnry = new Masonry('.comment-falls', {
  11. itemSelector: '.grid-item',
  12. });
  13. msnry.layout();
  14. }
  15. render() {
  16. const { list = [] } = this.props;
  17. return (
  18. <div className="comment-falls">
  19. {list.map(row => {
  20. return (
  21. <div className="grid-item">
  22. <div className="item">
  23. <div className="item-header">
  24. <Assets src={row.avatar} />
  25. <div className="name">{row.nickname}</div>
  26. <div className="date">{formatDate(row.date, 'yyyy年mm月dd日')}</div>
  27. </div>
  28. <div className="item-body">{row.content}</div>
  29. </div>
  30. </div>
  31. );
  32. })}
  33. </div>
  34. );
  35. }
  36. }
  37. export class AnswerCarousel extends Component {
  38. constructor(props) {
  39. super(props);
  40. this.state = { index: 1 };
  41. }
  42. onNext() {
  43. const index = this.state.index + 1;
  44. const { list = [] } = this.props;
  45. if (index >= list.length - 1) return;
  46. this.setState({ index });
  47. }
  48. onPrev() {
  49. const index = this.state.index - 1;
  50. if (index < 1) return;
  51. this.setState({ index });
  52. }
  53. render() {
  54. const { index } = this.state;
  55. const { list = [], hideBtn = false } = this.props;
  56. return (
  57. <div className="other-answer-carousel">
  58. <div className="body">
  59. {list.length > 0 && (
  60. <Carousel selectedIndex={index} cellSpacing={40} dots={false} slideWidth={'350px'}>
  61. {list.map(item => {
  62. return (
  63. <div className="item">
  64. <div className="item-block">
  65. <Assets name="question" />
  66. {item.question}
  67. </div>
  68. <div className="item-block">
  69. <Assets name="answer" />
  70. {item.answer}
  71. </div>
  72. </div>
  73. );
  74. })}
  75. </Carousel>
  76. )}
  77. <div className="fixed" />
  78. <Assets name="footer_next_highlight_1" className="next" onClick={() => this.onNext()} />
  79. <Assets name="footer_previous_highlight_1" className="prev" onClick={() => this.onPrev()} />
  80. </div>
  81. {!hideBtn && (
  82. <Button size="lager" radius>
  83. <Assets name="kf" className="m-r-5" />
  84. 立即咨询
  85. </Button>
  86. )}
  87. </div>
  88. );
  89. }
  90. }
  91. export class Consultation extends Component {
  92. render() {
  93. return (
  94. <div className="other-consultation">
  95. <div className="list">
  96. <div className="item">
  97. <Assets name="call" />
  98. </div>
  99. <div className="item">
  100. <Assets name="mail" />
  101. </div>
  102. <div className="item">
  103. <Assets name="wechat_1" />
  104. </div>
  105. </div>
  106. <div className="line" />
  107. <div className="list">
  108. <div className="item">
  109. <div className="t-1 t-s-16 m-b-10">电话咨询</div>
  110. <div className="t-1 t-s-16 t-w-b">(400)800-8888</div>
  111. </div>
  112. <div className="item">
  113. <div className="t-1 t-s-16 m-b-10">邮件咨询</div>
  114. <div className="t-1 t-s-16 t-w-b">service@cat.com</div>
  115. </div>
  116. <div className="item">
  117. <div className="t-1 t-s-16 m-b-10">微信咨询</div>
  118. <div className="t-1 t-s-16 t-w-b">
  119. <Popover content={<Assets name="qrcode" />}>
  120. <span>
  121. <Assets name="erweima" />
  122. </span>
  123. </Popover>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. );
  129. }
  130. }
  131. export class Contact extends Component {
  132. render() {
  133. const { data = {} } = this.props;
  134. return (
  135. <div className="other-contact">
  136. <div className="body">
  137. <div className="step-list">
  138. <div className="step">
  139. <div className="title">工作机会</div>
  140. <Assets name="logo2" />
  141. </div>
  142. <div className="step" style={{ paddingLeft: 80 }}>
  143. <div className="title">联系我们</div>
  144. <div className="desc">{data.phone}</div>
  145. <div className="desc">{data.email}</div>
  146. <div className="desc">{data.wechat}</div>
  147. </div>
  148. <div className="step" style={{ paddingLeft: 140 }}>
  149. <div className="title">关注我们</div>
  150. <div className="qrcode">
  151. <Assets src={data.wechatImage} />
  152. </div>
  153. </div>
  154. </div>
  155. </div>
  156. </div>
  157. );
  158. }
  159. }