forgeplus-react/src/forge/Version/version.js

126 lines
4.1 KiB
JavaScript
Raw Normal View History

2020-05-20 18:11:32 +08:00
import React, { Component } from "react";
import { Link } from 'react-router-dom';
2020-03-27 18:29:00 +08:00
import NoneData from '../Nodata';
2020-03-16 14:12:11 +08:00
import './version.css';
2020-04-09 18:13:26 +08:00
import { getImageUrl } from 'educoder';
2020-03-16 14:12:11 +08:00
import axios from 'axios';
/**
* issue_chosen:下拉的筛选列表,
* data:列表接口返回的所有数据,
* issues:列表数组,
* isSpin:加载中,
*/
2020-05-20 18:11:32 +08:00
class version extends Component {
constructor(props) {
2020-03-16 14:12:11 +08:00
super(props);
2020-05-20 18:11:32 +08:00
this.state = {
issue_chosen: undefined,
data: undefined,
releases:undefined,
issues: undefined,
isSpin: false,
search: undefined,
search_count: undefined,
2020-03-16 14:12:11 +08:00
}
}
2020-05-20 18:11:32 +08:00
componentDidMount = () => {
2020-03-16 14:12:11 +08:00
this.getIssueList();
}
// 获取列表数据
2020-05-20 18:11:32 +08:00
getIssueList = () => {
2020-03-16 14:12:11 +08:00
const { projectsId } = this.props.match.params;
const url = `/projects/${projectsId}/version_releases.json`;
2020-05-20 18:11:32 +08:00
axios.get(url).then((result) => {
if (result) {
2020-03-16 14:12:11 +08:00
this.setState({
2020-05-20 18:11:32 +08:00
data: result.data,
releases:result.data.releases,
issues: result.data.issues,
isSpin: false
2020-03-16 14:12:11 +08:00
})
}
2020-05-20 18:11:32 +08:00
}).catch((error) => {
2020-03-16 14:12:11 +08:00
console.log(error);
})
}
2020-05-20 18:11:32 +08:00
// 显示版本描述
showBody=(key,flag)=>{
let { releases } = this.state;
releases[key].bodyshow = !flag;
this.setState({
releases
})
}
2020-04-09 18:34:07 +08:00
2020-05-20 18:11:32 +08:00
render() {
2020-03-20 21:40:43 +08:00
const { projectsId } = this.props.match.params;
2020-05-20 18:11:32 +08:00
const { data , releases } = this.state
const renderList = () => {
if (releases && releases.length > 0) {
return (
<div>
{
releases.map((item, key) => {
return (
<div className="versionInfo" key={key}>
<span className="versionInfo_left">
<span className={`${item.draft === "稳定" ?"versionTag green":"versionTag yellow"}`}>{item.draft}</span>
<span className="mt10">{item.created_at}</span>
<span className="color-grey-8">
<i className="iconfont icon-biaoqian3 mr3 font-14"></i>
{item.tag_name}
</span>
</span>
<div className="versionInfo_right">
<span className="versionName">
<span className="task-hide">{item.name}</span>
<Link to={`/projects/${projectsId}/coders/version/${item.version_id}/update`} className="color-blue ml3 font-12">编辑</Link>
</span>
<span className="color-grey-3">
<i className={`${item.bodyshow ? "iconfont icon-sanjiaoxing-down color-grey-8 mr3 font-14":"iconfont icon-triangle color-grey-8 mr3 font-14"}`} onClick={()=>this.showBody(key,item.bodyshow)}></i>
{item.user_name}:<span className="color-grey-8">发布了这个版本并在发布后提交给{item.target_commitish}</span>
</span>
{
item.bodyshow && <p className="mt10">{item.body}</p>
}
<p className="mt10 pl3">
{/* <span className="commitKey mr20">{item.commit_id}</span> */}
<a href={item.tarball_url} style={{color:"#4CC1DA"}} className="mr30"><i className="iconfont icon-TAR font-18 mr5"></i>TAR</a>
<a href={item.zipball_url} style={{color:"#28BD6C"}}><i className="iconfont icon-ZIP font-18 mr5"></i>ZIP</a>
</p>
</div>
2020-03-16 14:12:11 +08:00
</div>
2020-04-09 18:34:07 +08:00
)
})
}
</div>
2020-03-16 14:12:11 +08:00
)
2020-05-20 18:11:32 +08:00
} else {
return (
2020-04-09 18:34:07 +08:00
<NoneData _html="暂时还没有相关数据哦!" />
)
2020-04-09 17:23:40 +08:00
}
}
2020-03-16 14:12:11 +08:00
2020-05-20 18:11:32 +08:00
return (
2020-03-16 14:12:11 +08:00
<div className="main">
<div className="topWrapper">
2020-05-20 18:11:32 +08:00
<span className="font-18 color-grey-3">版本发布</span>
2020-03-16 14:12:11 +08:00
{
data && data.user_permission ?
2020-05-20 18:11:32 +08:00
<Link to={`/projects/${projectsId}/coders/version/new`} className="topWrapper_btn_new">+ 发布新版</Link>
2020-03-16 14:12:11 +08:00
: ''
}
2020-04-09 18:34:07 +08:00
</div>
2020-05-20 18:11:32 +08:00
<div className="releasesVersion">
2020-04-09 18:34:07 +08:00
{renderList()}
2020-03-16 14:12:11 +08:00
</div>
2020-04-09 18:34:07 +08:00
</div>
2020-03-16 14:12:11 +08:00
)
}
}
export default version;