dqqGasa`iay^Dpl~oK
zd8(b;5{53JDQlYGIN%&6$gn4+&kvtTD==BHtZ5u#fUHGvLmL|#i9Z#+dF^~uG1zk`
z8fMGM#WgA@rG5YYkui$;trLLj{e{|q$IlwaP0q8%K}J_u6Nx9Uii=n8A>vbXcoHtD
z>4W44@YNW^`5dm(RC|
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 00000000..121d52f4
--- /dev/null
+++ b/src/forge/Team/images/icon.svg
@@ -0,0 +1,13 @@
+
From de69c09c2adc9f7872ed8cd54dfe362c9d666b84 Mon Sep 17 00:00:00 2001
From: caishi <1149225589@qq.com>
Date: Wed, 21 Jun 2023 11:03:56 +0800
Subject: [PATCH 5/9] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E9=A1=B9=E7=9B=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/forge/Main/CoderDepot.jsx | 22 +++++++++++-----------
src/forge/Main/Detail.js | 5 +----
src/forge/Main/sub/UpdateDescModal.jsx | 2 +-
3 files changed, 13 insertions(+), 16 deletions(-)
diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx
index 9915ade4..39ec3726 100644
--- a/src/forge/Main/CoderDepot.jsx
+++ b/src/forge/Main/CoderDepot.jsx
@@ -65,7 +65,7 @@ function CoderDepot(props){
let pathname = props.history.location.pathname;
const { platform , mirror_status } = props ;
//distribution:判断此用户是否可以创建发行版
- const distribution = details && details.type !== 2 && ( details.permission && details.permission !== "Reporter");
+ const distribution = details && details.type ===0 && ( details.permission && details.permission !== "Reporter");
const { bannerList } = props;
useEffect(()=>{
if(bannerList && bannerList.length>0){
@@ -93,7 +93,7 @@ function CoderDepot(props){
useEffect(()=>{
- if(details && mirror_status!==2){
+ if(details && mirror_status===0){
setProjectDetail(details);
setTopics(details.topics);
setDesc(details.description);
@@ -126,7 +126,7 @@ function CoderDepot(props){
},[treeValue])
useEffect(()=>{
- if (projectsId && owner && defaultBranch && mirror_status!==2){
+ if (projectsId && owner && defaultBranch && mirror_status===0){
let b = turnbar(branchName) ;
if(pathname.indexOf(`/${owner}/${projectsId}`) > -1 && pathname.indexOf(`/tree/${b}/`) > -1) {
let url = pathname.split(`/tree/${b}/`)[1];
@@ -142,7 +142,7 @@ function CoderDepot(props){
},[projectsId,owner,pathname,defaultBranch,mirror_status])
useEffect(()=>{
- if(platform && mirror_status!==2){
+ if(platform && mirror_status===0){
setReadOnly(props.history.location.search.indexOf('edit') !== -1);
axios.get(`/${owner}/${projectsId}/releases.json`).then((result)=>{
if(result && result.data){
@@ -386,14 +386,14 @@ function CoderDepot(props){
const { current_user , checkIfLogin , showLoginDialog } = props;
const baseOper = current_user && current_user.login && issuesFlag;
- const baseOperate = projectDetail && projectDetail.permission && projectDetail.permission !=="Reporter" && projectDetail.type !== 2 && pullsFlag && props.platform;
- const fileOperate = type === "dir" && projectDetail && projectDetail.type !== 2 && ((projectDetail.permission && projectDetail.permission !=="Reporter") || (current_user && current_user.admin));
+ const baseOperate = projectDetail && projectDetail.permission && projectDetail.permission !=="Reporter" && projectDetail.type ===0 && pullsFlag && props.platform;
+ const fileOperate = type === "dir" && projectDetail && projectDetail.type ===0 && ((projectDetail.permission && projectDetail.permission !=="Reporter") || (current_user && current_user.admin));
return(
- {mirror_status !== 2 && setOpenModal(false)} onOk={okUpdate} showNotification={props.showNotification}/> }
+ {mirror_status ===0 && setOpenModal(false)} onOk={okUpdate}/> }
{
- ((dirInfo || fileInfo) && mirror_status!==2 ) &&
+ ((dirInfo || fileInfo) && mirror_status===0 ) &&
{
- props && (props.platform && mirror_status !== 2) ?
+ props && (props.platform && mirror_status ===0) ?
}
{/* 贡献者 */}
- {mirror_status !==2 && }
+ {mirror_status ===0 && }
{/* 语言 */}
- { mirror_status !== 2 && }
+ { mirror_status ===0 && }
}
diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js
index 4ce2d418..75cdf887 100644
--- a/src/forge/Main/Detail.js
+++ b/src/forge/Main/Detail.js
@@ -198,8 +198,6 @@ class Detail extends Component {
componentDidMount = () => {
- const { mirror_status } = this.state
- this.props.showNotification("getProject getProject getProject",mirror_status);
this.getProject();
let history = this.props.location;
this.clearIssueCookies(history);
@@ -242,7 +240,6 @@ class Detail extends Component {
open_devops: result.data.open_devops,
platform: result.data.platform && result.data.platform !== 'educoder'
})
-
if (result.data.type !== 0 && result.data.mirror_status === 1) {
console.log("--------start channel --------");
// 是镜像项目,且未完成迁移
@@ -262,11 +259,11 @@ class Detail extends Component {
mirror_status:1
})
} else if (result.data.mirror_status === 2) {
- this.deleteProjectBack();
this.setState({
mirror_status:2,
firstSync: false
})
+ this.deleteProjectBack();
} else {
this.getBanner();
this.getDetail();
diff --git a/src/forge/Main/sub/UpdateDescModal.jsx b/src/forge/Main/sub/UpdateDescModal.jsx
index a2f9ade4..0043b865 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,showNotification}){
+function UpdateDescModal({form , visible , onCancel , onOk,desc,website,lesson_url, topicsInfo}){
const { getFieldDecorator, validateFields , setFieldsValue } = form;
const [topics, setTopics] = useState(undefined);
From 316663cd1210286e637cf813bc673f8e283ab71c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= <2897217417@qq.com>
Date: Wed, 21 Jun 2023 11:08:06 +0800
Subject: [PATCH 6/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=AF=BE=E9=A2=98?=
=?UTF-8?q?=E5=85=88=E5=88=A4=E6=96=AD=E6=9C=89=E6=97=A0=E5=AD=A6=E7=94=9F?=
=?UTF-8?q?=E6=8A=A5=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/glcc/api.js | 11 ++++++++++-
src/glcc/apply/editInfo.jsx | 19 ++++++++++++-------
2 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/src/glcc/api.js b/src/glcc/api.js
index f15c7a95..5d930499 100644
--- a/src/glcc/api.js
+++ b/src/glcc/api.js
@@ -222,4 +222,13 @@ export function deleteApplyInfo(data) {
method: 'post',
data
});
-}
\ No newline at end of file
+}
+
+// 判断课题是否有学生报名
+export async function findStudentTaskByTaskId(params) {
+ return await fetch({
+ url: '/api/applyInformation/findStudentTaskByTaskId',
+ method: 'get',
+ params: params,
+ });
+}
diff --git a/src/glcc/apply/editInfo.jsx b/src/glcc/apply/editInfo.jsx
index b9aed5f5..b9b836e4 100644
--- a/src/glcc/apply/editInfo.jsx
+++ b/src/glcc/apply/editInfo.jsx
@@ -1,7 +1,7 @@
import React , { useCallback, useEffect , useState } from 'react';
import { Button, Form, Input, Select, Upload, message, Popconfirm } from 'antd';
import {getUploadActionUrl} from 'educoder';
-import {applyGlcc, updateApplyGlcc} from '../api';
+import {applyGlcc, findStudentTaskByTaskId, updateApplyGlcc} from '../api';
import TextArea from 'antd/lib/input/TextArea';
import { main_site_url } from '../fetch';
import TaskApply from './taskApply';
@@ -13,7 +13,7 @@ function EditRepoApplyInfo(props) {
const {form, applyInfo, current_user, round, cateList, setReload, isAddRepo, setIsAddRepo, setIsEdit, setEditRepoCount} = props;
const phonereg = /(^|\s*\+?0?0?86|\D)(1\d{2})[-\s]{0,3}(\d{4})[-\s]{0,3}(\d{4})(?=\D|$)/
const emailreg = /^[a-zA-Z0-9]+([.\-_\\]*[a-zA-Z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/
- const {getFieldDecorator, validateFields, setFieldsValue, validateFieldsAndScroll } = form;
+ const {getFieldDecorator, validateFields, setFieldsValue, validateFieldsAndScroll, getFieldValue } = form;
const [imageUrl, setImageUrl] = useState(undefined);
// 提交按钮loading效果
const [loading, setLoading] = useState(false);
@@ -159,14 +159,19 @@ function EditRepoApplyInfo(props) {
// 添加课题输入框
function addTaskApplyForm(){
- setTaskCount(taskCount.concat([taskCount.length+1]));
+ setTaskCount(taskCount.concat([taskCount[taskCount.length-1]+1]));
}
// 删除课题报名
- function deleteTaskApply(index){
- const arr = [...taskCount];
- arr.splice(index-1, 1)
- setTaskCount(arr);
+ async function deleteTaskApply(index){
+ const delTaskId = getFieldValue(`taskId${index}`);
+ const res = delTaskId ? await findStudentTaskByTaskId({ taskId: delTaskId }) : "newTask";
+ if((res && res.data && res.data.length)){
+ message.error("已有学生报名,不允许删除");
+ }else{
+ const arr = taskCount.filter(item=>item!== index);
+ setTaskCount(arr);
+ }
}
// 取消编辑点击函数
From 049f234f4ae30e8e2ee90fd284c6726910580185 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=84=E5=BF=83=E5=AE=87?=
Date: Wed, 21 Jun 2023 14:20:19 +0800
Subject: [PATCH 7/9] =?UTF-8?q?=E8=A1=8C=E9=97=B4=E8=B7=9D=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/forge/Information/index.scss | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/forge/Information/index.scss b/src/forge/Information/index.scss
index b3c7e6c4..795162c7 100644
--- a/src/forge/Information/index.scss
+++ b/src/forge/Information/index.scss
@@ -1049,12 +1049,6 @@
margin: 25px 25px 25px 0;
border-radius: 12px;
}
- .informations_detail.markdown-body{
- &>p{
- line-height: 32px;
- margin-bottom: 8px!important;
- }
- }
}
.zone_parter{
background-color: #fff;
@@ -1118,4 +1112,10 @@
border-color: var(--primary-color);
}
}
+}
+.informations_detail.markdown-body{
+ &>p{
+ line-height: 32px;
+ margin-bottom: 8px!important;
+ }
}
\ No newline at end of file
From 6fa08b800e32226ac8e094d95a23eff7144c2ea7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=84=E5=BF=83=E5=AE=87?=
Date: Wed, 21 Jun 2023 14:43:21 +0800
Subject: [PATCH 8/9] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=97=AE=E9=A2=98?=
=?UTF-8?q?=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/forge/Information/index.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/forge/Information/index.jsx b/src/forge/Information/index.jsx
index c7da2c5c..10d24b00 100644
--- a/src/forge/Information/index.jsx
+++ b/src/forge/Information/index.jsx
@@ -93,7 +93,7 @@ function Index(props){
function getAdminUrl(id){
getCheckZoneRole(id).then(response=>{
if(response && response.data.code === 200){
- setAdminUrl(response.data);
+ setAdminUrl(response.data.data);
}else{
setAdminUrl(undefined);
}
From 47ad9f15e5c02a2aa9e845f4c5c6845a58a0096e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=84=E5=BF=83=E5=AE=87?=
Date: Wed, 21 Jun 2023 15:05:11 +0800
Subject: [PATCH 9/9] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=97=AE=E9=A2=98?=
=?UTF-8?q?=E5=A4=84=E7=90=86cont.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/forge/Information/index.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/forge/Information/index.jsx b/src/forge/Information/index.jsx
index 10d24b00..33de4f59 100644
--- a/src/forge/Information/index.jsx
+++ b/src/forge/Information/index.jsx
@@ -92,7 +92,7 @@ function Index(props){
function getAdminUrl(id){
getCheckZoneRole(id).then(response=>{
- if(response && response.data.code === 200){
+ if(response && response.data.data){
setAdminUrl(response.data.data);
}else{
setAdminUrl(undefined);