From 8ef68bfd2de2c4c4a337b443ae56e26594ad1e4f Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Tue, 14 Jan 2020 16:10:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E3=80=81=E7=82=B9=E8=B5=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/forge/Main/Detail.js | 85 +++++++++++++++++++++++--- public/react/src/forge/Main/list.css | 26 ++++++++ public/react/src/forge/New/Index.js | 4 +- public/react/src/forge/Order/Nav.js | 14 +++++ public/react/src/forge/Order/New.js | 16 +++++ public/react/src/forge/Order/order.css | 2 +- public/react/src/forge/Order/order.js | 12 +--- 7 files changed, 140 insertions(+), 19 deletions(-) create mode 100644 public/react/src/forge/Order/Nav.js create mode 100644 public/react/src/forge/Order/New.js diff --git a/public/react/src/forge/Main/Detail.js b/public/react/src/forge/Main/Detail.js index 1b31010f7..700e10972 100644 --- a/public/react/src/forge/Main/Detail.js +++ b/public/react/src/forge/Main/Detail.js @@ -12,6 +12,10 @@ const FileNew = Loadable({ loader: () => import('../Newfile/Index'), loading: Loading, }) +const OrderNew = Loadable({ + loader: () => import('../Order/New'), + loading: Loading, +}) const OrderIndex = Loadable({ loader: () => import('../Order/order'), loading: Loading, @@ -30,7 +34,10 @@ class Detail extends Component{ projectDetail:undefined, isManager:false, isReporter:false, - isDeveloper:false + isDeveloper:false, + watchers_count:undefined , + praises_count:undefined , + forked_count:undefined } } @@ -48,16 +55,60 @@ class Detail extends Component{ projectDetail:result.data, isManager:result.data.permission && result.data.permission === "Manager", isReporter:result.data.permission && result.data.permission === "Reporter", - isDeveloper:result.data.permission && result.data.permission === "Developer" + isDeveloper:result.data.permission && result.data.permission === "Developer", + + watchers_count:result.data.watchers_count, + praises_count:result.data.praises_count, + forked_count:result.data.forked_count, }) } }).catch((error)=>{}) } + // 关注和取消关注 + focusFunc =(flag)=>{ + const { projectsId } = this.props.match.params; + if(flag){ + const url = `/projects/${projectsId}/watchers/follow.json`; + axios.post(url).then(result=>{ + if(result){ + this.props.showNotification('关注成功'); + } + }) + }else{ + const url = `/projects/${projectsId}/watchers/unfollow.json`; + axios.delete(url).then(result=>{ + if(result){ + this.props.showNotification('取消关注成功'); + } + }) + } + } + + // 点赞和取消点赞 + pariseFunc=(flag)=>{ + const { projectsId } = this.props.match.params; + if(flag){ + const url = `/projects/${projectsId}/praise_tread/like.json`; + axios.post(url).then(result=>{ + if(result){ + this.props.showNotification('点赞成功'); + } + }) + }else{ + const url = `/projects/${projectsId}/praise_tread/unlike.json`; + axios.delete(url).then(result=>{ + if(result){ + this.props.showNotification('取消点赞成功'); + } + }) + } + } + render(){ const { projectsId } = this.props.match.params; - const { projectDetail } = this.state; + const { projectDetail , watchers_count , praises_count , forked_count } = this.state; const url = this.props.history.location.pathname; return(
@@ -65,10 +116,19 @@ class Detail extends Component{

{projectDetail && projectDetail.author && projectDetail.author.name} / { projectDetail && projectDetail.identifier }

- - {projectDetail && projectDetail.watchers_count} - {projectDetail && projectDetail.praises_count} - {projectDetail && projectDetail.forked_count} + + + this.focusFunc(true)}>关注 + {watchers_count} + + + this.pariseFunc(true)}>点赞 + {praises_count} + + + Fork + {forked_count} +
@@ -83,6 +143,7 @@ class Detail extends Component{
+ {/* 新建文件 */} () @@ -93,6 +154,16 @@ class Detail extends Component{ (props) => () } > + + {/* 新建工单 */} + + () + } + > + + {/* 代码Index */} () diff --git a/public/react/src/forge/Main/list.css b/public/react/src/forge/Main/list.css index 7d0ec873e..2250a50e1 100644 --- a/public/react/src/forge/Main/list.css +++ b/public/react/src/forge/Main/list.css @@ -111,6 +111,32 @@ body,#root{ flex: 1; width: 0; } +.p-r-btn{ + display: flex; + align-items: center; +} +.p-r-btn > span{ + height: 35px; + line-height: 35px; + border:1px solid #f4f4f4; + border-radius: 5px; + display: block; + margin-left: 20px; + background-color: #fff; + display: flex; +} +.p-r-btn > span > a{ + display: flex; + align-items: center; + padding:0px 12px; + background:#ececec; +} +.p-r-btn > span > a:active{ + background: #f4f4f4; +} +.p-r-btn > span > span{ + padding:0px 8px; +} .p-r-tags{ display: flex; opacity: 1; diff --git a/public/react/src/forge/New/Index.js b/public/react/src/forge/New/Index.js index 2364a705a..5f68a77ef 100644 --- a/public/react/src/forge/New/Index.js +++ b/public/react/src/forge/New/Index.js @@ -1,5 +1,5 @@ import React , { Component } from 'react'; - +import { Link } from 'react-router-dom'; import { Input , Form , Select , Checkbox , Button , Divider } from 'antd'; import '../css/index.css'; @@ -285,7 +285,7 @@ class Index extends Component{

