diff --git a/src/forge/Merge/Files.jsx b/src/forge/Merge/Files.jsx index e91b8ac0..226ca5e2 100644 --- a/src/forge/Merge/Files.jsx +++ b/src/forge/Merge/Files.jsx @@ -36,7 +36,7 @@ function Files({data,history,owner,projectsId,showDown}){ {item.name} - + +{item.addition} -{item.deletion} diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index f6ac34e7..0d3217a3 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -520,14 +520,12 @@ class MessageCount extends Component { -
- -
+ ) : ( "" diff --git a/src/forge/Merge/NewMerge.js b/src/forge/Merge/NewMerge.js index 1824ec25..2ef27efa 100644 --- a/src/forge/Merge/NewMerge.js +++ b/src/forge/Merge/NewMerge.js @@ -60,7 +60,6 @@ class NewMerge extends Component { getmergelist = (projectsId) => { this.setState({isSpin: true}) const { owner } = this.props.match.params; - const url = `/${owner}/${projectsId}/pulls/new.json`; axios .get(url) @@ -344,19 +343,20 @@ class NewMerge extends Component { data={data} merge={merge} pull={pull} + files_count={comparesData && comparesData.diff && comparesData.diff.files_count} + commits_count={comparesData && comparesData.commits_count} > )} - -
- -
+ ); } diff --git a/src/forge/Merge/merge_footer.js b/src/forge/Merge/merge_footer.js index 539d0065..81ecae82 100644 --- a/src/forge/Merge/merge_footer.js +++ b/src/forge/Merge/merge_footer.js @@ -13,21 +13,44 @@ class MergeFooter extends Component { super(props); this.state={ pageData:undefined, + commitsData:undefined, + filesData:undefined, isSpin:false, - activeKey:"1" + activeKey:"1", + commitCount:0, + filesCount:0 } } componentDidMount=()=>{ - const { footer_type } = this.props; + const { footer_type ,data } = this.props; + if(footer_type){ + const { projectsId , owner , mergeId } = this.props.match.params; + this.getCommit(owner,projectsId,mergeId); + this.getFile(owner,projectsId,mergeId); + } this.setState({ - activeKey:footer_type ? "1" : "2" + activeKey:footer_type ? "1" : "2", + commitCount:data && data.commits_count, + filesCount:data && data.files_count }) } componentDidUpdate=(prevProps)=>{ const { comparesData } = this.props; - const { activeKey } = this.state; + const { footer_type } = this.props; + if(footer_type){ + const { data } = this.props; + if(data !== prevProps.data){ + this.setState({ + commitCount:data && data.commits_count, + filesCount:data && data.files_count + }) + } + } if(comparesData !== prevProps.comparesData){ - this.changeTab(activeKey); + this.setState({ + activeKey:footer_type ? "1" : "2" + }) + this.changeTab(footer_type ? "1" : "2"); } } @@ -42,71 +65,88 @@ class MergeFooter extends Component { const { projectsId , owner , mergeId } = this.props.match.params; if(index === "2"){ if(footer_type){ - const url = `/${owner}/${projectsId}/pulls/${mergeId}/commits.json`; - axios.get(url).then(result=>{ - if(result){ - this.setState({ - pageData:result.data.commits, - }) - } - }).catch(error=>{}) + this.getCommit(owner,projectsId,mergeId); }else{ this.setState({ - pageData:comparesData.commits + commitsData:comparesData.commits, + filesData:comparesData.diff, + commitCount:comparesData.commits_count, + filesCount:comparesData.diff && comparesData.diff.files_count, + isSpin:false + }) + this.setState({ + isSpin:false }) } - this.setState({ - isSpin:false - }) }else if(index === "3"){ if(footer_type){ - const url = `/${owner}/${projectsId}/pulls/${mergeId}/files.json`; - axios.get(url).then(result=>{ - if(result){ - this.setState({ - pageData:result.data, - }) - } - }).catch(error=>{}) + this.getFile(owner,projectsId,mergeId); }else{ this.setState({ - pageData:comparesData.diff + commitsData:comparesData.commits, + filesData:comparesData.diff, + filesCount:comparesData.diff && comparesData.diff.files_count, + commitCount:comparesData.commits_count + }) + this.setState({ + isSpin:false }) } - this.setState({ - isSpin:false - }) }else{ this.setState({ isSpin:false }) } } + getCommit =(owner,projectsId,mergeId)=>{ + const url = `/${owner}/${projectsId}/pulls/${mergeId}/commits.json`; + axios.get(url).then(result=>{ + if(result){ + this.setState({ + commitsData:result.data.commits, + isSpin:false + }) + } + }).catch(error=>{}) + } + getFile =(owner,projectsId,mergeId)=>{ + const url = `/${owner}/${projectsId}/pulls/${mergeId}/files.json`; + axios.get(url).then(result=>{ + if(result){ + this.setState({ + filesData:result.data, + isSpin:false + }) + } + }).catch(error=>{}) + } showDown=(flag,index,isBin)=>{ if(!isBin){ - const { pageData } = this.state; - const { files } = pageData; + const { filesData } = this.state; + const { files } = filesData; let arr = files[index]; let f = files; - let d = pageData; + let d = filesData; arr.flag = !flag ? true : false; f[index] = arr; d.files = f; this.setState({ - pageData:d + filesData:d }); } } render() { const { projectsId , owner } = this.props.match.params; - const { footer_type, order_id, data } = this.props; - let { pageData , isSpin , activeKey } = this.state; + const { footer_type, order_id, data , comparesData } = this.props; + let { pageData , isSpin , activeKey , filesCount, commitCount , filesData , commitsData } = this.state; + return ( -
+ !footer_type && !comparesData || (comparesData && ((comparesData.commits && comparesData.commits.length===0)||(comparesData && !comparesData.diff)) )?"": +
评论 - {data && data.comments_count > 0 && {data.comments_count}} + {data && parseInt(data.comments_count) > 0 && {data.comments_count}} } key="1"> } - 提交 - {data && data.commits_count > 0 && {data.commits_count}} - } key="2"> - - - 文件 - {data && data.files_count > 0 && {data.files_count}} - - } key="3"> - - + { + commitsData && commitsData.length > 0 && + 提交 + {commitCount > 0 && {commitCount}} + } key="2"> + + + } + { + filesData && filesData.files && filesData.files.length>0 && + 文件 + {filesCount > 0 && {filesCount}} + + } key="3"> + + + } +
diff --git a/src/forge/Merge/merge_form.js b/src/forge/Merge/merge_form.js index 5c1b17c6..201574be 100644 --- a/src/forge/Merge/merge_form.js +++ b/src/forge/Merge/merge_form.js @@ -138,7 +138,7 @@ class MergeForm extends Component { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { const { projectsId, mergeId , owner } = this.props.match.params; - const { merge, pull, merge_type, data } = this.props; + const { merge, pull, merge_type, data , commits_count , files_count } = this.props; if (values.issue_tag_ids && values.issue_tag_ids.length > 0) { values.issue_tag_ids = [parseInt(values.issue_tag_ids)]; } else { @@ -154,7 +154,9 @@ class MergeForm extends Component { base: merge, is_original: data && data.is_original, fork_project_id: data && data.fork_project_id, - merge_user_login: data && data.merge_user_login + merge_user_login: data && data.merge_user_login, + files_count, + commits_count }) .then((result) => { if (result) { diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index a614f887..ea557de4 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -19,7 +19,6 @@ class Setting extends Component { } componentDidUpdate=(prevPros)=>{ - console.log("dddd",this.props.checkIfLogin()); if(prevPros && this.props && !this.props.checkIfLogin()){ this.props.history.push("/403") return