From 1d88dc736947668c759f77c0be572fde53c5cfdd Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 21 Jun 2023 10:04:09 +0800 Subject: [PATCH] data --- src/AppConfig.js | 2 +- src/forge/Information/Pages/newsDetail.jsx | 2 +- src/forge/Main/CoderDepot.jsx | 24 ++--- src/forge/Main/Detail.js | 12 ++- src/forge/Main/sub/UpdateDescModal.jsx | 2 +- src/forge/New/Index.js | 99 +++++++++++++++--- src/forge/New/new.scss | 8 +- src/forge/Newfile/m_editor.js | 1 - src/forge/SecuritySetting/cla/DeleteBox.jsx | 6 +- src/forge/SecuritySetting/cla/Index.jsx | 5 +- src/forge/SecuritySetting/img/cla-logo.png | Bin 3525 -> 1447 bytes src/forge/SecuritySetting/img/icon.svg | 13 +++ src/forge/Team/New.jsx | 6 +- src/forge/Team/RightBox.jsx | 8 ++ src/forge/Team/Setting/TeamSettingCommon.jsx | 6 +- src/forge/Team/Setting/TeamSettingIndex.jsx | 1 - src/forge/Team/Setting/cla/CLAinfos.jsx | 29 +++-- src/forge/Team/Setting/cla/TeamSettingCLA.jsx | 4 +- .../Team/Setting/cla/TeamSettingCLAEdit.jsx | 4 +- src/forge/Team/Setting/teamSetting.scss | 2 +- src/forge/Team/Sub/Detail.jsx | 20 ++-- src/forge/Team/images/cla-logo.png | Bin 3525 -> 1447 bytes src/forge/Team/images/icon.svg | 13 +++ 23 files changed, 197 insertions(+), 70 deletions(-) create mode 100644 src/forge/SecuritySetting/img/icon.svg create mode 100644 src/forge/Team/images/icon.svg diff --git a/src/AppConfig.js b/src/AppConfig.js index cf7fe8b6a..9c5fbfd40 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -25,7 +25,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 || 'admin' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student' } window._debugType = debugType; export function initAxiosInterceptors(props) { diff --git a/src/forge/Information/Pages/newsDetail.jsx b/src/forge/Information/Pages/newsDetail.jsx index d7c00fbb4..476a4ed31 100644 --- a/src/forge/Information/Pages/newsDetail.jsx +++ b/src/forge/Information/Pages/newsDetail.jsx @@ -47,7 +47,7 @@ function NewsDetail(props){

{detail.name}

diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 91bc4ef21..9915ade4e 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -63,7 +63,7 @@ function CoderDepot(props){ branchName = returnbar(branchName); const details = props.projectDetail; let pathname = props.history.location.pathname; - const { platform } = props ; + const { platform , mirror_status } = props ; //distribution:判断此用户是否可以创建发行版 const distribution = details && details.type !== 2 && ( details.permission && details.permission !== "Reporter"); const { bannerList } = props; @@ -93,7 +93,7 @@ function CoderDepot(props){ useEffect(()=>{ - if(details){ + if(details && mirror_status!==2){ setProjectDetail(details); setTopics(details.topics); setDesc(details.description); @@ -102,7 +102,7 @@ function CoderDepot(props){ setDefaultBranch(details.default_branch); setInviteCode(details.invite_code); } - },[details]) + },[details,mirror_status]) useEffect(()=>{ // 设置网页标题 @@ -126,7 +126,7 @@ function CoderDepot(props){ },[treeValue]) useEffect(()=>{ - if (projectsId && owner && defaultBranch){ + if (projectsId && owner && defaultBranch && mirror_status!==2){ let b = turnbar(branchName) ; if(pathname.indexOf(`/${owner}/${projectsId}`) > -1 && pathname.indexOf(`/tree/${b}/`) > -1) { let url = pathname.split(`/tree/${b}/`)[1]; @@ -139,10 +139,10 @@ function CoderDepot(props){ setType("dir"); } } - },[projectsId,owner,pathname,defaultBranch]) + },[projectsId,owner,pathname,defaultBranch,mirror_status]) useEffect(()=>{ - if(platform){ + if(platform && mirror_status!==2){ setReadOnly(props.history.location.search.indexOf('edit') !== -1); axios.get(`/${owner}/${projectsId}/releases.json`).then((result)=>{ if(result && result.data){ @@ -154,7 +154,7 @@ function CoderDepot(props){ } }) } - },[platform]) + },[platform,mirror_status]) // 获取readme信息 function getReadmeInfo(path, ref) { @@ -390,10 +390,10 @@ function CoderDepot(props){ const fileOperate = type === "dir" && projectDetail && projectDetail.type !== 2 && ((projectDetail.permission && projectDetail.permission !=="Reporter") || (current_user && current_user.admin)); return( - setOpenModal(false)} onOk={okUpdate}/> + {mirror_status !== 2 && setOpenModal(false)} onOk={okUpdate} showNotification={props.showNotification}/> } { - (dirInfo || fileInfo) && + ((dirInfo || fileInfo) && mirror_status!==2 ) &&
{ - props && props.platform ? + props && (props.platform && mirror_status !== 2) ? } {/* 贡献者 */} - + {mirror_status !==2 && } {/* 语言 */} - + { mirror_status !== 2 && } } diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 8f4e41887..4ce2d4181 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -192,12 +192,14 @@ class Detail extends Component { // 非本平台项目 platform: false, - mirror_status:1 + mirror_status:2 } } componentDidMount = () => { + const { mirror_status } = this.state + this.props.showNotification("getProject getProject getProject",mirror_status); this.getProject(); let history = this.props.location; this.clearIssueCookies(history); @@ -262,14 +264,16 @@ class Detail extends Component { } else if (result.data.mirror_status === 2) { this.deleteProjectBack(); this.setState({ - mirror_status:2 + mirror_status:2, + firstSync: false }) } else { this.getBanner(); this.getDetail(); this.setState({ firstSync: false, - secondSync: false + secondSync: false, + mirror_status:0 }) } } @@ -860,7 +864,7 @@ class Detail extends Component { > (mirror_status!==2 ? :) + (props) => } > diff --git a/src/forge/Main/sub/UpdateDescModal.jsx b/src/forge/Main/sub/UpdateDescModal.jsx index 0043b865a..a2f9ade4a 100644 --- a/src/forge/Main/sub/UpdateDescModal.jsx +++ b/src/forge/Main/sub/UpdateDescModal.jsx @@ -4,7 +4,7 @@ import "./sub.scss"; import axios from 'axios'; import { useState } from 'react'; const { TextArea } = Input; -function UpdateDescModal({form , visible , onCancel , onOk,desc,website,lesson_url, topicsInfo}){ +function UpdateDescModal({form , visible , onCancel , onOk,desc,website,lesson_url, topicsInfo,showNotification}){ const { getFieldDecorator, validateFields , setFieldsValue } = form; const [topics, setTopics] = useState(undefined); diff --git a/src/forge/New/Index.js b/src/forge/New/Index.js index 8ade2df05..6502016a0 100644 --- a/src/forge/New/Index.js +++ b/src/forge/New/Index.js @@ -53,7 +53,10 @@ class Index extends Component { licenseFlag:false, // 区块链确权 - tokenConTri: false + tokenConTri: false, + + gitHubUrl:false, + checkToken:undefined } } componentDidMount = () => { @@ -203,7 +206,9 @@ class Index extends Component { isSpin: true }) const { projectsType } = this.props.match.params; - const { project_language_id, project_category_id, license_id, ignore_id, owners_id, ignoreFlag, licenseFlag, categoreFlag, languageFlag, tokenConTri} = this.state; + const { project_language_id, project_category_id, license_id + , ignore_id, owners_id, ignoreFlag, licenseFlag, + categoreFlag, languageFlag, tokenConTri,gitHubUrl} = this.state; const decoderPass = Base64.encode(values.password); const url = (projectsType && projectsType === "mirror") ? "/projects/migrate.json" : "/projects.json"; // 新建项目的时候,暂存数据,如果失败,返回的时候可以重新赋值 @@ -220,7 +225,8 @@ class Index extends Component { user_id:owners_id, blockchain: tokenConTri, blockchain_token_all: 10000, - blockchain_init_token: parseInt(blockchain_init) + blockchain_init_token: parseInt(blockchain_init), + auth_token:gitHubUrl ? values.auth_token : undefined }).then((result) => { if (result && result.data.id) { projectsType && projectsType !== "mirror" && this.props.showNotification(`项目创建成功!`); @@ -235,6 +241,7 @@ class Index extends Component { }) }) } else { + window.scrollTo(0,0); this.setState({ isSpin: false }) @@ -301,6 +308,9 @@ class Index extends Component { repository_name:first }) } + this.setState({gitHubUrl:value.indexOf("https://github.com")>-1 ? true : false}) + }else{ + this.setState({gitHubUrl:false,checkToken:undefined}) } } @@ -344,6 +354,29 @@ class Index extends Component { } } + + blurFunc=(e)=>{ + let value = e.target.value; + if(value){ + const { clone_addr } = this.props.form.getFieldsValue(); + if(clone_addr){ + const u = `/projects/verify_auth_token.json`; + axios.post(u,{ + auth_token:value, + clone_addr + }).then(response=>{ + if(response && response.data){ + this.setState({ + checkToken:response.data.data + }) + } + }).catch(error=>{}) + } + }else{ + this.setState({checkToken:undefined}) + } + } + render() { const { getFieldDecorator } = this.props.form; // 项目类型:deposit-托管项目,mirror-镜像项目 @@ -372,7 +405,9 @@ class Index extends Component { licenseFlag, languageFlag, categoreFlag, - tokenConTri + tokenConTri, + gitHubUrl, + checkToken } = this.state; return (
@@ -381,7 +416,6 @@ class Index extends Component {
- { projectsType && projectsType === "mirror" && @@ -398,7 +432,7 @@ class Index extends Component { )} -

示例:https://github.com/Stability-AI/StableStudio.git

+

示例:https://github.com/Stability-AI/StableStudio.git

} { @@ -406,10 +440,32 @@ class Index extends Component {

需要授权验证 - 如果导入项目为私有仓库,则必须填写相应平台正确的用户名和密码 + + 如果导入项目为私有仓库,{gitHubUrl ? `则需输入目标平台用户token进行授权,`:"则必须填写相应平台正确的用户名和密码"} + {gitHubUrl && 如何获取token?} +

{ - mirrorCheck && + mirrorCheck && gitHubUrl && +
+ Token + + + {getFieldDecorator('auth_token')( + + )} + + + { checkToken === false && } + { checkToken === true && } + +
+ } + { + mirrorCheck && !gitHubUrl &&
用户名 @@ -447,19 +503,26 @@ class Index extends Component { {getFieldDecorator('user_id', { rules: [{ required: true, message: '请选择拥有者' - },{ - validator:(rule, value, callback) => this.checkId(rule, value, callback, OwnerList, '拥有者') }], })( - this.ChangePlatform(value, e, 'owners', OwnerList)} className="plateAutoComplete" - onBlur={(value) => this.blurCategory(value, OwnerList, "owners")} + optionFilterProp="children" + filterOption={(input, option) => + option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 + } > - {owners_list} - + {OwnerList && OwnerList.length > 0 && + OwnerList.map((i,k)=>{ + return( + + ) + }) + } + )} / @@ -681,4 +744,6 @@ class Index extends Component { } } const WrappedIndexForm = Form.create({ name: 'NewWorkForm' })(Index); -export default WrappedIndexForm; \ No newline at end of file +export default WrappedIndexForm; + + diff --git a/src/forge/New/new.scss b/src/forge/New/new.scss index 15aca70b2..8432cecdf 100644 --- a/src/forge/New/new.scss +++ b/src/forge/New/new.scss @@ -11,6 +11,12 @@ font-size: 1.6em; border-bottom: 1px solid #f0f0f0 } +.token_box{ + align-items: center; +} +.token_box .ant-form-explain{ + position: absolute; +} .newPanel_content{ padding:2rem; } @@ -25,7 +31,7 @@ min-width: 280px; } .newPanel_content .ant-select-selection{ - height: 37px; + height: 35px; } .newPanel_content .ant-select-selection__rendered,.newPanel_content input{ height: 35px; diff --git a/src/forge/Newfile/m_editor.js b/src/forge/Newfile/m_editor.js index 125d7c362..ae2ad19be 100644 --- a/src/forge/Newfile/m_editor.js +++ b/src/forge/Newfile/m_editor.js @@ -34,7 +34,6 @@ class m_editor extends Component { render() { const { editorValue, changeValue } = this.state; - console.log("editorValue:",editorValue) const { readOnly, editorType,onEmpty,filename,empty, currentBranch, descName, checkName, detail, match: { params },filepath,ideTheme } = this.props; const editor_options = { lineNumbers: "on", diff --git a/src/forge/SecuritySetting/cla/DeleteBox.jsx b/src/forge/SecuritySetting/cla/DeleteBox.jsx index 45514fdce..d6ae99032 100644 --- a/src/forge/SecuritySetting/cla/DeleteBox.jsx +++ b/src/forge/SecuritySetting/cla/DeleteBox.jsx @@ -1,4 +1,4 @@ -import React , { useState , useEffect } from 'react'; +import React from 'react'; import { AlignCenter } from '../../Component/layout'; import Modals from '../../Component/PublicModal/Index'; import { Button } from 'antd'; @@ -12,14 +12,14 @@ function DeleteBox({visible , onCancel,onSuccess,pr_need}){ btn={
- +
} >
确定解除协议吗? - { pr_need &&

您解除协议后,后续提交的合并请求对项目成员将不再可见(已存在的不会受影响)

} + { pr_need &&

您解除协议后,提交的合并请求对项目成员将不再可见(已存在的开启的合并请求也将被隐藏)

}
) diff --git a/src/forge/SecuritySetting/cla/Index.jsx b/src/forge/SecuritySetting/cla/Index.jsx index a93c9afa9..7a98fa6c1 100644 --- a/src/forge/SecuritySetting/cla/Index.jsx +++ b/src/forge/SecuritySetting/cla/Index.jsx @@ -1,6 +1,6 @@ import React,{useEffect,useState} from 'react'; import './index.scss'; -import logo from '../img/cla-logo.png'; +import logo from '../img/icon.svg'; import { Link } from 'react-router-dom'; import { Button , Spin } from 'antd'; import Nodata from '../../Nodata'; @@ -14,6 +14,9 @@ function Index(props){ const [ visible , setVisible ] = useState(false); const [ cancelKey , setCancelKey ] = useState(undefined); const [ pr_need , setPr_need ] = useState(true); + useEffect(()=>{ + document.title = "我的CLA"; + },[]) useEffect(()=>{ if(current_user && current_user.user_id){ diff --git a/src/forge/SecuritySetting/img/cla-logo.png b/src/forge/SecuritySetting/img/cla-logo.png index d5b3ebb59c105d0a36b563c6772e89398cf12b1a..d9a35de0b2460aec65e59bed9121f870b25aae6e 100644 GIT binary patch literal 1447 zcmV;Y1z7rtP)lW&BVKIFKrh&Cq$YT=jb#|)$6!InCaj{;&Cr2-h{!;N(w*mo zQ%~`<=d{pMO5Zmj%}JlP=Y4+f|Np#C6HYaKeSOJJr?W<*(d-0Z;Qk_Mv~qbLHk-{Y zn%>^t2JWIPlCqzb>!?<%P1QIYjuGyS_y`6;sh1K6SA;_V=Lib}!Kr|On6Ux_p%jGE zIgNp#M{rJ0hjkfAGA1Ber}dhHtRgzQ?TB5f4{Hdt`0T|T=ROs zAO?pY!FJ~!8k>Ib3!XqkH4uX2#k=ln+x%4ofz03Z4oDRrTHZ%y#%jM*p&AG&OUx&T zi4jny?y0c#_Oc3S!4`S<cRiPu|&HHeYtqgeG_F+RoseL7iSBX9<1{*Gr zZHiHqb71j-pxV&lXhqA;bG#b<8oB>clKIPXko4*@h-0Nl1l1bqRH!TQ9ts4J)r&GGqgU=@ILa>{!9}j4q$8A?Dmo(VPkM2=uZ{09RvJ?Hf+{pxsw+at@tMCVcg`T_12kV} zAzo|1>piA~1K|M9p20`{nH*jhg>vg|UBNeeA>btEdFz4|qSP&q3><=(D zKJHVNv%fpYYS>EvS%bPrYNyv5Gx7Vd&8>=%Dv z0ztikRF6PFynWFU0}pDk3}k0RHHU$iAoO1>9UZDVH!t_?zGvqlcze=M76d)+_`uQ6KP4BgL&rVlxSad{u2_Tj2lQk?glqEt zuA70FA;v&35T52?ikPK{7Vf&h-vYCk;&nP*s;0lc|1IvvcC1`ts}@soe&lj6B_-vw zMwr0;#7Zvbl~_MMAgn`OE|-)0k)2y6lj#X1@;`9GBNeE|o5}zH002ovPDHLkV1gbp Bp0fY| literal 3525 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 YsyThu*uh!&SuX<_8JOu;=mM1g1ETS0FaQ7m diff --git a/src/forge/SecuritySetting/img/icon.svg b/src/forge/SecuritySetting/img/icon.svg new file mode 100644 index 000000000..121d52f4d --- /dev/null +++ b/src/forge/SecuritySetting/img/icon.svg @@ -0,0 +1,13 @@ + + + + + + + + CLA + + + + + diff --git a/src/forge/Team/New.jsx b/src/forge/Team/New.jsx index 16247e7b4..db4bf1451 100644 --- a/src/forge/Team/New.jsx +++ b/src/forge/Team/New.jsx @@ -45,7 +45,7 @@ export default Form.create()( } const url = `/organizations.json`; axios.post(url,{ - ...values,image + ...values,image,visibility:"common" }).then(result=>{ if(result && result.data){ showNotification("组织创建成功!"); @@ -121,7 +121,7 @@ export default Form.create()( [], ,false )} - {helper( + {/* {helper( '可见性', "visibility", [{ required: true, message: "请选择可见性" }], @@ -130,7 +130,7 @@ export default Form.create()( 受限(仅对登录用户可见) 私有(仅对组织成员可见) - )} + )} */}

选择头像

diff --git a/src/forge/Team/RightBox.jsx b/src/forge/Team/RightBox.jsx index 4e75fe666..6a05d6214 100644 --- a/src/forge/Team/RightBox.jsx +++ b/src/forge/Team/RightBox.jsx @@ -27,6 +27,10 @@ const ListName = styled.div`{ margin-bottom:8px; height:18px; line-height:18px; + width:210px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; }`; const ColorListName = styled.div`{ color:rgba(31, 35, 41, 1); @@ -34,6 +38,10 @@ const ColorListName = styled.div`{ margin-bottom:8px; height:18px; line-height:18px; + width:230px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; }` const Img = styled.img`{ border-radius:50%; diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx index d16f15037..d1ff67c0f 100644 --- a/src/forge/Team/Setting/TeamSettingCommon.jsx +++ b/src/forge/Team/Setting/TeamSettingCommon.jsx @@ -58,7 +58,7 @@ export default Form.create()( if(!error){ const url = `/organizations/${organizeDetail.id}.json`; axios.patch(url,{ - ...values,image:imageFlag ? image : undefined + ...values,image:imageFlag ? image : undefined,visibility:"common" }).then(result=>{ if(result && result.data){ showNotification("组织信息更新成功!"); @@ -172,7 +172,7 @@ export default Form.create()( [], )} - {helper( + {/* {helper( '可见性:', "visibility", [], @@ -181,7 +181,7 @@ export default Form.create()( 受限(仅对登录用户可见) 私有(仅对组织成员可见) - )} + )} */} {helper( '权限:', "repo_admin_change_team_access", diff --git a/src/forge/Team/Setting/TeamSettingIndex.jsx b/src/forge/Team/Setting/TeamSettingIndex.jsx index 00b1f1f79..91db1156b 100644 --- a/src/forge/Team/Setting/TeamSettingIndex.jsx +++ b/src/forge/Team/Setting/TeamSettingIndex.jsx @@ -42,7 +42,6 @@ export default (( props )=>{ const pathname = props.location.pathname; const OIdentifier = props.match.params.OIdentifier; const {organizeDetail} = props; - console.log(organizeDetail); useEffect(()=>{ if(organizeDetail){ const {nickname} = organizeDetail; diff --git a/src/forge/Team/Setting/cla/CLAinfos.jsx b/src/forge/Team/Setting/cla/CLAinfos.jsx index 5a69cb9fd..3896f0cf2 100644 --- a/src/forge/Team/Setting/cla/CLAinfos.jsx +++ b/src/forge/Team/Setting/cla/CLAinfos.jsx @@ -1,13 +1,13 @@ import React,{ forwardRef, useState , useEffect } from 'react'; import '../teamSetting.scss'; import RenderHtml from '../../../../components/render-html'; -import { Button , Form , Input} from 'antd'; -import Cla from '../../images/cla.png'; +import { Button , Form , Input , Spin } from 'antd'; +import { getImageUrl } from 'educoder'; import axios from 'axios'; function CLAinfos(props){ - const { form , current_user } = props; + const { form , current_user , showLoginDialog } = props; const { getFieldDecorator , validateFields , setFieldsValue , getFieldsValue} = form; const OIdentifier = props.match.params.OIdentifier; @@ -15,9 +15,17 @@ function CLAinfos(props){ const [ details, setDetails ] = useState(undefined); + useEffect(()=>{ + if(current_user && current_user.email){ + setFieldsValue({ + email:current_user.email + }) + } + },[current_user,details]) + useEffect(()=>{ if(current_user &&!current_user.login){ - props.history.push(`/login`); + props.history.push(`/login?go_page=/${OIdentifier}/cla/${claid}`); } },[current_user]) @@ -32,6 +40,7 @@ function CLAinfos(props){ axios.get(url).then(response=>{ if(response && response.data){ setDetails(response.data); + document.title = `${response.data.name}`; } }).catch(error=>{}) } @@ -42,10 +51,12 @@ function CLAinfos(props){ const url = `/users/${current_user && current_user.user_id}/clas.json`; axios.post(url,{ ...values, - cla_id:details && details.id + cla_id:details && details.id, + email:(current_user && current_user.email) || values.email }).then(response=>{ if(response && response.data){ props.showNotification('协议签署成功!'); + window.scrollTo(0,0); getDetails(); } }).catch(error=>{}) @@ -54,11 +65,11 @@ function CLAinfos(props){ } return( - details && + details ?
- +

{details.name}

{details.organization && details.organization.nickname}

@@ -87,7 +98,7 @@ function CLAinfos(props){ {getFieldDecorator("email",{ rules:[{ required: true, message: "请输入签署邮箱" }] })( - + )}
@@ -96,6 +107,8 @@ function CLAinfos(props){ }
+ : +
) } export default Form.create()(forwardRef(CLAinfos)) \ No newline at end of file diff --git a/src/forge/Team/Setting/cla/TeamSettingCLA.jsx b/src/forge/Team/Setting/cla/TeamSettingCLA.jsx index aaab6c953..a207f0c81 100644 --- a/src/forge/Team/Setting/cla/TeamSettingCLA.jsx +++ b/src/forge/Team/Setting/cla/TeamSettingCLA.jsx @@ -1,7 +1,7 @@ import React,{ useState , useEffect } from 'react'; import Title from '../../../Component/Title'; import defaultimg from '../../images/cla-icon-big.png'; -import Logo from '../../images/cla-logo.png'; +import Logo from '../../images/icon.svg'; import { Button, Spin } from 'antd'; import axios from 'axios'; @@ -40,7 +40,7 @@ function TeamSettingCLA(props){

{list.name}

签署人数{list.count || 0}
- +
diff --git a/src/forge/Team/Setting/cla/TeamSettingCLAEdit.jsx b/src/forge/Team/Setting/cla/TeamSettingCLAEdit.jsx index 170fbaa34..a7d956593 100644 --- a/src/forge/Team/Setting/cla/TeamSettingCLAEdit.jsx +++ b/src/forge/Team/Setting/cla/TeamSettingCLAEdit.jsx @@ -75,7 +75,7 @@ forwardRef((props)=>{ function checkKeyReg(rule, value, callback){ let reg = /^[a-zA-Z0-9][a-zA-Z0-9_]*[a-zA-Z0-9]+$/g if(value && !reg.test(value)){ - callback("协议标识只能以数字、字母开头结尾,可包含下划线"); + callback("协议标识长度2-30,只能以数字、字母开头结尾,可包含下划线"); } callback(); } @@ -103,7 +103,7 @@ forwardRef((props)=>{ { validator: checkKeyReg } ] })( - + )} diff --git a/src/forge/Team/Setting/teamSetting.scss b/src/forge/Team/Setting/teamSetting.scss index bdcdae7c0..6f5a21bc6 100644 --- a/src/forge/Team/Setting/teamSetting.scss +++ b/src/forge/Team/Setting/teamSetting.scss @@ -65,7 +65,7 @@ margin:0px auto; width: 1200px; &>img{ - width: 116px; + height: 94px; margin-right: 32px; border-radius: 4px; } diff --git a/src/forge/Team/Sub/Detail.jsx b/src/forge/Team/Sub/Detail.jsx index ab4c049ff..eedce64b2 100644 --- a/src/forge/Team/Sub/Detail.jsx +++ b/src/forge/Team/Sub/Detail.jsx @@ -6,7 +6,6 @@ import { setSeoMeta } from "educoder"; import Cards from '../../Component/Cards'; import axios from 'axios'; import '../Index.scss'; - const GroupDetails = Loadable({ loader: () => import("../Group/GroupDetails"), loading: Loading, @@ -40,6 +39,9 @@ function Detail(props){ if(pathname){ if(pathname.indexOf(`/${OIdentifier}/setting`)>-1){ setFlag(false); + if(detail && !detail.is_admin ){ + props.history.push("/nopage"); + } }else{ setFlag(true); } @@ -49,7 +51,7 @@ function Detail(props){ setButtonflagFlag(false); } } - },[pathname]) + },[pathname,detail]) useEffect(()=>{ if(OIdentifier){ @@ -134,12 +136,14 @@ function Detail(props){ return }} > - { - return - }} - > + + { + return + }} + > + { diff --git a/src/forge/Team/images/cla-logo.png b/src/forge/Team/images/cla-logo.png index d5b3ebb59c105d0a36b563c6772e89398cf12b1a..d9a35de0b2460aec65e59bed9121f870b25aae6e 100644 GIT binary patch literal 1447 zcmV;Y1z7rtP)lW&BVKIFKrh&Cq$YT=jb#|)$6!InCaj{;&Cr2-h{!;N(w*mo zQ%~`<=d{pMO5Zmj%}JlP=Y4+f|Np#C6HYaKeSOJJr?W<*(d-0Z;Qk_Mv~qbLHk-{Y zn%>^t2JWIPlCqzb>!?<%P1QIYjuGyS_y`6;sh1K6SA;_V=Lib}!Kr|On6Ux_p%jGE zIgNp#M{rJ0hjkfAGA1Ber}dhHtRgzQ?TB5f4{Hdt`0T|T=ROs zAO?pY!FJ~!8k>Ib3!XqkH4uX2#k=ln+x%4ofz03Z4oDRrTHZ%y#%jM*p&AG&OUx&T zi4jny?y0c#_Oc3S!4`S<cRiPu|&HHeYtqgeG_F+RoseL7iSBX9<1{*Gr zZHiHqb71j-pxV&lXhqA;bG#b<8oB>clKIPXko4*@h-0Nl1l1bqRH!TQ9ts4J)r&GGqgU=@ILa>{!9}j4q$8A?Dmo(VPkM2=uZ{09RvJ?Hf+{pxsw+at@tMCVcg`T_12kV} zAzo|1>piA~1K|M9p20`{nH*jhg>vg|UBNeeA>btEdFz4|qSP&q3><=(D zKJHVNv%fpYYS>EvS%bPrYNyv5Gx7Vd&8>=%Dv z0ztikRF6PFynWFU0}pDk3}k0RHHU$iAoO1>9UZDVH!t_?zGvqlcze=M76d)+_`uQ6KP4BgL&rVlxSad{u2_Tj2lQk?glqEt zuA70FA;v&35T52?ikPK{7Vf&h-vYCk;&nP*s;0lc|1IvvcC1`ts}@soe&lj6B_-vw zMwr0;#7Zvbl~_MMAgn`OE|-)0k)2y6lj#X1@;`9GBNeE|o5}zH002ovPDHLkV1gbp Bp0fY| literal 3525 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 YsyThu*uh!&SuX<_8JOu;=mM1g1ETS0FaQ7m diff --git a/src/forge/Team/images/icon.svg b/src/forge/Team/images/icon.svg new file mode 100644 index 000000000..121d52f4d --- /dev/null +++ b/src/forge/Team/images/icon.svg @@ -0,0 +1,13 @@ + + + + + + + + CLA + + + + +