代码库-默认显示

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

View File

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