import React,{Component} from "react"; import {Form, Button, DatePicker, Input, message, Select, Spin, Table, Tabs, AutoComplete} from "antd"; import { ShowModal, } from "@/tools"; import {ChooseList} from "../../manageCenter/order/orderNew/chooseList"; import $ from "jquery/src/ajax"; import moment from "moment"; import AutoCompleteSearch from './autoCompleteSearch'; const {TabPane} = Tabs; const { RangePicker,MonthPicker } = DatePicker; const FormItem = Form.Item class TabelContent extends Component{ constructor(props) { super(props); this.state={ changeList:[], dataSource:[], pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function(page) { this.loadData(page); }.bind(this), showTotal: function(total) { return "共" + total + "条数据"; } }, searchValues:this.props.searchConfig || {}, contactsOption:[], departmentLoading:false } this.loadData= this.loadData.bind(this); this.resetAll= this.resetAll.bind(this); this.exportExec= this.exportExec.bind(this); this.selectSuperId= this.selectSuperId.bind(this); this.autoCompleteSearchRef = {} } loadData(pageNo) { this.setState({ loading:true }) let searchInfor = { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, } if(this.props.query){ let obj = JSON.parse(JSON.stringify(this.props.query)) searchInfor = Object.assign(searchInfor,obj); } if(Object.keys(this.state.searchValues).length > 0){ searchInfor = Object.assign(searchInfor,this.state.searchValues); } $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + this.props.tabelApi, data:searchInfor, success: function(data) { ShowModal(this); this.setState({ loading:false }) if (data.error && data.error.length === 0) { this.props.searchOperation && this.props.searchOperation(searchInfor); if(data.data.list){ 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: this.props.dataProcessing ? this.props.dataProcessing(data) : data.data.list, pagination: this.state.pagination, pageNo:data.data.pageNo }); }else{ this.setState({ dataSource: this.props.dataProcessing ? this.props.dataProcessing(data) : data.data, pagination: false, }); } }else{ message.warning(data.error[0].message); } }.bind(this) }).always( function() { this.setState({ loading: false }); }.bind(this) ); } exportExec(){ message.config({ duration: 20, }); let loading = message.loading('下载中...'); this.setState({ exportPendingLoading: true }) let data ={}; data = Object.assign(data,this.state.searchValues); if(this.props.exportExecProcessing){ data = this.props.exportExecProcessing(data); } $.ajax({ method: "get", dataType: "json", crossDomain: false, url: this.props.exportApi, data, success: function(data) { if(data.error.length === 0){ this.download(data.data); }else{ message.warning(data.error[0].message); } }.bind(this), }).always(function() { loading(); this.setState({ exportPendingLoading: false }) }.bind(this)); } download(fileName){ window.location.href = globalConfig.context + "/open/download?fileName=" + fileName } //获取上级组织 selectSuperId() { this.setState({ departmentLoading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/organization/selectSuperId", data:{}, success: function (data) { let theArr = []; if (data.error && data.error.length === 0) { for(let i=0;iv.type === 'departmentSelect') let arr1 = this.props.searchList.filter(v=>v.defaultValue) if(arr.length > 0){ this.selectSuperId(); } if(arr1.length > 0){ for(let i of arr1){ this.state.searchValues[i.dataKey] = i.defaultValue } } } } resetAll(){ for(let i of Object.keys(this.autoCompleteSearchRef)){ this.autoCompleteSearchRef[i].onReset(); } this.setState({ searchValues: this.props.query || {} },()=>{ this.loadData(); }) } render() { const { searchValues } = this.state; return (
{ (this.props.searchList || []).map((v,k)=>{ return ( v.type === 'text' ? { searchValues[v.dataKey] = e.target.value this.setState({ searchValues: searchValues }); }} /> : v.type === 'autoComplete' ? this.autoCompleteSearchRef[v.dataKey] = ref} value={searchValues[v.dataKey]} onSelect={(value,title)=>{ searchValues[v.dataKey] = value if(v.dataTitle){searchValues[v.dataTitle] = title} this.setState({ searchValues: searchValues }); }} config={v} /> : v.type === 'select' || v.type === 'departmentSelect' ? { } : v.type === 'times' ? { v.format === 'YYYY/MM' ? { searchValues[v.dataKey] = String(dataString); this.setState({ searchValues: searchValues }); }} />: { searchValues[v.dataKey[0]] = String(dataString[0]); searchValues[v.dataKey[1]] = String(dataString[1]); this.setState({ searchValues: searchValues }); }} /> } : null ) }) }
{this.props.exportApi &&
}
0 ? this.state.changeList : this.props.columns } onRowClick={this.props.onRowClick ? this.props.onRowClick : null} dataSource={this.state.dataSource} pagination={this.state.pagination} /> ) } } export default TabelContent;