diff --git a/public/css/iconfont.css b/public/css/iconfont.css
index 90707f1f..5e40b0dc 100644
--- a/public/css/iconfont.css
+++ b/public/css/iconfont.css
@@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 2340181 */
- src: url('iconfont.woff2?t=1639038498486') format('woff2'),
- url('iconfont.woff?t=1639038498486') format('woff'),
- url('iconfont.ttf?t=1639038498486') format('truetype');
+ src: url('iconfont.woff2?t=1640585290619') format('woff2'),
+ url('iconfont.woff?t=1640585290619') format('woff'),
+ url('iconfont.ttf?t=1640585290619') format('truetype');
}
.iconfont {
@@ -13,6 +13,26 @@
-moz-osx-font-smoothing: grayscale;
}
+.icon-shengming:before {
+ content: "\e90b";
+}
+
+.icon-chenggong1:before {
+ content: "\e907";
+}
+
+.icon-a-bitian2x1:before {
+ content: "\e908";
+}
+
+.icon-xiala1:before {
+ content: "\e909";
+}
+
+.icon-xiala2:before {
+ content: "\e90a";
+}
+
.icon-jiantou1:before {
content: "\e905";
}
diff --git a/public/css/iconfont.js b/public/css/iconfont.js
index d43e3c92..4a0868c4 100644
--- a/public/css/iconfont.js
+++ b/public/css/iconfont.js
@@ -1 +1 @@
-!function(a){var c,l,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,c){c.parentNode.insertBefore(a,c)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}v()}c=function(){var a,c;(c=document.createElement("div")).innerHTML=z,z=null,(a=c.getElementsByTagName("svg")[0])&&(a.setAttribute("aria-hidden","true"),a.style.position="absolute",a.style.width=0,a.style.height=0,a.style.overflow="hidden",c=a,(a=document.body).firstChild?p(c,a.firstChild):a.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(h=c,i=a.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window);
\ No newline at end of file
+!function(a){var c,l,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,c){c.parentNode.insertBefore(a,c)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function m(){o||(o=!0,h())}function v(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(v,50)}m()}c=function(){var a,c;(c=document.createElement("div")).innerHTML=z,z=null,(a=c.getElementsByTagName("svg")[0])&&(a.setAttribute("aria-hidden","true"),a.style.position="absolute",a.style.width=0,a.style.height=0,a.style.overflow="hidden",c=a,(a=document.body).firstChild?p(c,a.firstChild):a.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(h=c,i=a.document,o=!1,v(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,m())})}(window);
\ No newline at end of file
diff --git a/public/css/iconfont.json b/public/css/iconfont.json
index a3b52d79..0fb7117e 100644
--- a/public/css/iconfont.json
+++ b/public/css/iconfont.json
@@ -5,6 +5,41 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
+ {
+ "icon_id": "12505154",
+ "name": "声明",
+ "font_class": "shengming",
+ "unicode": "e90b",
+ "unicode_decimal": 59659
+ },
+ {
+ "icon_id": "26470597",
+ "name": "成功",
+ "font_class": "chenggong1",
+ "unicode": "e907",
+ "unicode_decimal": 59655
+ },
+ {
+ "icon_id": "26470599",
+ "name": "必填@2x",
+ "font_class": "a-bitian2x1",
+ "unicode": "e908",
+ "unicode_decimal": 59656
+ },
+ {
+ "icon_id": "26470600",
+ "name": "下拉",
+ "font_class": "xiala1",
+ "unicode": "e909",
+ "unicode_decimal": 59657
+ },
+ {
+ "icon_id": "26470601",
+ "name": "下拉2",
+ "font_class": "xiala2",
+ "unicode": "e90a",
+ "unicode_decimal": 59658
+ },
{
"icon_id": "26363219",
"name": "箭头",
diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf
index 4d5afdc5..e4b21c0b 100644
Binary files a/public/css/iconfont.ttf and b/public/css/iconfont.ttf differ
diff --git a/public/css/iconfont.woff b/public/css/iconfont.woff
index 24bbe3db..2fb7db94 100644
Binary files a/public/css/iconfont.woff and b/public/css/iconfont.woff differ
diff --git a/public/css/iconfont.woff2 b/public/css/iconfont.woff2
index 8c4cf0fe..228840c6 100644
Binary files a/public/css/iconfont.woff2 and b/public/css/iconfont.woff2 differ
diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx
index bb75c078..004c46f2 100644
--- a/src/forge/Main/CoderDepot.jsx
+++ b/src/forge/Main/CoderDepot.jsx
@@ -435,7 +435,7 @@ function CoderDepot(props){
{
baseOperate &&
-
urlLink(`/${owner}/${projectsId}/compare/master...${branchName || defaultBranch}`)} >+ 合并请求
+
urlLink(`/${owner}/${projectsId}/compare/master...${turnbar(branchName || defaultBranch)}`)} >+ 合并请求
}
+ 疑修
{/* {
diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js
index 99637c91..b3beef41 100644
--- a/src/forge/Main/CoderRootCommit.js
+++ b/src/forge/Main/CoderRootCommit.js
@@ -1,6 +1,6 @@
import React , { Component } from 'react';
import { Spin , Pagination, Timeline } from 'antd';
-import { getImageUrl } from 'educoder';
+import { getImageUrl , returnbar } from 'educoder';
import { truncateCommitId ,timeFormat } from '../common/util';
import { AlignTop } from '../Component/layout';
import SelectBranch from '../Branch/Select';
@@ -15,12 +15,6 @@ import CopyTool from '../Component/CopyTool';
import './tree/Index.scss'
-function returnbar(str){
- if(str && str.length>0 && str.indexOf("%2F")>-1){
- return str.replaceAll('%2F','/');
- }
- return str;
-}
//代码库--提交页面
class CoderRootCommit extends Component{
@@ -79,7 +73,7 @@ class CoderRootCommit extends Component{
isSpining:true,
page:realPage
})
- this.getCommitList( branchName , realPage , limit );
+ this.getCommitList( returnbar(branchName) , realPage , limit );
}
getCommitList=(branch , page , limit)=>{
diff --git a/src/forge/Merge/CreateMerge.js b/src/forge/Merge/CreateMerge.js
index 12907922..e6d0d037 100644
--- a/src/forge/Merge/CreateMerge.js
+++ b/src/forge/Merge/CreateMerge.js
@@ -3,6 +3,8 @@ import { Input, Select, Spin, Alert } from 'antd';
import axios from 'axios';
import MergeForm from './merge_form';
import MergeFooter from './merge_footer';
+import { returnbar , turnbar } from 'educoder';
+import { Base64 } from 'js-base64';
import '../Order/order.css';
import './merge.css';
@@ -72,8 +74,8 @@ class CreateMerge extends Component {
pullBranches: undefined,
mergeBranches: undefined,
mergeProjects: undefined,
- merge: mergeBranch || 'master',
- pull: pullBranch || 'master',
+ merge: returnbar(mergeBranch) || 'master',
+ pull: returnbar(pullBranch) || 'master',
id: undefined,
// isFork: false,
projects_names: undefined,
@@ -127,11 +129,11 @@ class CreateMerge extends Component {
// 如果url上的分支不存在,取默认值master
const noMergeBranch =
(result.data.branches || []).filter(
- (branch) => branch.name === mergeBranch
+ (branch) => branch.name === returnbar(mergeBranch)
).length === 0;
const noPullBranch =
(result.data.branches || []).filter(
- (branch) => branch.name === pullBranch
+ (branch) => branch.name === returnbar(pullBranch)
).length === 0;
this.setState({
// isFork: result.data.is_fork,
@@ -141,8 +143,8 @@ class CreateMerge extends Component {
mergeBranches: result.data.branches,
project_id: result.data.project_id,
id: result.data.id,
- merge: mergeBranch,
- pull: pullBranch,
+ merge: returnbar(mergeBranch),
+ pull: returnbar(pullBranch),
});
//判断源分支是否存在
@@ -153,7 +155,7 @@ class CreateMerge extends Component {
isCompareSpin: false,
});
}else{
- if(pullOwner === mergeOwner){
+ if(pullOwner === returnbar(mergeOwner)){
if (!noMergeBranch) {
this.compareProject(true, branchParams);
} else {
@@ -179,13 +181,13 @@ class CreateMerge extends Component {
// compare接口,获取分支对比信息
compareProject = (sameProject, branchParams) => {
const { pullOwner, pullBranch, mergeOwner, mergeBranch, projectId } = branchParams;
-
let url = `/${mergeOwner}/${projectId}/compare`;
if (sameProject) {
- url += `/${pullBranch}...${mergeBranch}.json`;
+ url += `/${Base64.encode(returnbar(pullBranch))}...${Base64.encode(returnbar(mergeBranch))}.json`;
} else {
- url += `/${mergeBranch}...${pullOwner}/${projectId}:${pullBranch}.json`;
+ url += `/${Base64.encode(returnbar(mergeBranch))}...${pullOwner}/${projectId}:${Base64.encode(returnbar(pullBranch))}.json`;
}
+ console.log(url);
this.setState({ isSpin: false, isCompareSpin: true });
axios
.get(url)
@@ -255,10 +257,10 @@ class CreateMerge extends Component {
let _mergeBranch = type === 'pull' ? mergeBranch : value;
if (pullOwner === mergeOwner) {
// 如果仓库相同, compare/目标分支...源分支
- _url += `${_mergeBranch}...${_pullBranch}`;
+ _url += `${turnbar(_mergeBranch)}...${turnbar(_pullBranch)}`;
} else {
// 如果仓库不同, compare/目标分支...源分支
- _url += `${_mergeBranch}...${pullOwner}:${_pullBranch}`;
+ _url += `${turnbar(_mergeBranch)}...${pullOwner}:${turnbar(_pullBranch)}`;
}
this.props.history.push(_url);
};
@@ -292,11 +294,11 @@ class CreateMerge extends Component {
if (login === pullOwner) {
// 如果切换后, 仓库与源仓库一致了
this.props.history.push(
- `/${login}/${identifier}/compare/master...${pullBranch}`
+ `/${login}/${identifier}/compare/master...${turnbar(pullBranch)}`
);
} else {
this.props.history.push(
- `/${login}/${identifier}/compare/master...${pullOwner}:${pullBranch}`
+ `/${login}/${identifier}/compare/master...${pullOwner}:${turnbar(pullBranch)}`
);
}
}
diff --git a/src/forge/Newfile/UserSubmitComponent.js b/src/forge/Newfile/UserSubmitComponent.js
index 79b33361..08cac8d6 100644
--- a/src/forge/Newfile/UserSubmitComponent.js
+++ b/src/forge/Newfile/UserSubmitComponent.js
@@ -126,6 +126,30 @@ class UserSubmitComponent extends Component {
});
};
+ checkBranchName=(rule, value, callback)=>{
+ if(!value){
+ callback();
+ }
+ if (value) {
+ const str = '^*/';
+ let reg = /\\/g;
+ if(reg.test(value)){
+ callback(
分支名不能包含下列任何字符:^*\/);
+ }else{
+ for(var i=0;i
-1){
+ callback(分支名不能包含下列任何字符:^*\/);
+ return;
+ }else{
+ continue;
+ }
+ }
+ }
+ }
+ callback();
+ }
+
render() {
const { submitType, filename, isSpin } = this.state;
const { getFieldDecorator } = this.props.form;
@@ -211,6 +235,9 @@ class UserSubmitComponent extends Component {
required: true,
message: "请输入分支名称",
},
+ {
+ validator:this.checkBranchName
+ }
],
})(
;
};
+
+ bindCommentRef = (commentRef) => {
+ this.childComment = commentRef;
+ }
+
+ refreshFunc=()=> {
+ this.childComment && this.childComment.getjournalslist();
+ }
+
render() {
const { projectsId, orderId, owner } = this.props.match.params;
const { data, isSpins } = this.state;
@@ -292,11 +301,12 @@ class Detail extends Component {
order_id={orderId}
showNotification={this.props.showNotification}
{...this.props}
+ bindCommentRef={this.bindCommentRef}
/>
-
+
diff --git a/src/forge/Order/order.css b/src/forge/Order/order.css
index 0abd116f..60bb5d2b 100644
--- a/src/forge/Order/order.css
+++ b/src/forge/Order/order.css
@@ -692,7 +692,7 @@ a.issue-type-button.active:hover {
.issue-edit-form-right{margin-bottom: 0 !important;}
.plr10{padding: 0 10px;}
.issue-form-index .editormd-toolbar{position: absolute !important;}
-.list-right-item-padding{padding: 20px 35px 10px 35px;}
+.list-right-item-padding{padding: 20px 35px 10px 35px;margin-bottom: 20px;}
.tagColor {
display: inline-block;
width: 28px;
diff --git a/src/forge/claims/claim.scss b/src/forge/claims/claim.scss
index 092fa19b..a8bbac40 100644
--- a/src/forge/claims/claim.scss
+++ b/src/forge/claims/claim.scss
@@ -60,13 +60,13 @@
flex-wrap: wrap;
padding-bottom: 2px;
a{
- margin: 0px 17px 10px 0px;
+ margin: 0px 10px 10px 0px;
img{
border-radius: 50%;
width: 40px;
height: 40px;
}
- &:nth-child(5n){
+ &:nth-child(4n){
margin-right: 0px;
}
}
diff --git a/src/forge/claims/claims.js b/src/forge/claims/claims.js
index f45115b8..4361a10a 100644
--- a/src/forge/claims/claims.js
+++ b/src/forge/claims/claims.js
@@ -53,6 +53,8 @@ class claims extends React.Component {
claimNotePop:false,
claimNoteBody:'',
});
+ const { refreshFunc } = this.props;
+ refreshFunc && refreshFunc();
})
.catch(error => {
console.log(error);
@@ -69,6 +71,7 @@ class claims extends React.Component {
yesClaim = ()=>{
const {issue_id,claimNoteBody} = this.state;
+ const { refreshFunc } = this.props;
axios.post(`/issues/${issue_id}/claims.json`, {
claim_note: claimNoteBody
@@ -79,6 +82,7 @@ class claims extends React.Component {
currentUserClaimed: result.data.currentUserclaimed,
claimNotePop:false,
});
+ refreshFunc && refreshFunc();
})
.catch(error => {
console.log(error);
@@ -99,6 +103,7 @@ class claims extends React.Component {
updateClaim = (claimId,key)=>{
const {issue_id,claimNoteBody,claimNoteBodyChanged} = this.state;
+ const { refreshFunc } = this.props;
if(claimNoteBodyChanged){
axios.put(`/issues/${issue_id}/claims.json`, {
claim_note: claimNoteBody,
@@ -109,6 +114,7 @@ class claims extends React.Component {
claimerdata: result.data.claimers,
currentUserClaimed: result.data.currentUserclaimed,
});
+ refreshFunc && refreshFunc();
})
.catch(error => {
console.log(error);
@@ -238,12 +244,12 @@ class claims extends React.Component {
return (
- {currentUserClaimed==1?(
-
+ {currentUserClaimed===1?(
+
):(
-
+
)}
@@ -253,7 +259,10 @@ class claims extends React.Component {
{
claimerdata&&claimerdata.length>0?(
-
声明要关注/解决此疑修的用户{claimerdata.length}
+
+ 声明要关注/解决此疑修的用户
+ {claimerdata.length}
+
this.setVisibleFunc(false)}>
{claimerdata.map((item,key)=>{
return(
@@ -266,7 +275,10 @@ class claims extends React.Component {
})}
):(
-
声明要关注/解决此疑修的用户 0
+
+ 声明要关注/解决此疑修的用户
+ 0
+
)}
diff --git a/src/forge/users/Material/Base.jsx b/src/forge/users/Material/Base.jsx
index 61a9d6f1..c17bfbe3 100644
--- a/src/forge/users/Material/Base.jsx
+++ b/src/forge/users/Material/Base.jsx
@@ -76,9 +76,9 @@ export default Form.create()(
{getFieldDecorator("gender",{
- rules:[{required:true,message:"请选择性别"}]
+ rules:[]
})(
-
+
男
女
@@ -87,7 +87,7 @@ export default Form.create()(
{getFieldDecorator("custom_department",{
- rules:[{required:true,message:"请输入单位名称"}]
+ rules:[]
})(
)}