Browse Source

v1.0.6 bug修复,上传下载完成

yee 8 years ago
parent
commit
87a19a76d9
25 changed files with 483 additions and 287 deletions
  1. 19 10
      js/component/account/services/achievement.jsx
  2. 4 4
      js/component/account/services/activityCostList.jsx
  3. 2 2
      js/component/account/services/annualReport.jsx
  4. 31 9
      js/component/account/services/cognizance.jsx
  5. 20 12
      js/component/account/services/finance.jsx
  6. 22 11
      js/component/account/services/honorList.jsx
  7. 2 0
      js/component/account/services/intellectual.jsx
  8. 19 6
      js/component/account/services/intellectualDesc.jsx
  9. 0 1
      js/component/account/services/patent.jsx
  10. 52 49
      js/component/account/services/patent.less
  11. 33 69
      js/component/account/services/patentAdd.jsx
  12. 59 12
      js/component/account/services/patentDesc.jsx
  13. 7 8
      js/component/account/services/ratepay.jsx
  14. 1 1
      js/component/account/set/company.jsx
  15. 37 17
      js/component/account/set/hrSituation.jsx
  16. 55 9
      js/component/manageCenter/servicesManage/highTech/HighTechApply.jsx
  17. 18 10
      js/component/manageCenter/servicesManage/highTech/fosterDesc/achievement.jsx
  18. 3 3
      js/component/manageCenter/servicesManage/highTech/fosterDesc/activityCostList.jsx
  19. 8 8
      js/component/manageCenter/servicesManage/highTech/fosterDesc/finance.jsx
  20. 20 10
      js/component/manageCenter/servicesManage/highTech/fosterDesc/honorList.jsx
  21. 36 15
      js/component/manageCenter/servicesManage/highTech/fosterDesc/hrSituation.jsx
  22. 2 0
      js/component/manageCenter/servicesManage/highTech/fosterDesc/intellectual.jsx
  23. 25 12
      js/component/manageCenter/servicesManage/highTech/fosterDesc/intellectualDesc.jsx
  24. 7 8
      js/component/manageCenter/servicesManage/highTech/fosterDesc/ratepay.jsx
  25. 1 1
      package.json

+ 19 - 10
js/component/account/services/achievement.jsx

@@ -1,7 +1,7 @@
 import React from 'react';
 import { Icon, Form, Button, Input, Spin, Table, message, Select, Modal, InputNumber, Upload } from 'antd';
 import './techProduct.less';
-import { getConversionForm, beforeUploadFile } from '../../tools.js';
+import { getConversionForm, beforeUploadFile, downloadFile } from '../../tools.js';
 import { conversionFormList, technicalSourceList } from '../../dataDic.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -82,6 +82,11 @@ const AchievementDescFrom = Form.create()(React.createClass({
             }
         });
     },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.props.form.resetFields();
