|  | @@ -1,179 +0,0 @@
 | 
	
		
			
				|  |  | -import React from 'react';
 | 
	
		
			
				|  |  | -import { Input, Modal, Button, message } from 'antd';
 | 
	
		
			
				|  |  | -import { achievementCategoryList } from '../../dataDic.js';
 | 
	
		
			
				|  |  | -import ajax from 'jquery/src/ajax/xhr.js';
 | 
	
		
			
				|  |  | -import $ from 'jquery/src/ajax';
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -const BatchImport = React.createClass({
 | 
	
		
			
				|  |  | -    getInitialState: function () {
 | 
	
		
			
				|  |  | -        return {
 | 
	
		
			
				|  |  | -            loading: false,
 | 
	
		
			
				|  |  | -            error: false
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    showModal () {
 | 
	
		
			
				|  |  | -        this.setState({
 | 
	
		
			
				|  |  | -            visible: true,
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    handleOk (e) {
 | 
	
		
			
				|  |  | -        this.setState({
 | 
	
		
			
				|  |  | -            visible: false,
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    handleCancel (e) {
 | 
	
		
			
				|  |  | -        this.setState({
 | 
	
		
			
				|  |  | -            visible: false,
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    //数据反向转化
 | 
	
		
			
				|  |  | -    getDataCategory (e, row) {
 | 
	
		
			
				|  |  | -        switch (e) {
 | 
	
		
			
				|  |  | -            case "成果":
 | 
	
		
			
				|  |  | -                return 0;
 | 
	
		
			
				|  |  | -            case "技术":
 | 
	
		
			
				|  |  | -                return 1;
 | 
	
		
			
				|  |  | -            case "项目":
 | 
	
		
			
				|  |  | -                return 2;
 | 
	
		
			
				|  |  | -            default:
 | 
	
		
			
				|  |  | -                message.warning("第 " + row + " 行中没有对应的数据类型!");
 | 
	
		
			
				|  |  | -                this.state.error = true;
 | 
	
		
			
				|  |  | -                break;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    getOwnerType (e, row) {
 | 
	
		
			
				|  |  | -        switch (e) {
 | 
	
		
			
				|  |  | -            case "个人":
 | 
	
		
			
				|  |  | -                return 0;
 | 
	
		
			
				|  |  | -            case "组织":
 | 
	
		
			
				|  |  | -                return 1;
 | 
	
		
			
				|  |  | -            default:
 | 
	
		
			
				|  |  | -                message.warning("第 " + row + " 行中没有对应的所有人类型!");
 | 
	
		
			
				|  |  | -                this.state.error = true;
 | 
	
		
			
				|  |  | -                break;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    getCategory (e, row) {
 | 
	
		
			
				|  |  | -        let theType = null, _me = this;
 | 
	
		
			
				|  |  | -        if (e) {
 | 
	
		
			
				|  |  | -            achievementCategoryList.map(function (item) {
 | 
	
		
			
				|  |  | -                if (item.key == e) {
 | 
	
		
			
				|  |  | -                    theType = Number(item.value);
 | 
	
		
			
				|  |  | -                };
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | -            if (theType == null) {
 | 
	
		
			
				|  |  | -                message.warning("第 " + row + " 行中没有对应的成果类型!");
 | 
	
		
			
				|  |  | -                _me.state.error = true;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            return theType;
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    getCooperationMode (e, row) {
 | 
	
		
			
				|  |  | -        switch (e) {
 | 
	
		
			
				|  |  | -            case "技术转让":
 | 
	
		
			
				|  |  | -                return 0;
 | 
	
		
			
				|  |  | -            case "授权生产":
 | 
	
		
			
				|  |  | -                return 1;
 | 
	
		
			
				|  |  | -            default:
 | 
	
		
			
				|  |  | -                message.warning("第 " + row + " 行中没有对应的合作方式!");
 | 
	
		
			
				|  |  | -                this.state.error = true;
 | 
	
		
			
				|  |  | -                break;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    //提交
 | 
	
		
			
				|  |  | -    handleSubmit () {
 | 
	
		
			
				|  |  | -        let rowsArr = this.state.inputValue.split(/[\r\n]/g);
 | 
	
		
			
				|  |  | -        let columnArr = [], _me = this;
 | 
	
		
			
				|  |  | -        if (!rowsArr.length) {
 | 
	
		
			
				|  |  | -            return;
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -        let columnLength = 12;//定义数据正常长度
 | 
	
		
			
				|  |  | -        for (let i = 0; i < rowsArr.length; i++) {
 | 
	
		
			
				|  |  | -            if (_me.state.error) {
 | 
	
		
			
				|  |  | -                this.state.error = false;
 | 
	
		
			
				|  |  | -                return;
 | 
	
		
			
				|  |  | -            };
 | 
	
		
			
				|  |  | -            let theArr = rowsArr[i].split(/\t/);
 | 
	
		
			
				|  |  | -            if (theArr.length == columnLength) {
 | 
	
		
			
				|  |  | -                columnArr.push({
 | 
	
		
			
				|  |  | -                    dataCategory: _me.getDataCategory(theArr[0], i + 1),
 | 
	
		
			
				|  |  | -                    name: theArr[1],
 | 
	
		
			
				|  |  | -                    keyword: theArr[2],
 | 
	
		
			
				|  |  | -                    category: _me.getCategory(theArr[3], i + 1),
 | 
	
		
			
				|  |  | -                    ownerName: theArr[4],
 | 
	
		
			
				|  |  | -                    ownerType: _me.getOwnerType(theArr[5], i + 1),
 | 
	
		
			
				|  |  | -                    ownerIdNumber: theArr[6],
 | 
	
		
			
				|  |  | -                    ownerMobile: theArr[7],
 | 
	
		
			
				|  |  | -                    ownerEmail: theArr[8],
 | 
	
		
			
				|  |  | -                    ownerPostalAddress: theArr[9],
 | 
	
		
			
				|  |  | -                    cooperationMode: _me.getCooperationMode(theArr[10], i + 1),
 | 
	
		
			
				|  |  | -                    introduction: theArr[11],
 | 
	
		
			
				|  |  | -                });
 | 
	
		
			
				|  |  | -            } else if (rowsArr[i].replace(/(^\s+)|(\s+$)/g, "").length) {
 | 
	
		
			
				|  |  | -                message.warning("第" + (i + 1) + "行数据长度错误!");
 | 
	
		
			
				|  |  | -                return;
 | 
	
		
			
				|  |  | -            };
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -        // for (let i = 0; i < columnArr.length; i++) {
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].dataCategory.toString().length > 1) { console.log((i + 1) + "行:" + "dataCategory") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].name.toString().length > 31) { console.log((i + 1) + "行:" + "name") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].category.toString().length > 1) { console.log((i + 1) + "行:" + "category") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].ownerName.toString().length > 31) { console.log((i + 1) + "行:" + "ownerName") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].ownerIdNumber.toString().length > 35) { console.log((i + 1) + "行:" + "ownerIdNumber") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].ownerMobile.toString().length > 11) { console.log((i + 1) + "行:" + "ownerMobile") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].ownerEmail.toString().length > 254) { console.log((i + 1) + "行:" + "ownerEmail") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].ownerPostalAddress.toString().length > 254) { console.log((i + 1) + "行:" + "ownerPostalAddress") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].cooperationMode.toString().length > 1) { console.log((i + 1) + "行:" + "cooperationMode") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].introduction.toString().length > 298) { console.log((i + 1) + "行:" + "introduction") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].keyword.toString().length > 44) { console.log((i + 1) + "行:" + "ownerType") }
 | 
	
		
			
				|  |  | -        //     if (columnArr[i].ownerType.toString().length > 1) { console.log((i + 1) + "行:" + "ownerType") }
 | 
	
		
			
				|  |  | -        // }
 | 
	
		
			
				|  |  | -        if (columnArr.length > 1000) {
 | 
	
		
			
				|  |  | -            message.warning("数据条数不能多于1000条!");
 | 
	
		
			
				|  |  | -            return;
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -        this.setState({
 | 
	
		
			
				|  |  | -            loading: true
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -        $.ajax({
 | 
	
		
			
				|  |  | -            method: "POST",
 | 
	
		
			
				|  |  | -            dataType: "json",
 | 
	
		
			
				|  |  | -            crossDomain: false,
 | 
	
		
			
				|  |  | -            url: globalConfig.context + '/api/admin/achievement/importAchievement',
 | 
	
		
			
				|  |  | -            data: {
 | 
	
		
			
				|  |  | -                data: JSON.stringify(columnArr)
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }).done(function (data) {
 | 
	
		
			
				|  |  | -            this.setState({
 | 
	
		
			
				|  |  | -                loading: false
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | -            if (!data.error.length) {
 | 
	
		
			
				|  |  | -                message.success('导入成功!');
 | 
	
		
			
				|  |  | -                this.props.closeDesc(false, true);
 | 
	
		
			
				|  |  | -                this.handleOk();
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                message.warning(data.error[0].message);
 | 
	
		
			
				|  |  | -            };
 | 
	
		
			
				|  |  | -        }.bind(this));
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    render () {
 | 
	
		
			
				|  |  | -        return (
 | 
	
		
			
				|  |  | -            <div>
 | 
	
		
			
				|  |  | -                <Button type="primary" onClick={this.showModal}>批量导入</Button>
 | 
	
		
			
				|  |  | -                <Modal
 | 
	
		
			
				|  |  | -                    title="批量导入"
 | 
	
		
			
				|  |  | -                    visible={this.state.visible}
 | 
	
		
			
				|  |  | -                    onCancel={this.handleCancel}
 | 
	
		
			
				|  |  | -                    width='1000px'
 | 
	
		
			
				|  |  | -                    footer={[
 | 
	
		
			
				|  |  | -                        <Button key="ok" className="set-submit" type="primary" loading={this.state.loading} onClick={this.handleSubmit}>保存</Button>,
 | 
	
		
			
				|  |  | -                        <Button key="clancel" className="set-submit" type="ghost" onClick={this.handleCancel}>取消</Button>
 | 
	
		
			
				|  |  | -                    ]} >
 | 
	
		
			
				|  |  | -                    <Input type="textarea" rows={12} onChange={(e) => { this.state.inputValue = e.target.value; }} />
 | 
	
		
			
				|  |  | -                </Modal>
 | 
	
		
			
				|  |  | -            </div>
 | 
	
		
			
				|  |  | -        );
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -});
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -export default BatchImport;
 |