Ver código fonte

Accept Merge Request #22 v1.0.16 merge : (master -> test)

Merge Request: v1.0.16 merge
Created By: @seirios
Accepted By: @seirios
URL: https://coding.net/t/aft/p/AFT-WEB/git/merge/22
seirios 8 anos atrás
pai
commit
e8aec9b008
39 arquivos alterados com 854 adições e 455 exclusões
  1. 144 144
      html/highTech.html
  2. 3 3
      js/component/account/services/activity.jsx
  3. 4 5
      js/component/account/services/cognizance.jsx
  4. 1 1
      js/component/account/services/copyright/comPatentChange.jsx
  5. 6 3
      js/component/account/services/copyright/copyright.jsx
  6. 290 0
      js/component/account/services/orgList.jsx
  7. 1 1
      js/component/account/services/orgTechCenter.jsx
  8. 9 7
      js/component/account/services/patent.jsx
  9. 1 1
      js/component/account/services/patentAdd.jsx
  10. 7 4
      js/component/account/services/patentDesc.jsx
  11. 1 1
      js/component/account/services/techProduct.jsx
  12. 2 2
      js/component/account/services/technologyChange.jsx
  13. 62 58
      js/component/dataDic.js
  14. 8 5
      js/component/manageCenter/servicesManage/copyright/copyright.jsx
  15. 3 3
      js/component/manageCenter/servicesManage/highTech/fosterDesc/activity.jsx
  16. 3 2
      js/component/manageCenter/servicesManage/highTech/fosterDesc/innovationAbility.jsx
  17. 6 4
      js/component/manageCenter/servicesManage/highTech/fosterDesc/orgTechCenter.jsx
  18. 2 2
      js/component/manageCenter/servicesManage/highTech/fosterDesc/techProduct.jsx
  19. 27 9
      js/component/manageCenter/servicesManage/highTech/highTechApply.jsx
  20. 36 50
      js/component/manageCenter/servicesManage/highTech/highTechFoster.jsx
  21. 21 22
      js/component/manageCenter/servicesManage/patent/applyFee.jsx
  22. 6 6
      js/component/manageCenter/servicesManage/patent/applyFeeDesc.jsx
  23. 9 9
      js/component/manageCenter/servicesManage/patent/clientInputPatent.jsx
  24. 3 3
      js/component/manageCenter/servicesManage/patent/comPatentAdd.jsx
  25. 16 10
      js/component/manageCenter/servicesManage/patent/comPatentDesc.jsx
  26. 27 16
      js/component/manageCenter/servicesManage/patent/comprehensive.jsx
  27. 2 2
      js/component/manageCenter/servicesManage/patent/correction.jsx
  28. 5 7
      js/component/manageCenter/servicesManage/patent/correctionDesc.jsx
  29. 33 30
      js/component/manageCenter/servicesManage/patent/express.jsx
  30. 2 3
      js/component/manageCenter/servicesManage/patent/expressDesc.jsx
  31. 13 10
      js/component/manageCenter/servicesManage/patent/payment.jsx
  32. 7 8
      js/component/manageCenter/servicesManage/patent/paymentDesc.jsx
  33. 35 5
      js/component/manageCenter/servicesManage/technology/applyAdd.jsx
  34. 50 14
      js/component/manageCenter/servicesManage/technology/applyChange.jsx
  35. 1 1
      js/component/manageCenter/servicesManage/technology/websiteChange.jsx
  36. 2 1
      js/component/manageCenter/userManage/customerList.jsx
  37. 2 1
      js/component/manageCenter/userManage/orgList.jsx
  38. 3 1
      js/component/manageCenter/userManage/userList.jsx
  39. 1 1
      package.json

+ 144 - 144
html/highTech.html

@@ -1,158 +1,158 @@
 <!DOCTYPE html>
 <html>
-	<head>
-		<meta charset="utf-8" />
-		<title></title>
-		<!-- 新 Bootstrap 核心 CSS 文件 -->
-		<link href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
-		<link href="css/style.css" rel="stylesheet"/>
-		<link href="css/highTech.css" rel="stylesheet"/>
-		<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
-		<script src="//cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
-		<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
-		<script src="//cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
-	</head>
-	<body>
-		<header>
-			<div class="container">
-				<div class="lt">欢迎进入科技认知计算交易平台!</div>
-				<div class="rt">
-					<a href="#" class="login">登录</a>
-					<a href="#">注册</a>
-				</div>
+
+<head>
+	<meta charset="utf-8" />
+	<title></title>
+	<!-- 新 Bootstrap 核心 CSS 文件 -->
+	<link href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
+	<link href="css/style.css" rel="stylesheet" />
+	<link href="css/highTech.css" rel="stylesheet" />
+	<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
+	<script src="//cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
+	<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
+	<script src="//cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+</head>
+
+<body>
+	<header>
+		<div class="container">
+			<div class="lt">欢迎进入科技认知计算交易平台!</div>
+			<div class="rt">
+				<a href="http://aftt.hnzhiming.com/user/login.html" class="login">登录</a>
+				<a href="http://aftt.hnzhiming.com/user/signIn.html">注册</a>
 			</div>
-		</header>
-		<div class="container header_search">
-			<div class="row clearfix">
-				<div class="col-md-3 logo">
-					<img src="img/logo_sm.png" />
-				</div>
-				<div class="col-md-7 col-md-offset-2 search">
-					<div class="row clearfix">
-			        	<div class="input-group ">
-			            	<input type="text" class="form-control" placeholder="平台资源关键词搜索">
-			            	<span class="input-group-btn">
+		</div>
+	</header>
+	<div class="container header_search">
+		<div class="row clearfix">
+			<div class="col-md-3 logo">
+				<img src="img/logo_sm.png" />
+			</div>
+			<div class="col-md-7 col-md-offset-2 search">
+				<div class="row clearfix">
+					<div class="input-group ">
+						<input type="text" class="form-control" placeholder="平台资源关键词搜索">
+						<span class="input-group-btn">
 			              		<button class="btn" type="button">搜索</button>
 			             	</span>
-			       		</div><!-- /input-group -->
-			       </div>
+					</div>
+					<!-- /input-group -->
 				</div>
 			</div>
 		</div>
-		<div class="container">
-			<div class="row clearfix">
-				<nav>
-					<ul id="myTab">
-						<li class="active"><a href="#">高企自评</a></li>
-						<li><a href="#">高企申请</a></li>
-						<li><a href="#">在先咨询</a></li>
-						<li><a href="#">社交分享</a></li>
-						<li><a href="#">政策解读</a></li>
-					</ul>
- 				</nav>
- 				<div class="content">
- 					<h4>高新技术企业认定有哪些好处?</h4>
- 					<div class="discount">
- 						<div class="discount_content">
- 							<div class="discount_img">
- 								<img src="img/discount_ioc_1.png"/>
- 							</div>
- 							<div class="discount_info">
- 								<span class="blue">1.企业税收减免</span>
- 								<p>高企所得税减免40%,同时可享受办理研发经费加计扣除。</p>
- 							</div>
- 						</div>
- 						<div class="discount_content">
- 							<div class="discount_img">
- 								<img src="img/discount_ioc_2.png"/>
- 							</div>
- 							<div class="discount_info">
- 								<span class="green">2.财政直接补贴</span>
- 								<p>地区对新认定的高新技术企业资助均会高于5万元以上</p>
- 							</div>
- 						</div>
- 						<div class="discount_content">
- 							<div class="discount_img">
- 								<img src="img/discount_ioc_3.png"/>
- 							</div>
- 							<div class="discount_info">
- 								<span class="red">3.企业上市优先</span>
- 								<p>吸引政策和资金扶持,推动企业产业化扩张,促进企业融资上市。</p>
- 							</div>
- 						</div>
- 						<div class="discount_content">
- 							<div class="discount_img">
- 								<img src="img/discount_ioc_4.png"/>
- 							</div>
- 							<div class="discount_info">
- 								<span class="yellow">4.政策资金倾斜</span>
- 								<p>土地、电力、排污、节能、科研资金、税收等各项扶持政策。</p>
- 							</div>
- 						</div>
- 						<div class="discount_content clear_mg">
- 							<div class="discount_img">
- 								<img src="img/discount_ioc_5.png"/>
- 							</div>
- 							<div class="discount_info">
- 								<span class="purple">5.企业品牌提升</span>
- 								<p>政府帮企业背书,大大提高了企业品牌知名度。</p>
- 							</div>
- 						</div>
- 					</div>
- 					
- 				</div>
+	</div>
+	<div class="container">
+		<div class="row clearfix">
+			<nav>
+				<ul id="myTab">
+					<li class="active"><a href="#">高企自评</a></li>
+					<li><a href="#">高企申请</a></li>
+					<li><a href="#">在线咨询</a></li>
+					<li><a href="#">社交分享</a></li>
+					<li><a href="#">政策解读</a></li>
+				</ul>
+			</nav>
+			<div class="content">
+				<h4>高新技术企业认定有哪些好处?</h4>
+				<div class="discount">
+					<div class="discount_content">
+						<div class="discount_img">
+							<img src="img/discount_ioc_1.png" />
+						</div>
+						<div class="discount_info">
+							<span class="blue">1.企业税收减免</span>
+							<p>高企所得税减免40%,同时可享受办理研发经费加计扣除。</p>
+						</div>
+					</div>
+					<div class="discount_content">
+						<div class="discount_img">
+							<img src="img/discount_ioc_2.png" />
+						</div>
+						<div class="discount_info">
+							<span class="green">2.财政直接补贴</span>
+							<p>地区对新认定的高新技术企业资助均会高于5万元以上</p>
+						</div>
+					</div>
+					<div class="discount_content">
+						<div class="discount_img">
+							<img src="img/discount_ioc_3.png" />
+						</div>
+						<div class="discount_info">
+							<span class="red">3.企业上市优先</span>
+							<p>吸引政策和资金扶持,推动企业产业化扩张,促进企业融资上市。</p>
+						</div>
+					</div>
+					<div class="discount_content">
+						<div class="discount_img">
+							<img src="img/discount_ioc_4.png" />
+						</div>
+						<div class="discount_info">
+							<span class="yellow">4.政策资金倾斜</span>
+							<p>土地、电力、排污、节能、科研资金、税收等各项扶持政策。</p>
+						</div>
+					</div>
+					<div class="discount_content clear_mg">
+						<div class="discount_img">
+							<img src="img/discount_ioc_5.png" />
+						</div>
+						<div class="discount_info">
+							<span class="purple">5.企业品牌提升</span>
+							<p>政府帮企业背书,大大提高了企业品牌知名度。</p>
+						</div>
+					</div>
+				</div>
+
 			</div>
 		</div>
