瀏覽代碼

Accept Merge Request #35 merge 1.0.31 : (master -> test)

Merge Request: merge 1.0.31
Created By: @seirios
Accepted By: @seirios
URL: https://coding.net/t/aft/p/AFT-WEB/git/merge/35
seirios 8 年之前
父節點
當前提交
9bb98845eb
共有 95 個文件被更改,包括 1740 次插入1492 次删除
  1. 二進制
      image/logo-2.png
  2. 二進制
      image/logo.png
  3. 71 71
      js/component/DicTechFieldList.js
  4. 0 16
      js/component/account/achievement/techAchievement.jsx
  5. 6 6
      js/component/account/achievement/techAchievementDesc.jsx
  6. 3 6
      js/component/account/demand/techDemand.jsx
  7. 1 1
      js/component/account/demand/techDemandDesc.jsx
  8. 7 8
      js/component/account/services/achievement.jsx
  9. 2 1
      js/component/account/services/activity.jsx
  10. 30 31
      js/component/account/services/activityCostList.jsx
  11. 41 40
      js/component/account/services/annualReport.jsx
  12. 29 28
      js/component/account/services/cognizance.jsx
  13. 4 4
      js/component/account/services/companyDetail.jsx
  14. 8 9
      js/component/account/services/contract/contractAdd.jsx
  15. 8 8
      js/component/account/services/contract/contractDetail.jsx
  16. 8 9
      js/component/account/services/copyright/comPatentAdd.jsx
  17. 13 11
      js/component/account/services/copyright/comPatentChange.jsx
  18. 5 3
      js/component/account/services/copyright/copyright.jsx
  19. 14 25
      js/component/account/services/evaluate/info.jsx
  20. 22 0
      js/component/account/services/evaluate/info.less
  21. 20 20
      js/component/account/services/finance.jsx
  22. 7 7
      js/component/account/services/honorList.jsx
  23. 15 19
      js/component/account/services/intellectualDesc.jsx
  24. 11 9
      js/component/account/services/orgTechCenter.jsx
  25. 7 8
      js/component/account/services/patentAdd.jsx
  26. 17 17
      js/component/account/services/ratepay.jsx
  27. 1 0
      js/component/account/services/standard.jsx
  28. 12 12
      js/component/account/services/techProduct.jsx
  29. 4 1
      js/component/account/services/technology.jsx
  30. 67 65
      js/component/account/services/technologyAdd.jsx
  31. 12 10
      js/component/account/services/technologyChange.jsx
  32. 0 4
      js/component/account/set/base.jsx
  33. 4 2
      js/component/account/set/company.jsx
  34. 5 5
      js/component/account/set/hrSituation.jsx
  35. 5 4
      js/component/account/set/person.jsx
  36. 2 0
      js/component/login/adminLogin.less
  37. 6 0
      js/component/login/login.less
  38. 76 89
      js/component/manageCenter/achievement/achievementOrder.jsx
  39. 2 2
      js/component/manageCenter/achievement/techAchievement.jsx
  40. 7 0
      js/component/manageCenter/achievement/techAchievement.less
  41. 4 5
      js/component/manageCenter/achievement/techAchievementDesc.jsx
  42. 69 84
      js/component/manageCenter/demand/demandOrder.jsx
  43. 5 3
      js/component/manageCenter/demand/techDemand.jsx
  44. 7 0
      js/component/manageCenter/demand/techDemand.less
  45. 4 4
      js/component/manageCenter/demand/techDemandDesc.jsx
  46. 220 2
      js/component/manageCenter/index/content.jsx
  47. 14 124
      js/component/manageCenter/index/content.less
  48. 5 5
      js/component/manageCenter/servicesManage/contract/contract.jsx
  49. 10 11
      js/component/manageCenter/servicesManage/contract/contractAdd.jsx
  50. 11 12
      js/component/manageCenter/servicesManage/contract/contractDetail.jsx
  51. 8 9
      js/component/manageCenter/servicesManage/copyright/comPatentAdd.jsx
  52. 13 11
      js/component/manageCenter/servicesManage/copyright/comPatentChange.jsx
  53. 93 91
      js/component/manageCenter/servicesManage/copyright/copyright.jsx
  54. 7 8
      js/component/manageCenter/servicesManage/highTech/fosterDesc/achievement.jsx
  55. 2 1
      js/component/manageCenter/servicesManage/highTech/fosterDesc/activity.jsx
  56. 23 18
      js/component/manageCenter/servicesManage/highTech/fosterDesc/activityCostList.jsx
  57. 43 42
      js/component/manageCenter/servicesManage/highTech/fosterDesc/annualReport.jsx
  58. 4 4
      js/component/manageCenter/servicesManage/highTech/fosterDesc/companyDetail.jsx
  59. 8 8
      js/component/manageCenter/servicesManage/highTech/fosterDesc/finance.jsx
  60. 7 8
      js/component/manageCenter/servicesManage/highTech/fosterDesc/honorList.jsx
  61. 10 9
      js/component/manageCenter/servicesManage/highTech/fosterDesc/hrSituation.jsx
  62. 10 14
      js/component/manageCenter/servicesManage/highTech/fosterDesc/intellectualDesc.jsx
  63. 8 8
      js/component/manageCenter/servicesManage/highTech/fosterDesc/orgTechCenter.jsx
  64. 17 17
      js/component/manageCenter/servicesManage/highTech/fosterDesc/ratepay.jsx
  65. 1 0
      js/component/manageCenter/servicesManage/highTech/fosterDesc/standard.jsx
  66. 10 10
      js/component/manageCenter/servicesManage/highTech/fosterDesc/techProduct.jsx
  67. 64 64
      js/component/manageCenter/servicesManage/highTech/highTechApply.jsx
  68. 1 1
      js/component/manageCenter/servicesManage/highTech/highTechFoster.jsx
  69. 7 8
      js/component/manageCenter/servicesManage/patent/clientInputPatent.jsx
  70. 7 8
      js/component/manageCenter/servicesManage/patent/comPatentAdd.jsx
  71. 13 12
      js/component/manageCenter/servicesManage/patent/comprehensive.jsx
  72. 2 3
      js/component/manageCenter/servicesManage/patent/correction.jsx
  73. 80 79
      js/component/manageCenter/servicesManage/technology/applyAdd.jsx
  74. 10 8
      js/component/manageCenter/servicesManage/technology/applyChange.jsx
  75. 32 31
      js/component/manageCenter/servicesManage/technology/websiteAdd.jsx
  76. 53 54
      js/component/manageCenter/servicesManage/technology/websiteChange.jsx
  77. 14 6
      js/component/manageCenter/userManage/customerList.jsx
  78. 3 3
      js/component/manageCenter/userManage/orgList.jsx
  79. 5 5
      js/component/manageCenter/userManage/userDesc.jsx
  80. 7 0
      js/component/manageCenter/userManage/userList.jsx
  81. 5 0
      js/component/portal/portal.less
  82. 3 10
      js/component/portal/search/achievement.jsx
  83. 15 12
      js/component/portal/search/achievementDesc.jsx
  84. 10 13
      js/component/portal/search/demand.jsx
  85. 59 56
      js/component/portal/search/demandDesc.jsx
  86. 1 8
      js/component/portal/search/subscriber.jsx
  87. 7 1
      js/component/sign/account.jsx
  88. 38 25
      js/component/sign/account.less
  89. 7 4
      js/component/sign/groupAccount.jsx
  90. 77 0
      js/component/sign/modal.jsx
  91. 18 2
      js/component/subscriberDetail/content.jsx
  92. 3 0
      js/component/subscriberDetail/detail.less
  93. 24 17
      js/component/tools.js
  94. 2 2
      package.json
  95. 8 1
      webpack.config.js

二進制
image/logo-2.png


二進制
image/logo.png


+ 71 - 71
js/component/DicTechFieldList.js

