Income-record.jsx 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. import React from 'react';
  2. import { Button, Table ,Select, message, DatePicker, Space , Input } from 'antd';
  3. import 'moment/locale/zh-cn';
  4. import locale from 'antd/es/date-picker/locale/zh_CN';
  5. import { $Axios } from '../../common/publish';
  6. import '../Income-record/Income-record.scss'
  7. const { Column, ColumnGroup } = Table;
  8. export default class IncomeRecord extends React.Component {
  9. constructor(props) {
  10. super(props)
  11. this.state = {
  12. headTxt : '财务管理 > 分账收益记录',
  13. data : [],
  14. columns : [
  15. {
  16. title: '序号',
  17. dataIndex: 'num',
  18. key: 'num',
  19. },
  20. {
  21. title: '分账流水号',
  22. dataIndex: 'requestId',
  23. key: 'requestId',
  24. },
  25. {
  26. title: '分账金额',
  27. dataIndex: 'amount',
  28. key: 'amount',
  29. render: (text, record, index) => <text style={{color: record.amount < 0 ? 'green' : 'red'}}>{record.amount}</text>,
  30. },
  31. {
  32. title: '关联分账商户',
  33. dataIndex: 'ownerName',
  34. key: 'ownerName',
  35. },
  36. {
  37. title: '创建时间',
  38. dataIndex: 'createTime',
  39. key: 'createTime',
  40. },
  41. {
  42. title: '到账完成时间',
  43. dataIndex: 'finishTime',
  44. key: 'finishTime',
  45. },
  46. {
  47. title: '分账状态',
  48. dataIndex: 'status',
  49. key: 'status',
  50. },
  51. ],
  52. timeType : null,
  53. keys : 1,
  54. starTime : '',
  55. endTime : '',
  56. status : '',
  57. total: null,
  58. current: 1,
  59. paginationProps: {
  60. showSizeChanger: false,//设置每页显示数据条数
  61. showQuickJumper: false,
  62. showTotal: () => `共${this.state.total}条`,
  63. pageSize: 10,
  64. total: null, //数据的总的条数
  65. onChange: (current) => this.changePage(current), //点击当前页码
  66. },
  67. lodings : null,
  68. shdata : ''
  69. }
  70. }
  71. componentDidMount() {
  72. this.initData()
  73. }
  74. onChange(date, dateString){
  75. console.log(date, dateString);
  76. }
  77. queryClick(){
  78. if(this.state.timeType !== 0 && this.state.timeType !== null){
  79. if(this.state.endTime <= this.state.starTime && (this.state.starTime !== '' && this.state.endTime !== '')){
  80. message.error('结束时间不可小于或者等于开始时间!');
  81. }else{
  82. if(this.state.starTime == '' && this.state.endTime == ''){
  83. this.initData()
  84. }else if(this.state.starTime !== '' && this.state.endTime !== ''){
  85. this.initData()
  86. }else{
  87. if(this.state.starTime == ''){
  88. message.error('请选择开始时间!');
  89. }else if(this.state.endTime == ''){
  90. message.error('请选择结束时间!');
  91. }
  92. }
  93. }
  94. }else{
  95. this.initData()
  96. }
  97. }
  98. initData(){
  99. this.setState({
  100. lodings : true
  101. })
  102. let that_ = this;
  103. let url = '/payment/spare.bill.list.groovy';
  104. let params = {
  105. userId: JSON.parse(localStorage.getItem('userData')).userId,//当前登陆用户userid
  106. ownerId:document.getElementById("fzsh").value,//关联分账商户
  107. status: this.state.status,//分账状态,1:分账成功2:分账中3:分账撤回
  108. createTimeStart : '',//创建开始时间
  109. createTimeEnd : '',//创建结束时间
  110. finishTimeStart : '',//完成开始时间
  111. finishTimeEnd : '',//完成结束时间
  112. psize:10,//每页大小
  113. pno:1 //第几页,起始值从1开始
  114. }
  115. let timeType = this.state.timeType;
  116. if(timeType == 0){
  117. params.createTimeStart = ''
  118. params.createTimeEnd = ''
  119. params.finishTimeStart = ''
  120. params.finishTimeEnd = ''
  121. }else if(timeType == 1){
  122. params.createTimeStart = this.state.starTime
  123. params.createTimeEnd = this.state.endTime
  124. params.finishTimeStart = ''
  125. params.finishTimeEnd = ''
  126. }else if(timeType == 2){
  127. params.finishTimeStart = this.state.starTime
  128. params.finishTimeEnd = this.state.endTime
  129. params.createTimeStart = ''
  130. params.createTimeEnd = ''
  131. }
  132. $Axios('get',url,params,(res) => {
  133. let status = res.data.head.status;
  134. if(status == 200){
  135. let data = res.data.body.list;
  136. let arr = [];
  137. data.map((item,index) => {
  138. let obj = {
  139. num : index + 1,
  140. amount: item.amount,
  141. createTime: item.createTime,
  142. finishTime: item.finishTime,
  143. id: item.id,
  144. ownerId: item.ownerId,
  145. requestId: item.requestId,
  146. status: item.status
  147. };
  148. arr.push(obj)
  149. })
  150. let total = res.data.body.totalCount;
  151. that_.state.paginationProps.total = total;
  152. that_.setState({
  153. data: arr,
  154. total: total, //数据的总的条数
  155. lodings : false
  156. })
  157. }
  158. })
  159. }
  160. handleChange_2(e) { //分账状态
  161. this.setState({
  162. status : e
  163. })
  164. }
  165. handleChange_5(e) {
  166. this.setState({
  167. timeType : e
  168. });
  169. if(e == 0){
  170. this.setState({
  171. starTime: '',
  172. endTime: '',
  173. keys : new Date().getTime()
  174. });
  175. }
  176. }
  177. starTime = (value,dateString)=>{
  178. if(dateString !== ''){
  179. dateString = new Date(value).formats('yyyy-MM-dd 00:00:00')
  180. let time = new Date(dateString).getTime()/1000;
  181. this.setState({
  182. starTime: time
  183. })
  184. }else{
  185. this.setState({
  186. starTime: ''
  187. })
  188. }
  189. }
  190. endTime = (value,dateString)=>{
  191. if(dateString !== ''){
  192. dateString = new Date(value).formats('yyyy-MM-dd 00:00:00')
  193. let time = new Date(dateString).getTime()/1000;
  194. this.setState({
  195. endTime: Number(time) + 86400 //加24小时
  196. })
  197. }else{
  198. this.setState({
  199. endTime: ''
  200. })
  201. }
  202. }
  203. render() {
  204. const { data , columns , headTxt ,timeType,keys,paginationProps,lodings,shdata } = this.state;
  205. const { Option } = Select;
  206. return(
  207. <div className='wrap_table'>
  208. <div className='header_center'>
  209. { headTxt }
  210. </div>
  211. <div className='query_table_l' style={{height:'60px'}}>
  212. <div className='btm_div' style={{height:'100%',lineHeight:'60px',paddingLeft:'20px'}}>
  213. <div style={{display : 'inline-block',}}> 关联分账商户 : </div>
  214. <Input id='fzsh' style={{width:'200px',marginRight:'20px'}} placeholder="请输入分账商户"/>
  215. <div style={{display : 'inline-block',}}> 分账状态 : </div>
  216. <Select size='default' placeholder="请选择分账状态" onChange={ this.handleChange_2.bind(this) } style={{ width: 200,marginRight:'20px' }}>
  217. <Option key={1} value={1}>分账中</Option>
  218. <Option key={2} value={2}>分账成功</Option>
  219. <Option key={3} value={3}>分账撤回</Option>
  220. </Select>
  221. <Select size='default' placeholder="请选择时间类型" onChange={this.handleChange_5.bind(this)} style={{ width: 200,marginRight:'20px' }}>
  222. <Option key={0} value={0}>不限时间类型</Option>
  223. <Option key={1} value={1}>创建时间</Option>
  224. <Option key={2} value={2}>到账完成时间</Option>
  225. </Select>
  226. <Space direction="vertical">
  227. <DatePicker key={keys} onChange={this.starTime} locale={locale} disabled={timeType == null ? true : false || timeType == 0 ? true : false} placeholder='请选择开始时间' />
  228. </Space>
  229. <div style={{ display: 'inline-block', margin: '0px 10px', color: '#d9d9d9' }}>-</div>
  230. <Space direction="vertical">
  231. <DatePicker key={keys} onChange={this.endTime} locale={locale} disabled={timeType == null ? true : false || timeType == 0 ? true : false} placeholder='请选择结束时间' />
  232. </Space>
  233. <Button type="primary" style={{
  234. float: 'right', display: 'inline-block', margin: '15px 60px',
  235. }} onClick={this.queryClick.bind(this)}>搜索</Button>
  236. </div>
  237. </div>
  238. <div className='tables'>
  239. <Table
  240. columns={columns}
  241. dataSource={data}
  242. pagination={paginationProps}
  243. loading = {lodings}
  244. locale={{ emptyText: '暂无数据' }}
  245. />
  246. </div>
  247. </div>
  248. )
  249. }
  250. }