index.jsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React, { Component } from 'react';
  2. import style from './index.less';
  3. import up from '@common/images/slide-up.png';
  4. import down from '@common/images/slide-down.png';
  5. import $ from 'jquery';
  6. import config from '@config/index';
  7. class GeneralTreat extends Component {
  8. constructor(props){
  9. super(props);
  10. this.state = {
  11. slideUp: true
  12. }
  13. this.$content = React.createRef();
  14. }
  15. slideToggle() {
  16. const { slideUp } = this.state
  17. $(this.$content.current).slideToggle(config.slideTime);
  18. this.setState({
  19. slideUp: !slideUp
  20. })
  21. }
  22. render() {
  23. const { icon, titleStyle,titleBg, filter, title, generalTreat,hasFold } = this.props
  24. const { slideUp } = this.state
  25. return(
  26. generalTreat && generalTreat.content && generalTreat.content.length > 0 && <div className={style['general-wrapper']}>
  27. <div className={style['general-title-box']} style={titleStyle}></div>
  28. <div className={`${style['general-title']} ${'clearfix'}`} onClick={hasFold?this.slideToggle.bind(this):''}>
  29. <img className={style['general-icon']} src={icon}/>
  30. {title}
  31. {hasFold && <img className={style['slide-toggle']} src={slideUp?up:down} alt="展开/收起"/>}
  32. </div>
  33. <div ref={this.$content} className={hasFold?style['general-item-show']:style['general-item-hide']} dangerouslySetInnerHTML={{__html: generalTreat.content}}>
  34. </div>
  35. </div>
  36. )
  37. }
  38. }
  39. export default GeneralTreat;