-
+
基本设置
@@ -67,7 +67,7 @@ class Index extends Component {
}
>
-
+
协作者管理
@@ -79,7 +79,7 @@ class Index extends Component {
}
>
-
+
Webhooks
@@ -91,7 +91,7 @@ class Index extends Component {
}
>
-
+
分支设置
@@ -101,7 +101,7 @@ class Index extends Component {
className={pathname.indexOf("setting/tags") > -1 ? "active" : ""}
>
-
+
项目标签
@@ -127,64 +127,64 @@ class Index extends Component {
{/* webhooks */}
(
)}
>
(
)}
>
(
)}
>
{/* 协作者 */}
(
)}
>
{/* 修改仓库信息 */}
(
)}
>
(
)}
>
(
)}
>
(
)}
>
(
)}
>
{/* 修改仓库信息 */}
(
)}
diff --git a/src/forge/Settings/Webhooks/Index.jsx b/src/forge/Settings/Webhooks/Index.jsx
index c6992243..f3f5e26a 100644
--- a/src/forge/Settings/Webhooks/Index.jsx
+++ b/src/forge/Settings/Webhooks/Index.jsx
@@ -62,7 +62,7 @@ function Index(props) {
if(total >= 20){
return props.showNotification("webhooks数量已到上限!请删除暂不使用的webhooks以进行添加操作");
}
- props.history.push(`/projects/${owner}/${projectsId}/setting/webhooks/new`)
+ props.history.push(`/${owner}/${projectsId}/setting/webhooks/new`)
}
return(
@@ -90,9 +90,9 @@ function Index(props) {
return(
- {i.url}
+ {i.url}
-
+
diff --git a/src/forge/Settings/Webhooks/New.jsx b/src/forge/Settings/Webhooks/New.jsx
index 0dedaa83..18b64b98 100644
--- a/src/forge/Settings/Webhooks/New.jsx
+++ b/src/forge/Settings/Webhooks/New.jsx
@@ -111,7 +111,7 @@ function New({ form , match , showNotification , history }) {
}).then(result=>{
if(result){
showNotification("webhook更新成功!");
- history.push(`/projects/${owner}/${projectsId}/setting/webhooks`);
+ history.push(`/${owner}/${projectsId}/setting/webhooks`);
}
}).catch(error=>{})
}else{
@@ -125,7 +125,7 @@ function New({ form , match , showNotification , history }) {
}).then(result=>{
if(result && result.data && result.data.id){
showNotification("webhook新建成功!");
- history.push(`/projects/${owner}/${projectsId}/setting/webhooks`);
+ history.push(`/${owner}/${projectsId}/setting/webhooks`);
}
}).catch(error=>{})
}
@@ -157,7 +157,7 @@ function New({ form , match , showNotification , history }) {
axios.delete(url).then(result=>{
if(result){
showNotification("webhook删除成功!");
- history.push(`/projects/${owner}/${projectsId}/setting/webhooks`);
+ history.push(`/${owner}/${projectsId}/setting/webhooks`);
}
}).catch(error=>{})
}
@@ -180,7 +180,7 @@ function New({ form , match , showNotification , history }) {
subTitle={`删除后未来事件将不会推送至此Webhook地址:${data && data.url}`}
/>
- Webhooks
+ Webhooks
{id ? "更新" : "添加"}Webhook
diff --git a/src/forge/Team/Group/GroupDetailProject.jsx b/src/forge/Team/Group/GroupDetailProject.jsx
index 0c843f0a..20284c9f 100644
--- a/src/forge/Team/Group/GroupDetailProject.jsx
+++ b/src/forge/Team/Group/GroupDetailProject.jsx
@@ -31,7 +31,7 @@ export default (({projects}) => {
return (
-
{item.project.name}
+
{item.project.name}
)
})
diff --git a/src/forge/Team/Group/Setting/GroupProjectSetting.jsx b/src/forge/Team/Group/Setting/GroupProjectSetting.jsx
index 1762a864..9a4f3958 100644
--- a/src/forge/Team/Group/Setting/GroupProjectSetting.jsx
+++ b/src/forge/Team/Group/Setting/GroupProjectSetting.jsx
@@ -180,7 +180,7 @@ function GroupProjectSetting(props) {
}
>
{item.project.owner_name}/{item.project.name}}
+ title={{item.project.owner_name}/{item.project.name}}
/>
)}
diff --git a/src/forge/Team/List.jsx b/src/forge/Team/List.jsx
index 8cf96587..7753aa5e 100644
--- a/src/forge/Team/List.jsx
+++ b/src/forge/Team/List.jsx
@@ -61,8 +61,8 @@ function List(props){
)
const menu_new=(
)
diff --git a/src/forge/Team/ListItem.jsx b/src/forge/Team/ListItem.jsx
index 3c2cf3f4..a908f80b 100644
--- a/src/forge/Team/ListItem.jsx
+++ b/src/forge/Team/ListItem.jsx
@@ -7,7 +7,7 @@ function ListItem({item,key,OIdentifier}) {
- {item.name}
+ {item.name}
{ item.forked_from_project_id && }
{
item.type && item.type !== 0 ?
diff --git a/src/forge/UsersList/fork_users.js b/src/forge/UsersList/fork_users.js
index 1e4c3e94..23cd5bea 100644
--- a/src/forge/UsersList/fork_users.js
+++ b/src/forge/UsersList/fork_users.js
@@ -96,7 +96,7 @@ class ForkUsers extends Component {
{
if (result) {
showNotification("版本修改成功!");
- history.push(`/projects/${owner}/${projectsId}/releases`);
+ history.push(`/${owner}/${projectsId}/releases`);
}
});
} else {
@@ -116,7 +116,7 @@ export default Form.create()(
.then(result => {
if (result) {
showNotification("版本发布成功!");
- history.push(`/projects/${owner}/${projectsId}/releases`);
+ history.push(`/${owner}/${projectsId}/releases`);
}
});
}
@@ -233,7 +233,7 @@ export default Form.create()(
diff --git a/src/forge/Wiki/EditWiki.jsx b/src/forge/Wiki/EditWiki.jsx
index ae30b446..a7b4911d 100644
--- a/src/forge/Wiki/EditWiki.jsx
+++ b/src/forge/Wiki/EditWiki.jsx
@@ -126,7 +126,7 @@ export default Form.create()(({ form, history, showNotification, projectDetail,
}
function goBack() {
- history.push(`/projects/${owner}/${projectsId}/wiki`);
+ history.push(`/${owner}/${projectsId}/wiki`);
}
function changeModal(e) {
diff --git a/src/forge/Wiki/Index.jsx b/src/forge/Wiki/Index.jsx
index 417f7967..f15b1968 100644
--- a/src/forge/Wiki/Index.jsx
+++ b/src/forge/Wiki/Index.jsx
@@ -107,15 +107,15 @@ export default (props) => {
}
function addFile() {
- history.push(`/projects/${owner}/${projectsId}/wiki/add`);
+ history.push(`/${owner}/${projectsId}/wiki/add`);
}
function goEdit() {
- history.push(`/projects/${owner}/${projectsId}/wiki/edit/${encodeURI(checkItem.name)}`);
+ history.push(`/${owner}/${projectsId}/wiki/edit/${encodeURI(checkItem.name)}`);
}
function preview() {
- window.open(`/projects/${owner}/${projectsId}/wiki/preview/${encodeURI(project.name)}/${project.id}`);
+ window.open(`/${owner}/${projectsId}/wiki/preview/${encodeURI(project.name)}/${project.id}`);
}
// 支持 Markdown,Html,Pdf格式文件
diff --git a/src/forge/Wiki/Preview.jsx b/src/forge/Wiki/Preview.jsx
index e7c6a623..93ebe2e8 100644
--- a/src/forge/Wiki/Preview.jsx
+++ b/src/forge/Wiki/Preview.jsx
@@ -61,11 +61,11 @@ export default (props) => {
}, [project, checkItem]);
function goEdit() {
- history.push(`/projects/${owner}/${projectsId}/wiki/edit/${checkItem.name}`);
+ history.push(`/${owner}/${projectsId}/wiki/edit/${checkItem.name}`);
}
function goBack() {
- history.push(`/projects/${owner}/${projectsId}/wiki`);
+ history.push(`/${owner}/${projectsId}/wiki`);
}
// 支持 Markdown,Html,Pdf格式文件
diff --git a/src/forge/Wiki/Welcome/index.jsx b/src/forge/Wiki/Welcome/index.jsx
index 78cd34e4..fc3af6ef 100644
--- a/src/forge/Wiki/Welcome/index.jsx
+++ b/src/forge/Wiki/Welcome/index.jsx
@@ -27,7 +27,7 @@ export default ({ project, isManager, history, showNotification, match, reloadLi
// }
function addFile() {
- history.push(`/projects/${owner}/${projectsId}/wiki/add`);
+ history.push(`/${owner}/${projectsId}/wiki/add`);
}
return (
diff --git a/src/forge/users/CIList.jsx b/src/forge/users/CIList.jsx
index a4e0331c..9953fa7b 100644
--- a/src/forge/users/CIList.jsx
+++ b/src/forge/users/CIList.jsx
@@ -62,7 +62,7 @@ function CIList(props){
return(
- {item.name}
+ {item.name}
{ item.open_devops ?
已激活
:
@@ -79,7 +79,7 @@ function CIList(props){
:
-
+
}
)
diff --git a/src/forge/users/GeneralView/ConcentrateProject.jsx b/src/forge/users/GeneralView/ConcentrateProject.jsx
index 05030b64..96b3d55a 100644
--- a/src/forge/users/GeneralView/ConcentrateProject.jsx
+++ b/src/forge/users/GeneralView/ConcentrateProject.jsx
@@ -59,7 +59,7 @@ function ConcentrateProject({userLogin,current}) {
list.map((i,k)=>{
return(
- {i.name}
+ {i.name}
{i.description}
{ i.category && {i.category.name} }
diff --git a/src/forge/users/Index.jsx b/src/forge/users/Index.jsx
index c02820c5..8737e5ca 100644
--- a/src/forge/users/Index.jsx
+++ b/src/forge/users/Index.jsx
@@ -10,17 +10,88 @@ const Infos = Loadable({
loader: () => import("./Infos"),
loading: Loading,
});
+//forge项目
+const Projects = Loadable({
+ loader: () => import('../Index'),
+ loading: Loading,
+})
export default withRouter(
- (CNotificationHOC()(SnackbarHOC()(TPMIndexHOC((props)=>{
- return(
-
- (
-
- )}
- >
-
+ (CNotificationHOC()(SnackbarHOC()(TPMIndexHOC((props) => {
+ return (
+
+
+ (
+
+ )}
+ >
+
+ (
+
+ )}
+ >
+
+ (
+
+ )}
+ >
+
+ (
+
+ )}
+ >
+
+ (
+
+ )}
+ >
+
+ (
+
+ )}
+ >
+
+ (
+
+ )}
+ >
+
+ (
+
+ )}
+ >
+
+ {
+ return ()
+ }
+ }>
+
+
+ (
+
+ )}
+ >
+
)
}))))
)
\ No newline at end of file
From 58115f8daeb7104e506a5794897a0dad29811ff5 Mon Sep 17 00:00:00 2001
From: caishi
Date: Wed, 1 Sep 2021 10:25:12 +0800
Subject: [PATCH 18/66] box
---
src/forge/Component/ProfileModal/Index.jsx | 16 +++++++++++++++
src/forge/Component/ProfileModal/Index.scss | 0
src/forge/Head/Header.js | 4 +++-
src/modules/tpm/TPMIndexHOC.js | 22 ++++++++++++++++-----
4 files changed, 36 insertions(+), 6 deletions(-)
create mode 100644 src/forge/Component/ProfileModal/Index.jsx
create mode 100644 src/forge/Component/ProfileModal/Index.scss
diff --git a/src/forge/Component/ProfileModal/Index.jsx b/src/forge/Component/ProfileModal/Index.jsx
new file mode 100644
index 00000000..fe3d6b7f
--- /dev/null
+++ b/src/forge/Component/ProfileModal/Index.jsx
@@ -0,0 +1,16 @@
+import React from 'react';
+import { Modal } from 'antd';
+
+import './Index.scss';
+
+function ProfileModal({visible}) {
+ return(
+
+ 您目前的个人资料不完整,需要补充资料以进行后续操作。是否前往补充个人信息?
+
+ )
+}
+export default ProfileModal;
\ No newline at end of file
diff --git a/src/forge/Component/ProfileModal/Index.scss b/src/forge/Component/ProfileModal/Index.scss
new file mode 100644
index 00000000..e69de29b
diff --git a/src/forge/Head/Header.js b/src/forge/Head/Header.js
index 628c3f3f..db0869ae 100644
--- a/src/forge/Head/Header.js
+++ b/src/forge/Head/Header.js
@@ -224,6 +224,7 @@ class NewHeader extends Component {
}
addMenu=(list)=>{
+ console.log(this.props);
return(
list && list.length >0 &&
@@ -231,7 +232,8 @@ class NewHeader extends Component {
{
list.map((item,key)=>{
return(
- (item.name !=="加入课堂" && item.name !=="加入开发项目") &&
{item.name}
+ (item.name !=="加入课堂" && item.name !=="加入开发项目") &&
+
{item.name}
)
})
}
diff --git a/src/modules/tpm/TPMIndexHOC.js b/src/modules/tpm/TPMIndexHOC.js
index fb49e7be..51ea6b20 100644
--- a/src/modules/tpm/TPMIndexHOC.js
+++ b/src/modules/tpm/TPMIndexHOC.js
@@ -6,6 +6,7 @@ import { Spin } from 'antd';
import './TPMIndex.css';
import LoginDialog from '../login/LoginDialog';
import EducoderAccount from '../../forge/Component/EducoderAccount';
+import ProfileModal from '../../forge/Component/ProfileModal/Index';
export function TPMIndexHOC(WrappedComponent) {
return class II extends React.Component {
@@ -24,7 +25,9 @@ export function TPMIndexHOC(WrappedComponent) {
isloginCancel: undefined,
mygetHelmetapi: null,
giteaVisible:false,
- email:undefined
+ email:undefined,
+ completeProfile:false,
+ showCP:false
}
}
@@ -151,7 +154,8 @@ export function TPMIndexHOC(WrappedComponent) {
if (response && response.data) {
this.initCommonState(response.data)
this.setState({
- tpmLoading: false
+ tpmLoading: false,
+ completeProfile:response.data.profile_completed
})
if (this.props.match.path === "/" && response.data.login) {
this.props.history.push(`/${response.data.login}`);
@@ -204,23 +208,31 @@ export function TPMIndexHOC(WrappedComponent) {
}).catch(error=>{})
}
+ showCompeleteDialog=()=>{
+ this.setState({
+ showCP:true
+ })
+ }
+
render() {
- let { isRender , current_user , giteaVisible , email } = this.state;
+ let { isRender , current_user , giteaVisible , email , completeProfile , showCP } = this.state;
const common = {
showLoginDialog: this.showLoginDialog,
checkIfLogin: this.checkIfLogin,
- resetUserInfo:this.fetchUsers
+ resetUserInfo:this.fetchUsers,
+ showCompeleteDialog:this.showCompeleteDialog
};
return (
+
{isRender === true ? this.hideLoginDialog()}
{...this.props}
{...this.state}
/> : ""}
-
+
From 30a141c92e1aaa06b5b93f191e74a9be76287c27 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=BD=95=E7=AB=A5=E5=B4=87?= <792998983@qq.com>
Date: Wed, 1 Sep 2021 10:58:38 +0800
Subject: [PATCH 19/66] =?UTF-8?q?=E4=BF=AE=E6=94=B9nopage=E7=9A=84?=
=?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/AppConfig.js | 6 ++--
src/forge/users/Index.jsx | 75 +++++----------------------------------
2 files changed, 11 insertions(+), 70 deletions(-)
diff --git a/src/AppConfig.js b/src/AppConfig.js
index aa966b8b..381ce19a 100644
--- a/src/AppConfig.js
+++ b/src/AppConfig.js
@@ -11,9 +11,9 @@ broadcastChannelOnmessage('refreshPage', () => {
})
function locationurl(list) {
- // if (window.location.port !== "3007") {
+ if (window.location.port !== "3007") {
window.location.href = list
- // }
+ }
}
// TODO 开发期多个身份切换
let debugType = ""
@@ -85,7 +85,7 @@ export function initAxiosInterceptors(props) {
}
if (response.data.status === 404) {
- let responseURL = response.data.request ? response.data.request.responseURL:'';
+ let responseURL = response.request ? response.request.responseURL:'';
if (responseURL.indexOf('/api/users/') === -1 && responseURL.indexOf('/api/organizations/') === -1) {
locationurl('/nopage');
}
diff --git a/src/forge/users/Index.jsx b/src/forge/users/Index.jsx
index 8737e5ca..c1438d82 100644
--- a/src/forge/users/Index.jsx
+++ b/src/forge/users/Index.jsx
@@ -17,78 +17,19 @@ const Projects = Loadable({
})
export default withRouter(
(CNotificationHOC()(SnackbarHOC()(TPMIndexHOC((props) => {
+ console.log(props.location.pathname);
+ let secondRouter = '';
+ if (props.location.pathname) {
+ secondRouter = props.location.pathname.split('/')[2];
+ }
+ let userRouterArr = ['statistics', 'projects', 'notice', 'devops', 'organizes', 'info', 'watchers', 'fan_users', 'password'];
return (
-
- (
-
- )}
- >
-
- (
-
- )}
- >
-
- (
-
- )}
- >
-
- (
-
- )}
- >
-
- (
-
- )}
- >
-
- (
-
- )}
- >
-
- (
-
- )}
- >
-
- (
-
- )}
- >
-
- {
- return ()
- }
- }>
-
-
(
-
+ secondRouter && (!userRouterArr.includes(secondRouter)) ?
+ :
)}
>
From 86f50d4278158df916cf3cc8a594d3a5b483350d Mon Sep 17 00:00:00 2001
From: caishi
Date: Wed, 1 Sep 2021 11:24:37 +0800
Subject: [PATCH 20/66] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E8=B5=84=E6=96=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/css/iconfont.css | 122 +++++++++++-----
public/css/iconfont.js | 2 +-
public/css/iconfont.json | 203 +++++++++++++++++++--------
public/css/iconfont.ttf | Bin 193348 -> 197688 bytes
public/css/iconfont.woff | Bin 118848 -> 121628 bytes
public/css/iconfont.woff2 | Bin 98776 -> 100728 bytes
src/forge/Head/Header.js | 11 +-
src/forge/SecuritySetting/Index.jsx | 14 ++
src/forge/SecuritySetting/Index.scss | 2 +
src/forge/users/Infos.js | 12 +-
src/forge/users/Material/Base.jsx | 12 +-
src/forge/users/Material/Index.jsx | 13 +-
src/forge/users/Material/Index.scss | 3 +
src/modules/tpm/TPMIndexHOC.js | 2 +-
14 files changed, 281 insertions(+), 115 deletions(-)
diff --git a/public/css/iconfont.css b/public/css/iconfont.css
index a15df586..ef7acc5d 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=1628841816999') format('woff2'),
- url('iconfont.woff?t=1628841816999') format('woff'),
- url('iconfont.ttf?t=1628841816999') format('truetype');
+ src: url('iconfont.woff2?t=1630465334247') format('woff2'),
+ url('iconfont.woff?t=1630465334247') format('woff'),
+ url('iconfont.ttf?t=1630465334247') format('truetype');
}
.iconfont {
@@ -13,6 +13,90 @@
-moz-osx-font-smoothing: grayscale;
}
+.icon-gerenziliao:before {
+ content: "\e8c4";
+}
+
+.icon-xinshouzhiyin:before {
+ content: "\e8e4";
+}
+
+.icon-xinjianxiangmu:before {
+ content: "\e8e6";
+}
+
+.icon-jiaruketang1:before {
+ content: "\e8e9";
+}
+
+.icon-xiangmugonggao:before {
+ content: "\e8c2";
+}
+
+.icon-chengguo:before {
+ content: "\e8c3";
+}
+
+.icon-chengjiaogonggao:before {
+ content: "\e8c0";
+}
+
+.icon-jishuzichan:before {
+ content: "\e8c1";
+}
+
+.icon-feibiaogonggao:before {
+ content: "\e8bc";
+}
+
+.icon-zhongbiaogonggao:before {
+ content: "\e8bd";
+}
+
+.icon-gengzhenggonggao:before {
+ content: "\e8be";
+}
+
+.icon-zhaobiaogonggao:before {
+ content: "\e8bf";
+}
+
+.icon-wenjian6:before {
+ content: "\e8ba";
+}
+
+.icon-wenjianjia4:before {
+ content: "\e8bb";
+}
+
+.icon-quxiaoguanzhu:before {
+ content: "\e89a";
+}
+
+.icon-dianzan_icon:before {
+ content: "\e8a2";
+}
+
+.icon-wenjian5:before {
+ content: "\e896";
+}
+
+.icon-wenjianjia3:before {
+ content: "\e8a9";
+}
+
+.icon-fuzhiicon:before {
+ content: "\e886";
+}
+
+.icon-zhuye-fill:before {
+ content: "\e876";
+}
+
+.icon-daimakuicon:before {
+ content: "\e884";
+}
+
.icon-xinjian2:before {
content: "\e8b0";
}
@@ -29,22 +113,6 @@
content: "\e8a6";
}
-.icon-dianzan_icon:before {
- content: "\e8ba";
-}
-
-.icon-quxiaoguanzhu:before {
- content: "\e8bb";
-}
-
-.icon-daimakuicon:before {
- content: "\e8a9";
-}
-
-.icon-zhuyeicon:before {
- content: "\e884";
-}
-
.icon-biaoqianicon:before {
content: "\e882";
}
@@ -57,10 +125,6 @@
content: "\e885";
}
-.icon-fuzhiicon:before {
- content: "\e886";
-}
-
.icon-lianjieicon:before {
content: "\e887";
}
@@ -93,10 +157,6 @@
content: "\e899";
}
-.icon-wenjian5:before {
- content: "\e89a";
-}
-
.icon-tijiaoicon:before {
content: "\e89e";
}
@@ -105,10 +165,6 @@
content: "\e89f";
}
-.icon-wenjianjia3:before {
- content: "\e8a2";
-}
-
.icon-xialaanniu1:before {
content: "\e8a4";
}
@@ -241,10 +297,6 @@
content: "\e875";
}
-.icon-fuzhi_icon:before {
- content: "\e876";
-}
-
.icon-shanchuicon:before {
content: "\e877";
}
diff --git a/public/css/iconfont.js b/public/css/iconfont.js
index 94af421b..3ac5acaa 100644
--- a/public/css/iconfont.js
+++ b/public/css/iconfont.js
@@ -1 +1 @@
-!function(c){var l,a,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(c,l){l.parentNode.insertBefore(c,l)};if(t&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(m,50)}v()}l=function(){var c,l;(l=document.createElement("div")).innerHTML=z,z=null,(c=l.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",l=c,(c=document.body).firstChild?p(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),l()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(h=l,i=c.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window);
+!function(c){var l,a,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(c,l){l.parentNode.insertBefore(c,l)};if(t&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(m,50)}v()}l=function(){var c,l;(l=document.createElement("div")).innerHTML=z,z=null,(c=l.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",l=c,(c=document.body).firstChild?p(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),l()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(h=l,i=c.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window);
\ No newline at end of file
diff --git a/public/css/iconfont.json b/public/css/iconfont.json
index 7f25b322..5f14bf58 100644
--- a/public/css/iconfont.json
+++ b/public/css/iconfont.json
@@ -5,6 +5,153 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
+ {
+ "icon_id": "24014152",
+ "name": "个人资料",
+ "font_class": "gerenziliao",
+ "unicode": "e8c4",
+ "unicode_decimal": 59588
+ },
+ {
+ "icon_id": "23655968",
+ "name": "新手指引",
+ "font_class": "xinshouzhiyin",
+ "unicode": "e8e4",
+ "unicode_decimal": 59620
+ },
+ {
+ "icon_id": "23655969",
+ "name": "新建项目",
+ "font_class": "xinjianxiangmu",
+ "unicode": "e8e6",
+ "unicode_decimal": 59622
+ },
+ {
+ "icon_id": "23658111",
+ "name": "加入课堂",
+ "font_class": "jiaruketang1",
+ "unicode": "e8e9",
+ "unicode_decimal": 59625
+ },
+ {
+ "icon_id": "23791639",
+ "name": "项目公告",
+ "font_class": "xiangmugonggao",
+ "unicode": "e8c2",
+ "unicode_decimal": 59586
+ },
+ {
+ "icon_id": "23791640",
+ "name": "成果",
+ "font_class": "chengguo",
+ "unicode": "e8c3",
+ "unicode_decimal": 59587
+ },
+ {
+ "icon_id": "23791410",
+ "name": "成交公告",
+ "font_class": "chengjiaogonggao",
+ "unicode": "e8c0",
+ "unicode_decimal": 59584
+ },
+ {
+ "icon_id": "23791411",
+ "name": "技术资产",
+ "font_class": "jishuzichan",
+ "unicode": "e8c1",
+ "unicode_decimal": 59585
+ },
+ {
+ "icon_id": "23790928",
+ "name": "废标公告",
+ "font_class": "feibiaogonggao",
+ "unicode": "e8bc",
+ "unicode_decimal": 59580
+ },
+ {
+ "icon_id": "23790929",
+ "name": "中标公告",
+ "font_class": "zhongbiaogonggao",
+ "unicode": "e8bd",
+ "unicode_decimal": 59581
+ },
+ {
+ "icon_id": "23790930",
+ "name": "更正公告",
+ "font_class": "gengzhenggonggao",
+ "unicode": "e8be",
+ "unicode_decimal": 59582
+ },
+ {
+ "icon_id": "23790931",
+ "name": "招标公告",
+ "font_class": "zhaobiaogonggao",
+ "unicode": "e8bf",
+ "unicode_decimal": 59583
+ },
+ {
+ "icon_id": "23732532",
+ "name": "文件",
+ "font_class": "wenjian6",
+ "unicode": "e8ba",
+ "unicode_decimal": 59578
+ },
+ {
+ "icon_id": "23732533",
+ "name": "文件夹",
+ "font_class": "wenjianjia4",
+ "unicode": "e8bb",
+ "unicode_decimal": 59579
+ },
+ {
+ "icon_id": "23642443",
+ "name": "取消关注",
+ "font_class": "quxiaoguanzhu",
+ "unicode": "e89a",
+ "unicode_decimal": 59546
+ },
+ {
+ "icon_id": "23642444",
+ "name": "点赞_icon",
+ "font_class": "dianzan_icon",
+ "unicode": "e8a2",
+ "unicode_decimal": 59554
+ },
+ {
+ "icon_id": "23639530",
+ "name": "文件",
+ "font_class": "wenjian5",
+ "unicode": "e896",
+ "unicode_decimal": 59542
+ },
+ {
+ "icon_id": "23639533",
+ "name": "文件夹",
+ "font_class": "wenjianjia3",
+ "unicode": "e8a9",
+ "unicode_decimal": 59561
+ },
+ {
+ "icon_id": "23639440",
+ "name": "复制icon",
+ "font_class": "fuzhiicon",
+ "unicode": "e886",
+ "unicode_decimal": 59526
+ },
+ {
+ "icon_id": "23639422",
+ "name": "主页-fill",
+ "font_class": "zhuye-fill",
+ "unicode": "e876",
+ "unicode_decimal": 59510
+ },
+ {
+ "icon_id": "23639423",
+ "name": "代码库icon",
+ "font_class": "daimakuicon",
+ "unicode": "e884",
+ "unicode_decimal": 59524
+ },
{
"icon_id": "23572260",
"name": "新建",
@@ -33,34 +180,6 @@
"unicode": "e8a6",
"unicode_decimal": 59558
},
- {
- "icon_id": "23492900",
- "name": "点赞_icon",
- "font_class": "dianzan_icon",
- "unicode": "e8ba",
- "unicode_decimal": 59578
- },
- {
- "icon_id": "23492901",
- "name": "取消关注",
- "font_class": "quxiaoguanzhu",
- "unicode": "e8bb",
- "unicode_decimal": 59579
- },
- {
- "icon_id": "23473151",
- "name": "代码库icon",
- "font_class": "daimakuicon",
- "unicode": "e8a9",
- "unicode_decimal": 59561
- },
- {
- "icon_id": "23473104",
- "name": "主页icon",
- "font_class": "zhuyeicon",
- "unicode": "e884",
- "unicode_decimal": 59524
- },
{
"icon_id": "23472253",
"name": "标签icon",
@@ -82,13 +201,6 @@
"unicode": "e885",
"unicode_decimal": 59525
},
- {
- "icon_id": "23472257",
- "name": "复制icon",
- "font_class": "fuzhiicon",
- "unicode": "e886",
- "unicode_decimal": 59526
- },
{
"icon_id": "23472258",
"name": "链接icon",
@@ -145,13 +257,6 @@
"unicode": "e899",
"unicode_decimal": 59545
},
- {
- "icon_id": "23472268",
- "name": "文件",
- "font_class": "wenjian5",
- "unicode": "e89a",
- "unicode_decimal": 59546
- },
{
"icon_id": "23472269",
"name": "提交icon",
@@ -166,13 +271,6 @@
"unicode": "e89f",
"unicode_decimal": 59551
},
- {
- "icon_id": "23472271",
- "name": "文件夹",
- "font_class": "wenjianjia3",
- "unicode": "e8a2",
- "unicode_decimal": 59554
- },
{
"icon_id": "23472272",
"name": "下拉按钮",
@@ -404,13 +502,6 @@
"unicode": "e875",
"unicode_decimal": 59509
},
- {
- "icon_id": "23046262",
- "name": "复制_icon",
- "font_class": "fuzhi_icon",
- "unicode": "e876",
- "unicode_decimal": 59510
- },
{
"icon_id": "23046268",
"name": "删除icon",
diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf
index 484348baf915a875a83b5e942e72f11bcff69ee4..7a179243535edd64ee5171054d41c8ab1d2d585c 100644
GIT binary patch
delta 17713
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
N!=Ie}zP_LHe*nU<@T&j-
delta 13429
zcmY+L2Y3}l*tVbdrG*|K^cEmM=m7!*2+}e14go?51PG8&1B7})4;>6mihv?TgQB2B
zK}A80iVBK?iUJCI4uT3+RLb|vdAKhb%+qn*86f%y*Y~6*rccdtP2;$|9MgwSPD~x^
z3wPY(oR7<(*F
zYL}74WB)+myuk$Dw!ZkK3phUvJRDH4UY=a8hCu(zgZtk&M!w+7%mh2R31=K8x+xg*|u%%dj7d;X@L}
zV%@IF4o$2f=2@g=^(H<*eUK75N=n4?eOsua~{@B>SB
z6T^^++gOcXunxcC58T6i{ELSol2-~yAqkaIQd-JMMX4-R5iixHt~8M5Qd=UBC{fZ>
zT1u?6l@8Kb;-tIulD;xr#>hC`BgryRCd({YD2rvO_?F8Wd0w{2OY)@bkX^D{o|Ts+
zO}>!h@|wIZC*&=8Ti%rqv#*2!U?*3kyqM%!w8?Wmo#yFRYH
zb)+V0e;ufUb%>79u{vHS$XuPIbJVAcG*zeQG@YR{b-2#fWx7OHNQSP|wHU#8w{?bQ
z>1N%kPwGyL)V&yjgdig^8e`>iBx91KV=|_}mxkGxiv@BM8CZhlScx@Qk0-DX&tWsR
zVTT;RQ#h;(a0GjC6tChnUVm@l9lVQNe1uPM9v5)Yp?UBfuF1E!4nKaxPq>3W@i*?{
zk-R7>`6NUNOED>dBT`1nJ9M5;!li~pN=>OJ4W+R}OABcwZKR`IkuK6zdPr~SCj%v3
zhRFy?lJPho6C_b?$s|dYDKbrF$V~huvt^FVlLg|FMY2Se$qHF1t7WZxEbC>HY?Lh7
zEL%xC*)BWfDcK|YWWO8~-*fV&WXlV3gu5J-SC~A9JFb*d@{XL*5P45>}X$S43DcVKjw43(O
zUfM_d=>SdEK^m_^b%ZA9C>^ayI!-6*WSy#gb+t~{G@YgCI#=iGLS3#Ix>%QLrmoU8
zx=z>Y2HmC`^$FcBzLUC3H|ZALtxxMd$<+NAis5oiUd1RKhA|k22}r>dOvg;5<7v#p
zLM*~ktiUR)#Rgt7d(!}EI?cY+M_GFp#mzR
z5-Ot#@*%$#kPY&LJT1@2Ufz!LAH7>r#m55huUaLyeBiOazW%6%~8go_2|Ne9HLo7hkQgAHDnZB
z%+Q{6af9Osyifxh=@JIV7I-BMjxzB03&G*TRtCZh4n6Qn8ytk-l`%LR!7FQUV1mb?
z-@zdYUU`Fq6}$=thb?#&4Gv)NSi24$4PIq~gBrXljNt+t-{4g>IMTrjH#p|Ot7dTY
zgIC?)I0&zX!4VN&gu$^9UQL6eB)nP%a_HIyM^1Q=22QvV)iF4n!mDd=V1?(JfpCb0
zSKr`Z3$KB}VHaLQg99+UMh1sscu@uiWq6GZ4$ttK7#yhKH6=bSIA+6(HaL32Yi3{u
z-Q3`S4zGp5p&ed~fjM+bgTp<%RtB!ptqmzk#~S=G0I!X~p9S!Fk8y>#Ztt}<_*(&9
zJA=O(;I%jS`vG1DgTEx;bu{>!0$wMBzb@c)HuyUOUKfMEIN&{Q@V5uNxFD?mdknZ<
zOZbBXUN?h3P2hDm@R06d2roykry+UiUWOE)dmB=S?qf(O-Pe#(bU#B}NAK_2zdtW6
z_GWK@ArEGL!PAP8M1?R{fo#hdVz!OFS{97XvniP
z;~erboneS8*djx|pj}~!9H*BU@*3?5PULlZnIR`=cM?S2qE{I5Htoygg2=n{N<%)N
zR~d4iUTw%l+SLG&ujsXgd_%7@Gqfn}s+)*w_w9zb`+=)^qQ&W*hI~rza_!Hy&=OpE%Fwd3YZ9WR
zXxG7rJfim+TA6;@&_?t#hBl`68CsQg%}KN=z2DGg^Z`R#_!u~7XiNH#p{?oX3@uH&
z&PKF6oo&c(^kG9Q(k~cVjegP48uSrEYtkF|;lHnxXA!*9nPsq)!;ynLcS~cX$22!4;y9({CEun|{mCk@P7;6X~}N
z?N7gB=s^0kp@Zo&h7O_MHFOO9o}pvu_k;L2WxznLp%ds244F%RXy_#RBSYuVXAO1D
z_pzai=uZqyrCkRjI)y%G=rsDgp)=^uTn3*p(Mspm^w$QTBH?{wz}@aI8|rf<`ql`R`a6b6u+&!=Cc%4csGq;{ErNiVEiqHNid_^3==;4
z!u!d9YuBF*J`cnD#o&`MygLS5Q{FZBw9M=OSFR8~IK%tR;3G7=-wmYEe;9nKhWDqz
z=WBR>8CXEyGx*F6?{5Pc^gjll!{PmF@QEDWeFxj059jb67<^2J_t4-2JG@5*AKm%%
zZSWx;elhqs55F3Gu!ld7!AE@f^BUMe=QH@&4}X4x69Dl03UEPim<};GD*%5%gYyIM
z7cw|g0DobFa|ZAiF*thwe^G<;2=Es(+>D;TxWTyv_(KiOGQeNL@NvQc{*nf#9^fx!
za1sLkFoV+(@Rv3?F#&%WgVPi6mo+$90e?9o7+;=Y5{$3FFyT}N{1pvOYQSHK?au|k
z9__DeaHa$PDhB5~;IC@9`uB$$oCkrwn!y4onee2u8=JaafNARh&yO&LzuVE
zAIlXYE|WHfxWtbc;^NvG(vfaw$Q8Q1AzkPWhIFM}IwC#jPKNZRI~&rEcKdW;`^!KE
z9ycVOjx%H!?J^@Wg6?KW65ZY4#1;JRAOr{Ko`y`Idl`~QyMq(CMfWje65ZFee_w7$
zrCq6rOriT5GL0T!$PC&QmT-0q{y_$QqX!!@n|3EbWDY&V5Z9DL4Ou|DlOy7D1xPSt
z5k1_HCA2$hBFpHJhOD4R8M2agXGdf;J=&19^cX`vrd^E@Sx=8OWD`BkwLcfKkt?n$
ziDc2qhHR!?RT9}sPc(w@uKI|${*YqGcG}e>k)8BpL!P2ttrFQoPc>wpyZ&7j6WLEs
zH{>Ags+-7jbebV=(yr=>WYe<@d4YCSPvi)lZUk$~H3N~O^jt$;pAWAz8CWj)2@#Y`I+9~+J6UE
z?r_C*7$U#YyA1iAe#($P>D`9hqg_WL@(;b&ko)x0hCHO7F%