-		<div class="process">
-			<div class="container">
-				<div class="row clearfix">
-					<div class="content">
-						<h4>高企认定流程:</h4>
-	 					<div class="flow_chart">
-	 						<img src="img/flowChart.png" />
-	 					</div>
-	 					
-	 				</div>
-	 			</div>
-	 		</div>
-		</div>
-		
+	</div>
+	<div class="process">
 		<div class="container">
 			<div class="row clearfix">
 				<div class="content">
-					<h4>我们的优势</h4>
- 					<div class="advantage">
- 						<ul>
- 							<li>
- 								<span>优势一</span>
- 								<p>1、总部位于长沙,在全国有15家分(子)咨询机构。<br>
- 								2、为各单位提供政策咨询、科技咨询、知识产权运营,企业上市服务等共22500项。<br>
- 								3、协助各省市2860家单位获得各级政策扶持和资金支持12.4亿。
- 								</p>
- 							</li>
- 							<li>
- 								<span>优势二</span>
- 								<p>1、借助各省科技咨询中心专家库平台和专业人脉优势。<br>
-								2、拥有遍布全国各地区的人脉网络。
- 								</p>
- 							</li>
- 							<li>
- 								<span>优势三</span>
- 								<p>1、国家科技部认定的技术转移示范机构、国家工信部门认定的企业核心服务机构。<br>
-									2、是目前全国唯一将知识产权运营、科技咨询、金融服务整合在一起的咨询服务机构,可为企业成长提供一站式解决方案。
- 								</p>
- 							</li>
- 							<li>
- 								<span>优势四</span>
- 								<p>1、获得国家科技部、财政部、工信委等相关部门的政策支持和肯定。<br>
-									2、由政府出资与省知识产权局、湘大知识产权学院共建了湖南省专利信息集成化平台。<br>
-									3、建立了专业的知识产权运营服务平台门户网站-GO阿凡提网。
- 								</p>
- 							</li>
- 						</ul>
- 					</div>
+					<h4>高企认定流程:</h4>
+					<div class="flow_chart">
+						<img src="img/flowChart.png" />
+					</div>
+
 				</div>
- 			</div>
- 		</div>
-	</body>
-</html>
+			</div>
+		</div>
+	</div>
+
+	<div class="container">
+		<div class="row clearfix">
+			<div class="content">
+				<h4>我们的优势</h4>
+				<div class="advantage">
+					<ul>
+						<li>
+							<span>优势一</span>
+							<p>1、总部位于长沙,在全国有15家分(子)咨询机构。<br> 2、为各单位提供政策咨询、科技咨询、知识产权运营,企业上市服务等共22500项。
+								<br> 3、协助各省市2860家单位获得各级政策扶持和资金支持12.4亿。
+							</p>
+						</li>
+						<li>
+							<span>优势二</span>
+							<p>1、借助各省科技咨询中心专家库平台和专业人脉优势。<br> 2、拥有遍布全国各地区的人脉网络。
+							</p>
+						</li>
+						<li>
+							<span>优势三</span>
+							<p>1、国家科技部认定的技术转移示范机构、国家工信部门认定的企业核心服务机构。<br> 2、是目前全国唯一将知识产权运营、科技咨询、金融服务整合在一起的咨询服务机构,可为企业成长提供一站式解决方案。
+							</p>
+						</li>
+						<li>
+							<span>优势四</span>
+							<p>1、获得国家科技部、财政部、工信委等相关部门的政策支持和肯定。<br> 2、由政府出资与省知识产权局、湘大知识产权学院共建了湖南省专利信息集成化平台。
+								<br> 3、建立了专业的知识产权运营服务平台门户网站-GO阿凡提网。
+							</p>
+						</li>
+					</ul>
+				</div>
+			</div>
+		</div>
+	</div>
+</body>
+
+</html>

+ 3 - 3
js/component/account/services/activity.jsx

