import React from 'react';
import ReactDom from 'react-dom';
import ajax from 'jquery/src/ajax/xhr.js';
import $ from 'jquery/src/ajax';
import { Form, Radio, Icon, Button, Input, Select, Spin, Table, Switch, message, Modal, Upload, Popconfirm, DatePicker } from 'antd';
import MySettlementDetaile from "./projectManageDetaile.jsx";
import moment from 'moment';
import '../userMangagement.less';
import { projectState, orderState, distributeState } from '../../../../dataDic.js';
import { getProjectState, getOrderState, getOrderType, getPaymentState, getApprovedState, getDistributeState } from '../../../../tools.js';
const ProjectOrderNew = Form.create()(React.createClass({
	loadData(pageNo) {
		this.setState({
			loading: true
		});
		$.ajax({
			method: "post",
			dataType: "json",
			crossDomain: false,
			url: globalConfig.context + '/api/admin/techproject/salesmanListProject',
			data: {
				pageNo: pageNo || 1,
				pageSize: this.state.pagination.pageSize,
				setUpStartDate: this.state.releaseDate[0],
				setUpEndDate: this.state.releaseDate[1],
				depId: this.state.departmentt,
				orderStartDate: this.state.releaseDateOrder[0],
				orderEndDate: this.state.releaseDateOrder[1],
				buyerName: this.state.buyerNameSearch,//客户名称
				orderStatus: this.state.orderStatusSearch, //订单状态
				salesmanName: this.state.salesmanNameSearch,//订单负责人
				financeLeaderSearch: this.state.financeLeaderSearch,//财务负责人
				orderNo: this.state.orderNoSearch,//订单编号
				deletedSign: this.state.deleteSignSearch,//锁定激活
				serialNumber: this.state.serialNumberSearch,//项目编号
				principalName: this.state.principalNameSearch,
				taskDistribution: this.state.distributeSearch
			},
			success: function (data) {
				let theArr = [];
				if (!data.data) {
					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,
							id: thisdata.id,
							serialNumber: thisdata.serialNumber,
							signDate: thisdata.signDate,
							buyerName: thisdata.buyerName,
							projectType: thisdata.projectType,
							projectStatus: thisdata.projectStatus,
							deleteSign: thisdata.deletedSign,
							orderNo: thisdata.orderNo,
							orderTime: thisdata.orderTime,
							orderStatus: thisdata.orderStatus,
							liquidationStatus: thisdata.liquidationStatus,
							approval: thisdata.approval,
							buyerType: thisdata.buyerType,
							salesmanName: thisdata.salesmanName,
							departmentName: thisdata.departmentName,
							principalName: thisdata.principalName,
							taskDistribution: thisdata.taskDistribution
						});
					};
					this.state.pagination.current = data.data.pageNo;
					this.state.pagination.total = data.data.totalCount;
				};
				if (!data.data.list.length) {
					this.state.pagination.current = 0
					this.state.pagination.total = 0
				}
				this.setState({
					pageNo: pageNo,
					newProject: false,
					dataSource: theArr,
					pagination: this.state.pagination,
					selectedRowKeys: []
				});
			}.bind(this),
		}).always(function () {
			this.setState({
				loading: false
			});
		}.bind(this));
	},
	getInitialState() {
		return {
			datauser: {},
			selectedRowKeys: [],
			selectedRows: [],
			searchMore: true,
			releaseDate: [],
			releaseDateOrder: [],
			categoryArr: [],
			projectState: false,
			newProject: false,
			loading: false,
			KnotState: true,
			distributionVisible: false,
			visible: false,
			showDesc: 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: 'serialNumber',
					key: 'serialNumber'
				}, {
					title: '立项时间',
					dataIndex: 'signDate',
					key: 'signDate'
				}, {
					title: '客户名称',
					dataIndex: 'buyerName',
					key: 'buyerName',
					render: (text) => {
						return text && text.length >= 6 ? text.substr(0, 5) + '...' : text
					}
				}, {
					title: '项目状态',
					dataIndex: 'projectStatus',
					key: 'projectStatus',
					render: (text) => { return getProjectState(text) }
				}, {
					title: '订单编号',
					dataIndex: 'orderNo',
					key: 'orderNo',
				}, {
					title: '下单时间',
					dataIndex: 'orderTime',
					key: 'orderTime',
				}, {
					title: '订单状态',
					dataIndex: 'orderStatus',
					key: 'orderStatus',
					render: (text) => { return getOrderState(text) }
				}, {
					title: '订单负责人',
					dataIndex: 'salesmanName',
					key: 'salesmanName',
				}, {
					title: '项目负责人',
					dataIndex: 'principalName',
					key: 'principalName',
				}, {
					title: '订单部门',
					dataIndex: 'departmentName',
					key: 'departmentName',
				}, {
					title: '结算状态',
					dataIndex: 'liquidationStatus',
					key: 'liquidationStatus',
					render: (text) => { return getPaymentState(text) }
				}, {
					title: '是否特批',
					dataIndex: 'approval',
					key: 'approval',
					render: (text) => { return getApprovedState(text) }
				}, {
					title: '分派情况',
					dataIndex: 'taskDistribution',
					key: 'taskDistribution',
					render: (text) => { return getDistributeState(text) }
				},
				{
					title: '操作',
					dataIndex: 'rr',
					key: 'rr',
					render: (text, record, index) => {
						return (
							
								{record.projectStatus == 2 || record.projectStatus == 5 ? 
 : ''}
								{record.projectStatus == 2 && 
}
								{record.projectStatus == 1 || record.projectStatus == 5 ? 
 { this.scrapOrder(record) }} okText="确认" cancelText="取消">
									
								 : ''}
							
 
						)
					}
				}
			],
			queryColumns: [
				{
					title: '项目编号',
					dataIndex: 'serialNumber',
					key: 'serialNumber'
				}, {
					title: '立项时间',
					dataIndex: 'signDate',
					key: 'signDate'
				}, {
					title: '客户名称',
					dataIndex: 'buyerName',
					key: 'buyerName',
					render: (text) => {
						return text && text.length >= 6 ? text.substr(0, 5) + '...' : text
					}
				}, {
					title: '客户类型',
					dataIndex: 'buyerType',
					key: 'buyerType',
					render: (text) => { return text ? '单位客户' : '个人客户' }
				}, {
					title: '业务品类',
					dataIndex: 'projectType',
					key: 'projectType',
				}, {
					title: '项目状态',
					dataIndex: 'projectStatus',
					key: 'projectStatus',
					render: (text) => { return getProjectState(text) }
				}, {
					title: '订单编号',
					dataIndex: 'orderNo',
					key: 'orderNo',
				}, {
					title: '下单时间',
					dataIndex: 'orderTime',
					key: 'orderTime',
				}, {
					title: '订单状态',
					dataIndex: 'orderStatus',
					key: 'orderStatus',
					render: (text) => { return getOrderState(text) }
				}, {
					title: '订单负责人',
					dataIndex: 'salesmanName',
					key: 'salesmanName',
				}, {
					title: '项目负责人',
					dataIndex: 'principalName',
					key: 'principalName',
				}, {
					title: '订单部门',
					dataIndex: 'departmentName',
					key: 'departmentName',
				}, {
					title: '结算状态',
					dataIndex: 'liquidationStatus',
					key: 'liquidationStatus',
					render: (text) => { return getPaymentState(text) }
				}, {
					title: '是否特批',
					dataIndex: 'approval',
					key: 'approval',
					render: (text) => { return getApprovedState(text) }
				}, {
					title: '分派情况',
					dataIndex: 'taskDistribution',
					key: 'taskDistribution',
					render: (text) => { return getDistributeState(text) }
				}
			],
			dataSource: [],
		};
	},
	//结项
	Knots(record) {
		this.setState({
			signComment: '',
			contractId: record.id,
			serial: record.serialNumber,
			buyerName: record.buyerName,
			KnotState: false,
			signBillVisible: true
		})
	},
	//部门
	departmentList() {
		this.setState({
			loading: true
		});
		$.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);
					};
					thedata = {};
				} else {
					thedata.map(function (item, index) {
						theArr.push({
							key: index,
							name: item.name,
							id: item.id,
							depNo: item.depNo
						})
					})
				}
				this.setState({
					departmentArr: theArr,
				})
			}.bind(this),
		}).always(function () {
			this.setState({
				loading: false
			});
		}.bind(this));
	},
	//作废项目
	scrapOrder(record) {
		this.setState({
			loading: true
		});
		$.ajax({
			method: "POST",
			dataType: "json",
			crossDomain: false,
			url: globalConfig.context + '/api/zuofei',
			data: {
				id: record.id,
			}
		}).done(function (data) {
			this.setState({
				loading: false
			});
			if (!data.error.length) {
				message.success('操作成功!');
				this.loadData(this.state.pageNo);
			} else {
				message.warning(data.error[0].message);
			}
		}.bind(this));
	},
	//创建项目
	addClick() {
		this.setState({
			newProject: true,
			signBillVisible: false,
			showDesc: false
		});
	},
	//品类数据获取
	category() {
		this.setState({
			loading: true
		});
		$.ajax({
			method: "get",
			dataType: "json",
			crossDomain: false,
			url: globalConfig.context + "/api/admin/Varieties/getSuperList",
			data: {
			},
			success: function (data) {
				let thedata = data.data;
				let theArr = [];
				if (!thedata) {
					if (data.error && data.error.length) {
						message.warning(data.error[0].message);
					};
					thedata = {};
				} else {
					thedata.map(function (item, index) {
						theArr.push({
							key: index,
							name: item.cname,
							id: item.id,
						})
					})
				}
				this.setState({
					categoryArr: theArr,
				})
			}.bind(this),
		}).always(function () {
			this.setState({
				loading: false
			});
		}.bind(this));
	},
	componentWillMount() {
		let data = localStorage.getItem('newData');
		if (data != '{}' && data) {
			var newData = JSON.parse(data);
			this.tableRowClick(newData);
		};
	},
	componentDidMount() {
		this.loadData();
		this.departmentList();
		this.category();
	},
	//项目管理
	Knot(record) {
		this.state.userDetaile = true;
		this.state.datauser = record;
		this.setState({
			projectState: true,
			newProject: false,
			showDesc: true
		});
	},
	noProject() {
		this.setState({
			signBillVisible: false
		})
	},
	closeDesc(e, s) {
		this.state.userDetaile = false;
		this.state.showDesc = e;
		if (s) {
			this.loadData(this.state.pageNo);
		};
	},
	noProject() {
		this.setState({
			signBillVisible: false
		})
	},
	//结项
	projectSubmit(e) {
		e.preventDefault();
		this.setState({
			loading: true
		});
		$.ajax({
			method: "get",
			dataType: "json",
			crossDomain: false,
			url: globalConfig.context + '/api/admin/techproject/revokeOrComplete',
			data: {
				contractId: this.state.contractId,
				operatorType: 1,
				completeComment: this.state.signComment,
			}
		}).done(function (data) {
			this.setState({
				loading: false
			});
			if (!data.error.length) {
				message.success('结项成功!');
				this.noProject();
				this.loadData(this.state.pageNo);
			} else {
				message.warning(data.error[0].message);
			}
		}.bind(this));
	},
	searchSwitch() {
		this.setState({
			newProject: false,
			searchMore: !this.state.searchMore
		});
	},
	search() {
		this.loadData();
	},
	tableRowClick(record, index) {
		this.state.userDetaile = true;
		this.state.datauser = record;
		this.setState({
			projectState: false,
			newProject: false,
			showDesc: true
		});
		localStorage.setItem('newData', '{}');
	},
	reset() {
		this.state.buyerNameSearch = '';
		this.state.serialNumberSearch = '';
		this.state.principalNameSearch = '';
		this.state.releaseDate[0] = undefined;
		this.state.releaseDate[1] = undefined;
		this.state.releaseDateOrder[0] = undefined;
		this.state.releaseDateOrder[1] = undefined;
		this.state.departmentt = undefined;
		this.state.orderStatusSearch = undefined;
		this.state.salesmanNameSearch = '';
		this.state.orderNoSearch = '';
		this.state.distributeSearch = undefined;
		this.state.deleteSignSearch = undefined;
		this.loadData();
	},
	render() {
		const FormItem = Form.Item;
		const formItemLayout = {
			labelCol: { span: 8 },
			wrapperCol: { span: 14 },
		};
		const { RangePicker } = DatePicker;
		const rowSelection = {
			selectedRowKeys: this.state.selectedRowKeys,
			onChange: (selectedRowKeys, selectedRows) => {
				this.setState({
					selectedRows: selectedRows.slice(-1),
					selectedRowKeys: selectedRowKeys.slice(-1)
				});
			},
			onSelectAll: (selected, selectedRows, changeRows) => {
				this.setState({
					selectedRowKeys: []
				})
			},
		};
		const hasSelected = this.state.selectedRowKeys.length > 0;
		let departmentArr = this.state.departmentArr || [];
		return (
			
		);
	}
}));
export default ProjectOrderNew;