diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index aba950566..e81ee7eb6 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -10,116 +10,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -131,36 +26,36 @@
- Educoder
- title
- textcount
- forks
- commentCtx
- 上传文件
- subFileType
- .ide
- .idea
- deleteUser
- axios.delete
- style=
- width75f
- max-width
- 请输入合并
- journal-list-item
- issue-tag-show
- 创建
- .map((item,key)=>{
.map((item,key)
评论成
- 该合并请求可以进行自动合并操作
没有
创建工单
可读权限
sub_entries
- 可读
- icon-bianji
- readOnly
isRe
+ icon-bianji
+ 可读
+ journals_count >
+ readOnly
+ Fork
+ forked
+ .OptionsUl
+ tyle=
+ overflo
+ <span className="span_title">里程碑</span>
+ <span className="span_title">里程碑
+ 分支合并到
+ Input
+ 新建标签
+ orderid
+ deletedetail
+ onMouseMove
+ commitKey
+ TextArea
+ body
+ 该合并请求可以进行自动合并操作
+ title
+ changbodypr
$PROJECT_DIR$
@@ -176,10 +71,8 @@
+
-
+
-
@@ -239,19 +139,13 @@
-
-
-
-
-
-
-
-
+
+
@@ -300,18 +194,19 @@
-
+
+
-
+
-
+
@@ -323,8 +218,8 @@
-
-
+
+
@@ -370,27 +265,22 @@
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -453,17 +343,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -549,34 +428,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -628,15 +479,6 @@
-
-
-
-
-
-
-
-
-
@@ -666,43 +508,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -722,20 +527,10 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -744,24 +539,76 @@
-
-
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -772,39 +619,116 @@
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
diff --git a/src/forge/Branch/CloneAddress.js b/src/forge/Branch/CloneAddress.js
index b83dbd85b..f20b6b980 100644
--- a/src/forge/Branch/CloneAddress.js
+++ b/src/forge/Branch/CloneAddress.js
@@ -15,7 +15,8 @@ class CloneAddress extends Component{
const { http_url , downloadUrl } = this.props;
return(
-
this.changeAddress("http")}>HTTP
+ {/* onClick={()=>this.changeAddress("http")} */}
+
HTTP
{/*
this.changeAddress("ssh")}>SSH */}
diff --git a/src/forge/Branch/branch.css b/src/forge/Branch/branch.css
index a8c1deeec..5f9ae58f6 100644
--- a/src/forge/Branch/branch.css
+++ b/src/forge/Branch/branch.css
@@ -17,20 +17,22 @@
box-shadow: 0px 0px 1px 1px rgba(134, 134, 134, 0.1);
border-radius: 3px;
background: #fff;
- max-height: 200px;
+ max-height: 300px;
}
.OptionsUl{
max-height: 200px;
overflow-y: auto;
+ margin-top: 10px;
}
.OptionsUl li{
- height: 22px;
- line-height: 22px;
- cursor: pointer;;
+ height: 30px;
+ /*line-height: 22px;*/
+ cursor: pointer;
}
.OptionsUl li a{
display: block;
- padding-left: 2px;
+ padding: 4px;
+ /*padding-left: 2px;*/
}
.OptionsInput{
height: 32px;
diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js
index 21186ff9e..a431ecdf7 100644
--- a/src/forge/Main/CoderRootDirectory.js
+++ b/src/forge/Main/CoderRootDirectory.js
@@ -48,6 +48,7 @@ class CoderRootDirectory extends Component{
}
componentDidMount=()=>{
+
let { search } = this.props.history.location;
let branchName = undefined;
if(search && search.indexOf("branch")>-1){
@@ -63,7 +64,6 @@ class CoderRootDirectory extends Component{
// 获取根目录
getProjectRoot=(branch)=>{
const { projectsId } = this.props.match.params;
- console.log(this.props);
const url = `/repositories/${projectsId}/entries.json`;
axios.get((url),{
params:{
@@ -89,6 +89,7 @@ class CoderRootDirectory extends Component{
ChangeFile=(arr,index)=>{
this.renderUrl(arr.name,arr.path,arr.type);
+ //点击直接跳转页面 加载一次路由
this.getFileDetail(arr);
this.setState({
subFileType:arr.type
@@ -125,8 +126,6 @@ class CoderRootDirectory extends Component{
getFileDetail=(arr)=>{
const { projectsId } = this.props.match.params;
const { branch } = this.state;
-
-
const url =`/repositories/${projectsId}/sub_entries.json`;
axios.get(url,{
@@ -142,6 +141,10 @@ class CoderRootDirectory extends Component{
rootList:undefined
})
}else{
+ if(arr.type===""){
+ this.props.showNotification('该文件夹下已无文件')
+ return
+ }
this.setState({
fileDetail:undefined
})
diff --git a/src/forge/Main/CoderRootDirectorytext.js b/src/forge/Main/CoderRootDirectorytext.js
new file mode 100644
index 000000000..0eb58b8f9
--- /dev/null
+++ b/src/forge/Main/CoderRootDirectorytext.js
@@ -0,0 +1,333 @@
+import React , { Component } from 'react';
+import {Menu, Spin} from 'antd';
+import { getImageUrl , markdownToHTML } from 'educoder';
+import { Router , Route , Link } from 'react-router-dom';
+import Top from './DetailTop';
+
+import './list.css';
+
+import SelectBranch from '../Branch/SelectBranch';
+import CloneAddress from '../Branch/CloneAddress';
+import RootTable from './RootTable';
+import CoderRootFileDetail from './CoderRootFileDetail';
+import NullData from './NullData';
+
+import axios from 'axios';
+/**
+ * address:http和SSH,http_url(对应git地址)
+ * branch:当前分支
+ * filePath:点击目录时当前目录的路径
+ * subfileType:保存当前点击目录的文件类型(显示目录列表时才显示新建文件,如果点击的是文件就不显示新建文件按钮)
+ * readMeContent:根目录下面的readme文件内容
+ */
+class CoderRootDirectorytext extends Component{
+ constructor(props){
+ super(props);
+ this.state={
+ address:"http",
+ branch:"master",
+ filePath:[],
+ http_url:undefined,
+ subFileType:"",
+ readMeContent:undefined,
+
+ isSpin:true,
+
+ branchList:undefined,
+ fileDetail:undefined,
+ branchLastCommit:undefined,
+
+ rootData:undefined
+ }
+ }
+ changeAddress=(address)=>{
+ this.setState({
+ address
+ })
+ }
+
+ componentDidMount=()=>{
+
+ let { search } = this.props.history.location;
+ let branchName = undefined;
+ if(search && search.indexOf("branch")>-1){
+ branchName = search.split("=")[1];
+ this.setState({
+ branch:branchName
+ })
+ }
+ const { branch } = this.state;
+ this.getProjectRoot(branchName || branch);
+ }
+
+ // 获取根目录
+ getProjectRoot=(branch)=>{
+ const { projectsId } = this.props.match.params;
+ const url = `/repositories/${projectsId}/entries.json`;
+ axios.get((url),{
+ params:{
+ branch
+ }
+ }).then((result)=>{
+ if(result){
+ if(result && result.data && result.data.length > 0){
+ this.setState({
+ filePath:[],
+ fileDetail:undefined,
+ isSpin: false
+ })
+ this.renderData(result.data);
+ }
+ this.setState({
+ rootData:result.data
+ })
+ }
+
+ }).catch((error)=>{})
+ }
+
+ ChangeFile=(arr,index)=>{
+ this.renderUrl(arr.name,arr.path,arr.type);
+ //点击直接跳转页面 加载一次路由
+ this.getFileDetail(arr);
+ this.setState({
+ subFileType:arr.type
+ })
+ }
+
+ renderUrl=(name,path,type)=>{
+ let list =[];
+ const { filePath } = this.state;
+ if(path.indexOf("/")){
+ const array = path.split("/");
+ let str = "";
+ array.map((i,k)=>{
+ str += '/'+i;
+ return list.push({
+ index:k,
+ name:i,
+ path:str.substr(1),
+ type:(filePath && filePath.length>0) ? (filePath[k] ? filePath[k].type : type) : type
+ })
+ })
+ }else{
+ list.push({
+ index:0,
+ name,path,type
+ })
+ }
+ this.setState({
+ filePath:list
+ })
+ }
+
+ // 获取子目录
+ getFileDetail=(arr)=>{
+ const { projectsId } = this.props.match.params;
+ const { branch } = this.state;
+ const url =`/repositories/${projectsId}/sub_entries.json`;
+
+ axios.get(url,{
+ params:{
+ filepath:arr.path,
+ ref:branch
+ }
+ }).then((result)=>{
+ if(result && result.data && result.data.length > 0){
+ if(arr.type==="file"){
+ this.setState({
+ fileDetail:result.data[0],
+ rootList:undefined
+ })
+ }else{
+ if(arr.type===""){
+ this.props.showNotification('该文件夹下已无文件')
+ return
+ }
+ this.setState({
+ fileDetail:undefined
+ })
+ this.renderData(result.data)
+ }
+ }
+ }).catch((error)=>{
+ console.log(error);
+ })
+ }
+
+ renderData=(data)=>{
+ const rootList = [];
+ const readMeContent = [];
+ data && data.map((item,key)=>{
+ rootList.push({
+ key,
+ ...item
+ })
+ if(item.name === 'README.md'){
+ readMeContent.push({...item})
+ }
+ })
+ this.setState({
+ rootList:rootList,
+ readMeContent
+ })
+ }
+
+ // readme文件内容
+ renderReadMeContent=(readMeContent)=>{
+ const { fileDetail } = this.state;
+ if(fileDetail){return;}
+ if(readMeContent && readMeContent.length > 0){
+ return(
+
+
{readMeContent[0].name}
+
+ {
+ readMeContent[0].content ?
+
+ :
+
暂无~
+ }
+
+
+ )
+ }
+ }
+
+ // 选择分支
+ changeBranch=(value)=>{
+ const { branchList } = this.props;
+
+ let branchLastCommit = branchList && branchList.length >0 && branchList.filter(item=>item.name === value)[0];
+ this.setState({
+ branch:branchLastCommit && branchLastCommit.name,
+ branchLastCommit,
+ http_url:branchLastCommit && branchLastCommit.http_url,
+ isSpin: true
+ })
+ this.getProjectRoot(branchLastCommit.name);
+
+ }
+ render(){
+ const { rootList , branch ,filePath , fileDetail , subFileType , readMeContent, isSpin , rootData } = this.state;
+ const { branchLastCommit , http_url , isManager , isDeveloper } = this.props;
+ const { projectsId } = this.props.match.params;
+
+ const columns = [
+ {
+ dataIndex: 'name',
+ width:"100%",
+ render: (text,item) => (
+ this.ChangeFile(item)}>
+ {text}
+
+ ),
+ }
+ ];
+ const title = () =>{
+ if(branchLastCommit && branchLastCommit.last_commit){
+ return(
+
+ {
+ branchLastCommit.author ?
+
+
+ {branchLastCommit.author.login}
+
+ :""
+ }
+
{branchLastCommit.last_commit.id}
+
{branchLastCommit.last_commit.message}
+
{branchLastCommit.last_commit.time_from_now}
+
+ )
+ }else{
+ return undefined;
+ }
+ }
+
+ const downloadUrl = ()=>{
+ if(branchLastCommit && branchLastCommit.zip_url){
+ return(
+
+ )
+ }
+ }
+
+ const urlRoot = filePath && filePath.length > 0 ? `/${filePath[filePath.length - 1].path}` : "";
+ return(
+
+ {
+ rootData &&
+
+ {
+ rootData.length > 0 ?
+
+
+
+
+
+ {
+ subFileType !== "file" && (isManager || isDeveloper) &&
+
+ 新建文件
+ {/* 上传文件 */}
+
+ }
+ {
+ filePath && filePath.length === 0 &&
+ }
+
+
+
+ {/* 文件夹-子目录列表 */}
+ {
+ rootList && title()}>
+ }
+
+ {
+ fileDetail &&
+
+ }
+
+ {/* readme.txt */}
+ { this.renderReadMeContent(readMeContent) }
+
+
+ :
+
+ }
+
+ }
+
+ )
+ }
+}
+export default CoderRootDirectorytext;
diff --git a/src/forge/Main/CoderRootIndex.js b/src/forge/Main/CoderRootIndex.js
index 25a17b462..5ffb3cff0 100644
--- a/src/forge/Main/CoderRootIndex.js
+++ b/src/forge/Main/CoderRootIndex.js
@@ -21,6 +21,7 @@ const CoderRootBranch = Loadable({
loader: () => import('./CoderRootBranch'),
loading: Loading,
})
+
class CoderRootIndex extends Component{
render(){
diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js
index 2bace9299..b33fb1ed1 100644
--- a/src/forge/Main/Detail.js
+++ b/src/forge/Main/Detail.js
@@ -251,9 +251,19 @@ class Detail extends Component{
isSpin:false
})
} else {
- this.props.showNotification(`服务器开小差了`);
+ if(result.data.status !== 401){
+ this.props.showNotification(result.data.message);
+ }else{
+ this.setState({
+ isSpin:false
+ })
+ this.props.showNotification(`服务器开小差了`);
+ }
}
}).catch(error=>{
+ this.setState({
+ isSpin:false
+ })
console.log(error);
})
}
diff --git a/src/forge/Merge/MergeDetail.js b/src/forge/Merge/MergeDetail.js
index 47d853fd7..3312ba8f1 100644
--- a/src/forge/Merge/MergeDetail.js
+++ b/src/forge/Merge/MergeDetail.js
@@ -255,12 +255,18 @@ class MergeDetail extends Component{
{ data && data.issue.description}
-
+
{data&&data.issue_status==="关闭"?"关闭中!":"开启中!"}
- 由 { data && data.issue.author_name} 于 { data && data.issue.created_at }创建{ data && data.issue.journals_count && data.issue.journals_count > 0 ?` · ${data.issue.journals_count} 条评论`:""}
+
+ 由 { data && data.issue.author_name} 于 { data && data.issue.created_at }创建{ data && data.issue.journals_count && data.issue.journals_count > 0 ?` · ${data.issue.journals_count} 条评论`:""}
+
+
+
+ 请求从 {data && data.pull_request.head} 分支合并到 {data && data.pull_request.base} 分支
+
-
+
@@ -313,9 +319,9 @@ class MergeDetail extends Component{
指派给
{data && data.issue.assign_user_name}
-
+
里程碑
- {data&&data.issue.version===null?"未添加里程碑":data&&data.issue.version.length===0?data.issue.version:'未添加里程碑'}
+ {data&&data.issue.version===null?"未添加里程碑":data&&data.issue.version.length===0?data.issue.version:'未添加里程碑'}
diff --git a/src/forge/Merge/MergeItem.js b/src/forge/Merge/MergeItem.js
index ea55f1bf4..553a4a6d7 100644
--- a/src/forge/Merge/MergeItem.js
+++ b/src/forge/Merge/MergeItem.js
@@ -1,7 +1,29 @@
import React , { Component } from 'react';
import { Link } from 'react-router-dom';
+import {Popconfirm} from "antd";
class MergeItem extends Component{
+ constructor(props){
+ super(props);
+ this.state={
+ //显示 隐藏
+ isdisplay:false,
+ orderid:'',
+ }
+ }
+
+ onMouseMove=(type)=>{
+ this.setState({
+ isdisplay:true,
+ orderid:type
+ })
+ }
+
+ onMouseOut=()=>{
+ this.setState({
+ isdisplay:false
+ })
+ }
set_issue_tags =(issue_tags)=>{
if(issue_tags && issue_tags.length > 0){
@@ -41,12 +63,23 @@ class MergeItem extends Component{
}
-
+ this.onMouseMove(item.id)} onMouseOut={()=>this.onMouseOut()}>
- {this.set_issue_tags(item.issue_tags)}
{/*- {item.issue_type || "--"}
*/}
- {item.version || "--"}
- {item.assign_user_name || "--"}
- - { item.journals_count ? {item.journals_count} : "" }
+ -
+
+
+ { item.journals_count ? {item.journals_count} : "" }
+
+
+
+
)
diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js
index 9537a8dd0..60743728f 100644
--- a/src/forge/Merge/MessageCount.js
+++ b/src/forge/Merge/MessageCount.js
@@ -11,7 +11,7 @@ import './merge.css';
import QuillForEditor from '../quillForEditor';
import MergeSubmit from './MergeSubmit';
-// const TextArea = Input.TextArea;
+const TextArea = Input.TextArea;
const options = [
['bold', 'italic', 'underline'],
@@ -20,6 +20,7 @@ const options = [
['link', 'image'],
['formula']
];
+
class MessageCount extends Component{
constructor(props){
super(props);
@@ -182,7 +183,7 @@ class MessageCount extends Component{
project_id:projectsId,
id:data.pull_request.id,
do:mergekey,
- body:JSON.stringify(body),
+ body:body,
title:title,
}).then(result=>{
if(result){
@@ -250,9 +251,9 @@ class MessageCount extends Component{
})
}
- changbodypr=(value)=>{
+ changbodypr=(e)=>{
this.setState({
- body:value
+ body:e.target.value
})
}
editdetail=(count,status)=>{
@@ -502,9 +503,13 @@ class MessageCount extends Component{
}
{data&&data.issue.issue_status==="关闭"?"关闭中":data&&data.pull_request.status===0?"开启中":"已合并"}
-
+
由 { data && data.issue.author_name} 于 { data && data.issue.created_at }创建{ data && data.issue.journals_count && data.issue.journals_count > 0 ?` · ${data.issue.journals_count} 条评论`:""}
+
+
+ 请求从 {data && data.pull_request.head} 分支合并到 {data && data.pull_request.base} 分支
+
{
data && data.issue.user_permission ?
@@ -562,21 +567,21 @@ class MessageCount extends Component{
-
-
-
- {/*
*/}
+ {/*
*/}
+ {/**/}
+ {/*
*/}
+
this.prmerge()}>合并请求
@@ -634,9 +639,9 @@ class MessageCount extends Component{
data && data.issue.issue_tags ? {data.issue.issue_tags[0].name} : "--"
}
-
+
里程碑
- {
+ {
data && data.issue.version ? data.issue.version : "--"
}
diff --git a/src/forge/Merge/merge.js b/src/forge/Merge/merge.js
index 504dbde49..948e75bbc 100644
--- a/src/forge/Merge/merge.js
+++ b/src/forge/Merge/merge.js
@@ -167,6 +167,7 @@ class merge extends Component{
this.setState({
status_type:'1',
closeselect:undefined,
+ openselect:'123',
issue_tag_ids:'标签',
fixed_version_ids:'里程碑',
assigned_to_ids:'指派人',
@@ -178,6 +179,8 @@ class merge extends Component{
this.setState({
status_type:'2',
openselect:undefined,
+ closeselect:'123',
+
issue_tag_ids:'标签',
fixed_version_ids:'里程碑',
assigned_to_ids:'指派人',
diff --git a/src/forge/Order/Detail.js b/src/forge/Order/Detail.js
index 1514e08bb..aa2360656 100644
--- a/src/forge/Order/Detail.js
+++ b/src/forge/Order/Detail.js
@@ -329,7 +329,7 @@ class Detail extends Component{
commentCtx = (ctx) => {
let _ctx = null;
-
+
try {
_ctx = JSON.parse(ctx);
} catch (e) {
@@ -574,9 +574,9 @@ class Detail extends Component{
data && data.issue_tags ? {data.issue_tags[0].name} : "--"
}
-
+
里程碑
- {
+ {
data && data.version ? data.version : "--"
}
diff --git a/src/forge/Order/Milepost.js b/src/forge/Order/Milepost.js
index d6403ae78..66da088f7 100644
--- a/src/forge/Order/Milepost.js
+++ b/src/forge/Order/Milepost.js
@@ -41,6 +41,7 @@ class Milepost extends Component{
}
}).then((result)=>{
if(result){
+
this.setState({
data:result.data
})
@@ -173,10 +174,10 @@ class Milepost extends Component{
if(data && data.versions && data.versions.length>0 ){
return(
-
{
- data.versions.map((item,key)=>{
+
+ data.versions.length===0?
:data.versions.map((item,key)=>{
return(
@@ -279,20 +280,20 @@ class Milepost extends Component{
-
-
- this.opneMilelist(1)}>{data && data.open_count ? data.open_count : 0}个开启中
-
- this.opneMilelist(2)}>{data && data.closed_count ? data.closed_count : 0}个已关闭
- {/*
{ data && data.open_count }开启中
+
+
- this.opneMilelist(1)}>{data && data.open_count}个开启中
+ - this.opneMilelist(2)}>{data && data.closed_count}个已关闭
+ {/* { data && data.open_count }开启中
{ data && data.closed_count }已关闭 */}
+
+
-
-
{ renderList()}
{ Paginations }
diff --git a/src/forge/Order/Milepostitem.js b/src/forge/Order/Milepostitem.js
new file mode 100644
index 000000000..b61ff750d
--- /dev/null
+++ b/src/forge/Order/Milepostitem.js
@@ -0,0 +1,106 @@
+import React , { Component } from 'react';
+import { Link } from 'react-router-dom';
+
+class OrderItem extends Component{
+ set_issue_tags =(issue_tags)=>{
+ if(issue_tags && issue_tags.length > 0){
+ return(
+ issue_tags.map((item,key)=>{
+ return(
+
{item.name}
+ )
+ })
+ )
+ }else{
+ return("--")
+ }
+ }
+
+ render(){
+ const { issues , search_count , page , limit } = this.props;
+ const { projectsId } = this.props.match.params;
+
+ const renderList =()=>{
+ data.versions.map((item,key)=>{
+ return(
+
+
+
+
+
+
+
+
+ {
+ item.effective_date ?
+ {item.effective_date}
+ :
+ 暂无截止时间
+ }
+
+
+
+
+ {item.open_issues_count}个开启
+
+
+
+
+
+ {item.close_issues_count}个关闭
+
+
+
+ {
+ data && data.user_admin_or_member ?
+
+
+
+ 编辑
+
+
+
+
+
this.closemile(item)}>
+ 删除
+
+
+
+
+ : ''
+ }
+
+
+
+
+
+ {item.description}
+
+
+
+ )
+ })
+ }
+ return(
+
+ {renderList()}
+
+ )
+ }
+}
+
+export default OrderItem;
\ No newline at end of file
diff --git a/src/forge/Order/OrderItem.js b/src/forge/Order/OrderItem.js
index 86bba7ca1..ba09be430 100644
--- a/src/forge/Order/OrderItem.js
+++ b/src/forge/Order/OrderItem.js
@@ -1,7 +1,18 @@
import React , { Component } from 'react';
import { Link } from 'react-router-dom';
+import { Popconfirm} from 'antd'
+
+
class OrderItem extends Component{
+ constructor(props){
+ super(props);
+ this.state={
+ //显示 隐藏
+ isdisplay:false,
+ orderid:'',
+ }
+ }
set_issue_tags =(issue_tags)=>{
if(issue_tags && issue_tags.length > 0){
return(
@@ -16,6 +27,23 @@ class OrderItem extends Component{
}
}
+ deletedetail=(id)=>{ // 学习挣钱,调用父组件方法
+ this.props.deletedetail(id);
+ }
+
+ onMouseMove=(type)=>{
+ this.setState({
+ isdisplay:true,
+ orderid:type
+ })
+ }
+
+ onMouseOut=()=>{
+ this.setState({
+ isdisplay:false
+ })
+ }
+
render(){
const { issues , search_count , page , limit } = this.props;
const { projectsId } = this.props.match.params;
@@ -41,15 +69,33 @@ class OrderItem extends Component{
}
-
+ this.onMouseMove(item.id)} onMouseOut={()=>this.onMouseOut()} >
- {this.set_issue_tags(item.issue_tags)}
{/*- {item.issue_type || "--"}
*/}
- {item.tracker || "--"}
- {item.author_name || "--"}
- {item.assign_user_name || "--"}
- - {item.priority || "--"}
+ {item.priority|| "--"}
- {item.done_ratio || "--"}
- - { item.journals_count ? {item.journals_count} : "" }
+ -
+
+
+ { item.journals_count ? {item.journals_count} : "" }
+
+
+
+
+
+
+
this.deletedetail(item.id)}>
+
+
+
+
+
+
+
+
)
diff --git a/src/forge/Order/order.css b/src/forge/Order/order.css
index 6fc05c65b..78b1b22be 100644
--- a/src/forge/Order/order.css
+++ b/src/forge/Order/order.css
@@ -164,6 +164,15 @@
.topWrapper .ant-btn.ant-input-search-button{
height: 30px;
}
+.title_overflow{
+ max-width: 220px;
+ white-space: nowrap;
+ overflow: hidden;
+ display: inline-flex;
+ white-space: nowrap;
+ -o-text-overflow: ellipsis;
+ text-overflow: ellipsis;
+}
.topWrapper_select li{
text-align: center;
cursor: pointer;
diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js
index 3751c0ac9..ea486a7aa 100644
--- a/src/forge/Order/order.js
+++ b/src/forge/Order/order.js
@@ -217,12 +217,14 @@ class order extends Component{
openorder=(type)=>{
if(type){
-
+ console.log(this.state.closeselect+"|"+this.state.openselect)
const { current_user } = this.props;
if(type===1){
this.setState({
status_type:'1',
closeselect:undefined,
+ openselect:1,
+
issue_tag_ids:'标签',
tracker_ids:'所有分类',
author_ids:'发布人',
@@ -237,6 +239,8 @@ class order extends Component{
this.setState({
status_type:'2',
openselect:undefined,
+ closeselect:1,
+
issue_tag_ids:'标签',
tracker_ids:'所有分类',
author_ids:'发布人',
@@ -260,12 +264,13 @@ class order extends Component{
this.setState({
isSpin:true
})
+ console.log(current_user)
+
if(type){
if(current_user===undefined){
this.setState({
isSpin:false
})
- alert("请登录后查看")
return;
}
if(type===1){
@@ -314,6 +319,22 @@ class order extends Component{
this.getIssueList(1,limit,search,undefined,undefined,status_type);
}
}
+ deletedetail=(id)=>{
+ const { projectsId} = this.props.match.params;
+ const url = `/projects/${projectsId}/issues/${id}.json`;
+ axios.delete(url,{ data: {
+ project_id: projectsId,
+ id:id
+ }
+ }).then((result)=>{
+ if(result){
+ this.getIssueList()
+ }
+ }).catch((error)=>{
+ console.log(error);
+ })
+ console.log(id)
+ }
render(){
const { current_user } = this.props;
@@ -373,8 +394,8 @@ class order extends Component{
- this.ChangeAssign()}>全部
{}
- - this.ChangeAssign(1)}>指派给我
- - this.ChangeAssign(2)}>由我创建
+ - this.ChangeAssign(1)}>指派给我
+ - this.ChangeAssign(2)}>由我创建
{/* - @我的
*/}