From 67c0a307ca90711fecd3d96b3d6e150cd8625b1f Mon Sep 17 00:00:00 2001
From: caishi <1149225589@qq.com>
Date: Wed, 26 Apr 2023 18:01:42 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E8=AE=BE=E7=BD=AE-=E9=A6=96?=
=?UTF-8?q?=E9=A1=B5=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/forge/Team/Component/UploadImage.jsx | 6 +-
src/forge/Team/List.jsx | 2 +-
src/forge/Team/Setting/TeamSettingIndex.jsx | 17 +++-
src/forge/Team/Setting/TeamSettingPage.jsx | 97 +++++++++++++++++++++
4 files changed, 115 insertions(+), 7 deletions(-)
create mode 100644 src/forge/Team/Setting/TeamSettingPage.jsx
diff --git a/src/forge/Team/Component/UploadImage.jsx b/src/forge/Team/Component/UploadImage.jsx
index e723002b7..6b7ef8e68 100644
--- a/src/forge/Team/Component/UploadImage.jsx
+++ b/src/forge/Team/Component/UploadImage.jsx
@@ -5,9 +5,7 @@ import { getUploadActionUrl } from 'educoder';
function UploadImage({ getImage , url, getImageId }){
const [ imageUrl , setImageUrl ] = useState(undefined);
useEffect(()=>{
- if(url){
- setImageUrl(url);
- }
+ setImageUrl(url);
},[url])
function getBase64(img, callback) {
@@ -33,7 +31,6 @@ function UploadImage({ getImage , url, getImageId }){
// 上传完成后
function handleChange(info){
if(info && info.file && info.file.status === "done"){
- console.log('info', info);
getImageId && getImageId(info.file.response.id);
getBase64(info.file.originFileObj, imageUrl =>
setImageUrl(imageUrl)
@@ -49,6 +46,7 @@ function UploadImage({ getImage , url, getImageId }){
action={getUploadActionUrl()}
beforeUpload={beforeUpload}
onChange={handleChange}
+ accept="image/*"
>
{
imageUrl ?
diff --git a/src/forge/Team/List.jsx b/src/forge/Team/List.jsx
index 749bcbe31..b5bb26de4 100644
--- a/src/forge/Team/List.jsx
+++ b/src/forge/Team/List.jsx
@@ -163,7 +163,7 @@ function List(props){
组织介绍
- {organizeDetail.description}
+ {organizeDetail.memo}
}
diff --git a/src/forge/Team/Setting/TeamSettingIndex.jsx b/src/forge/Team/Setting/TeamSettingIndex.jsx
index 02f6eda33..b5f4f368c 100644
--- a/src/forge/Team/Setting/TeamSettingIndex.jsx
+++ b/src/forge/Team/Setting/TeamSettingIndex.jsx
@@ -16,6 +16,10 @@ const Member = Loadable({
loader: () => import("./TeamSettingMember"),
loading: Loading,
});
+const Index = Loadable({
+ loader: () => import("./TeamSettingPage"),
+ loading: Loading,
+});
const Common = Loadable({
loader: () => import("./TeamSettingCommon"),
loading: Loading,
@@ -39,17 +43,20 @@ export default (( props )=>{
function returnActive (pathname){
let a = 0;
if(pathname === `/${OIdentifier}/setting/member`){
+ a = 2;
+ }else if(pathname === `/${OIdentifier}/setting/index`){
a = 1;
}else if(pathname === `/${OIdentifier}/setting/group`){
- a = 2;
- }else if(pathname === `/${OIdentifier}/setting/hooks`){
a = 3;
+ }else if(pathname === `/${OIdentifier}/setting/hooks`){
+ a = 4;
}
return a;
}
const active = returnActive(pathname);
const array = {list:[
{name:'基本设置',icon:"icon-base",href:`/${OIdentifier}/setting`},
+ {name:'组织首页管理',icon:"icon-huabanfuben",href:`/${OIdentifier}/setting/index`},
{name:'组织成员管理',icon:"icon-zuzhichengyuan",href:`/${OIdentifier}/setting/member`},
{name:'组织团队管理',icon:"icon-zuzhixiangmu",href:`/${OIdentifier}/setting/group`},
// {name:'管理web钩子',icon:"icon-zhongqingdianxinicon10",href:`/${OIdentifier}/setting/hooks`}
@@ -71,6 +78,12 @@ export default (( props )=>{
)}
>
+ (
+
+ )}
+ >
(
diff --git a/src/forge/Team/Setting/TeamSettingPage.jsx b/src/forge/Team/Setting/TeamSettingPage.jsx
new file mode 100644
index 000000000..84463e332
--- /dev/null
+++ b/src/forge/Team/Setting/TeamSettingPage.jsx
@@ -0,0 +1,97 @@
+import React, { useEffect, useState , forwardRef } from 'react';
+import { Button, Form , Input } from 'antd';
+import Title from '../../Component/Title';
+import MDEditor from "../../../modules/tpm/challengesnew/tpm-md-editor";
+import UploadImage from '../Component/UploadImage';
+import {getImageUrl } from 'educoder';
+import axios from 'axios';
+
+export default Form.create()(forwardRef((props)=>{
+ const { form , organizeDetail } = props;
+ const OIdentifier = props.match.params.OIdentifier;
+ const { getFieldDecorator , validateFields , setFieldsValue , getFieldsValue} = form;
+ const [ content , setContent ] = useState("");
+ const [ imageUrl , setImageUrl ] = useState("");
+ const [ imageId , setImageId ] = useState(undefined);
+
+ useEffect(()=>{
+ let url = imageId ? getImageUrl(`/api/attachments/${imageId}`) :"";
+ setImageUrl(url);
+ },[imageId])
+
+ useEffect(()=>{
+ if(organizeDetail){
+ setContent(organizeDetail.memo);
+ setFieldsValue({
+ ...organizeDetail
+ })
+ setImageId(organizeDetail.news_banner_id);
+ }
+ },[organizeDetail])
+
+
+ function onChangeDesc(v){
+ setContent(v);
+ }
+
+ function save(){
+ validateFields((error,values)=>{
+ if(!error){
+ const url = `/organizations/${OIdentifier}/update_other.json`;
+ axios.post(url,{
+ ...values,
+ memo:content,
+ news_banner_id:imageId
+ }).then(result=>{
+ if(result){
+ props.showNotification("组织首页更新成功!");
+ }
+ }).catch(error=>{})
+ }
+ })
+ }
+ return(
+
+ )
+ })
+)
\ No newline at end of file