|
|
@ -2,9 +2,35 @@ import React, {Component} from 'react';
|
|
|
|
import {Link} from "react-router-dom";
|
|
|
|
import {Link} from "react-router-dom";
|
|
|
|
import axios from 'axios';
|
|
|
|
import axios from 'axios';
|
|
|
|
import { Input ,Icon,Button,Pagination} from 'antd';
|
|
|
|
import { Input ,Icon,Button,Pagination} from 'antd';
|
|
|
|
|
|
|
|
import moment from 'moment';
|
|
|
|
import '../packageconcnet.css';
|
|
|
|
import '../packageconcnet.css';
|
|
|
|
|
|
|
|
|
|
|
|
const { Search } = Input;
|
|
|
|
const { Search } = Input;
|
|
|
|
|
|
|
|
let categorylist=[
|
|
|
|
|
|
|
|
{name:"全部",value:undefined},
|
|
|
|
|
|
|
|
{name:"前端开发",value:"front"},
|
|
|
|
|
|
|
|
{name:"后端开发",value:"backend"},
|
|
|
|
|
|
|
|
{name:"移动开发",value:"mobile"},
|
|
|
|
|
|
|
|
{name:"数据库",value:"database"},
|
|
|
|
|
|
|
|
{name:"云计算和大数据",value:"cloud_compute_and_big_data"},
|
|
|
|
|
|
|
|
{name:"人工智能",value:"ai"},
|
|
|
|
|
|
|
|
{name:"其他",value:"other"},
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function setcategorylist(val){
|
|
|
|
|
|
|
|
let vals=""
|
|
|
|
|
|
|
|
categorylist.some((item,key)=> {
|
|
|
|
|
|
|
|
if (item.value === val) {
|
|
|
|
|
|
|
|
vals=item.name
|
|
|
|
|
|
|
|
return true
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return vals
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PackageConcent extends Component {
|
|
|
|
class PackageConcent extends Component {
|
|
|
|
constructor(props) {
|
|
|
|
constructor(props) {
|
|
|
@ -95,17 +121,8 @@ class PackageConcent extends Component {
|
|
|
|
this.setdatas(category,keyword,value,sort_directionvalue,page)
|
|
|
|
this.setdatas(category,keyword,value,sort_directionvalue,page)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
render() {
|
|
|
|
render() {
|
|
|
|
let {data,page,category,sort_by,sort_direction}=this.state;
|
|
|
|
let {data,page,category,sort_by,sort_direction,project_packages}=this.state;
|
|
|
|
let categorylist=[
|
|
|
|
|
|
|
|
{name:"全部",value:undefined},
|
|
|
|
|
|
|
|
{name:"前端开发",value:"front"},
|
|
|
|
|
|
|
|
{name:"后端开发",value:"backend"},
|
|
|
|
|
|
|
|
{name:"移动开发",value:"mobile"},
|
|
|
|
|
|
|
|
{name:"数据库",value:"database"},
|
|
|
|
|
|
|
|
{name:"云计算和大数据",value:"cloud_compute_and_big_data"},
|
|
|
|
|
|
|
|
{name:"人工智能",value:"ai"},
|
|
|
|
|
|
|
|
{name:"其他",value:"other"},
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<div className="educontent clearfix" style={{flex: "1 0 auto"}}>
|
|
|
|
<div className="educontent clearfix" style={{flex: "1 0 auto"}}>
|
|
|
|
|
|
|
|
|
|
|
@ -178,64 +195,68 @@ class PackageConcent extends Component {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className="educontent project-packages-list">
|
|
|
|
{project_packages&&project_packages.map((item,key)=>{
|
|
|
|
|
|
|
|
return(
|
|
|
|
|
|
|
|
<div className="educontent project-packages-list">
|
|
|
|
|
|
|
|
|
|
|
|
<div className="project-package-item">
|
|
|
|
<div className="project-package-item">
|
|
|
|
|
|
|
|
|
|
|
|
<div className="item-image">
|
|
|
|
<div className="item-image">
|
|
|
|
<img />
|
|
|
|
<img src={"/images/educoder/project_packages/"+item.category+".png"}/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className=" item-body">
|
|
|
|
<div className=" item-body">
|
|
|
|
|
|
|
|
|
|
|
|
<div className=" item-head mbf10">
|
|
|
|
<div className=" item-head mbf10">
|
|
|
|
|
|
|
|
|
|
|
|
<div className=" item-head-title">
|
|
|
|
<div className=" item-head-title">
|
|
|
|
<a className={"fl mt3 font-20 font-bd color-dark maxwidth700 "}
|
|
|
|
<a className={"fl mt3 font-20 font-bd color-dark maxwidth700 "}
|
|
|
|
title={"做电视购物产品流程做电视购物产品流程做电视购物产品流程做电视购物产品流程做电视购物产品流程产品流程产品流程产品流程做电"}
|
|
|
|
href={"/project_packages/"+item.id}
|
|
|
|
>做电视购物产品流程做电视购物产品流程做电视购物产品流程做电视购物产品流程做电视购
|
|
|
|
title={item.title}
|
|
|
|
物产品流程产品流程产品流程产品流程做电</a>
|
|
|
|
>{item.title}</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className=" item-head-blank"></div>
|
|
|
|
<div className=" item-head-blank"></div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className=" item-head-price">
|
|
|
|
<div className=" item-head-price">
|
|
|
|
<span>¥</span>~<span>¥</span>
|
|
|
|
<span>¥{item.min_price}</span>~<span>¥{item.max_price}</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className=" item-category">
|
|
|
|
<div className=" item-category">
|
|
|
|
<div className=" item-category-item">人工智能</div>
|
|
|
|
<div className=" item-category-item">{setcategorylist(item.category)}</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className=" item-other">
|
|
|
|
<div className=" item-other">
|
|
|
|
<div className=" item-group item-other-visit">
|
|
|
|
<div className=" item-group item-other-visit">
|
|
|
|
<span className=" item-group-icon"><i className="fa fa-eye"></i></span>
|
|
|
|
<span className=" item-group-icon"><i className="fa fa-eye"></i></span>
|
|
|
|
<span className=" item-group-text">人浏览</span>
|
|
|
|
<span className=" item-group-text">{item.visit_count}人浏览</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className=" item-group item-other-deadline">
|
|
|
|
<div className=" item-group item-other-deadline">
|
|
|
|
|
|
|
|
|
|
|
|
<span className=" item-group-icon"><i className="fa fa-clock-o"></i></span>
|
|
|
|
<span className=" item-group-icon"><i className="fa fa-clock-o"></i></span>
|
|
|
|
<span className=" item-group-text">内竞标截止</span>
|
|
|
|
<span className=" item-group-text">{moment(item.deadline_at).endOf('day').fromNow()}竞标截止</span>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className=" item-group item-other-bidding">
|
|
|
|
<div className=" item-group item-other-bidding">
|
|
|
|
|
|
|
|
|
|
|
|
<span className=" item-group-icon"><i className="fa fa-user" ></i></span>
|
|
|
|
<span className=" item-group-icon"><i className="fa fa-user" ></i></span>
|
|
|
|
<span className=" item-group-text">人竞标</span>
|
|
|
|
<span className=" item-group-text">{item.bidding_users_count}人竞标</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div className=" item-other-blank"></div>
|
|
|
|
|
|
|
|
<div className=" item-group item-other-publish-at">
|
|
|
|
|
|
|
|
<span className=" item-group-text">发布于:{moment(item.published_at).format("YYYY-MM-DD HH:mm")} </span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className=" item-other-blank"></div>
|
|
|
|
|
|
|
|
<div className=" item-group item-other-publish-at">
|
|
|
|
|
|
|
|
<span className=" item-group-text">发布于: </span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
)
|
|
|
|
|
|
|
|
})}
|
|
|
|
|
|
|
|
|
|
|
|
<div className={"mt40"}>
|
|
|
|
<div className={"mt40"}>
|
|
|
|
<Pagination className="edu-txt-center" hideOnSinglePage={true} pageSize={20} current={page} total={data&&data.count} />
|
|
|
|
<Pagination className="edu-txt-center" hideOnSinglePage={true} pageSize={20} current={page} total={data&&data.count} />
|
|
|
|