wubb преди 8 години
родител
ревизия
30409675fd

+ 30 - 0
.gitignore.gitignore

@@ -0,0 +1,30 @@
+# Logs
+logs
+*.log
+
+# Runtime data
+pids
+*.pid
+*.seed
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (http://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directory
+# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
+node_modules
+clean.sh
+build
+.project

+ 68 - 33
js/component/manageCenter/servicesManage/technology/applyAdd.jsx

@@ -8,8 +8,7 @@ const ApplyAdd = React.createClass({
     getInitialState() {
         return {
             visible: false,
-            loading: false,
-            yearOption: []
+            loading: false
         };
     },
     getContactsList(theUid) {
@@ -29,7 +28,7 @@ const ApplyAdd = React.createClass({
                 for (let item in data.data) {
                     let theData = data.data[item];
                     theOption.push(
-                        <Select.Option value={theData} key={theData}>{theData}</Select.Option>
+                        <Select.Option value={item} key={item}>{theData}</Select.Option>
                     );
                 };
                 this.setState({
@@ -37,21 +36,35 @@ const ApplyAdd = React.createClass({
                 });
             }.bind(this),
         });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/user/getDepartment",
+            data: {
+                uid: theUid
+            },
+            success: function (data) {
+                if (data.error.length || !data.data) {
+                    message.warning(data.error[0].message);
+                    return;
+                };
+                let theOption = [];
+                for (var item in data.data) {
+                    theOption.push(
+                        <Select.Option value={item} key={item}>{data.data[item]}</Select.Option>
+                    );
+                };
+                this.setState({
+                    departmentOption: theOption
+                })
+                
+            }.bind(this),
+        });
     },
     componentWillReceiveProps(nextProps) {
         this.state.visible = nextProps.showAdd
     },
-    componentWillMount() {
-        let d = new Date();
-        let _me = this;
-        d = d.getFullYear() - 1;
-        this.state.thisYear = d;
-        for (let i = d; i < d + 20; i++) {
-            _me.state.yearOption.push(
-                <Select.Option value={i.toString()} key={i}>{i}</Select.Option>
-            )
-        };
-    },
     showModal() {
         this.setState({
             visible: true,
@@ -61,13 +74,13 @@ const ApplyAdd = React.createClass({
         this.setState({
             loading: true
         });
-        if (!this.state.year) {
-            message.warning('请选择年份!');
-            this.setState({
+        if (!this.state.uid) {
+             message.warning('请选择公司!');
+             this.setState({
                 loading: false
             });
             return;
-        };
+        }
         if (!this.state.contacts) {
             message.warning('请选择一个联系人!');
             this.setState({
@@ -79,14 +92,20 @@ const ApplyAdd = React.createClass({
             method: "POST",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/applyCognizance",
+            url: globalConfig.context + "/api/admintechproject/applyTechProject",
             data: {
-                year: this.state.year,
+                uid: this.state.uid,
                 contacts: this.state.contacts,
-                comment: this.state.comment,
+                department: this.state.department,
+                dispatchInfo: this.state.dispatchInfo,
+                projectName: this.state.projectName,
+                projectCatagory: this.state.projectCatagory,
+                techField: this.state.techField,
+                projectDes: this.state.projectDes,
+                projectMode: this.state.projectMode,
+                projectApproval: this.state.projectApproval,
+                subsidy: this.state.subsidy,
                 consultant: this.state.consultant,
-                uid: this.state.uid,
-                state: this.state.year == this.state.thisYear ? 0 : 7
             }
         }).done(function (data) {
             if (!data.error.length) {
@@ -114,6 +133,20 @@ const ApplyAdd = React.createClass({
             loading: e
         });
     },
+    projectEstablishmentCheck(e) {
+        if (e.target.checked == true) {
+            this.state.projectMode = 1;
+        } else if (e.target.checked == false) {
+            this.state.projectMode = 0;
+        };
+    },
+    subsidyCheck(e) {
+        if (e.target.checked == true) {
+            this.state.subsidy = 1;
+        } else if (e.target.checked == false) {
+            this.state.subsidy = 0;
+        };
+    },
     render() {
         return (
             <div className="cognizance-add">
@@ -153,9 +186,11 @@ const ApplyAdd = React.createClass({
                     <div className="clearfix">
                         <div className="half-item">
                             <span className="item-title">选择申报科技部门:  </span>
-                            <Select placeholder="请选择年份" style={{ width: 200 }}
-                                onSelect={(e, n) => { this.state.year = e }}>
-                                {this.state.yearOption}
+                            <Select 
+                                placeholder="请选择申报部门" 
+                                style={{ width: 200 }}
+                                onSelect={(e, n) => { this.state.department = e; }}>
+                                {this.state.departmentOption}
                             </Select>
                         </div>
                     </div>
@@ -163,41 +198,41 @@ const ApplyAdd = React.createClass({
                     	<div>
                             <span className="item-title">派单信息:  </span>
                         </div>
-                        <Input type="textarea" rows={6} onChange={(e) => { this.state.comment = e.target.value; }} />
+                        <Input type="textarea" rows={6} onChange={(e) => { this.state.dispatchInfo = e.target.value; }} />
                     </div>
                     <div className="clearfix">
 	                 	<div className="half-item">
 	                   		<span className="item-title">项目名称:  </span>
-	                     	<Input  style={{ width: 200 }} />
+	                     	<Input  style={{ width: 200 }} onChange={(e) => { this.state.projectName = e.target.value; }} />
 	                	</div>
                     </div>
                     <div className="clearfix">
                     	<div className="half-item">
 	                   		<span className="item-title">项目类型:  </span>
-	                     	<Input  style={{ width: 200 }} />
+	                     	<Input  style={{ width: 200 }} onChange={(e) => { this.state.projectCatagory = e.target.value; }} />
 	                	</div>
 	                </div>
 	                <div className="clearfix">
                     	<div className="half-item">
 	                   		<span className="item-title">技术领域:  </span>
-	                     	<Input  style={{ width: 200 }} />
+	                     	<Input  style={{ width: 200 }} onChange={(e) => { this.state.techField = e.target.value; }} />
 	                	</div>
 	                </div>
 	                <div className="clearfix">
                     	<div>
                             <span className="item-title">项目介绍:  </span>
                         </div>
-                        <Input type="textarea" rows={6} />
+                        <Input type="textarea" rows={6} onChange={(e) => { this.state.projectDes = e.target.value; }} />
                     </div>
                     
                     <div className="clearfix">
                         <div className="half-item">
                             <span className="item-title">是否立项: </span>
-                            <Checkbox ></Checkbox>
+                            <Checkbox onChange={this.projectEstablishmentCheck}></Checkbox>
                         </div>
                         <div className="half-item">
                         	<span className="item-title">立项金额: </span>
-                            <Input style={{ width: 200 }}  />
+                            <Input style={{ width: 200 }} onChange={(e) => { this.state.projectApproval = e.target.value; }}  />
                         </div>
                     </div>
                     <div className="clearfix">

+ 187 - 126
js/component/manageCenter/servicesManage/technology/applyChange.jsx

@@ -1,51 +1,10 @@
 import React from 'react';
 import { Icon, Form, Button, Input, Select, Spin, Table, DatePicker, message, Modal, Checkbox, Upload } from 'antd';
 import { cognizanceStateList } from '../../../dataDic.js';
-import { getCognizanceState, beforeUpload, getBase64 } from '../../../tools.js';
+import { getCognizanceState, beforeUpload, getBase64, beforeUploadFile, downloadFile } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 
-class Avatar extends React.Component {
-    constructor(props) {
-        super(props);
-        this.state = {
-            imageUrl: ''
-        }
-    }
-    handleChange(info) {
-        if (!this.props.oid || this.props.oid === "") {
-            message.warning('请先选择公司!');
-            return;
-        };
-        if (info.file.status === 'done') {
-            // Get this url from response in real world.
-            getBase64(info.file.originFileObj, imageUrl => this.setState({ imageUrl }));
-            this.props.urlData(info.file.response.data);
-        }
-    }
-    render() {
-        const imageUrl = this.state.imageUrl;
-        return (
-            <Upload
-                className="avatar-uploader"
-                name="avatar"
-                showUploadList={false}
-                action={globalConfig.context + "/techservice/patent/patentFile"}
-                data={{ 'sign': this.props.name, 'oid': this.props.oid }}
-                beforeUpload={beforeUpload}
-                onChange={this.handleChange.bind(this)}
-            >
-                {
-                    imageUrl ?
-                        <img src={imageUrl} role="presentation" className="avatar" /> :
-                        <Icon type="plus" className="avatar-uploader-trigger" />
-                }
-            </Upload>
-        );
-    }
-};
-
-
 const ApplyChangeFrom = Form.create()(React.createClass({
     loadData() {
         this.setState({
@@ -55,38 +14,28 @@ const ApplyChangeFrom = Form.create()(React.createClass({
             method: "post",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/cognizanceDetail",
+            url: globalConfig.context + "/api/admintechproject/techProjectDetial",
             data: {
-                cid: this.props.data.cid,
-                uid: this.props.data.uid,
-                year: this.props.data.year
+                pid: this.props.data.pid
             },
             success: function (data) {
+ 
                 if (data.error.length || !data.data) {
                     message.warning(data.error[0].message);
                     return;
                 };
                 this.state.data = data.data;
-                this.state.cid = this.props.data.cid;
-                this.state.moneyTable = [{
-                    key: 1,
-                    year: '第一年',
-                    netAsset: data.data.netAsset1,
-                    salesRevenue: data.data.salesRevenue1,
-                    grossProfit: data.data.grossProfit1
-                }, {
-                    key: 2,
-                    year: '第二年',
-                    netAsset: data.data.netAsset2,
-                    salesRevenue: data.data.salesRevenue2,
-                    grossProfit: data.data.grossProfit2
-                }, {
-                    key: 3,
-                    year: '第三年',
-                    netAsset: data.data.netAsset3,
-                    salesRevenue: data.data.salesRevenue3,
-                    grossProfit: data.data.grossProfit3
-                }];
+
+                if (data.data.projectMode == 1) {
+                    this.state.projectMode = data.data.projectMode;
+                    this.setState({projectModeState:true});
+                }
+                if (data.data.subsidy == 1) {
+                    this.state.subsidy = data.data.subsidy;
+                    this.setState({subsidyState:true});
+                }
+                this.getDepartmentList();
+                this.getContactsList();
             }.bind(this),
         }).always(function () {
             this.setState({
@@ -102,21 +51,22 @@ const ApplyChangeFrom = Form.create()(React.createClass({
             method: "post",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/cognizanceLog",
+            url: globalConfig.context + "/api/admintechproject/techProjectLog",
             data: {
-                cid: this.props.data.cid
+                pid: this.props.data.pid
             },
             success: function (data) {
                 if (data.error.length || !data.data) {
                     message.warning(data.error[0].message);
                     return;
                 };
+                var myDate = new Date();
                 this.state.stateTable = [];
                 for (let i = 0; i < data.data.length; i++) {
                     this.state.stateTable.push({
                         key: i,
-                        recordTimeFormattedDate: data.data[i].recordTimeFormattedDate,
                         state: data.data[i].state,
+                        recordTime: myDate.toLocaleDateString(data.data[i].recordTime),
                         principal: data.data[i].principal,
                         comment: data.data[i].comment
                     });
@@ -128,13 +78,73 @@ const ApplyChangeFrom = Form.create()(React.createClass({
             });
         }.bind(this));
     },
+    getDepartmentList () {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/user/getDepartment",
+            data: {
+                uid: this.props.data.uid,
+            },
+            success: function (data) {
+                if (data.error.length || !data.data) {
+                    message.warning(data.error[0].message);
+                    return;
+                };
+                for (var item in data.data) {
+                    this.state.departmentOption.push(
+                        <Select.Option value={item} key={item}>{data.data[item]}</Select.Option>
+                    )
+                };
+                this.setState({department:data.data[this.state.data.department]});
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    getContactsList() {
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/getContacts",
+            data: {
+                uid: this.props.data.uid,
+            },
+            success: function (data) {
+                let theOption = [];
+                if (data.error.length || !data.data) {
+                    return;
+                };
+                for (let item in data.data) {
+                    let theData = data.data[item];
+                    theOption.push(
+                        <Select.Option value={theData} key={theData}>{theData}</Select.Option>
+                    );
+                };
+                this.setState({
+                    contactsOption: theOption,
+                    contacts: data.data[this.state.data.contacts]
+                });
+            }.bind(this),
+        });
+    },
     getInitialState() {
         return {
             loading: false,
             stateOption: [],
-            introduce:'',
-            projectCheck: 0,
+            departmentOption: [],
+            projectDes:'',
+            projectMode: 0,
             subsidy: 0,
+            projectModeState: false,
+            subsidyState: false,
             stateColumns: [{
                 title: '专利状态',
                 dataIndex: 'state',
@@ -142,8 +152,8 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                 render: (text) => { return getCognizanceState(text) }
             }, {
                 title: '处理时间',
-                dataIndex: 'recordTimeFormattedDate',
-                key: 'recordTimeFormattedDate',
+                dataIndex: 'recordTime',
+                key: 'recordTime'
             }, {
                 title: '负责人',
                 dataIndex: 'principal',
@@ -165,6 +175,7 @@ const ApplyChangeFrom = Form.create()(React.createClass({
         });
         this.loadData();
         this.getStateData();
+        
     },
     handleSubmit(e) {
         e.preventDefault();
@@ -181,13 +192,21 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                     method: "POST",
                     dataType: "json",
                     crossDomain: false,
-                    url: globalConfig.context + "/api/admin/disposeCognizanceDetail",
+                    url: globalConfig.context + "/api/admintechproject/updateTechProject",
                     data: {
-                        id: this.props.data.cid,
-                        technicalField: values.technicalField,
-                        basicResearchCost: values.basicResearchCost,
-                        accident: values.accident,
-
+                        id: this.props.data.pid,
+                        uid: this.props.data.uid,
+                        contacts: values.contacts,
+                        department: values.department,
+                        projectName: values.projectName,
+                        projectCatagory: values.projectCatagory,
+                        techField: values.techField,
+                        projectDes: values.projectDes,
+                        projectMode: this.state.projectMode,
+                        projectApproval: values.projectApproval,
+                        subsidy: this.state.subsidy,
+                        approvalUrl: this.state.approvalUrl,
+                        
                         recordTimeFormattedDate: values.recordTime ? values.recordTime.format("YYYY-MM-DD") : undefined,
                         state: values.state,
                         principal: values.principal,
@@ -198,8 +217,6 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                         message.success('保存成功!');
                         this.props.closeModal();
                         this.props.form.resetFields();
-                        this.state.targetKeys = [];
-                        this.state.selectedKeys = [];
                         this.props.spinState(false);
                     } else {
                         message.warning(data.error[0].message);
@@ -215,26 +232,27 @@ const ApplyChangeFrom = Form.create()(React.createClass({
             this.loadData();
         };
         if (nextProps.data) {
-            this.state.xid = nextProps.data.pid;
+            this.state.pid = nextProps.data.pid;
         }
     },
     projectEstablishmentCheck(e) {
         if (e.target.checked == true) {
-            this.state.projectCheck = 1;
+            this.setState({projectModeState:true})
+            this.state.projectMode = 1;
         } else if (e.target.checked == false) {
-            this.state.projectCheck = 0;
+            this.setState({projectModeState:false})
+            this.state.projectMode = 0;
         };
     },
     subsidyCheck(e) {
         if (e.target.checked == true) {
+            this.setState({subsidyState:true})
             this.state.subsidy = 1;
         } else if (e.target.checked == false) {
+            this.setState({subsidyState:false})
             this.state.subsidy = 0;
         };
     },
-    avatarUrl(e) {
-        this.state.avatarUrl = e;
-    },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
@@ -258,28 +276,38 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                         </div>
                         <div className="half-item">
                             <span className="item-title">公司地址: </span>
-                            <span>{theData.postalAddress}</span>
+                            <span>{theData.province+' '+theData.city+' '+theData.area}</span>
                         </div>
                         <div className="half-item">
-                            <span className="item-title">联系人: </span>
-                            <span>{theData.contacts}</span>
+                            <FormItem 
+                                labelCol={{ span: 4 }}
+                                wrapperCol={{ span: 10 }}
+                                label="联系人:"
+                            >
+                                {getFieldDecorator('contacts', {
+                                    initialValue: this.state.contacts
+                                    })(
+                                        <Select>{this.state.contactsOption}</Select>
+                                    )}      
+                            </FormItem>
                         </div>
                     </div>
-
                     <div className="clearfix">
                         <FormItem className="third-item"
                             {...formItemLayout}
 	                            label="科技部门"
 	                        >
-	                            {getFieldDecorator('technicalDepartment')(
-	                                <Select placeholder="选择科技部门">{this.props.authorOption}</Select>
-	                            )}
+                                {getFieldDecorator('department', {
+                                    initialValue: this.state.department
+                                    })(
+                                        <Select>{this.state.departmentOption}</Select>
+                                    )}
 	                 	</FormItem>
                     </div>
                     <div className="clearfix">
                         <div className="half-item">
                             <span className="item-title">派单信息: </span>
-                            <span>{theData.firmTotal}</span>
+                            <span>{theData.dispatchInfo}</span>
                         </div>
                     </div>
                     <div className="clearfix">
@@ -289,9 +317,11 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                         		wrapperCol={{ span: 12 }}
 		                        label="项目名称"
 		                    >
-		                        {getFieldDecorator('projectName')(
-		                            <Input />
-		                        )}
+                                {getFieldDecorator('projectName', {
+                                    initialValue: theData.projectName
+                                    })(
+                                        <Input />
+                                    )}
 		                    </FormItem>
 	                    </div>
                     </div>
@@ -302,9 +332,11 @@ const ApplyChangeFrom = Form.create()(React.createClass({
 	                        	wrapperCol={{ span: 12 }}
 		                        label="项目类型"
 		                    >
-		                        {getFieldDecorator('projectType')(
-		                            <Input />
-		                        )}
+                                {getFieldDecorator('projectCatagory', {
+                                    initialValue: theData.projectCatagory
+                                    })(
+                                        <Input />
+                                    )}
 		                    </FormItem>
 	                    </div>
                     </div>
@@ -315,55 +347,84 @@ const ApplyChangeFrom = Form.create()(React.createClass({
 	                        	wrapperCol={{ span: 12 }}
 		                        label="技术领域"
 		                    >
-		                        {getFieldDecorator('technicalField')(
-		                            <Input />
-		                        )}
+                                {getFieldDecorator('techField', {
+                                    initialValue: theData.techField
+                                    })(
+                                        <Input />
+                                    )}
 		                    </FormItem>
 		                </div>
                     </div>
                     <div className="clearfix">
                      	<span className="item-title">项目简介: </span>
-                      	<Input type="textarea"
-                          	placeholder="多行输入"
-                         	value={this.state.introduce}
-                          	onChange={(e) => { this.setState({ introduce: e.target.value }); } }
-                          	rows={6} />
+                            {getFieldDecorator('projectDes', {
+                                initialValue: theData.projectDes
+                                })(
+                                    <Input type="textarea"
+                          	            placeholder="多行输入"
+                                        rows={6} />
+                                )}
                     </div>
                     <div className="clearfix">
                         <div className="half-item">
                             <span className="item-title">是否立项: </span>
-                            <Checkbox onChange={this.projectEstablishmentCheck}></Checkbox>
+                            <Checkbox 
+                                onChange={this.projectEstablishmentCheck}
+                                checked={this.state.projectModeState}
+                                >
+                            </Checkbox>
                         </div>
                         <div className="half-item">
                             <FormItem
 			                    {...formItemLayout}
 			                    label="立项金额"
 			                >
-			                    {getFieldDecorator('projectAmounts')(
-			                        <Input className="mini-input" />
-			                    )}
+                                {getFieldDecorator('projectApproval', {
+                                    initialValue: theData.projectApproval
+                                })(
+                                    <Input />
+                                )}
 			                </FormItem>
                         </div>
                     </div>
                     <div className="clearfix">
                         <div className="half-item">
                             <span className="item-title">是否后补助: </span>
-                            <Checkbox onChange={this.subsidyCheck}></Checkbox>
+                            <Checkbox 
+                                onChange={this.subsidyCheck}
+                                checked={this.state.subsidyState}
+                                >
+                            </Checkbox>
                         </div>
                     </div>
-                    <div>
-                    	<FormItem
-			             	{...formItemLayout}
-			              	label="项目材料上传"
-			             	labelCol={{ span: 24 }}
-			           		wrapperCol={{ span: 12 }}
-			          	>
-			           		{getFieldDecorator('avatar')(
-			                 	<Avatar urlData={this.avatarUrl} name='patent_prory_statement' oid={theData.unitName} />
-			            	)}
-			          	</FormItem>
+                    <div className="hrSituation-roster">
+                        <Upload
+                            name="avatar"
+                            action={globalConfig.context + "/api/techproject/upload"}
+                            data={{ 'uid': this.props.data.uid }}
+                            beforeUpload={beforeUploadFile}
+                            showUploadList={false}
+                            onChange={(info) => {
+                                if (info.file.status !== 'uploading') {
+                                    console.log(info.file, info.fileList);
+                                }
+                                if (info.file.status === 'done') {
+                                    if (!info.file.response.error.length) {
+                                        message.success(`${info.file.name} 文件上传成功!`);
+                                    } else {
+                                        message.warning(info.file.response.error[0].message);
+                                        return;
+                                    };
+                                    this.state.approvalUrl = info.file.response.data;
+                                } else if (info.file.status === 'error') {
+                                    message.error(`${info.file.name} 文件上传失败。`);
+                                }
+                            }}
+                        >
+                            <Button><Icon type="upload" /> 项目材料上传 </Button>
+                        </Upload>
+                        <p style={{ marginTop: '10px' }}>{theData.approvalUrl ? <a onClick={downloadFile.bind(null, theData.approvalUrl, theData.approvalDownloadFileName)}>{theData.approvalDownloadFileName}</a> : <span><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />未上传!</span>}</p>
                     </div>
-
                     <div className="form-title">状态流转记录: </div>
                     <Table pagination={false} dataSource={this.state.stateTable} columns={this.state.stateColumns} />
                     <div className="clearfix">

+ 1 - 1
js/component/manageCenter/servicesManage/technology/applyManage.jsx

@@ -45,9 +45,9 @@ const ApplyManage = React.createClass({
                     		thisdata.contacts = thisdata.thirdContacts;
                     		break;
                     }
-                    console.log(thisdata.contacts);
                     this.state.data.push({
                         key: i,
+                        pid: thisdata.id,
                         uid: thisdata.uid,
                         serialNumber: thisdata.serialNumber,
                         province: thisdata.province,

+ 80 - 157
js/component/manageCenter/servicesManage/technology/websiteChange.jsx

@@ -5,46 +5,6 @@ import { getCognizanceState, beforeUpload, getBase64 } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 
-class Avatar extends React.Component {
-    constructor(props) {
-        super(props);
-        this.state = {
-            imageUrl: ''
-        }
-    }
-    handleChange(info) {
-        if (!this.props.oid || this.props.oid === "") {
-            message.warning('请先选择公司!');
-            return;
-        };
-        if (info.file.status === 'done') {
-            // Get this url from response in real world.
-            getBase64(info.file.originFileObj, imageUrl => this.setState({ imageUrl }));
-            this.props.urlData(info.file.response.data);
-        }
-    }
-    render() {
-        const imageUrl = this.state.imageUrl;
-        return (
-            <Upload
-                className="avatar-uploader"
-                name="avatar"
-                showUploadList={false}
-                action={globalConfig.context + "/techservice/patent/patentFile"}
-                data={{ 'sign': this.props.name, 'oid': this.props.oid }}
-                beforeUpload={beforeUpload}
-                onChange={this.handleChange.bind(this)}
-            >
-                {
-                    imageUrl ?
-                        <img src={imageUrl} role="presentation" className="avatar" /> :
-                        <Icon type="plus" className="avatar-uploader-trigger" />
-                }
-            </Upload>
-        );
-    }
-};
-
 
 const WebsiteChangeFrom = Form.create()(React.createClass({
     loadData() {
@@ -55,38 +15,12 @@ const WebsiteChangeFrom = Form.create()(React.createClass({
             method: "post",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admintechproject/",
+            url: globalConfig.context + "/api/admintechproject/techWebsiteDetail",
             data: {
-                cid: this.props.data.cid,
-                uid: this.props.data.uid,
-                year: this.props.data.year
+                id: this.props.data.id
             },
             success: function (data) {
-                if (data.error.length || !data.data) {
-                    message.warning(data.error[0].message);
-                    return;
-                };
                 this.state.data = data.data;
-                this.state.cid = this.props.data.cid;
-                this.state.moneyTable = [{
-                    key: 1,
-                    year: '第一年',
-                    netAsset: data.data.netAsset1,
-                    salesRevenue: data.data.salesRevenue1,
-                    grossProfit: data.data.grossProfit1
-                }, {
-                    key: 2,
-                    year: '第二年',
-                    netAsset: data.data.netAsset2,
-                    salesRevenue: data.data.salesRevenue2,
-                    grossProfit: data.data.grossProfit2
-                }, {
-                    key: 3,
-                    year: '第三年',
-                    netAsset: data.data.netAsset3,
-                    salesRevenue: data.data.salesRevenue3,
-                    grossProfit: data.data.grossProfit3
-                }];
             }.bind(this),
         }).always(function () {
             this.setState({
@@ -94,7 +28,7 @@ const WebsiteChangeFrom = Form.create()(React.createClass({
             });
         }.bind(this));
     },
-    getStateData() {
+    getDepartmentList () {
         this.setState({
             loading: true
         });
@@ -102,24 +36,19 @@ const WebsiteChangeFrom = Form.create()(React.createClass({
             method: "post",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/cognizanceLog",
+            url: globalConfig.context + "/api/user/getDepartment",
             data: {
-                cid: this.props.data
+                uid: this.props.data.uid,
             },
             success: function (data) {
                 if (data.error.length || !data.data) {
                     message.warning(data.error[0].message);
                     return;
                 };
-                this.state.stateTable = [];
-                for (let i = 0; i < data.data.length; i++) {
-                    this.state.stateTable.push({
-                        key: i,
-                        recordTimeFormattedDate: data.data[i].recordTimeFormattedDate,
-                        state: data.data[i].state,
-                        principal: data.data[i].principal,
-                        comment: data.data[i].comment
-                    });
+                for (var item in data.data) {
+                    this.state.departmentOption.push(
+                        <Select.Option value={item} key={item}>{data.data[item]}</Select.Option>
+                    )
                 };
             }.bind(this),
         }).always(function () {
@@ -132,27 +61,10 @@ const WebsiteChangeFrom = Form.create()(React.createClass({
         return {
             loading: false,
             stateOption: [],
+            departmentOption: [],
             introduce:'',
             projectCheck: 0,
             subsidy: 0,
-            stateColumns: [{
-                title: '专利状态',
-                dataIndex: 'state',
-                key: 'state',
-                render: (text) => { return getCognizanceState(text) }
-            }, {
-                title: '处理时间',
-                dataIndex: 'recordTimeFormattedDate',
-                key: 'recordTimeFormattedDate',
-            }, {
-                title: '负责人',
-                dataIndex: 'principal',
-                key: 'principal',
-            }, {
-                title: '备注',
-                dataIndex: 'comment',
-                key: 'comment',
-            }],
             stateTable: []
         };
     },
@@ -164,34 +76,25 @@ const WebsiteChangeFrom = Form.create()(React.createClass({
             )
         });
         this.loadData();
-        this.getStateData();
+        this.getDepartmentList();
     },
     handleSubmit(e) {
         e.preventDefault();
         this.props.form.validateFields((err, values) => {
-            if (values.state || values.principal || values.recordTime || values.comment) {
-                if (!values.state && !values.principal && !values.recordTime) {
-                    message.warning("请填写完整的状态流转信息!");
-                    return;
-                };
-            };
             if (!err) {
                 this.props.spinState(true);
                 $.ajax({
                     method: "POST",
                     dataType: "json",
                     crossDomain: false,
-                    url: globalConfig.context + "/api/admin/disposeCognizanceDetail",
+                    url: globalConfig.context + "/api/admintechproject/disposeTechWebsite",
                     data: {
-                        id: this.props.data.cid,
-                        technicalField: values.technicalField,
-                        basicResearchCost: values.basicResearchCost,
-                        accident: values.accident,
-
-                        recordTimeFormattedDate: values.recordTime ? values.recordTime.format("YYYY-MM-DD") : undefined,
-                        state: values.state,
-                        principal: values.principal,
-                        comment: values.comment,
+                        id: this.state.data.id,
+                        uid: this.state.data.uid,
+                        department: values.department,
+                        website: values.website,
+                        accountNumber: values.accountNumber,
+                        password: values.password,
                     }
                 }).done(function (data) {
                     if (!data.error.length) {
@@ -211,7 +114,6 @@ const WebsiteChangeFrom = Form.create()(React.createClass({
     },
     componentWillReceiveProps(nextProps) {
         if (!this.props.visible && nextProps.visible) {
-            this.getStateData();
             this.loadData();
         };
     },
@@ -229,62 +131,83 @@ const WebsiteChangeFrom = Form.create()(React.createClass({
             this.state.subsidy = 0;
         };
     },
-    avatarUrl(e) {
-        this.state.avatarUrl = e;
-    },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
         const theData = this.state.data;
         const formItemLayout = {
-            labelCol: { span: 6 },
-            wrapperCol: { span: 12 },
+            labelCol: { span: 4 },
+            wrapperCol: { span: 6 },
         };
         const _me = this;
         if (this.state.data) {
             return (
                 <Form onSubmit={this.handleSubmit} id="highTechApply-form">
-                
-                	<div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">选择公司:  </span>
-                            <Select
-                                placeholder="请选择公司"
-                                style={{ width: 200 }}
-                                showSearch
-                                onChange={(e)=>{ this.state.unitName = e;}}>
-                                {this.props.companyOption}
-                            </Select>
-                        </div>
+                    <div className="half-item">
+                        <FormItem 
+                            labelCol={{ span: 8 }}
+	                        wrapperCol={{ span: 12 }}
+	                        label="选择公司:"
+	                    >
+                            {getFieldDecorator('unitName', {
+                                initialValue: theData.unitName
+                                })(
+                                    <Select>{this.props.companyOption}</Select>
+                                )}      
+	                 	</FormItem>
                     </div>
                     <div className="clearfix">
-                    	<div className="half-item">
-                            <span className="item-title">科技部门名称:  </span>
-                            <Input value={this.state.department} onChange={(e) => { this.setState({ department: e.target.value }); }} style={{ width: 200 }} />
-                        </div>
+                        <FormItem 
+                            {...formItemLayout}
+	                            label="科技部门名称:"
+	                        >
+                                {getFieldDecorator('department', {
+                                    initialValue: theData.department
+                                    })(
+                                        <Select>{this.state.departmentOption}</Select>
+                                    )}
+	                 	</FormItem>
                     </div>
-
                     <div className="clearfix">
-	                 	<div className="half-item">
-	                   		<span className="item-title">网址:  </span>
-	                     	<Input value={this.state.website} onChange={(e) => { this.setState({ website: e.target.value }); }} style={{ width: 200 }} />
-	                	</div>
+                        <FormItem 
+                            {...formItemLayout}
+	                            label="网址:"
+	                        >
+                                {getFieldDecorator('website', {
+                                    initialValue: theData.website
+                                    })(
+                                        <Input />
+                                    )}
+	                 	</FormItem>
                     </div>
                     <div className="clearfix">
-                    	<div className="half-item">
-	                   		<span className="item-title">账号:  </span>
-	                     	<Input value={this.state.accountNumber} onChange={(e) => { this.setState({ accountNumber: e.target.value }); }} style={{ width: 200 }} />
-	                	</div>
-	                </div>
-	                <div className="clearfix">
-                    	<div className="half-item">
-	                   		<span className="item-title">密码:  </span>
-	                     	<Input value={this.state.password} onChange={(e) => { this.setState({ password: e.target.value }); }} style={{ width: 200 }} />
-	                	</div>
-	                </div>
-	                
-	                
-                    
+                        <FormItem 
+                            {...formItemLayout}
+	                            label="账号:"
+	                        >
+                                {getFieldDecorator('accountNumber', {
+                                    initialValue: theData.accountNumber
+                                    })(
+                                        <Input />
+                                    )}
+	                 	</FormItem>
+                    </div>
+                    <div className="clearfix">
+                        <FormItem 
+                            {...formItemLayout}
+	                            label="密码:"
+	                        >
+                                {getFieldDecorator('password', {
+                                    initialValue: theData.password
+                                    })(
+                                        <Input />
+                                    )}
+	                 	</FormItem>
+                    </div>
+                    <FormItem style={{ marginTop: '20px' }}>
+                        <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
+                        <Button type="ghost" style={{ marginLeft: '20px' }} onClick={this.props.closeModal}>取消</Button>
+                    </FormItem>
                 </Form >
             );
         } else {
@@ -336,7 +259,7 @@ const WebsiteChange = React.createClass({
                     >
                         <WebsiteChangeFrom
                             visible={this.state.visible}
-                            authorOption={this.props.authorOption}
+                            companyOption={this.props.companyOption}
                             data={this.props.data}
                             spinState={this.spinChange} closeModal={this.handleCancel} />
                     </Modal>

+ 1 - 29
js/component/manageCenter/servicesManage/technology/websiteManage.jsx

@@ -35,6 +35,7 @@ const Cognizance = React.createClass({
                     let thisdata = data.data.list[i];
                     this.state.data.push({
                         key: i,
+                        id: thisdata.id,
                         uid: thisdata.uid,
                         unitName: thisdata.unitName,
 						department: thisdata.department,
@@ -56,32 +57,6 @@ const Cognizance = React.createClass({
             });
         }.bind(this));
     },
-    getAuthorList() {
-        this.setState({
-            loading: true
-        });
-        $.ajax({
-            method: "get",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/techservice/patent/getAdmin",
-            success: function (data) {
-                if (data.error.length || !data.data) {
-                    return;
-                };
-                let _me = this;
-                for (var item in data.data) {
-                    _me.state.authorOption.push(
-                        <Select.Option value={item} key={item}>{data.data[item]}</Select.Option>
-                    )
-                };
-            }.bind(this),
-        }).always(function () {
-            this.setState({
-                loading: false
-            });
-        }.bind(this));
-    },
     getCompanyList() {
         this.setState({
             loading: true
@@ -163,7 +138,6 @@ const Cognizance = React.createClass({
             )
         });
         this.loadData();
-        this.getAuthorList();
         this.getCompanyList();
         //        this.getContactsList();
     },
@@ -267,12 +241,10 @@ const Cognizance = React.createClass({
                 </div>
                 <WebsiteChange
                     data={this.state.RowData}
-                    authorOption={this.state.authorOption}
                     companyOption={this.state.companyOption}
                     showDesc={this.state.showDesc}
                     closeDesc={this.closeDesc} />
                 <WebsiteAdd
-                    authorOption={this.state.authorOption}
                     companyOption={this.state.companyOption}
                     showAdd={this.state.showAdd}
                     closeAdd={this.closeAdd} />

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "afanti",
-  "version": "1.0.8",
+  "version": "1.0.10",
   "description": "",
   "main": "index.js",
   "scripts": {