From 62ffb2502dd683a8c743286b25a127ef19bdf3e2 Mon Sep 17 00:00:00 2001 From: dingyongkang <837816638@qq.com> Date: Wed, 26 Feb 2020 17:23:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=91=E5=B8=83=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/forge/Main/Detail.js | 23 +- public/react/src/forge/Order/Milepost.js | 11 +- .../react/src/forge/Order/MilepostDetail.js | 238 ++++++++++++++++++ .../react/src/forge/Order/UpdateMilepost.js | 13 +- public/react/src/forge/Order/newMilepost.js | 10 +- public/react/src/forge/Version/NewVersion.js | 8 +- .../react/src/forge/Version/UpdateVersion.js | 57 ++--- public/react/src/forge/Version/VersionItem.js | 14 -- public/react/src/forge/Version/version.css | 23 ++ public/react/src/forge/Version/version.js | 153 ++++------- 10 files changed, 370 insertions(+), 180 deletions(-) create mode 100644 public/react/src/forge/Order/MilepostDetail.js delete mode 100644 public/react/src/forge/Version/VersionItem.js diff --git a/public/react/src/forge/Main/Detail.js b/public/react/src/forge/Main/Detail.js index 9e007c18a..bc3a694f5 100644 --- a/public/react/src/forge/Main/Detail.js +++ b/public/react/src/forge/Main/Detail.js @@ -95,7 +95,14 @@ const NewVersionIndex = Loadable({ loader: () => import('../Version/NewVersion'), loading: Loading, }) - +const UpVersionIndex = Loadable({ + loader: () => import('../Version/UpdateVersion'), + loading: Loading, +}) +const MilepostDetail = Loadable({ + loader: () => import('../Order/MilepostDetail'), + loading: Loading, +}) const TrendsIndex = Loadable({ @@ -360,7 +367,12 @@ class Detail extends Component{ (props) => () } > - + {/*里程碑详情*/ } + () + } + > {/*修改里程碑*/} + () + } + > + + () diff --git a/public/react/src/forge/Order/Milepost.js b/public/react/src/forge/Order/Milepost.js index 9f7a2b145..12e2fdb79 100644 --- a/public/react/src/forge/Order/Milepost.js +++ b/public/react/src/forge/Order/Milepost.js @@ -1,6 +1,6 @@ import React , {Component} from 'react'; import { Link } from 'react-router-dom'; -import { Dropdown , Icon , Menu , Pagination,Typography} from 'antd'; +import { Dropdown , Icon , Menu , Pagination,Typography,Popconfirm} from 'antd'; import Nav from './Nav'; import NoneData from '../../modules/courses/coursesPublic/NoneData'; import reactCSS from 'reactcss' @@ -179,7 +179,7 @@ class Milepost extends Component{
-

{item.name}

+ {item.name}
{/*
*/} @@ -191,7 +191,7 @@ class Milepost extends Component{

{item.effective_date}

- +

{item.open_issues_count}个开启

@@ -211,7 +211,10 @@ class Milepost extends Component{

-

this.closemile(item)} >删除

+ this.closemile(item)}> +

删除

+
+
diff --git a/public/react/src/forge/Order/MilepostDetail.js b/public/react/src/forge/Order/MilepostDetail.js new file mode 100644 index 000000000..048ec4e36 --- /dev/null +++ b/public/react/src/forge/Order/MilepostDetail.js @@ -0,0 +1,238 @@ +import React , { Component } from "react"; +import {Link, NavLink} from 'react-router-dom'; +import { Input ,Dropdown , Menu , Icon , Pagination , Spin } from 'antd'; +import './order.css'; + +import NoneData from '../../modules/courses/coursesPublic/NoneData'; +import Nav from './Nav'; +import OrderItem from './OrderItem'; + + +import axios from 'axios'; + +const Search = Input.Search; +/** + * issue_chosen:下拉的筛选列表, + * data:列表接口返回的所有数据, + * issues:列表数组, + * isSpin:加载中, + * search:搜索关键字, + * author_id:发布者id, + * assigned_to_id:指派给。。。的id, + * limit:每页条数, + * page:当前页, + * search_count:列表总条数 + * issue_type:搜索条件 + * status_type: issue的关闭和开启,1表示开启中的,2表示关闭的 + */ +class MilepostDetail extends Component{ + constructor(props){ + super(props); + this.state={ + issue_chosen:undefined, + data:undefined, + issues:undefined, + isSpin:false, + search:undefined, + author_id:undefined, + assigned_to_id:undefined, + limit:15, + page:1, + search_count:undefined, + issue_type:undefined, + status_type:'1', + //设置选择高亮 + openselect:1, + closeselect:undefined, + // status_type: undefined + } + } + + componentDidMount=()=>{ + this.getSelectList(); + this.getIssueList(); + } + + getSelectList=()=>{ + const { projectsId } = this.props.match.params; + + const url = `/projects/${projectsId}/issues/index_chosen.json`; + axios.get(url).then((result)=>{ + if(result){ + this.setState({ + issue_chosen:result.data.issue_chosen + }) + } + }).catch((error)=>{ + console.log(error); + }) + } + + // 获取列表数据 + getIssueList=(page,limit,search,author_id,assigned_to_id,id,value,status_type)=>{ + const { projectsId } = this.props.match.params; + const url = `/projects/${projectsId}/issues.json`; + axios.get(url,{ + params:{ + page,limit,search,author_id,assigned_to_id,status_type, + [id]:value + } + }).then((result)=>{ + if(result){ + + this.setState({ + data:result.data, + issues:result.data.issues, + search_count:result.data.search_count, + isSpin:false + }) + } + }).catch((error)=>{ + console.log(error); + }) + } + + getOption=(e,id)=>{ + this.setState({ + [id]:e.key + }) + const { page,limit,search,author_id,assigned_to_id } = this.state; + if(e.key==="all"){ + this.getIssueList(page,limit,search,author_id,assigned_to_id,id); + }else{ + this.getIssueList(page,limit,search,author_id,assigned_to_id,id,e.key); + } + } + + renderMenu =(array,name,id)=>{ + return( + + this.getOption(e,id)}>{name} + { + array && array.length > 0 && array.map((item,key)=>{ + return( + this.getOption(e,id)}>{item.name} + ) + }) + } + + ) + } + + // 翻页 + ChangePage=(page)=>{ + this.setState({ + page, + isSpin:true + }) + const {limit,search} = this.state; + this.getIssueList(page,limit,search); + } + + // 搜索 + searchFunc=(value)=>{ + this.setState({ + search:value, + isSpin:true + }) + const {page,limit} = this.state; + this.getIssueList(page,limit,value); + } + + openorder=(type)=>{ + if(type){ + + const { current_user } = this.props; + if(type===1){ + this.setState({ + status_type:'1', + openselect:current_user.user_id, + closeselect:undefined + }) + this.getIssueList("","","","","","","",1); + + }else{ + this.setState({ + status_type:'2', + openselect:undefined, + closeselect:current_user.user_id + }) + this.getIssueList("","","","","","","",2); + } + } + } + + + + + render(){ + + const { issue_chosen , issues , limit , page , search_count , data , assigned_to_id , author_id , isSpin,openselect,closeselect } = this.state; + const { projectsId,meilid } = this.props.match.params; + + const Paginations = ( + + { + search_count > limit ? +
+ +
:"" + } +
+ ) + return( +
+
+

+
+ 编辑里程碑 + 创建工单 +
+ +
+
+

+

  • this.openorder(1)}>{data && data.open_count}个开启中
  • +
  • this.openorder(2)}>{data && data.close_count}个已关闭
  • + {/* {data && data.open_count}个开启中 + {data && data.close_count}个已关闭 */} +

    +
    + +
    +
      + + {/*
    • @我的
    • */} +
    +
      +
    • + + 标签 + +
    • +
    • + + 类型 + +
    • +
    • + + 指派人 + +
    • +
    +
    + { + search_count === 0 ? + + : + + } + { Paginations } +
    + +
    + ) + } +} +export default MilepostDetail; \ No newline at end of file diff --git a/public/react/src/forge/Order/UpdateMilepost.js b/public/react/src/forge/Order/UpdateMilepost.js index 8386306f4..4975fb39f 100644 --- a/public/react/src/forge/Order/UpdateMilepost.js +++ b/public/react/src/forge/Order/UpdateMilepost.js @@ -90,6 +90,11 @@ class UpdateMilepost extends Component{ } }) } + claertime=()=>{ + this.setState({ + selectedValue: undefined, + }) + } render(){ const { getFieldDecorator } = this.props.form; @@ -134,7 +139,7 @@ class UpdateMilepost extends Component{
    - 截止日期(可选) 清除 + 截止日期(可选) 清除
    @@ -173,12 +178,12 @@ class UpdateMilepost extends Component{ } return (
    -
    Custom header
    + onTypeChange(e.target.value)} value={type}> - - + + diff --git a/public/react/src/forge/Order/newMilepost.js b/public/react/src/forge/Order/newMilepost.js index b4e6fd0ba..1e4571487 100644 --- a/public/react/src/forge/Order/newMilepost.js +++ b/public/react/src/forge/Order/newMilepost.js @@ -16,7 +16,7 @@ class NewMilepost extends Component{ this.state={ data:undefined, value: moment('2017-01-25'), - selectedValue: moment('2020-2-12'), + selectedValue: undefined, } } @@ -59,6 +59,11 @@ class NewMilepost extends Component{ } }) } + cleartime=()=>{ + this.setState({ + selectedValue:undefined + }) + } render(){ const { getFieldDecorator } = this.props.form; @@ -101,7 +106,7 @@ class NewMilepost extends Component{
    - 截止日期(可选) 清除 + 截止日期(可选) 清除
    @@ -140,7 +145,6 @@ class NewMilepost extends Component{ } return (
    -
    Custom header
    onTypeChange(e.target.value)} value={type}> diff --git a/public/react/src/forge/Version/NewVersion.js b/public/react/src/forge/Version/NewVersion.js index 2efc824c9..d2ceebaf1 100644 --- a/public/react/src/forge/Version/NewVersion.js +++ b/public/react/src/forge/Version/NewVersion.js @@ -39,7 +39,7 @@ class NewVersion extends Component{ getSelectList=()=>{ const { projectsId } = this.props.match.params; - const url = `/projects/${projectsId}/pull_requests/new.json`; + const url = `/projects/${projectsId}/version_releases/new.json`; axios.get(url).then((result)=>{ if(result){ this.setState({ @@ -70,7 +70,7 @@ class NewVersion extends Component{ this.props.form.validateFieldsAndScroll((err, values) => { if(!err){ const { projectsId } = this.props.match.params; - const { pull,tag_name,ischeck } = this.state; + const { pull,tag_name,ischeck,fileList} = this.state; const url = `/projects/${projectsId}/version_releases.json`; // if(values.issue_type==="普通"){ // values.issue_type="1" @@ -80,7 +80,7 @@ class NewVersion extends Component{ tag_name:tag_name, draft:draft, prerelease:ischeck, - target_commitish:pull + target_commitish:pull, }).then(result=>{ if(result){ this.props.history.push(`/projects/${projectsId}/version`); @@ -178,7 +178,7 @@ class NewVersion extends Component{ )} - + {/* */}
    diff --git a/public/react/src/forge/Version/UpdateVersion.js b/public/react/src/forge/Version/UpdateVersion.js index 8b3367c02..4b2c332f0 100644 --- a/public/react/src/forge/Version/UpdateVersion.js +++ b/public/react/src/forge/Version/UpdateVersion.js @@ -27,16 +27,9 @@ class NewVersion extends Component{ } componentDidMount=()=>{ - this.InitData(); this.getSelectList(); } - InitData=()=>{ - this.props.form.setFieldsValue({ - ...this.state - }); - } - getSelectList=()=>{ const { projectsId,versionId} = this.props.match.params; const url = `/projects/${projectsId}/version_releases/${versionId}/edit.json`; @@ -53,18 +46,6 @@ class NewVersion extends Component{ } - renderSelect=(list)=>{ - if(list && list.length >0){ - return( - list.map((item,key)=>{ - return( - - ) - }) - ) - } - } - //delete deleteversion=()=>{ const { projectsId , versionId} = this.props.match.params; @@ -86,15 +67,15 @@ class NewVersion extends Component{ handleSubmit=()=>{ this.props.form.validateFieldsAndScroll((err, values) => { if(!err){ - const { projectsId} = this.props.match.params; - const { pull,tag_name,ischeck } = this.state; - const url = `/projects/${projectsId}/version_releases/.json`; + const { projectsId,versionId} = this.props.match.params; + const { pull,ischeck } = this.state; + const url = `/projects/${projectsId}/version_releases/${versionId}.json`; // if(values.issue_type==="普通"){ // values.issue_type="1" // } - axios.post(url,{ + axios.put(url,{ ...values, - tag_name:tag_name, + tag_name:this.state.data&&this.state.data.tag_name, draft:false, prerelease:ischeck, target_commitish:pull @@ -110,19 +91,13 @@ class NewVersion extends Component{ }) } - // 获取上传后的文件id数组 - UploadFunc=(fileList)=>{ - this.setState({ - fileList - }) - } RedieonChange=(e)=>{ this.setState({ ischeck:e.target.checked }) } Preservation=()=>{ - alert(this.state.ischeck) + alert(this.state.data.tag_name) } renderMenu =(array,id)=>{ @@ -154,17 +129,15 @@ class NewVersion extends Component{ render(){ const { getFieldDecorator } = this.props.form; - const { current_user,projectsId} = this.props; - const {data,pull,tag_name} = this.state; - + const { projectsId } = this.props.match.params; return(

    发布新版

    版本发布组织项目的版本。
    -
    - {data.tag_name}@{pull} +
    + {this.state.data&&this.state.data.tag_name}@{this.state.data&&this.state.data.target_commitish}
    @@ -175,7 +148,7 @@ class NewVersion extends Component{ rules: [{ required: true, message: '请输入标题' }], - initialValue: data.name + initialValue:this.state.data&&this.state.data.name })( @@ -188,13 +161,13 @@ class NewVersion extends Component{ rules: [{ required: true, message: '请输入描述内容' }], - initialValue: data.body + initialValue:this.state.data&&this.state.data.body })(