代码库-默认显示

This commit is contained in:
caishi 2021-03-22 11:24:07 +08:00
parent 31edf6ff45
commit 0290822ebf
2 changed files with 111 additions and 79 deletions

View File

@ -1,107 +1,139 @@
import React, { useEffect, useState } from 'react';
import { Table , Button , Popconfirm , Pagination } from 'antd';
import { Link } from 'react-router-dom';
import axios from 'axios';
import React, { useEffect, useState } from "react";
import { Table, Button, Popconfirm, Pagination } from "antd";
import { Link } from "react-router-dom";
import axios from "axios";
const roles = {
owner:"所有者",
admin:"管理者",
write:"开发者",
read:"报告者"
}
owner: "所有者",
admin: "管理者",
write: "开发者",
read: "报告者",
};
const limit = 15;
function CollaboratorGroup({newGroupId,owner , projectsId}){
const [ list , setList ] = useState(undefined);
const [ isSpin , setIsSpin ] = useState(false);
const [ page , setPage ] = useState(1);
const [ total , setTotal ] = useState(0);
function CollaboratorGroup({ newGroupId, owner, projectsId }) {
const [list, setList] = useState(undefined);
const [isSpin, setIsSpin] = useState(true);
const [page, setPage] = useState(1);
const [total, setTotal] = useState(0);
useEffect(()=>{
useEffect(() => {
getData();
},[])
}, []);
function getData(){
function getData() {
const url = `/${owner}/${projectsId}/teams.json`;
axios.get(url,{
params:{
page,limit
}
}).then(result=>{
if(result && result.data){
setList(result.data.teams);
setTotal(result.data.total_count);
}
}).catch(error=>{})
axios
.get(url, {
params: {
page,
limit,
},
})
.then((result) => {
if (result && result.data) {
setList(result.data.teams);
setTotal(result.data.total_count);
setIsSpin(false);
}
})
.catch((error) => {});
}
useEffect(()=>{
if(newGroupId){
useEffect(() => {
if (newGroupId) {
addGroup(newGroupId);
}
},[newGroupId])
}, [newGroupId]);
//
function addGroup(id){
function addGroup(id) {
const url = `/${owner}/${projectsId}/teams.json`;
axios.post(url,{
team_id:id
}).then(result=>{
if(result && result.data){
getData();
}
}).catch(error=>{})
axios
.post(url, {
team_id: id,
})
.then((result) => {
if (result && result.data) {
getData();
}
})
.catch((error) => {});
}
//
function deleteGroup(id){
function deleteGroup(id) {
const url = `/${owner}/${projectsId}/teams/${id}.json`;
axios.delete(url).then(result=>{
if(result && result.data){
getData();
}
}).catch(error=>{})
axios
.delete(url)
.then((result) => {
if (result && result.data) {
getData();
}
})
.catch((error) => {});
}
const columns = [
{
title:"团队名",
dataIndex:"name",
render:(value,item)=>{
return <Link to={`/organize/${owner}/group/${item.id}`}>{value}</Link>
}
},{
title:"权限",
dataIndex:"authorize",
width:"20%",
render:(value,item)=>{
return roles[value]
}
},{
title:"操作",
dataIndex:"operation",
width:"25%",
render:(value,item)=>{
return(
item.can_remove && <Popconfirm title={`确定要删除‘${item.name}’团队?`} okText="是" cancelText="否" onConfirm={()=>{deleteGroup(item.id)}}><Button type="danger">删除</Button></Popconfirm>
)
}
}
]
return(
<div className="padding20-30" style={{minHeight:"400px"}}>
title: "团队名",
dataIndex: "name",
render: (value, item) => {
return <Link to={`/organize/${owner}/group/${item.id}`}>{value}</Link>;
},
},
{
title: "权限",
dataIndex: "authorize",
width: "20%",
render: (value, item) => {
return roles[value];
},
},
{
title: "操作",
dataIndex: "operation",
width: "25%",
render: (value, item) => {
return (
item.can_remove && (
<Popconfirm
title={`确定要删除‘${item.name}’团队?`}
okText="是"
cancelText="否"
onConfirm={() => {
deleteGroup(item.id);
}}
>
<Button type="danger">删除</Button>
</Popconfirm>
)
);
},
},
];
return (
<div className="padding20-30" style={{ minHeight: "400px" }}>
<Table
dataSource={list}
columns={columns}
pagination={false}
loading={isSpin}
></Table>
{
total > limit ?
{total > limit ? (
<div className="pb20 mt20 edu-txt-center">
<Pagination simple current={page}total={total} pageSize={limit} onChange={(page)=>{setPage(page)}}/>
<Pagination
simple
current={page}
total={total}
pageSize={limit}
onChange={(page) => {
setPage(page);
}}
/>
</div>
:""
}
) : (
""
)}
</div>
)
);
}
export default CollaboratorGroup;
export default CollaboratorGroup;

View File

@ -24,7 +24,7 @@ class Setting extends Component {
LanguageList: undefined,
private_check: undefined,
loading:true,
project_units:['home',"activity"]
project_units:['home',"activity","code"]
};
}
@ -122,7 +122,7 @@ class Setting extends Component {
const { projectsId , owner } = this.props.match.params;
const navUrl = `/${owner}/${projectsId}/project_units.json`;
let unit = values.project_units.filter(item => (item !== "home" && item!== "activity"));
let unit = values.project_units.filter(item => (item !== "home" && item!== "activity" && item!== "code"));
axios.post(navUrl, {
unit_types:unit
}).then((result) => {
@ -261,7 +261,7 @@ class Setting extends Component {
<Checkbox
key={key}
value={item.index}
disabled={item.index === "home" || item.index === "activity"}
disabled={item.index === "home" || item.index === "activity" || item.index === "code"}
>{item.name}</Checkbox>
)
})