Merge branch 'forge' of https://bdgit.educoder.net/Hjqreturn/educoder into forge
commit
83cdc12591
@ -0,0 +1,56 @@
|
|||||||
|
import React , {Component} from 'react';
|
||||||
|
import {Link} from 'react-router-dom';
|
||||||
|
|
||||||
|
import axios from 'axios';
|
||||||
|
import Nav from './Nav';
|
||||||
|
|
||||||
|
|
||||||
|
class Detail extends Component{
|
||||||
|
constructor(props){
|
||||||
|
super(props);
|
||||||
|
this.state={
|
||||||
|
data:undefined
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount=()=>{
|
||||||
|
this.getDetail();
|
||||||
|
}
|
||||||
|
|
||||||
|
getDetail=()=>{
|
||||||
|
const { projectsId , orderId} = this.props.match.params;
|
||||||
|
const url = `/projects/${projectsId}/issues/${orderId}.json`;
|
||||||
|
axios.get(url).then((result)=>{
|
||||||
|
if(result){
|
||||||
|
|
||||||
|
}
|
||||||
|
}).catch((error)=>{
|
||||||
|
console.log(error);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
render(){
|
||||||
|
const { projectsId } = this.props.match.params;
|
||||||
|
|
||||||
|
return(
|
||||||
|
<div className="main">
|
||||||
|
<div className="topWrapper">
|
||||||
|
<Nav {...this.props} {...this.state}/>
|
||||||
|
<Link to={`/projects/${projectsId}/orders/new`} className="topWrapper_btn">创建工单</Link>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div className="detailContent">
|
||||||
|
<p>
|
||||||
|
<span className="font-16">科技生活</span>
|
||||||
|
<a onClick={this.editOrder} className="color-blue fr">编辑</a>
|
||||||
|
</p>
|
||||||
|
<p className="mt10">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export default Detail;
|
@ -0,0 +1,134 @@
|
|||||||
|
import React , {Component} from 'react';
|
||||||
|
import { Dropdown , Icon , Menu , Pagination } from 'antd';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
|
import Nav from './Nav';
|
||||||
|
import NoneData from '../../modules/courses/coursesPublic/NoneData';
|
||||||
|
|
||||||
|
import axios from 'axios';
|
||||||
|
class Tags extends Component{
|
||||||
|
constructor(props){
|
||||||
|
super(props);
|
||||||
|
this.state={
|
||||||
|
data:undefined,
|
||||||
|
limit:15,
|
||||||
|
page:1,
|
||||||
|
order_name:undefined,
|
||||||
|
order_type:undefined
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount=()=>{
|
||||||
|
this.getList();
|
||||||
|
}
|
||||||
|
|
||||||
|
getList=(page,order_name,order_type)=>{
|
||||||
|
const { projectsId } = this.props.match.params;
|
||||||
|
const { limit } = this.state;
|
||||||
|
const url = `/projects/${projectsId}/issue_tags.json`;
|
||||||
|
axios.get(url,{
|
||||||
|
params:{
|
||||||
|
page,limit,order_name,order_type
|
||||||
|
}
|
||||||
|
}).then((result)=>{
|
||||||
|
if(result){
|
||||||
|
this.setState({
|
||||||
|
data:result.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).catch((error)=>{
|
||||||
|
console.log(error);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
ChangePage=(page)=>{
|
||||||
|
this.setState({
|
||||||
|
page
|
||||||
|
})
|
||||||
|
|
||||||
|
this.getList(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 排序
|
||||||
|
arrayList=(e)=>{
|
||||||
|
this.setState({
|
||||||
|
order_name:e.key,
|
||||||
|
order_type:e.item.props.value
|
||||||
|
})
|
||||||
|
|
||||||
|
this.getList(1,e.key,e.item.props.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
render(){
|
||||||
|
const { data , limit , page } = this.state;
|
||||||
|
const { projectsId } = this.props.match.params;
|
||||||
|
const menu = (
|
||||||
|
<Menu onClick={this.arrayList}>
|
||||||
|
<Menu.Item key={'created_at'} value="desc">按创建时间降序排序</Menu.Item>
|
||||||
|
<Menu.Item key={'created_at'} value="asc">按创建时间升序排序</Menu.Item>
|
||||||
|
<Menu.Item key={'issues_count'} value="desc">按issue个数降序排序</Menu.Item>
|
||||||
|
<Menu.Item key={'issues_count'} value="asc">按issue个数升序排序</Menu.Item>
|
||||||
|
</Menu>
|
||||||
|
)
|
||||||
|
const Paginations = (
|
||||||
|
<React.Fragment>
|
||||||
|
{
|
||||||
|
data && data.issue_tags_count > limit ?
|
||||||
|
<div className="mt30 mb50 edu-txt-center">
|
||||||
|
<Pagination simple defaultCurrent={page} total={data && data.issue_tags_count} pageSize={limit} onChange={this.ChangePage}></Pagination>
|
||||||
|
</div>:""
|
||||||
|
}
|
||||||
|
</React.Fragment>
|
||||||
|
)
|
||||||
|
|
||||||
|
const renderList =()=>{
|
||||||
|
if(data && data.issue_tags && data.issue_tags.length>0 ){
|
||||||
|
return(
|
||||||
|
<div className="tagList">
|
||||||
|
{
|
||||||
|
data.issue_tags.map((item,key)=>{
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<span className="f-wrap-alignCenter">
|
||||||
|
<span style={{backgroundColor:`${item.color}`}} className="tagColor"></span>
|
||||||
|
{item.name}
|
||||||
|
</span>
|
||||||
|
<span className="hide-1">{item.description}</span>
|
||||||
|
<span>{item.issues_count}个开启的工单</span>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}else{
|
||||||
|
return(
|
||||||
|
<NoneData />
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(
|
||||||
|
<div className="main">
|
||||||
|
<div>
|
||||||
|
<div className="topWrapper">
|
||||||
|
<Nav {...this.props} {...this.state} />
|
||||||
|
<Link to={`/projects/${projectsId}/orders/new`} className="topWrapper_btn">新建标签</Link>
|
||||||
|
</div>
|
||||||
|
<div className="topWrapper">
|
||||||
|
<span>共{ data && data.issue_tags_count }个标签</span>
|
||||||
|
<ul className="topWrapper_select">
|
||||||
|
<li>
|
||||||
|
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||||
|
<span>标签<Icon type="caret-down" className="ml5" /></span>
|
||||||
|
</Dropdown>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{ renderList() }
|
||||||
|
{ Paginations }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export default Tags;
|
Loading…
Reference in new issue