+        };
+    },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
@@ -156,8 +161,9 @@ const AchievementDescFrom = Form.create()(React.createClass({
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'enclosure' }}
+                        data={{ 'sign': 'achievement' }}
                         beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -165,17 +171,19 @@ const AchievementDescFrom = Form.create()(React.createClass({
                             if (info.file.status === 'done') {
                                 if (!info.file.response.error.length) {
                                     message.success(`${info.file.name} 文件上传成功!`);
-                                    this.state.enclosureUrl = info.file.response.data;
                                 } else {
                                     message.warning(info.file.response.error[0].message);
+                                    return;
                                 };
+                                this.state.enclosureUrl = info.file.response.data;
                             } else if (info.file.status === 'error') {
                                 message.error(`${info.file.name} 文件上传失败。`);
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传件 </Button>
+                        <Button><Icon type="upload" /> 上传科技成果附件 </Button>
                     </Upload>
+                    <p style={{ marginTop: '10px' }}>{theData.enclosureUrl ? <a onClick={downloadFile.bind(null, theData.enclosureUrl, theData.enclosureDownloadFileName)}>{theData.enclosureDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <FormItem style={{ marginTop: '20px' }}>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
@@ -229,8 +237,9 @@ const AchievementDesc = React.createClass({
                     >
                         <AchievementDescFrom
                             data={this.props.data}
+                            visible={this.state.visible}
                             activityNumberList={this.props.activityNumberList}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>
@@ -281,6 +290,8 @@ const Achievement = React.createClass({
                     conversionResult: thisdata.conversionResult,
                     year: thisdata.year,
                     enclosureUrl: thisdata.enclosureUrl,
+                    enclosureDownloadFileName: thisdata.enclosureDownloadFileName,
+                    enclosure: [thisdata.enclosureUrl, thisdata.enclosureDownloadFileName]
                 });
             };
             this.state.activityNumberList = activityNumber.data;
@@ -337,12 +348,10 @@ const Achievement = React.createClass({
                     key: 'conversionResult',
                 }, {
                     title: '相关附件',
-                    dataIndex: 'enclosureUrl',
-                    key: 'enclosureUrl',
+                    dataIndex: 'enclosure',
+                    key: 'enclosure',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <a onClick={downloadFile.bind(null, text[0], text[1])}>{text[1]}</a>
                     }
                 }
             ],

+ 4 - 4
js/component/account/services/activityCostList.jsx

@@ -1,7 +1,7 @@
 import React from 'react';
 import { Icon, Form, Upload, Button, Input, Spin, Table, message, Select, Modal, DatePicker, InputNumber } from 'antd';
 import './activityCostList.less';
-import { beforeUploadFile,downloadFile } from '../../tools.js';
+import { beforeUploadFile, downloadFile } from '../../tools.js';
 import moment from 'moment';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -290,7 +290,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                     >
                         <Button><Icon type="upload" /> 上传研发费用台账 </Button>
                     </Upload>
-                    <p>{theData.accountUrl ? <a onClick={downloadFile.bind(null, theData.accountUrl, theData.accountDownloadFileName)}>{theData.accountDownloadFileName}</a> : <span>未上传!</span>}</p>
+                    <p style={{ marginTop: '20px' }}>{theData.accountUrl ? <a onClick={downloadFile.bind(null, theData.accountUrl, theData.accountDownloadFileName)}>{theData.accountDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <FormItem style={{ marginTop: '20px' }}>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
@@ -320,7 +320,7 @@ const ActivityDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -343,7 +343,7 @@ const ActivityDesc = React.createClass({
                         footer=''
                     >
                         <ActivityDescFrom data={this.props.data} activityNumberList={this.props.activityNumberList}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>

+ 2 - 2
js/component/account/services/annualReport.jsx

@@ -330,11 +330,11 @@ const AnnualReportDesc = React.createClass({
             }
         }).done((data) => {
             let thisdata = data.data;
-            if (!thisData) {
+            if (!thisdata) {
                 if (data.error && data.error.length) {
                     message.warning(data.error[0].message);
                 };
-                thisData = {};
+                thisdata = {};
             };
             this.state.detailData = {
                 id: thisdata.id,

+ 31 - 9
js/component/account/services/cognizance.jsx

@@ -209,10 +209,17 @@ const CognizanceDescFrom = Form.create()(React.createClass({
                             <span className="item-title">公司地址: </span>
                             <span>{theData.postalAddress}</span>
                         </div>
-                        <div className="half-item">
-                            <span className="item-title">联系人: </span>
-                            <span>{theData.contacts}</span>
-                        </div>
+                        <FormItem className="half-item"
+                            labelCol={{ span: 6 }}
+                            wrapperCol={{ span: 14 }}
+                        >
+                            {getFieldDecorator('contacts', {
+                                rules: [{ required: true, message: '此项为必填项!' }],
+                                initialValue: theData.contacts
+                            })(
+                                <Select placeholder='选择一个联系人'>{this.props.contactsOption}</Select>
+                                )}
+                        </FormItem>
                     </div>
                     <FormItem style={{ width: '50%' }}
                         labelCol={{ span: 0 }}
@@ -362,8 +369,11 @@ const CognizanceDesc = React.createClass({
                     >
                         <CognizanceDescFrom
                             visible={this.state.visible}
+                            contactsOption={this.props.contactsOption}
                             data={this.props.data}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            spinState={this.spinChange}
+                            closeModal={this.handleCancel}
+                            clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>
@@ -532,9 +542,9 @@ const Cognizance = React.createClass({
             };
             let _me = this;
             for (let item in data1[0].data) {
-                let theData = item + ' -- ' + data1[0].data[item];
+                let theData = data1[0].data[item];
                 _me.state.contactsOption.push(
-                    <Select.Option value={theData} key={theData}>{theData}</Select.Option>
+                    <Select.Option value={item} key={theData}>{theData}</Select.Option>
                 );
             };
             for (let i = 0; i < data2[0].data.list.length; i++) {
@@ -547,7 +557,11 @@ const Cognizance = React.createClass({
                     serialNumber: thisdata.serialNumber,
                     locationProvince: thisdata.locationProvince,
                     unitName: thisdata.unitName,
-                    contacts: thisdata.contacts,
+                    contacts: [thisdata.contacts, {
+                        '1': thisdata.firstContacts,
+                        '2': thisdata.secondContacts,
+                        '3': thisdata.thirdContacts
+                    }],
                     createTime: thisdata.createTime,
                     comment: thisdata.comment,
                     state: thisdata.state,
@@ -598,7 +612,14 @@ const Cognizance = React.createClass({
                 }, {
                     title: '联系人',
                     dataIndex: 'contacts',
-                    key: 'contacts'
+                    key: 'contacts',
+                    render: (text) => {
+                        for (let item in text[1]) {
+                            if (text[0] == item) {
+                                return text[1][item];
+                            };
+                        };
+                    }
                 }, {
                     title: '派单日',
                     dataIndex: 'createTimeFormattedDate',
@@ -730,6 +751,7 @@ const Cognizance = React.createClass({
                 </div>
                 <CognizanceDesc
                     data={this.state.RowData}
+                    contactsOption={this.state.contactsOption}
                     showDesc={this.state.showDesc}
                     closeDesc={this.closeDesc} />
                 <CognizanceAdd

+ 20 - 12
js/component/account/services/finance.jsx

@@ -1,7 +1,7 @@
 import React from 'react';
 import { Icon, Form, Button, Input, Spin, Table, message, Select, Modal, InputNumber, Upload } from 'antd';
 import './techProduct.less';
-import { beforeUpload } from '../../tools.js';
+import { beforeUploadFile, downloadFile } from '../../tools.js';
 import moment from 'moment';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -67,6 +67,11 @@ const FinanceDescFrom = Form.create()(React.createClass({
             }
         });
     },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.props.form.resetFields();
+        };
+    },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
@@ -211,8 +216,9 @@ const FinanceDescFrom = Form.create()(React.createClass({
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'finance' }}
-                        beforeUpload={beforeUpload}
+                        data={{ 'sign': 'finance_' + ( this.state.year || theData.year ) }}
+                        beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -230,8 +236,9 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传文件 </Button>
+                        <Button><Icon type="upload" /> 上传企业财务报表 </Button>
                     </Upload>
+                    <p style={{ marginTop: '10px' }}>{theData.financeUrl ? <a onClick={downloadFile.bind(null, theData.financeUrl, theData.financeDownloadFileName)}>{theData.financeDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <FormItem style={{ marginTop: '20px' }}>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
@@ -261,7 +268,7 @@ const FinanceDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -284,8 +291,9 @@ const FinanceDesc = React.createClass({
                         footer=''
                     >
                         <FinanceDescFrom
+                            visible={this.state.visible}
                             data={this.props.data}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>
@@ -331,7 +339,9 @@ const Finance = React.createClass({
                     netProfit: thisdata.netProfit,
                     salesRevenue: thisdata.salesRevenue,
                     year: thisdata.year,
-                    financeUrl: thisdata.financeUrl
+                    financeUrl: thisdata.financeUrl,
+                    financeDownloadFileName: thisdata.financeDownloadFileName,
+                    finance: [thisdata.financeUrl, thisdata.financeDownloadFileName]
                 });
             };
             this.state.pagination.current = data.data.pageNo;
@@ -394,12 +404,10 @@ const Finance = React.createClass({
                     key: 'netAsset',
                 }, {
                     title: '相关附件',
-                    dataIndex: 'financeUrl',
-                    key: 'financeUrl',
+                    dataIndex: 'finance',
+                    key: 'finance',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <a onClick={downloadFile.bind(null, text[0], text[1])}>{text[1]}</a>
                     }
                 }
             ],

+ 22 - 11
js/component/account/services/honorList.jsx

@@ -1,7 +1,7 @@
 import React from 'react';
 import { Icon, Form, Button, Input, Spin, Table, message, Modal, Upload, DatePicker } from 'antd';
 import './techProduct.less';
-import { beforeUploadFile } from '../../tools.js';
+import { beforeUploadFile, downloadFile } from '../../tools.js';
 import moment from 'moment';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -43,6 +43,11 @@ const HonorListDescFrom = Form.create()(React.createClass({
             }
         });
     },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.props.form.resetFields();
+        };
+    },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
@@ -93,8 +98,9 @@ const HonorListDescFrom = Form.create()(React.createClass({
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'enclosure' }}
+                        data={{ 'sign': 'achievement' }}
                         beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -112,8 +118,9 @@ const HonorListDescFrom = Form.create()(React.createClass({
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传件 </Button>
+                        <Button><Icon type="upload" /> 上传科技成果附件 </Button>
                     </Upload>
+                    <p style={{ marginTop: '10px' }}>{theData.enclosureUrl ? <a onClick={downloadFile.bind(null, theData.enclosureUrl, theData.enclosureDownloadFileName)}>{theData.enclosureDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <FormItem style={{ marginTop: '20px' }}>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
@@ -143,7 +150,7 @@ const HonorListDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -165,8 +172,12 @@ const HonorListDesc = React.createClass({
                         width='800px'
                         footer=''
                     >
-                        <HonorListDescFrom data={this.props.data}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                        <HonorListDescFrom
+                            data={this.props.data}
+                            spinState={this.spinChange}
+                            visible={this.state.visible}
+                            closeModal={this.handleCancel}
+                            clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>
@@ -203,6 +214,8 @@ const HonorList = React.createClass({
                     name: thisdata.name,
                     issuingTime: thisdata.issuingTime,
                     enclosureUrl: thisdata.enclosureUrl,
+                    enclosureDownloadFileName: thisdata.enclosureDownloadFileName,
+                    enclosure: [thisdata.enclosureUrl, thisdata.enclosureDownloadFileName],
                     issuingTimeFormattedDate: thisdata.issuingTimeFormattedDate,
                     issuingMechanism: thisdata.issuingMechanism
                 });
@@ -251,12 +264,10 @@ const HonorList = React.createClass({
                     key: 'issuingMechanism'
                 }, {
                     title: '相关附件',
-                    dataIndex: 'enclosureUrl',
-                    key: 'enclosureUrl',
+                    dataIndex: 'enclosure',
+                    key: 'enclosure',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <a onClick={downloadFile.bind(null, text[0], text[1])}>{text[1]}</a>
                     }
                 }
             ],

+ 2 - 0
js/component/account/services/intellectual.jsx

@@ -45,6 +45,8 @@ const Intellectual = React.createClass({
                     authorizationDate: thisdata.authorizationDate,
                     evaluationCategory: thisdata.evaluationCategory,
                     authorizationDateFormattedDate: thisdata.authorizationDateFormattedDate,
+                    propertyRightUrl:thisdata.propertyRightUrl,
+                    propertyRightDownloadFileName:thisdata.propertyRightDownloadFileName
                 });
             };
             this.state.pagination.current = data.data.pageNo;

+ 19 - 6
js/component/account/services/intellectualDesc.jsx

@@ -2,7 +2,7 @@ import React from 'react';
 import { Icon, Modal, Button, Form, message, Input, Spin, Select, DatePicker, Upload } from 'antd';
 import './patent.less';
 import { intellectualGetList, catagoryList } from '../../dataDic.js';
-import { beforeUploadFile } from '../../tools.js';
+import { beforeUploadFile, downloadFile } from '../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
 import moment from 'moment';
@@ -70,6 +70,11 @@ const IntellectualDescFrom = Form.create()(React.createClass({
             callback();
         }
     },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.props.form.resetFields();
+        };
+    },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
@@ -78,6 +83,7 @@ const IntellectualDescFrom = Form.create()(React.createClass({
             wrapperCol: { span: 12 },
         };
         const _me = this;
+        const theData = this.props.data;
         return (
             <Form horizontal onSubmit={this.handleSubmit}>
                 <FormItem
@@ -164,12 +170,13 @@ const IntellectualDescFrom = Form.create()(React.createClass({
                             onChange={(data, dataString) => { this.state.authorizationDateFormattedDate = dataString }} />
                         )}
                 </FormItem>
-                <FormItem>
+                <div>
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'propertyRight' }}
+                        data={{ 'sign': 'property_ritht' }}
                         beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -189,7 +196,8 @@ const IntellectualDescFrom = Form.create()(React.createClass({
                     >
                         <Button><Icon type="upload" /> 上传知识产权证书 </Button>
                     </Upload>
-                </FormItem>
+                    <p style={{ margin: '10px 0' }}>{theData.propertyRightUrl ? <a onClick={downloadFile.bind(null, theData.propertyRightUrl, theData.propertyRightDownloadFileName)}>{theData.propertyRightDownloadFileName}</a> : <span>未上传!</span>}</p>
+                </div>
                 <FormItem>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
                     <Button type="ghost" style={{ marginLeft: '20px' }} onClick={this.props.closeModal}>取消</Button>
@@ -219,7 +227,7 @@ const intellectualDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -241,7 +249,12 @@ const intellectualDesc = React.createClass({
                         width='600px'
                         footer=''
                     >
-                        <IntellectualDescFrom data={this.props.data} spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                        <IntellectualDescFrom
+                            visible={this.state.visible}
+                            data={this.props.data}
+                            spinState={this.spinChange}
+                            closeModal={this.handleCancel}
+                            clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>

+ 0 - 1
js/component/account/services/patent.jsx

@@ -89,7 +89,6 @@ const Patent = React.createClass({
             patentStateOption: [],
             data: [],
             //dataSource: [],
-            download: globalConfig.context + '/api/warningreports/download',
             loading: false,
             pagination: {
                 defaultCurrent: 1,

+ 52 - 49
js/component/account/services/patent.less

@@ -44,62 +44,65 @@
     }
 }
 
-.ant-modal-content {
-    .ant-modal-header {
-        padding: 10px 16px;
-        background: #2d2d2d;
-        .ant-modal-title {
-            color: #fff;
-            font-size: 16px;
-            font-weight: 400;
+.patent-from {
+    .ant-modal-content {
+        .ant-modal-header {
+            padding: 10px 16px;
+            background: #2d2d2d;
+            .ant-modal-title {
+                color: #fff;
+                font-size: 16px;
+                font-weight: 400;
+            }
         }
-    }
-    .ant-modal-body {
-        padding:16px 26px;
-        .ant-form-item-label {
-            text-align: left;
+        .ant-modal-body {
+            padding: 16px 26px;
+            .ant-form-item-label {
+                text-align: left;
+            }
+            .ant-form-item-control {
+                .mini-input {
+                    width: 50%;
+                }
+                .ant-checkbox-wrapper {
+                    margin-left: 60px;
+                    span {
+                        vertical-align: middle;
+                    }
+                }
+            }
+            .ant-form-item {
+                margin-bottom: 12px;
+            }
+        }
+        .avatar-uploader,
+        .avatar-uploader-trigger,
+        .avatar {
+            width: 150px;
+            height: 150px;
+        }
+        .avatar-uploader {
+            display: block;
+            border: 1px dashed #d9d9d9;
+            border-radius: 6px;
+            cursor: pointer;
+        }
+        .avatar-uploader-trigger {
+            display: table-cell;
+            vertical-align: middle;
+            font-size: 28px;
+            color: #999;
         }
-       .ant-form-item-control  {
-           .mini-input {
-               width: 50%;
-           }
-           .ant-checkbox-wrapper {
-               margin-left: 60px;
-               span {
-                   vertical-align: middle;
-               }
-           }
-       }
-       .ant-form-item {
-           margin-bottom: 12px;
-       } 
-    }
-    .avatar-uploader,
-    .avatar-uploader-trigger,
-    .avatar {
-        width: 150px;
-        height: 150px;
-    }
-    .avatar-uploader {
-        display: block;
-        border: 1px dashed #d9d9d9;
-        border-radius: 6px;
-        cursor: pointer;
-    }
-    .avatar-uploader-trigger {
-        display: table-cell;
-        vertical-align: middle;
-        font-size: 28px;
-        color: #999;
     }
 }
+
 .patent-desc-content {
-    .ant-modal-body{
-        > div {
+    .ant-modal-body {
+        >div {
             color: #333;
             margin-bottom: 20px;
             .widthHalf {
-                display:inline-block;
+                display: inline-block;
                 width: 50%;
             }
             span {
@@ -115,7 +118,7 @@
             }
         }
         .time-line {
-            width:200px;
+            width: 200px;
             margin: 0 auto;
             .ant-timeline-item-content {
                 span {

+ 33 - 69
js/component/account/services/patentAdd.jsx

@@ -1,63 +1,10 @@
 import React from 'react';
 import { Icon, Modal, Button, Form, Upload, message, Input, Spin, Checkbox } from 'antd';
+import { beforeUploadFile, downloadFile } from '../../tools.js';
 import './patent.less';
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
 
-function getBase64(img, callback) {
-    const reader = new FileReader();
-    reader.addEventListener('load', () => callback(reader.result));
-    reader.readAsDataURL(img);
-};
-
-function beforeUpload(file) {
-    const isJPG = file.type === 'image/jpeg';
-    if (!isJPG) {
-        message.error('You can only upload JPG file!');
-    }
-    const isLt2M = file.size / 1024 / 1024 < 2;
-    if (!isLt2M) {
-        message.error('Image must smaller than 2MB!');
-    }
-    return isJPG && isLt2M;
-};
-
-class Avatar extends React.Component {
-    constructor(props) {
-        super(props);
-        this.state = {
-            imageUrl: ''
-        }
-    }
-    handleChange(info) {
-        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 }}
-                beforeUpload={beforeUpload}
-                onChange={this.handleChange.bind(this)}
-            >
-                {
-                    imageUrl ?
-                        <img src={imageUrl} role="presentation" className="avatar" /> :
-                        <Icon type="plus" className="avatar-uploader-trigger" />
-                }
-            </Upload>
-        );
-    }
-};
-
 const PatentAddFrom = Form.create()(React.createClass({
     getInitialState() {
         return {
@@ -87,7 +34,7 @@ const PatentAddFrom = Form.create()(React.createClass({
                         'firstInventorIsPublish': this.state.firstCheck,
                         'secondInventorIsPublish': this.state.secondCheck,
                         'thirdInventorIsPublish': this.state.thirdCheck,
-                        'patentProryStatementUrl': this.state.avatarUrl
+                        'patentProryStatementUrl': this.state.patentProryStatementUrl
                     }
                 }).done(function (data) {
                     if (!data.error.length) {
@@ -143,7 +90,7 @@ const PatentAddFrom = Form.create()(React.createClass({
         };
         const _me = this;
         return (
-            <Form horizontal onSubmit={this.handleSubmit} className="person-form">
+            <Form horizontal onSubmit={this.handleSubmit} className="patent-form">
                 <FormItem
                     labelCol={{ span: 24 }}
                     wrapperCol={{ span: 24 }}
@@ -199,17 +146,34 @@ const PatentAddFrom = Form.create()(React.createClass({
                     )}
                     <Checkbox onChange={this.thirdInventorCheck}>是否同意专利局公布</Checkbox>
                 </FormItem>
-                <FormItem
-                    {...formItemLayout}
-                    label="上传代理委托书"
-                    labelCol={{ span: 24 }}
-                    wrapperCol={{ span: 12 }}
-                >
-                    {getFieldDecorator('avatar')(
-                        <Avatar urlData={this.avatarUrl} name='patent_prory_statement' />
-                    )}
-                    <span>请上传专利代理委托书</span><a onClick={() => { window.open(globalConfig.context + "/open/downloadTemplateFile?sign=patent_prory_statement") }}>模板下载</a>
-                </FormItem>
+                <div className="hrSituation-roster">
+                    <Upload
+                        name="ratepay"
+                        action={globalConfig.context + "/techservice/cognizance/upload"}
+                        data={{ 'sign': 'patent_prory_statement' }}
+                        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.patentProryStatementUrl = info.file.response.data;
+                            } else if (info.file.status === 'error') {
+                                message.error(`${info.file.name} 文件上传失败。`);
+                            }
+                        }}
+                    >
+                        <Button><Icon type="upload" /> 上传专利代理委托书 </Button>
+                    </Upload>
+                    <a onClick={() => { window.open(globalConfig.context + "/open/downloadTemplateFile?sign=patent_prory_statement") }}>专利代理委托书模板下载</a>
+                </div>
                 <FormItem>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
                     <Button type="ghost" style={{ marginLeft: '20px' }} onClick={this.props.closeModal}>取消</Button>
@@ -236,7 +200,7 @@ const PatentAdd = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -259,7 +223,7 @@ const PatentAdd = React.createClass({
                         width='720px'
                         footer=''
                     >
-                        <PatentAddFrom spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                        <PatentAddFrom spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>

+ 59 - 12
js/component/account/services/patentDesc.jsx

@@ -1,6 +1,6 @@
 import React from 'react';
 import { Icon, Modal, message, Spin, Timeline, Button } from 'antd';
-import { getPatentState, getTime } from '../../tools.js';
+import { getPatentType, getPatentState, getTime, getPatentField } from '../../tools.js';
 import './patent.less';
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
@@ -22,9 +22,10 @@ const PatentDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     getStepList(thepid) {
+        this.state.stepList = [];
         $.ajax({
             method: "post",
             dataType: "json",
@@ -34,7 +35,7 @@ const PatentDesc = React.createClass({
                 pid: thepid
             },
             success: function (data) {
-                if ( data.error && data.error.length && !data.data) {
+                if (data.error && data.error.length && !data.data) {
                     return;
                 };
                 let _me = this;
@@ -49,10 +50,56 @@ const PatentDesc = React.createClass({
             }.bind(this),
         });
     },
+    getPatentInfo(thepid) {
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/techservice/patent/clientPatentInfo",
+            data: {
+                patentId: thepid
+            },
+            success: function (data) {
+                let thisData = data.data;
+                if (data.error && data.error.length && !data.data) {
+                    return;
+                };
+                this.setState({
+                    serialNumber: thisData.serialNumber,
+                    patentNumber: thisData.patentNumber,
+                    patentName: thisData.patentName,
+                    patentCatagory: thisData.patentCatagory,
+                    patentState: thisData.patentState,
+                    patentField: thisData.patentField,
+                    patentDes: thisData.patentDes,
+                    patentProryStatementUrl: thisData.patentProryStatementUrl,
+                    patentWritingUrl: thisData.patentWritingUrl,
+                    authorizationNoticeUrl: thisData.authorizationNoticeUrl,
+                    patentCertificateUrl: thisData.patentCertificateUrl,
+                    patentApplicationDate: thisData.patentApplicationDate,
+                    firstInventorName: thisData.firstInventorName,
+                    firstInventorNationality: thisData.firstInventorNationality,
+                    firstInventorIdNumber: thisData.firstInventorIdNumber,
+                    firstInventorIsPublish: thisData.firstInventorIsPublish,
+                    secondInventorName: thisData.secondInventorName,
+                    secondInventorNationality: thisData.secondInventorNationality,
+                    secondInventorIsPublish: thisData.secondInventorIsPublish,
+                    thirdInventorName: thisData.thirdInventorName,
+                    thirdInventorNationality: thisData.thirdInventorNationality,
+                    thirdInventorIsPublish: thisData.thirdInventorIsPublish,
+                    createTime: thisData.createTime,
+                    author: thisData.author,
+                    office: thisData.office,
+                    principal: thisData.principal,
+                });
+            }.bind(this),
+        });
+    },
     componentWillReceiveProps(nextProps) {
         this.state.visible = nextProps.showDesc
         if (nextProps.data && nextProps.data.pid !== null) {
             this.getStepList(nextProps.data.pid);
+            this.getPatentInfo(nextProps.data.pid);
         }
     },
     handleCancel(e) {
@@ -87,7 +134,7 @@ const PatentDesc = React.createClass({
         }.bind(this));
     },
     render() {
-        const theData = this.props.data;
+        let theData = this.state;
         if (this.props.data) {
             return (
                 <div className="patent-desc">
@@ -98,16 +145,16 @@ const PatentDesc = React.createClass({
                             footer=''
                             className="patent-desc-content">
                             <div>
-                                <p className="widthHalf"><span>编号:</span>{theData.number}</p>
-                                <p className="widthHalf"><span>申请号/专利号:</span>{theData.patentNum}</p>
+                                <p className="widthHalf"><span>编号:</span>{theData.serialNumber}</p>
+                                <p className="widthHalf"><span>申请号/专利号:</span>{theData.patentNumber}</p>
                             </div>
                             <div>
                                 <p className="widthHalf"><span>专利名称:</span>{theData.patentName}</p>
-                                <p className="widthHalf"><span>专利类型:</span>{theData.patentType}</p>
+                                <p className="widthHalf"><span>专利类型:</span>{getPatentType(theData.patentCatagory)}</p>
                             </div>
                             <div>
-                                <p className="widthHalf"><span>专利状态:</span>{theData.patentState}</p>
-                                <p className="widthHalf"><span>专利领域:</span>{theData.patentField}</p>
+                                <p className="widthHalf"><span>专利状态:</span>{getPatentState(theData.patentState)}</p>
+                                <p className="widthHalf"><span>专利领域:</span>{getPatentField(theData.patentField)}</p>
                             </div>
                             <div>
                                 <span>简介:</span>{theData.patentDes}
@@ -121,19 +168,19 @@ const PatentDesc = React.createClass({
                                             <Button onClick={this.confirmButton}>确认稿件</Button> : <span></span>
                                         }
                                     </p> :
-                                    <span></span>
+                                    <span>专利稿件未上传</span>
                                 }
                                 {theData.authorizationNoticeUrl !== null && theData.authorizationNoticeUrl !== undefined && theData.authorizationNoticeUrl !== '' ?
                                     <p className="download-file">
                                         <a href="" onClick={this.downloadFile.bind(this, theData.authorizationNoticeUrl, "authorization_notice")}>授权通知书</a>
                                     </p> :
-                                    <span></span>
+                                    <span>授权通知书未上传</span>
                                 }
                                 {theData.patentCertificateUrl !== null && theData.patentCertificateUrl !== undefined && theData.patentCertificateUrl !== '' ?
                                     <p className="download-file">
                                         <a href="" onClick={this.downloadFile.bind(this, theData.patentCertificateUrl, "patent_certificate")}>专利证书</a>
                                     </p> :
-                                    <span></span>
+                                    <span>专利证书未上传</span>
                                 }
                             </div>
                             <div>

+ 7 - 8
js/component/account/services/ratepay.jsx

@@ -194,7 +194,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': 'ratepay_' + this.state.year || theData.year }}
+                        data={{ 'sign': 'ratepay_' + ( this.state.year || theData.year ) }}
                         beforeUpload={beforeUploadFile}
                         showUploadList={false}
                         onChange={(info) => {
@@ -214,7 +214,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传高新技术产品台帐 </Button>
+                        <Button><Icon type="upload" /> 上传企业纳税申报表 </Button>
                     </Upload>
                     <p style={{ marginTop: '10px' }}>{theData.taxReturnUrl ? <a onClick={downloadFile.bind(null, theData.taxReturnUrl, theData.taxReturnDownloadFileName)}>{theData.taxReturnDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
@@ -316,7 +316,8 @@ const Ratepay = React.createClass({
                     researchCost: thisdata.researchCost,
                     year: thisdata.year,
                     taxReturnUrl: thisdata.taxReturnUrl,
-                    taxReturnDownloadFileName: thisdata.taxReturnDownloadFileName
+                    taxReturnDownloadFileName: thisdata.taxReturnDownloadFileName,
+                    taxReturn: [thisdata.taxReturnUrl, thisdata.taxReturnDownloadFileName]
                 });
             };
             this.state.pagination.current = data.data.pageNo;
@@ -371,12 +372,10 @@ const Ratepay = React.createClass({
                     key: 'nonOperatingIncome',
                 }, {
                     title: '相关附件',
-                    dataIndex: 'taxReturnUrl',
-                    key: 'taxReturnUrl',
+                    dataIndex: 'taxReturn',
+                    key: 'taxReturn',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <a onClick={downloadFile.bind(null, text[0], text[1])}>{text[1]}</a>
                     }
                 }
             ],

+ 1 - 1
js/component/account/set/company.jsx

@@ -131,7 +131,7 @@ const PersonFrom = Form.create()(React.createClass({
 
                 if (data.data && data.data.info && data.data.pro) {
                     addressInit('cmbProvince', 'cmbCity', 'cmbArea',
-                        data.data.locationProvince, data.data.locationCity, data.data.locationArea);
+                        data.data.info.locationProvince, data.data.info.locationCity, data.data.info.locationArea);
                     let theArr = splitUrl(data.data.info.publicityPictureUrl, ',', globalConfig.staticHost + '/upload');
                     this.setState({
                         idttType: data.data.info.identityType,

+ 37 - 17
js/component/account/set/hrSituation.jsx

@@ -1,6 +1,6 @@
 import React from 'react';
 import { Input, InputNumber, Button, Form, Icon, Spin, message, Table, Modal, Upload, Select } from 'antd';
-import { beforeUpload } from '../../tools.js';
+import { beforeUploadFile, downloadFile } from '../../tools.js';
 import './hrSituation.less'
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
@@ -106,6 +106,11 @@ const HrSituationDescFrom = Form.create()(React.createClass({
             )
         };
     },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.props.form.resetFields();
+        };
+    },
     render() {
         const { getFieldDecorator } = this.props.form;
         const formItemLayout = {
@@ -113,6 +118,7 @@ const HrSituationDescFrom = Form.create()(React.createClass({
             wrapperCol: { span: 16 },
         };
         const FormItem = Form.Item;
+        const theData = this.props.data;
         return (
             <Form onSubmit={this.handleSubmit} className="hrSituation-form">
                 <div className="clearfix">
@@ -443,10 +449,11 @@ const HrSituationDescFrom = Form.create()(React.createClass({
                 </div>
                 <div className="hrSituation-roster">
                     <Upload
-                        name="socialSecurity"
+                        name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'socialSecurity' }}
-                        beforeUpload={beforeUpload}
+                        data={{ 'sign': 'roster_' + ( this.state.year || theData.year ) }}
+                        beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -458,21 +465,23 @@ const HrSituationDescFrom = Form.create()(React.createClass({
                                     message.warning(info.file.response.error[0].message);
                                     return;
                                 };
-                                this.state.socialSecurityUrl = info.file.response.data;
+                                this.state.rosterUrl = info.file.response.data;
                             } else if (info.file.status === 'error') {
                                 message.error(`${info.file.name} 文件上传失败。`);
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传社保文件 </Button>
+                        <Button><Icon type="upload" /> 上传花名册 </Button>
                     </Upload>
+                    <p style={{ marginTop: '10px' }}>{theData.rosterUrl ? <a onClick={downloadFile.bind(null, theData.rosterUrl, theData.rosterDownloadFileName)}>{theData.rosterDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <div className="hrSituation-roster">
                     <Upload
-                        name="roster"
+                        name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'roster' }}
-                        beforeUpload={beforeUpload}
+                        data={{ 'sign': 'social_security_' + ( this.state.year || theData.year ) }}
+                        beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -484,14 +493,15 @@ const HrSituationDescFrom = Form.create()(React.createClass({
                                     message.warning(info.file.response.error[0].message);
                                     return;
                                 };
-                                this.state.rosterUrl = info.file.response.data;
+                                this.state.socialSecurityUrl = info.file.response.data;
                             } else if (info.file.status === 'error') {
                                 message.error(`${info.file.name} 文件上传失败。`);
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传花名册文件 </Button>
+                        <Button><Icon type="upload" /> 上传社保情况 </Button>
                     </Upload>
+                    <p style={{ marginTop: '10px' }}>{theData.socialSecurityUrl ? <a onClick={downloadFile.bind(null, theData.socialSecurityUrl, theData.socialSecurityDownloadFileName)}>{theData.socialSecurityDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <div>
                     <span style={{ color: "red" }}>提示</span>
@@ -526,7 +536,7 @@ const HrSituationDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -549,7 +559,10 @@ const HrSituationDesc = React.createClass({
                         footer=''
                     >
                         <HrSituationDescFrom data={this.props.data}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            visible={this.state.visible}
+                            spinState={this.spinChange}
+                            closeModal={this.handleCancel}
+                            clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>
@@ -610,7 +623,13 @@ const HrSituation = React.createClass({
                     techTotal: thisdata.techTotal,
                     thirtyoneToThirtyfour: thisdata.thirtyoneToThirtyfour,
                     undergraduate: thisdata.undergraduate,
-                    attachment: [thisdata.rosterDownloadFileName, thisdata.socialSecurityDownloadFileName],
+
+                    rosterUrl: thisdata.rosterUrl,
+                    rosterDownloadFileName: thisdata.rosterDownloadFileName,
+                    socialSecurityUrl: thisdata.socialSecurityUrl,
+                    socialSecurityDownloadFileName: thisdata.socialSecurityDownloadFileName,
+
+                    attachment: [thisdata.rosterUrl, thisdata.rosterDownloadFileName, thisdata.socialSecurityUrl, thisdata.socialSecurityDownloadFileName],
                     newEmployment: thisdata.newEmployment,
                     graduateNumber: thisdata.graduateNumber
                 });
@@ -674,9 +693,10 @@ const HrSituation = React.createClass({
                     dataIndex: 'attachment',
                     key: 'attachment',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <div>
+                            <a style={{marginRight:'10px'}} onClick={downloadFile.bind(null, text[0], text[1])}> {text[1]} </a>
+                            <a onClick={downloadFile.bind(null, text[2], text[3])}> {text[3]} </a>
+                        </div>
                     }
                 }
             ],

+ 55 - 9
js/component/manageCenter/servicesManage/highTech/HighTechApply.jsx

@@ -90,6 +90,32 @@ const CognizanceDescFrom = Form.create()(React.createClass({
             });
         }.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={item} key={theData}>{theData}</Select.Option>
+                    );
+                };
+                this.setState({
+                    contactsOption: theOption
+                });
+            }.bind(this),
+        });
+    },
     getInitialState() {
         return {
             loading: false,
@@ -144,6 +170,7 @@ const CognizanceDescFrom = Form.create()(React.createClass({
         });
         this.loadData();
         this.getStateData();
+        this.getContactsList();
     },
     handleSubmit(e) {
         e.preventDefault();
@@ -221,10 +248,17 @@ const CognizanceDescFrom = Form.create()(React.createClass({
                             <span className="item-title">公司地址: </span>
                             <span>{theData.postalAddress}</span>
                         </div>
-                        <div className="half-item">
-                            <span className="item-title">联系人: </span>
-                            <span>{theData.contacts}</span>
-                        </div>
+                        <FormItem className="half-item"
+                            labelCol={{ span: 6 }}
+                            wrapperCol={{ span: 14 }}
+                        >
+                            {getFieldDecorator('contacts', {
+                                rules: [{ required: true, message: '此项为必填项!' }],
+                                initialValue: theData.contacts
+                            })(
+                                <Select placeholder='选择一个联系人'>{this.state.contactsOption}</Select>
+                                )}
+                        </FormItem>
                     </div>
                     <FormItem style={{ width: '50%' }}
                         labelCol={{ span: 0 }}
@@ -410,9 +444,10 @@ const CognizanceDesc = React.createClass({
                     >
                         <CognizanceDescFrom
                             visible={this.state.visible}
+                            contactsOption={this.props.contactsOption}
                             authorOption={this.props.authorOption}
                             data={this.props.data}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>
@@ -443,9 +478,9 @@ const CognizanceAdd = React.createClass({
                     return;
                 };
                 for (let item in data.data) {
-                    let theData = item + ' -- ' + data.data[item];
+                    let theData = data.data[item];
                     theOption.push(
-                        <Select.Option value={theData} key={theData}>{theData}</Select.Option>
+                        <Select.Option value={item} key={theData}>{theData}</Select.Option>
                     );
                 };
                 this.setState({
@@ -624,7 +659,11 @@ const Cognizance = React.createClass({
                         serialNumber: thisdata.serialNumber,
                         locationProvince: thisdata.locationProvince,
                         unitName: thisdata.unitName,
-                        contacts: thisdata.contacts,
+                        contacts: [thisdata.contacts, {
+                            '1': thisdata.firstContacts,
+                            '2': thisdata.secondContacts,
+                            '3': thisdata.thirdContacts
+                        }],
                         createTime: thisdata.createTime,
                         comment: thisdata.comment,
                         state: thisdata.state,
@@ -738,7 +777,14 @@ const Cognizance = React.createClass({
                 }, {
                     title: '联系人',
                     dataIndex: 'contacts',
-                    key: 'contacts'
+                    key: 'contacts',
+                    render: (text) => {
+                        for (let item in text[1]) {
+                            if (text[0] == item) {
+                                return text[1][item];
+                            };
+                        };
+                    }
                 }, {
                     title: '派单日',
                     dataIndex: 'createTimeFormattedDate',

+ 18 - 10
js/component/manageCenter/servicesManage/highTech/fosterDesc/achievement.jsx

@@ -1,7 +1,7 @@
 import React from 'react';
 import { Icon, Form, Button, Input, Spin, Table, message, Select, Modal, InputNumber, Upload } from 'antd';
 import './techProduct.less';
-import { getConversionForm, beforeUploadFile } from '../../../../tools.js';
+import { getConversionForm, beforeUploadFile, downloadFile } from '../../../../tools.js';
 import { conversionFormList, technicalSourceList } from '../../../../dataDic.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -83,6 +83,11 @@ const AchievementDescFrom = Form.create()(React.createClass({
             }
         });
     },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.props.form.resetFields();
+        };
+    },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
@@ -157,8 +162,9 @@ const AchievementDescFrom = Form.create()(React.createClass({
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'enclosure' }}
+                        data={{ 'sign': 'achievement' }}
                         beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -176,8 +182,9 @@ const AchievementDescFrom = Form.create()(React.createClass({
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传件 </Button>
+                        <Button><Icon type="upload" /> 上传科技成果附件 </Button>
                     </Upload>
+                    <p style={{ marginTop: '10px' }}>{theData.enclosureUrl ? <a onClick={downloadFile.bind(null, theData.enclosureUrl, theData.enclosureDownloadFileName)}>{theData.enclosureDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <FormItem style={{ marginTop: '20px' }}>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
@@ -207,7 +214,7 @@ const AchievementDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -232,8 +239,9 @@ const AchievementDesc = React.createClass({
                         <AchievementDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
+                            visible={this.state.visible}
                             activityNumberList={this.props.activityNumberList}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>
@@ -288,6 +296,8 @@ const Achievement = React.createClass({
                     conversionResult: thisdata.conversionResult,
                     year: thisdata.year,
                     enclosureUrl: thisdata.enclosureUrl,
+                    enclosureDownloadFileName: thisdata.enclosureDownloadFileName,
+                    enclosure: [thisdata.enclosureUrl, thisdata.enclosureDownloadFileName]
                 });
             };
             this.state.activityNumberList = activityNumber.data;
@@ -344,12 +354,10 @@ const Achievement = React.createClass({
                     key: 'conversionResult',
                 }, {
                     title: '相关附件',
-                    dataIndex: 'enclosureUrl',
-                    key: 'enclosureUrl',
+                    dataIndex: 'enclosure',
+                    key: 'enclosure',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <a onClick={downloadFile.bind(null, text[0], text[1])}>{text[1]}</a>
                     }
                 }
             ],

+ 3 - 3
js/component/manageCenter/servicesManage/highTech/fosterDesc/activityCostList.jsx

@@ -291,7 +291,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                     >
                         <Button><Icon type="upload" /> 上传研发费用台账 </Button>
                     </Upload>
-                    <p>{theData.accountUrl ? <a onClick={downloadFile.bind(null, theData.accountUrl, theData.accountDownloadFileName)}>{theData.accountDownloadFileName}</a> : <span>未上传!</span>}</p>
+                    <p style={{ marginTop: '20px' }}>{theData.accountUrl ? <a onClick={downloadFile.bind(null, theData.accountUrl, theData.accountDownloadFileName)}>{theData.accountDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <FormItem style={{ marginTop: '20px' }}>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
@@ -321,7 +321,7 @@ const ActivityDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -347,7 +347,7 @@ const ActivityDesc = React.createClass({
                             uid={this.props.uid}
                             data={this.props.data}
                             activityNumberList={this.props.activityNumberList}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>

+ 8 - 8
js/component/manageCenter/servicesManage/highTech/fosterDesc/finance.jsx

@@ -1,7 +1,7 @@
 import React from 'react';
 import { Icon, Form, Button, Input, Spin, Table, message, Select, Modal, InputNumber, Upload } from 'antd';
 import './techProduct.less';
-import { beforeUpload } from '../../../../tools.js';
+import { beforeUploadFile, downloadFile } from '../../../../tools.js';
 import moment from 'moment';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -219,7 +219,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': 'finance' + this.state.year || theData.year }}
+                        data={{ 'sign': 'finance' + ( this.state.year || theData.year ) }}
                         beforeUpload={beforeUploadFile}
                         showUploadList={false}
                         onChange={(info) => {
@@ -344,7 +344,9 @@ const Finance = React.createClass({
                     netProfit: thisdata.netProfit,
                     salesRevenue: thisdata.salesRevenue,
                     year: thisdata.year,
-                    financeUrl: thisdata.financeUrl
+                    financeUrl: thisdata.financeUrl,
+                    financeDownloadFileName: thisdata.financeDownloadFileName,
+                    finance: [thisdata.financeUrl, thisdata.financeDownloadFileName]
                 });
             };
             this.state.pagination.current = data.data.pageNo;
@@ -407,12 +409,10 @@ const Finance = React.createClass({
                     key: 'netAsset',
                 }, {
                     title: '相关附件',
-                    dataIndex: 'financeUrl',
-                    key: 'financeUrl',
+                    dataIndex: 'finance',
+                    key: 'finance',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <a onClick={downloadFile.bind(null, text[0], text[1])}>{text[1]}</a>
                     }
                 }
             ],

+ 20 - 10
js/component/manageCenter/servicesManage/highTech/fosterDesc/honorList.jsx

@@ -1,7 +1,7 @@
 import React from 'react';
 import { Icon, Form, Button, Input, Spin, Table, message, Modal, Upload, DatePicker } from 'antd';
 import './techProduct.less';
-import { beforeUploadFile } from '../../../../tools.js';
+import { beforeUploadFile, downloadFile } from '../../../../tools.js';
 import moment from 'moment';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -44,6 +44,11 @@ const HonorListDescFrom = Form.create()(React.createClass({
             }
         });
     },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.props.form.resetFields();
+        };
+    },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
@@ -94,8 +99,9 @@ const HonorListDescFrom = Form.create()(React.createClass({
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'enclosure' }}
+                        data={{ 'sign': 'achievement' }}
                         beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -113,8 +119,9 @@ const HonorListDescFrom = Form.create()(React.createClass({
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传件 </Button>
+                        <Button><Icon type="upload" /> 上传科技成果附件 </Button>
                     </Upload>
+                    <p style={{ marginTop: '10px' }}>{theData.enclosureUrl ? <a onClick={downloadFile.bind(null, theData.enclosureUrl, theData.enclosureDownloadFileName)}>{theData.enclosureDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <FormItem style={{ marginTop: '20px' }}>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
@@ -144,7 +151,7 @@ const HonorListDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -169,7 +176,10 @@ const HonorListDesc = React.createClass({
                         <HonorListDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            spinState={this.spinChange}
+                            visible={this.state.visible}
+                            closeModal={this.handleCancel}
+                            clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>
@@ -207,6 +217,8 @@ const HonorList = React.createClass({
                     name: thisdata.name,
                     issuingTime: thisdata.issuingTime,
                     enclosureUrl: thisdata.enclosureUrl,
+                    enclosureDownloadFileName: thisdata.enclosureDownloadFileName,
+                    enclosure: [thisdata.enclosureUrl, thisdata.enclosureDownloadFileName],
                     issuingTimeFormattedDate: thisdata.issuingTimeFormattedDate,
                     issuingMechanism: thisdata.issuingMechanism
                 });
@@ -255,12 +267,10 @@ const HonorList = React.createClass({
                     key: 'issuingMechanism'
                 }, {
                     title: '相关附件',
-                    dataIndex: 'enclosureUrl',
-                    key: 'enclosureUrl',
+                    dataIndex: 'enclosure',
+                    key: 'enclosure',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <a onClick={downloadFile.bind(null, text[0], text[1])}>{text[1]}</a>
                     }
                 }
             ],

+ 36 - 15
js/component/manageCenter/servicesManage/highTech/fosterDesc/hrSituation.jsx

@@ -96,6 +96,11 @@ const HrSituationDescFrom = Form.create()(React.createClass({
             }
         });
     },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.props.form.resetFields();
+        };
+    },
     render() {
         const { getFieldDecorator } = this.props.form;
         const formItemLayout = {
@@ -103,6 +108,7 @@ const HrSituationDescFrom = Form.create()(React.createClass({
             wrapperCol: { span: 16 },
         };
         const FormItem = Form.Item;
+        const theData = this.props.data;
         return (
             <Form onSubmit={this.handleSubmit} className="hrSituation-form">
                 <div className="clearfix">
@@ -434,10 +440,11 @@ const HrSituationDescFrom = Form.create()(React.createClass({
                 </div>
                 <div className="hrSituation-roster">
                     <Upload
-                        name="socialSecurity"
+                        name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'socialSecurity' }}
-                        beforeUpload={beforeUpload}
+                        data={{ 'sign': 'roster_' + ( this.state.year || theData.year ) }}
+                        beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -449,21 +456,23 @@ const HrSituationDescFrom = Form.create()(React.createClass({
                                     message.warning(info.file.response.error[0].message);
                                     return;
                                 };
-                                this.state.socialSecurityUrl = info.file.response.data;
+                                this.state.rosterUrl = info.file.response.data;
                             } else if (info.file.status === 'error') {
                                 message.error(`${info.file.name} 文件上传失败。`);
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传社保文件 </Button>
+                        <Button><Icon type="upload" /> 上传花名册 </Button>
                     </Upload>
+                    <p style={{ marginTop: '10px' }}>{theData.rosterUrl ? <a onClick={downloadFile.bind(null, theData.rosterUrl, theData.rosterDownloadFileName)}>{theData.rosterDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <div className="hrSituation-roster">
                     <Upload
-                        name="roster"
+                        name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'roster' }}
-                        beforeUpload={beforeUpload}
+                        data={{ 'sign': 'social_security_' + ( this.state.year || theData.year ) }}
+                        beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -475,14 +484,15 @@ const HrSituationDescFrom = Form.create()(React.createClass({
                                     message.warning(info.file.response.error[0].message);
                                     return;
                                 };
-                                this.state.rosterUrl = info.file.response.data;
+                                this.state.socialSecurityUrl = info.file.response.data;
                             } else if (info.file.status === 'error') {
                                 message.error(`${info.file.name} 文件上传失败。`);
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传花名册文件 </Button>
+                        <Button><Icon type="upload" /> 上传社保情况 </Button>
                     </Upload>
+                    <p style={{ marginTop: '10px' }}>{theData.socialSecurityUrl ? <a onClick={downloadFile.bind(null, theData.socialSecurityUrl, theData.socialSecurityDownloadFileName)}>{theData.socialSecurityDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
                 <div>
                     <span style={{ color: "red" }}>提示</span>
@@ -542,7 +552,10 @@ const HrSituationDesc = React.createClass({
                         <HrSituationDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
-                            spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                            spinState={this.spinChange}
+                            visible={this.state.visible}
+                            closeModal={this.handleCancel}
+                            clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>
@@ -604,7 +617,14 @@ const HrSituation = React.createClass({
                     techTotal: thisdata.techTotal,
                     thirtyoneToThirtyfour: thisdata.thirtyoneToThirtyfour,
                     undergraduate: thisdata.undergraduate,
-                    attachment: [thisdata.rosterDownloadFileName, thisdata.socialSecurityDownloadFileName],
+
+                    rosterUrl: thisdata.rosterUrl,
+                    rosterDownloadFileName: thisdata.rosterDownloadFileName,
+                    socialSecurityUrl: thisdata.socialSecurityUrl,
+                    socialSecurityDownloadFileName: thisdata.socialSecurityDownloadFileName,
+
+                    attachment: [thisdata.rosterUrl, thisdata.rosterDownloadFileName, thisdata.socialSecurityUrl, thisdata.socialSecurityDownloadFileName],
+
                     newEmployment: thisdata.newEmployment,
                     graduateNumber: thisdata.graduateNumber
                 });
@@ -668,9 +688,10 @@ const HrSituation = React.createClass({
                     dataIndex: 'attachment',
                     key: 'attachment',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <div>
+                            <a style={{ marginRight: '10px' }} onClick={downloadFile.bind(null, text[0], text[1])}>{text[1]}</a>
+                            <a onClick={downloadFile.bind(null, text[2], text[3])}>{text[3]}</a>
+                        </div>
                     }
                 }
             ],

+ 2 - 0
js/component/manageCenter/servicesManage/highTech/fosterDesc/intellectual.jsx

@@ -45,6 +45,8 @@ const Intellectual = React.createClass({
                     authorizationDate: thisdata.authorizationDate,
                     evaluationCategory: thisdata.evaluationCategory,
                     authorizationDateFormattedDate: thisdata.authorizationDateFormattedDate,
+                    propertyRightUrl: thisdata.propertyRightUrl,
+                    propertyRightDownloadFileName: thisdata.propertyRightDownloadFileName
                 });
             };
             this.state.pagination.current = data.data.pageNo;

+ 25 - 12
js/component/manageCenter/servicesManage/highTech/fosterDesc/intellectualDesc.jsx

@@ -1,7 +1,7 @@
 import React from 'react';
 import { Icon, Modal, Button, Form, message, Input, Spin, Select, DatePicker, Upload } from 'antd';
 import { intellectualGetList, catagoryList } from '../../../../dataDic.js';
-import { beforeUploadFile } from '../../../../tools.js';
+import { beforeUploadFile, downloadFile } from '../../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
 import moment from 'moment';
@@ -63,13 +63,18 @@ const IntellectualDescFrom = Form.create()(React.createClass({
             }
         });
     },
-    checkIdcardnum(rule, value, callback) {
-        if (!/(^\d{15}$)|(^\d{17}(\d|X)$)/.test(value)) {
-            callback('请输入正确的身份证号!');
-        } else {
-            callback();
-        }
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.props.form.resetFields();
+        };
     },
+    // checkIdcardnum(rule, value, callback) {
+    //     if (!/(^\d{15}$)|(^\d{17}(\d|X)$)/.test(value)) {
+    //         callback('请输入正确的身份证号!');
+    //     } else {
+    //         callback();
+    //     }
+    // },
     render() {
         const FormItem = Form.Item;
         const { getFieldDecorator } = this.props.form;
@@ -164,12 +169,13 @@ const IntellectualDescFrom = Form.create()(React.createClass({
                             onChange={(data, dataString) => { this.state.authorizationDateFormattedDate = dataString }} />
                         )}
                 </FormItem>
-                <FormItem>
+                <div className="hrSituation-roster">
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': this.props.year + 'propertyRight' }}
+                        data={{ 'sign': 'property_ritht' }}
                         beforeUpload={beforeUploadFile}
+                        showUploadList={false}
                         onChange={(info) => {
                             if (info.file.status !== 'uploading') {
                                 console.log(info.file, info.fileList);
@@ -189,7 +195,8 @@ const IntellectualDescFrom = Form.create()(React.createClass({
                     >
                         <Button><Icon type="upload" /> 上传知识产权证书 </Button>
                     </Upload>
-                </FormItem>
+                    <p style={{ margin: '10px 0' }}>{theData.propertyRightUrl ? <a onClick={downloadFile.bind(null, theData.propertyRightUrl, theData.propertyRightDownloadFileName)}>{theData.propertyRightDownloadFileName}</a> : <span>未上传!</span>}</p>
+                </div>
                 <FormItem>
                     <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
                     <Button type="ghost" style={{ marginLeft: '20px' }} onClick={this.props.closeModal}>取消</Button>
@@ -219,7 +226,7 @@ const intellectualDesc = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -241,7 +248,13 @@ const intellectualDesc = React.createClass({
                         width='600px'
                         footer=''
                     >
-                        <IntellectualDescFrom uid={this.props.uid} data={this.props.data} spinState={this.spinChange} closeModal={this.handleCancel}  clickOk={this.handleOk} />
+                        <IntellectualDescFrom
+                            uid={this.props.uid}
+                            data={this.props.data}
+                            spinState={this.spinChange}
+                            closeModal={this.handleCancel}
+                            visible={this.state.visible}
+                            clickOk={this.handleOk} />
                     </Modal>
                 </Spin>
             </div>

+ 7 - 8
js/component/manageCenter/servicesManage/highTech/fosterDesc/ratepay.jsx

@@ -195,7 +195,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                     <Upload
                         name="ratepay"
                         action={globalConfig.context + "/techservice/cognizance/upload"}
-                        data={{ 'sign': 'ratepay_' + this.state.year || theData.year }}
+                        data={{ 'sign': 'ratepay_' + ( this.state.year || theData.year ) }}
                         beforeUpload={beforeUploadFile}
                         showUploadList={false}
                         onChange={(info) => {
@@ -215,7 +215,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             }
                         }}
                     >
-                        <Button><Icon type="upload" /> 上传高新技术产品台帐 </Button>
+                        <Button><Icon type="upload" /> 上传企业纳税申报表 </Button>
                     </Upload>
                     <p style={{ marginTop: '10px' }}>{theData.taxReturnUrl ? <a onClick={downloadFile.bind(null, theData.taxReturnUrl, theData.taxReturnDownloadFileName)}>{theData.taxReturnDownloadFileName}</a> : <span>未上传!</span>}</p>
                 </div>
@@ -319,7 +319,8 @@ const Ratepay = React.createClass({
                     grossProfit: thisdata.grossProfit,
                     year: thisdata.year,
                     taxReturnUrl: thisdata.taxReturnUrl,
-                    taxReturnDownloadFileName: thisdata.taxReturnDownloadFileName
+                    taxReturnDownloadFileName: thisdata.taxReturnDownloadFileName,
+                    taxReturn: [thisdata.taxReturnUrl, thisdata.taxReturnDownloadFileName]
                 });
             };
             this.state.pagination.current = data.data.pageNo;
@@ -374,12 +375,10 @@ const Ratepay = React.createClass({
                     key: 'nonOperatingIncome',
                 }, {
                     title: '相关附件',
-                    dataIndex: 'taxReturnUrl',
-                    key: 'taxReturnUrl',
+                    dataIndex: 'taxReturn',
+                    key: 'taxReturn',
                     render: (text) => {
-                        <a href="" onClick={() => {
-                            window.open(globalConfig.context + "/techservice/patent/downloadFile?path=" + text + "&sign=" + "type")
-                        }}></a>
+                        return <a onClick={downloadFile.bind(null, text[0], text[1])}>{text[1]}</a>
                     }
                 }
             ],

+ 1 - 1
package.json

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