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( +
+ + <span>组织首页管理</span> + + +
+

新闻动态图片

+ {setImageId(id);}}/> +

setImageId("")}>删除

+ + {getFieldDecorator("news_url",{ + rules:[] + })( + + )} + + + {getFieldDecorator("news_title",{ + rules:[] + })( + + )} + + + {getFieldDecorator("news_content",{ + rules:[] + })( + + )} + +

组织介绍

+ + + +
+ ) + }) +) \ No newline at end of file