import React,{ Component } from 'react'; import {Button, DatePicker, Input, message, Select, Spin, Table, Tabs} from "antd"; import { ShowModal } from "@/tools"; import {ChooseList} from "../../order/orderNew/chooseList"; import $ from "jquery/src/ajax"; import moment from "moment"; import { highTechColumns, doubleSoft, softWriting, patent, currency, } from './highTechConfig'; import ProjectDetails from './projectDetails'; const {TabPane} = Tabs; const { RangePicker } = DatePicker; const { Option } = Select; class HighTech extends Component{ constructor(props) { super(props); this.state={ loading:false, changeList:[], columns: currency, status: 0, page: 1, pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function(page) { this.loadData(page); }.bind(this), showTotal: function(total) { return "共" + total + "条数据"; } }, dataSource: [], releaseDate:[], searchOrderNo: '', searchContractNo: '', searchEnterpriseName: '', declarationBatch: '', projectSituation: '', projectAmount: '', depId:'', thchDepId:'', projectType: '', projectStatus: '', departmentArr: [], contactsOption: [], contactsOptionData: [], visible: false, }; this.resetAll = this.resetAll.bind(this); this.changeList = this.changeList.bind(this); this.departmentList = this.departmentList.bind(this); this.exportPending = this.exportPending.bind(this); this.loadData = this.loadData.bind(this); this.selectSuperId = this.selectSuperId.bind(this); } changeList(arr) { const newArr = []; this.state.columns.forEach(item => { arr.forEach(val => { if (val === item.title) { newArr.push(item); } }); }); this.setState({ changeList: newArr }); } loadData(pageNo='') { this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/statistis/selectTaskList", data: this.props.searchData ? Object.assign({ pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize || 10, },this.props.searchData) : { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize || 10, startDate: this.state.releaseDate.length > 0 ? this.state.releaseDate[0]: undefined, //开始时间 endDate: this.state.releaseDate.length > 0 ? this.state.releaseDate[1]: undefined, //结束时间 depId: this.state.depId || undefined,//部门ID thchDepId: this.state.thchDepId || undefined,//责任部门ID projectStatus: this.state.projectStatus || undefined,//项目类别 projectType: typeof this.state.projectType === 'number' ? this.state.projectType : undefined,//项目分类 orderNo: this.state.searchOrderNo || undefined,//订单编号 contractNo: this.state.searchContractNo || undefined,//合同编号 userName: this.state.searchEnterpriseName || undefined,//企业名称 declarationBatch: this.state.declarationBatch || undefined,//申报批次 projectSituation: typeof this.state.projectSituation === 'number' ? this.state.projectSituation : undefined,//项目分类 projectAmount: this.state.projectAmount || undefined,//项目金额 status: this.state.status, }, success: function(data) { ShowModal(this); 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]; thisdata.key=(data.data.pageNo - 1) * data.data.pageSize + i + 1; theArr.push(thisdata); } 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({ pagination: this.state.pagination, page: pageNo, dataSource: theArr, }); } }.bind(this) }).always( function() { this.setState({ loading: false }); }.bind(this) ); } resetAll() { this.setState({ releaseDate: [], searchOrderNo: '', searchContractNo: '', searchEnterpriseName: '', declarationBatch: '', projectSituation: '', projectAmount: '', projectType: '', depId:'', thchDepId:'', projectStatus:'', columns: currency, status: 0, },()=>{ this.loadData(); }) } //部门 departmentList() { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/organization/selectSuperId", data: {}, success: function (data) { let thedata = data.data; let theArr = []; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { thedata.map(function (item, index) { theArr.push({ key: index, name: item.name, id: item.id, }); }); } this.setState({ departmentArr: theArr, }); }.bind(this), }) } //项目类别 selectSuperId() { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/ProjectSize/getAllCname", data: { flag: 0 }, success: function(data) { let theArr = []; let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } for (let i = 0; i < data.data.length; i++) { let theData = data.data[i]; theArr.push( {theData.cname} ); } this.setState({ contactsOption: theArr, contactsOptionData: data.data, }); }.bind(this) }).always( ); } exportPending() { let url = `/api/admin/statistis/exporTaskList?status=${this.state.status}`; let dep = this.state.departmentArr.filter((e)=> e.id === this.state.depId);//订单部门名称 let thchDep = this.state.departmentArr.filter((e)=> e.id === this.state.thchDepId); //责任部门名称 let option = this.state.contactsOptionData.filter((e)=> e.id === this.state.projectStatus); //项目类别名称 if(dep.length > 0){url = url+`&depName=${dep[0].name}`;} if(thchDep.length > 0){url = url+`&thchDepName=${thchDep[0].name}`;} if(option.length > 0){url = url+`&projectStatusName=${option[0].cname}`;} if(typeof this.state.projectType === 'number'){url = url+`&projectTypeName=${ this.state.projectType === 0? '通用' : this.state.projectType === 1? '专利' : this.state.projectType === 2? '软著' : this.state.projectType === 3? '审计' : this.state.projectType === 4? '双软' : this.state.projectType === 5? '高新' : '' }`;} let data ={ startDate: this.state.releaseDate.length > 0 ? this.state.releaseDate[0]: undefined, //开始时间 endDate: this.state.releaseDate.length > 0 ? this.state.releaseDate[1]: undefined, //结束时间 depId: this.state.depId || undefined,//部门ID thchDepId: this.state.thchDepId || undefined,//责任部门ID projectStatus: this.state.projectStatus || undefined,//项目类别 projectType: typeof this.state.projectType === 'number' ? this.state.projectType : undefined,//项目分类 orderNo: this.state.searchOrderNo || undefined,//订单编号 contractNo: this.state.searchContractNo || undefined,//合同编号 userName: this.state.searchEnterpriseName || undefined,//企业名称 declarationBatch: this.state.declarationBatch || undefined,//申报批次 projectSituation: typeof this.state.projectSituation === 'number' ? this.state.projectSituation : undefined,//项目情况 projectAmount: this.state.projectAmount || undefined,//项目金额 } for(let key in data){ if(data[key]){ url = url+`&${key}=${data[key]}`; } } window.location.href = globalConfig.context +url; } componentWillMount() { this.loadData(); if(!this.props.introduce){ this.departmentList(); this.selectSuperId(); } if(this.props.searchData){ let e = this.props.searchData.projectType; this.setState({ columns:e === 0 ? currency : e === 1 ? patent : e === 2 ? softWriting : e === 3 ? currency : e === 4 ? doubleSoft : e === 5 ? highTechColumns : e === 6 ? currency : currency, }) } } render() { return (
{this.props.introduce ? this.props.introduce() :
项目汇总表 ( { this.state.status === 1 ? '高新' : this.state.status === 2 ? '双软' : this.state.status === 3 ? '软著' : this.state.status === 4 ? '专利' : '通用' } )
{ this.setState({ searchOrderNo: e.target.value }); }} /> { this.setState({ searchContractNo: e.target.value }); }} /> { this.setState({ searchEnterpriseName: e.target.value }); }} /> 项目类别 : 项目分类 : 订单部门: 负责部门: 申报批次 : 项目金额 : {/* */} {/* 项目情况 :*/} {/* {*/} {/* this.setState({*/} {/* projectSituation: e,*/} {/* });*/} {/* }}*/} {/* >*/} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/**/} 派单时间 : { this.setState({ releaseDate: dataString }); }} />
}
0 ? this.state.changeList : this.state.columns } dataSource={this.state.dataSource} pagination={this.state.pagination} style={{ cursor: 'pointer', }} onRowClick={(record)=>{ this.setState({ projectdetailsId: record.id, projectdetailsOrderNo: record.orderNo, pname: record.pname, visible: true, }) }} /> {this.state.visible ? { this.setState({ visible: false, }); }} visitCancel={()=>{ this.setState({ visible: false, }); }} /> : null} ) } } export default HighTech;