yee 7 years ago
parent
commit
3ba5c23509

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

@@ -4,8 +4,9 @@ import moment from 'moment';
 import './techDemand.less';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
+import { getTechField } from '../../DicTechFieldList.js';
 import { IndustryObject, getIndustryCategory } from '../../DicIndustryList.js';
-import { beforeUploadFile, splitUrl, companySearch, getTechField, getDemandType, getAchievementCategory } from '../../tools.js';
+import { beforeUploadFile, splitUrl, companySearch, getDemandType, getAchievementCategory } from '../../tools.js';
 
 const KeyWordTagGroup = React.createClass({
     getInitialState() {

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

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

+ 2 - 1
js/component/manageCenter/demand/techDemandDesc.jsx

@@ -5,7 +5,8 @@ import './techDemand.less';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import { IndustryObject, getIndustryCategory } from '../../DicIndustryList.js';
-import { beforeUploadFile, getTechAuditStatus, splitUrl, companySearch, getTechField, getDemandType, getAchievementCategory } from '../../tools.js';
+import { getTechField } from '../../DicTechFieldList.js';
+import { beforeUploadFile, getTechAuditStatus, splitUrl, companySearch, getDemandType, getAchievementCategory } from '../../tools.js';
 import throttle from '../../throttle.js';
 
 const KeyWordTagGroup = React.createClass({

+ 250 - 0
js/component/manageCenter/idea/activity/activityUserList.jsx

@@ -0,0 +1,250 @@
+import React from 'react';
+import { Icon, Button, Spin, message, Table, Input, Tabs, Select } from 'antd';
+//import { getActivityForm, getActivityType } from '../../../tools';
+//import { activityForm, activityType } from '../../../dataDic';
+//import moment from 'moment';
+import ajax from 'jquery/src/ajax/xhr.js';
+import $ from 'jquery/src/ajax';
+
+const ActivityTable = React.createClass({
+    loadData(pageNo) {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + this.props.apiUrl,
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                activityName: this.state.searchName,
+                mobile: this.state.searchMobile,
+                username: this.state.searchUsername,
+                unitName: this.state.searchUnitName,
+                number: this.state.searchNumber,
+            },
+            success: function (data) {
+                let theArr = [];
+                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];
+                        theArr.push({
+                            key: i,
+                            aid: thisdata.aid,
+                            uid: thisdata.uid,
+                            createTime: thisdata.createTime,
+                            lastUpdateTime: thisdata.lastUpdateTime,
+                            activityName: thisdata.activityName,
+                            number: thisdata.number,
+                            mobile: thisdata.mobile,
+                            username: thisdata.username,
+                            unitName: thisdata.unitName,
+                            theName: thisdata.username || thisdata.unitName,
+                            startTime: thisdata.startTime,
+                            endTime: thisdata.endTime,
+                            enrollDeadline: thisdata.enrollDeadline,
+                            createTimeFormattedDate: thisdata.createTimeFormattedDate,
+                            enrollDeadlineFormattedDate: thisdata.enrollDeadlineFormattedDate,
+                            startTimeFormattedDate: thisdata.startTimeFormattedDate,
+                            endTimeFormattedDate: thisdata.endTimeFormattedDate,
+                            lastUpdateTimeFormattedDate: thisdata.lastUpdateTimeFormattedDate,
+                        });
+                    };
+                    this.state.pagination.current = data.data.pageNo;
+                    this.state.pagination.total = data.data.totalCount;
+                };
+                this.setState({
+                    tableData: theArr,
+                    pagination: this.state.pagination
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    getInitialState() {
+        return {
+            loading: false,
+            visible: false,
+            selectedRowKeys: [],
+            selectedRows: [],
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadData(page);
+                }.bind(this),
+                showTotal: function (total) {
+                    return '共' + total + '条数据';
+                }
+            },
+            columns: [
+                {
+                    title: '报名用户名称',
+                    dataIndex: 'theName',
+                    key: 'theName'
+                }, {
+                    title: '活动名称',
+                    dataIndex: 'activityName',
+                    key: 'activityName',
+                }, {
+                    title: '阿凡提号',
+                    dataIndex: 'number',
+                    key: 'number'
+                }, {
+                    title: '联系方式',
+                    dataIndex: 'mobile',
+                    key: 'mobile'
+                }, {
+                    title: '首次报名/咨询时间',
+                    dataIndex: 'createTimeFormattedDate',
+                    key: 'createTimeFormattedDate'
+                }, {
+                    title: '最近一次报名/咨询时间',
+                    dataIndex: 'lastUpdateTimeFormattedDate',
+                    key: 'lastUpdateTimeFormattedDate'
+                }, {
+                    title: '活动截止报名时间',
+                    dataIndex: 'enrollDeadlineFormattedDate',
+                    key: 'enrollDeadlineFormattedDate'
+                }
+            ],
+            tableData: []
+        };
+    },
+    componentWillMount() {
+        this.loadData();
+    },
+    delectRow() {
+        let deletedIds = [];
+        for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
+            let rowItem = this.state.selectedRows[idx];
+            if (rowItem.id) {
+                deletedIds.push(rowItem.id)
+            };
+        };
+        this.setState({
+            selectedRowKeys: [],
+            loading: deletedIds.length > 0
+        });
+        $.ajax({
+            method: "POST",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/activity/delete",
+            data: {
+                ids: deletedIds
+            }
+        }).done(function (data) {
+            if (data.error && data.error.length) {
+                message.warning(data.error[0].message);
+            } else {
+                message.success('删除成功!');
+            };
+            this.setState({
+                loading: false,
+            });
+            this.loadData();
+        }.bind(this));
+    },
+    reset() {
+        this.state.searchName = undefined;
+        this.state.searchMobile = undefined;
+        this.state.searchUsername = undefined;
+        this.state.searchUnitName = undefined;
+        this.state.searchNumber = undefined;
+        this.loadData();
+    },
+    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-warp">
+                <div className="admin-content-search">
+                    <Input placeholder="活动名称" style={{ width: 200 }}
+                        value={this.state.searchName}
+                        onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
+                    <Input placeholder="报名人电话" style={{ width: 200 }}
+                        value={this.state.searchMobile}
+                        onChange={(e) => { this.setState({ searchMobile: e.target.value }); }} />
+                    {(() => {
+                        switch (this.props.tableType) {
+                            case 'user':
+                                return <Input placeholder="报名人名称" style={{ width: 200 }}
+                                    value={this.state.searchUsername}
+                                    onChange={(e) => { this.setState({ searchUsername: e.target.value }); }} />
+                            case 'org':
+                                return <Input placeholder="报名人名称" style={{ width: 200 }}
+                                    value={this.state.searchUnitName}
+                                    onChange={(e) => { this.setState({ searchUnitName: e.target.value }); }} />
+                        };
+                    })()}
+                    <Input placeholder="报名人阿凡提号" style={{ width: 200 }}
+                        value={this.state.searchNumber}
+                        onChange={(e) => { this.setState({ searchNumber: e.target.value }); }} />
+                    <Button type="primary" onClick={() => { this.loadData() }}>搜索</Button>
+                    <Button onClick={this.reset}>重置</Button>
+                    <Button type='danger' disabled={!hasSelected} onClick={this.delectRow}>
+                        删除<Icon type="minus" />
+                    </Button>
+                </div>
+                <Spin spinning={this.state.loading}>
+                    <Table className="no-all-select"
+                        columns={this.state.columns}
+                        dataSource={this.state.tableData}
+                        pagination={this.state.pagination}
+                        rowSelection={rowSelection} />
+                </Spin>
+            </div>
+        )
+    }
+});
+
+const ActivityUserList = React.createClass({
+    getInitialState() {
+        return {
+            userApiUrl: '/api/admin/activityUser/userList',
+            orgApiUrl: '/api/admin/activityUser/orgList',
+            tableType: 'user'
+        };
+    },
+    tabChange(key) {
+        this.setState({ tableType: key });
+    },
+    render() {
+        return (
+            <div className="admin-content" >
+                <div className="admin-content-title">
+                    <span>活动圈报名管理</span>
+                </div>
+                <Tabs activeKey={this.state.tableType} onChange={this.tabChange}>
+                    <TabPane tab="个人报名管理" key="user">
+                        <ActivityTable apiUrl={this.state.userApiUrl} tableType={'user'} />
+                    </TabPane>
+                    <TabPane tab="组织报名管理" key="org">
+                        <ActivityTable apiUrl={this.state.orgApiUrl} tableType={'org'} />
+                    </TabPane>
+                </Tabs>
+            </div >
+        );
+    }
+});
+export default ActivityUserList;

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

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

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

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