pr 里程碑排序bug 及样式修改

forge
dingyongkang 5 years ago
parent 400e7e7171
commit 5eb8d3acda

@ -67,7 +67,7 @@ class Index extends Component{
></Route> ></Route>
<Route path="/projects/:projectsId" <Route path="/projects/:projectsId"
render={ render={
(props) => (<ProjectDetail {...this.props} {...props} {...this.state} />) (props) => (<ProjectDetail {...this.props} {...props} {...this.state} current_user={current_user}/>)
} }
></Route> ></Route>
<Route exact path="/projects" <Route exact path="/projects"

@ -26,21 +26,26 @@ class MergeItem extends Component{
issues.map((item,key)=>{ issues.map((item,key)=>{
return( return(
<div className="issueItem"> <div className="issueItem">
<div className="flex-1"> <div className="flex-1">
<p className="mb15 df"> <p className="mb15 df">
<span className="issueNo"># {search_count - (key + (page-1) * limit)}</span> <span className="issueNo"># {search_count - (key + (page-1) * limit)}</span>
<Link to={`/projects/${projectsId}/merge/${item.pull_request_id}/Messagecount`} className="flex-1 hide-1 font-16 color-grey-3 lineh-30">{item.name}</Link> <Link to={`/projects/${projectsId}/orders/${item.id}/detail`} className="flex-1 hide-1 font-16 color-grey-3 lineh-30">{item.name}</Link>
</p> </p>
<p className="color-grey-6"> <p className="color-grey-6 font-12">
<span>{item.created_at}</span> <span>{item.format_time}</span><span className="ml5"></span>
{ item.journals_count ? <span className="ml20"><i className="iconfont icon-pinglun1 mr3 font-16"></i>{item.journals_count}</span> : "" } {
item.updated_at === item.format_time ?
""
:
<span className="ml20"><span>{item.updated_at}</span><span className="ml5"></span></span>
}
</p> </p>
</div> </div>
<ul className="topWrapper_select"> <ul className="topWrapper_select">
<li>{this.set_issue_tags(item.issue_tags)}</li> <li>{this.set_issue_tags(item.issue_tags)}</li>
{/*<li>{item.issue_type || "--"}</li>*/} {/*<li>{item.issue_type || "--"}</li>*/}
<li>{item.version || "--"}</li> <li>{item.version || "--"}</li>
<li>{item.author_name || "--"}</li> <li>{item.assign_user_name || "--"}</li>
<li>{ item.journals_count ? <span><i className="iconfont icon-pinglun1 mr3 font-16"></i>{item.journals_count}</span> : "" }</li> <li>{ item.journals_count ? <span><i className="iconfont icon-pinglun1 mr3 font-16"></i>{item.journals_count}</span> : "" }</li>
</ul> </ul>
</div> </div>

@ -188,21 +188,21 @@ class merge extends Component{
if(e.key==='created_on'){ if(e.key==='created_on'){
if(e.item.props.value==="desc"){ if(e.item.props.value==="desc"){
this.setState({ this.setState({
paix:'到期日从近到远' paix:'最新创建'
}) })
}else{ }else{
this.setState({ this.setState({
paix:'到期日从远到近' paix:'最早创建'
}) })
} }
}else{ }else{
if(e.item.props.value==="desc"){ if(e.item.props.value==="desc"){
this.setState({ this.setState({
paix:'完成度从低到高' paix:'最新更新'
}) })
}else{ }else{
this.setState({ this.setState({
paix:'完成度从高到低' paix:'最早更新'
}) })
} }
} }

@ -151,10 +151,10 @@ class Milepost extends Component{
<Menu onClick={this.arrayList}> <Menu onClick={this.arrayList}>
<Menu.Item key={'created_on'} value="desc">到期日从近到远</Menu.Item> <Menu.Item key={'created_on'} value="desc">到期日从近到远</Menu.Item>
<Menu.Item key={'created_on'} value="asc">到期日从远到近</Menu.Item> <Menu.Item key={'created_on'} value="asc">到期日从远到近</Menu.Item>
<Menu.Item key={'issues_count'} value="desc">完成度从低到高</Menu.Item> <Menu.Item key={'percent'} value="desc">完成度从低到高</Menu.Item>
<Menu.Item key={'issues_count'} value="asc">完成度从高到低</Menu.Item> <Menu.Item key={'percent'} value="asc">完成度从高到低</Menu.Item>
<Menu.Item key={'percent'} value="asc">工单从多到少</Menu.Item> <Menu.Item key={'issues_count'} value="asc">工单从多到少</Menu.Item>
<Menu.Item key={'percent'} value="asc">工单从少到多</Menu.Item> <Menu.Item key={'issues_count'} value="desc">工单从少到多</Menu.Item>
</Menu> </Menu>
) )

@ -42,7 +42,6 @@ class MilepostDetail extends Component{
//设置选择高亮 //设置选择高亮
openselect:1, openselect:1,
closeselect:undefined, closeselect:undefined,
miledata:undefined,
// status_type: undefined // status_type: undefined
issue_tag_ids:'标签', issue_tag_ids:'标签',
tracker_ids:'所有分类', tracker_ids:'所有分类',
@ -57,36 +56,8 @@ class MilepostDetail extends Component{
componentDidMount=()=>{ componentDidMount=()=>{
this.getSelectList(); this.getSelectList();
this.getIssueList(); this.getIssueList();
this.getmeil();
} }
getmeil=()=>{
const { projectsId } = this.props.match.params;
const { meilid } = this.props.match.params;
const url = `/projects/${projectsId}/versions/${meilid}/edit.json`;
axios.get(url,{
params:{
projectsId,meilid
}
}).then((result)=>{
if(result){
this.setState({
miledata:result.data,
})
this.props.form.setFieldsValue({
name:result.data.name,
description:result.data.description
});
}
}).catch((error)=>{
console.log(error);
})
}
getSelectList=()=>{ getSelectList=()=>{
const { projectsId } = this.props.match.params; const { projectsId } = this.props.match.params;
@ -104,12 +75,12 @@ class MilepostDetail extends Component{
} }
// 获取列表数据 // 获取列表数据
getIssueList=(page,limit,search,author_id,assigned_to_id,id,value,status_type)=>{ getIssueList=(page,limit,search,author_id,assigned_to_id,id,value,status_type,order_name, order_type)=>{
const { projectsId,meilid} = this.props.match.params; const { projectsId,meilid} = this.props.match.params;
const url = `/projects/${projectsId}/versions/${meilid}.json`; const url = `/projects/${projectsId}/versions/${meilid}.json`;
axios.get(url,{ axios.get(url,{
params:{ params:{
page,limit,search,author_id,assigned_to_id,status_type, page,limit,search,author_id,assigned_to_id,status_type,order_name, order_type,
[id]:value [id]:value
} }
}).then((result)=>{ }).then((result)=>{
@ -190,15 +161,16 @@ class MilepostDetail extends Component{
}) })
} }
} }
this.setState({ this.setState({
[id]:e.key [id]:e.key
}) })
const { page,limit,search,author_id,assigned_to_id } = this.state; const { page,limit,search,author_id,assigned_to_id } = this.state;
if(e.key==="all"){ if(e.key==="all"){
this.getIssueList(page,limit,search,author_id,assigned_to_id,id); this.getIssueList(page,limit,search,author_id,assigned_to_id,id);
}else{ }else{
this.getIssueList(page,limit,search,author_id,assigned_to_id,id,e.key); this.getIssueList(page,limit,search,author_id,assigned_to_id,id,undefined,undefined,e.key, e.item.props.value);
} }
} }
@ -265,7 +237,7 @@ class MilepostDetail extends Component{
render(){ render(){
const { issue_chosen , issues , limit , page , search_count , data , miledata , isSpin,openselect,closeselect } = this.state; const { issue_chosen , issues , limit , page , search_count , data , isSpin,openselect,closeselect } = this.state;
const { projectsId,meilid } = this.props.match.params; const { projectsId,meilid } = this.props.match.params;
const menu = ( const menu = (
@ -289,13 +261,24 @@ class MilepostDetail extends Component{
) )
return( return(
<div className="main"> <div className="main">
<div className="topWrapper"> <div className="miledetail">
<p>{miledata&&miledata.name}</p> <div className="topmilepost">
<p>{data&&data.name}</p>
<div className="milepostdiv"> <div className="milepostdiv">
<Link to={`/projects/${projectsId}/orders/${meilid}/meilpost`} className="topWrapper_btn" style={{marginRight:15}} >编辑里程碑</Link> <Link to={`/projects/${projectsId}/orders/${meilid}/meilpost`} className="topWrapper_btn" style={{marginRight:15}} >编辑里程碑</Link>
<Link to={`/projects/${projectsId}/orders/new`} className="topWrapper_btn">创建工单</Link> <Link to={`/projects/${projectsId}/orders/new`} className="topWrapper_btn">创建工单</Link>
</div> </div>
</div>
<div className="grid-item mr10">
<i className="iconfont icon-rili font-14 mr5">
</i>
{
data&&data.effective_date ?
<span >{data&&data.effective_date} {data&&data.percent.toFixed(2)}%完成</span>
:
<span >暂无截止时间 {data&&data.percent.toFixed(2)}%完成</span>
}
</div>
</div> </div>
<div className="topWrapper" style={{borderBottom:"none"}}> <div className="topWrapper" style={{borderBottom:"none"}}>
{/* <p className="topWrapper_type"> {/* <p className="topWrapper_type">

@ -6,6 +6,22 @@
border-bottom: 1px solid #EEEEEE; border-bottom: 1px solid #EEEEEE;
flex-wrap: wrap; flex-wrap: wrap;
} }
.topmilepost{
padding: 20px 0;
box-sizing: border-box;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.miledetail{
padding: 20px 0;
box-sizing: border-box;
justify-content: space-between;
border-bottom: 1px solid #EEEEEE;
flex-wrap: wrap;
}
.topWrapper_nav{ .topWrapper_nav{
display: flex; display: flex;

@ -81,7 +81,7 @@ class order extends Component{
const url = `/projects/${projectsId}/issues.json`; const url = `/projects/${projectsId}/issues.json`;
axios.get(url,{ axios.get(url,{
params:{ params:{
page,limit,search,author_id,assigned_to_id,status_type,order_name, order_type, page,limit,search,author_id,assigned_to_id,status_type,order_name,order_type,
[id]:value [id]:value
} }
}).then((result)=>{ }).then((result)=>{

Loading…
Cancel
Save