yee 7 years ago
parent
commit
51c21d52e6

+ 16 - 0
js/admin/idea.js

@@ -0,0 +1,16 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import '../../css/base.less';
+
+import TopTab from '../component/manageCenter/topTab.jsx';
+import Footer from '../component/manageCenter/bottom.jsx';
+import Content from '../component/manageCenter/idea/content.jsx';
+
+ReactDOM.render(
+    <div className="wrap clearfix">
+        <TopTab active={'idea'}/>
+        <Content />
+        <Footer />
+    </div>,
+    document.getElementById('root')
+)

+ 1 - 2
js/component/account/index/normal.jsx

@@ -83,7 +83,6 @@ const Content = React.createClass({
                             <p><a href={globalConfig.context + "/user/account/set.html"}>填写完整资料</a>,有助于提高您的资信</p>
                             <p><a href={globalConfig.context + "/portal/search/achievement.html"}>成果搜索</a></p>
                             <p><a href={globalConfig.context + "/portal/search/demand.html"}>需求搜索</a></p>
-                            <p><a href={globalConfig.context + "/portal/search/subscriber.html"}>用户搜索</a></p>
                             <p className="userdata-relate" style={{ 'display': 'none' }}>
                                 <Button className="relateqq"><img src={qq} alt="" /> QQ账号登录</Button>
                                 <Button className="relateweibo"><img src={weibo} alt="" />微博账号登录</Button>
@@ -97,7 +96,7 @@ const Content = React.createClass({
                             <li>专利:<a href={globalConfig.context + "/user/account/services.html#patent"}>{this.state.patentNum || 0}</a> 项</li>
                             <li>软著:<a href={globalConfig.context + "/user/account/services.html#copyright"}>{this.state.copyrightNum || 0}</a> 项</li>
                             <li>知识产权:<a href={globalConfig.context + "/user/account/services.html#cognizance"}>{this.state.intellectualPropertyNum || 0}</a> 项</li>
-                            <li>科技项目:<a href={globalConfig.context + "/user/account/services.html#technology"}>{this.state.techProjectNum || 0}</a> 项</li>
+                            <li>科技项目:<a href={globalConfig.context + "/user/account/services.html#intellectual"}>{this.state.techProjectNum || 0}</a> 项</li>
                             <li>技术成果:<a href={globalConfig.context + "/user/account/achievement.html#techAchievement"}>{this.state.achievementNum || 0}</a> 项</li>
                             <li>发布需求:<a href={globalConfig.context + "/user/account/demand.html#techDemand"}>{this.state.demandNum || 0}</a> 项</li>
                         </ul>

+ 102 - 0
js/component/manageCenter/idea/bigShot/star.jsx

@@ -0,0 +1,102 @@
+import React from 'react';
+import { Icon, Button, Spin, message, Table } from 'antd';
+import ajax from 'jquery/src/ajax/xhr.js';
+import $ from 'jquery/src/ajax';
+
+const Star = React.createClass({
+    loadData() {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '',
+            data: {
+            },
+            success: function (data) {
+                let theArr = [];
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    getInitialState() {
+        return {
+            loading: false,
+            selectedRowKeys: [],
+            selectedRows: [],
+            columns: [
+                {
+                    title: '姓名',
+                    dataIndex: 'name',
+                    key: 'name',
+                }, {
+                    title: '从事领域',
+                    dataIndex: 'field',
+                    key: 'field',
+                }, {
+                    title: '职称名字',
+                    dataIndex: 'keyword',
+                    key: 'keyword',
+                }, {
+                    title: '工作单位',
+                    dataIndex: 'unit',
+                    key: 'unit',
+                }
+            ],
+            dataSource: []
+        };
+    },
+    componentWillMount() {
+        this.loadData();
+    },
+    componentWillReceiveProps(nextProps) {
+    },
+    render() {
+        const rowSelection = {
+            selectedRowKeys: this.state.selectedRowKeys,
+            onChange: (selectedRowKeys, selectedRows) => {
+                this.setState({
+                    selectedRows: selectedRows.slice(-1),
+                    selectedRowKeys: selectedRowKeys.slice(-1)
+                });
+            }
+        };
+        const hasSelected = this.state.selectedRowKeys.length > 0;
+        return (
+            <div className="admin-content" >
+                <div className="admin-content-title">科技明星管理</div>
+                <div className="admin-content-warp">
+                    <div>专家列表</div>
+                    <div className="user-search">
+                        <Input placeholder="编号"
+                            value={this.state.searchNumber}
+                            onChange={(e) => { this.setState({ searchNumber: e.target.value }); }} />
+                        <Input placeholder="用户名"
+                            value={this.state.username}
+                            onChange={(e) => { this.setState({ username: e.target.value }); }} />
+                        <Input placeholder="职称名字"
+                            value={this.state.keyword}
+                            onChange={(e) => { this.setState({ keyword: e.target.value }); }} />
+                        <Input placeholder="工作单位"
+                            value={this.state.searchName}
+                            onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
+                        <Button type="primary" onClick={this.search}>搜索</Button>
+                        <Button onClick={this.reset}>重置</Button>
+                    </div>
+                    <Spin spinning={this.state.loading}>
+                        <Table columns={this.state.columns}
+                            dataSource={this.state.dataSource}
+                            pagination={this.state.pagination} />
+                    </Spin>
+                </div>
+            </div >
+        );
+    }
+});
+
+export default Star;

+ 43 - 0
js/component/manageCenter/idea/content.jsx

@@ -0,0 +1,43 @@
+import React, { Component } from 'react';
+import '../content.less';
+import LeftTab from './leftTab';
+
+
+class Content extends Component {
+    constructor() {
+        super();
+        this.state = {
+            loading: false,
+            component: 'div',
+        };
+    }
+    componentWillMount() {
+        if (window.location.hash) {
+            this.getKey(window.location.hash.substr(1));
+        } else {
+            this.getKey("star");
+        };
+    }
+    getKey(key) {
+        switch (key) {
+            case 'star':
+                require.ensure([], () => {
+                    const Star = require('./bigShot/star').default;
+                });
+                break;
+        };
+        window.location.hash = key;
+    }
+    render() {
+        return (
+            <div className="manage-content">
+                <LeftTab handlekey={this.getKey.bind(this)} />
+                <div className="content-right">
+                    <this.state.component />
+                </div>
+            </div>
+        )
+    }
+}
+
+export default Content;

+ 59 - 0
js/component/manageCenter/idea/leftTab.jsx

@@ -0,0 +1,59 @@
+import React from 'react';
+import { Menu, Icon } from 'antd';
+import '../leftTab.less';
+const SubMenu = Menu.SubMenu;
+const MenuItemGroup = Menu.ItemGroup;
+
+
+const LeftTab = React.createClass({
+    getInitialState() {
+        return {
+            current: 'star',
+            subKey: 'sub1',
+            keyList: [
+                { key: 'sub1', value: ['star','lecture'] },
+            ]
+        };
+    },
+    handleClick(e) {
+        this.props.handlekey(e.key);
+        this.setState({
+            current: e.key,
+        });
+    },
+    componentWillMount() {
+        const _me = this;
+        if (window.location.hash) {
+            let theKey = window.location.hash.substr(1);
+            this.state.keyList.map(function (item1) {
+                item1.value.map(function (item2) {
+                    if (theKey == item2) {
+                        _me.state.subKey = item1.key
+                    };
+                });
+            });
+            this.state.current = theKey;
+        };
+    },
+    render() {
+        return (
+            <Menu onClick={this.handleClick}
+                selectedKeys={[this.state.current]}
+                defaultOpenKeys={[this.state.subKey]}
+                mode="vertical"
+                className="account-left"
+                mode="inline" >
+                <SubMenu key="sub1" title={<span>大咖说</span>}>
+                    <Menu.Item key="star">
+                        科技明星
+                    </Menu.Item>
+                    <Menu.Item key="lecture">
+                        科技讲堂
+                    </Menu.Item>
+                </SubMenu>
+            </Menu>
+        );
+    }
+});
+
+export default LeftTab;

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

@@ -510,11 +510,11 @@ const CognizanceDescFrom = Form.create()(React.createClass({
                         <div className="clearfix">
                             <div className="half-item">
                                 <span className="item-title">净资产增长率: </span>
-                                <span>{(this.state.netAssetRate * 100).toFixed(2) + '%'}</span>
+                                <span>{isNaN(this.state.netAssetRate) ? '数据错误无法计算' : (this.state.netAssetRate * 100).toFixed(2) + '%'}</span>
                             </div>
                             <div className="half-item">
                                 <span className="item-title">销售收入增长率: </span>
-                                <span>{(this.state.salesRevenueRate * 100).toFixed(2) + '%'}</span>
+                                <span>{isNaN(this.state.salesRevenueRate) ? '数据错误无法计算' : (this.state.salesRevenueRate * 100).toFixed(2) + '%'}</span>
                             </div>
                         </div>
                         <div className="clearfix">

+ 1 - 1
js/component/manageCenter/topTab.jsx

@@ -495,7 +495,7 @@ const TopTab = React.createClass({
                         <Col style={{ display: window.showServices ? 'block' : 'none' }} className={this.props.active === 'services' ? 'active' : ''} span={3}><a href={globalConfig.context + "/admin/servicesManage/contract.html"}>科技服务管理</a></Col>
                         <Col style={{ display: window.showAchievement ? 'block' : 'none' }} className={this.props.active === 'achievement' ? 'active' : ''} span={3}><a href={globalConfig.context + "/admin/achievement.html"}>科技成果管理</a></Col>
                         <Col style={{ display: window.showDemand ? 'block' : 'none' }} className={this.props.active === 'demand' ? 'active' : ''} span={3}><a href={globalConfig.context + "/admin/demand.html"}>科技需求管理</a></Col>
-                        <Col style={{ display: window.showIdea ? 'block' : 'none' }} className={this.props.active === 'idea' ? 'active' : ''} span={3}><a href="">科技思想管理</a></Col>
+                        <Col style={{ display: window.showIdea ? 'block' : 'none' }} className={this.props.active === 'idea' ? 'active' : ''} span={3}><a href={globalConfig.context + "/admin/idea.html"}>科技思想管理</a></Col>
                         <Col style={{ display: window.showSystem ? 'block' : 'none' }} className={this.props.active === 'system' ? 'active' : ''} span={3}><a href={globalConfig.context + "/admin/set.html"}>系统设置</a></Col>
                     </Row>
                 </div>

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

@@ -187,7 +187,7 @@ const CustomerList = React.createClass({
                 auditStatus: this.state.searchAuditStatus
             },
             success: function (data) {
-                if (!data.data) {
+                if (!data.data || !data.data.list) {
                     if (data.error && data.error.length) {
                         message.warning(data.error[0].message);
                     }

+ 21 - 19
js/component/manageCenter/userManage/orgList.jsx

@@ -108,25 +108,27 @@ const OrgList = React.createClass({
                 auditStatus: this.state.searchAuditStatus
             },
             success: function (data) {
-                if (data.error.length || !data.data || !data.data.list) {
-                    message.warning(data.error[0].message);
-                    return;
-                }
-                for (let i = 0; i < data.data.list.length; i++) {
-                    let thisdata = data.data.list[i];
-                    this.state.data.push({
-                        key: i,
-                        id: thisdata.id,
-                        mobile: thisdata.mobile,
-                        email: thisdata.email,
-                        createTime: thisdata.createTime,
-                        aftUsername: thisdata.aftUsername,
-                        number: thisdata.number,
-                        orgAuditStatus: thisdata.orgAuditStatus,
-                        createTimeFormattedDate: thisdata.createTimeFormattedDate,
-                        adminName: thisdata.adminName,
-                        unitName: thisdata.unitName
-                    });
+                if (!data.data || !data.data.list) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                } else {
+                    for (let i = 0; i < data.data.list.length; i++) {
+                        let thisdata = data.data.list[i];
+                        this.state.data.push({
+                            key: i,
+                            id: thisdata.id,
+                            mobile: thisdata.mobile,
+                            email: thisdata.email,
+                            createTime: thisdata.createTime,
+                            aftUsername: thisdata.aftUsername,
+                            number: thisdata.number,
+                            orgAuditStatus: thisdata.orgAuditStatus,
+                            createTimeFormattedDate: thisdata.createTimeFormattedDate,
+                            adminName: thisdata.adminName,
+                            unitName: thisdata.unitName
+                        });
+                    };
                     this.state.pagination.current = data.data.pageNo;
                     this.state.pagination.total = data.data.totalCount;
                 };

+ 1 - 1
js/component/portal/search/achievement.jsx

@@ -262,7 +262,7 @@ const Content = React.createClass({
                         </Col>
                         <Col span={10}>
                             <div className="nav-search">
-                                <Input onChange={(e) => { this.state.keyword = e.target.value; }} />
+                                <Input placeholder="请输入关键词" onChange={(e) => { this.state.keyword = e.target.value; }} />
                                 <Button onClick={() => { this.loadData() }}>
                                     <img src={searchImg} alt="" />
                                 </Button>

+ 9 - 2
js/component/portal/search/demand.jsx

@@ -239,7 +239,7 @@ const Content = React.createClass({
                         </Col>
                         <Col span={6}>
                             <div className="nav-search">
-                                <Input onChange={(e) => { this.state.keyword = e.target.value; }} />
+                                <Input placeholder="请输入关键词" onChange={(e) => { this.state.keyword = e.target.value; }} />
                                 <Button onClick={() => { this.loadData() }}>
                                     <img src={searchImg} alt="" />
                                 </Button>
@@ -265,7 +265,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">

+ 7 - 0
webpack.config.js

@@ -182,6 +182,13 @@ module.exports = (function () {
             template: './template/template.html',
             chunks: ['admin/set', 'vendors']
         }),
+        //admin-idea
+        new HtmlWebpackPlugin({
+            title: '管理员-科技思想管理',
+            filename: 'admin/idea.html',
+            template: './template/template.html',
+            chunks: ['admin/idea', 'vendors']
+        }),
 
         //portal 门户
         new HtmlWebpackPlugin({

+ 4 - 0
webpack/entry.config.js

@@ -110,6 +110,10 @@ module.exports = {
       'webpack/hot/only-dev-server',
       './js/admin/set.js'
     ],
+    'admin/idea': ['webpack-dev-server/client?http://127.0.0.1:80', // WebpackDevServer host and port
+      'webpack/hot/only-dev-server',
+      './js/admin/idea.js'
+    ],
     //admin-servicesManage
     'admin/servicesManage/contract': ['webpack-dev-server/client?http://127.0.0.1:80', // WebpackDevServer host and port
       'webpack/hot/only-dev-server',