import React,{Component} from 'react'; import ajax from 'jquery/src/ajax/xhr.js'; import $ from 'jquery/src/ajax'; import moment from 'moment'; import '@/manageCenter/financialManage/distribute/public.less'; import { Icon, Button,Form, Input, Select, Spin, Table, Switch, message, DatePicker, Modal } from 'antd'; import OrderDesc from '@/manageCenter/financialManage/orderDetail/orderDesc' import Assign from '@/manageCenter/publicComponent/assign'; import {getProcessStatus,getApproval} from '@/tools'; const Task = React.createClass({ loadData(pageNo) { this.state.data = []; this.setState({ page:pageNo, loading: true }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/order/listAllSettlement", data: { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, buyerName: this.state.nameSearch,//客户名称 orderNo:this.state.orderNoSearch, distribution:this.state.distribution, //是否分配 startTime: this.state.releaseDate[0], endTime: this.state.releaseDate[1], }, success: function (data) { let theArr = []; if (!data.data || !data.data.list) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; theArr.push({ key: i, orderNo: thisdata.orderNo, approval:thisdata.approval, orderType:thisdata.orderType, processStatus:thisdata.processStatus, signTotalAmount:thisdata.signTotalAmount, buyerName:thisdata.buyerName, sellerName:thisdata.sellerName, createTime:thisdata.createTime?(new Date(thisdata.createTime)).toLocaleString():'', signTime:thisdata.releaseDate?(new Date(thisdata.releaseDate)).toLocaleString():'' }); }; } this.state.pagination.current = data.data.pageNo; this.state.pagination.total = data.data.totalCount; if(data.data&&data.data.list&&!data.data.list.length){ this.state.pagination.current=0 this.state.pagination.total=0 } this.setState({ dataSource: theArr, pagination: this.state.pagination }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, getInitialState() { return { searchMore: true, assignVisible:false, releaseDate: [], boHuivisible:false, selectedRowKeys: [], selectedRows: [], loading: false, pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.loadData(page); }.bind(this), showTotal: function (total) { return '共' + total + '条数据'; } }, columns: [ { title: '任务编号', dataIndex: 'orderNo1', key: 'orderNo1', }, { title: '任务名称', dataIndex: 'createTime', key: 'createTime', }, { title: '订单编号', dataIndex: 'orderNo', key: 'orderNo', }, { title: '业务类别', dataIndex: 'buyerName2', key: 'buyerName2', }, { title: '客户名称', dataIndex: 'buyerName', key: 'buyerName', }, { title: '任务负责人', dataIndex: 'buyerName1', key: 'buyerName1', }, { title: '任务状态', dataIndex: 'processStatus', key: 'processStatus', render: text => { return getProcessStatus(text)} }, { title: '立项状态', dataIndex: 'approval', key: 'approval', render: text => { return getApproval(text)} }, { title: '订单负责人', dataIndex: 'sellerName', key: 'sellerName' }, { title: '公示状态', dataIndex: 'sellerName13', key: 'sellerName13', render: text => { return getApproval(text)} }, { title: '分派时间', dataIndex: 'sellerName12', key: 'sellerName12' }, { title: '任务数量', dataIndex: 'sellerName1', key: 'sellerName1' }, { title:'操作', dataIndex: 'caozuo', key: 'caouzo', render:(text,recard)=>{ return <div> <Button type="primary" style={{margin:'0 10px'}} onClick={(e)=>{e.stopPropagation(),this.evaluate(recard,0)}}>转交</Button> <Button type="primary" style={{margin:'0 10px'}} onClick={(e)=>{e.stopPropagation(),this.evaluate(recard,1)}}>分配任务</Button> </div> } } ], dataSource: [], searchTime: [,] } }, /* 分派 */ evaluate(recard,nub){ this.state.assignData=recard; this.setState({ nub, assignVisible:true }) }, componentWillMount() { this.loadData(); }, tableRowClick(record, index) { this.state.RowData = record; this.setState({ showDesc: true, }); }, closeDesc(e, s) { this.state.showDesc = e; if (s) { this.loadData(this.state.page); }; }, closeAssign(e, s) { this.state.assignVisible = e; if (s) { this.loadData(this.state.page); }; }, search() { this.loadData(); }, reset() { this.state.nameSearch = ''; this.state.releaseDate = []; this.state.orderNoSearch=''; this.state.taskNoSearch=''; this.state.distribution=undefined; this.loadData(); }, searchSwitch() { this.setState({ searchMore: !this.state.searchMore }); }, render() { const rowSelection = { selectedRowKeys: this.state.selectedRowKeys, onChange: (selectedRowKeys, selectedRows) => { this.setState({ selectedRows: selectedRows.slice(-1), selectedRowKeys: selectedRowKeys.slice(-1) }); } }; const hasSelected = this.state.selectedRowKeys.length > 0; const { RangePicker } = DatePicker; return ( <div className="user-content"> <div className="content-title"> <span>任务派单管理</span> </div> <div className="user-search"> <Input placeholder="客户名称" value={this.state.nameSearch} onChange={(e) => { this.setState({ nameSearch: e.target.value }); }} /> <Input placeholder="订单编号" value={this.state.orderNoSearch} onChange={(e) => { this.setState({ orderNoSearch: e.target.value }); }} /> <Input placeholder="任务编号" value={this.state.taskNoSearch} onChange={(e) => { this.setState({ taskNoSearch: e.target.value }); }} /> <Button type="primary" onClick={this.search}>搜索</Button> <Button onClick={this.reset}>重置</Button> {/* <span>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch.bind(this)} /></span> <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}> <span>订单时间 :</span> <RangePicker value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null, this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]} onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} /> </div> */} </div> <div className="patent-table"> <Spin spinning={this.state.loading}> <Table columns={this.state.columns} dataSource={this.state.dataSource} rowSelection={rowSelection} pagination={this.state.pagination} onRowClick={this.tableRowClick.bind(this)} /> </Spin> </div> <OrderDesc data={this.state.RowData} showDesc={this.state.showDesc} closeDesc={this.closeDesc.bind(this)} /> <Assign selApi={this.state.nub?"/api/admin/financial/fenpei":'/api/admin/financial/zhuanjiao'} data={this.state.assignData} showDesc={this.state.assignVisible} closeDesc={this.closeAssign.bind(this)} /> </div> ) } }) export default Task;