@@ -1,222 +1,222 @@
 const techFieldArr = [{
-    value: 1,
+    value: "1",
     label: "电子信息",
     children: [{
-        value: 10,
+        value: "10",
         label: "软件",
         children: [{
-            value: 18,
+            value: "18",
             label: "基础软件"
         }, {
-            value: 19,
+            value: "19",
             label: "嵌入式软件"
         }, {
-            value: 20,
+            value: "20",
             label: "计算机辅助设计与辅助工程管理软件"
         }, {
-            value: 21,
+            value: "21",
             label: "中文及多语种处理软件"
         }, {
-            value: 22,
+            value: "22",
             label: "图形和图像处理软件"
         }, {
-            value: 23,
+            value: "23",
             label: "地理信息系统( GIS) 软件"
         }, {
-            value: 24,
+            value: "24",
             label: "电子商务软件"
         }, {
-            value: 25,
+            value: "25",
             label: "电子政务软件"
         }, {
-            value: 26,
+            value: "26",
             label: "企业管理软件"
         }, {
-            value: 27,
+            value: "27",
             label: "物联网应用软件"
         }, {
-            value: 28,
+            value: "28",
             label: "云计算与移动互联网软件"
         }, {
-            value: 29,
+            value: "29",
             label: "Web服务与集成软件"
         }]
     }, {
-        value: 11,
+        value: "11",
         label: "微电子技术",
         children: [{
-            value: 30,
+            value: "30",
             label: "集成电路设计技术"
         }, {
-            value: 31,
+            value: "31",
             label: "集成电路产品设计技术"
         }, {
-            value: 32,
+            value: "32",
             label: "集成电路封装技术"
         }, {
-            value: 33,
+            value: "33",
             label: "集成电路测试技术"
         }, {
-            value: 34,
+            value: "34",
             label: "集成电路芯片制造工艺技术"
         }, {
-            value: 35,
+            value: "35",
             label: "集成光电子器件设计、制造与工艺技术"
         }]
     }, {
-        value: 12,
+        value: "12",
         label: "计算机产品及其网络应用技术",
         children: [{
-            value: 36,
+            value: "36",
             label: "计算机及终端设计与制造技术"
         }, {
-            value: 37,
+            value: "37",
             label: "计算机外围设备设计与制造技术"
         }, {
-            value: 38,
+            value: "38",
             label: "网络设备设计与制造技术"
         }, {
-            value: 39,
+            value: "39",
             label: "网络应用技术"
         }]
     }, {
-        value: 13,
+        value: "13",
         label: "通信技术",
         children: [{
-            value: 40,
+            value: "40",
             label: "通信网络技术"
         }, {
-            value: 41,
+            value: "41",
             label: "光传输系统技术"
         }, {
-            value: 42,
+            value: "42",
             label: "有线宽带接入系统技术"
         }, {
-            value: 43,
+            value: "43",
             label: "移动通信系统技术"
         }, {
-            value: 44,
+            value: "44",
             label: "宽带无线通信系统技术"
         }, {
-            value: 45,
+            value: "45",
             label: "卫星通信系统技术"
         }, {
-            value: 46,
+            value: "46",
             label: "微波通信系统技术"
         }, {
-            value: 47,
+            value: "47",
             label: "物联网设备、部件及组网技术"
         }, {
-            value: 48,
+            value: "48",
             label: "电信网络运营支撑管理技术"
         }, {
-            value: 49,
+            value: "49",
             label: "电信网与互联网增值业务应用技术"
         }]
     }, {
-        value: 14,
+        value: "14",
         label: "广播影视技术",
         children: [{
-            value: 50,
+            value: "50",
             label: "广播电视节目采编播系统技术"
         }, {
-            value: 51,
+            value: "51",
             label: "广播电视业务集成与支撑系统技术"
         }, {
-            value: 52,
+            value: "52",
             label: "有线传输与覆盖系统技术"
         }, {
-            value: 53,
+            value: "53",
             label: "无线传输与覆盖系统技术"
         }, {
-            value: 54,
+            value: "54",
             label: "广播电视监测监管、安全运行与维护系统技术"
         }, {
-            value: 55,
+            value: "55",
             label: "数字电影系统技术"
         }, {
-            value: 56,
+            value: "56",
             label: "数字电视终端技术"
         }, {
-            value: 57,
+            value: "57",
             label: "专业视频应用服务平台技术"
         }, {
-            value: 58,
+            value: "58",
             label: "音响、光盘技术"
         }]
     }, {
-        value: 15,
+        value: "15",
         label: "新型电子元器件",
         children: [{
-            value: 59,
+            value: "59",
             label: "半导体发光技术"
         }, {
-            value: 60,
+            value: "60",
             label: "片式和集成无源元件"
         }, {
-            value: 61,
+            value: "61",
             label: "大功率半导体器件"
         }, {
-            value: 62,
+            value: "62",
             label: "专用特种器件"
         }, {
-            value: 63,
+            value: "63",
             label: "敏感元器件与传感器"
         }, {
-            value: 64,
+            value: "64",
             label: "中高档机电组件"
         }, {
-            value: 65,
+            value: "65",
             label: "平板显示器件"
         }]
     }, {
-        value: 16,
+        value: "16",
         label: "信息安全技术",
         children: [{
-            value: 66,
+            value: "66",
             label: "密码技术"
         }, {
-            value: 67,
+            value: "67",
             label: "认证授权技术"
         }, {
-            value: 68,
+            value: "68",
             label: "系统与软件安全技术"
         }, {
-            value: 69,
+            value: "69",
             label: "网络与通信安全技术"
         }, {
-            value: 70,
+            value: "70",
             label: "安全保密技术"
         }, {
-            value: 71,
+            value: "71",
             label: "安全测评技术"
         }, {
-            value: 72,
+            value: "72",
             label: "安全管理技术"
         }, {
-            value: 73,
+            value: "73",
             label: "应用安全技术"
         }]
     }, {
-        value: 17,
+        value: "17",
         label: "智能交通和轨道交通技术",
         children: [{
-            value: 74,
+            value: "74",
             label: "交通控制与管理技术"
         }, {
-            value: 75,
+            value: "75",
             label: "交通基础信息采集、处理技术"
         }, {
-            value: 76,
+            value: "76",
             label: "交通运输运营管理技术"
         }, {
-            value: 77,
+            value: "77",
             label: "车、船载电子设备技术"
         }, {
-            value: 78,
+            value: "78",
             label: "轨道交通车辆及运行保障技术"
         }, {
-            value: 79,
+            value: "79",
             label: "轨道交通运营管理与服务技术"
         }]
     }]

+ 0 - 16
js/component/account/achievement/techAchievement.jsx

@@ -110,22 +110,6 @@ const AchievementList = React.createClass({
                     key: 'category',
                     render: text => { return getAchievementCategory(text); }
                 }, {
-                    title: '所有人名称',
-                    dataIndex: 'ownerName',
-                    key: 'ownerName',
-                }, {
-                    title: '所有人类型',
-                    dataIndex: 'ownerType',
-                    key: 'ownerType',
-                    render: text => {
-                        switch (text) {
-                            case "0":
-                                return <span>个人</span>;
-                            case "1":
-                                return <span>组织</span>
-                        }
-                    }
-                }, {
                     title: '审核状态',
                     dataIndex: 'auditStatus',
                     key: 'auditStatus',

+ 6 - 6
js/component/account/achievement/techAchievementDesc.jsx

@@ -441,27 +441,27 @@ const AchievementDetailShow = Form.create()(React.createClass({
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="成果所有人名称" >
-                            <span>{theData.ownerName}</span>
+                            <span>{theData.iOwnerName || theData.ownerName}</span>
                         </FormItem>
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="所有人证件号" >
-                            <span>{theData.ownerIdNumber}</span>
+                            <span>{theData.iOwnerIdNumber || theData.ownerIdNumber}</span>
                         </FormItem>
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="所有人联系电话" >
-                            <span>{theData.ownerMobile}</span>
+                            <span>{theData.iOwnerMobile || theData.ownerMobile}</span>
                         </FormItem>
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="所有人电子邮箱" >
-                            <span>{theData.ownerEmail}</span>
+                            <span>{theData.iOwnerEmail || theData.ownerEmail}</span>
                         </FormItem>
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="所有人通信地址" >
-                            <span>{theData.ownerPostalAddress}</span>
+                            <span>{theData.iOwnerPostalAddress || theData.ownerPostalAddress}</span>
                         </FormItem>
                     </div>
                     <div className="clearfix">
@@ -478,7 +478,7 @@ const AchievementDetailShow = Form.create()(React.createClass({
                             })()}
                         </FormItem>
                     </div>
-                    {theData.ownerType == "1" ? <div className="clearfix">
+                    {theData.ownerType == "9" ? <div className="clearfix">
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="所属组织名称" >

+ 3 - 6
js/component/account/demand/techDemand.jsx

@@ -138,10 +138,8 @@ const DemandList = React.createClass({
                     render: text => {
                         switch (text) {
                             case "0":
-                                return <span>进行中</span>;
-                            case "1":
                                 return <span>未解决</span>;
-                            case "2":
+                            case "1":
                                 return <span>已解决</span>;
                         }
                     }
@@ -279,9 +277,8 @@ const DemandList = React.createClass({
                     <Select placeholder="选择需求状态" style={{ width: 120 }}
                         value={this.state.status}
                         onChange={(e) => { this.setState({ status: e }) }}>
-                        <Select.Option value="0" >进行中</Select.Option>
-                        <Select.Option value="1" >未解决</Select.Option>
-                        <Select.Option value="2" >已解决</Select.Option>
+                        <Select.Option value="0" >未解决</Select.Option>
+                        <Select.Option value="1" >已解决</Select.Option>
                     </Select>
                     <Select placeholder="选择审核状态" style={{ width: 160 }}
                         value={this.state.auditStatus}

+ 1 - 1
js/component/account/demand/techDemandDesc.jsx

@@ -835,7 +835,7 @@ const DemandDetailForm = Form.create()(React.createClass({
                             {getFieldDecorator('peopleNumber', {
                                 initialValue: theData.peopleNumber
                             })(
-                                <InputNumber min={0} max={9999} step={1}/>
+                                <InputNumber min={0} max={999999} step={1}/>
                                 )}
                             <span style={{ marginLeft: '20px' }}>人</span>
                         </FormItem>

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

@@ -232,19 +232,18 @@ const AchievementDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="科技成果转化" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="科技成果转化" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <AchievementDescFrom
                             data={this.props.data}
                             visible={this.state.visible}
                             activityNumberList={this.props.activityNumberList}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 2 - 1
js/component/account/services/activity.jsx

@@ -97,6 +97,7 @@ const ActivityForm = Form.create()(React.createClass({
         if (!this.props.visible && nextProps.visible) {
             this.state.mockData = nextProps.data.mockData;
             this.props.form.resetFields();
+            this.state.proofUrl = null;
             this.state.fileList = [];
             if (nextProps.data.id) {
                 this.loadData(nextProps.data.id);
@@ -335,7 +336,7 @@ const ActivityForm = Form.create()(React.createClass({
                             >
                                 <Button><Icon type="upload" /> 上传立项证明材料 </Button>
                             </Upload>
-                            <p>{theData.proofUrl ? <a onClick={newDownloadFile.bind(null, theData.id, 'proof', '/api/admin/downloadProof')}>{theData.proofDownloadFileName}</a> : <span><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />未上传!</span>}</p>
+                            <p>{theData.proofUrl ? <a onClick={newDownloadFile.bind(null, theData.id, 'proof', '/api/user/cognizance/downloadProof')}>{theData.proofDownloadFileName}</a> : <span><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />未上传!</span>}</p>
                         </div>
                         <FormItem style={{ marginTop: '20px' }}>
                             <Button className="set-submit" type="primary" htmlType="submit">保存</Button>

+ 30 - 31
js/component/account/services/activityCostList.jsx

@@ -12,7 +12,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
         return {
             loading: false,
             activityNumberOption: [],
-            activityNumberObj: [],
+            activityNumberObj:{},
             yearOption: []
         };
     },
@@ -23,15 +23,16 @@ const ActivityDescFrom = Form.create()(React.createClass({
         };
         this.state.yearOption = theArr;
     },
-    allCostCount() {
-        this.state.internalAllCost = this.props.form.getFieldValue('internalLaborCost') + this.props.form.getFieldValue('internalDirectCost') +
-            this.props.form.getFieldValue('internalDepreciationCost') + this.props.form.getFieldValue('internalAmortizationCost') +
-            this.props.form.getFieldValue('internalDesignCost') + this.props.form.getFieldValue('internalEquipmentCost') +
-            this.props.form.getFieldValue('internalOtherCost');
-        this.state.allCost = this.props.form.getFieldValue('internalLaborCost') + this.props.form.getFieldValue('internalDirectCost') +
-            this.props.form.getFieldValue('internalDepreciationCost') + this.props.form.getFieldValue('internalAmortizationCost') +
-            this.props.form.getFieldValue('internalDesignCost') + this.props.form.getFieldValue('internalEquipmentCost') +
-            this.props.form.getFieldValue('internalOtherCost') + this.props.form.getFieldValue('externalTotalCost');
+    allCostCount(formData) {
+        let theData = formData || this.props.form;
+        this.state.internalAllCost = theData.getFieldValue('internalLaborCost') + theData.getFieldValue('internalDirectCost') +
+            theData.getFieldValue('internalDepreciationCost') + theData.getFieldValue('internalAmortizationCost') +
+            theData.getFieldValue('internalDesignCost') + theData.getFieldValue('internalEquipmentCost') +
+            theData.getFieldValue('internalOtherCost');
+        this.state.allCost = theData.getFieldValue('internalLaborCost') + theData.getFieldValue('internalDirectCost') +
+            theData.getFieldValue('internalDepreciationCost') + theData.getFieldValue('internalAmortizationCost') +
+            theData.getFieldValue('internalDesignCost') + theData.getFieldValue('internalEquipmentCost') +
+            theData.getFieldValue('internalOtherCost') + theData.getFieldValue('externalTotalCost');
     },
     componentDidMount() {
         this.allCostCount();
@@ -45,24 +46,23 @@ const ActivityDescFrom = Form.create()(React.createClass({
         if (this.props.activityNumberList) {
             this.props.activityNumberList.map(function (item) {
                 _me.state.activityNumberOption.push(
-                    <Select.Option value={item.aid} key={item.uid}>{item.activityNumber}</Select.Option>
+                    <Select.Option key={item.aid}>{item.activityNumber}</Select.Option>
                 );
                 _me.state.activityNumberObj[item.aid] = item.activityNumber;
             });
-        }
+        };
     },
     componentWillReceiveProps(nextProps) {
-        this.allCostCount();
+        this.allCostCount(nextProps.form);
         let _me = this;
-        if (!this.props.visible && nextProps.visible && nextProps.activityNumberList) {
-            _me.state.activityNumberOption = [];
-            nextProps.activityNumberList.map(function (item) {
-                _me.state.activityNumberOption.push(
-                    <Select.Option value={item.aid} key={item.uid}>{item.activityNumber}</Select.Option>
-                );
-                _me.state.activityNumberObj[item.aid] = item.activityNumber;
-            });
+        if (!this.props.visible && nextProps.visible) {
             this.state.fileList = [];
+            this.state.accountUrl = undefined;
+            this.state.internalAllCost = nextProps.data.internalLaborCost + nextProps.data.internalDirectCost +
+                nextProps.data.internalDepreciationCost + nextProps.data.internalAmortizationCost +
+                nextProps.data.internalDesignCost + nextProps.data.internalEquipmentCost +
+                nextProps.data.internalOtherCost;
+            this.state.allCost = this.state.internalAllCost + nextProps.data.externalTotalCost;
         };
     },
     handleSubmit(e) {
@@ -77,7 +77,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                     url: globalConfig.context + "/api/user/cognizance/activityCost",
                     data: {
                         id: this.props.data.id,
-                        aid: values.activityNumber,
+                        aid: this.props.data.aid,
                         activityNumber: this.state.activityNumberObj[values.activityNumber],
                         year: values.year,
 
@@ -124,7 +124,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                 <p className="activityCost-title">项目编号</p>
                 {getFieldDecorator('activityNumber', {
                     rules: [{ required: true, message: '此项为必填项!' }],
-                    initialValue: theData.activityNumber
+                    initialValue: theData.aid
                 })(
                     <Select
                         notFoundContent="无项目可选"
@@ -356,20 +356,19 @@ const ActivityDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="企业研究开发费用结构明细" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="企业研究开发费用结构明细" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <ActivityDescFrom data={this.props.data}
                             visible={this.state.visible}
                             activityNumberList={this.props.activityNumberList}
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 41 - 40
js/component/account/services/annualReport.jsx

@@ -424,18 +424,17 @@ const AnnualReportDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="企业年报详情" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1000px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="企业年报详情" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1000px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <AnnualReportDescFrom
                             data={this.props.data}
                             detailData={this.state.detailData}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },
@@ -492,6 +491,9 @@ const AnnualReportAdd = React.createClass({
                 state: 0
             }
         }).done(function (data) {
+            this.setState({
+                loading: false
+            });
             if (!data.error.length) {
                 message.success('保存成功!');
                 this.setState({
@@ -500,9 +502,6 @@ const AnnualReportAdd = React.createClass({
                 this.props.closeAdd(false, true);
             } else {
                 message.warning(data.error[0].message);
-                this.setState({
-                    loading: false
-                });
             }
         }.bind(this));
     },
@@ -532,37 +531,39 @@ const AnnualReportAdd = React.createClass({
                             </Button>,
                     ]}
                 >
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span>选择申请年份: </span>
-                            <Select placeholder="请选择年份" style={{ width: 200 }}
-                                onSelect={(e, n) => { this.state.year = e }}>
-                                {this.state.yearOption}
-                            </Select>
-                        </div>
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span>纳税总额:  </span>
-                            <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.totalTax = e; }} />
-                            <span> (万元)</span>
-                        </div>
-                        <div className="half-item">
-                            <span>高企所得税减免额:  </span>
-                            <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.incomeTaxRelief = e; }} />
-                            <span> (万元)</span>
+                    <Spin spinning={this.state.loading} className='spin-box'>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span>选择申请年份: </span>
+                                <Select placeholder="请选择年份" style={{ width: 200 }}
+                                    onSelect={(e, n) => { this.state.year = e }}>
+                                    {this.state.yearOption}
+                                </Select>
+                            </div>
                         </div>
-                        <div className="half-item">
-                            <span>出口创汇总额(人民币):  </span>
-                            <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.totalExportVolume = e; }} />
-                            <span> (万元)</span>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span>纳税总额:  </span>
+                                <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.totalTax = e; }} />
+                                <span> (万元)</span>
+                            </div>
+                            <div className="half-item">
+                                <span>高企所得税减免额:  </span>
+                                <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.incomeTaxRelief = e; }} />
+                                <span> (万元)</span>
+                            </div>
+                            <div className="half-item">
+                                <span>出口创汇总额(人民币):  </span>
+                                <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.totalExportVolume = e; }} />
+                                <span> (万元)</span>
+                            </div>
+                            <div className="half-item">
+                                <span>基础研究投入费用:  </span>
+                                <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.basicResearchCost = e; }} />
+                                <span> (万元)</span>
+                            </div>
                         </div>
-                        <div className="half-item">
-                            <span>基础研究投入费用:  </span>
-                            <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.basicResearchCost = e; }} />
-                            <span> (万元)</span>
-                        </div>
-                    </div>
+                    </Spin>
                 </Modal>
             </div>
         );

+ 29 - 28
js/component/account/services/cognizance.jsx

@@ -380,12 +380,11 @@ const CognizanceDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="高企管理" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1000px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="高企管理" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1000px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <CognizanceDescFrom
                             visible={this.state.visible}
                             contactsOption={this.props.contactsOption}
@@ -393,8 +392,8 @@ const CognizanceDesc = React.createClass({
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }
@@ -496,28 +495,30 @@ const CognizanceAdd = React.createClass({
                             </Button>,
                     ]}
                 >
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span>选择申请年份: </span>
-                            <Select placeholder="请选择年份" style={{ width: 200 }}
-                                onSelect={(e, n) => { this.state.year = e }}>
-                                {this.state.yearOption}
-                            </Select>
+                    <Spin spinning={this.state.loading} className='spin-box'>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span>选择申请年份: </span>
+                                <Select placeholder="请选择年份" style={{ width: 200 }}
+                                    onSelect={(e, n) => { this.state.year = e }}>
+                                    {this.state.yearOption}
+                                </Select>
+                            </div>
+                            <div className="half-item">
+                                <span>选择联系人: </span>
+                                <Select placeholder="请选择联系人" style={{ width: 200 }}
+                                    onSelect={(e, n) => { this.state.contacts = e }}>
+                                    {this.props.contactsOption}
+                                </Select>
+                            </div>
                         </div>
-                        <div className="half-item">
-                            <span>选择联系人: </span>
-                            <Select placeholder="请选择联系人" style={{ width: 200 }}
-                                onSelect={(e, n) => { this.state.contacts = e }}>
-                                {this.props.contactsOption}
-                            </Select>
+                        <div>
+                            <p>备注: </p>
+                            <p>
+                                <Input type="textarea" rows={6} onChange={(e) => { this.state.comment = e.target.value; }} />
+                            </p>
                         </div>
-                    </div>
-                    <div>
-                        <p>备注: </p>
-                        <p>
-                            <Input type="textarea" rows={6} onChange={(e) => { this.state.comment = e.target.value; }} />
-                        </p>
-                    </div>
+                    </Spin>
                 </Modal>
             </div>
         );

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

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Icon, Form, Button, Input, Spin, message, InputNumber, DatePicker, Select, Checkbox, Cascader, Table, Radio } from 'antd';
+import { Icon, Form, Button, Input, message, InputNumber, DatePicker, Select, Checkbox, Cascader, Table, Radio } from 'antd';
 import './techProduct.less';
 import { getProvince, areaSelect } from '../../NewDicProvinceList';
 import { industryList, scaleList, companyType } from '../../dataDic';
@@ -133,7 +133,7 @@ const CompanyDetail = Form.create()(React.createClass({
                     uid: item.uid,
                     type: item.type,
                     name: item.name,
-                    orgCode: item.idNumber,
+                    orgCode: item.orgCode,
                     investment: item.investment
                 });
             });
@@ -932,7 +932,7 @@ const CompanyDetail = Form.create()(React.createClass({
                             {getFieldDecorator('firmTotal', {
                                 initialValue: theData.firmTotal || 0
                             })(
-                                <InputNumber min={0} max={9999} step={1} />
+                                <InputNumber min={0} max={999999} step={1} />
                                 )}
                         </FormItem>
                         <FormItem className="half-item"
@@ -942,7 +942,7 @@ const CompanyDetail = Form.create()(React.createClass({
                             {getFieldDecorator('techTotal', {
                                 initialValue: theData.techTotal || 0
                             })(
-                                <InputNumber min={0} max={9999} step={1} />
+                                <InputNumber min={0} max={999999} step={1} />
                                 )}
                             <span>其中科技人员占比
                         {(() => {

+ 8 - 9
js/component/account/services/contract/contractAdd.jsx

@@ -277,13 +277,12 @@ const ContractAdd = React.createClass({
         return (
             <div className="patent-addNew">
                 <Button className="patent-addNew" type="primary" onClick={this.props.onClick}>申请合同<Icon type="plus" /></Button>
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="合同详情"
-                        visible={this.state.visible}
-                        onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="合同详情"
+                    visible={this.state.visible}
+                    onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <ContractAddFrom
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
@@ -292,8 +291,8 @@ const ContractAdd = React.createClass({
                             okClick={() => { this.props.closeAdd(false, true) }}
                             typeOption={this.props.typeOption}
                             contactsOption={this.props.contactsOption} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 8 - 8
js/component/account/services/contract/contractDetail.jsx

@@ -374,6 +374,7 @@ const ContractDetailForm = Form.create()(React.createClass({
         if (!this.props.visible && nextProps.visible) {
             this.loadData(nextProps.data.id);
             this.loadColumnsData(nextProps.data.id);
+            this.props.form.resetFields();
         };
     },
     tableRowClick(record, index) {
@@ -558,12 +559,11 @@ const ContractDetail = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="合同详情" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1000px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="合同详情" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1000px'
+                    footer=''>
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <ContractDetailForm
                             visible={this.state.visible}
                             authorOption={this.props.authorOption}
@@ -572,8 +572,8 @@ const ContractDetail = React.createClass({
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }

+ 8 - 9
js/component/account/services/copyright/comPatentAdd.jsx

@@ -196,20 +196,19 @@ const PatentAdd = React.createClass({
         return (
             <div className="patent-addNew">
                 <Button className="patent-addNew" type="primary" onClick={this.showModal}>申请新软著<Icon type="plus" /></Button>
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="申请新软著"
-                        visible={this.state.visible}
-                        onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="申请新软著"
+                    visible={this.state.visible}
+                    onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <PatentAddFrom
                             spinState={this.spinChange}
                             visible={this.state.visible}
                             closeModal={this.handleCancel}
                             okClick={() => { this.props.closeAdd(false, true) }} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 13 - 11
js/component/account/services/copyright/comPatentChange.jsx

@@ -5,7 +5,7 @@ import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import moment from 'moment';
 import { copyrightStateList } from '../../../dataDic.js';
-import { getCopyrightState, getTime, copyrightDownloadFile, beforeUploadFile, getInUrgentTime } from '../../../tools.js';
+import { getCopyrightState, getTime, copyrightDownloadFile, beforeUploadFile, getVacations, getInUrgentTime } from '../../../tools.js';
 
 const CopyrightDescForm = Form.create()(React.createClass({
     getInitialState() {
@@ -15,6 +15,7 @@ const CopyrightDescForm = Form.create()(React.createClass({
             stateOption: [],
             stateTable: [],
             contactsOption: [],
+            vacations: [],
             stateColumns: [{
                 title: '申请状态',
                 dataIndex: 'status',
@@ -46,6 +47,7 @@ const CopyrightDescForm = Form.create()(React.createClass({
                 <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
             )
         });
+        getVacations((data) => { this.setState({ vacations: data }); });
         this.loadData();
     },
     loadData(id) {
@@ -156,6 +158,7 @@ const CopyrightDescForm = Form.create()(React.createClass({
             this.loadData(nextProps.data.id);
             this.state.fileList_copyright_apply = [];
             this.state.fileList_copyright_auth = [];
+            this.props.form.resetFields();
         };
     },
     handleSubmit(e) {
@@ -309,9 +312,9 @@ const CopyrightDescForm = Form.create()(React.createClass({
                             {(() => {
                                 if (theData.expectTime && theData.expectTime[0]) {
                                     if (theData.expectTime[1]) {
-                                        return getTime(getInUrgentTime(moment(theData.expectTime[0]), theData.expectTime[1]))
+                                        return getTime(getInUrgentTime(moment(theData.expectTime[0]), theData.expectTime[1], this.state.vacations))
                                     } else {
-                                        return getTime(getInUrgentTime(moment(theData.expectTime[0]), 45))
+                                        return getTime(getInUrgentTime(moment(theData.expectTime[0]), 45, this.state.vacations))
                                     };
                                 };
                             })()}
@@ -424,12 +427,11 @@ const CopyrightDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="软著详情" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="软著详情" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <CopyrightDescForm
                             visible={this.state.visible}
                             authorOption={this.props.authorOption}
@@ -437,8 +439,8 @@ const CopyrightDesc = React.createClass({
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }

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

@@ -1,7 +1,7 @@
 import React from 'react';
 import { Icon, Button, Input, Select, Spin, Table, DatePicker, message, Cascader, Switch } from 'antd';
 import { copyrightStateList } from '../../../dataDic.js';
-import { getTime, companySearch, getCopyrightState, getInUrgentTime } from '../../../tools.js';
+import { getTime, companySearch, getCopyrightState, getInUrgentTime, getVacations } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import PatentAdd from './comPatentAdd.jsx';
@@ -102,6 +102,7 @@ const copyright = React.createClass({
                     return '共' + total + '条数据';
                 }
             },
+            vacations: [],
             columns: [
                 {
                     title: '编号',
@@ -161,9 +162,9 @@ const copyright = React.createClass({
                     render: (text) => {
                         if (text[0]) {
                             if (text[1]) {
-                                return getTime(getInUrgentTime(moment(text[0]), text[1],function(data){ debugger;}))
+                                return getTime(getInUrgentTime(moment(text[0]), text[1], this.state.vacations))
                             } else {
-                                return getTime(getInUrgentTime(moment(text[0]), 45,function(data){ debugger;}))
+                                return getTime(getInUrgentTime(moment(text[0]), 45, this.state.vacations))
                             }
                         };
                         return;
@@ -184,6 +185,7 @@ const copyright = React.createClass({
                 <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
             )
         });
+        getVacations((data) => { this.setState({ vacations: data }); });
         this.loadData();
     },
     tableRowClick(record, index) {

+ 14 - 25
js/component/account/services/evaluate/info.jsx

@@ -14,9 +14,6 @@ import 'echarts/lib/component/tooltip';
 import jspdf from 'jspdf';
 import html2canvas from 'html2canvas';
 
-window.html2canvas = html2canvas;
-window.jspdf = jspdf;
-
 import './info.less';
 
 const getDateValue = (val) => {
@@ -294,6 +291,7 @@ const evaluateInfo = React.createClass({
     if (this.state.exporting) {
       return;
     }
+    window.scrollTo(0, 0)
     this.setState({
       exporting: true
     });
@@ -301,23 +299,15 @@ const evaluateInfo = React.createClass({
     html2canvas(document.getElementsByClassName('report-pages'), {
       background: '#fff',
       onrendered: function (canvas) {
-
-        var contentWidth = canvas.width;
-        var contentHeight = canvas.height;
-
-        var pageHeight = contentWidth / width * height;
-
-        var leftHeight = contentHeight;
-
-        var position = 0;
-
-        var imgWidth = width;
-        var imgHeight = width / contentWidth * contentHeight;
-
-        var pageData = canvas.toDataURL('image/jpeg', 1.0);
-
-        var pdf = new jspdf('', 'pt', [width, height]);
-
+        let contentWidth = canvas.width,
+          contentHeight = canvas.height,
+          pageHeight = contentWidth / width * height,
+          leftHeight = contentHeight,
+          position = 0,
+          imgWidth = width,
+          imgHeight = width / contentWidth * contentHeight,
+          pageData = canvas.toDataURL('image/jpeg', 1.0),
+          pdf = new jspdf('', 'pt', [width, height]);
         while (leftHeight > 0) {
           pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
           leftHeight -= pageHeight;
@@ -326,7 +316,6 @@ const evaluateInfo = React.createClass({
             pdf.addPage();
           }
         }
-
         pdf.save('EvaluationReport.pdf');
         this.setState({
           exporting: false
@@ -362,12 +351,12 @@ const evaluateInfo = React.createClass({
           <Row><Col span="8">报告使用者:</Col><Col span="16">{data.customer || ''}</Col></Row>
           <Row><Col span="8">评估对象名称:</Col><Col span="16">{data.name}</Col></Row>
           <Row><Col span="8">评估目的:</Col><Col span="16">为交易或策略管理提供价值参考</Col></Row>
-          <Row><Col span="8">价值标准:</Col><Col span="16">价值标准</Col></Row>
+          <Row><Col span="8">价值标准:</Col><Col span="16">投资价值</Col></Row>
           <Row><Col span="8">评估方法:</Col><Col span="16">收益法</Col></Row>
           <Row><Col span="8">评估基准日:</Col><Col span="16">{benchDate[0] + '年' + benchDate[1] + '月' + benchDate[2] + '日'}</Col></Row>
           <Row><Col span="8">评估报告日:</Col><Col span="16">{nowStr}</Col></Row>
           <Row><Col span="8">报告类型:</Col><Col span="16">简式评估报告</Col></Row>
-          <Row><Col span="8">评估值:</Col><Col span="16">{money(data.value || 0) + ' 元'}</Col></Row>
+          <Row><Col span="8">评估值:</Col><Col span="16">{money((data.value / 100 | 0) / 100, 2)}万元</Col></Row>
         </div>
         <div className="report-announce">
           本报告出自<a href="http://www.jishutao.com">http://www.jishutao.com/</a>,相关限制详见<a href="http://www.jishutao.com">知识产权评估系统声明书</a>
@@ -430,9 +419,9 @@ const evaluateInfo = React.createClass({
       </div>
       <div className="report-page">
         <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;三、分成率</p>
-        <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;利用分成率测算技术分成额,即以技术产品产生的收入为基础,按一定比例分成确定专有技术的收益。</p>
+        <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;利用分成率测算技术分成额,即以技术产品产生的收入为基础,按一定比例分成确定技术的收益。</p>
         <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、确定待估技术分成率的取值范围</p>
-        <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;根据联合国贸易发展组织对各国技术贸易合同的提成率作的调查统计,认为专有技术提成率一般在产品销价的0.5%-10%之间,该专有技术属{data.industry}行业,分成率的范围为{data.minRate}%-{data.maxRate}%。</p>
+        <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;根据联合国贸易发展组织对各国技术贸易合同的提成率作的调查统计,认为技术提成率一般在产品销价的0.5%-10%之间,该技术属{data.industry}行业,分成率的范围为{data.minRate}%-{data.maxRate}%。</p>
         <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B、确定待估技术分成率的调整系数</p>
         <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;根据本次评估对象特点,评估人员首先对分成率及它的各种影响因素进行了系统分析,认为待估技术价值主要受到法律因素、技术因素、经济因素等的影响,透过强度评估量化表量化转换而得,量化指标由弱至强分布于 0~100 的区间。</p>
         <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、法律因素</p>

+ 22 - 0
js/component/account/services/evaluate/info.less

@@ -1,3 +1,9 @@
+.rotate(@degrees) {
+  -webkit-transform: rotate(@degrees);
+      -ms-transform: rotate(@degrees);
+       -o-transform: rotate(@degrees);
+          transform: rotate(@degrees);
+}
 .report-container {
   width: 595px;
   margin: auto;
@@ -9,6 +15,9 @@
     top: 10%;
     right: 20%;
     z-index: 2;
+    &.ant-btn.ant-btn-loading {
+      position: fixed;
+    }
   }
 }
 
@@ -35,6 +44,19 @@
   .ant-table-wrapper {
     margin-bottom: 12px;
   }
+  &:before {
+    content: '';
+    position: absolute;
+    top: 40%;
+    left: 34%;
+    width: 200px;
+    height: 100px;
+    opacity: 0.2;
+    .rotate(330deg);
+    background-repeat: no-repeat;
+    background-size: contain;
+    background-image: url(../../../../../image/logo-2.png);
+  }
 }
 
 .report-info {

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

@@ -113,6 +113,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
             this.state.grossProfit = undefined;
             this.state.operatingProfit = undefined;
             this.state.fileList = [];
+            this.state.financeUrl = undefined;
         };
     },
     checkResearchCost(rule, value, callback) {
@@ -152,7 +153,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.mainBusinessIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -163,7 +164,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.managementCost
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.managementCost && this.state.managementCost != this.props.form.getFieldValue('managementCost') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -178,7 +179,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                                 }],
                             initialValue: theData.researchCost
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.researchCost && this.state.researchCost != this.props.form.getFieldValue('researchCost') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -190,7 +191,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.operatingProfit
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.operatingProfit && this.state.operatingProfit != this.props.form.getFieldValue('operatingProfit') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -202,7 +203,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.variousTax
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -213,7 +214,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.currentAsset
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -224,7 +225,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.netFixedAsset
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -235,7 +236,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.totalAsset
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -246,7 +247,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.netAsset
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -257,7 +258,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.grossProfit
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.grossProfit && this.state.grossProfit != this.props.form.getFieldValue('grossProfit') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -269,7 +270,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.netProfit
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -280,7 +281,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.salesRevenue
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                 </div>
@@ -357,18 +358,17 @@ const FinanceDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="财务报表信息" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="财务报表信息" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <FinanceDescFrom
                             visible={this.state.visible}
                             data={this.props.data}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 7 - 7
js/component/account/services/honorList.jsx

@@ -185,19 +185,19 @@ const HonorListDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="企业荣誉及其他证明材料" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer='' >
+                <Modal maskClosable={false} title="企业荣誉及其他证明材料" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <HonorListDescFrom
                             data={this.props.data}
                             spinState={this.spinChange}
                             visible={this.state.visible}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

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

@@ -9,17 +9,15 @@ import moment from 'moment';
 
 const IntellectualDescFrom = Form.create()(React.createClass({
     loadData(id, type) {
-        this.setState({
-            loading: true
-        });
+        this.props.spinState(true);
         $.ajax({
             method: "get",
             dataType: "json",
             crossDomain: false,
             url: globalConfig.context + "/api/user/cognizance/intellectualDetail",
             data: {
-                id: id != undefined ? id : this.props.data.id,
-                type: type != undefined ? type : this.props.data.type
+                id: id ? id : this.props.data.id,
+                type: type != undefined && type != null ? type : this.props.data.type
             }
         }).done((data) => {
             if (!data.data) {
@@ -29,9 +27,7 @@ const IntellectualDescFrom = Form.create()(React.createClass({
                 this.state.data = {};
             } else { this.state.data = data.data };
         }).always(function () {
-            this.setState({
-                loading: false
-            });
+            this.props.spinState(false);
         }.bind(this));
     },
     getInitialState() {
@@ -76,7 +72,7 @@ const IntellectualDescFrom = Form.create()(React.createClass({
                         obtainWay: values.obtainWay,
                         sortNumber: values.sortNumber,
                         authorizationNumber: values.authorizationNumber,
-                        authorizationDateFormattedDate: values.authorizationDate._i || this.state.authorizationDateFormattedDate,
+                        authorizationDateFormattedDate: values.authorizationDate ? values.authorizationDate.format('YYYY-MM-DD') : null,
                         propertyRightUrl: this.state.propertyRightUrl
                     }
                 }).done(function (data) {
@@ -107,6 +103,7 @@ const IntellectualDescFrom = Form.create()(React.createClass({
             };
             this.state.data = {};
             this.state.fileList = [];
+            this.state.propertyRightUrl = undefined;
         };
     },
     render() {
@@ -198,7 +195,7 @@ const IntellectualDescFrom = Form.create()(React.createClass({
                 >
                     {getFieldDecorator('authorizationDate', {
                         rules: [{ type: 'object', required: true, message: '请选择,授权日期不能为空!' }],
-                        initialValue: !theData.authorizationDateFormattedDate ? null : moment(theData.authorizationDateFormattedDate, 'YYYY/MM/DD')
+                        initialValue: theData.authorizationDateFormattedDate ? moment(theData.authorizationDateFormattedDate, 'YYYY/MM/DD') : null
                     })(
                         <DatePicker style={{ width: 200 }}
                             onChange={(data, dataString) => { this.state.authorizationDateFormattedDate = dataString }} />
@@ -232,7 +229,7 @@ const IntellectualDescFrom = Form.create()(React.createClass({
                         <Button><Icon type="upload" /> 上传知识产权证书 </Button>
                     </Upload>
                     <p style={{ margin: '10px 0' }}>{theData.propertyRightUrl ? <a onClick={newDownloadFile.bind(null, theData.id, 'property_right', '/api/user/cognizance/downloadPropertyRight', 'downloadPropertyRight')}>{theData.propertyRightDownloadFileName}</a> : <span><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />未上传知识产权证书!</span>}</p>
-                    {theData.type != 0 ? <p style={{ margin: '10px 0' }}>
+                    {(theData.type && theData.type != 0) ? <p style={{ margin: '10px 0' }}>
                         {theData.manuscript ? <a onClick={newDownloadFile.bind(null, this.props.data.id, 'manuscript', '/api/user/cognizance/downloadManuscript', this.props.data.type)}>稿件下载</a> : <span><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />未上传稿件!</span>}
                     </p> : <span></span>}
                 </div>
@@ -281,20 +278,19 @@ const intellectualDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="知识产权详情" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='600px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="知识产权详情" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='600px'
+                    footer=''>
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <IntellectualDescFrom
                             visible={this.state.visible}
                             data={this.props.data}
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 11 - 9
js/component/account/services/orgTechCenter.jsx

@@ -9,7 +9,8 @@ import $ from 'jquery/src/ajax';
 const CenterListDescFrom = Form.create()(React.createClass({
     getInitialState() {
         return {
-            loading: false
+            loading: false,
+            fileList_protocol: []
         };
     },
     handleSubmit(e) {
@@ -48,7 +49,8 @@ const CenterListDescFrom = Form.create()(React.createClass({
     componentWillReceiveProps(nextProps) {
         if (!this.props.visible && nextProps.visible) {
             this.props.form.resetFields();
-            this.state.fileList = [];
+            this.state.fileList_protocol = [];
+            this.state.protocolUrl = undefined;
         };
     },
     render() {
@@ -182,11 +184,11 @@ const CenterListDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="产学研情况详情" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='840px'
-                        footer='' >
+                <Modal maskClosable={false} title="产学研情况详情" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='840px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <CenterListDescFrom
                             visible={this.state.visible}
                             data={this.props.data}
@@ -194,8 +196,8 @@ const CenterListDesc = React.createClass({
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }

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

@@ -222,15 +222,14 @@ const PatentAdd = React.createClass({
         return (
             <div className="patent-addNew">
                 <Button disabled={this.props.ButtonDisabled} className="patent-addNew" type="primary" onClick={this.showModal}>申请新专利<Icon type="plus" /></Button>
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="新专利申请" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='720px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="新专利申请" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='720px'
+                    footer=''>
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <PatentAddFrom spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 17 - 17
js/component/account/services/ratepay.jsx

@@ -109,6 +109,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
             this.state.researchCost = undefined;
             this.state.grossProfit = undefined;
             this.state.operatingProfit = undefined;
+            this.state.taxReturnUrl = undefined;
         };
     },
     render() {
@@ -140,7 +141,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.operatingIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -151,7 +152,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.managementCost
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.managementCost && this.state.managementCost != this.props.form.getFieldValue('managementCost') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -163,7 +164,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.operatingProfit
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.operatingProfit && this.state.operatingProfit != this.props.form.getFieldValue('operatingProfit') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -175,7 +176,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.nonOperatingIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -186,7 +187,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.nonTaxableIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -197,7 +198,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.taxExemptIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -208,7 +209,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.subsidyIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -219,7 +220,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.grossProfit
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.grossProfit && this.state.grossProfit != this.props.form.getFieldValue('grossProfit') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -231,7 +232,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.researchCost
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.researchCost && this.state.researchCost != this.props.form.getFieldValue('researchCost') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -309,18 +310,17 @@ const RatepayDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="所得税纳税申报信息" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="所得税纳税申报信息" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <RatepayDescFrom
                             visible={this.state.visible}
                             data={this.props.data}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

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

@@ -84,6 +84,7 @@ const StandardDesc = React.createClass({
                 this.state.enclosureUrl = nextProps.data.enclosureUrl;
             };
             this.state.fileList = [];
+            this.state.enclosureUrl = undefined;
         };
         this.state.visible = nextProps.showDesc;
     },

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

@@ -24,12 +24,13 @@ const TechProductDescFrom = Form.create()(React.createClass({
                 <Select.Option value={item.value} key={10000 + item.value}>{item.key}</Select.Option>
             )
         });
-        this.state.targetKeys = this.props.data.intellectualPropertyNumber;
+        this.state.targetKeys = this.props.data.intellectualPropertyNumber || [];
     },
     componentWillReceiveProps(nextProps) {
         if (!this.props.visible && nextProps.visible && nextProps.data) {
             this.state.targetKeys = nextProps.data.intellectualPropertyNumber || [];
             this.props.form.resetFields();
+            this.state.accountUrl = [];
             this.state.fileList = [];
         };
     },
@@ -139,7 +140,7 @@ const TechProductDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.lastYearRevenue ? Number(theData.lastYearRevenue) : 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                 </div>
@@ -180,8 +181,8 @@ const TechProductDescFrom = Form.create()(React.createClass({
                 <Transfer
                     dataSource={this.props.mockData}
                     listStyle={{
-                        width: 200,
-                        height: 200,
+                        width: 300,
+                        height: 300,
                     }}
                     titles={['未选择', '已选择']}
                     targetKeys={this.state.targetKeys}
@@ -301,12 +302,11 @@ const TechProductDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="上年度高新技术产品(服务)情况表" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1000px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="上年度高新技术产品(服务)情况表" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1000px'
+                    footer=''   >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <TechProductDescFrom
                             data={this.props.data}
                             mockData={this.props.mockData}
@@ -314,8 +314,8 @@ const TechProductDesc = React.createClass({
                             closeModal={this.handleCancel}
                             visible={this.state.visible}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 4 - 1
js/component/account/services/technology.jsx

@@ -145,7 +145,8 @@ const Technology = React.createClass({
                     };
                 };
                 this.setState({
-                    departmentOption: theOption
+                    departmentOption: theOption,
+                    departmentObj: data.data
                 });
             }.bind(this),
         });
@@ -289,12 +290,14 @@ const Technology = React.createClass({
                     data={this.state.RowData}
                     contactsOption={this.state.contactsOption}
                     departmentOption={this.state.departmentOption}
+                    departmentObj={this.state.departmentObj}
                     showDesc={this.state.showDesc}
                     closeDesc={this.closeDesc} />
                 <ApplyAdd
                     authorOption={this.state.authorOption}
                     contactsOption={this.state.contactsOption}
                     departmentOption={this.state.departmentOption}
+                    departmentObj={this.state.departmentObj}                    
                     showAdd={this.state.showAdd}
                     closeAdd={this.closeAdd} />
             </div >

+ 67 - 65
js/component/account/services/technologyAdd.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Button, Input, Select, message, Modal, Radio } from 'antd';
+import { Button, Input, Select, message, Modal, Radio, Spin } from 'antd';
 import { companySearch } from '../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -99,80 +99,82 @@ const ApplyAdd = React.createClass({
                             </Button>,
                     ]}
                 >
-                    <div className="clearfix" style={{ marginBottom: '10px' }}>
-                        <div className="half-item">
-                            <span className="item-title">选择联系人:  </span>
-                            <Select placeholder="请选择联系人" style={{ width: 200 }}
-                                onSelect={(e, n) => { this.state.contacts = e }}>
-                                {this.props.contactsOption}
-                            </Select>
-                        </div>
+                    <Spin spinning={this.state.loading} className='spin-box'>
+                        <div className="clearfix" style={{ marginBottom: '10px' }}>
+                            <div className="half-item">
+                                <span className="item-title">选择联系人:  </span>
+                                <Select placeholder="请选择联系人" style={{ width: 200 }}
+                                    onSelect={(e, n) => { this.state.contacts = e }}>
+                                    {this.props.contactsOption}
+                                </Select>
+                            </div>
 
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">申报科技部门:  </span>
-                            <Select placeholder="请选择申报部门" style={{ width: 300 }}
-                                notFoundContent="未获取到申报部门列表"
-                                showSearch
-                                filterOption={companySearch}
-                                onSelect={(e, n) => { this.state.department = e }}>
-                                {this.props.departmentOption}
-                            </Select>
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div>
-                            <span className="item-title">派单信息:  </span>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">申报科技部门:  </span>
+                                <Select placeholder="请选择申报部门" style={{ width: 300 }}
+                                    notFoundContent="未获取到申报部门列表"
+                                    showSearch
+                                    filterOption={companySearch}
+                                    onSelect={(e, n) => { this.state.department = e }}>
+                                    {this.props.departmentOption}
+                                </Select>
+                            </div>
                         </div>
-                        <Input type="textarea" rows={6} onChange={(e) => { this.state.dispatchInfo = e.target.value; }} />
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">项目名称:  </span>
-                            <Input style={{ width: 200 }} onChange={(e) => { this.state.projectName = e.target.value; }} />
+                        <div className="clearfix">
+                            <div>
+                                <span className="item-title">派单信息:  </span>
+                            </div>
+                            <Input type="textarea" rows={6} onChange={(e) => { this.state.dispatchInfo = e.target.value; }} />
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">项目类型:  </span>
-                            <Input style={{ width: 200 }} onChange={(e) => { this.state.projectCatagory = e.target.value; }} />
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">项目名称:  </span>
+                                <Input style={{ width: 200 }} onChange={(e) => { this.state.projectName = e.target.value; }} />
+                            </div>
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">技术领域:  </span>
-                            <Input style={{ width: 200 }} onChange={(e) => { this.state.techField = e.target.value; }} />
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">项目类型:  </span>
+                                <Input style={{ width: 200 }} onChange={(e) => { this.state.projectCatagory = e.target.value; }} />
+                            </div>
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div>
-                            <span className="item-title">项目介绍:  </span>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">技术领域:  </span>
+                                <Input style={{ width: 200 }} onChange={(e) => { this.state.techField = e.target.value; }} />
+                            </div>
                         </div>
-                        <Input type="textarea" rows={6} onChange={(e) => { this.state.projectDes = e.target.value; }} />
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">立项/后补助: </span>
-                            <Radio.Group onChange={this.subsidyCheck}>
-                                <Radio value={1}>立项</Radio>
-                                <Radio value={2}>后补助</Radio>
-                            </Radio.Group>
+                        <div className="clearfix">
+                            <div>
+                                <span className="item-title">项目介绍:  </span>
+                            </div>
+                            <Input type="textarea" rows={6} onChange={(e) => { this.state.projectDes = e.target.value; }} />
                         </div>
-                        <div className="half-item">
-                            <span className="item-title">金额: </span>
-                            <Input style={{ width: 200 }} onChange={(e) => { this.state.projectApproval = e.target.value; }} />
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">立项/后补助: </span>
+                                <Radio.Group onChange={this.subsidyCheck}>
+                                    <Radio value={1}>立项</Radio>
+                                    <Radio value={2}>后补助</Radio>
+                                </Radio.Group>
+                            </div>
+                            <div className="half-item">
+                                <span className="item-title">金额: </span>
+                                <Input style={{ width: 200 }} onChange={(e) => { this.state.projectApproval = e.target.value; }} />
+                            </div>
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">选择负责人:  </span>
-                            <Select placeholder="请选择负责人" style={{ width: 200 }}
-                                onSelect={(e, n) => { this.state.consultant = e }}>
-                                {this.props.authorOption}
-                            </Select>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">选择负责人:  </span>
+                                <Select placeholder="请选择负责人" style={{ width: 200 }}
+                                    onSelect={(e, n) => { this.state.consultant = e }}>
+                                    {this.props.authorOption}
+                                </Select>
+                            </div>
                         </div>
-                    </div>
+                    </Spin>
                 </Modal>
             </div>
         );

+ 12 - 10
js/component/account/services/technologyChange.jsx

@@ -153,6 +153,9 @@ const ApplyChangeFrom = Form.create()(React.createClass({
             this.loadData(nextProps.data.pid);
             this.getStateData(nextProps.data.pid);
             this.state.fileList = [];
+            this.state.approvalUrl = undefined;
+            this.state.subsidy = undefined;
+            this.props.form.resetFields();
         };
     },
     subsidyCheck(e) {
@@ -199,7 +202,7 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                                 label="联系人:"
                             >
                                 {getFieldDecorator('contacts', {
-                                    initialValue: String(theData.contacts)
+                                    initialValue: theData.contacts
                                 })(
                                     <Select>{this.props.contactsOption}</Select>
                                     )}
@@ -212,7 +215,7 @@ const ApplyChangeFrom = Form.create()(React.createClass({
                             label="科技部门"
                         >
                             {getFieldDecorator('department', {
-                                initialValue: this.state.department
+                                initialValue: theData.department
                             })(
                                 <Select placeholder="请选择申报部门"
                                     style={{ width: 300 }}
@@ -380,12 +383,11 @@ const ApplyChange = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="编辑科技项目" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1000px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="编辑科技项目" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1000px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <ApplyChangeFrom
                             visible={this.state.visible}
                             data={this.props.data}
@@ -393,8 +395,8 @@ const ApplyChange = React.createClass({
                             departmentOption={this.props.departmentOption}
                             spinState={this.spinChange}
                             closeModal={this.handleCancel} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }

+ 0 - 4
js/component/account/set/base.jsx

@@ -198,7 +198,6 @@ const BaseFrom = Form.create()(React.createClass({
                     label="出生日期"
                 >
                     {getFieldDecorator('birth', {
-                        rules: [{ type: 'object', message: '请选择日期!' }],
                         initialValue: !this.state.birth ? null : moment(this.state.birth, 'YYYY/MM')
                     })(
                         <MonthPicker />
@@ -209,9 +208,6 @@ const BaseFrom = Form.create()(React.createClass({
                     label="身份证号"
                 >
                     {getFieldDecorator('idcardnum', {
-                        rules: [{
-                            validator: this.checkIdcardnum,
-                        }],
                         initialValue: this.state.idnumber || null
                     })(
                         this.state.auditStatus == 5 ? <span>{this.state.idnumber}</span> : <Input />

+ 4 - 2
js/component/account/set/company.jsx

@@ -313,9 +313,11 @@ const PersonFrom = Form.create()(React.createClass({
                     {...formItemLayout}
                     label="所在地"
                 >
-                    {getFieldDecorator('province')(
+                    {getFieldDecorator('province', {
+                        initialValue: this.state.province
+                    })(
                         <Cascader options={areaSelect()} placeholder="请选择所在地" />
-                    )}
+                        )}
                 </FormItem>
 
                 <FormItem

+ 5 - 5
js/component/account/set/hrSituation.jsx

@@ -86,12 +86,11 @@ const HrSituationDescFrom = Form.create()(React.createClass({
                     if (!data.error.length) {
                         message.success('保存成功!');
                         this.props.clickOk();
-                        this.props.spinState(false);
                         this.props.form.resetFields();
                     } else {
                         message.warning(data.error[0].message);
-                        this.props.spinState(false);
-                    }
+                    };
+                    this.props.spinState(false);
                 }.bind(this));
             }
         });
@@ -111,6 +110,8 @@ const HrSituationDescFrom = Form.create()(React.createClass({
             this.props.form.resetFields();
             this.state.fileList_roster = [];
             this.state.fileList_social_security = [];
+            this.state.rosterUrl = null;
+            this.state.socialSecurityUrl = null;
         };
     },
     render() {
@@ -560,8 +561,7 @@ const HrSituationDesc = React.createClass({
                     <Modal maskClosable={false} title="人力资源状况" visible={this.state.visible}
                         onOk={this.handleOk} onCancel={this.handleCancel}
                         width='1200px'
-                        footer=''
-                    >
+                        footer='' >
                         <HrSituationDescFrom data={this.props.data}
                             visible={this.state.visible}
                             spinState={this.spinChange}

+ 5 - 4
js/component/account/set/person.jsx

@@ -79,8 +79,8 @@ class PicturesWall extends React.Component {
         this.props.fileList(fileList);
     }
     componentWillReceiveProps(nextProps) {
-        if (nextProps.lifePhotoList && this.state.propsbool) {
-            this.state.fileList = nextProps.lifePhotoList;
+        if (nextProps.lifePhotoList.length && this.state.propsbool) {
+            this.state.fileList = nextProps.lifePhotoList ;
             this.state.propsbool = false;
         }
     }
@@ -145,7 +145,8 @@ const PersonFrom = Form.create()(React.createClass({
     getInitialState() {
         return {
             loading: false,
-            livePicUrlArr: []
+            livePicUrlArr: [],
+            lifePhotoList: []
         };
     },
     handleSubmit(e) {
@@ -242,7 +243,7 @@ const PersonFrom = Form.create()(React.createClass({
                     label="居住地"
                 >
                     {getFieldDecorator('theAddress', {
-                        initialValue: this.state.theAddress || null
+                        initialValue: this.state.theAddress || []
                     })(
                         <Cascader options={areaSelect()} />
                         )}

+ 2 - 0
js/component/login/adminLogin.less

@@ -25,9 +25,11 @@ body {
     }
     .user-box {
         margin-bottom: 20px;
+        .ant-input {width:268px;}
     }
     .pw-box {
         margin-bottom: 20px;
+        .ant-input {width:268px;}
     }
 }
 

+ 6 - 0
js/component/login/login.less

@@ -92,6 +92,12 @@
                 height: 100%;
                 width: 100%;
             }
+            #phone {
+                width: 268px;
+            }
+            #password {
+                width: 268px;
+            }
         }
         .login-other {
             padding: 0 20px;

+ 76 - 89
js/component/manageCenter/achievement/achievementOrder.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Icon, Button, Input, InputNumber, Select, Spin, Table, message, Modal, Row, Col, DatePicker } from 'antd';
+import { AutoComplete, Icon, Button, Input, InputNumber, Select, Spin, Table, message, Modal, Row, Col, DatePicker } from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import moment from 'moment';
@@ -7,6 +7,7 @@ import './techAchievement.less';
 import { orderStatusList } from '../../dataDic.js';
 import { befoFile, getSearchUrl, getOrderStatus, companySearch } from '../../tools.js';
 import BatchImport from './batchImport';
+import throttle from '../../throttle.js';
 
 const AchievementDetail = React.createClass({
     getInitialState() {
@@ -278,9 +279,9 @@ const AchievementOrderList = React.createClass({
             data: {
                 pageNo: pageNo || 1,
                 pageSize: this.state.pagination.pageSize,
-                uid: this.state.uid,
-                username: this.state.username,
-                unitName: this.state.unitName
+                status: this.state.status,
+                username: ((apiUrl || this.props['data-listApiUrl']).indexOf('org') != -1) ? null : this.state.searchName,
+                unitName: ((apiUrl || this.props['data-listApiUrl']).indexOf('org') != -1) ? this.state.searchName : null
             },
             success: function (data) {
                 let theArr = [];
@@ -325,10 +326,66 @@ const AchievementOrderList = React.createClass({
             });
         }.bind(this));
     },
+    handleSearch(e) {
+        if (this.props['data-detailApiUrl'].indexOf('org') != -1) {
+            $.ajax({
+                method: "get",
+                dataType: "json",
+                crossDomain: false,
+                url: globalConfig.context + "/api/admin/achievement/orgOwner",
+                data: { name: e },
+                success: function (data) {
+                    let theArr = [];
+                    let theObj = {};
+                    if (!data.data) {
+                        if (data.error && data.error.length) {
+                            message.warning(data.error[0].message);
+                        };
+                    } else if (!$.isEmptyObject(data.data)) {
+                        data.data.map(function (item) {
+                            theArr.push(item.unitName);
+                            theObj[item.unitName] = item.uid;
+                        });
+                    };
+                    this.setState({
+                        searchData: theArr,
+                        dataSourceObj: theObj
+                    });
+                }.bind(this),
+            });
+        } else {
+            $.ajax({
+                method: "get",
+                dataType: "json",
+                crossDomain: false,
+                url: globalConfig.context + "/api/admin/achievement/userOwner",
+                data: { name: e },
+                success: function (data) {
+                    let theArr = [];
+                    let theObj = {};
+                    if (!data.data) {
+                        if (data.error && data.error.length) {
+                            message.warning(data.error[0].message);
+                        };
+                    } else if (!$.isEmptyObject(data.data)) {
+                        for (let item in data.data) {
+                            theArr.push(data.data[item]);
+                            theObj[data.data[item]] = item;
+                        };
+                    };
+                    this.setState({
+                        dataSource: theArr,
+                        dataSourceObj: theObj
+                    });
+                }.bind(this),
+            });
+        };
+    },
     getInitialState() {
         return {
             selectedRowKeys: [],
             selectedRows: [],
+            searchData: [],
             loading: false,
             pagination: {
                 defaultCurrent: 1,
@@ -402,71 +459,8 @@ const AchievementOrderList = React.createClass({
             dataSource: [],
         };
     },
-    getCompanyList() {
-        this.setState({
-            loading: true
-        });
-        $.ajax({
-            method: "get",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/api/admin/demand/unitNames",
-            success: function (data) {
-                let theArr = [];
-                if (!data.data) {
-                    if (data.error && data.error.length) {
-                        message.warning(data.error[0].message);
-                    };
-                } else {
-                    data.data.map(function (item) {
-                        theArr.push(
-                            <Select.Option value={item.uid} key={item.uid}>{item.unitName}</Select.Option>
-                        )
-                    });
-                };
-                this.setState({
-                    companyOption: theArr
-                });
-            }.bind(this),
-        }).always(function () {
-            this.setState({
-                loading: false
-            });
-        }.bind(this));
-    },
-    getUserList() {
-        this.setState({
-            loading: true
-        });
-        $.ajax({
-            method: "get",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/api/admin/demand/userNames",
-            success: function (data) {
-                let theArr = [];
-                if (!data.data) {
-                    if (data.error && data.error.length) {
-                        message.warning(data.error[0].message);
-                    };
-                } else {
-                    data.data.map(function (item) {
-                        theArr.push(
-                            <Select.Option value={item.uid} key={item.uid}>{item.username}</Select.Option>
-                        )
-                    });
-                };
-                this.setState({
-                    userOption: theArr
-                });
-            }.bind(this),
-        }).always(function () {
-            this.setState({
-                loading: false
-            });
-        }.bind(this));
-    },
     componentWillMount() {
+        this.state.therottleSearch = throttle(this.handleSearch, 1000, { leading: false }).bind(this);
         let theArr = [], typeArr = [];
         orderStatusList.map(function (item) {
             theArr.push(
@@ -485,14 +479,15 @@ const AchievementOrderList = React.createClass({
         //     };
         // };
         this.loadData();
-        this.getCompanyList();
-        this.getUserList();
     },
     componentWillReceiveProps(nextProps) {
         if (this.props['data-listApiUrl'] != nextProps['data-listApiUrl']) {
-            this.loadData(null, nextProps['data-listApiUrl']);
             this.state.selectedRowKeys = [];
             this.state.selectedRows = [];
+            this.state.status = undefined;
+            this.state.searchName = undefined;
+            this.state.searchData = [];
+            this.loadData(null, nextProps['data-listApiUrl']);
         };
     },
     tableRowClick(record, index) {
@@ -512,8 +507,7 @@ const AchievementOrderList = React.createClass({
     },
     reset() {
         this.state.uid = undefined;
-        this.state.username = undefined;
-        this.state.unitName = undefined;
+        this.state.searchName = undefined;
         this.state.status = undefined;
         this.loadData();
     },
@@ -539,22 +533,15 @@ const AchievementOrderList = React.createClass({
                         onChange={(e) => { this.setState({ status: e }) }}>
                         {this.state.orderStatusOption}
                     </Select>
-                    {this.props['data-listApiUrl'].indexOf('org') == -1 ? <Select placeholder="选择用户名" style={{ width: 260 }}
-                        value={this.state.username}
-                        notFoundContent="未获取到用户列表"
-                        showSearch
-                        filterOption={companySearch}
-                        onChange={(e) => { this.setState({ username: e }) }}>
-                        {this.state.userOption}
-                    </Select> :
-                        <Select placeholder="选择用户名" style={{ width: 260 }}
-                            value={this.state.unitName}
-                            notFoundContent="未获取到用户列表"
-                            showSearch
-                            filterOption={companySearch}
-                            onChange={(e) => { this.setState({ unitName: e }) }}>
-                            {this.state.companyOption}
-                        </Select>}
+                    <AutoComplete
+                        dataSource={this.state.searchData}
+                        style={{ width: 200 }}
+                        onSearch={this.state.therottleSearch}
+                        placeholder="输入成果所有人"
+                        onSelect={(e) => {
+                            //this.setState({ searchName: e });
+                            this.state.searchName = e;
+                        }} />
                     <Button type="primary" onClick={this.search}>搜索</Button>
                     <Button onClick={this.reset}>重置</Button>
                 </div>

+ 2 - 2
js/component/manageCenter/achievement/techAchievement.jsx

@@ -237,8 +237,8 @@ const AchievementList = React.createClass({
             selectedRowKeys: this.state.selectedRowKeys,
             onChange: (selectedRowKeys, selectedRows) => {
                 this.setState({
-                    selectedRows: selectedRows,
-                    selectedRowKeys: selectedRowKeys
+                    selectedRows: selectedRows.slice(-1),
+                    selectedRowKeys: selectedRowKeys.slice(-1)
                 });
             }
         };

+ 7 - 0
js/component/manageCenter/achievement/techAchievement.less

@@ -94,4 +94,11 @@
     .ant-input-number-handler-wrap {
         display: none
     }
+}
+.ant-table-thead {
+    .ant-table-selection-column {
+        .ant-checkbox-wrapper {
+            display: none;
+        }
+    }
 }

+ 4 - 5
js/component/manageCenter/achievement/techAchievementDesc.jsx

@@ -173,7 +173,6 @@ const AchievementDetailShow = Form.create()(React.createClass({
                     technicalPictureUrl: thisData.technicalPictureUrl ? splitUrl(thisData.technicalPictureUrl, ',', globalConfig.avatarHost + '/upload') : [],
                     maturityPictureUrl: thisData.maturityPictureUrl ? splitUrl(thisData.maturityPictureUrl, ',', globalConfig.avatarHost + '/upload') : []
                 });
-                console.log(this.state.tags);
             }.bind(this),
         }).always(function () {
             this.setState({
@@ -833,7 +832,7 @@ const AchievementDetailForm = Form.create()(React.createClass({
                         //
                         switchSign: this.state.switchValue ? 1 : 0,
                         //
-                        ownerId: !this.state.switchValue ? (this.state.dataSourceObj ? this.state.dataSourceObj[values.iOwnerName] : this.props.data.ownerId) : undefined,
+                        ownerId: !this.state.switchValue ? (this.state.dataSourceObj ? this.state.dataSourceObj[values.iOwnerName] : this.state.data.ownerId) : undefined,
                         contacts: !this.state.switchValue ? values.contacts : undefined,
                         ownerType: this.props.detailApiUrl.indexOf('org') != -1 ? 1 : 0,
                         //自定义
@@ -1240,9 +1239,9 @@ const AchievementDetailForm = Form.create()(React.createClass({
                             {...formItemLayout}
                             label="转让价格" >
                             {getFieldDecorator('transferPrice', {
-                                initialValue: theData.transferPrice
+                                initialValue: theData.transferPrice || 0
                             })(
-                                <InputNumber min={0} max={9999} step={0.01} />
+                                <InputNumber min={0} max={999999} step={0.01} />
                                 )}
                             <span style={{ marginLeft: '20px' }}>万元</span>
                         </FormItem>
@@ -1485,7 +1484,7 @@ const AchievementDetail = React.createClass({
             dataType: "json",
             crossDomain: false,
             url: globalConfig.context + "/api/admin/achievement/achievementDemand",
-            data: { id: this.state.data.id },
+            data: { id: this.props.data.id },
             success: function (data) {
                 let theArr = [];
                 if (!data.data) {

+ 69 - 84
js/component/manageCenter/demand/demandOrder.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Icon, Button, Input, InputNumber, Select, Spin, Table, message, Modal, Row, Col, DatePicker } from 'antd';
+import { AutoComplete, Icon, Button, Input, InputNumber, Select, Spin, Table, message, Modal, Row, Col, DatePicker } from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import moment from 'moment';
@@ -7,6 +7,7 @@ import './techDemand.less';
 import { orderStatusList } from '../../dataDic.js';
 import { befoFile, getSearchUrl, getOrderStatus, companySearch } from '../../tools.js';
 import BatchImport from './batchImport';
+import throttle from '../../throttle.js';
 
 const DemandDetail = React.createClass({
     getInitialState() {
@@ -287,9 +288,9 @@ const DemandOrderList = React.createClass({
             data: {
                 pageNo: pageNo || 1,
                 pageSize: this.state.pagination.pageSize,
-                uid: this.state.uid,
-                username: this.state.username,
-                unitName: this.state.unitName
+                status: this.state.status,
+                username: ((apiUrl || this.props['data-listApiUrl']).indexOf('org') != -1) ? null : this.state.searchName,
+                unitName: ((apiUrl || this.props['data-listApiUrl']).indexOf('org') != -1) ? this.state.searchName : null
             },
             success: function (data) {
                 let theArr = [];
@@ -339,6 +340,7 @@ const DemandOrderList = React.createClass({
         return {
             selectedRowKeys: [],
             selectedRows: [],
+            searchData: [],
             loading: false,
             pagination: {
                 defaultCurrent: 1,
@@ -366,7 +368,7 @@ const DemandOrderList = React.createClass({
                     dataIndex: 'demandSerialNumber',
                     key: 'demandSerialNumber',
                 }, {
-                    title: '雇主编号',
+                    title: '雇主名称',
                     dataIndex: 'theName',
                     key: 'theName',
                 }, {
@@ -412,71 +414,63 @@ const DemandOrderList = React.createClass({
             dataSource: [],
         };
     },
-    getCompanyList() {
-        this.setState({
-            loading: true
-        });
-        $.ajax({
-            method: "get",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/api/admin/demand/unitNames",
-            success: function (data) {
-                let theArr = [];
-                if (!data.data) {
-                    if (data.error && data.error.length) {
-                        message.warning(data.error[0].message);
+    handleSearch(e) {
+        if (this.props['data-detailApiUrl'].indexOf('org') != -1) {
+            $.ajax({
+                method: "get",
+                dataType: "json",
+                crossDomain: false,
+                url: globalConfig.context + "/api/admin/achievement/orgOwner",
+                data: { name: e },
+                success: function (data) {
+                    let theArr = [];
+                    let theObj = {};
+                    if (!data.data) {
+                        if (data.error && data.error.length) {
+                            message.warning(data.error[0].message);
+                        };
+                    } else if (!$.isEmptyObject(data.data)) {
+                        data.data.map(function (item) {
+                            theArr.push(item.unitName);
+                            theObj[item.unitName] = item.uid;
+                        });
                     };
-                } else {
-                    data.data.map(function (item) {
-                        theArr.push(
-                            <Select.Option value={item.uid} key={item.uid}>{item.unitName}</Select.Option>
-                        )
+                    this.setState({
+                        searchData: theArr,
+                        dataSourceObj: theObj
                     });
-                };
-                this.setState({
-                    companyOption: theArr
-                });
-            }.bind(this),
-        }).always(function () {
-            this.setState({
-                loading: false
+                }.bind(this),
             });
-        }.bind(this));
-    },
-    getUserList() {
-        this.setState({
-            loading: true
-        });
-        $.ajax({
-            method: "get",
-            dataType: "json",
-            crossDomain: false,
-            url: globalConfig.context + "/api/admin/demand/userNames",
-            success: function (data) {
-                let theArr = [];
-                if (!data.data) {
-                    if (data.error && data.error.length) {
-                        message.warning(data.error[0].message);
+        } else {
+            $.ajax({
+                method: "get",
+                dataType: "json",
+                crossDomain: false,
+                url: globalConfig.context + "/api/admin/achievement/userOwner",
+                data: { name: e },
+                success: function (data) {
+                    let theArr = [];
+                    let theObj = {};
+                    if (!data.data) {
+                        if (data.error && data.error.length) {
+                            message.warning(data.error[0].message);
+                        };
+                    } else if (!$.isEmptyObject(data.data)) {
+                        for (let item in data.data) {
+                            theArr.push(data.data[item]);
+                            theObj[data.data[item]] = item;
+                        };
                     };
-                } else {
-                    data.data.map(function (item) {
-                        theArr.push(
-                            <Select.Option value={item.uid} key={item.uid}>{item.username}</Select.Option>
-                        )
+                    this.setState({
+                        dataSource: theArr,
+                        dataSourceObj: theObj
                     });
-                };
-                this.setState({
-                    userOption: theArr
-                });
-            }.bind(this),
-        }).always(function () {
-            this.setState({
-                loading: false
+                }.bind(this),
             });
-        }.bind(this));
+        };
     },
     componentWillMount() {
+        this.state.therottleSearch = throttle(this.handleSearch, 1000, { leading: false }).bind(this);
         let theArr = [], typeArr = [];
         orderStatusList.map(function (item) {
             theArr.push(
@@ -495,14 +489,15 @@ const DemandOrderList = React.createClass({
         //     };
         // };
         this.loadData();
-        this.getCompanyList();
-        this.getUserList();
     },
     componentWillReceiveProps(nextProps) {
         if (this.props['data-listApiUrl'] != nextProps['data-listApiUrl']) {
-            this.loadData(null, nextProps['data-listApiUrl']);
             this.state.selectedRowKeys = [];
             this.state.selectedRows = [];
+            this.state.status = undefined;
+            this.state.searchName = null;
+            this.state.searchData = [];
+            this.loadData(null, nextProps['data-listApiUrl']);
         };
     },
     tableRowClick(record, index) {
@@ -559,9 +554,7 @@ const DemandOrderList = React.createClass({
         this.loadData();
     },
     reset() {
-        this.state.uid = undefined;
-        this.state.username = undefined;
-        this.state.unitName = undefined;
+        this.state.searchName = undefined;
         this.state.status = undefined;
         this.loadData();
     },
@@ -587,22 +580,14 @@ const DemandOrderList = React.createClass({
                         onChange={(e) => { this.setState({ status: e }) }}>
                         {this.state.orderStatusOption}
                     </Select>
-                    {this.props['data-listApiUrl'].indexOf('org') == -1 ? <Select placeholder="选择用户名" style={{ width: 260 }}
-                        value={this.state.username}
-                        notFoundContent="未获取到用户列表"
-                        showSearch
-                        filterOption={companySearch}
-                        onChange={(e) => { this.setState({ username: e }) }}>
-                        {this.state.userOption}
-                    </Select> :
-                        <Select placeholder="选择用户名" style={{ width: 260 }}
-                            value={this.state.unitName}
-                            notFoundContent="未获取到用户列表"
-                            showSearch
-                            filterOption={companySearch}
-                            onChange={(e) => { this.setState({ unitName: e }) }}>
-                            {this.state.companyOption}
-                        </Select>}
+                    <AutoComplete
+                        dataSource={this.state.searchData}
+                        style={{ width: 200 }}
+                        onSearch={this.state.therottleSearch}
+                        placeholder="输入雇主名称"
+                        onSelect={(e) => {
+                            this.state.searchName = e;
+                        }} />
                     <Button type="primary" onClick={this.search}>搜索</Button>
                     <Button onClick={this.reset}>重置</Button>
                 </div>

+ 5 - 3
js/component/manageCenter/demand/techDemand.jsx

@@ -167,8 +167,10 @@ const DemandList = React.createClass({
                     render: text => {
                         switch (text) {
                             case "0":
-                                return <span>未解决</span>;
+                                return <span>进行中</span>;
                             case "1":
+                                return <span>未解决</span>;
+                            case "2":
                                 return <span>已解决</span>;
                         }
                     }
@@ -364,8 +366,8 @@ const DemandList = React.createClass({
             selectedRowKeys: this.state.selectedRowKeys,
             onChange: (selectedRowKeys, selectedRows) => {
                 this.setState({
-                    selectedRows: selectedRows,
-                    selectedRowKeys: selectedRowKeys
+                    selectedRows: selectedRows.slice(-1),
+                    selectedRowKeys: selectedRowKeys.slice(-1)
                 });
             }
         };

+ 7 - 0
js/component/manageCenter/demand/techDemand.less

@@ -96,4 +96,11 @@
     .ant-input-number-handler-wrap {
         display: none
     }
+}
+.ant-table-thead {
+    .ant-table-selection-column {
+        .ant-checkbox-wrapper {
+            display: none;
+        }
+    }
 }

+ 4 - 4
js/component/manageCenter/demand/techDemandDesc.jsx

@@ -1097,7 +1097,7 @@ const DemandDetailForm = Form.create()(React.createClass({
                             {...formItemLayout}
                             label="固定人数" >
                             {getFieldDecorator('peopleNumber', {
-                                initialValue: theData.peopleNumber
+                                initialValue: theData.peopleNumber || 0
                             })(
                                 <InputNumber />
                                 )}
@@ -1119,9 +1119,9 @@ const DemandDetailForm = Form.create()(React.createClass({
                             {...formItemLayout}
                             label="预算费用" >
                             {getFieldDecorator('budgetCost', {
-                                initialValue: theData.budgetCost
+                                initialValue: theData.budgetCost || 0
                             })(
-                                <InputNumber min={0} max={9999} step={0.01} />
+                                <InputNumber min={0} max={999999} step={0.01} />
                                 )}
                             <span style={{ marginLeft: '20px' }}>万元</span>
                         </FormItem>
@@ -1283,7 +1283,7 @@ const DemandDetail = React.createClass({
             dataType: "json",
             crossDomain: false,
             url: globalConfig.context + "/api/admin/demand/achievementDemand",
-            data: { id: this.state.data.id },
+            data: { id: this.props.data.id },
             success: function (data) {
                 let theArr = [];
                 if (!data.data) {

+ 220 - 2
js/component/manageCenter/index/content.jsx

@@ -1,15 +1,232 @@
 import React from 'react';
-import { Spin, Button, Tabs } from 'antd';
+import { Spin, Button, Tabs, Table } from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
 
 import '../content.less';
+import './content.less';
 import LeftTab from './leftTab.jsx';
 
 
 const TabPane = Tabs.TabPane;
 
-
+const MessageModal = React.createClass({
+    getInitialState() {
+        return {
+            visible: false,
+            loading: false,
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadReaded(page);
+                }.bind(this),
+                showTotal: function (total) {
+                    return '共' + total + '条数据';
+                }
+            },
+            UnreadPagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadUnread(page);
+                }.bind(this),
+                showTotal: function (total) {
+                    return '共' + total + '条数据';
+                }
+            },
+            columns: [
+                {
+                    title: '编号',
+                    dataIndex: 'key',
+                    key: 'key'
+                }, {
+                    title: '类型',
+                    dataIndex: 'noticeType',
+                    key: 'noticeType',
+                    render: (text, record) => {
+                        switch (text) {
+                            case 1:
+                                return <a href={globalConfig.context + "/admin/servicesManage/patent.html?rid=" + record.rid + "&uid=" + record.uid + "#comprehensive"}> {record.noticeTypeName} </a>;
+                            case 3:
+                                return <a href={globalConfig.context + "/admin/servicesManage/copyright.html?rid=" + record.rid + "&uid=" + record.uid + "#copyright"}> {record.noticeTypeName} </a>;
+                            case 2:
+                                return <a href={globalConfig.context + "/admin/servicesManage/highTech.html?rid=" + record.rid + "&uid=" + record.uid + "&year=" + record.year + "#highTechApply"}> {record.noticeTypeName} </a>;
+                            case 4:
+                                return <a href={globalConfig.context + "/admin/servicesManage/technology.html?rid=" + record.rid + "&uid=" + record.uid + "#applyManage"}> {record.noticeTypeName} </a>;
+                            case 5:
+                                return <a href={globalConfig.context + "/admin/userManage.html?id=" + record.uid + "&type=0" + (window.showUserList ? "#userList" : "#customerList")}> {record.noticeTypeName} </a>;
+                            case 6:
+                                return <a href={globalConfig.context + "/admin/userManage.html?id=" + record.uid + "&type=1" + (window.showOrgList ? "#orgList" : "#customerList")}> {record.noticeTypeName} </a >;
+                            case 7:
+                                return <a href={globalConfig.context + "/admin/servicesManage/contract.html?rid=" + record.rid + "&uid=" + record.uid + "#contract"}> {record.noticeTypeName} </a >;
+                            case 8:
+                                return <a href={globalConfig.context + "/admin/demand.html?rid=" + record.rid + "#techDemandUser"}> {record.noticeTypeName} </a >;
+                            case 9:
+                                return <a href={globalConfig.context + "/admin/demand.html?rid=" + record.rid + "&uid=" + record.uid + "#techDemandOrg"}> {record.noticeTypeName} </a >;
+                            case 10:
+                                return <a href={globalConfig.context + "/admin/achievement.html?rid=" + record.rid + "#orgTechAchievement"}> {record.noticeTypeName} </a >;
+                            case 11:
+                                return <a href={globalConfig.context + "/admin/achievement.html?rid=" + record.rid + "#userTechAchievement"}> {record.noticeTypeName} </a >;
+                        }
+                    }
+                }, {
+                    title: '时间',
+                    dataIndex: 'createTimeFormattedDate',
+                    key: 'createTimeFormattedDate'
+                }, {
+                    title: '内容',
+                    dataIndex: 'content',
+                    key: 'content',
+                }, {
+                    title: '公司',
+                    dataIndex: 'unitName',
+                    key: 'unitName',
+                }, {
+                    title: '业务员',
+                    dataIndex: 'principle',
+                    key: 'principle',
+                }
+            ],
+            data: []
+        };
+    },
+    loadReaded(pageNo) {
+        this.state.data = [];
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/notice/readed",
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+            }
+        }).done((data) => {
+            if (!data.data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                    return;
+                };
+            };
+            this.state.data = [];
+            for (let i = 0; i < data.data.list.length; i++) {
+                let thisdata = data.data.list[i];
+                this.state.data.push({
+                    key: i + 1,
+                    id: thisdata.id,
+                    rid: thisdata.rid,
+                    uid: thisdata.uid,
+                    aid: thisdata.aid,
+                    noticeType: thisdata.noticeType,
+                    year: thisdata.year,
+                    noticeTypeName: thisdata.noticeTypeName,
+                    content: thisdata.content,
+                    createTime: thisdata.createTime,
+                    createTimeFormattedDate: thisdata.createTimeFormattedDate,
+                    principle: thisdata.principle,
+                    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
+            });
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    loadUnread(pageNo) {
+        this.state.data = [];
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/notice/unread",
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.UnreadPagination.pageSize,
+            }
+        }).done((data) => {
+            if (!data.data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                    return;
+                };
+            };
+            this.state.data = [];
+            for (let i = 0; i < data.data.list.length; i++) {
+                let thisdata = data.data.list[i];
+                this.state.data.push({
+                    key: i + 1,
+                    id: thisdata.id,
+                    rid: thisdata.rid,
+                    uid: thisdata.uid,
+                    aid: thisdata.aid,
+                    noticeType: thisdata.noticeType,
+                    year: thisdata.year,
+                    noticeTypeName: thisdata.noticeTypeName,
+                    content: thisdata.content,
+                    createTime: thisdata.createTime,
+                    createTimeFormattedDate: thisdata.createTimeFormattedDate,
+                    principle: thisdata.principle,
+                    unitName: thisdata.unitName
+                });
+            };
+            this.state.UnreadPagination.current = data.data.pageNo;
+            this.state.UnreadPagination.total = data.data.totalCount;
+            this.setState({
+                unreadData: this.state.data,
+                UnreadPagination: this.state.UnreadPagination
+            });
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    componentWillMount() {
+        this.loadReaded();
+        this.loadUnread();
+    },
+    render() {
+        return (
+            <div className="set-content">
+                <div className="set-title">
+                    <span>管理员中心</span>
+                </div>
+                <Spin spinning={this.state.loading} className='spin-box'>
+                    <Tabs defaultActiveKey="1">
+                        <Tabs.TabPane tab="新信息" key="1">
+                            <Table columns={this.state.columns}
+                                dataSource={this.state.unreadData}
+                                pagination={this.state.UnreadPagination} />
+                        </Tabs.TabPane>
+                        <Tabs.TabPane tab="已读信息" key="2">
+                            <Table columns={this.state.columns}
+                                dataSource={this.state.dataSource}
+                                pagination={this.state.pagination} />
+                        </Tabs.TabPane>
+                    </Tabs>
+                </Spin>
+            </div>
+        );
+    }
+});
 
 const Content = React.createClass({
     getInitialState() {
@@ -24,6 +241,7 @@ const Content = React.createClass({
                 <div className="content-right">
                     <Spin spinning={this.state.loading} className='spin-box'>
                         <div className="index-content">
+                            <MessageModal />
                         </div>
                     </Spin>
                 </div>

+ 14 - 124
js/component/manageCenter/index/content.less

@@ -1,127 +1,17 @@
-    @a-color: #ea0862;
-    .index-content {
-        height: 100%;
-        .acc-title {
-            color: #333;
+.set-content {
+    background: #fff;
+    padding: 20px;
+    .set-title {
+        >span {
             font-size: 16px;
-            margin-bottom: 10px;
-            span {
-                font-size: 12px;
-                color: #999;
-                margin-left: 10px;
-            }
-        }
-        .index-userdata {
-            background: #fff;
-            padding: 20px;
-            .userdata-img {
-                height: 120px;
-                width: 120px;
-                padding-top: 120px;
-                position: relative;
-                overflow: hidden;
-                border-radius: 50%;
-                float: left;
-                background: #eee;
-                img {
-                    height: 120px;
-                    width: 120px;
-                    position: absolute;
-                    top: 0;
-                    left: 0;
-                }
-            }
-            .userdata-content {
-                margin-left: 140px;
-                line-height: 30px;
-                position: relative;
-                a {
-                    color: @a-color;
-                }
-                .userdata-lvl {
-                    span {
-                        color: #fff;
-                        background: @a-color;
-                        border-radius: 2px;
-                        padding: 0 4px;
-                    }
-                }
-                .userdata-relate {
-                    button {
-                        border: none;
-                        border-radius: 4px;
-                        margin-top: 20px;
-                        margin-right: 20px;
-                        img {
-                            height: 20px;
-                            vertical-align: middle;
-                        }
-                        span {
-                            color: #fff;
-                        }
-                    }
-                    .relateweixin {
-                        background: #12d41e;
-                    }
-                    .relateqq {
-                        background: #3073c1;
-                    }
-                    .relateweibo {
-                        background: #cf331d;
-                    }
-                }
-                .userdata-follow {
-                    position: absolute;
-                    top: 0;
-                    right: 10px;
-                }
-            }
-        }
-        .index-record {
-            background: #fff;
-            padding: 20px;
-            margin-top: 1px;
-            .record-list {
-                li {
-                    float: left;
-                    width: 200px;
-                    margin-right: 100px;
-                    line-height: 30px;
-                    a {
-                        color: @a-color;
-                    }
-                }
-            }
+            color: #333;
         }
-        .index-activity {
-            background: #fff;
-            padding: 20px;
-            margin-top: 20px;
-            min-height: 300px;
-            .activity-list {
-                li {
-                    border-bottom: 1px dashed #eee;
-                    padding: 10px 0;
-                    .list-type {
-                        color: #666
-                    }
-                    .list-title {
-                        color: #333;
-                        margin-left: 10px;
-                    }
-                    a {
-                        padding: 0 4px;
-                        background: @a-color;
-                        color: #fff;
-                        border-radius: 2px;
-                        float: right;
-                        margin: 0 10px;
-                    }
-                    .list-time {
-                        color: #666;
-                        float: right;
-                    }
-                }
-            }
+        >button {
+            float: right;
+            margin-right: 20px;
         }
-    }
+    }
+    .member-table {
+        margin-top: 20px;
+    }
+}

+ 5 - 5
js/component/manageCenter/servicesManage/contract/contract.jsx

@@ -2,7 +2,7 @@ import React from 'react';
 import { Icon, Button, Input, Select, Spin, Table, DatePicker, message, Cascader, Switch, Modal } from 'antd';
 import { contractStateList, contractTypeList } from '../../../dataDic.js';
 import { provinceSelect, getProvince } from '../../../NewDicProvinceList';
-import { getTime, companySearch, getContractState, getContractType, getInUrgentTime, getSearchUrl } from '../../../tools.js';
+import { companySearch, getContractState, getContractType, getSearchUrl } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import ContractAdd from './contractAdd.jsx';
@@ -446,13 +446,13 @@ const Contract = React.createClass({
                             disabled={!hasSelected}
                             onClick={this.delectRow}>删除<Icon type="minus" /></Button>
                         <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>
-                            <span>创建时间:</span>
-                            <DatePicker style={{ width: '240px' }}
+                            <span>签订时间:</span>
+                            <DatePicker style={{ width: '140px' }}
                                 allowClear={false}
                                 value={this.state.startDateFormattedDate ? moment(this.state.startDateFormattedDate) : null}
                                 onChange={(date, dateString) => { this.setState({ startDateFormattedDate: dateString }) }} />
-                            <span>结束时间:</span>
-                            <DatePicker style={{ width: '240px' }}
+                            <span></span>
+                            <DatePicker style={{ width: '140px' }}
                                 allowClear={false}
                                 value={this.state.endDateFormattedDate ? moment(this.state.endDateFormattedDate) : null}
                                 onChange={(date, dateString) => { this.setState({ endDateFormattedDate: dateString }) }} />

+ 10 - 11
js/component/manageCenter/servicesManage/contract/contractAdd.jsx

@@ -256,7 +256,7 @@ const ContractAddFrom = Form.create()(React.createClass({
                         {getFieldDecorator('previousFee', {
                             initialValue: theData.previousFee
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} style={{ width: '80px', marginRight: '20px' }} />
+                            <InputNumber min={0} max={999999} step={0.01} style={{ width: '80px', marginRight: '20px' }} />
                             )}
                         <span>万元</span>
                     </FormItem>
@@ -283,7 +283,7 @@ const ContractAddFrom = Form.create()(React.createClass({
                         {...formItemLayout}
                         label={"高企申请"} >
                         {getFieldDecorator('cognizanceYear', {
-                            initialValue: theData.cognizanceYear || undefined
+                            initialValue: theData.cognizanceYear ? String(theData.cognizanceYear) : null
                         })(
                             <Select placeholder="请选择年份"
                                 style={{ width: 120 }}
@@ -425,13 +425,12 @@ const ContractAdd = React.createClass({
         return (
             <div className="patent-addNew">
                 <Button className="patent-addNew" type="primary" onClick={this.showModal}>申请合同<Icon type="plus" /></Button>
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="合同详情"
-                        visible={this.state.visible}
-                        onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="合同详情"
+                    visible={this.state.visible}
+                    onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <ContractAddFrom
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
@@ -441,8 +440,8 @@ const ContractAdd = React.createClass({
                             companyOption={this.props.companyOption}
                             authorOption={this.props.authorOption}
                             typeOption={this.props.typeOption} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 11 - 12
js/component/manageCenter/servicesManage/contract/contractDetail.jsx

@@ -480,6 +480,7 @@ const ContractDetailForm = Form.create()(React.createClass({
     componentWillReceiveProps(nextProps) {
         if (!this.props.visible && nextProps.visible) {
             this.loadData(nextProps.data.id);
+            this.props.form.resetFields();
             this.loadColumnsData(nextProps.data.id);
             this.getContactsList(nextProps.data.uid);
         };
@@ -504,7 +505,7 @@ const ContractDetailForm = Form.create()(React.createClass({
                         "cid": this.props.data.id,
                         "comment": values.comment,
                         "status": values.status,
-                        "recordTimeFormattedDate":values.recordTime.format("YYYY-MM-DD HH:mm:ss"),
+                        "recordTimeFormattedDate": values.recordTime.format("YYYY-MM-DD HH:mm:ss"),
                         "principals": values.principals //流转分发人
                     }
                 }).done(function (data) {
@@ -512,11 +513,10 @@ const ContractDetailForm = Form.create()(React.createClass({
                         message.success('保存成功!');
                         this.props.clickOk();
                         this.props.form.resetFields();
-                        this.props.spinState(false);
                     } else {
                         message.warning(data.error[0].message);
-                        this.props.spinState(false);
-                    }
+                    };
+                    this.props.spinState(false);
                 }.bind(this));
             }
         });
@@ -758,12 +758,11 @@ const ContractDetail = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="合同详情" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1000px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="合同详情" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1000px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <ContractDetailForm
                             visible={this.state.visible}
                             authorOption={this.props.authorOption}
@@ -772,8 +771,8 @@ const ContractDetail = React.createClass({
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }

+ 8 - 9
js/component/manageCenter/servicesManage/copyright/comPatentAdd.jsx

@@ -214,13 +214,12 @@ const PatentAdd = React.createClass({
         return (
             <div className="patent-addNew">
                 <Button className="patent-addNew" type="primary" onClick={this.showModal}>申请新软著<Icon type="plus" /></Button>
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="申请新软著"
-                        visible={this.state.visible}
-                        onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="申请新软著"
+                    visible={this.state.visible}
+                    onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <PatentAddFrom
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
@@ -228,8 +227,8 @@ const PatentAdd = React.createClass({
                             companyOption={this.props.companyOption}
                             salesmanOption={this.props.salesmanOption}
                             consultantOption={this.props.consultantOption} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 13 - 11
js/component/manageCenter/servicesManage/copyright/comPatentChange.jsx

@@ -5,7 +5,7 @@ import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import moment from 'moment';
 import { copyrightStateList } from '../../../dataDic.js';
-import { companySearch, getCopyrightState, getTime, copyrightDownloadFile, beforeUploadFile, getInUrgentTime, getPreview } from '../../../tools.js';
+import { companySearch, getCopyrightState, getTime, copyrightDownloadFile, beforeUploadFile, getInUrgentTime, getVacations, getPreview } from '../../../tools.js';
 
 const CopyrightDescForm = Form.create()(React.createClass({
     getInitialState() {
@@ -15,6 +15,7 @@ const CopyrightDescForm = Form.create()(React.createClass({
             stateOption: [],
             stateTable: [],
             contactsOption: [],
+            vacations: [],
             stateColumns: [{
                 title: '申请状态',
                 dataIndex: 'status',
@@ -41,6 +42,7 @@ const CopyrightDescForm = Form.create()(React.createClass({
     },
     componentWillMount() {
         this.loadData();
+        getVacations((data) => { this.setState({ vacations: data }); });
     },
     loadData(uid, id) {
         this.setState({
@@ -153,6 +155,7 @@ const CopyrightDescForm = Form.create()(React.createClass({
             this.loadData(nextProps.data.uid, nextProps.data.id);
             this.state.fileList_copyright_apply = [];
             this.state.fileList_copyright_auth = [];
+            this.props.form.resetFields();
         };
     },
     handleSubmit(e) {
@@ -351,9 +354,9 @@ const CopyrightDescForm = Form.create()(React.createClass({
                             {(() => {
                                 if (theData.expectTime && theData.expectTime[0]) {
                                     if (theData.expectTime[1]) {
-                                        return getTime(getInUrgentTime(moment(theData.expectTime[0]), theData.expectTime[1]))
+                                        return getTime(getInUrgentTime(moment(theData.expectTime[0]), theData.expectTime[1], this.state.vacations))
                                     } else {
-                                        return getTime(getInUrgentTime(moment(theData.expectTime[0]), 45))
+                                        return getTime(getInUrgentTime(moment(theData.expectTime[0]), 45, this.state.vacations))
                                     };
                                 };
                             })()}
@@ -476,12 +479,11 @@ const CopyrightDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="软著详情" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="软著详情" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer=''>
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <CopyrightDescForm
                             visible={this.state.visible}
                             authorOption={this.props.authorOption}
@@ -490,8 +492,8 @@ const CopyrightDesc = React.createClass({
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }

+ 93 - 91
js/component/manageCenter/servicesManage/copyright/copyright.jsx

@@ -2,7 +2,7 @@ import React from 'react';
 import { Icon, Button, Input, Select, Spin, Table, DatePicker, message, Cascader, Switch, Modal } from 'antd';
 import { copyrightStateList } from '../../../dataDic.js';
 import { provinceSelect, getProvince } from '../../../NewDicProvinceList';
-import { getTime, companySearch, getCopyrightState, getInUrgentTime, getSearchUrl } from '../../../tools.js';
+import { getTime, companySearch, getCopyrightState, getInUrgentTime, getVacations, getSearchUrl } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import PatentAdd from './comPatentAdd.jsx';
@@ -234,95 +234,7 @@ const copyright = React.createClass({
                     return '共' + total + '条数据';
                 }
             },
-            columns: [
-                {
-                    title: '编号',
-                    dataIndex: 'serialNumber',
-                    key: 'serialNumber',
-                }, {
-                    title: '省份',
-                    dataIndex: 'province',
-                    key: 'province',
-                    render: text => { return getProvince(text); }
-                }, {
-                    title: '合同编号',
-                    dataIndex: 'contractNumber',
-                    key: 'contractNumber',
-                }, {
-                    title: '公司名称',
-                    dataIndex: 'unitName',
-                    key: 'unitName',
-                }, {
-                    title: '认证状态',
-                    dataIndex: 'status',
-                    key: 'status',
-                    render: (text) => { return getCopyrightState(text) }
-                }, {
-                    title: '软著名称',
-                    dataIndex: 'copyrightName',
-                    key: 'copyrightName',
-                }, {
-                    title: '加急天数',
-                    dataIndex: 'inUrgent',
-                    key: 'inUrgent',
-                    render: (text) => {
-                        switch (text) {
-                            case 0:
-                                return '不加急(45个工作日)';
-                            case 3:
-                                return '3个工作日';
-                            case 5:
-                                return '5个工作日';
-                            case 10:
-                                return '6-10个工作日';
-                            case 15:
-                                return '11-15个工作日';
-                            case 20:
-                                return '16-20个工作日';
-                            case 25:
-                                return '21-25个工作日';
-                            case 30:
-                                return '26-30个工作日';
-                            case 35:
-                                return '31-35个工作日';
-                        }
-                    }
-                }, {
-                    title: '负责人',
-                    dataIndex: 'principal',
-                    key: 'principal',
-                }, {
-                    title: '派单日',
-                    dataIndex: 'createTimeFormattedDate',
-                    key: 'createTimeFormattedDate',
-                }, {
-                    title: '受理日',
-                    dataIndex: 'acceptTimeFormattedDate',
-                    key: 'acceptTimeFormattedDate',
-                }, {
-                    title: '(预计)下证时间',
-                    dataIndex: 'expectTime',
-                    key: 'expectTime',
-                    render: (text) => {
-                        if (text[0]) {
-                            if (text[1]) {
-                                return getTime(getInUrgentTime(moment(text[0]), text[1]))
-                            } else {
-                                return getTime(getInUrgentTime(moment(text[0]), 45))
-                            }
-                        };
-                        return;
-                    }
-                }, {
-                    title: '创建人',
-                    dataIndex: 'founder',
-                    key: 'founder'
-                }, {
-                    title: '技术员',
-                    dataIndex: 'techPrincipal',
-                    key: 'techPrincipal',
-                }
-            ],
+            vacations: [],
             dataSource: []
         };
     },
@@ -371,6 +283,7 @@ const copyright = React.createClass({
         this.getCompanyList();
         this.getStateList();
         this.getContractList();
+        getVacations(function(data){ _me.setState({ vacations: data }); });
         if (window.location.search) {
             let theObj = getSearchUrl(window.location.search);
             if (theObj.rid) {
@@ -512,6 +425,95 @@ const copyright = React.createClass({
         this.setState({ visible: false });
     },
     render() {
+        const columns = [
+            {
+                title: '编号',
+                dataIndex: 'serialNumber',
+                key: 'serialNumber',
+            }, {
+                title: '省份',
+                dataIndex: 'province',
+                key: 'province',
+                render: text => { return getProvince(text); }
+            }, {
+                title: '合同编号',
+                dataIndex: 'contractNumber',
+                key: 'contractNumber',
+            }, {
+                title: '公司名称',
+                dataIndex: 'unitName',
+                key: 'unitName',
+            }, {
+                title: '认证状态',
+                dataIndex: 'status',
+                key: 'status',
+                render: (text) => { return getCopyrightState(text) }
+            }, {
+                title: '软著名称',
+                dataIndex: 'copyrightName',
+                key: 'copyrightName',
+            }, {
+                title: '加急天数',
+                dataIndex: 'inUrgent',
+                key: 'inUrgent',
+                render: (text) => {
+                    switch (text) {
+                        case 0:
+                            return '不加急(45个工作日)';
+                        case 3:
+                            return '3个工作日';
+                        case 5:
+                            return '5个工作日';
+                        case 10:
+                            return '6-10个工作日';
+                        case 15:
+                            return '11-15个工作日';
+                        case 20:
+                            return '16-20个工作日';
+                        case 25:
+                            return '21-25个工作日';
+                        case 30:
+                            return '26-30个工作日';
+                        case 35:
+                            return '31-35个工作日';
+                    }
+                }
+            }, {
+                title: '负责人',
+                dataIndex: 'principal',
+                key: 'principal',
+            }, {
+                title: '派单日',
+                dataIndex: 'createTimeFormattedDate',
+                key: 'createTimeFormattedDate',
+            }, {
+                title: '受理日',
+                dataIndex: 'acceptTimeFormattedDate',
+                key: 'acceptTimeFormattedDate',
+            }, {
+                title: '(预计)下证时间',
+                dataIndex: 'expectTime',
+                key: 'expectTime',
+                render: (text) => {
+                    if (text[0]) {
+                        if (text[1]) {
+                            return getTime(getInUrgentTime(moment(text[0]), text[1], this.state.vacations))
+                        } else {
+                            return getTime(getInUrgentTime(moment(text[0]), 45, this.state.vacations))
+                        }
+                    };
+                    return;
+                }
+            }, {
+                title: '创建人',
+                dataIndex: 'founder',
+                key: 'founder'
+            }, {
+                title: '技术员',
+                dataIndex: 'techPrincipal',
+                key: 'techPrincipal',
+            }
+        ];
         const rowSelection = {
             selectedRowKeys: this.state.selectedRowKeys,
             onChange: (selectedRowKeys, selectedRows) => {
@@ -586,7 +588,7 @@ const copyright = React.createClass({
                     </div>
                     <div className="foster-table">
                         <Spin spinning={this.state.loading}>
-                            <Table columns={this.state.columns}
+                            <Table columns={columns}
                                 rowSelection={rowSelection}
                                 dataSource={this.state.dataSource}
                                 pagination={this.state.pagination}

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

@@ -247,20 +247,19 @@ const AchievementDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="科技成果转化" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="科技成果转化" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <AchievementDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
                             visible={this.state.visible}
                             activityNumberList={this.props.activityNumberList}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

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

@@ -95,6 +95,7 @@ const ActivityForm = Form.create()(React.createClass({
             this.state.mockData = nextProps.data.mockData;
             this.props.form.resetFields();
             this.state.fileList = [];
+            this.state.proofUrl = undefined;
             if (nextProps.data.id) {
                 this.loadData(nextProps.data.id);
             } else {
@@ -236,7 +237,7 @@ const ActivityForm = Form.create()(React.createClass({
                             {getFieldDecorator('budget', {
                                 initialValue: theData.budget
                             })(
-                                <InputNumber min={0} max={9999} step={0.01} />
+                                <InputNumber min={0} max={999999} step={0.01} />
                                 )}
                             <span>万元</span>
                         </FormItem>

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

@@ -41,6 +41,12 @@ const ActivityDescFrom = Form.create()(React.createClass({
             this.state.allCost = nextProps.data.allCost;
             nextProps.form.resetFields();
             this.state.fileList = [];
+            this.state.accountUrl = undefined;
+            this.state.internalAllCost = nextProps.data.internalLaborCost + nextProps.data.internalDirectCost +
+                nextProps.data.internalDepreciationCost + nextProps.data.internalAmortizationCost +
+                nextProps.data.internalDesignCost + nextProps.data.internalEquipmentCost +
+                nextProps.data.internalOtherCost;
+            this.state.allCost = this.state.internalAllCost + nextProps.data.externalTotalCost
         } else {
             this.allCostCount();
         };
@@ -105,7 +111,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                 <p className="activityCost-title">项目编号</p>
                 {getFieldDecorator('activityNumber', {
                     rules: [{ required: true, message: '此项为必填项!' }],
-                    initialValue: theData.activityNumber
+                    initialValue: theData.aid
                 })(
                     <Select
                         notFoundContent="无项目可选"
@@ -143,7 +149,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.internalLaborCost || 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -154,7 +160,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.internalDirectCost || 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -165,7 +171,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.internalDepreciationCost || 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -176,7 +182,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.internalAmortizationCost || 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -187,7 +193,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.internalDesignCost || 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -198,7 +204,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.internalEquipmentCost || 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -209,7 +215,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.internalOtherCost || 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                 </div>
@@ -223,7 +229,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.externalTotalCost || 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -234,7 +240,7 @@ const ActivityDescFrom = Form.create()(React.createClass({
                             rules: [{ type: "number", required: true, message: '此项为必填项!' }],
                             initialValue: theData.externalAbroadCost || 0
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                 </div>
@@ -342,12 +348,11 @@ const ActivityDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="企业研究开发费用结构明细" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="企业研究开发费用结构明细" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <ActivityDescFrom
                             uid={this.props.uid}
                             visible={this.state.visible}
@@ -355,8 +360,8 @@ const ActivityDesc = React.createClass({
                             data={this.props.data}
                             activityNumberList={this.props.activityNumberList}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 43 - 42
js/component/manageCenter/servicesManage/highTech/fosterDesc/annualReport.jsx

@@ -263,7 +263,7 @@ const AnnualReportDescFrom = Form.create()(React.createClass({
                                     rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                                     initialValue: this.props.data.totalTax
                                 })(
-                                    <InputNumber min={0} max={9999} step={0.01} />
+                                    <InputNumber min={0} max={999999} step={0.01} />
                                     )}
                             </FormItem>
                         </div>
@@ -276,7 +276,7 @@ const AnnualReportDescFrom = Form.create()(React.createClass({
                                     rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                                     initialValue: this.props.data.incomeTaxRelief
                                 })(
-                                    <InputNumber min={0} max={9999} step={0.01} />
+                                    <InputNumber min={0} max={999999} step={0.01} />
                                     )}
                             </FormItem>
                         </div>
@@ -289,7 +289,7 @@ const AnnualReportDescFrom = Form.create()(React.createClass({
                                     rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                                     initialValue: this.props.data.totalExportVolume
                                 })(
-                                    <InputNumber min={0} max={9999} step={0.01} />
+                                    <InputNumber min={0} max={999999} step={0.01} />
                                     )}
                             </FormItem>
                         </div>
@@ -302,7 +302,7 @@ const AnnualReportDescFrom = Form.create()(React.createClass({
                                     rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                                     initialValue: this.props.data.basicResearchCost
                                 })(
-                                    <InputNumber min={0} max={9999} step={0.01} />
+                                    <InputNumber min={0} max={999999} step={0.01} />
                                     )}
                             </FormItem>
                         </div>
@@ -426,19 +426,18 @@ const AnnualReportDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="企业年报信息" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1000px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="企业年报信息" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1000px'
+                    footer=''>
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <AnnualReportDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
                             detailData={this.state.detailData}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },
@@ -535,37 +534,39 @@ const AnnualReportAdd = React.createClass({
                             返回
                             </Button>,
                     ]} >
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span>选择申请年份: </span>
-                            <Select placeholder="请选择年份" style={{ width: 200 }}
-                                onSelect={(e, n) => { this.state.year = e }}>
-                                {this.state.yearOption}
-                            </Select>
+                    <Spin spinning={this.state.loading} className='spin-box'>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span>选择申请年份: </span>
+                                <Select placeholder="请选择年份" style={{ width: 200 }}
+                                    onSelect={(e, n) => { this.state.year = e }}>
+                                    {this.state.yearOption}
+                                </Select>
+                            </div>
+                        </div>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span>纳税总额: </span>
+                                <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.totalTax = e; }} />
+                                <span>(万元)</span>
+                            </div>
+                            <div className="half-item">
+                                <span>高企所得税减免额: </span>
+                                <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.incomeTaxRelief = e; }} />
+                                <span>(万元)</span>
+                            </div>
+                            <div className="half-item">
+                                <span>出口创汇总额(人民币): </span>
+                                <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.totalExportVolume = e; }} />
+                                <span>(万元)</span>
+                            </div>
+                            <div className="half-item">
+                                <span>基础研究投入费用: </span>
+                                <InputNumber min={0} max={999999} step={0.01} onChange={(e) => { this.state.basicResearchCost = e; }} />
+                                <span>(万元)</span>
+                            </div>
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span>纳税总额: </span>
-                            <InputNumber min={0} max={9999} step={0.01} onChange={(e) => { this.state.totalTax = e; }} />
-                            <span>(万元)</span>
-                        </div>
-                        <div className="half-item">
-                            <span>高企所得税减免额: </span>
-                            <InputNumber min={0} max={9999} step={0.01} onChange={(e) => { this.state.incomeTaxRelief = e; }} />
-                            <span>(万元)</span>
-                        </div>
-                        <div className="half-item">
-                            <span>出口创汇总额(人民币): </span>
-                            <InputNumber min={0} max={9999} step={0.01} onChange={(e) => { this.state.totalExportVolume = e; }} />
-                            <span>(万元)</span>
-                        </div>
-                        <div className="half-item">
-                            <span>基础研究投入费用: </span>
-                            <InputNumber min={0} max={9999} step={0.01} onChange={(e) => { this.state.basicResearchCost = e; }} />
-                            <span>(万元)</span>
-                        </div>
-                    </div>
+                    </Spin>
                 </Modal>
             </div>
         );

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

@@ -142,7 +142,7 @@ const CompanyDetail = Form.create()(React.createClass({
                     uid: item.uid,
                     type: item.type,
                     name: item.name,
-                    orgCode: item.idNumber,
+                    orgCode: item.orgCode,
                     investment: item.investment
                 });
             });
@@ -655,7 +655,7 @@ const CompanyDetail = Form.create()(React.createClass({
                                 rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                                 initialValue: theData.registeredCapital
                             })(
-                                <InputNumber min={0} max={9999} step={0.01} />
+                                <InputNumber min={0} max={999999} step={0.01} />
                                 )}
                             <span>万元</span>
                         </FormItem>
@@ -947,7 +947,7 @@ const CompanyDetail = Form.create()(React.createClass({
                             {getFieldDecorator('firmTotal', {
                                 initialValue: theData.firmTotal || 0
                             })(
-                                <InputNumber min={0} max={9999} step={0.01} />
+                                <InputNumber min={0} max={999999} step={0.01} />
                                 )}
                         </FormItem>
                         <FormItem className="half-item"
@@ -957,7 +957,7 @@ const CompanyDetail = Form.create()(React.createClass({
                             {getFieldDecorator('techTotal', {
                                 initialValue: theData.techTotal || 0
                             })(
-                                <InputNumber min={0} max={9999} step={0.01} />
+                                <InputNumber min={0} max={999999} step={0.01} />
                                 )}
                             <span>其中科技人员占比
                         {(() => {

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

@@ -117,6 +117,7 @@ const FinanceDescFrom = Form.create()(React.createClass({
             this.state.researchCost = undefined;
             this.state.grossProfit = undefined;
             this.state.operatingProfit = undefined;
+            this.state.financeUrl = undefined;
         };
     },
     checkResearchCost(rule, value, callback) {
@@ -365,19 +366,18 @@ const FinanceDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="财务报表信息" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="财务报表信息" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer=''  >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <FinanceDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
                             visible={this.state.visible}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

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

@@ -193,12 +193,11 @@ const HonorListDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="企业荣誉及其他证明材料" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="企业荣誉及其他证明材料" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer=''>
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <HonorListDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
@@ -206,8 +205,8 @@ const HonorListDesc = React.createClass({
                             visible={this.state.visible}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 10 - 9
js/component/manageCenter/servicesManage/highTech/fosterDesc/hrSituation.jsx

@@ -112,6 +112,8 @@ const HrSituationDescFrom = Form.create()(React.createClass({
             this.props.form.resetFields();
             this.state.fileList_roster = [];
             this.state.fileList_social_security = [];
+            this.state.rosterUrl = undefined;
+            this.state.socialSecurityUrl = undefined;
         };
     },
     render() {
@@ -521,7 +523,7 @@ const HrSituationDescFrom = Form.create()(React.createClass({
                                 var newTab = window.open('about:blank'); getPreview(theData.id, 'humanResource', 'social_security', function (data) { newTab.location.href = data; });
                             }}><Icon style={{ fontSize: '16px' }} type="eye-o" /></a>
                         </span>
-                         : <span><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />未上传!</span>}</p>
+                        : <span><Icon type="exclamation-circle" style={{ color: '#ffbf00', marginRight: '6px' }} />未上传!</span>}</p>
                 </div>
                 <div>
                     <span style={{ color: "red" }}>提示</span>
@@ -572,12 +574,11 @@ const HrSituationDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="人力资源状况" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1200px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="人力资源状况" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1200px'
+                    footer=''>
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <HrSituationDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
@@ -585,8 +586,8 @@ const HrSituationDesc = React.createClass({
                             visible={this.state.visible}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 10 - 14
js/component/manageCenter/servicesManage/highTech/fosterDesc/intellectualDesc.jsx

@@ -8,9 +8,7 @@ import moment from 'moment';
 
 const IntellectualDescFrom = Form.create()(React.createClass({
     loadData(id, type) {
-        this.setState({
-            loading: true
-        });
+        this.props.spinState(true);
         $.ajax({
             method: "get",
             dataType: "json",
@@ -28,9 +26,7 @@ const IntellectualDescFrom = Form.create()(React.createClass({
                 this.state.data = {};
             } else { this.state.data = data.data };
         }).always(function () {
-            this.setState({
-                loading: false
-            });
+            this.props.spinState(true);
         }.bind(this));
     },
     getInitialState() {
@@ -100,6 +96,7 @@ const IntellectualDescFrom = Form.create()(React.createClass({
             };
             this.state.data = {};
             this.state.fileList = [];
+            this.state.propertyRightUrl = undefined;
         };
     },
     render() {
@@ -292,12 +289,11 @@ const intellectualDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="知识产权详情" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='600px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="知识产权详情" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='600px'
+                    footer=''>
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <IntellectualDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
@@ -305,8 +301,8 @@ const intellectualDesc = React.createClass({
                             closeModal={this.handleCancel}
                             visible={this.state.visible}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

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

@@ -50,6 +50,7 @@ const CenterListDescFrom = Form.create()(React.createClass({
         if (!this.props.visible && nextProps.visible) {
             this.props.form.resetFields();
             this.state.fileList = [];
+            this.state.protocolUrl= undefined;
         };
     },
     render() {
@@ -190,12 +191,11 @@ const CenterListDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="产学研情况详情" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="产学研情况详情" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer=''>
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <CenterListDescFrom
                             visible={this.state.visible}
                             cid={this.props.cid}
@@ -204,8 +204,8 @@ const CenterListDesc = React.createClass({
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

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

@@ -111,6 +111,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
             this.state.researchCost = undefined;
             this.state.grossProfit = undefined;
             this.state.operatingProfit = undefined;
+            this.state.taxReturnUrl = undefined;
         };
     },
     render() {
@@ -142,7 +143,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.operatingIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -153,7 +154,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.managementCost
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.managementCost && this.state.managementCost != this.props.form.getFieldValue('managementCost') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -165,7 +166,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.operatingProfit
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.operatingProfit && this.state.operatingProfit != this.props.form.getFieldValue('operatingProfit') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -177,7 +178,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.nonOperatingIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -188,7 +189,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.nonTaxableIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -199,7 +200,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.taxExemptIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -210,7 +211,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.subsidyIncome
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                     </FormItem>
                     <FormItem className="half-item"
@@ -221,7 +222,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.grossProfit
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.grossProfit && this.state.grossProfit != this.props.form.getFieldValue('grossProfit') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -233,7 +234,7 @@ const RatepayDescFrom = Form.create()(React.createClass({
                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                             initialValue: theData.researchCost
                         })(
-                            <InputNumber min={0} max={9999} step={0.01} />
+                            <InputNumber min={0} max={999999} step={0.01} />
                             )}
                         {this.state.researchCost && this.state.researchCost != this.props.form.getFieldValue('researchCost') ? <span style={{ color: '#f50' }}>与财务报表不一致!</span> : <span></span>}
                     </FormItem>
@@ -318,19 +319,18 @@ const RatepayDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="企业所得税纳税申报信息" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="企业所得税纳税申报信息" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <RatepayDescFrom
                             uid={this.props.uid}
                             data={this.props.data}
                             visible={this.state.visible}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 1 - 0
js/component/manageCenter/servicesManage/highTech/fosterDesc/standard.jsx

@@ -84,6 +84,7 @@ const StandardDesc = React.createClass({
                 this.state.enclosureUrl = nextProps.data.enclosureUrl;
             };
             this.state.fileList = [];
+            this.state.enclosureUrl = undefined;
         };
         this.state.visible = nextProps.showDesc;
     },

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

@@ -29,6 +29,7 @@ const TechProductDescFrom = Form.create()(React.createClass({
         if (!this.props.visible && nextProps.visible && nextProps.data && this.props.resetForm) {
             this.state.targetKeys = nextProps.data.intellectualPropertyNumber || [];
             this.props.form.resetFields();
+            this.state.accountUrl = undefined;
             this.state.fileList = [];
         };
     },
@@ -180,8 +181,8 @@ const TechProductDescFrom = Form.create()(React.createClass({
                 <Transfer
                     dataSource={this.props.mockData}
                     listStyle={{
-                        width: 200,
-                        height: 200,
+                        width: 300,
+                        height: 300,
                     }}
                     titles={['未选择', '已选择']}
                     targetKeys={this.state.targetKeys}
@@ -311,12 +312,11 @@ const TechProductDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="上年度高新技术产品(服务)情况表" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="上年度高新技术产品(服务)情况表" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer=''  >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <TechProductDescFrom
                             data={this.props.data}
                             uid={this.props.uid}
@@ -324,8 +324,8 @@ const TechProductDesc = React.createClass({
                             resetForm={this.state.resetForm}
                             mockData={this.props.mockData}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 64 - 64
js/component/manageCenter/servicesManage/highTech/highTechApply.jsx

@@ -537,7 +537,7 @@ const CognizanceDescFrom = Form.create()(React.createClass({
                                             rules: [{ type: 'number', required: true, message: '此项为必填项!' }],
                                             initialValue: theData.basicResearchCost
                                         })(
-                                            <InputNumber min={0} max={9999} step={0.01} />
+                                            <InputNumber min={0} max={999999} step={0.01} />
                                             )}
                                     </FormItem>
                                 </div>
@@ -614,20 +614,19 @@ const CognizanceDesc = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="高企管理" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1000px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="高企管理" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1000px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <CognizanceDescFrom
                             visible={this.state.visible}
                             contactsOption={this.props.contactsOption}
                             authorOption={this.props.authorOption}
                             data={this.props.data}
                             spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }
@@ -773,65 +772,66 @@ const CognizanceAdd = React.createClass({
                         <Button key="back" onClick={this.handleCancel}>
                             返回
                             </Button>,
-                    ]}
-                >
-                    <div className="clearfix" style={{ marginBottom: '10px' }}>
-                        <div className="half-item">
-                            <span>选择公司:  </span>
-                            <Select
-                                placeholder="请选择公司"
-                                style={{ width: 260 }}
-                                showSearch
-                                filterOption={companySearch}
-                                value={this.state.uid}
-                                onSelect={(e, n) => { this.setState({ uid: e }); this.getContactsList(e); }}>
-                                {this.props.companyOption}
-                            </Select>
-                        </div>
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span>选择申请年份:  </span>
-                            <Select placeholder="请选择年份" style={{ width: 200 }}
-                                value={this.state.year}
-                                onSelect={(e, n) => { this.setState({ year: e }); }}>
-                                {this.state.yearOption}
-                            </Select>
-                        </div>
-                        <div className="half-item">
-                            <span>订单金额超过十万:  </span>
-                            <Radio.Group onChange={(e) => { this.state.largeOrder = e.target.value }}>
-                                <Radio value="0">否</Radio>
-                                <Radio value="1">是</Radio>
-                            </Radio.Group>
+                    ]} >
+                    <Spin spinning={this.state.loading} className='spin-box'>
+                        <div className="clearfix" style={{ marginBottom: '10px' }}>
+                            <div className="half-item">
+                                <span>选择公司:  </span>
+                                <Select
+                                    placeholder="请选择公司"
+                                    style={{ width: 260 }}
+                                    showSearch
+                                    filterOption={companySearch}
+                                    value={this.state.uid}
+                                    onSelect={(e, n) => { this.setState({ uid: e }); this.getContactsList(e); }}>
+                                    {this.props.companyOption}
+                                </Select>
+                            </div>
                         </div>
-                        <div className="half-item">
-                            <span>选择联系人:  </span>
-                            <Select placeholder="请选择联系人" style={{ width: 200 }}
-                                value={this.state.contacts}
-                                onSelect={(e, n) => { this.setState({ contacts: e }); }}>
-                                {this.state.contactsOption}
-                            </Select>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span>选择申请年份:  </span>
+                                <Select placeholder="请选择年份" style={{ width: 200 }}
+                                    value={this.state.year}
+                                    onSelect={(e, n) => { this.setState({ year: e }); }}>
+                                    {this.state.yearOption}
+                                </Select>
+                            </div>
+                            <div className="half-item">
+                                <span>订单金额超过十万:  </span>
+                                <Radio.Group onChange={(e) => { this.state.largeOrder = e.target.value }}>
+                                    <Radio value="0">否</Radio>
+                                    <Radio value="1">是</Radio>
+                                </Radio.Group>
+                            </div>
+                            <div className="half-item">
+                                <span>选择联系人:  </span>
+                                <Select placeholder="请选择联系人" style={{ width: 200 }}
+                                    value={this.state.contacts}
+                                    onSelect={(e, n) => { this.setState({ contacts: e }); }}>
+                                    {this.state.contactsOption}
+                                </Select>
+                            </div>
                         </div>
-                    </div>
-                    <div>
                         <div>
-                            <span>派单详情:  </span>
-                            <Input type="textarea" rows={6}
-                                value={this.state.comment}
-                                onChange={(e) => { this.setState({ comment: e.target.value }); }} />
+                            <div>
+                                <span>派单详情:  </span>
+                                <Input type="textarea" rows={6}
+                                    value={this.state.comment}
+                                    onChange={(e) => { this.setState({ comment: e.target.value }); }} />
+                            </div>
                         </div>
-                    </div>
-                    <div className="clearfix" style={{ marginTop: 20 }}>
-                        <div className="half-item">
-                            <span>选择营销员:  </span>
-                            <Select placeholder="请选择营销员" style={{ width: 200 }}
-                                value={this.state.salesman}
-                                onSelect={(e, n) => { this.setState({ salesman: e }); }}>
-                                {this.props.salesmanOption}
-                            </Select>
+                        <div className="clearfix" style={{ marginTop: 20 }}>
+                            <div className="half-item">
+                                <span>选择营销员:  </span>
+                                <Select placeholder="请选择营销员" style={{ width: 200 }}
+                                    value={this.state.salesman}
+                                    onSelect={(e, n) => { this.setState({ salesman: e }); }}>
+                                    {this.props.salesmanOption}
+                                </Select>
+                            </div>
                         </div>
-                    </div>
+                    </Spin>
                 </Modal>
             </div>
         );
@@ -1214,7 +1214,7 @@ const Cognizance = React.createClass({
                 </div>
                 <div className="foster-query">
                     <Cascader placeholder="选择省份"
-                        style={{ width: 100, marginTop: "-4px" }}
+                        style={{ width: 100, marginTop: "-4px", marginRight: '20px' }}
                         value={this.state.province}
                         options={provinceSelect()}
                         showSearch

+ 1 - 1
js/component/manageCenter/servicesManage/highTech/highTechFoster.jsx

@@ -215,7 +215,7 @@ const Patent = React.createClass({
                         </div>
                         <div className="foster-query">
                             <Cascader placeholder="选择省份"
-                                style={{ width: 100, marginTop: "-4px" }}
+                                style={{ width: 100, marginTop: "-4px", marginRight: '20px' }}
                                 value={this.state.province}
                                 options={provinceSelect()}
                                 showSearch

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

@@ -242,15 +242,14 @@ const PatentAdd = React.createClass({
         return (
             <div className="patent-addNew">
                 <Button className="patent-addNew" type="primary" onClick={this.showModal}>新专利添加<Icon type="plus" /></Button>
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="新专利添加" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='720px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="新专利添加" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='720px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <PatentAddFrom spinState={this.spinChange} closeModal={this.handleCancel} clickOk={this.handleOk} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

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

@@ -363,19 +363,18 @@ const PatentAdd = React.createClass({
         return (
             <div className="patent-addNew">
                 <Button className="patent-addNew" type="primary" onClick={this.showModal}>申请新专利<Icon type="plus" /></Button>
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="新专利申请" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='800px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="新专利申请" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='800px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <PatentAddFrom
                             visible={this.state.visible}
                             spinState={this.spinChange}
                             closeModal={this.handleCancel}
                             okClick={() => { this.props.closeDesc(false, true) }} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     },

+ 13 - 12
js/component/manageCenter/servicesManage/patent/comprehensive.jsx

@@ -308,6 +308,7 @@ const Patent = React.createClass({
                 <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
             )
         });
+        
         if (window.location.search) {
             let theObj = getSearchUrl(window.location.search);
             if (theObj.rid) {
@@ -317,7 +318,7 @@ const Patent = React.createClass({
                 };
             } else {
                 if (theObj.uid) {
-                    this.state.unitName = theObj.uid;
+                    this.state.unitId = theObj.uid;
                 } else if (theObj.contractId) {
                     this.state.contractId = theObj.contractId;
                 };
@@ -360,17 +361,17 @@ const Patent = React.createClass({
     },
     exportComposite() {
         window.open(globalConfig.context + "/api/admin/patent/exportComposite" +
-            "?" + "serialNumber" + "=" + this.state.number +
-            "&" + "patentNumber" + "=" + this.state.patentNumber +
-            "&" + "patentName" + "=" + this.state.patentName +
-            "&" + "locationProvince" + "=" + this.state.province +
-            "&" + "uid" + "=" + this.state.unitId +
-            "&" + "uid" + "=" + this.state.contractId +
-            "&" + "patentCatagory" + "=" + this.state.patentCatagory +
-            "&" + "patentState" + "=" + this.state.patentState +
-            "&" + "createTime" + "=" + this.state.createTime +
-            "&" + "patentApplicationDate" + "=" + this.state.acceptTime +
-            "&" + "author" + "=" + this.state.author);
+            "?" + "serialNumber" + "=" + (this.state.number || '') +
+            "&" + "patentNumber" + "=" + (this.state.patentNumber || '') +
+            "&" + "patentName" + "=" + (this.state.patentName || '') +
+            "&" + "locationProvince" + "=" + (this.state.province || '') +
+            "&" + "uid" + "=" + (this.state.unitId || '') +
+            "&" + "contractId" + "=" + (this.state.contractId || '') +
+            "&" + "patentCatagory" + "=" + (this.state.patentCatagory || '') +
+            "&" + "patentState" + "=" + (this.state.patentState || '') +
+            "&" + "createTime" + "=" + (this.state.createTime || '') +
+            "&" + "patentApplicationDate" + "=" + (this.state.acceptTime || '') +
+            "&" + "author" + "=" + (this.state.author || ''));
     },
     searchSwitch() {
         this.setState({

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

@@ -41,7 +41,6 @@ const Correction = React.createClass({
                         patentType: thisdata.patentCatagory,
                         patentName: thisdata.patentName,
                         patentState: thisdata.patentState,
-                        province: thisdata.locationProvince,
                         endData: [thisdata.patentCatagory, thisdata.authorizedDate],
                         author: thisdata.author,
                         authorizedDate: thisdata.authorizedDate
@@ -111,8 +110,8 @@ const Correction = React.createClass({
                     key: 'office',
                 }, {
                     title: '省份',
-                    dataIndex: 'province',
-                    key: 'province',
+                    dataIndex: 'locationProvince',
+                    key: 'locationProvince',
                     render: text => { return getProvince(text) }
 
                 }, {

+ 80 - 79
js/component/manageCenter/servicesManage/technology/applyAdd.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Button, Input, Select, message, Modal, Checkbox, Radio } from 'antd';
+import { Button, Input, Select, message, Modal, Checkbox, Radio, Spin } from 'antd';
 import { companySearch } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -164,93 +164,94 @@ const ApplyAdd = React.createClass({
                         <Button key="back" onClick={this.handleCancel}>
                             取消
                             </Button>,
-                    ]}
-                >
-                    <div className="clearfix" style={{ marginBottom: '10px' }}>
-                        <div className="half-item">
-                            <span className="item-title">选择公司:  </span>
-                            <Select
-                                placeholder="请选择公司"
-                                style={{ width: 260 }}
-                                showSearch
-                                filterOption={companySearch}
-                                onSelect={(e, n) => { this.state.uid = e; this.getContactsList(e); this.getDepartmentList(e); }}>
-                                {this.props.companyAddOption}
-                            </Select>
+                    ]} >
+                    <Spin spinning={this.state.loading} className='spin-box'>
+                        <div className="clearfix" style={{ marginBottom: '10px' }}>
+                            <div className="half-item">
+                                <span className="item-title">选择公司:  </span>
+                                <Select
+                                    placeholder="请选择公司"
+                                    style={{ width: 260 }}
+                                    showSearch
+                                    filterOption={companySearch}
+                                    onSelect={(e, n) => { this.state.uid = e; this.getContactsList(e); this.getDepartmentList(e); }}>
+                                    {this.props.companyAddOption}
+                                </Select>
+                            </div>
+                            <div className="half-item">
+                                <span className="item-title">选择联系人:  </span>
+                                <Select placeholder="请选择联系人" style={{ width: 200 }}
+                                    onSelect={(e, n) => { this.state.contacts = e }}>
+                                    {this.state.contactsOption}
+                                </Select>
+                            </div>
                         </div>
-                        <div className="half-item">
-                            <span className="item-title">选择联系人:  </span>
-                            <Select placeholder="请选择联系人" style={{ width: 200 }}
-                                onSelect={(e, n) => { this.state.contacts = e }}>
-                                {this.state.contactsOption}
-                            </Select>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">申报科技部门:  </span>
+                                <Select
+                                    placeholder="请填写申报部门"
+                                    style={{ width: 260 }}
+                                    onChange={(e) => { this.state.department = e; }}>
+                                    {this.state.departmentOption}
+                                </Select>
+                            </div>
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">申报科技部门:  </span>
-                            <Select
-                                placeholder="请填写申报部门"
-                                style={{ width: 260 }}
-                                onChange={(e) => { this.state.department = e; }}>
-                                {this.state.departmentOption}
-                            </Select>
+                        <div className="clearfix">
+                            <div>
+                                <span className="item-title">派单信息:  </span>
+                            </div>
+                            <Input type="textarea" rows={6} onChange={(e) => { this.state.dispatchInfo = e.target.value; }} />
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div>
-                            <span className="item-title">派单信息:  </span>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">项目名称:  </span>
+                                <Input style={{ width: 200 }} onChange={(e) => { this.state.projectName = e.target.value; }} />
+                            </div>
                         </div>
-                        <Input type="textarea" rows={6} onChange={(e) => { this.state.dispatchInfo = e.target.value; }} />
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">项目名称:  </span>
-                            <Input style={{ width: 200 }} onChange={(e) => { this.state.projectName = e.target.value; }} />
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">项目类型:  </span>
+                                <Input style={{ width: 200 }} onChange={(e) => { this.state.projectCatagory = e.target.value; }} />
+                            </div>
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">项目类型:  </span>
-                            <Input style={{ width: 200 }} onChange={(e) => { this.state.projectCatagory = e.target.value; }} />
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">技术领域:  </span>
+                                <Input style={{ width: 200 }} onChange={(e) => { this.state.techField = e.target.value; }} />
+                            </div>
                         </div>
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">技术领域:  </span>
-                            <Input style={{ width: 200 }} onChange={(e) => { this.state.techField = e.target.value; }} />
-                        </div>
-                    </div>
-                    <div className="clearfix">
-                        <div>
-                            <span className="item-title">项目介绍:  </span>
-                        </div>
-                        <Input type="textarea" rows={6} onChange={(e) => { this.state.projectDes = e.target.value; }} />
-                    </div>
-                    <div className="clearfix">
-                        <div className="half-item">
-                            <span className="item-title">立项/后补助: </span>
-                            <Radio.Group onChange={this.subsidyCheck}>
-                                <Radio value={1}>立项</Radio>
-                                <Radio value={2}>后补助</Radio>
-                            </Radio.Group>
+                        <div className="clearfix">
+                            <div>
+                                <span className="item-title">项目介绍:  </span>
+                            </div>
+                            <Input type="textarea" rows={6} onChange={(e) => { this.state.projectDes = e.target.value; }} />
                         </div>
+                        <div className="clearfix">
+                            <div className="half-item">
+                                <span className="item-title">立项/后补助: </span>
+                                <Radio.Group onChange={this.subsidyCheck}>
+                                    <Radio value={1}>立项</Radio>
+                                    <Radio value={2}>后补助</Radio>
+                                </Radio.Group>
+                            </div>
 
-                        <div className="half-item">
-                            <span className="item-title">金额: </span>
-                            <Input style={{ width: 200 }} onChange={(e) => { this.state.projectApproval = e.target.value; }} />
-                            <span>万元</span>
-                        </div>
-                        <div className="half-item">
-                            <span className="item-title">营销员:  </span>
-                            <Select
-                                placeholder="请填写营销员"
-                                style={{ width: 260 }}
-                                onChange={(e) => { this.state.salesman = e; }}>
-                                {this.props.salesmanOption}
-                            </Select>
+                            <div className="half-item">
+                                <span className="item-title">金额: </span>
+                                <Input style={{ width: 200 }} onChange={(e) => { this.state.projectApproval = e.target.value; }} />
+                                <span>万元</span>
+                            </div>
+                            <div className="half-item">
+                                <span className="item-title">营销员:  </span>
+                                <Select
+                                    placeholder="请填写营销员"
+                                    style={{ width: 260 }}
+                                    onChange={(e) => { this.state.salesman = e; }}>
+                                    {this.props.salesmanOption}
+                                </Select>
+                            </div>
                         </div>
-                    </div>
+                    </Spin>
                 </Modal>
             </div>
         );

+ 10 - 8
js/component/manageCenter/servicesManage/technology/applyChange.jsx

@@ -263,6 +263,9 @@ const ApplyChangeFrom = Form.create()(React.createClass({
             this.getStateData(nextProps.data.id);
             this.getContactsList(nextProps.data.uid);
             this.getDepartmentList(nextProps.data.uid);
+            this.state.approvalUrl = undefined;
+            this.state.subsidy = undefined;
+            this.props.form.resetFields();
         };
     },
     subsidyCheck(e) {
@@ -543,19 +546,18 @@ const ApplyChange = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="编辑科技项目" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='1000px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="编辑科技项目" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='1000px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <ApplyChangeFrom
                             visible={this.state.visible}
                             authorOption={this.props.authorOption}
                             data={this.props.data}
                             spinState={this.spinChange} closeModal={this.handleCancel} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }

+ 32 - 31
js/component/manageCenter/servicesManage/technology/websiteAdd.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Button, Input, Select, message, Modal } from 'antd';
+import { Button, Input, Select, message, Modal,Spin } from 'antd';
 import { companySearch } from '../../../tools.js';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
@@ -89,36 +89,37 @@ const WebsiteAdd = React.createClass({
                         <Button key="back" onClick={this.handleCancel}>
                             取消
                             </Button>,
-                    ]}
-                >
-                    <div>
-                        <span className="item-title">选择公司:  </span>
-                        <Select
-                            placeholder="请选择公司"
-                            style={{ width: 200 }}
-                            value={this.state.unitName}
-                            showSearch
-                            filterOption={companySearch}
-                            onChange={(e) => { this.setState({ unitName: e }); }}>
-                            {this.props.companyAddOption}
-                        </Select>
-                    </div>
-                    <div>
-                        <span className="item-title">科技部门名称:  </span>
-                        <Input value={this.state.department} onChange={(e) => { this.setState({ department: e.target.value }); }} style={{ width: 200 }} />
-                    </div>
-                    <div>
-                        <span className="item-title">网址:  </span>
-                        <Input value={this.state.website} onChange={(e) => { this.setState({ website: e.target.value }); }} style={{ width: 200 }} />
-                    </div>
-                    <div>
-                        <span className="item-title">账号:  </span>
-                        <Input value={this.state.accountNumber} onChange={(e) => { this.setState({ accountNumber: e.target.value }); }} style={{ width: 200 }} />
-                    </div>
-                    <div>
-                        <span className="item-title">密码:  </span>
-                        <Input value={this.state.password} onChange={(e) => { this.setState({ password: e.target.value }); }} style={{ width: 200 }} />
-                    </div>
+                    ]} >
+                    <Spin spinning={this.state.loading} className='spin-box'>
+                        <div>
+                            <span className="item-title">选择公司:  </span>
+                            <Select
+                                placeholder="请选择公司"
+                                style={{ width: 200 }}
+                                value={this.state.unitName}
+                                showSearch
+                                filterOption={companySearch}
+                                onChange={(e) => { this.setState({ unitName: e }); }}>
+                                {this.props.companyAddOption}
+                            </Select>
+                        </div>
+                        <div>
+                            <span className="item-title">科技部门名称:  </span>
+                            <Input value={this.state.department} onChange={(e) => { this.setState({ department: e.target.value }); }} style={{ width: 200 }} />
+                        </div>
+                        <div>
+                            <span className="item-title">网址:  </span>
+                            <Input value={this.state.website} onChange={(e) => { this.setState({ website: e.target.value }); }} style={{ width: 200 }} />
+                        </div>
+                        <div>
+                            <span className="item-title">账号:  </span>
+                            <Input value={this.state.accountNumber} onChange={(e) => { this.setState({ accountNumber: e.target.value }); }} style={{ width: 200 }} />
+                        </div>
+                        <div>
+                            <span className="item-title">密码:  </span>
+                            <Input value={this.state.password} onChange={(e) => { this.setState({ password: e.target.value }); }} style={{ width: 200 }} />
+                        </div>
+                    </Spin>
                 </Modal>
             </div>
         );

+ 53 - 54
js/component/manageCenter/servicesManage/technology/websiteChange.jsx

@@ -111,52 +111,52 @@ const WebsiteChangeFrom = Form.create()(React.createClass({
         if (this.state.data) {
             return (
                 <Form onSubmit={this.handleSubmit} id="highTechApply-form">
-                        <FormItem
-                            {...formItemLayout}
-                            label="公司名称:"
-                        >
-                            <span>{theData.unitName}</span>
-                        </FormItem>
-                        <FormItem
-                            {...formItemLayout}
-                            label="科技部门名称:"
-                        >
-                            {getFieldDecorator('department', {
-                                initialValue: theData.department
-                            })(
-                                <Input />
-                                )}
-                        </FormItem>
-                        <FormItem
-                            {...formItemLayout}
-                            label="网址:"
-                        >
-                            {getFieldDecorator('website', {
-                                initialValue: theData.website
-                            })(
-                                <Input />
-                                )}
-                        </FormItem>
-                        <FormItem
-                            {...formItemLayout}
-                            label="账号:"
-                        >
-                            {getFieldDecorator('accountNumber', {
-                                initialValue: theData.accountNumber
-                            })(
-                                <Input />
-                                )}
-                        </FormItem>
-                        <FormItem
-                            {...formItemLayout}
-                            label="密码:"
-                        >
-                            {getFieldDecorator('password', {
-                                initialValue: theData.password
-                            })(
-                                <Input />
-                                )}
-                        </FormItem>
+                    <FormItem
+                        {...formItemLayout}
+                        label="公司名称:"
+                    >
+                        <span>{theData.unitName}</span>
+                    </FormItem>
+                    <FormItem
+                        {...formItemLayout}
+                        label="科技部门名称:"
+                    >
+                        {getFieldDecorator('department', {
+                            initialValue: theData.department
+                        })(
+                            <Input />
+                            )}
+                    </FormItem>
+                    <FormItem
+                        {...formItemLayout}
+                        label="网址:"
+                    >
+                        {getFieldDecorator('website', {
+                            initialValue: theData.website
+                        })(
+                            <Input />
+                            )}
+                    </FormItem>
+                    <FormItem
+                        {...formItemLayout}
+                        label="账号:"
+                    >
+                        {getFieldDecorator('accountNumber', {
+                            initialValue: theData.accountNumber
+                        })(
+                            <Input />
+                            )}
+                    </FormItem>
+                    <FormItem
+                        {...formItemLayout}
+                        label="密码:"
+                    >
+                        {getFieldDecorator('password', {
+                            initialValue: theData.password
+                        })(
+                            <Input />
+                            )}
+                    </FormItem>
                     <FormItem style={{ marginTop: '20px' }}>
                         <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
                         <Button type="ghost" style={{ marginLeft: '20px' }} onClick={this.props.closeModal}>取消</Button>
@@ -204,19 +204,18 @@ const WebsiteChange = React.createClass({
     render() {
         return (
             <div className="patent-addNew">
-                <Spin spinning={this.state.loading} className='spin-box'>
-                    <Modal maskClosable={false} title="编辑科技部门网址" visible={this.state.visible}
-                        onOk={this.handleOk} onCancel={this.handleCancel}
-                        width='500px'
-                        footer=''
-                    >
+                <Modal maskClosable={false} title="编辑科技部门网址" visible={this.state.visible}
+                    onOk={this.handleOk} onCancel={this.handleCancel}
+                    width='500px'
+                    footer='' >
+                    <Spin spinning={this.state.loading} className='spin-box'>
                         <WebsiteChangeFrom
                             visible={this.state.visible}
                             companyOption={this.props.companyOption}
                             data={this.props.data}
                             spinState={this.spinChange} closeModal={this.handleCancel} />
-                    </Modal>
-                </Spin>
+                    </Spin>
+                </Modal>
             </div>
         );
     }

+ 14 - 6
js/component/manageCenter/userManage/customerList.jsx

@@ -94,7 +94,8 @@ const UserAdd = React.createClass({
         };
     },
     showModal() {
-        this.state.mobile;
+        this.state.mobile = undefined;
+        this.state.username = undefined;
         this.setState({
             visible: true,
         });
@@ -115,6 +116,7 @@ const UserAdd = React.createClass({
             url: globalConfig.context + "/api/admin/addNewUser",
             data: {
                 mobile: this.state.mobile,
+                username: this.state.username,
                 type: 0
             }
         }).done(function (data) {
@@ -150,6 +152,12 @@ const UserAdd = React.createClass({
                             value={this.state.mobile}
                             onChange={(e) => { this.setState({ mobile: e.target.value }); }} />
                     </div>
+                    <div className='orgAdd-input'>
+                        <span>用户名称:</span>
+                        <Input
+                            value={this.state.username}
+                            onChange={(e) => { this.setState({ username: e.target.value }); }} />
+                    </div>
                 </Modal>
             </div>
         );
@@ -194,10 +202,10 @@ const CustomerList = React.createClass({
                         createTime: thisdata.createTime,
                         aftUsername: thisdata.aftUsername,
                         number: thisdata.number,
-                        auditStatus: thisdata.auditStatus,
+                        auditStatus: thisdata.type == 0 ? thisdata.userAuditStatus : thisdata.orgAuditStatus,
                         createTimeFormattedDate: thisdata.createTimeFormattedDate,
                         adminName: thisdata.adminName,
-                        unitName: thisdata.unitName
+                        theName: thisdata.type == 0 ? thisdata.username : thisdata.unitName
                     });
                 };
                 this.state.pagination.current = data.data.pageNo;
@@ -241,9 +249,9 @@ const CustomerList = React.createClass({
                     dataIndex: 'mobile',
                     key: 'mobile',
                 }, {
-                    title: '公司名称',
-                    dataIndex: 'unitName',
-                    key: 'unitName',
+                    title: '用户名称',
+                    dataIndex: 'theName',
+                    key: 'theName',
                 }, {
                     title: '认证状态',
                     dataIndex: 'auditStatus',

+ 3 - 3
js/component/manageCenter/userManage/orgList.jsx

@@ -122,7 +122,7 @@ const OrgList = React.createClass({
                         createTime: thisdata.createTime,
                         aftUsername: thisdata.aftUsername,
                         number: thisdata.number,
-                        auditStatus: thisdata.auditStatus,
+                        orgAuditStatus: thisdata.orgAuditStatus,
                         createTimeFormattedDate: thisdata.createTimeFormattedDate,
                         adminName: thisdata.adminName,
                         unitName: thisdata.unitName
@@ -174,8 +174,8 @@ const OrgList = React.createClass({
                     key: 'unitName',
                 }, {
                     title: '认证状态',
-                    dataIndex: 'auditStatus',
-                    key: 'auditStatus',
+                    dataIndex: 'orgAuditStatus',
+                    key: 'orgAuditStatus',
                     render: text => { return getAuditState(text); }
                 }, {
                     title: '注册时间',

+ 5 - 5
js/component/manageCenter/userManage/userDesc.jsx

@@ -288,7 +288,7 @@ const UserShow = Form.create()(React.createClass({
                 </FormItem>
                 <FormItem
                     {...formItemLayout}
-                    label="是否专家" >
+                    label="是否明星" >
                     {getFieldDecorator('celebrity')(
                         <span>{this.state.celebrity ? "否" : "是"}</span>
                     )}
@@ -614,10 +614,10 @@ const UserForm = Form.create()(React.createClass({
                     {getFieldDecorator('expert', {
                         initialValue: this.state.expert
                     })(
-                        <RadioGroup>
+                        <Radio.Group>
                             <Radio value={0}>否</Radio>
                             <Radio value={1}>是</Radio>
-                        </RadioGroup>
+                        </Radio.Group>
                         )}
                 </FormItem>
                 <FormItem
@@ -626,10 +626,10 @@ const UserForm = Form.create()(React.createClass({
                     {getFieldDecorator('celebrity', {
                         initialValue: this.state.celebrity
                     })(
-                        <RadioGroup>
+                        <Radio.Group>
                             <Radio value={0}>否</Radio>
                             <Radio value={1}>是</Radio>
-                        </RadioGroup>
+                        </Radio.Group>
                         )}
                 </FormItem>
                 <FormItem

+ 7 - 0
js/component/manageCenter/userManage/userList.jsx

@@ -37,6 +37,7 @@ const OrgAdd = React.createClass({
             url: globalConfig.context + "/api/admin/addNewUser",
             data: {
                 mobile: this.state.mobile,
+                username:this.state.username,
                 type: 0
             }
         }).done(function (data) {
@@ -72,6 +73,12 @@ const OrgAdd = React.createClass({
                             value={this.state.mobile}
                             onChange={(e) => { this.setState({ mobile: e.target.value }); }} />
                     </div>
+                    <div className='orgAdd-input'>
+                        <span>用户名称:</span>
+                        <Input
+                            value={this.state.username}
+                            onChange={(e) => { this.setState({ username: e.target.value }); }} />
+                    </div>
                 </Modal>
             </div>
         );

+ 5 - 0
js/component/portal/portal.less

@@ -118,6 +118,7 @@
             >button {
                 position: absolute;
                 right: 0;
+                vertical-align: middle;
                 border-top-left-radius: 0;
                 border-bottom-left-radius: 0;
                 border-top-right-radius: 14px;
@@ -125,6 +126,9 @@
                 border: none;
                 height: 28px;
                 background: #58a3ff;
+                >img {
+                    vertical-align: middle;
+                }
             }
         }
     }
@@ -318,6 +322,7 @@
     }
     .interest_list_name {
         position: relative;
+        height: 24px;
         >p {
             font-size: 16px;
             text-align: right;

+ 3 - 10
js/component/portal/search/achievement.jsx

@@ -1,10 +1,9 @@
 import React from 'react';
-import { Rate, Icon, message, Row, Col, Radio, Checkbox, Input, InputNumber, Button, Pagination, Spin, Carousel } from 'antd';
+import { Rate, Icon, message, Row, Col, Radio, Checkbox, Input, InputNumber, Button, Pagination, Spin } from 'antd';
 import '../portal.less';
 
 import logoImg from '../../../../image/logo.png';
 import searchImg from '../../../../image/search.png';
-import slideImg from '../../../../image/slide_img_1.png';
 
 
 import demand_ico_5 from '../../../../image/demand_ico_5.png';
@@ -106,7 +105,7 @@ const Content = React.createClass({
                         });
                     };
                 };
-                this.state.pagination.defaultCurrent = data.data.pageNo;
+                this.state.pagination.pageNo = data.data.pageNo;
                 this.state.pagination.total = data.data.totalCount;
                 this.setState({
                     dataSource: theArr,
@@ -131,7 +130,7 @@ const Content = React.createClass({
             transferPrice: 999,
             pagination: {
                 pageNo: 1,
-                pageSize: 15,
+                pageSize: 12,
                 total: 0
             },
             dataSource: []
@@ -234,12 +233,6 @@ const Content = React.createClass({
                         </Button>
                     </div>
                 </div>
-                <Carousel autoplay className="portal-carousel">
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                </Carousel>
                 <div className="portal-content">
                     <Row className="search-criteria">
                         <Col className="search-title" span={2}>

+ 15 - 12
js/component/portal/search/achievementDesc.jsx

@@ -106,6 +106,7 @@ const AchievementDetail = React.createClass({
                 this.setState({
                     dataSource: theArr
                 });
+                console.log(this.state.logsOrderStatus)
             }.bind(this),
         }).always(function () {
             this.setState({
@@ -440,18 +441,20 @@ const AchievementDetail = React.createClass({
                                 dataSource={this.state.dataSource}
                                 columns={this.state.columns} />
                         </div> : <div></div>}
-                        <div>
-                            {theData.achievementOrderId ? <Button type="ghost" loading={this.state.buttonLoading}
-                                disabled={Boolean(theData.orderStatus != "0")}
-                                onClick={this.cancelSubmit}>我要撤销</Button>
-                                : <Button type="primary" onClick={() => {
-                                    if (window.userData.number) {
-                                        this.setState({ orderVisible: true });
-                                    } else {
-                                        message.warning("请先登录!");
-                                    }
-                                }}>我要购买</Button>}
-                        </div>
+                        {this.state.logsOrderStatus == 6 ? <div>
+                            <Button type="ghost" onClick={() => { this.handleCancel() }}>取消</Button>
+                        </div> : <div>
+                                {theData.achievementOrderId ? <Button type="ghost" loading={this.state.buttonLoading}
+                                    disabled={Boolean(theData.orderStatus != "0")}
+                                    onClick={this.cancelSubmit}>我要撤销</Button>
+                                    : <Button type="primary" onClick={() => {
+                                        if (window.userData.number) {
+                                            this.setState({ orderVisible: true });
+                                        } else {
+                                            message.warning("请先登录!");
+                                        }
+                                    }}>我要购买</Button>}
+                            </div>}
                         <Modal maskClosable={false}
                             title="我要购买"
                             width={600}

+ 10 - 13
js/component/portal/search/demand.jsx

@@ -1,10 +1,9 @@
 import React from 'react';
-import { Carousel, Pagination, Icon, message, Row, Col, Radio, Checkbox, Input, InputNumber, Button, Table, Spin } from 'antd';
+import { Pagination, Icon, message, Row, Col, Radio, Checkbox, Input, InputNumber, Button, Table, Spin } from 'antd';
 import '../portal.less';
 
 import logoImg from '../../../../image/logo.png';
 import searchImg from '../../../../image/search.png';
-import slideImg from '../../../../image/slide_img_1.png';
 
 import demand_sup from '../../../../image/demand_sup.png';
 import demand_ico_5 from '../../../../image/demand_ico_5.png';
@@ -57,7 +56,7 @@ const Content = React.createClass({
                 this.state.budgetCostUpper = null;
                 this.state.sign = 0;
                 break;
-        }
+        };
         $.ajax({
             method: "get",
             dataType: "json",
@@ -69,7 +68,7 @@ const Content = React.createClass({
                 demandType: this.state.demandType == 999 ? null : this.state.demandType,
                 budgetCostLower: this.state.budgetCostLower, //交易金额下限
                 budgetCostUpper: this.state.budgetCostUpper, //交易金额上限
-                industryCategoryA: this.state.fieldA, //技术领域(行业类别A)
+                industryCategoryA: this.state.fieldA || null, //技术领域(行业类别A)
                 industryCategoryB: this.state.fieldB == 999 ? null : this.state.fieldB, //技术领域(行业类别B)
                 sign: this.state.sign
             },
@@ -79,6 +78,7 @@ const Content = React.createClass({
                     if (data.error && data.error.length) {
                         message.warning(data.error[0].message);
                     };
+                    data.data = {};
                 } else {
                     for (let i = 0; i < data.data.list.length; i++) {
                         let thisdata = data.data.list[i];
@@ -102,7 +102,7 @@ const Content = React.createClass({
                         });
                     };
                 };
-                this.state.pagination.defaultCurrent = data.data.pageNo;
+                this.state.pagination.pageNo = data.data.pageNo;
                 this.state.pagination.total = data.data.totalCount;
                 this.setState({
                     dataSource: theArr,
@@ -124,10 +124,13 @@ const Content = React.createClass({
             loading: false,
             showDesc: false,
             industryRadioB: [],
+            sign: 0,
             budgetCost: 999,
+            budgetCostLower: null,
+            budgetCostUpper: null,
             pagination: {
                 pageNo: 1,
-                pageSize: 15,
+                pageSize: 10,
                 total: 0
             },
             dataSource: []
@@ -210,12 +213,6 @@ const Content = React.createClass({
                         </Button>
                     </div>
                 </div>
-                <Carousel autoplay className="portal-carousel">
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                </Carousel>
                 <div className="portal-content">
                     <Row className="search-criteria">
                         <Col className="search-title" span={2}>
@@ -265,7 +262,7 @@ const Content = React.createClass({
                             <span> 到 </span>
                             <InputNumber style={{ width: 80 }} disabled={Boolean(this.state.budgetCost)} onChange={(e) => { this.state.budgetCostUpper = e; }} />
                             <span> 万元</span>
-                            <Button style={{ marginLeft: '20px' }} disabled={Boolean(this.state.budgetCost)} onClick={this.loadData}>确定</Button>
+                            <Button style={{ marginLeft: '20px' }} disabled={Boolean(this.state.budgetCost)} onClick={() => { this.loadData() }}>确定</Button>
                         </Col>
                     </Row>
                     <Row className="search-criteria">

+ 59 - 56
js/component/portal/search/demandDesc.jsx

@@ -84,7 +84,7 @@ const DemandDetail = React.createClass({
                 demandOrderId: id
             },
             success: function (data) {
-                let thisData = data.data, theArr = [];
+                let thisData = data.data, theArr = [], _me = this;
                 if (!thisData) {
                     if (data.error && data.error.length) {
                         message.warning(data.error[0].message);
@@ -97,7 +97,8 @@ const DemandDetail = React.createClass({
                             recordTimeFormattedDate: item.recordTimeFormattedDate,
                             status: item.status,
                             comment: item.comment
-                        })
+                        });
+                        _me.state.logsOrderStatus = item.status;
                     });
                 };
                 this.setState({
@@ -345,61 +346,63 @@ const DemandDetail = React.createClass({
                                 dataSource={this.state.dataSource}
                                 columns={this.state.columns} />
                         </div> : <div></div>}
-                        <div>
-                            {theData.demandOrderId ? <Button type="ghost" loading={this.state.buttonLoading}
-                                disabled={Boolean(theData.orderStatus != "0")}
-                                onClick={this.cancelSubmit}>我要撤销</Button>
-                                : <Button type="primary" onClick={() => {
-                                    if (window.userData.number) {
-                                        this.setState({ orderVisible: true });
-                                    } else {
-                                        message.warning("请先登录!");
-                                    }
-                                }}>我要接单</Button>}
-                            <Modal maskClosable={false}
-                                title="我要接单"
-                                width={600}
-                                style={{ 'top': '160px' }}
-                                visible={this.state.orderVisible}
-                                footer={null}
-                                onCancel={() => { this.setState({ orderVisible: false }); }}>
-                                <Row>
-                                    <Col span={2}>附件 : </Col>
-                                    <Col span={8}>
-                                        <Upload action={globalConfig.context + "/api/user/portal/order/demandUpload"}
-                                            data={{ 'sign': 'demand_order_file' }}
-                                            beforeUpload={beforeUploadFile}
-                                            fileList={this.state.fileList}
-                                            onChange={(info) => {
-                                                if (info.file.status !== 'uploading') {
-                                                    console.log(info.file, info.fileList);
-                                                }
-                                                if (info.file.status === 'done') {
-                                                    if (!info.file.response.error.length) {
-                                                        message.success(`${info.file.name} 文件上传成功!`);
-                                                    } else {
-                                                        message.warning(info.file.response.error[0].message);
-                                                        return;
-                                                    };
-                                                    this.state.enclosureUrl = info.file.response.data;
-                                                } else if (info.file.status === 'error') {
-                                                    message.error(`${info.file.name} 文件上传失败。`);
+                        {this.state.logsOrderStatus == 6 ? <div>
+                            <Button type="ghost" onClick={() => { this.handleCancel() }}>取消</Button>
+                        </div> : <div>
+                                {theData.demandOrderId ? <Button type="ghost" loading={this.state.buttonLoading}
+                                    disabled={Boolean(theData.orderStatus != "0")}
+                                    onClick={this.cancelSubmit}>我要撤销</Button>
+                                    : <Button type="primary" onClick={() => {
+                                        if (window.userData.number) {
+                                            this.setState({ orderVisible: true });
+                                        } else {
+                                            message.warning("请先登录!");
+                                        }
+                                    }}>我要接单</Button>}
+                            </div>}
+                        <Modal maskClosable={false}
+                            title="我要接单"
+                            width={600}
+                            style={{ 'top': '160px' }}
+                            visible={this.state.orderVisible}
+                            footer={null}
+                            onCancel={() => { this.setState({ orderVisible: false }); }}>
+                            <Row>
+                                <Col span={2}>附件 : </Col>
+                                <Col span={8}>
+                                    <Upload action={globalConfig.context + "/api/user/portal/order/demandUpload"}
+                                        data={{ 'sign': 'demand_order_file' }}
+                                        beforeUpload={beforeUploadFile}
+                                        fileList={this.state.fileList}
+                                        onChange={(info) => {
+                                            if (info.file.status !== 'uploading') {
+                                                console.log(info.file, info.fileList);
+                                            }
+                                            if (info.file.status === 'done') {
+                                                if (!info.file.response.error.length) {
+                                                    message.success(`${info.file.name} 文件上传成功!`);
+                                                } else {
+                                                    message.warning(info.file.response.error[0].message);
+                                                    return;
                                                 };
-                                                this.setState({ fileList: info.fileList.slice(-1) });
-                                            }} >
-                                            <Button><Icon type="upload" /> 上传相关资质附件 </Button>
-                                        </Upload>
-                                    </Col>
-                                </Row>
-                                <Row style={{ marginTop: '20px' }} >
-                                    <Col span={2}>备注 : </Col>
-                                    <Col span={22}>
-                                        <Input type="textarea" rows={4} onChange={(e) => { this.state.comment = e.target.value }} />
-                                    </Col>
-                                </Row>
-                                <Button loading={this.state.buttonLoading} style={{ marginTop: '20px' }} type="primary" onClick={this.handleSubmit}>提交</Button>
-                            </Modal>
-                        </div>
+                                                this.state.enclosureUrl = info.file.response.data;
+                                            } else if (info.file.status === 'error') {
+                                                message.error(`${info.file.name} 文件上传失败。`);
+                                            };
+                                            this.setState({ fileList: info.fileList.slice(-1) });
+                                        }} >
+                                        <Button><Icon type="upload" /> 上传相关资质附件 </Button>
+                                    </Upload>
+                                </Col>
+                            </Row>
+                            <Row style={{ marginTop: '20px' }} >
+                                <Col span={2}>备注 : </Col>
+                                <Col span={22}>
+                                    <Input type="textarea" rows={4} onChange={(e) => { this.state.comment = e.target.value }} />
+                                </Col>
+                            </Row>
+                            <Button loading={this.state.buttonLoading} style={{ marginTop: '20px' }} type="primary" onClick={this.handleSubmit}>提交</Button>
+                        </Modal>
                     </Spin>
                 </Modal>
             );

+ 1 - 8
js/component/portal/search/subscriber.jsx

@@ -1,10 +1,9 @@
 import React from 'react';
-import { Carousel, Icon, message, Row, Col, Select, Radio, Checkbox, Input, InputNumber, Button, Table, Spin, Pagination } from 'antd';
+import { Icon, message, Row, Col, Select, Radio, Checkbox, Input, InputNumber, Button, Table, Spin, Pagination } from 'antd';
 import '../portal.less';
 
 import logoImg from '../../../../image/logo.png';
 import searchImg from '../../../../image/search.png';
-import slideImg from '../../../../image/slide_img_1.png';
 
 import { techFieldList, getTechField } from '../../DicTechFieldList';
 import { provinceList, getProvince } from '../../NewDicProvinceList';
@@ -219,12 +218,6 @@ const SubContent = React.createClass({
                         </Button>
                     </div>
                 </div>
-                <Carousel autoplay className="portal-carousel">
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                    <div className="slide-box"><img src={slideImg} alt="" /></div>
-                </Carousel>
                 <div className="portal-content clearfix" >
                     <Row className="search-criteria">
                         <Col className="search-title" span={2}>

+ 7 - 1
js/component/sign/account.jsx

@@ -4,6 +4,8 @@ import "./account.less";
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
 
+import Modal from './modal';
+
 import weixin from '../../../image/weixin-w.png';
 import qq from '../../../image/qq-w.png';
 import weibo from '../../../image/weibo-w.png';
@@ -146,6 +148,9 @@ const LoginContent = Form.create()(React.createClass({
     reloadVCode() {
         this.state.vCodeUrl = globalConfig.context + '/open/getVCode?t=' + Math.random();
     },
+    closeModal() {
+        this.setState({ showDesc: false });
+    },
     render() {
         const { getFieldDecorator } = this.props.form;
         const formItemLayout = {
@@ -251,7 +256,7 @@ const LoginContent = Form.create()(React.createClass({
                             {getFieldDecorator('agreement', {
                                 valuePropName: 'checked',
                             })(
-                                <Checkbox>同意 <a> 阿凡提会员服务协议条款</a></Checkbox>
+                                <Checkbox>同意 <a onClick={() => { this.setState({ showDesc: true }); }}> 阿凡提会员服务协议条款</a></Checkbox>
                                 )}
                         </FormItem>
                         <FormItem {...tailFormItemLayout}>
@@ -274,6 +279,7 @@ const LoginContent = Form.create()(React.createClass({
                         </div>
                     </div>
                 </Spin>
+                <Modal showDesc={this.state.showDesc} closeModal={this.closeModal} />
             </div>
         );
     },

+ 38 - 25
js/component/sign/account.less

@@ -1,33 +1,35 @@
 .account-content {
-    margin-top:50px;
+    margin-top: 50px;
     height: 580px;
     .account-left {
         width: 540px;
         float: left;
         .acc-getVcode {
-             height: 32px;
-             width: 100%;
-             padding-top:32px;
-             position: relative;
-             overflow: hidden;
-             img {
-                 position: absolute;
-                 top: 0;
-                 left: 0;
-                 width: 100%;
-                 height: 32px;
-             }
+            height: 32px;
+            width: 100%;
+            padding-top: 32px;
+            position: relative;
+            overflow: hidden;
+            img {
+                position: absolute;
+                top: 0;
+                left: 0;
+                width: 100%;
+                height: 32px;
+            }
         }
         .ant-form-extra {
-            color:#ccc;
+            color: #ccc;
             span {
                 margin-left: 2px;
             }
         }
         .redFont {
-            color:#ea0862;
+            color: #ea0862;
+        }
+        button {
+            width: 100%;
         }
-        button {width: 100%;}
         .ant-checkbox-wrapper {
             span {
                 line-height: 32px;
@@ -36,14 +38,14 @@
     }
     .account-right {
         width: 400px;
-        float:left;
+        float: left;
         .title {
-            color:#333;
+            color: #333;
         }
         button {
             width: 132px;
             border-radius: 4px;
-            margin-top:10px; 
+            margin-top: 10px;
         }
         .haveID {
             margin-bottom: 60px;
@@ -52,7 +54,7 @@
             margin-bottom: 30px;
             p {
                 img {
-                    width:20px;
+                    width: 20px;
                     vertical-align: middle;
                 }
                 span {
@@ -60,21 +62,32 @@
                 }
             }
             .relateqq {
-                color:#fff;
+                color: #fff;
                 background: #3174c2;
             }
             .relateweibo {
-                color:#fff;
+                color: #fff;
                 background: #ce321c;
             }
             .relateweixin {
-                color:#fff;
+                color: #fff;
                 background: #13bb20;
             }
         }
-        .about{
+        .about {
             padding-right: 40px;
-            p { margin-bottom: 10px;}
+            p {
+                margin-bottom: 10px;
+            }
         }
     }
+}
+
+.ant-modal-content {
+    .ant-modal-title {
+        text-align: center;
+    }
+    .ant-modal-body {
+        padding-right: 0
+    }
 }

+ 7 - 4
js/component/sign/groupAccount.jsx

@@ -3,7 +3,7 @@ import { Form, Input, message, Icon, Cascader, Select, Row, Col, Checkbox, Butto
 import "./group.less";
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
-
+import Modal from './modal';
 
 const FormItem = Form.Item;
 const Option = Select.Option;
@@ -145,6 +145,9 @@ const Group = Form.create()(React.createClass({
     reloadVCode() {
         this.state.vCodeUrl = globalConfig.context + '/open/getVCode?t=' + Math.random();
     },
+    closeModal() {
+        this.setState({ showDesc: false });
+    },
     render() {
         const { getFieldDecorator } = this.props.form;
         const formItemLayout = {
@@ -164,8 +167,7 @@ const Group = Form.create()(React.createClass({
                         {...formItemLayout}
                         label="密码"
                         extra={<span><Icon type="exclamation-circle" /> 建议字母、数字和符号两种以上组合,6-20个字符</span>}
-                        hasFeedback
-                    >
+                        hasFeedback >
                         {getFieldDecorator('password', {
                             rules: [{
                                 required: true, message: '请输入密码!',
@@ -271,13 +273,14 @@ const Group = Form.create()(React.createClass({
                         {getFieldDecorator('agreement', {
                             valuePropName: 'checked',
                         })(
-                            <Checkbox>同意 <a> 阿凡提会员服务协议条款</a></Checkbox>
+                            <Checkbox>同意 <a onClick={() => { this.setState({ showDesc: true }); }}> 阿凡提会员服务协议条款</a></Checkbox>
                             )}
                     </FormItem>
                     <FormItem {...tailFormItemLayout}>
                         <Button type="primary" htmlType="submit" size="large">提 交</Button>
                     </FormItem>
                 </Form>
+                <Modal showDesc={this.state.showDesc} closeModal={this.closeModal} />
             </div>
         );
     },

文件差異過大導致無法顯示
+ 77 - 0
js/component/sign/modal.jsx


+ 18 - 2
js/component/subscriberDetail/content.jsx

@@ -79,6 +79,11 @@ const Content = React.createClass({
                             serialNumber: thisdata.serialNumber,
                             dataCategory: thisdata.dataCategory,
                             name: thisdata.name,
+                            transferPrice:thisdata.transferPrice,
+                            fieldA: thisdata.fieldA,
+                            fieldB: thisdata.fieldB,
+                            bargainingMode: thisdata.bargainingMode,
+                            maturity: thisdata.maturity,
                             keyword: thisdata.keyword,
                             category: thisdata.category,
                             ownerType: thisdata.ownerType,
@@ -128,10 +133,14 @@ const Content = React.createClass({
                             id: thisdata.id,
                             serialNumber: thisdata.serialNumber,
                             dataCategory: thisdata.dataCategory,
+                            problemDes:thisdata.problemDes,
+                            budgetCost:thisdata.budgetCost,
                             name: thisdata.name,
                             keyword: thisdata.keyword,
                             releaseDate: thisdata.releaseDate,
                             demandType: thisdata.demandType,
+                            industryCategoryA:thisdata.industryCategoryA,
+                            industryCategoryB:thisdata.industryCategoryB,
                             validityPeriod: thisdata.validityPeriod,
                             validityPeriodFormattedDate: thisdata.validityPeriodFormattedDate,
                             releaseDateFormattedDate: thisdata.releaseDateFormattedDate
@@ -242,7 +251,7 @@ const Content = React.createClass({
     render() {
         const theData = this.state.data;
         return (
-            <Spin spinning={this.state.loading} style={{ marginBottom: '80px' }}>
+            <Spin spinning={this.state.loading} style={{ marginBottom: '80px' }} >
                 <div className="detail-content">
                     <Row>
                         <Col span={8}>
@@ -394,7 +403,14 @@ const Content = React.createClass({
                                     <span className="detial_sub_icon">
                                         <img src={demand_ico_5} alt="需求" />
                                     </span>
-                                    <span className="detial_sub_title">需求: </span>
+                                    <span className="detial_sub_title">关键词: </span>
+                                    <span className="detial_sub_text">{item.keyword}</span>
+                                </div>
+                                <div className="detial_sub">
+                                    <span className="detial_sub_icon">
+                                        <img src={demand_ico_5} alt="需求" />
+                                    </span>
+                                    <span className="detial_sub_title">需求描述: </span>
                                     <span className="detial_sub_text">{item.problemDes}</span>
                                 </div>
                                 <div className="detial_sub">

+ 3 - 0
js/component/subscriberDetail/detail.less

@@ -65,6 +65,9 @@
             line-height: 24px;
         }
     }
+    .ant-spin-nested-loading {
+        margin-bottom: 80px;
+    }
     .detail-content {
         width: 600px;
         margin: 20px auto;

+ 24 - 17
js/component/tools.js

@@ -293,31 +293,38 @@ module.exports = {
     companySearch(input, option) {
         return option.props.children.indexOf(input) >= 0
     },
-    getInUrgentTime(date, inUrgent,callback) {
-        let now = new Date(date);
+    getVacations(ccccc){
+        let now = new Date();
         let theYear = now.getFullYear();
         $.ajax({
-            type: "POST",
+            type: "get",
             dataType: "json",
             crossDomain: false,
             url: globalConfig.context + '/open/html/json/vacations' + theYear,
-            success: (result)=>{
-                if (!data.data) {
-                    if ( data.error && data.error.length ) {
-                        message.warning(data.error[0].message);
-                    };
-                } else {
-                    for (var i = 1; i <= inUrgent;) {
-                        now.setDate(now.getDate() + 1);
-                        if (!vocations[getKey(now)]) {
-                            i++;
-                        };
-                    };
-                    callback(now);
+            success: (data)=>{
+                if (data) {
+                   ccccc(data);
                 };
             }
         });
-
+    },
+    getInUrgentTime(date, inUrgent,vocations) {
+        if ( vocations && vocations.length ){
+            let now = new Date(date),addNum = 0;
+            for (var i = 1; i <= inUrgent;) {
+                now.setDate(now.getDate() + 1);
+                let thebool = true;
+                vocations.map((item)=>{
+                    if ( item == getKey(now)) {
+                        thebool= false;
+                    }
+                });
+                if ( thebool ) {
+                    i++
+                };
+            };
+            return now;
+        };
         function getKey(date) {
             var year = date.getFullYear(),
                 month = date.getMonth() + 1,

+ 2 - 2
package.json

@@ -1,6 +1,6 @@
 {
   "name": "afanti",
-  "version": "1.0.29",
+  "version": "1.0.31",
   "description": "",
   "main": "index.js",
   "scripts": {
@@ -45,7 +45,7 @@
     "webpack-dev-server": "^2.4.1"
   },
   "dependencies": {
-    "antd": "^2.5.2",
+    "antd": "^2.7.4",
     "echarts": "^3.6.2",
     "echarts-for-react": "^1.4.4",
     "html2canvas": "^0.5.0-beta4",

+ 8 - 1
webpack.config.js

@@ -242,6 +242,13 @@ module.exports = (function () {
         resolve: {
             extensions: ['.js', '.jsx']
         },
-        plugins: plugins
+        plugins: plugins,
+        devServer: {
+            disableHostCheck: true,
+            allowedHosts: ['aft.hnzhiming.com', 'afts.hnzhiming.com'],
+            headers: {
+                "Access-Control-Allow-Origin": "*"
+            }
+        }
     };
 })();