index.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. import React, { PureComponent } from 'react';
  2. import { connect } from 'react-redux';
  3. //import { BrowserRouter, Route,Link } from 'react-router-dom';
  4. import StaffHeader from '../../common/staffHeader'
  5. import { Table, Input,Radio } from 'antd';
  6. import 'antd/dist/antd.css';
  7. import { actionCreators } from './store';
  8. //import { AudioOutlined } from '@ant-design/icons';
  9. const radioStyle = {
  10. display: 'block',
  11. height: '30px',
  12. lineHeight: '30px',
  13. };
  14. const { Search } = Input;
  15. class lock_store extends PureComponent {
  16. render() {
  17. const {dataSource,columns,pagination,handleLockstoreList,handleSearch,columnsData,columnsNum,handleInputChange,handleColumnsShow} = this.props;
  18. return (
  19. <div>
  20. <StaffHeader />
  21. <main id="js-page-content" role="main" className="page-content">
  22. <div className="row">
  23. <div className="col-xl-12">
  24. <div id="panel-1" className="panel">
  25. <div className="panel-hdr">
  26. <div className="col-auto pr-0">
  27. <div className="input-group input-group-sm bg-white shadow-inset-2">
  28. <Search
  29. placeholder="锁号"
  30. onSearch={value => handleSearch(pagination.toJS(),this.props,value)}
  31. onKeyUp={(e) => handleSearch(pagination.toJS(),this.props,e.target.value,'keyup')}
  32. style={{ width: 200 }}
  33. />
  34. </div>
  35. </div>
  36. <div className="col-auto pr-0">
  37. <button className="btn btn-sm btn-default" type="button" data-toggle="modal" data-target="#filter"><i className="fal fa-filter"></i> 筛选</button>
  38. </div>
  39. <div className="col-auto ml-auto">
  40. <button className="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown">已显示{columnsNum}列</button>
  41. <div className="dropdown-menu">
  42. <ul className="list-unstyled px-3 pt-2 mb-0">
  43. {
  44. columnsData.map((item, index) => {
  45. return (
  46. <li key={index} className="mb-2">
  47. <div className="custom-control custom-switch">
  48. <input type="checkbox" name={index} onChange={(e) => handleInputChange(e, index)} value={item.get('columnsValue')} checked={item.get('columnsValue')} className="custom-control-input" id={"lie" + index} />
  49. <label onClick={() => handleColumnsShow(index)} htmlFor={"lie" + index} className="custom-control-label" >{item.get('columnsName')}</label>
  50. </div>
  51. </li>
  52. )
  53. })
  54. }
  55. </ul>
  56. </div>
  57. </div>
  58. <div className="col-auto pl-0">
  59. <button className="btn btn-sm btn-default" data-toggle="dropdown"><i className="fal fa-sort-amount-down"></i> 排序</button>
  60. <div className="dropdown-menu dropdown-menu-right" id="paixu">
  61. <ul className="list-unstyled px-3 pt-2 mb-0">
  62. <li className="mb-2">
  63. {/* <Radio.Group onChange={this.onChange} value={value}> */}
  64. <Radio.Group onChange={this.onChange}>
  65. <Radio style={radioStyle} value={1}>
  66. 锁号
  67. </Radio>
  68. <Radio style={radioStyle} value={2}>
  69. 出库时间
  70. </Radio>
  71. </Radio.Group>
  72. </li>
  73. </ul>
  74. <ul className="list-unstyled px-3 pt-2 mb-0 border-top">
  75. <li className="mb-2">
  76. <Radio.Group onChange={this.onChange}>
  77. <Radio style={radioStyle} value={3}>
  78. 降序
  79. </Radio>
  80. <Radio style={radioStyle} value={4}>
  81. 升序
  82. </Radio>
  83. </Radio.Group>
  84. </li>
  85. </ul>
  86. </div>
  87. </div>
  88. </div>
  89. <div className="panel-container show">
  90. <div className="panel-content">
  91. <Table
  92. onChange={(pagination) => handleLockstoreList(pagination,this.props)}
  93. pagination={pagination.toJS()}
  94. bordered
  95. dataSource={dataSource.toJS()}
  96. columns={columns.toJS()}
  97. />
  98. </div>
  99. </div>
  100. </div>
  101. </div>
  102. </div>
  103. </main>
  104. {/* <Popups mainView={'lock_store'} onRef={(ref) => popupsObj = ref} /> */}
  105. {/* <LockDetail /> */}
  106. </div>
  107. );
  108. }
  109. //组件即将要被挂在的时候执行的方法--
  110. componentDidMount(){
  111. const{handleLockstoreList,pagination,initData}= this.props;
  112. // console.log(pagination.toJS());
  113. handleLockstoreList(pagination.toJS(),this.props);
  114. initData();
  115. }
  116. }
  117. let delaySwitch = null;
  118. /**
  119. * store里的数据映射到这个组件里的state
  120. * @param {*} state
  121. */
  122. const mapStateToProps = (state) => {
  123. return {
  124. dataSource: state.getIn(['lockstore', 'dataSource']),
  125. columns: state.getIn(['lockstore', 'columns']),
  126. pagination: state.getIn(['lockstore', 'pagination']),
  127. searchValue: state.getIn(['lockstore', 'searchValue']),
  128. columnsData: state.getIn(['lockstore', 'columnsData']),
  129. columnsNum:state.getIn(['lockstore', 'columnsNum']),
  130. }
  131. }
  132. /**
  133. * 要改变store里的内容需要调用dispatch方法
  134. * @param {*} dispatch
  135. */
  136. const mapDispathToProps = (dispatch) => {
  137. return {
  138. handleColumnsShow(index) {
  139. // console.log('kkk');
  140. dispatch(actionCreators.toggleColumns(index));
  141. },
  142. initData(){
  143. dispatch(actionCreators.toggleColumnsAll());
  144. },
  145. handleLockstoreList(pagination,support){
  146. dispatch(actionCreators.getLockstoreList(pagination,support));
  147. },
  148. handleSearch(pagination,support,searchValue,keyup){
  149. if(keyup === 'keyup'){
  150. if(delaySwitch != null){
  151. clearTimeout(delaySwitch);
  152. }
  153. delaySwitch = setTimeout(() => {
  154. dispatch(actionCreators.getLockstoreList(pagination, support, searchValue));
  155. },350);
  156. }
  157. else{
  158. dispatch(actionCreators.getLockstoreList(pagination,support,searchValue));
  159. }
  160. },
  161. handleInputChange(e, index){
  162. // dispatch(actionCreators.changeInputValue(columnsNum));
  163. // dt.handleColumnVisible(index, e.target.value);
  164. },
  165. // handleColumnsAllShow() {
  166. // dispatch(actionCreators.toggleColumnsAll(dt));
  167. // },
  168. }
  169. }
  170. export default connect(mapStateToProps, mapDispathToProps)(lock_store);