@@ -192,17 +192,17 @@ const ActivityDesc = React.createClass({
                                 } />
                             </div>
                             <div className="half-div">
-                                <span>其中(一年):</span>
+                                <span>其中(一年):</span>
                                 <InputNumber value={this.state.firstYearExpenditure}
                                     onChange={(e) => { this.setState({ firstYearExpenditure: e }); }} />
                             </div>
                             <div className="half-div">
-                                <span>其中(二年):</span>
+                                <span>其中(二年):</span>
                                 <InputNumber value={this.state.secondYearExpenditure}
                                     onChange={(e) => { this.setState({ secondYearExpenditure: e }); }} />
                             </div>
                             <div className="half-div">
-                                <span>其中(三年):</span>
+                                <span>其中(三年):</span>
                                 <InputNumber value={this.state.thirdYearExpenditure}
                                     onChange={(e) => { this.setState({ thirdYearExpenditure: e }); }} />
                             </div>

+ 4 - 5
js/component/account/services/cognizance.jsx

@@ -31,19 +31,19 @@ const CognizanceDescFrom = Form.create()(React.createClass({
                 this.state.cid = this.props.data.cid;
                 this.state.moneyTable = [{
                     key: 1,
-                    year: '一年',
+                    year: '一年',
                     netAsset: data.data.netAsset1,
                     salesRevenue: data.data.salesRevenue1,
                     grossProfit: data.data.grossProfit1
                 }, {
                     key: 2,
-                    year: '二年',
+                    year: '二年',
                     netAsset: data.data.netAsset2,
                     salesRevenue: data.data.salesRevenue2,
                     grossProfit: data.data.grossProfit2
                 }, {
                     key: 3,
-                    year: '三年',
+                    year: '三年',
                     netAsset: data.data.netAsset3,
                     salesRevenue: data.data.salesRevenue3,
                     grossProfit: data.data.grossProfit3
@@ -447,8 +447,7 @@ const CognizanceAdd = React.createClass({
             data: {
                 year: this.state.year,
                 contacts: this.state.contacts,
-                comment: this.state.comment,
-                state: this.state.year == this.state.thisYear ? 0 : 7
+                comment: this.state.comment
             }
         }).done(function (data) {
             if (!data.error.length) {

+ 1 - 1
js/component/account/services/copyright/comPatentChange.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Icon, Modal, message, Spin, Input, Select, DatePicker, Button, Row, Col, Table, Form, Upload } from 'antd';
+import { Icon, Modal, message, Spin, Input, Select, Button, Row, Col, Table, Form, Upload } from 'antd';
 import './comprehensive.less';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';

+ 6 - 3
js/component/account/services/copyright/copyright.jsx

@@ -254,17 +254,20 @@ const copyright = React.createClass({
                             <span>派单时间:</span>
                             <RangePicker style={{ width: '240px' }}
                                 allowClear={false}
-                                value={[moment(this.state.createTime[0]), moment(this.state.createTime[1])]}
+                                value={[this.state.createTime[0] ? moment(this.state.createTime[0]) : null,
+                                this.state.createTime[1] ? moment(this.state.createTime[1]) : null]}
                                 onChange={(date, dateString) => { this.setState({ createTime: dateString }) }} />
                             <span>受理时间:</span>
                             <RangePicker style={{ width: '240px' }}
                                 allowClear={false}
-                                value={[moment(this.state.acceptTime[0]), moment(this.state.acceptTime[1])]}
+                                value={[this.state.acceptTime[0] ? moment(this.state.acceptTime[0]) : null,
+                                this.state.acceptTime[1] ? moment(this.state.acceptTime[1]) : null]}
                                 onChange={(date, dateString) => { this.setState({ acceptTime: dateString }) }} />
                             <span>下证时间:</span>
                             <RangePicker style={{ width: '240px' }}
                                 allowClear={false}
-                                value={[moment(this.state.authTime[0]), moment(this.state.authTime[1])]}
+                                value={[this.state.authTime[0] ? moment(this.state.authTime[0]) : null,
+                                this.state.authTime[1] ? moment(this.state.authTime[1]) : null]}
                                 onChange={(date, dateString) => { this.setState({ authTime: dateString }) }} />
                         </div>
                     </div>

+ 290 - 0
js/component/account/services/orgList.jsx

@@ -0,0 +1,290 @@
+import React from 'react';
+import { Icon, Button, Input, Select, Spin, Table, Switch, message, DatePicker, Modal } from 'antd';
+import ajax from 'jquery/src/ajax/xhr.js';
+import $ from 'jquery/src/ajax';
+import moment from 'moment';
+import './userList.less';
+import OrgDesc from './orgDesc.jsx';
+import { auditStatusList } from '../../dataDic.js';
+import { getAuditState } from '../../tools.js';
+
+const OrgAdd = React.createClass({
+    getInitialState() {
+        return {
+            visible: false,
+            loading: false
+        };
+    },
+    showModal() {
+        this.state.mobile = undefined;
+        this.state.unitName = undefined;
+        this.setState({
+            visible: true,
+        });
+    },
+    handleCancel(e) {
+        this.setState({
+            visible: false,
+        });
+    },
+    handleOk() {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/addNewUser",
+            data: {
+                mobile: this.state.mobile,
+                unitName: this.state.unitName,
+                type: 1
+            }
+        }).done(function (data) {
+            this.setState({
+                loading: false
+            });
+            if (!data.error.length) {
+                message.success('新增成功!');
+                this.setState({
+                    visible: false,
+                });
+                this.props.closeDesc(false, true);
+            } else {
+                message.warning(data.error[0].message);
+            };
+        }.bind(this));
+    },
+    render() {
+        return (
+            <div className="patent-desc" style={{ float: 'right', marginRight: '20px' }}>
+                <Button type="primary" onClick={this.showModal}>添加用户</Button>
+                <Modal title="新增团体用户" visible={this.state.visible}
+                    onCancel={this.handleCancel}
+                    width='350px'
+                    footer={[
+                        <Button key="submit" type="primary" loading={this.state.loading} onClick={this.handleOk}>提交</Button>,
+                        <Button key="back" onClick={this.handleCancel}>返回</Button>
+                    ]}
+                    className="admin-desc-content">
+                    <div className='orgAdd-input'>
+                        <span>用户手机号码:</span>
+                        <Input
+                            value={this.state.mobile}
+                            onChange={(e) => { this.setState({ mobile: e.target.value }); }} />
+                    </div>
+                    <div className='orgAdd-input'>
+                        <span>公司名称:</span>
+                        <Input
+                            value={this.state.unitName}
+                            onChange={(e) => { this.setState({ unitName: e.target.value }); }} />
+                    </div>
+                </Modal>
+            </div>
+        );
+    }
+});
+
+const OrgList = React.createClass({
+    loadData(pageNo) {
+        this.state.data = [];
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/orgList",
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                mobile: this.state.searchLoginId, //登录名
+                email: this.state.searchEmail,
+                createTime: this.state.searchTime,
+                number: this.state.searchAftId, //阿凡提号
+                unitName: this.state.searchUnitName,
+                auditStatus: this.state.searchAuditStatus
+            },
+            success: function (data) {
+                if (data.error.length || !data.data || !data.data.list) {
+                    message.warning(data.error[0].message);
+                    return;
+                }
+                for (let i = 0; i < data.data.list.length; i++) {
+                    let thisdata = data.data.list[i];
+                    this.state.data.push({
+                        key: i,
+                        id: thisdata.id,
+                        mobile: thisdata.mobile,
+                        email: thisdata.email,
+                        createTime: thisdata.createTime,
+                        aftUsername: thisdata.aftUsername,
+                        number: thisdata.number,
+                        auditStatus: thisdata.auditStatus,
+                        createTimeFormattedDate: thisdata.createTimeFormattedDate,
+                        adminName: thisdata.adminName,
+                        unitName: thisdata.unitName
+                    });
+                };
+                this.state.pagination.current = data.data.pageNo;
+                this.state.pagination.total = data.data.totalCount;
+                this.setState({
+                    dataSource: this.state.data,
+                    pagination: this.state.pagination
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    getInitialState() {
+        return {
+            searchMore: true,
+            data: [],
+            loading: false,
+            searchTime: [,],
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadData(page);
+                }.bind(this),
+                showTotal: function (total) {
+                    return '共' + total + '条数据';
+                }
+            },
+            columns: [
+                {
+                    title: '阿凡提号',
+                    dataIndex: 'number',
+                    key: 'number',
+                }, {
+                    title: '登录名',
+                    dataIndex: 'mobile',
+                    key: 'mobile',
+                }, {
+                    title: '公司名称',
+                    dataIndex: 'unitName',
+                    key: 'unitName',
+                }, {
+                    title: '认证状态',
+                    dataIndex: 'auditStatus',
+                    key: 'auditStatus',
+                    render: text => { return getAuditState(text); }
+                }, {
+                    title: '注册时间',
+                    dataIndex: 'createTimeFormattedDate',
+                    key: 'createTimeFormattedDate',
+                }, {
+                    title: '认证名称',
+                    dataIndex: 'aftUsername',
+                    key: 'aftUsername',
+                }, {
+                    title: '联系方式',
+                    dataIndex: 'email',
+                    key: 'email',
+                }, {
+                    title: '业务员',
+                    dataIndex: 'adminName',
+                    key: 'adminName',
+                }
+            ],
+            dataSource: []
+        };
+    },
+    componentWillMount() {
+        this.loadData();
+    },
+    tableRowClick(record, index) {
+        this.state.RowData = record;
+        this.setState({
+            showDesc: true
+        });
+    },
+    closeDesc(e, s) {
+        this.state.showDesc = e;
+        if (s) {
+            this.loadData();
+        };
+    },
+    search() {
+        this.loadData();
+    },
+    reset() {
+        this.state.searchAftId = undefined;
+        this.state.searchLoginId = undefined;
+        this.state.searchAuditStatus = undefined;
+        this.state.searchUnitName = undefined;
+        this.state.searchEmail = undefined;
+        this.state.searchTime = [];
+        this.loadData();
+    },
+    searchSwitch() {
+        this.setState({
+            searchMore: !this.state.searchMore
+        });
+    },
+    searchcreateTime(date, dateString) {
+        this.state.createTime = dateString;
+    },
+    render() {
+        const { RangePicker } = DatePicker;
+        return (
+            <div className="user-content" >
+                <div className="content-title">
+                    <span>组织用户管理</span>
+                    <OrgAdd closeDesc={this.closeDesc} />
+                </div>
+                <div className="user-search">
+                    <Input placeholder="阿凡提号" value={this.state.searchAftId}
+                        onChange={(e) => { this.setState({ searchAftId: e.target.value }); }} />
+                    <Input placeholder="登录号" value={this.state.searchLoginId}
+                        onChange={(e) => { this.setState({ searchLoginId: e.target.value }); }} />
+                    <Select placeholder="选择认证状态" style={{ width: 140 }}
+                        value={this.state.searchAuditStatus}
+                        onChange={(e) => { this.setState({ searchAuditStatus: e }) }}>
+                        {
+                            auditStatusList.map(function (item, i) {
+                                return <Select.Option key={i} value={item.value} >{item.key}</Select.Option>
+                            })
+                        }
+                    </Select>
+                    <Input placeholder="公司名称" value={this.state.searchUnitName}
+                        onChange={(e) => { this.setState({ searchUnitName: e.target.value }); }} />
+                    <Input placeholder="联系方式" value={this.state.searchEmail}
+                        onChange={(e) => { this.setState({ searchEmail: e.target.value }); }} />
+                    <Button type="primary" onClick={this.search}>搜索</Button>
+                    <Button onClick={this.reset}>重置</Button>
+                    <span>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
+                    <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>
+                        <p>
+                            <span>注册时间:</span>
+                            <RangePicker
+                                allowClear={false}
+                                value={[this.state.searchTime[0] ? moment(this.state.searchTime[0]) : null,
+                                this.state.searchTime[1] ? moment(this.state.searchTime[1]) : null]}
+                                onChange={(data, dataString) => { this.setState({ searchTime: dataString }); }} />
+                        </p>
+                    </div>
+                </div>
+                <div className="patent-table">
+                    <Spin spinning={this.state.loading}>
+                        <Table columns={this.state.columns}
+                            dataSource={this.state.dataSource}
+                            pagination={this.state.pagination}
+                            onRowClick={this.tableRowClick} />
+                    </Spin>
+                </div>
+                <OrgDesc data={this.state.RowData} showDesc={this.state.showDesc} closeDesc={this.closeDesc} />
+            </div >
+        );
+    }
+});
+
+export default OrgList;

+ 1 - 1
js/component/account/services/orgTechCenter.jsx

@@ -427,7 +427,7 @@ const CenterList = React.createClass({
                         />
                         <span>成立时间: </span>
                         <DatePicker
-                            value={moment(this.state.foundingTime)}
+                            value={this.state.foundingTime ? moment(this.state.foundingTime) : null}
                             allowClear={false}
                             onChange={(date, dateString) => { this.setState({ foundingTime: dateString }); }}
                         />

+ 9 - 7
js/component/account/services/patent.jsx

@@ -14,17 +14,19 @@ const Patent = React.createClass({
         this.setState({
             loading: true
         });
-        let page = pageNo || 1,
-            pageSize = this.state.pagination.pageSize,
-            patentNumber = this.state.searchNum || '',
-            patentName = this.state.searchName || '',
-            patentCatagory = this.state.searchType || '',
-            patentState = this.state.searchState || '';
         $.ajax({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/user/patent/clientApplyList?pageNo=" + page + "&pageSize=" + pageSize + "&patentNumber=" + patentNumber + "&patentName=" + patentName + "&patentCatagory=" + patentCatagory + "&patentState=" + patentState,
+            url: globalConfig.context + "/api/user/patent/clientApplyList",
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                patentNumber: this.state.searchNum,
+                patentName: this.state.searchName,
+                patentCatagory: this.state.searchType,
+                patentState: this.state.searchState
+            },
             success: function (data) {
                 if (!data.data) {
                     if (data.error && data.error.length) {

+ 1 - 1
js/component/account/services/patentAdd.jsx

@@ -181,7 +181,7 @@ const PatentAddFrom = Form.create()(React.createClass({
                 <div className="hrSituation-roster">
                     <Upload
                         name="ratepay"
-                        action={globalConfig.context + "/api/user/cognizance/upload"}
+                        action={globalConfig.context + "/api/user/patent/upload"}
                         data={{ 'sign': 'patent_prory_statement' }}
                         beforeUpload={beforeUploadFile}
                         showUploadList={false}

+ 7 - 4
js/component/account/services/patentDesc.jsx

@@ -29,7 +29,10 @@ const PatentDesc = React.createClass({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/user/patent/clientPatentInfo?pid=" + thepid,
+            url: globalConfig.context + "/api/user/patent/clientPatentInfo",
+            data: {
+                pid: thepid
+            },
             success: function (data) {
                 let thisData = data.data;
                 if (!thisData) {
@@ -118,19 +121,19 @@ const PatentDesc = React.createClass({
                                     </p> :
                                     <p><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />专利稿件未上传</p>
                                 }
-                                {theData.authorizationNoticeUrl  ?
+                                {theData.authorizationNoticeUrl ?
                                     <p className="download-file">
                                         <a onClick={newDownloadFile.bind(this, theData.id, 'authorization_notice', '/api/user/patent/download')}>授权通知书下载</a>
                                     </p> :
                                     <p><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />授权通知书未上传</p>
                                 }
-                                {theData.patentCertificateUrl  ?
+                                {theData.patentCertificateUrl ?
                                     <p className="download-file">
                                         <a onClick={newDownloadFile.bind(this, theData.id, 'patent_certificate', '/api/user/patent/download')}>专利证书下载</a>
                                     </p> :
                                     <p><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />专利证书未上传</p>
                                 }
-                                {theData.patentProryStatementUrl  ?
+                                {theData.patentProryStatementUrl ?
                                     <p className="download-file">
                                         <a onClick={newDownloadFile.bind(this, theData.id, 'patent_prory_statement', '/api/user/patent/download')}>专利代理委托书下载</a>
                                     </p> :

+ 1 - 1
js/component/account/services/techProduct.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Icon, Upload, Form, Button, Radio, Input, Spin, Table, message, Select, Modal, DatePicker, Cascader, Transfer, InputNumber } from 'antd';
+import { Icon, Upload, Form, Button, Radio, Input, Spin, Table, message, Select, Modal, Cascader, Transfer, InputNumber } from 'antd';
 import { technicalSourceList } from '../../dataDic.js';
 import { techFieldList } from '../../DicTechFieldList.js';
 import { getTechField, getTechnicalSource, beforeUploadFile, newDownloadFile } from '../../tools.js';

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

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Icon, Form, Button, Input, Select, Spin, Table, DatePicker, message, Modal, Radio, Upload } from 'antd';
+import { Icon, Form, Button, Input, Select, Spin, Table, message, Modal, Radio, Upload } from 'antd';
 import { cognizanceStateList } from '../../dataDic.js';
 import { getCognizanceState, beforeUpload, beforeUploadFile, downloadFile } from '../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
@@ -303,7 +303,7 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                         <Upload
                             name="avatar"
                             action={globalConfig.context + "/api/user/techproject/upload"}
-                            data={{ 'uid': this.props.data.uid }}
+                            data={{ 'id': this.props.data.pid, 'sign': 'tech_project' }}
                             beforeUpload={beforeUploadFile}
                             showUploadList={false}
                             onChange={(info) => {

+ 62 - 58
js/component/dataDic.js

@@ -40,52 +40,6 @@ module.exports = {
             key: "发明专利"
         }
     ],
-    patentStateList: [{
-            value: "0",
-            key: "申请"
-        }, {
-            value: "1",
-            key: "签单"
-        }, {
-            value: "2",
-            key: "派单"
-        }, {
-            value: "3",
-            key: "流转"
-        }, {
-            value: "4",
-            key: "撰写"
-        }, {
-            value: "5",
-            key: "受理"
-        }, {
-            value: "6",
-            key: "审查意见通知"
-        }, {
-            value: "7",
-            key: "审查意见已答复"
-        }, {
-            value: "8",
-            key: "补正通知"
-        }, {
-            value: "9",
-            key: "补正已答复"
-        }, {
-            value: "10",
-            key: "授权"
-        }, {
-            value: "11",
-            key: "驳回"
-        }, {
-            value: "12",
-            key: "发证"
-        },{
-            value: "13",
-            key: "已结款"
-        },{
-            value: "14",
-            key: "退单"
-        }],
     patentFieldList:[
        {
             value: "0",
@@ -256,10 +210,57 @@ module.exports = {
             key: "国家系统通过"
         }
     ],
+    //四种状态
+    patentStateList: [{
+            value: "0",
+            key: "申请"
+        }, {
+            value: "1",
+            key: "签单"
+        }, {
+            value: "2",
+            key: "派单"
+        }, {
+            value: "3",
+            key: "流转"
+        }, {
+            value: "4",
+            key: "撰写"
+        }, {
+            value: "5",
+            key: "受理"
+        }, {
+            value: "6",
+            key: "审查意见通知"
+        }, {
+            value: "7",
+            key: "审查意见已答复"
+        }, {
+            value: "8",
+            key: "补正通知"
+        }, {
+            value: "9",
+            key: "补正已答复"
+        }, {
+            value: "10",
+            key: "授权"
+        }, {
+            value: "11",
+            key: "驳回"
+        }, {
+            value: "12",
+            key: "发证"
+        },{
+            value: "13",
+            key: "已结款"
+        },{
+            value: "14",
+            key: "退单"
+    }],
     cognizanceStateList:[
         {
             value: "0",
-            key: "申请"
+            key: "创建"
         },{
             value: "1",
             key: "签单"
@@ -277,31 +278,34 @@ module.exports = {
             key: "提交国家系统"
         },{
             value: "6",
-            key: "审批通过"
+            key: "受理"
         },{
             value: "7",
-            key: "审批通过"
+            key: "审批通过"
         },{
             value: "8",
-            key: "已发证"
+            key: "审批不通过"
         },{
             value: "9",
-            key: "已到期"
+            key: "已发证"
         },{
             value: "10",
-            key: "培育中"
+            key: "已到期"
         },{
             value: "11",
-            key: "已结款"
+            key: "培育中"
         },{
             value: "12",
+            key: "已结款"
+        },{
+            value: "13",
             key: "退单"
         }
     ],
     technologyStateList:[
         {
             value: "0",
-            key: "申请"
+            key: "创建"
         },{
             value: "1",
             key: "签单"
@@ -313,16 +317,16 @@ module.exports = {
             key: "流转"
         }, {
             value: "4",
-            key: "受理"
+            key: "材料提交"
         },{
             value: "5",
-            key: "审批通过"
+            key: "受理"
         },{
             value: "6",
-            key: "审批通过"
+            key: "审批通过"
         },{
             value: "7",
-            key: "项目批复"
+            key: "审批不通过"
         },{
             value: "8",
             key: "已结款"

+ 8 - 5
js/component/manageCenter/servicesManage/copyright/copyright.jsx

@@ -171,7 +171,7 @@ const copyright = React.createClass({
             stateOption: [],
             companyOption: [],
             authorOption: [],
-            consultantOption:[],
+            consultantOption: [],
             data: [],
             selectedRowKeys: [],
             selectedRows: [],
@@ -368,7 +368,7 @@ const copyright = React.createClass({
         this.state.province = undefined;
         this.state.unitName = undefined;
         this.state.copyrightName = undefined;
-        thiss.state.status = undefined;
+        this.state.status = undefined;
         this.state.createTime = [];
         this.state.acceptTime = [];
         this.state.authTime = [];
@@ -432,17 +432,20 @@ const copyright = React.createClass({
                             <span>派单时间:</span>
                             <RangePicker style={{ width: '240px' }}
                                 allowClear={false}
-                                value={[moment(this.state.createTime[0]), moment(this.state.createTime[1])]}
+                                value={[this.state.createTime[0] ? moment(this.state.createTime[0]) : null,
+                                this.state.createTime[1] ? moment(this.state.createTime[1]) : null]}
                                 onChange={(date, dateString) => { this.setState({ createTime: dateString }) }} />
                             <span>受理时间:</span>
                             <RangePicker style={{ width: '240px' }}
                                 allowClear={false}
-                                value={[moment(this.state.acceptTime[0]), moment(this.state.acceptTime[1])]}
+                                value={[this.state.acceptTime[0] ? moment(this.state.acceptTime[0]) : null,
+                                this.state.acceptTime[1] ? moment(this.state.acceptTime[1]) : null]}
                                 onChange={(date, dateString) => { this.setState({ acceptTime: dateString }) }} />
                             <span>下证时间:</span>
                             <RangePicker style={{ width: '240px' }}
                                 allowClear={false}
-                                value={[moment(this.state.authTime[0]), moment(this.state.authTime[1])]}
+                                value={[this.state.authTime[0] ? moment(this.state.authTime[0]) : null,
+                                this.state.authTime[1] ? moment(this.state.authTime[1]) : null]}
                                 onChange={(date, dateString) => { this.setState({ authTime: dateString }) }} />
                         </div>
                     </div>

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

@@ -217,17 +217,17 @@ const ActivityDesc = React.createClass({
                                 <span>(自动计算)</span>
                             </div>
                             <div className="half-div">
-                                <span>其中(一年):</span>
+                                <span>其中(一年):</span>
                                 <InputNumber value={this.state.firstYearExpenditure || 0}
                                     onChange={(e) => { this.setState({ firstYearExpenditure: e || 0 }); }} />
                             </div>
                             <div className="half-div">
-                                <span>其中(二年):</span>
+                                <span>其中(二年):</span>
                                 <InputNumber value={this.state.secondYearExpenditure || 0}
                                     onChange={(e) => { this.setState({ secondYearExpenditure: e || 0 }); }} />
                             </div>
                             <div className="half-div">
-                                <span>其中(三年):</span>
+                                <span>其中(三年):</span>
                                 <InputNumber value={this.state.thirdYearExpenditure || 0}
                                     onChange={(e) => { this.setState({ thirdYearExpenditure: e || 0 }); }} />
                             </div>

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

@@ -25,6 +25,7 @@ const Base = React.createClass({
             success: function (data) {
                 if (data.data) {
                     this.setState({
+                        id:data.data.id,
                         intellectRight: data.data.intellectRight,
                         scienceAchievement: data.data.scienceAchievement,
                         researchInnovation: data.data.researchInnovation,
@@ -51,12 +52,12 @@ const Base = React.createClass({
             crossDomain: false,
             url: globalConfig.context + "/api/admin/disposeAble",
             data: {
-                uid:this.props.data.uid,
+                uid: this.props.data.uid,
+                id: this.state.id,
                 intellectRight: this.state.intellectRight,
                 scienceAchievement: this.state.scienceAchievement,
                 researchInnovation: this.state.researchInnovation,
                 personnel: this.state.personnel
-
             }
         }).done(function (data) {
             if (!data.error.length) {

+ 6 - 4
js/component/manageCenter/servicesManage/highTech/fosterDesc/orgTechCenter.jsx

@@ -237,14 +237,16 @@ const CenterList = React.createClass({
         this.setState({
             loading: true
         });
-        let page = pageNo || 1,
-            pageSize = this.state.pagination.pageSize,
-            cid = this.state.cid;
         $.ajax({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/centerDetail?pageNo=" + page + "&pageSize=" + pageSize + "&cid=" + cid,
+            url: globalConfig.context + "/api/admin/centerDetail",
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                cid: this.state.cid
+            }
         }).done((data) => {
             if (!data.data || !data.data.list) {
                 if (data.error.length) {

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

@@ -1,8 +1,8 @@
 import React from 'react';
-import { Icon, Upload, Form, Button, Radio, Input, Spin, Table, message, Select, Modal, DatePicker, Cascader, Transfer, InputNumber } from 'antd';
+import { Icon, Upload, Form, Button, Radio, Input, Spin, Table, message, Select, Modal, Cascader, Transfer, InputNumber } from 'antd';
 import { technicalSourceList } from '../../../../dataDic.js';
 import { techFieldList } from '../../../../DicTechFieldList.js';
-import { getTechField, getTechnicalSource, beforeUploadFile, downloadFile } from '../../../../tools.js';
+import { getTechField, getTechnicalSource, beforeUploadFile, newDownloadFile } from '../../../../tools.js';
 import moment from 'moment';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';

+ 27 - 9
js/component/manageCenter/servicesManage/highTech/highTechApply.jsx

@@ -32,25 +32,43 @@ const CognizanceDescFrom = Form.create()(React.createClass({
                 this.state.cid = this.props.data.cid;
                 this.state.moneyTable = [{
                     key: 1,
-                    year: '一年',
+                    year: '一年',
                     netAsset: data.data.netAsset1,
                     salesRevenue: data.data.salesRevenue1,
                     grossProfit: data.data.grossProfit1
                 }, {
                     key: 2,
-                    year: '二年',
+                    year: '二年',
                     netAsset: data.data.netAsset2,
                     salesRevenue: data.data.salesRevenue2,
                     grossProfit: data.data.grossProfit2
                 }, {
                     key: 3,
-                    year: '三年',
+                    year: '三年',
                     netAsset: data.data.netAsset3,
                     salesRevenue: data.data.salesRevenue3,
                     grossProfit: data.data.grossProfit3
                 }];
-                this.state.netAssetRate = 1 / 2 * (data.data.netAsset2 / data.data.netAsset3 + data.data.netAsset1 / data.data.netAsset2) - 1;
-                this.state.salesRevenueRate = 1 / 2 * (data.data.salesRevenue2 / data.data.salesRevenue3 + data.data.salesRevenue1 / data.data.salesRevenue2) - 1;
+                if (data.data.netAsset2 == 0) {
+                    this.state.netAssetRate = 0;
+                } else if (data.data.netAsset3 == 0) {
+                    this.state.netAssetRate = (data.data.netAsset1 / data.data.netAsset2) - 1;
+                } else {
+                    this.state.netAssetRate = 1 / 2 * (data.data.netAsset2 / data.data.netAsset3 + data.data.netAsset1 / data.data.netAsset2) - 1;
+                };
+                if (this.state.netAssetRate < 0 || isNaN(this.state.netAssetRate)) {
+                    this.state.netAssetRate = 0
+                };
+                if (data.data.salesRevenue2 == 0) {
+                    this.state.salesRevenueRate = 0;
+                } else if (data.data.salesRevenue3 == 0) {
+                    this.state.salesRevenueRate = (data.data.salesRevenue1 / data.data.salesRevenue2) - 1;
+                } else {
+                    this.state.salesRevenueRate = 1 / 2 * (data.data.salesRevenue2 / data.data.salesRevenue3 + data.data.salesRevenue1 / data.data.salesRevenue2) - 1;
+                };
+                if (this.state.salesRevenueRate < 0 || isNaN(this.state.salesRevenueRate)) {
+                    this.state.salesRevenueRate = 0
+                };
             }.bind(this),
         }).always(function () {
             this.setState({
@@ -252,6 +270,7 @@ const CognizanceDescFrom = Form.create()(React.createClass({
             this.getStateData(nextProps.data.cid);
             this.loadData(nextProps.data.uid, nextProps.data.cid, nextProps.data.year);
             this.getContactsList(nextProps.data.uid);
+            this.props.form.resetFields();
         };
     },
     render() {
@@ -351,11 +370,11 @@ const CognizanceDescFrom = Form.create()(React.createClass({
                     <div className="clearfix">
                         <div className="half-item">
                             <span className="item-title">净资产增长率: </span>
-                            <span>{isNaN(this.state.netAssetRate) ? '数据错误无法计算' : (this.state.netAssetRate * 100).toFixed(2) + '%'}</span>
+                            <span>{(this.state.netAssetRate * 100).toFixed(2) + '%'}</span>
                         </div>
                         <div className="half-item">
                             <span className="item-title">销售收入增长率: </span>
-                            <span>{isNaN(this.state.salesRevenueRate) ? '数据错误无法计算' : (this.state.salesRevenueRate * 100).toFixed(2) + '%'}</span>
+                            <span>{(this.state.salesRevenueRate * 100).toFixed(2) + '%'}</span>
                         </div>
                     </div>
                     <div className="clearfix">
@@ -600,8 +619,7 @@ const CognizanceAdd = React.createClass({
                 contacts: this.state.contacts,
                 comment: this.state.comment,
                 consultant: this.state.consultant,
-                uid: this.state.uid,
-                state: this.state.year == this.state.thisYear ? 0 : 7
+                uid: this.state.uid
             }
         }).done(function (data) {
             if (!data.error.length) {

+ 36 - 50
js/component/manageCenter/servicesManage/highTech/highTechFoster.jsx

@@ -1,9 +1,10 @@
 import React from 'react';
-import { Icon, Button, Input, Select, Spin, Table, DatePicker, message, Cascader } from 'antd';
+import { Icon, Button, Input, Select, Spin, Table, message, Cascader } from 'antd';
 import { provinceArr } from '../../../dataDic.js';
-import { getTime, getPatentState, companySearch } from '../../../tools.js';
+import { getTime, getCognizanceState, companySearch } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
+import moment from 'moment';
 import './highTechFoster.less';
 import FosterDesc from './fosterDesc/content.jsx';
 
@@ -17,12 +18,12 @@ const Patent = React.createClass({
             method: "post",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/listCognizance",
+            url: globalConfig.context + "/api/admin/cultivate",
             data: {
                 pageNo: pageNo || 1,
                 pageSize: this.state.pagination.pageSize,
                 locationProvince: this.state.province,
-                unitName: this.state.unitName,
+                uid: this.state.unitName,
             },
             success: function (data) {
                 if (data.error.length || !data.data || !data.data.list) {
@@ -33,25 +34,24 @@ const Patent = React.createClass({
                     let thisdata = data.data.list[i];
                     this.state.data.push({
                         key: i,
-                        uid: thisdata.uid,
-                        cid: thisdata.cid,
-                        serialNumber: thisdata.serialNumber,
-                        locationProvince: thisdata.locationProvince,
-                        unitName: thisdata.unitName,
-                        contacts: [thisdata.contacts, {
+                        certificateNumber: thisdata.certificateNumber,
+                        contacts: [thisdata.cogContacts, {
                             '1': thisdata.firstContacts,
                             '2': thisdata.secondContacts,
                             '3': thisdata.thirdContacts
                         }],
-                        createTime: thisdata.createTime,
-                        comment: thisdata.comment,
-                        state: thisdata.state,
-                        certificateNumber: thisdata.certificateNumber,
-                        issuingDate: thisdata.issuingDate,
+                        cogContacts: thisdata.cogContacts,
                         consultant: thisdata.consultant,
-                        createTimeFormattedDate: thisdata.createTimeFormattedDate,
+                        firstContacts: thisdata.firstContacts,
+                        issuingDate: thisdata.issuingDate,
                         issuingDateFormattedDate: thisdata.issuingDateFormattedDate,
-                        endtime: getTime(thisdata.issuingDateFormattedDate, 36)
+                        endtime: thisdata.issuingDateFormattedDate ? getTime(thisdata.issuingDateFormattedDate, 36) : null,
+                        province: thisdata.province,
+                        secondContacts: thisdata.secondContacts,
+                        thirdContacts: thisdata.thirdContacts,
+                        uid: thisdata.uid,
+                        unitName: thisdata.unitName,
+                        state: thisdata.issuingDateFormattedDate ? getTime(thisdata.issuingDateFormattedDate, 36) : null,
                     });
                 };
                 this.state.pagination.current = data.data.pageNo;
@@ -67,32 +67,6 @@ const Patent = React.createClass({
             });
         }.bind(this));
     },
-    getAuthorList() {
-        this.setState({
-            loading: true
-        });
-        $.ajax({
-            method: "get",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/api/user/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
@@ -101,9 +75,12 @@ const Patent = React.createClass({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/user/patent/getUnitNames",
+            url: globalConfig.context + "/api/admin/getUnitNames",
             success: function (data) {
-                if (data.error.length || !data.data) {
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
                     return;
                 };
                 let _me = this;
@@ -123,7 +100,6 @@ const Patent = React.createClass({
         return {
             provinceOption: [],
             companyOption: [],
-            authorOption: [],
             fosterDescDisplay: 'none',
             fosterDisplay: 'block',
             data: [],
@@ -143,8 +119,8 @@ const Patent = React.createClass({
             columns: [
                 {
                     title: '省份',
-                    dataIndex: 'locationProvince',
-                    key: 'locationProvince',
+                    dataIndex: 'province',
+                    key: 'province',
                 }, {
                     title: '公司名称',
                     dataIndex: 'unitName',
@@ -164,7 +140,18 @@ const Patent = React.createClass({
                     title: '状态',
                     dataIndex: 'state',
                     key: 'state',
-                    render: text => { return getPatentState(text) }
+                    render: text => {
+                        if (text) {
+                            let n = moment(new Date()).format("YYYY-MM-DD");
+                            if (text > n) {
+                                return '已下证';
+                            } else {
+                                return '已到期';
+                            }
+                        } else {
+                            return '培育中';
+                        }
+                    }
                 }, {
                     title: '证书编号',
                     dataIndex: 'certificateNumber',
@@ -194,7 +181,6 @@ const Patent = React.createClass({
             )
         });
         this.loadData();
-        this.getAuthorList();
         this.getCompanyList();
     },
     tableRowClick(record, index) {

+ 21 - 22
js/component/manageCenter/servicesManage/patent/applyFee.jsx

@@ -1,9 +1,10 @@
 import React from 'react';
 import { Icon, Button, Select, Spin, Table, message, DatePicker } from 'antd';
 import { provinceArr } from '../../../dataDic.js';
-import { getTime, getPatentType, getPatentState,companySearch } from '../../../tools.js';
+import { getTime, getPatentType, getPatentState, companySearch } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
+import moment from 'moment';
 import './comprehensive.less';
 import ApplyFeeDesc from './applyFeeDesc.jsx';
 
@@ -13,16 +14,17 @@ const applyFee = React.createClass({
         this.setState({
             loading: true
         });
-        let page = pageNo || 1,
-        pageSize = this.state.pagination.pageSize,
-        locationProvince = this.state.province,
-        patentApplicationDate = this.state.searchData;
-
         $.ajax({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/patent/getApplicationFeeList?pageNo=" + page + "&pageSize=" + pageSize + "&locationProvince=" + locationProvince + "&patentApplicationDate=" + patentApplicationDate,
+            url: globalConfig.context + "/api/admin/patent/getApplicationFeeList",
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                locationProvince: this.state.province,
+                patentApplicationDate: this.state.searchData
+            },
             success: function (data) {
                 if (data.error.length || !data.data || !data.data.list) {
                     message.warning(data.error[0].message);
@@ -63,13 +65,7 @@ const applyFee = React.createClass({
     },
     getInitialState() {
         return {
-            number: '',
-            patentNumber: '',
-            //office: 事务所,
-            province: '',
-            unitName: '',
-            patentType: '',
-            patentName: '',
+            searchData: [],
             provinceOption: [],
             data: [],
             loading: false,
@@ -100,8 +96,8 @@ const applyFee = React.createClass({
                     key: 'province',
                 }, {
                     title: '公司名称',
-                    dataIndex: 'companyName',
-                    key: 'companyName',
+                    dataIndex: 'unitName',
+                    key: 'unitName',
                 }, {
                     title: '专利名称',
                     dataIndex: 'patentName',
@@ -189,15 +185,12 @@ const applyFee = React.createClass({
             this.loadData();
         };
     },
-    searchAuthorizedDate(data, dataString) {
-        this.state.searchData = dataString;
-    },
     search() {
         this.loadData();
     },
     reset() {
-        this.state.province = '';
-        this.state.searchData = '';
+        this.state.province = undefined;
+        this.state.searchData = [];
         this.loadData();
     },
     exportApply() {
@@ -216,10 +209,16 @@ const applyFee = React.createClass({
                         style={{ width: 200 }}
                         showSearch
                         filterOption={companySearch}
+                        value={this.state.province}
                         onChange={(e) => { this.state.province = e }}>
                         {this.state.provinceOption}
                     </Select>
-                    <span>申请日:<RangePicker onChange={this.searchAuthorizedDate} /></span>
+                    <span>申请日:
+                    <RangePicker style={{ width: '240px' }}
+                            allowClear={false}
+                            value={[this.state.searchData[0] ? moment(this.state.searchData[0]) : null, this.state.searchData[1] ? moment(this.state.searchData[1]) : null]}
+                            onChange={(date, dateString) => { this.setState({ searchData: dateString }) }} />
+                    </span>
                     <span>
                         <Button type="primary" onClick={this.search}>搜索</Button>
                         <Button onClick={this.reset}>重置</Button>

+ 6 - 6
js/component/manageCenter/servicesManage/patent/applyFeeDesc.jsx

@@ -32,14 +32,15 @@ const PatentDesc = React.createClass({
                 printingFee: this.state.printingFee,
                 funds: this.state.funds,
                 reimbursement: this.state.reimbursement,
-                paymentState:this.state.paymentState
+                paymentState: this.state.paymentState
             },
             success: function (data) {
-                if (data.error.length) {
+                if (data.error && data.error.length) {
                     message.warning(data.error[0].message);
                     return;
                 } else {
                     message.success('保存成功!');
+                    this.props.closeDesc(false, true);
                 };
             }.bind(this),
         }).always(function () {
@@ -48,7 +49,6 @@ const PatentDesc = React.createClass({
                 visible: false,
             });
         }.bind(this));
-        this.props.closeDesc(false,true);
     },
     handleConfirm() {
         this.state.paymentState = 1;
@@ -81,9 +81,9 @@ const PatentDesc = React.createClass({
                             width='360px'
                             footer={[
                                 <Button key="submit" type="primary" size="large" onClick={this.handleOk}>保存</Button>,
-                                <Button key="confirm" type="ghost" size="large" 
-                                style={this.props.data.paymentState == 1 ? {display:'none'} : {}}
-                                onClick={this.handleConfirm}>确认缴费</Button>,
+                                <Button key="confirm" type="ghost" size="large"
+                                    style={this.props.data.paymentState == 1 ? { display: 'none' } : {}}
+                                    onClick={this.handleConfirm}>确认缴费</Button>,
                                 <Button key="back" type="ghost" size="large" onClick={this.handleCancel}>取消</Button>,
                             ]}
                             className="applyFee-desc-content">

+ 9 - 9
js/component/manageCenter/servicesManage/patent/clientInputPatent.jsx

@@ -2,7 +2,7 @@ import React from 'react';
 import { Icon, Modal, Button, Form, message, Input, Spin, Select, DatePicker } from 'antd';
 import './comprehensive.less';
 import { patentGetList, patentTypeList } from '../../../dataDic.js';
-import { companySearch} from '../../../tools.js';
+import { companySearch } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
 
@@ -76,15 +76,15 @@ const PatentAddFrom = Form.create()(React.createClass({
                         "authorizationDate": this.state.authorizationDate
                     }
                 }).done(function (data) {
-                    if (!data.error.length) {
-                        message.success('保存成功!');
-                    } else {
+                    if (data.error && data.error.length) {
                         message.warning(data.error[0].message);
-                    }
+                    } else {
+                        message.success('保存成功!');
+                        this.props.clickOk();
+                        this.props.form.resetFields();
+                    };
                 }.bind(this)).always(function () {
                     this.props.spinState(false);
-                    this.props.clickOk();
-                    this.props.form.resetFields();
                 }.bind(this));
             }
         });
@@ -225,7 +225,7 @@ const PatentAdd = React.createClass({
         this.setState({
             visible: false,
         });
-        this.props.closeDesc(false,true);
+        this.props.closeDesc(false, true);
     },
     handleCancel(e) {
         this.setState({
@@ -248,7 +248,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>

+ 3 - 3
js/component/manageCenter/servicesManage/patent/comPatentAdd.jsx

@@ -29,7 +29,7 @@ class Avatar extends React.Component {
                 className="avatar-uploader"
                 name="avatar"
                 showUploadList={false}
-                action={globalConfig.context + "/api/admin/patent/upload"}
+                action={globalConfig.context + "/api/admin/patent/uploadProry"}
                 data={{ 'sign': this.props.name, 'uid': this.props.oid }}
                 beforeUpload={beforeUpload}
                 onChange={this.handleChange.bind(this)}
@@ -130,16 +130,16 @@ const PatentAddFrom = Form.create()(React.createClass({
                         'patentProryStatementUrl': this.state.avatarUrl
                     }
                 }).done(function (data) {
-                    if (!data.error.length) {
+                    if (data.error && !data.error.length) {
                         message.success('保存成功!');
                         this.props.okClick();
                         this.props.closeModal();
+                        this.props.form.resetFields();
                     } else {
                         message.warning(data.error[0].message);
                     }
                 }.bind(this)).always(function () {
                     this.props.spinState(false);
-                    this.props.form.resetFields();
                 }.bind(this));
             }
         });

+ 16 - 10
js/component/manageCenter/servicesManage/patent/comPatentDesc.jsx

@@ -36,7 +36,7 @@ class Avatar extends React.Component {
                 name="avatar"
                 showUploadList={false}
                 action={globalConfig.context + "/api/admin/patent/upload"}
-                data={{ 'sign': this.props.name, 'uid': this.props.uid }}
+                data={{ 'sign': this.props.name, 'uid': this.props.uid, 'id': this.props.id }}
                 beforeUpload={beforeUpload}
                 onChange={this.handleChange.bind(this)}
             >
@@ -88,12 +88,14 @@ const PatentDesc = React.createClass({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/patent/detail?pid=" + this.state.xid,
+            url: globalConfig.context + "/api/admin/patent/detail",
+            data: { "pid": this.state.xid },
         }), $.ajax({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/patent/logs?pid=" + this.state.xid,
+            url: globalConfig.context + "/api/admin/patent/logs ",
+            data: { pid: this.state.xid }
         }), $.ajax({
             method: "get",
             dataType: "json",
@@ -118,6 +120,8 @@ const PatentDesc = React.createClass({
             this.state.patentState = data1[0].data.patentState;
             this.state.patentField = data1[0].data.patentField;
             this.state.contacts = data1[0].data.contacts;
+            this.state.uid = data1[0].data.uid;
+            this.state.id = data1[0].data.id;
             if (data2[0].error.length) {
                 message.warning(data2[0].error[0].message);
                 return;
@@ -211,6 +215,7 @@ const PatentDesc = React.createClass({
     handleOk() {
         this.setState({
             visible: true,
+            loading: true
         });
         $.ajax({
             method: "POST",
@@ -219,9 +224,10 @@ const PatentDesc = React.createClass({
             url: globalConfig.context + "/api/admin/patent/update",
             data: {
                 "id": this.state.xid,
+                "uid": this.state.uid,
                 "patentNumber": this.state.patentNumber,
                 "patentName": this.state.patentName,
-                "patentCatagory": this.state.data.patentCatagory,
+                "patentCatagory": this.state.patentCatagory,
                 "patentField": this.state.patentField,
                 "patentDes": this.state.patentDes,
                 "contacts": this.state.contacts,
@@ -235,16 +241,16 @@ const PatentDesc = React.createClass({
                 "comment": this.state.comment
             }
         }).done(function (data) {
-            if (!data.error.length) {
+            if (data.error && !data.error.length) {
                 message.success('保存成功!');
+                this.props.closeDesc(false, true);
             } else {
                 message.warning(data.error[0].message);
             }
         }.bind(this)).always(function () {
             this.setState({
-                visible: false,
+                loading: false,
             });
-            this.props.closeDesc(false, true);
         }.bind(this));
     },
     checkPatentProcess() {
@@ -398,9 +404,9 @@ const PatentDesc = React.createClass({
                                         <p><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />上年度纳税报表未上传</p>
                                     }
                                 </div>
-                                <Avatar urlData={this.getPatentWritingUrl} name='patent_writing' uid={theData.uid} />
-                                <Avatar urlData={this.getAuthorizationNoticeUrl} name='authorization_notice' uid={theData.uid} />
-                                <Avatar urlData={this.getPatentCertificateUrl} name='patent_certificate' uid={theData.uid} />
+                                <Avatar urlData={this.getPatentWritingUrl} name='patent_writing' uid={theData.uid} id={theData.id} />
+                                <Avatar urlData={this.getAuthorizationNoticeUrl} name='authorization_notice' uid={theData.uid} id={theData.id} />
+                                <Avatar urlData={this.getPatentCertificateUrl} name='patent_certificate' uid={theData.uid} id={theData.id} />
                             </div>
                             <div className="avatar-text"><span>专利稿件上传</span><span>授权通知书上传</span><span>专利证书上传</span></div>
                             <div className="clearfix">

+ 27 - 16
js/component/manageCenter/servicesManage/patent/comprehensive.jsx

@@ -4,6 +4,7 @@ import { patentTypeList, patentStateList, provinceArr } from '../../../dataDic.j
 import { getTime, getPatentState, beforeUploadFile, companySearch } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
+import moment from 'moment';
 import './comprehensive.less';
 import PatentAdd from './comPatentAdd.jsx';
 import PatentDesc from './comPatentDesc.jsx';
@@ -30,8 +31,8 @@ const Patent = React.createClass({
                 patentCatagory: this.state.patentType || null,
                 patentState: this.state.patentState || null,
                 createTime: this.state.createTime || null,
-                patentApplicationDate: this.state.startTime || null,
-                authorizedDate: this.state.endTime || null,
+                patentApplicationDate: this.state.acceptTime || null,
+                authorizedDate: this.state.authTime || null,
                 author: this.state.author
             },
             success: function (data) {
@@ -131,8 +132,8 @@ const Patent = React.createClass({
     getInitialState() {
         return {
             createTime: [],
-            endTime: [],
-            startTime: [],
+            acceptTime: [],
+            authTime: [],
             patentTypeOption: [],
             patentStateOption: [],
             companyOption: [],
@@ -254,8 +255,8 @@ const Patent = React.createClass({
         this.state.patentName = undefined;
         this.state.patentState = undefined;
         this.state.createTime = [];
-        this.state.endTime = [];
-        this.state.startTime = [];
+        this.state.acceptTime = [];
+        this.state.authTime = [];
         this.state.author = undefined;
         this.state.searchKey = undefined;
         this.state.searchValue = undefined;
@@ -271,7 +272,7 @@ const Patent = React.createClass({
             "&" + "patentCatagory" + "=" + this.state.patentCatagory +
             "&" + "patentState" + "=" + this.state.patentState +
             "&" + "createTime" + "=" + this.state.createTime +
-            "&" + "patentApplicationDate" + "=" + this.state.startTime +
+            "&" + "patentApplicationDate" + "=" + this.state.acceptTime +
             "&" + "author" + "=" + this.state.author);
     },
     searchSwitch() {
@@ -279,12 +280,6 @@ const Patent = React.createClass({
             searchMore: !this.state.searchMore
         });
     },
-    searchcreateTime(date, dateString) {
-        this.state.createTime = dateString;
-    },
-    searchstartTime(date, dateString) {
-        this.state.startTime = dateString;
-    },
     searchSelect(e) {
         let _me = this;
         this.setState({
@@ -428,8 +423,18 @@ const Patent = React.createClass({
                         onClick={this.delectRow}>删除<Icon type="minus" /></Button>
                     <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>
                         <p>
-                            <span>派单日:</span><RangePicker onChange={this.searchcreateTime} />
-                            <span>申请日:</span><RangePicker onChange={this.searchstartTime} />
+                            <span>派单日:</span>
+                            <RangePicker style={{ width: '240px' }}
+                                allowClear={false}
+                                value={[this.state.createTime[0] ? moment(this.state.createTime[0]) : null,
+                                this.state.createTime[1] ? moment(this.state.createTime[1]) : null]}
+                                onChange={(date, dateString) => { this.setState({ createTime: dateString }) }} />
+                            <span>申请日:</span>
+                            <RangePicker style={{ width: '240px' }}
+                                allowClear={false}
+                                value={[this.state.acceptTime[0] ? moment(this.state.acceptTime[0]) : null,
+                                this.state.acceptTime[1] ? moment(this.state.acceptTime[1]) : null]}
+                                onChange={(date, dateString) => { this.setState({ acceptTime: dateString }) }} />
                         </p>
                         <div>
                             <Select placeholder="选择省份"
@@ -469,4 +474,10 @@ const Patent = React.createClass({
     }
 });
 
-export default Patent;
+export default Patent;
+
+// <span>授权日:</span>
+//     <RangePicker style={{ width: '240px' }}
+//         allowClear={false}
+//         value={[moment(this.state.authTime[0]), moment(this.state.authTime[1])]}
+//         onChange={(date, dateString) => { this.setState({ authTime: dateString }) }} />

+ 2 - 2
js/component/manageCenter/servicesManage/patent/correction.jsx

@@ -114,8 +114,8 @@ const Correction = React.createClass({
                     key: 'province',
                 }, {
                     title: '公司名称',
-                    dataIndex: 'companyName',
-                    key: 'companyName',
+                    dataIndex: 'unitName',
+                    key: 'unitName',
                 }, {
                     title: '专利类型',
                     dataIndex: 'patentType',

+ 5 - 7
js/component/manageCenter/servicesManage/patent/correctionDesc.jsx

@@ -31,11 +31,11 @@ const CorrectionDesc = React.createClass({
                 patentState: this.props.data.patentState
             },
             success: function (data) {
-                if (data.error.length) {
+                if (data.error && data.error.length) {
                     message.warning(data.error[0].message);
-                    return;
                 } else {
                     message.success('保存成功!');
+                    this.props.closeDesc(false, true);
                 };
             }.bind(this),
         }).always(function () {
@@ -44,7 +44,6 @@ const CorrectionDesc = React.createClass({
                 visible: false,
             });
         }.bind(this));
-        this.props.closeDesc(false,true);
     },
     handleCancel(e) {
         this.setState({
@@ -69,12 +68,11 @@ const CorrectionDesc = React.createClass({
                             ]}
                             className="patent-desc-content">
                             <div style={{ fontSize: '16px' }}>
-                                <p><span>公司:</span>{this.props.data.companyName}</p>
+                                <p><span>公司:</span>{this.props.data.unitName}</p>
                                 <p><span>专利:</span>{this.props.data.patentName}</p>
-                                <p><span>专利号:</span><a href="">{this.props.data.patentNumber}</a></p>
                                 <p>{(() => {
-                                    if (this.props.data.patentState == 4) { return <span>审查意见</span> }
-                                    else if (this.props.data.patentState == 6) { return <span>补正通知</span> }
+                                    if (this.props.data.patentState == 6) { return <span>审查意见</span> }
+                                    else if (this.props.data.patentState == 8) { return <span>补正通知</span> }
                                 })()}
                                     <span>确认已经答复?</span></p>
                             </div>

+ 33 - 30
js/component/manageCenter/servicesManage/patent/express.jsx

@@ -12,13 +12,15 @@ const Express = React.createClass({
         this.setState({
             loading: true
         });
-        let page = pageNo || 1,
-        pageSize = this.state.pagination.pageSize;
         $.ajax({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/patent/getRecieveSendList?pageNo=" + page + "&pageSize=" + pageSize,
+            url: globalConfig.context + "/api/admin/patent/getRecieveSendList",
+            data: {
+                "pageNo": pageNo || 1,
+                "pageSize": this.state.pagination.pageSize
+            },
             success: function (data) {
                 if (data.error.length || !data.data || !data.data.list) {
                     message.warning(data.error[0].message);
@@ -33,20 +35,21 @@ const Express = React.createClass({
                         unitName: thisdata.unitName,
                         patentName: thisdata.patentName,
                         patentType: thisdata.patentCatagory,
-                        acceptanceReceiveTime:thisdata.acceptanceReceiveTimeFormattedDate,
-                        acceptanceIssueTime:thisdata.acceptanceIssueTimeFormattedDate,
-                        acceptanceTrackingNumber:thisdata.acceptanceTrackingNumber,
-                        acceptance:[thisdata.acceptanceReceiveTimeFormattedDate,thisdata.acceptanceIssueTimeFormattedDate],
-                        authorizationReceiveTime:thisdata.authorizationReceiveTimeFormattedDate,
-                        authorizationIssueTime:thisdata.authorizationIssueTimeFormattedDate,
-                        authorizationTrackingNumber:thisdata.authorizationTrackingNumber,
-                        authorization:[thisdata.authorizationReceiveTimeFormattedDate,thisdata.authorizationIssueTimeFormattedDate],
-                        certificateRecieveTime:thisdata.certificateRecieveTimeFormattedDate,
-                        certificateIssueTime:thisdata.certificateIssueTimeFormattedDate,
-                        certificateTrackingNumber:thisdata.certificateTrackingNumber,
-                        certificate:[thisdata.certificateRecieveTimeFormattedDate,thisdata.certificateIssueTimeFormattedDate],
-                        rid:thisdata.rid,
-                        pid:thisdata.pid
+                        locationProvince: thisdata.locationProvince,
+                        acceptanceReceiveTime: thisdata.acceptanceReceiveTimeFormattedDate,
+                        acceptanceIssueTime: thisdata.acceptanceIssueTimeFormattedDate,
+                        acceptanceTrackingNumber: thisdata.acceptanceTrackingNumber,
+                        acceptance: [thisdata.acceptanceReceiveTimeFormattedDate, thisdata.acceptanceIssueTimeFormattedDate],
+                        authorizationReceiveTime: thisdata.authorizationReceiveTimeFormattedDate,
+                        authorizationIssueTime: thisdata.authorizationIssueTimeFormattedDate,
+                        authorizationTrackingNumber: thisdata.authorizationTrackingNumber,
+                        authorization: [thisdata.authorizationReceiveTimeFormattedDate, thisdata.authorizationIssueTimeFormattedDate],
+                        certificateRecieveTime: thisdata.certificateRecieveTimeFormattedDate,
+                        certificateIssueTime: thisdata.certificateIssueTimeFormattedDate,
+                        certificateTrackingNumber: thisdata.certificateTrackingNumber,
+                        certificate: [thisdata.certificateRecieveTimeFormattedDate, thisdata.certificateIssueTimeFormattedDate],
+                        rid: thisdata.rid,
+                        pid: thisdata.pid
                     });
                 };
                 this.state.pagination.current = data.data.pageNo;
@@ -95,12 +98,12 @@ const Express = React.createClass({
                     key: 'patentNumber',
                 }, {
                     title: '省份',
-                    dataIndex: 'province',
-                    key: 'province',
+                    dataIndex: 'locationProvince',
+                    key: 'locationProvince',
                 }, {
                     title: '公司名称',
-                    dataIndex: 'companyName',
-                    key: 'companyName',
+                    dataIndex: 'unitName',
+                    key: 'unitName',
                 }, {
                     title: '专利类型',
                     dataIndex: 'patentType',
@@ -114,43 +117,43 @@ const Express = React.createClass({
                     title: '受理书',
                     dataIndex: 'acceptance',
                     key: 'acceptance',
-                    render: text => { 
+                    render: text => {
                         if (text[1]) {
                             return <div>已发出</div>
                         } else {
-                            if ( text[0] ) {
+                            if (text[0]) {
                                 return <div>已收到</div>
                             };
                         };
-                        return <div>未收到</div> 
+                        return <div>未收到</div>
                     },
                 }, {
                     title: '授权书',
                     dataIndex: 'authorization',
                     key: 'authorization',
-                    render: text => { 
+                    render: text => {
                         if (text[1]) {
                             return <div>已发出</div>
                         } else {
-                            if ( text[0] ) {
+                            if (text[0]) {
                                 return <div>已收到</div>
                             };
                         };
-                        return <div>未收到</div> 
+                        return <div>未收到</div>
                     },
                 }, {
                     title: '证书',
                     dataIndex: 'certificate',
                     key: 'certificate',
-                    render: text => { 
+                    render: text => {
                         if (text[1]) {
                             return <div>已发出</div>
                         } else {
-                            if ( text[0] ) {
+                            if (text[0]) {
                                 return <div>已收到</div>
                             };
                         };
-                        return <div>未收到</div> 
+                        return <div>未收到</div>
                     },
                 }
             ],

+ 2 - 3
js/component/manageCenter/servicesManage/patent/expressDesc.jsx

@@ -44,11 +44,11 @@ const ExpressDesc = React.createClass({
                 "certificateExpressCompany": "顺丰"
             },
             success: function (data) {
-                if (data.error.length) {
+                if (data.error && data.error.length) {
                     message.warning(data.error[0].message);
-                    return;
                 } else {
                     message.success('保存成功!');
+                    this.props.closeDesc(false, true);
                 };
             }.bind(this),
         }).always(function () {
@@ -57,7 +57,6 @@ const ExpressDesc = React.createClass({
                 visible: false,
             });
         }.bind(this));
-        this.props.closeDesc(false,true);
     },
     handleCancel(e) {
         this.setState({

+ 13 - 10
js/component/manageCenter/servicesManage/patent/payment.jsx

@@ -13,15 +13,16 @@ const Payment = React.createClass({
         this.setState({
             loading: true
         });
-        let page = pageNo || 1,
-        pageSize = this.state.pagination.pageSize,
-        locationProvince = this.state.province;
-
         $.ajax({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/patent/pendingPaymentList?pageNo=" + page + "&pageSize=" + pageSize + "&locationProvince=" + locationProvince,
+            url: globalConfig.context + "/api/admin/patent/pendingPaymentList",
+            data: {
+                page: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                locationProvince: this.state.province
+            },
             success: function (data) {
                 if (data.error.length || !data.data || !data.data.list) {
                     message.warning(data.error[0].message);
@@ -98,8 +99,8 @@ const Payment = React.createClass({
                     key: 'province',
                 }, {
                     title: '公司名称',
-                    dataIndex: 'companyName',
-                    key: 'companyName',
+                    dataIndex: 'unitName',
+                    key: 'unitName',
                 }, {
                     title: '专利类型',
                     dataIndex: 'patentType',
@@ -119,9 +120,11 @@ const Payment = React.createClass({
                     dataIndex: 'annualFeeState',
                     key: 'annualFeeState',
                     render: text => {
-                        if (text == '0') {
+                        if (text == 0) {
                             return '未缴费'
-                        }
+                        } else if (text == 1) {
+                            return '已缴费'
+                        };
                     },
                 }, {
                     title: '缴费截止时间',
@@ -144,7 +147,7 @@ const Payment = React.createClass({
     },
     tableRowClick(record, index) {
         this.state.RowData = record;
-        if (record.annualFeeState !== '1') {
+        if (record.annualFeeState !== 1) {
             this.setState({
                 showDesc: true
             });

+ 7 - 8
js/component/manageCenter/servicesManage/patent/paymentDesc.jsx

@@ -26,15 +26,16 @@ const PatentDesc = React.createClass({
             crossDomain: false,
             url: globalConfig.context + "/api/admin/patent/confirmPayment",
             data: {
-                cid : this.props.data.cid,
-                uid : this.props.data.uid
+                cid: this.props.data.cid,
+                uid: this.props.data.uid
             },
             success: function (data) {
-                if ( data.error.length ) {
+                if (data.error && data.error.length) {
                     message.warning(data.error[0].message);
                     return;
                 } else {
                     message.success('保存成功!');
+                    this.props.closeDesc(false, true);
                 };
             }.bind(this),
         }).always(function () {
@@ -43,7 +44,6 @@ const PatentDesc = React.createClass({
                 visible: false,
             });
         }.bind(this));
-        this.props.closeDesc(false,true);
     },
     handleCancel(e) {
         this.setState({
@@ -68,10 +68,9 @@ const PatentDesc = React.createClass({
                             ]}
                             className="patent-desc-content">
                             <p style={{ fontSize: '16px' }}>
-                                <span>确认已经缴纳</span>{this.props.data.companyName}
-                                <span>公司专利</span>{this.props.data.patentName}
-                                <span>专利号</span><a href="">{this.props.data.patentNumber}</a>
-                                <span>的年登印费用?</span>
+                                <span>确认已经缴纳 </span> {this.props.data.unitName}
+                                <span> 公司专利 </span> {this.props.data.patentName}
+                                <span> 的年登印费用?</span>
                             </p>
                         </Modal>
                     </Spin>

+ 35 - 5
js/component/manageCenter/servicesManage/technology/applyAdd.jsx

@@ -16,7 +16,8 @@ const ApplyAdd = React.createClass({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/getContacts?uid=" + theUid,
+            url: globalConfig.context + "/api/admin/getContacts",
+            data: { "uid": theUid },
             success: function (data) {
                 let theOption = [];
                 if (data.error.length || !data.data) {
@@ -34,6 +35,33 @@ const ApplyAdd = React.createClass({
             }.bind(this),
         });
     },
+    getDepartmentList(id) {
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/techproject/getDepartment",
+            data: { "uid": id || this.props.data.uid },
+            success: function (data) {
+                let theOption = [];
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                    return;
+                };
+                for (let item in data.data) {
+                    let theData = data.data[item];
+                    theOption.push(
+                        <Select.Option value={item} key={item}>{theData}</Select.Option>
+                    );
+                };
+                this.setState({
+                    departmentOption: theOption,
+                });
+            }.bind(this),
+        });
+    },
     componentWillReceiveProps(nextProps) {
         this.state.visible = nextProps.showAdd
     },
@@ -138,7 +166,7 @@ const ApplyAdd = React.createClass({
                                 style={{ width: 200 }}
                                 showSearch
                                 filterOption={companySearch}
-                                onSelect={(e, n) => { this.state.uid = e; this.getContactsList(e); }}>
+                                onSelect={(e, n) => { this.state.uid = e; this.getContactsList(e); this.getDepartmentList(e); }}>
                                 {this.props.companyAddOption}
                             </Select>
                         </div>
@@ -153,11 +181,12 @@ const ApplyAdd = React.createClass({
                     <div className="clearfix">
                         <div className="half-item">
                             <span className="item-title">申报科技部门:  </span>
-                            <Input
+                            <Select
                                 placeholder="请填写申报部门"
                                 style={{ width: '200px' }}
-                                onChange={(e) => { this.state.department = e.target.value; }}
-                            />
+                                onChange={(e) => { this.state.department = e; }}>
+                                {this.state.departmentOption}
+                            </Select>
                         </div>
                     </div>
                     <div className="clearfix">
@@ -201,6 +230,7 @@ const ApplyAdd = React.createClass({
                         <div className="half-item">
                             <span className="item-title">{this.state.moneyType !== 2 ? '立项' : '后补助'}金额: </span>
                             <Input style={{ width: 200 }} onChange={(e) => { this.state.projectApproval = e.target.value; }} />
+                            <span>万元</span>
                         </div>
                     </div>
                     <div className="clearfix">

+ 50 - 14
js/component/manageCenter/servicesManage/technology/applyChange.jsx

@@ -19,9 +19,10 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                 pid: id || this.props.data.pid
             },
             success: function (data) {
-
-                if (data.error.length || !data.data) {
-                    message.warning(data.error[0].message);
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
                     return;
                 };
                 this.state.data = data.data;
@@ -55,8 +56,10 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                 pid: id || this.props.data.pid
             },
             success: function (data) {
-                if (data.error.length || !data.data) {
-                    message.warning(data.error[0].message);
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
                     return;
                 };
                 var myDate = new Date();
@@ -65,7 +68,8 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                     this.state.stateTable.push({
                         key: i,
                         state: data.data[i].state,
-                        recordTime: myDate.toLocaleDateString(data.data[i].recordTime),
+                        recordTime: data.data[i].recordTime,
+                        recordTimeFormattedDate:data.data[i].recordTimeFormattedDate,
                         principal: data.data[i].principal,
                         comment: data.data[i].comment
                     });
@@ -82,10 +86,14 @@ const ApplyChangeFrom = Form.create()(React.createClass({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + "/api/admin/getContacts?uid=" + this.props.data.uid,
+            url: globalConfig.context + "/api/admin/getContacts",
+            data: { "uid": this.props.data.uid },
             success: function (data) {
                 let theOption = [];
-                if (data.error.length || !data.data) {
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
                     return;
                 };
                 for (let item in data.data) {
@@ -101,6 +109,33 @@ const ApplyChangeFrom = Form.create()(React.createClass({
             }.bind(this),
         });
     },
+    getDepartmentList(id) {
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/techproject/getDepartment",
+            data: { "uid": id || this.props.data.uid },
+            success: function (data) {
+                let theOption = [];
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                    return;
+                };
+                for (let item in data.data) {
+                    let theData = data.data[item];
+                    theOption.push(
+                        <Select.Option value={item} key={item}>{theData}</Select.Option>
+                    );
+                };
+                this.setState({
+                    departmentOption: theOption,
+                });
+            }.bind(this),
+        });
+    },
     getOptionList() {
         this.setState({
             loading: true
@@ -147,8 +182,8 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                 render: (text) => { return getTechnologyState(text) }
             }, {
                 title: '处理时间',
-                dataIndex: 'recordTime',
-                key: 'recordTime'
+                dataIndex: 'recordTimeFormattedDate',
+                key: 'recordTimeFormattedDate'
             }, {
                 title: '负责人',
                 dataIndex: 'principal',
@@ -165,7 +200,7 @@ const ApplyChangeFrom = Form.create()(React.createClass({
         this.loadData();
         this.getOptionList();
         this.getStateData();
-
+        this.getDepartmentList();
     },
     handleSubmit(e) {
         e.preventDefault();
@@ -220,6 +255,7 @@ const ApplyChangeFrom = Form.create()(React.createClass({
         if (!this.props.visible && nextProps.visible) {
             this.loadData(nextProps.data.pid);
             this.getStateData(nextProps.data.pid);
+            this.getDepartmentList(nextProps.data.pid);
         };
     },
     subsidyCheck(e) {
@@ -279,9 +315,9 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                             label="科技部门"
                         >
                             {getFieldDecorator('department', {
-                                initialValue: this.state.department
+                                initialValue: theData.department
                             })(
-                                <Input placeholder='请输入科技部门' />
+                                <Select placeholder='请输入科技部门' >{this.state.departmentOption}</Select>
                                 )}
                         </FormItem>
                     </div>
@@ -372,7 +408,7 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                         <Upload
                             name="avatar"
                             action={globalConfig.context + "/api/admin/techproject/upload"}
-                            data={{ 'uid': this.props.data.uid }}
+                            data={{ 'uid': this.props.data.uid, 'id': this.props.data.pid, 'sign': 'tech_project' }}
                             beforeUpload={beforeUploadFile}
                             showUploadList={false}
                             onChange={(info) => {

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

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Icon, Form, Button, Input, Select, Spin, Table, DatePicker, message, Modal, Checkbox, Upload } from 'antd';
+import { Icon, Form, Button, Input, Select, Spin, Table, message, Modal, Checkbox, Upload } from 'antd';
 import { cognizanceStateList } from '../../../dataDic.js';
 import { getCognizanceState, beforeUpload, getBase64 } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';

+ 2 - 1
js/component/manageCenter/userManage/customerList.jsx

@@ -350,7 +350,8 @@ const CustomerList = React.createClass({
                             <span>注册时间:</span>
                             <RangePicker
                                 allowClear={false}
-                                value={[moment(this.state.searchTime[0]), moment(this.state.searchTime[1])]}
+                                value={[this.state.searchTime[0] ? moment(this.state.searchTime[0]) : null,
+                                this.state.searchTime[1] ? moment(this.state.searchTime[1]) : null]}
                                 onChange={(data, dataString) => { this.setState({ searchTime: dataString }); }} />
                         </p>
                     </div>

+ 2 - 1
js/component/manageCenter/userManage/orgList.jsx

@@ -267,7 +267,8 @@ const OrgList = React.createClass({
                             <span>注册时间:</span>
                             <RangePicker
                                 allowClear={false}
-                                value={[moment(this.state.searchTime[0]), moment(this.state.searchTime[1])]}
+                                value={[this.state.searchTime[0] ? moment(this.state.searchTime[0]) : null,
+                                this.state.searchTime[1] ? moment(this.state.searchTime[1]) : null]}
                                 onChange={(data, dataString) => { this.setState({ searchTime: dataString }); }} />
                         </p>
                     </div>

+ 3 - 1
js/component/manageCenter/userManage/userList.jsx

@@ -252,7 +252,9 @@ const UserList = React.createClass({
                     <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>
                         <p>
                             <span>注册时间:</span>
-                            <RangePicker value={[moment(this.state.searchTime[0]), moment(this.state.searchTime[1])]}
+                            <RangePicker
+                                value={[this.state.searchTime[0] ? moment(this.state.searchTime[0]) : null,
+                                this.state.searchTime[1] ? moment(this.state.searchTime[1]) : null]}
                                 onChange={(data, dataString) => { this.setState({ searchTime: dataString }); }} />
                         </p>
                     </div>

+ 1 - 1
package.json

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