123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421 |
- import React from 'react';
- import { Spin, Button, Tabs, Table } from 'antd';
- import ajax from 'jquery/src/ajax/xhr.js'
- import $ from 'jquery/src/ajax';
- import DemandDesc from '../../portal/search/demandDesc';
- import AchievementDesc from '../../portal/search/achievementDesc';
- import { getProvince } from '../../NewDicProvinceList';
- import avatarImg from '../../../../image/avatarImg.png';
- import './content.less';
- const TabPane = Tabs.TabPane;
- const Content = React.createClass({
- achievementLoadData(pageNo) {
- this.state.data = [];
- this.setState({
- loading: true
- });
- $.ajax({
- method: "get",
- dataType: "json",
- crossDomain: false,
- url: globalConfig.context + "/api/user/portal/achievementInterestList",
- data: {
- pageNo: pageNo || 1,
- pageSize: this.state.achievementPagination.pageSize
- },
- 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,
- interestId: thisdata.id,
- id: thisdata.achievementId,
- createTime: thisdata.createTime,
- name: thisdata.name,
- serialNumber: thisdata.serialNumber,
- keyword: thisdata.keyword,
- deletedSign: thisdata.deletedSign,
- auditStatus: thisdata.auditStatus,
- createTimeFormattedDate: thisdata.createTimeFormattedDate
- });
- };
- }
- this.state.achievementPagination.current = data.data.pageNo;
- this.state.achievementPagination.total = data.data.totalCount;
- this.setState({
- achievementDataSource: theArr,
- achievementPagination: this.state.achievementPagination
- });
- }.bind(this),
- }).always(function () {
- this.setState({
- loading: false
- });
- }.bind(this));
- },
- demandLoadData(pageNo) {
- this.state.data = [];
- this.setState({
- loading: true
- });
- $.ajax({
- method: "get",
- dataType: "json",
- crossDomain: false,
- url: globalConfig.context + "/api/user/portal/demandInterestList",
- data: {
- pageNo: pageNo || 1,
- pageSize: this.state.demandPagination.pageSize
- },
- 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,
- interestId: thisdata.id,
- id: thisdata.demandId,
- createTime: thisdata.createTime,
- keyword: thisdata.keyword,
- name: thisdata.name,
- status: thisdata.status,
- serialNumber: thisdata.serialNumber,
- deletedSign: thisdata.deletedSign,
- auditStatus: thisdata.auditStatus,
- createTimeFormattedDate: thisdata.createTimeFormattedDate
- });
- };
- }
- this.state.demandPagination.current = data.data.pageNo;
- this.state.demandPagination.total = data.data.totalCount;
- this.setState({
- demandDataSource: theArr,
- demandPagination: this.state.demandPagination
- });
- }.bind(this),
- }).always(function () {
- this.setState({
- loading: false
- });
- }.bind(this));
- },
- subscriberLoadData(pageNo) {
- this.state.data = [];
- this.setState({
- loading: true
- });
- $.ajax({
- method: "get",
- dataType: "json",
- crossDomain: false,
- url: globalConfig.context + "/api/user/interest/interestUserList",
- data: {
- pageNo: pageNo || 1,
- pageSize: this.state.subscriberPagination.pageSize
- },
- 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,
- interestId: thisdata.interestId, //关注ID /api/user/interest/interestUser接口 interestId
- uid: thisdata.uid, //被关注人ID
- username: thisdata.username, //个人用户名称
- unitName: thisdata.unitName, //组织用户名称
- name: thisdata.type == 0 ? thisdata.username : thisdata.unitName,
- userProvince: thisdata.userProvince, //个人用户省份
- orgProvince: thisdata.orgProvince, //组织用户省份
- province: thisdata.type == 0 ? thisdata.userProvince : thisdata.orgProvince,
- createTime: thisdata.createTime,
- type: thisdata.type, //被关注人类型 (0--个人用户,1--组织用户)
- demandNum: thisdata.demandNum, //科技需求数量
- achievementNum: thisdata.achievementNum, //科技成果数量
- personPortraitUrl: thisdata.personPortraitUrl,// 个人用户头像URL
- logoUrl: thisdata.logoUrl, //公司LOGO URL
- avaterUrl: thisdata.type == 0 ? thisdata.personPortraitUrl : thisdata.logoUrl,
- createTimeFormattedDate: thisdata.createTimeFormattedDate, //关注时间
- });
- };
- }
- this.state.subscriberPagination.current = data.data.pageNo;
- this.state.subscriberPagination.total = data.data.totalCount;
- this.setState({
- subscriberDataSource: theArr,
- subscriberPagination: this.state.subscriberPagination
- });
- }.bind(this),
- }).always(function () {
- this.setState({
- loading: false
- });
- }.bind(this));
- },
- getInitialState() {
- return {
- loading: false,
- achievementShowDesc: false,
- achievementPagination: {
- defaultCurrent: 1,
- defaultPageSize: 10,
- showQuickJumper: true,
- pageSize: 10,
- onChange: function (page) {
- this.achievementLoadData(page);
- }.bind(this),
- showTotal: function (total) {
- return '共' + total + '条数据';
- }
- },
- achievementColumns: [
- {
- title: '编号',
- dataIndex: 'serialNumber',
- key: 'serialNumber',
- }, {
- title: '成果名称',
- dataIndex: 'name',
- key: 'name',
- }, {
- title: '关键字',
- dataIndex: 'keyword',
- key: 'keyword',
- }, {
- title: '状态',
- dataIndex: 'auditStatus',
- key: 'auditStatus',
- render: (text, record) => {
- if (record.deletedSign == 1) {
- return "已删除"
- } else if (record.auditStatus != 3) {
- return "已下架"
- } else {
- return "正常"
- }
- }
- }, {
- title: '关注时间',
- dataIndex: 'createTimeFormattedDate',
- key: 'createTimeFormattedDate',
- }
- ],
- achievementDataSource: [],
- demandShowDesc: false,
- demandPagination: {
- defaultCurrent: 1,
- defaultPageSize: 10,
- showQuickJumper: true,
- pageSize: 10,
- onChange: function (page) {
- this.demandLoadData(page);
- }.bind(this),
- showTotal: function (total) {
- return '共' + total + '条数据';
- }
- },
- demandColumns: [
- {
- title: '编号',
- dataIndex: 'serialNumber',
- key: 'serialNumber',
- }, {
- title: '需求名称',
- dataIndex: 'name',
- key: 'name',
- }, {
- title: '关键字',
- dataIndex: 'keyword',
- key: 'keyword',
- }, {
- title: '状态',
- dataIndex: 'auditStatus',
- key: 'auditStatus',
- render: (text, record) => {
- if (record.deletedSign == 1) {
- return "已删除"
- } else if (record.auditStatus != 3) {
- return "已下架"
- } else if (record.status == 0) {
- return "未解决"
- } else if (record.status == 1) {
- return "已解决"
- }
- }
- }, {
- title: '关注时间',
- dataIndex: 'createTimeFormattedDate',
- key: 'createTimeFormattedDate',
- }
- ],
- demandDataSource: [],
- subscriberShowDesc: false,
- subscriberPagination: {
- defaultCurrent: 1,
- defaultPageSize: 10,
- showQuickJumper: true,
- pageSize: 10,
- onChange: function (page) {
- this.subscriberLoadData(page);
- }.bind(this),
- showTotal: function (total) {
- return '共' + total + '条数据';
- }
- },
- subscriberColumns: [
- {
- title: null,
- dataIndex: 'avaterUrl',
- key: 'avaterUrl',
- width: 120,
- render: text => {
- return <div className="avatar-box">
- <img src={text ? (globalConfig.avatarHost + '/upload' + text) : avatarImg} alt="" />
- </div>
- }
- }, {
- title: '名称',
- dataIndex: 'name',
- key: 'name',
- }, {
- title: '地区',
- dataIndex: 'province',
- key: 'province',
- render: (text) => { return getProvince(text); }
- }, {
- title: '类型',
- dataIndex: 'type',
- key: 'type',
- render: (text) => {
- if (text == 0) {
- return "个人用户"
- } else if (text == 1) {
- return "组织用户"
- }
- }
- }, {
- title: '科技成果数量',
- dataIndex: 'achievementNum',
- key: 'achievementNum',
- }, {
- title: '科技需求数量',
- dataIndex: 'demandNum',
- key: 'demandNum',
- }, {
- title: '关注时间',
- dataIndex: 'createTimeFormattedDate',
- key: 'createTimeFormattedDate',
- }
- ],
- subscriberDataSource: [],
- };
- },
- componentWillMount() {
- this.achievementLoadData();
- },
- tabChange(key) {
- if (key == 1) {
- this.achievementLoadData();
- } else if (key == 2) {
- this.demandLoadData();
- } else if (key == 3) {
- this.subscriberLoadData();
- }
- },
- demandRowClick(record, index) {
- this.state.demandRowData = record;
- if (record.deletedSign !== 1 && record.auditStatus == 3) {
- this.setState({
- demandShowDesc: true
- });
- };
- },
- achievementRowClick(record, index) {
- this.state.achievementRowData = record;
- if (record.deletedSign !== 1 && record.auditStatus == 3) {
- this.setState({
- achievementShowDesc: true
- });
- };
- },
- subscriberRowClick(record, index) {
- window.open(globalConfig.context + '/user/subscriberDetail.html?rid=' + record.uid + '&type=' + record.type);
- },
- demandCloseDesc(e) {
- this.setState({
- demandShowDesc: e
- });
- this.demandLoadData();
- },
- achievementCloseDesc(e) {
- this.setState({
- achievementShowDesc: e
- });
- this.achievementLoadData();
- },
- render() {
- return (
- <div className="collection">
- <Spin spinning={this.state.loading} >
- <Tabs defaultActiveKey="1" onChange={this.tabChange}>
- <TabPane tab="我感兴趣的成果" key="1">
- <Table columns={this.state.achievementColumns}
- dataSource={this.state.achievementDataSource}
- pagination={this.state.achievementPagination}
- style={{
- cursor: 'pointer',
- }}
- onRowClick={this.achievementRowClick} />
- </TabPane>
- <TabPane tab="我感兴趣的需求" key="2">
- <Table columns={this.state.demandColumns}
- dataSource={this.state.demandDataSource}
- pagination={this.state.demandPagination}
- style={{
- cursor: 'pointer',
- }}
- onRowClick={this.demandRowClick} />
- </TabPane>
- <TabPane tab="我感兴趣的用户" key="3">
- <Table columns={this.state.subscriberColumns}
- dataSource={this.state.subscriberDataSource}
- pagination={this.state.subscriberPagination}
- style={{
- cursor: 'pointer',
- }}
- onRowClick={this.subscriberRowClick} />
- </TabPane>
- </Tabs>
- </Spin>
- <DemandDesc data={this.state.demandRowData}
- showDesc={this.state.demandShowDesc}
- closeDesc={this.demandCloseDesc} />
- <AchievementDesc data={this.state.achievementRowData}
- showDesc={this.state.achievementShowDesc}
- closeDesc={this.achievementCloseDesc} />
- </div>
- )
- }
- });
- export default Content;
|