You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
educoder/public/react/src/forge/Main/IndexItem.js

83 lines
2.6 KiB

5 years ago
import React , { Component } from 'react';
5 years ago
import { getImageUrl } from 'educoder';
5 years ago
import { Link } from 'react-router-dom';
import '../css/index.css'
import './list.css';
5 years ago
//把时间戳转换为几分钟或几小时前或几天前
function getDateDiff(dateTimeStamp){
var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;
var month = day * 30;
var now = new Date().getTime();
var diffValue = now - dateTimeStamp;
if(diffValue < 0){return;}
var monthC =diffValue/month;
var weekC =diffValue/(7*day);
var dayC =diffValue/day;
var hourC =diffValue/hour;
var minC =diffValue/minute;
5 years ago
5 years ago
var result = "";
if(monthC>=1){
result="" + parseInt(monthC) + "月前";
}
else if(weekC>=1){
result="" + parseInt(weekC) + "周前";
}
else if(dayC>=1){
result=""+ parseInt(dayC) +"天前";
}
else if(hourC>=1){
result=""+ parseInt(hourC) +"小时前";
5 years ago
}
5 years ago
else if(minC>=1){
result=""+ parseInt(minC) +"分钟前";
}else
result="刚刚";
return result;
}
class IndexItem extends Component{
5 years ago
render(){
const { projects } = this.props;
const renderList = (
projects && projects.length >0 && projects.map((item,key)=>{
return(
<div className="p-r-Item">
5 years ago
<img className="p-r-photo" alt="" src={getImageUrl(`images/${item.author && item.author.image_url}`)} ></img>
5 years ago
<div className="p-r-Infos">
<div className="p-r-name">
<Link to={""} className="hide-1 font-16 color-grey-3">{item.name}</Link>
<span className="p-r-tags">
{ item.forked_count ? <span><label>Fork</label><span>{ item.forked_count}</span></span>:"" }
5 years ago
<span><label>Start</label><span>{ item.praises_count }</span></span>
5 years ago
{ item.language && item.language.id ? <span><label>{ item.language.name }</label></span>:"" }
</span>
</div>
<div className="p-r-content">
<p className="break_word hide-2">{item.description}</p>
</div>
<div className="p-r-name mt8 color-grey-6">
<span className="p-r-detail">
<span><label>浏览量</label>{item.visits}</span>
{ item.category && item.category.id && <span><label>项目类别</label>{item.category.name}</span>}
</span>
5 years ago
{item.last_update_time ? <span>{getDateDiff(item.last_update_time)}</span> : "" }
5 years ago
</div>
</div>
</div>
)
})
)
return(
<div className="project-list">
{ renderList }
</div>
)
}
}
export default IndexItem;