123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- import React, { Component } from 'react';
- import { Button,Radio ,message,Row,Col, Spin,Pagination} from 'antd';
- import axios from 'axios';
- import './collection.less';
- import SpinContainer from "../../SpinContainer";
- class Collection extends Component {
- constructor(props) {
- super(props);
- this.state = {
- loading:false,
- current:1,
- nub:'1'
- };
- }
- //服务
- loadDataService(page){
- this.setState({
- loading:true,
- })
- let url = globalConfig.context + '/api/user/portal/listProjectIInterestedIn'
- axios.get(url,{
- params:{
- pageNo:page||1,
- pageSize:(this.props.nub)?4:8
- }
- })
- .then(data=>{
- let theData=data.data.data,
- theArr = [],
- times = new Date().getTime(),
- days = parseInt(times / (1000 * 60 * 60 * 24));
- if (!data.data || !data.data.data.list) {
- if (data.data.error && data.data.error.length) {
- message.warning(data.data.error[0].message);
- };
- } else {
- for (let i = 0; i < theData.list.length; i++) {
- let thisdata = theData.list[i],
- create = parseInt(thisdata.createTime / (1000 * 60 * 60 * 24));
- let newState = (days-create)<7?true:false;
- var introd=thisdata.introduce?(thisdata.introduce).replace(/<\/?.+?>/g,""):thisdata.introduce;
- theArr.push({
- key: i,
- id: thisdata.id,
- newState:newState,
- name:thisdata.name,
- introduce:introd&&introd.length>40?introd.substr(0,40)+'...':introd,
- img: thisdata.maxImgUrl, //编号
- });
- };
- };
- this.setState({
- loading:false,
- dataList:theArr,
- total:data.data.data.totalCount
- })
- })
- }
- //成果
- loadDataAchievement(page){
- this.setState({
- loading:true,
- })
- let url = globalConfig.context + '/api/user/portal/listAchievementIInterestedIn'
- axios.get(url,{
- params:{
- pageNo:page||1,
- pageSize:(this.props.nub)?4:8
- }
- })
- .then(data=>{
- let theData=data.data.data,
- theArr = [],
- times = new Date().getTime(),
- days = parseInt(times / (1000 * 60 * 60 * 24));
- if (!data.data || !data.data.data.list) {
- if (data.data.error && data.data.error.length) {
- message.warning(data.data.error[0].message);
- };
- } else {
- for (let i = 0; i < theData.list.length; i++) {
- let thisdata = theData.list[i],
- create = parseInt(thisdata.releaseDate / (1000 * 60 * 60 * 24));
- let newState = (days-create)<7?true:false;
- theArr.push({
- key: i,
- id: thisdata.id,
- newState:newState,
- name:thisdata.name,
- introduce:thisdata.introduction&&thisdata.introduction.length>40?thisdata.introduction.substr(0,40)+'...':thisdata.introduction,
- img: thisdata.firstPicture, //编号
- });
- };
- };
- this.setState({
- loading:false,
- dataList:theArr,
- total:data.data.data.totalCount
- })
- })
- }
- //需求
- loadDataDemand(page){
- this.setState({
- loading:true,
- })
- let url = globalConfig.context + '/api/user/portal/listDemandIInterestedIn'
- axios.get(url,{
- params:{
- pageNo:page||1,
- pageSize:(this.props.nub)?4:8
- }
- })
- .then(data=>{
- let theData=data.data.data,
- theArr = [],
- times = new Date().getTime(),
- days = parseInt(times / (1000 * 60 * 60 * 24));
- if (!data.data || !data.data.data.list) {
- if (data.data.error && data.data.error.length) {
- message.warning(data.data.error[0].message);
- };
- } else {
- for (let i = 0; i < theData.list.length; i++) {
- let thisdata = theData.list[i],
- create = parseInt(thisdata.releaseDate / (1000 * 60 * 60 * 24));
- let newState = (days-create)<7?true:false;
- theArr.push({
- key: i,
- id: thisdata.id,
- newState:newState,
- name:thisdata.name,
- introduce:thisdata.problemDes&&thisdata.problemDes.length>40?thisdata.problemDes.substr(0,40)+'...':thisdata.problemDes,
- img: thisdata.firstPic, //编号
- });
- };
- };
- this.setState({
- loading:false,
- dataList:theArr,
- total:data.data.data.totalCount
- })
- })
- }
- componentWillMount(){
- this.loadDataService(1)
- }
- tabFun(e){
- this.setState({ nub: e.target.value,current:1})
- switch(e.target.value){
- case '1':
- this.loadDataService(1)
- break;
- case '2':
- this.loadDataDemand(1)
- break;
- case '3':
- this.loadDataAchievement(1)
- break;
- }
- }
- //分页
- onShowSizeChange(current, pageSize){
- this.setState({
- current:current,
- pageSize:pageSize
- })
- switch(this.state.nub){
- case '1':
- this.loadDataService(current)
- break;
- case '2':
- this.loadDataDemand(current)
- break;
- case '3':
- this.loadDataAchievement(current)
- break;
- }
- }
- jump(item){
- let url='';
- switch(this.state.nub){
- case '1':
- url = globalConfig.context+`/portal/service/serviceDetail?id=${item.id}`;
- break;
- case '2':
- url=globalConfig.context+`/portal/technologyTrading/demandDetail?id=${item.id}&type=0`;
- break;
- case '3':
- url=globalConfig.context+`/portal/technologyTrading/achievementDetail?id=${item.id}&type=1`;
- break;
- }
- window.open(url);
- }
- render() {
- const dataList =this.state.dataList || [];
- return <div className="user-content">
- <div className="title" >
- 我的收藏
- </div>
- <div>
- <Radio.Group className="btnGroup" value={this.state.nub} onChange={this.tabFun.bind(this)}>
- <Radio.Button value="1">运用</Radio.Button>
- <Radio.Button value="2">需求</Radio.Button>
- <Radio.Button value="3">成果</Radio.Button>
- </Radio.Group>
- </div>
- <div className="imgList">
- <SpinContainer spinning={this.state.loading}>
- {dataList.length?<Row>
- {dataList.map((item,index)=>{
- return<Col span={5} key={index} onClick={(e)=>{this.jump(item)}}>
- <div className="img">
- <div className="imgHeader">
- <div className="imgBj">
- {item.img?<img src={globalConfig.avatarHost+'/upload'+item.img} alt=""/>:''}
- </div>
- {item.newState&&<span className="new"></span>}
- <div className="divP"><p>{item.introduce?item.introduce:'暂无'}</p></div>
- </div>
- <p className="txt">{item.name}</p>
- </div>
- </Col>
- })
- }
- </Row>:
- <Row style={{color:'#333'}}>暂无数据</Row>}
- </SpinContainer>
- {this.state.total?<Pagination className="page" pageSize={this.props.nub?4:8} current={this.state.current} total={this.state.total} onChange={(e,pageSize)=>{this.onShowSizeChange(e,pageSize)}}/>:''}
- </div>
- </div>
- }
- }
- export default Collection;
|