只有企业所有人或拥有权限的企业成员才能看到

- this.props.onCancel()}>取消 + 取消
diff --git a/public/react/src/forge/Order/Nav.js b/public/react/src/forge/Order/Nav.js new file mode 100644 index 000000000..6afd7043e --- /dev/null +++ b/public/react/src/forge/Order/Nav.js @@ -0,0 +1,14 @@ +import React , { Component } from "react"; +import { Link } from 'react-router-dom'; +import './order.css' +class Nav extends Component{ + render(){ + return( +

+ 标签 + 里程 +

+ ) + } +} +export default Nav; \ No newline at end of file diff --git a/public/react/src/forge/Order/New.js b/public/react/src/forge/Order/New.js new file mode 100644 index 000000000..1eb00657f --- /dev/null +++ b/public/react/src/forge/Order/New.js @@ -0,0 +1,16 @@ +import React , { Component } from "react"; + +import Nav from './Nav'; + +class New extends Component{ + render(){ + return( +
+
+
+
+ ) + } +} +export default New; \ No newline at end of file diff --git a/public/react/src/forge/Order/order.css b/public/react/src/forge/Order/order.css index 41d2584ed..b5fce2185 100644 --- a/public/react/src/forge/Order/order.css +++ b/public/react/src/forge/Order/order.css @@ -28,7 +28,7 @@ } .topWrapper_btn { background: #21ba45; - color: #FFFFFF; + color: #FFFFFF!important; padding:0px 12px; text-align: center; height: 32px; diff --git a/public/react/src/forge/Order/order.js b/public/react/src/forge/Order/order.js index f19f8f048..7fffee83b 100644 --- a/public/react/src/forge/Order/order.js +++ b/public/react/src/forge/Order/order.js @@ -3,15 +3,12 @@ import {Link} from 'react-router-dom'; import { Input ,Dropdown , Menu , Icon } from 'antd'; import './order.css'; +import Nav from './Nav'; + import axios from 'axios'; const Search = Input.Search; -const tagList= ['release','test']; -const typeList= ['普通','悬赏']; -const categoryList=['缺陷','支持','任务','功能','周报']; -const levelList=['低','正常','高','紧急','立刻']; -const percentList=['0%','10%','20%','30%','40%','50%','60%','70%','80%','90%','100%']; class order extends Component{ constructor(props){ super(props); @@ -79,10 +76,7 @@ class order extends Component{ return(
-

- 标签 - 里程 -

+