From 828cc2470d932606a4d29d17637b2db0b1fa2436 Mon Sep 17 00:00:00 2001
From: caishi <1149225589@qq.com>
Date: Fri, 29 Jan 2021 17:26:08 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83-=E6=88=91?=
=?UTF-8?q?=E7=9A=84=E7=BB=84=E7=BB=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/AppConfig.js | 2 +-
src/forge/Component/Search.jsx | 4 +-
src/forge/Team/Setting/TeamSettingCommon.jsx | 24 +++++-
src/forge/Team/Setting/TeamSettingMember.jsx | 6 +-
src/forge/users/Infos.js | 6 +-
src/forge/users/Team-item.jsx | 20 +++--
src/forge/users/Team.jsx | 81 +++++++++++++++-----
src/modules/tpm/NewHeader.js | 2 +-
8 files changed, 108 insertions(+), 37 deletions(-)
diff --git a/src/AppConfig.js b/src/AppConfig.js
index a36c05b5..a5a063b0 100644
--- a/src/AppConfig.js
+++ b/src/AppConfig.js
@@ -27,7 +27,7 @@ if (isDev) {
}
debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' :
window.location.search.indexOf('debug=s') !== -1 ? 'student' :
- window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student'
+ window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin'
}
function clearAllCookie() {
cookie.remove('_educoder_session', { path: '/' });
diff --git a/src/forge/Component/Search.jsx b/src/forge/Component/Search.jsx
index 2f192509..ec27ac28 100644
--- a/src/forge/Component/Search.jsx
+++ b/src/forge/Component/Search.jsx
@@ -2,14 +2,16 @@ import React from "react";
import { Input } from "antd";
const { Search } = Input;
-export default ({ placeholder , onSearch }) => {
+export default ({ placeholder , onSearch , value , onChange }) => {
return (
)
};
diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx
index 2e302a37..37e975fc 100644
--- a/src/forge/Team/Setting/TeamSettingCommon.jsx
+++ b/src/forge/Team/Setting/TeamSettingCommon.jsx
@@ -17,11 +17,12 @@ const radioStyle = {
lineHeight: '30px',
};
export default Form.create()(
- forwardRef(({ form , organizeDetail , showNotification , history })=>{
+ forwardRef(({ form , organizeDetail , showNotification , history , current_user })=>{
const [ image , setImage ] = useState(undefined);
const [ imageFlag , setImageFlag ] = useState(false);
const [ password , setPassword ] = useState(undefined);
- const { getFieldDecorator , validateFields, setFieldsValue} = form;
+ const [ passwordFlag , setPasswordFlag ] = useState(false);
+ const { getFieldDecorator , validateFields , setFieldsValue } = form;
useEffect(()=>{
if(organizeDetail){
@@ -67,7 +68,21 @@ export default Form.create()(
// 删除组织
function deleteOrganize(){
-
+ if(!password){
+ setPasswordFlag(true);
+ return
+ }else{
+ setPasswordFlag(false);
+ const url = `/organizations/${organizeDetail.id}.json`;
+ axios.delete(url,{
+ params:{ password }
+ }).then(result=>{
+ if(result && result.data){
+ // 删除后跳转到个人中心的组织页面
+ history.push(`/users/${current_user && current_user.login}/organizes`);
+ }
+ })
+ }
}
return(
@@ -136,7 +151,8 @@ export default Form.create()(
密码:
- setPassword(e.target.value)}/>
+ setPassword(e.target.value)}/>
+ { passwordFlag && 请输入密码}
删除组织
diff --git a/src/forge/Team/Setting/TeamSettingMember.jsx b/src/forge/Team/Setting/TeamSettingMember.jsx
index ddd35ff7..a8d7800b 100644
--- a/src/forge/Team/Setting/TeamSettingMember.jsx
+++ b/src/forge/Team/Setting/TeamSettingMember.jsx
@@ -24,13 +24,17 @@ const demoData = [
operation:"移除成员",
}
]
-export default (()=>{
+export default ((props)=>{
const [ choiceId , serChoiceId ] = useState(undefined);
const [ page , setPage ] = useState(1);
const [ limit , setLimit ] = useState(15);
const [ total , setTotal ] = useState(0);
const [ data , setData ] = useState(demoData);
+ function getData(){
+ const url = `/organizations/:organization/organization_users.json`;
+ }
+
// 获取搜索用户框里面选择的用户ID,方便添加组织成员
function getUser(id){
console.log(id);
diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js
index 77cdc2b5..0bc11ae8 100644
--- a/src/forge/users/Infos.js
+++ b/src/forge/users/Infos.js
@@ -288,7 +288,7 @@ class Infos extends Component {
}
- {/*
+
this.organize_link()} >
@@ -296,11 +296,11 @@ class Infos extends Component {
组织
- {user && user.undo_events}
+ {user && user.user_org_count}
-
*/}
+
{user && (
diff --git a/src/forge/users/Team-item.jsx b/src/forge/users/Team-item.jsx
index a09d1d58..4b7200f1 100644
--- a/src/forge/users/Team-item.jsx
+++ b/src/forge/users/Team-item.jsx
@@ -1,18 +1,22 @@
import React from 'react';
-export default (()=>{
+import { Link } from 'react-router-dom';
+import { getImageUrl } from 'educoder';
+
+function TeamItem({item}){
return(
-

-
-
组织名称组织名称
+
}/)
+
+
{item.name}
- 组织描述内容组织描述内容组织描述内容组织描述内容组织描述内容组织描述内容组织描述内容组织描述内容组织描述内容组织描述内容组织描述内
+ {item.description}
- 项目:11
- 创建时间:2020-04-28
+ 项目:{item.num_projects}
+ 创建时间:{item.created_at}
)
-})
\ No newline at end of file
+}
+export default TeamItem;
\ No newline at end of file
diff --git a/src/forge/users/Team.jsx b/src/forge/users/Team.jsx
index 6f26441c..eff9d6a1 100644
--- a/src/forge/users/Team.jsx
+++ b/src/forge/users/Team.jsx
@@ -1,38 +1,83 @@
-import React from 'react';
-import {Popover , Menu} from 'antd';
+import React , { useEffect , useState } from 'react';
+import { Dropdown, Menu , Pagination } from 'antd';
+import { Link } from 'react-router-dom';
import Search from '../Component/Search';
-import Sort from '../Component/Sort';
-
import Item from './Team-item';
+import Nodata from '../Nodata';
+import axios from 'axios';
-export default (()=>{
+const limit = 15;
+function Team(){
+ const [ list ,setList ] = useState(undefined);
+ const [ page ,setPage ] = useState(1);
+ const [ total ,setTotal ] = useState(0);
+ const [ sort_direction , setSort_direction ] = useState("asc");
+ const [ sort_by ,setSort_by ] = useState("created_at");
+ const [ search ,setSearch ] = useState(undefined);
+
+ useEffect(()=>{
+ getList(search);
+ },[sort_by,page,sort_direction])
+
+ function getList(search){
+ const url = `/organizations.json`;
+ axios.get(url,{
+ params:{
+ search,sort_by,sort_direction,page,limit
+ }
+ }).then(result=>{
+ if(result && result.data){
+ setList(result.data.organizations);
+ setTotal(result.data.total_count);
+ }
+ }).catch(error=>{})
+ }
// 搜索
- function onSearch(value){
-
+ function onSearch(){
+ getList(search);
}
const menu = (
-