项目详情右侧增加实践课程链接的显示

This commit is contained in:
caishi 2021-04-08 15:37:01 +08:00
parent 43223c7787
commit 78aba67917
2 changed files with 25 additions and 7 deletions

View File

@ -44,6 +44,7 @@ function CoderDepot(props){
const [ openModal , setOpenModal ] = useState(false); const [ openModal , setOpenModal ] = useState(false);
const [ desc , setDesc ] = useState(undefined); const [ desc , setDesc ] = useState(undefined);
const [ website , setWebsite ] = useState(undefined); const [ website , setWebsite ] = useState(undefined);
const [ lesson_url , setLessonUrl ] = useState(undefined);
const owner = props.match.params.owner; const owner = props.match.params.owner;
const projectsId = props.match.params.projectsId; const projectsId = props.match.params.projectsId;
@ -54,6 +55,7 @@ function CoderDepot(props){
setProjectDetail(props.projectDetail); setProjectDetail(props.projectDetail);
setDesc(props.projectDetail.description); setDesc(props.projectDetail.description);
setWebsite(props.projectDetail.website); setWebsite(props.projectDetail.website);
setLessonUrl(props.projectDetail.lesson_url);
} }
},[props]) },[props])
@ -215,20 +217,21 @@ function CoderDepot(props){
</Menu> </Menu>
</div> </div>
) )
function okUpdate(d,w){ function okUpdate(d,w,l){
const url = `/${owner}/${projectsId}.json`; const url = `/${owner}/${projectsId}.json`;
axios.put(url,{ axios.put(url,{
description:d,website:w description:d,website:w,lesson_url:l
}).then(result=>{ }).then(result=>{
if(result && result.data && result.data.id){ if(result && result.data && result.data.id){
setDesc(result.data.description); setDesc(result.data.description);
setWebsite(result.data.website); setWebsite(result.data.website);
setLessonUrl(result.data.lesson_url);
} }
}) })
} }
return( return(
<WhiteBack> <WhiteBack>
<UpdateDescModal desc={desc} website={website} visible={openModal} onCancel={()=>setOpenModal(false)} onOk={okUpdate}/> <UpdateDescModal desc={desc} website={website} lesson_url={lesson_url} visible={openModal} onCancel={()=>setOpenModal(false)} onOk={okUpdate}/>
<Spin spinning={isSpin}> <Spin spinning={isSpin}>
{ {
(dirInfo || fileInfo) && (dirInfo || fileInfo) &&
@ -378,7 +381,7 @@ function CoderDepot(props){
website && website &&
<p className="color-grey-6 df"> <p className="color-grey-6 df">
<i className="iconfont icon-lianjie2 font-15 mr10 color-grey-9"></i> <i className="iconfont icon-lianjie2 font-15 mr10 color-grey-9"></i>
<span style={{wordBreak:"break-all",lineHeight:"20px",marginTop:"5px"}}>{website}</span> <a href={website} target="_blank" style={{wordBreak:"break-all",lineHeight:"20px",marginTop:"5px",textDecoration:"underline"}}>{website}</a>
</p> </p>
} }
<p> <p>
@ -397,6 +400,14 @@ function CoderDepot(props){
</p> </p>
} }
</div> </div>
{
lesson_url &&
<div>
<Divider />
<p className="font-16 color-grey-6">实践课程</p>
<a href={lesson_url} target="_blank" className="color-grey-6" style={{textDecoration:"underline"}}>{lesson_url}</a>
</div>
}
{/* 发布 */} {/* 发布 */}
{ {
projectDetail && projectDetail.release_versions && projectDetail && projectDetail.release_versions &&

View File

@ -2,13 +2,13 @@ import React , { forwardRef, useEffect } from 'react';
import {Form , Modal , Input } from 'antd'; import {Form , Modal , Input } from 'antd';
import "./sub.scss"; import "./sub.scss";
const { TextArea } = Input; const { TextArea } = Input;
function UpdateDescModal({form , visible , onCancel , onOk,desc,website}){ function UpdateDescModal({form , visible , onCancel , onOk,desc,website,lesson_url}){
const { getFieldDecorator, validateFields , setFieldsValue } = form; const { getFieldDecorator, validateFields , setFieldsValue } = form;
useEffect(()=>{ useEffect(()=>{
if(desc || website){ if(desc || website){
setFieldsValue({ setFieldsValue({
website,desc website,desc,lesson_url
}) })
} }
},[desc,website]) },[desc,website])
@ -17,7 +17,7 @@ function UpdateDescModal({form , visible , onCancel , onOk,desc,website}){
validateFields((err,values)=>{ validateFields((err,values)=>{
if(!err){ if(!err){
onCancel(); onCancel();
onOk(values.desc,values.website) onOk(values.desc,values.website,values.lesson_url)
} }
}) })
} }
@ -49,6 +49,13 @@ function UpdateDescModal({form , visible , onCancel , onOk,desc,website}){
<Input placeholder="website链接"/> <Input placeholder="website链接"/>
)} )}
</Form.Item> </Form.Item>
<Form.Item label="实践课程">
{getFieldDecorator("lesson_url",{
rules:[]
})(
<Input placeholder="实践课程链接"/>
)}
</Form.Item>
</Form> </Form>
</Modal> </Modal>
) )