git@gitee.com:SKYID/osredm-comp-custom.git
Before Width: | Height: | Size: 4.2 KiB |
|
@ -9,13 +9,10 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
<link rel="icon" href="./pageLogo.jpg">
|
||||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
<title>红山开源社区竞赛服务系统</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<noscript>
|
|
||||||
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
|
||||||
</noscript>
|
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<!-- built files will be auto injected -->
|
<!-- built files will be auto injected -->
|
||||||
</body>
|
</body>
|
||||||
|
|
After Width: | Height: | Size: 9.7 KiB |
27
src/App.vue
|
@ -5,20 +5,35 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'App',
|
name: 'App',
|
||||||
components: {
|
components: {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
|
||||||
#app {
|
|
||||||
font-family: Avenir, Helvetica, Arial, sans-serif;
|
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
html, body, #app{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
border: 0;
|
||||||
|
|
||||||
|
font-size: 100%;
|
||||||
|
line-height: 1.2;
|
||||||
|
font: inherit; /* 所有元素字体一致 */
|
||||||
|
vertical-align: baseline; /* 行内元素垂直对齐:父级元素基线 */
|
||||||
|
text-align: center; /* 水平居中 */
|
||||||
|
|
||||||
|
font-family: 'Avenir', Helvetica, Arial, sans-serif;
|
||||||
|
-webkit-font-smoothing: antialiased; /* 字体抗锯齿Chrome */
|
||||||
|
-moz-osx-font-smoothing: grayscale; /* 字体抗锯齿Firefox */
|
||||||
|
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
.footer{
|
.footer{
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
height:11.3vw;
|
height: 11.3vw;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: #0a1d30;
|
background-color: #0a1d30;
|
||||||
|
@ -19,24 +19,21 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.text{
|
.text{
|
||||||
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-left: 50px;
|
margin-left: 50px;
|
||||||
color: white;
|
color: white;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover{
|
a:hover{
|
||||||
color: rgb(250, 202, 46);
|
color: rgb(250, 202, 46);
|
||||||
}
|
}
|
||||||
|
|
||||||
a:active{
|
a:active{
|
||||||
color: rgb(250, 202, 46);
|
color: rgb(250, 202, 46);
|
||||||
}
|
}
|
||||||
|
|
||||||
a{
|
a{
|
||||||
text-decoration:none;
|
text-decoration: none;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
|
@ -1,15 +1,32 @@
|
||||||
|
.container {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-info {
|
||||||
|
position: absolute;
|
||||||
|
top: 3vw;
|
||||||
|
right: 3vw;
|
||||||
|
}
|
||||||
|
.user-info-dropdown {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
width: 3vw;
|
||||||
|
height: 3vw;
|
||||||
|
border-radius: 11px;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
.nav{
|
.nav{
|
||||||
text-align: center;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
/*vertical-align: center;*/
|
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-menu-item{
|
.el-menu-item{
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
|
|
||||||
}
|
}
|
||||||
/deep/ .el-submenu__title{
|
::v-deep .el-submenu__title{
|
||||||
font-size: 1.1rem !important;
|
font-size: 1.1rem !important;
|
||||||
/*width: 129px !important;*/
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,539 @@
|
||||||
|
/* Logo 字体 */
|
||||||
|
@font-face {
|
||||||
|
font-family: "iconfont logo";
|
||||||
|
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
|
||||||
|
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
|
||||||
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
|
||||||
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
|
||||||
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
font-family: "iconfont logo";
|
||||||
|
font-size: 160px;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* tabs */
|
||||||
|
.nav-tabs {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-tabs .nav-more {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tabs {
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tabs li {
|
||||||
|
cursor: pointer;
|
||||||
|
width: 100px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 16px;
|
||||||
|
border-bottom: 2px solid transparent;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
margin-bottom: -1px;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#tabs .active {
|
||||||
|
border-bottom-color: #f00;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-container .content {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 页面布局 */
|
||||||
|
.main {
|
||||||
|
padding: 30px 100px;
|
||||||
|
width: 960px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main .logo {
|
||||||
|
color: #333;
|
||||||
|
text-align: left;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
line-height: 1;
|
||||||
|
height: 110px;
|
||||||
|
margin-top: -50px;
|
||||||
|
overflow: hidden;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main .logo a {
|
||||||
|
font-size: 160px;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.helps {
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.helps pre {
|
||||||
|
padding: 20px;
|
||||||
|
margin: 10px 0;
|
||||||
|
border: solid 1px #e7e1cd;
|
||||||
|
background-color: #fffdef;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists {
|
||||||
|
width: 100% !important;
|
||||||
|
overflow: hidden;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists li {
|
||||||
|
width: 100px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-right: 20px;
|
||||||
|
text-align: center;
|
||||||
|
list-style: none !important;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists li .code-name {
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists .icon {
|
||||||
|
display: block;
|
||||||
|
height: 100px;
|
||||||
|
line-height: 100px;
|
||||||
|
font-size: 42px;
|
||||||
|
margin: 10px auto;
|
||||||
|
color: #333;
|
||||||
|
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
|
||||||
|
-moz-transition: font-size 0.25s linear, width 0.25s linear;
|
||||||
|
transition: font-size 0.25s linear, width 0.25s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists .icon:hover {
|
||||||
|
font-size: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists .svg-icon {
|
||||||
|
/* 通过设置 font-size 来改变图标大小 */
|
||||||
|
width: 1em;
|
||||||
|
/* 图标和文字相邻时,垂直对齐 */
|
||||||
|
vertical-align: -0.15em;
|
||||||
|
/* 通过设置 color 来改变 SVG 的颜色/fill */
|
||||||
|
fill: currentColor;
|
||||||
|
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
|
||||||
|
normalize.css 中也包含这行 */
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists li .name,
|
||||||
|
.icon_lists li .code-name {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* markdown 样式 */
|
||||||
|
.markdown {
|
||||||
|
color: #666;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown img {
|
||||||
|
vertical-align: middle;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h1 {
|
||||||
|
color: #404040;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 40px;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h2,
|
||||||
|
.markdown h3,
|
||||||
|
.markdown h4,
|
||||||
|
.markdown h5,
|
||||||
|
.markdown h6 {
|
||||||
|
color: #404040;
|
||||||
|
margin: 1.6em 0 0.6em 0;
|
||||||
|
font-weight: 500;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h1 {
|
||||||
|
font-size: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h2 {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h3 {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h4 {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h5 {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h6 {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown hr {
|
||||||
|
height: 1px;
|
||||||
|
border: 0;
|
||||||
|
background: #e9e9e9;
|
||||||
|
margin: 16px 0;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown p {
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>p,
|
||||||
|
.markdown>blockquote,
|
||||||
|
.markdown>.highlight,
|
||||||
|
.markdown>ol,
|
||||||
|
.markdown>ul {
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown ul>li {
|
||||||
|
list-style: circle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>ul li,
|
||||||
|
.markdown blockquote ul>li {
|
||||||
|
margin-left: 20px;
|
||||||
|
padding-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>ul li p,
|
||||||
|
.markdown>ol li p {
|
||||||
|
margin: 0.6em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown ol>li {
|
||||||
|
list-style: decimal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>ol li,
|
||||||
|
.markdown blockquote ol>li {
|
||||||
|
margin-left: 20px;
|
||||||
|
padding-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown code {
|
||||||
|
margin: 0 3px;
|
||||||
|
padding: 0 5px;
|
||||||
|
background: #eee;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown strong,
|
||||||
|
.markdown b {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0px;
|
||||||
|
empty-cells: show;
|
||||||
|
border: 1px solid #e9e9e9;
|
||||||
|
width: 95%;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>table th {
|
||||||
|
white-space: nowrap;
|
||||||
|
color: #333;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>table th,
|
||||||
|
.markdown>table td {
|
||||||
|
border: 1px solid #e9e9e9;
|
||||||
|
padding: 8px 16px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>table th {
|
||||||
|
background: #F7F7F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown blockquote {
|
||||||
|
font-size: 90%;
|
||||||
|
color: #999;
|
||||||
|
border-left: 4px solid #e9e9e9;
|
||||||
|
padding-left: 0.8em;
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown blockquote p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown .anchor {
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown .waiting {
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h1:hover .anchor,
|
||||||
|
.markdown h2:hover .anchor,
|
||||||
|
.markdown h3:hover .anchor,
|
||||||
|
.markdown h4:hover .anchor,
|
||||||
|
.markdown h5:hover .anchor,
|
||||||
|
.markdown h6:hover .anchor {
|
||||||
|
opacity: 1;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>br,
|
||||||
|
.markdown>p>br {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.hljs {
|
||||||
|
display: block;
|
||||||
|
background: white;
|
||||||
|
padding: 0.5em;
|
||||||
|
color: #333333;
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-comment,
|
||||||
|
.hljs-meta {
|
||||||
|
color: #969896;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-string,
|
||||||
|
.hljs-variable,
|
||||||
|
.hljs-template-variable,
|
||||||
|
.hljs-strong,
|
||||||
|
.hljs-emphasis,
|
||||||
|
.hljs-quote {
|
||||||
|
color: #df5000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-keyword,
|
||||||
|
.hljs-selector-tag,
|
||||||
|
.hljs-type {
|
||||||
|
color: #a71d5d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-literal,
|
||||||
|
.hljs-symbol,
|
||||||
|
.hljs-bullet,
|
||||||
|
.hljs-attribute {
|
||||||
|
color: #0086b3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-section,
|
||||||
|
.hljs-name {
|
||||||
|
color: #63a35c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-tag {
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-title,
|
||||||
|
.hljs-attr,
|
||||||
|
.hljs-selector-id,
|
||||||
|
.hljs-selector-class,
|
||||||
|
.hljs-selector-attr,
|
||||||
|
.hljs-selector-pseudo {
|
||||||
|
color: #795da3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-addition {
|
||||||
|
color: #55a532;
|
||||||
|
background-color: #eaffea;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-deletion {
|
||||||
|
color: #bd2c00;
|
||||||
|
background-color: #ffecec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-link {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 代码高亮 */
|
||||||
|
/* PrismJS 1.15.0
|
||||||
|
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
|
||||||
|
/**
|
||||||
|
* prism.js default theme for JavaScript, CSS and HTML
|
||||||
|
* Based on dabblet (http://dabblet.com)
|
||||||
|
* @author Lea Verou
|
||||||
|
*/
|
||||||
|
code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
color: black;
|
||||||
|
background: none;
|
||||||
|
text-shadow: 0 1px white;
|
||||||
|
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||||
|
text-align: left;
|
||||||
|
white-space: pre;
|
||||||
|
word-spacing: normal;
|
||||||
|
word-break: normal;
|
||||||
|
word-wrap: normal;
|
||||||
|
line-height: 1.5;
|
||||||
|
|
||||||
|
-moz-tab-size: 4;
|
||||||
|
-o-tab-size: 4;
|
||||||
|
tab-size: 4;
|
||||||
|
|
||||||
|
-webkit-hyphens: none;
|
||||||
|
-moz-hyphens: none;
|
||||||
|
-ms-hyphens: none;
|
||||||
|
hyphens: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre[class*="language-"]::-moz-selection,
|
||||||
|
pre[class*="language-"] ::-moz-selection,
|
||||||
|
code[class*="language-"]::-moz-selection,
|
||||||
|
code[class*="language-"] ::-moz-selection {
|
||||||
|
text-shadow: none;
|
||||||
|
background: #b3d4fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre[class*="language-"]::selection,
|
||||||
|
pre[class*="language-"] ::selection,
|
||||||
|
code[class*="language-"]::selection,
|
||||||
|
code[class*="language-"] ::selection {
|
||||||
|
text-shadow: none;
|
||||||
|
background: #b3d4fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
|
||||||
|
code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code blocks */
|
||||||
|
pre[class*="language-"] {
|
||||||
|
padding: 1em;
|
||||||
|
margin: .5em 0;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
:not(pre)>code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
background: #f5f2f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inline code */
|
||||||
|
:not(pre)>code[class*="language-"] {
|
||||||
|
padding: .1em;
|
||||||
|
border-radius: .3em;
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.comment,
|
||||||
|
.token.prolog,
|
||||||
|
.token.doctype,
|
||||||
|
.token.cdata {
|
||||||
|
color: slategray;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.punctuation {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.namespace {
|
||||||
|
opacity: .7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.property,
|
||||||
|
.token.tag,
|
||||||
|
.token.boolean,
|
||||||
|
.token.number,
|
||||||
|
.token.constant,
|
||||||
|
.token.symbol,
|
||||||
|
.token.deleted {
|
||||||
|
color: #905;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.selector,
|
||||||
|
.token.attr-name,
|
||||||
|
.token.string,
|
||||||
|
.token.char,
|
||||||
|
.token.builtin,
|
||||||
|
.token.inserted {
|
||||||
|
color: #690;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.operator,
|
||||||
|
.token.entity,
|
||||||
|
.token.url,
|
||||||
|
.language-css .token.string,
|
||||||
|
.style .token.string {
|
||||||
|
color: #9a6e3a;
|
||||||
|
background: hsla(0, 0%, 100%, .5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.atrule,
|
||||||
|
.token.attr-value,
|
||||||
|
.token.keyword {
|
||||||
|
color: #07a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.function,
|
||||||
|
.token.class-name {
|
||||||
|
color: #DD4A68;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.regex,
|
||||||
|
.token.important,
|
||||||
|
.token.variable {
|
||||||
|
color: #e90;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.important,
|
||||||
|
.token.bold {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.italic {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.entity {
|
||||||
|
cursor: help;
|
||||||
|
}
|
|
@ -0,0 +1,257 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title>iconfont Demo</title>
|
||||||
|
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i2/O1CN01ZyAlrn1MwaMhqz36G_!!6000000001499-73-tps-64-64.ico" type="image/x-icon"/>
|
||||||
|
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01EYTRnJ297D6vehehJ_!!6000000008020-55-tps-64-64.svg"/>
|
||||||
|
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
|
||||||
|
<link rel="stylesheet" href="demo.css">
|
||||||
|
<link rel="stylesheet" href="iconfont.css">
|
||||||
|
<script src="iconfont.js"></script>
|
||||||
|
<!-- jQuery -->
|
||||||
|
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
|
||||||
|
<!-- 代码高亮 -->
|
||||||
|
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
|
||||||
|
<style>
|
||||||
|
.main .logo {
|
||||||
|
margin-top: 0;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main .logo a {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main .logo .sub-title {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
font-size: 22px;
|
||||||
|
color: #fff;
|
||||||
|
background: linear-gradient(-45deg, #3967FF, #B500FE);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="main">
|
||||||
|
<h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">
|
||||||
|
<img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
|
||||||
|
|
||||||
|
</a></h1>
|
||||||
|
<div class="nav-tabs">
|
||||||
|
<ul id="tabs" class="dib-box">
|
||||||
|
<li class="dib active"><span>Unicode</span></li>
|
||||||
|
<li class="dib"><span>Font class</span></li>
|
||||||
|
<li class="dib"><span>Symbol</span></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=3442121" target="_blank" class="nav-more">查看项目</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="tab-container">
|
||||||
|
<div class="content unicode" style="display: block;">
|
||||||
|
<ul class="icon_lists dib-box">
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont"></span>
|
||||||
|
<div class="name">发送邮件</div>
|
||||||
|
<div class="code-name">&#xe642;</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont"></span>
|
||||||
|
<div class="name">电话</div>
|
||||||
|
<div class="code-name">&#xe61f;</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont"></span>
|
||||||
|
<div class="name">位置1</div>
|
||||||
|
<div class="code-name">&#xe667;</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<div class="article markdown">
|
||||||
|
<h2 id="unicode-">Unicode 引用</h2>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
|
||||||
|
<ul>
|
||||||
|
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
|
||||||
|
<li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
|
||||||
|
</ul>
|
||||||
|
<blockquote>
|
||||||
|
<p>注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Unicode 使用步骤如下:</p>
|
||||||
|
<h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
|
||||||
|
<pre><code class="language-css"
|
||||||
|
>@font-face {
|
||||||
|
font-family: 'iconfont';
|
||||||
|
src: url('iconfont.woff2?t=1654000165771') format('woff2'),
|
||||||
|
url('iconfont.woff?t=1654000165771') format('woff'),
|
||||||
|
url('iconfont.ttf?t=1654000165771') format('truetype');
|
||||||
|
}
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
|
||||||
|
<pre><code class="language-css"
|
||||||
|
>.iconfont {
|
||||||
|
font-family: "iconfont" !important;
|
||||||
|
font-size: 16px;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
|
||||||
|
<pre>
|
||||||
|
<code class="language-html"
|
||||||
|
><span class="iconfont">&#x33;</span>
|
||||||
|
</code></pre>
|
||||||
|
<blockquote>
|
||||||
|
<p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
|
||||||
|
</blockquote>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="content font-class">
|
||||||
|
<ul class="icon_lists dib-box">
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont icon-zqlfasongyoujian"></span>
|
||||||
|
<div class="name">
|
||||||
|
发送邮件
|
||||||
|
</div>
|
||||||
|
<div class="code-name">.icon-zqlfasongyoujian
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont icon-zqldianhuahover"></span>
|
||||||
|
<div class="name">
|
||||||
|
电话
|
||||||
|
</div>
|
||||||
|
<div class="code-name">.icon-zqldianhuahover
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont icon-zqlweizhi1"></span>
|
||||||
|
<div class="name">
|
||||||
|
位置1
|
||||||
|
</div>
|
||||||
|
<div class="code-name">.icon-zqlweizhi1
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<div class="article markdown">
|
||||||
|
<h2 id="font-class-">font-class 引用</h2>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
|
||||||
|
<p>与 Unicode 使用方式相比,具有如下特点:</p>
|
||||||
|
<ul>
|
||||||
|
<li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
|
||||||
|
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
|
||||||
|
</ul>
|
||||||
|
<p>使用步骤如下:</p>
|
||||||
|
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
|
||||||
|
<pre><code class="language-html"><link rel="stylesheet" href="./iconfont.css">
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
|
||||||
|
<pre><code class="language-html"><span class="iconfont icon-zqlxxx"></span>
|
||||||
|
</code></pre>
|
||||||
|
<blockquote>
|
||||||
|
<p>"
|
||||||
|
iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
|
||||||
|
</blockquote>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="content symbol">
|
||||||
|
<ul class="icon_lists dib-box">
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<svg class="icon svg-icon" aria-hidden="true">
|
||||||
|
<use xlink:href="#icon-zqlfasongyoujian"></use>
|
||||||
|
</svg>
|
||||||
|
<div class="name">发送邮件</div>
|
||||||
|
<div class="code-name">#icon-zqlfasongyoujian</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<svg class="icon svg-icon" aria-hidden="true">
|
||||||
|
<use xlink:href="#icon-zqldianhuahover"></use>
|
||||||
|
</svg>
|
||||||
|
<div class="name">电话</div>
|
||||||
|
<div class="code-name">#icon-zqldianhuahover</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<svg class="icon svg-icon" aria-hidden="true">
|
||||||
|
<use xlink:href="#icon-zqlweizhi1"></use>
|
||||||
|
</svg>
|
||||||
|
<div class="name">位置1</div>
|
||||||
|
<div class="code-name">#icon-zqlweizhi1</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<div class="article markdown">
|
||||||
|
<h2 id="symbol-">Symbol 引用</h2>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
|
||||||
|
这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
|
||||||
|
<ul>
|
||||||
|
<li>支持多色图标了,不再受单色限制。</li>
|
||||||
|
<li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
|
||||||
|
<li>兼容性较差,支持 IE9+,及现代浏览器。</li>
|
||||||
|
<li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
|
||||||
|
</ul>
|
||||||
|
<p>使用步骤如下:</p>
|
||||||
|
<h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
|
||||||
|
<pre><code class="language-html"><script src="./iconfont.js"></script>
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
|
||||||
|
<pre><code class="language-html"><style>
|
||||||
|
.icon {
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
vertical-align: -0.15em;
|
||||||
|
fill: currentColor;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
|
||||||
|
<pre><code class="language-html"><svg class="icon" aria-hidden="true">
|
||||||
|
<use xlink:href="#icon-xxx"></use>
|
||||||
|
</svg>
|
||||||
|
</code></pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
$('.tab-container .content:first').show()
|
||||||
|
|
||||||
|
$('#tabs li').click(function (e) {
|
||||||
|
var tabContent = $('.tab-container .content')
|
||||||
|
var index = $(this).index()
|
||||||
|
|
||||||
|
if ($(this).hasClass('active')) {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
$('#tabs li').removeClass('active')
|
||||||
|
$(this).addClass('active')
|
||||||
|
|
||||||
|
tabContent.hide().eq(index).fadeIn()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,27 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: "iconfont"; /* Project id 3442121 */
|
||||||
|
src: url('iconfont.woff2?t=1654000165771') format('woff2'),
|
||||||
|
url('iconfont.woff?t=1654000165771') format('woff'),
|
||||||
|
url('iconfont.ttf?t=1654000165771') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
[class^="icon-zql"], [class*="icon-zql"] {
|
||||||
|
font-family: "iconfont" !important;
|
||||||
|
font-size: 16px;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-zqlfasongyoujian:before {
|
||||||
|
content: "\e642";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-zqldianhuahover:before {
|
||||||
|
content: "\e61f";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-zqlweizhi1:before {
|
||||||
|
content: "\e667";
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"id": "3442121",
|
||||||
|
"name": "icon-zql",
|
||||||
|
"font_family": "iconfont",
|
||||||
|
"css_prefix_text": "icon-zql",
|
||||||
|
"description": "osredm_footer",
|
||||||
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "863692",
|
||||||
|
"name": "发送邮件",
|
||||||
|
"font_class": "fasongyoujian",
|
||||||
|
"unicode": "e642",
|
||||||
|
"unicode_decimal": 58946
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "880389",
|
||||||
|
"name": "电话",
|
||||||
|
"font_class": "dianhuahover",
|
||||||
|
"unicode": "e61f",
|
||||||
|
"unicode_decimal": 58911
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "16811030",
|
||||||
|
"name": "位置1",
|
||||||
|
"font_class": "weizhi1",
|
||||||
|
"unicode": "e667",
|
||||||
|
"unicode_decimal": 58983
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 711 KiB After Width: | Height: | Size: 711 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 1.1 KiB |
|
@ -1,2 +0,0 @@
|
||||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1653300319973" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2930" xmlns:xlink="http://www.w3.org/1999/xlink" width="25" height="25"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
|
|
||||||
</style></defs><path d="M371.2 448c55.466667 81.066667 123.733333 153.6 204.8 204.8 21.333333-17.066667 46.933333-38.4 72.533333-55.466667 51.2 29.866667 102.4 51.2 162.133334 68.266667L750.933333 810.666667c-4.266667 0-8.533333 0-8.533333-4.266667v4.266667C486.4 738.133333 285.866667 537.6 213.333333 285.866667h4.266667C213.333333 281.6 213.333333 277.333333 213.333333 273.066667L362.666667 213.333333c17.066667 59.733333 38.4 110.933333 68.266666 162.133334-21.333333 25.6-42.666667 46.933333-59.733333 72.533333z" fill="#ffffff" p-id="2931"></path></svg>
|
|
Before Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 14 KiB |
|
@ -2,7 +2,7 @@
|
||||||
<div>
|
<div>
|
||||||
<el-menu :default-active="activeIndex" class="nav" mode="horizontal" @select="handleSelect">
|
<el-menu :default-active="activeIndex" class="nav" mode="horizontal" @select="handleSelect">
|
||||||
<!-- <el-menu-item index="0"><el-image :src="logoImg" style="width: 120px"/></el-menu-item>-->
|
<!-- <el-menu-item index="0"><el-image :src="logoImg" style="width: 120px"/></el-menu-item>-->
|
||||||
<el-image @click="backOsredm" :src="logoImg" style="width: 120px; margin-right: 50px;cursor:pointer;"/>
|
<el-image @click="backOsredm" :src="osredmLogo" style="width: 120px; margin-right: 50px; cursor: pointer;"/>
|
||||||
<el-submenu index="9" >
|
<el-submenu index="9" >
|
||||||
<template slot="title">相关配置</template>
|
<template slot="title">相关配置</template>
|
||||||
<el-menu-item index="9-1">配置1</el-menu-item>
|
<el-menu-item index="9-1">配置1</el-menu-item>
|
||||||
|
@ -17,7 +17,7 @@ export default {
|
||||||
name: "AdminHeader",
|
name: "AdminHeader",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
logoImg: require("../assets/logo.svg"),
|
osredmLogo: require("../assets/logo/osredmLogo.svg"),
|
||||||
activeIndex: '1',
|
activeIndex: '1',
|
||||||
activeIndex2: '1'
|
activeIndex2: '1'
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,10 +2,13 @@
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<div class="footer-content">
|
<div class="footer-content">
|
||||||
<el-image :src="logo" class="logo"></el-image>
|
<el-image :src="osredmLogo" class="osredmLogo"></el-image>
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<div>
|
<div>
|
||||||
+86-010-66357650 osredm@163.com 北京市海淀区西三环北路72号</div>
|
<i class="icon-zqldianhuahover"></i> +86-010-66357650
|
||||||
|
<i class="icon-zqlfasongyoujian"></i> osredm@163.com
|
||||||
|
<i class="icon-zqlweizhi1"></i> 北京市海淀区西三环北路72号
|
||||||
|
</div>
|
||||||
<div style="margin-top: 10px">
|
<div style="margin-top: 10px">
|
||||||
版权所有:<a href="https://osredm.com/">红山开源社区</a>
|
版权所有:<a href="https://osredm.com/">红山开源社区</a>
|
||||||
<a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802034576" style="margin-left: 10px">
|
<a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802034576" style="margin-left: 10px">
|
||||||
|
@ -27,8 +30,7 @@ export default {
|
||||||
name: "Footer",
|
name: "Footer",
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
telIcon: require("../assets/logo/tel.svg"),
|
osredmLogo: require("../assets/logo/osredmLogo-white.svg")
|
||||||
logo: require("../assets/logo-white.svg")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="container">
|
||||||
|
<!-- banner图 -->
|
||||||
|
<el-image :src="banner" style="width: 100%; height: auto;"/>
|
||||||
|
|
||||||
|
<!-- 用户信息 -->
|
||||||
|
<div class="user-info">
|
||||||
|
<el-dropdown class="user-info-dropdown" trigger="hover">
|
||||||
|
<span class="el-dropdown-link"><img :src="userAvatar" /></span>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item>userName</el-dropdown-item> <!-- 用户名 -->
|
||||||
|
<!-- <el-dropdown-item>{{ userName }}</el-dropdown-item> -->
|
||||||
|
<el-dropdown-item divided @click.native="logout()">退出登录</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-image :src="bannerLogo" style="width: 100%; height: auto"/>
|
|
||||||
<!--导航栏-->
|
<!--导航栏-->
|
||||||
<!--TODO: 需要根据设定动态更改-->
|
<!--TODO: 需要根据设定动态更改-->
|
||||||
<el-menu :default-active="activeIndex" class="nav" mode="horizontal" @select="handleSelect">
|
<el-menu :default-active="activeIndex" class="nav" mode="horizontal" @select="handleSelect">
|
||||||
<!-- <el-menu-item index="0"><el-image :src="logoImg" style="width: 120px"/></el-menu-item>-->
|
<el-image @click="backOsredm" :src="osredmLogo" style="width: 120px; margin-right: 50px; cursor: pointer;"/>
|
||||||
<el-image @click="backOsredm" :src="logoImg" style="width: 120px; margin-right: 50px;cursor:pointer;"/>
|
<el-menu-item index="home">赛事首页</el-menu-item>
|
||||||
<el-menu-item index="home">首页</el-menu-item>
|
|
||||||
<!-- <el-submenu index="2">-->
|
|
||||||
<!-- <template slot="title">我的工作台</template>-->
|
|
||||||
<!-- <el-menu-item index="2-1">选项1</el-menu-item>-->
|
|
||||||
<!-- <el-menu-item index="2-2">选项2</el-menu-item>-->
|
|
||||||
<!-- <el-menu-item index="2-3">选项3</el-menu-item>-->
|
|
||||||
<!-- <el-submenu index="2-4">-->
|
|
||||||
<!-- <template slot="title">选项4</template>-->
|
|
||||||
<!-- <el-menu-item index="2-4-1">选项1</el-menu-item>-->
|
|
||||||
<!-- <el-menu-item index="2-4-2">选项2</el-menu-item>-->
|
|
||||||
<!-- <el-menu-item index="2-4-3">选项3</el-menu-item>-->
|
|
||||||
<!-- </el-submenu>-->
|
|
||||||
<!-- </el-submenu>-->
|
|
||||||
<el-menu-item index="guide" >赛事指南</el-menu-item>
|
<el-menu-item index="guide" >赛事指南</el-menu-item>
|
||||||
<el-menu-item index="notice" >通知公告</el-menu-item>
|
<el-menu-item index="notice" >通知公告</el-menu-item>
|
||||||
<el-menu-item index="apply" >参赛报名</el-menu-item>
|
<el-menu-item index="apply" >参赛报名</el-menu-item>
|
||||||
|
@ -28,31 +28,40 @@
|
||||||
<el-menu-item index="rank" >排行榜</el-menu-item>
|
<el-menu-item index="rank" >排行榜</el-menu-item>
|
||||||
<el-menu-item index="chat" >交流互动</el-menu-item>
|
<el-menu-item index="chat" >交流互动</el-menu-item>
|
||||||
<el-menu-item index="contact" >联系我们</el-menu-item>
|
<el-menu-item index="contact" >联系我们</el-menu-item>
|
||||||
<!-- <el-menu-item index="9">后台管理</el-menu-item>-->
|
<!-- 根据用户权限是否展示 -->
|
||||||
<el-submenu index="manage" >
|
<el-submenu index="manage" v-if="rankIf">
|
||||||
<template slot="title">后台管理</template>
|
<template slot="title">后台管理</template>
|
||||||
<el-menu-item index="applyList">报名列表</el-menu-item>
|
<el-menu-item index="applyList">报名列表</el-menu-item>
|
||||||
<el-menu-item index="submitList">作品列表</el-menu-item>
|
<el-menu-item index="submitList">作品列表</el-menu-item>
|
||||||
</el-submenu>
|
</el-submenu>
|
||||||
</el-menu>
|
</el-menu>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
import pageUtils from "../utils/pageUtils";
|
import pageUtils from "../utils/pageUtils";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Header",
|
name: "Header",
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
bannerLogo: require("../assets/banner.jpg"),
|
banner: require("../assets/logo/banner.jpg"),
|
||||||
logoImg: require("../assets/logo.svg"),
|
osredmLogo: require("../assets/logo/osredmLogo.svg"),
|
||||||
activeIndex: 'home',
|
activeIndex: "home", /* 启动默认显示页 */
|
||||||
activeIndex2: '1'
|
|
||||||
|
userName: "",
|
||||||
|
userPass: "",
|
||||||
|
userAvatar: "", /* 用户头像 */
|
||||||
|
rankIf: true, /* 权限识别 */
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
|
// 导航栏页面更改
|
||||||
handleSelect(key, keyPath) {
|
handleSelect(key, keyPath) {
|
||||||
switch (key){
|
switch (key){
|
||||||
case "home":
|
case "home":
|
||||||
|
@ -90,15 +99,50 @@ export default {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// console.log(key)
|
// console.log(key)
|
||||||
// console.log(key, keyPath);
|
console.log(key, keyPath);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 退出登录
|
||||||
|
logout: function () {
|
||||||
|
this.$confirm("确认退出吗?", "提示", {
|
||||||
|
type: "warning",
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
sessionStorage.removeItem("name");
|
||||||
|
sessionStorage.removeItem("pass");
|
||||||
|
sessionStorage.removeItem("rank");
|
||||||
|
this.$router.push("/login");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 返回红山开源
|
||||||
backOsredm(){
|
backOsredm(){
|
||||||
window.location.href='https://www.osredm.com'
|
window.location.href='https://www.osredm.com'
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
this.userName = sessionStorage.getItem("name");
|
||||||
|
this.userPass = sessionStorage.getItem("pass");
|
||||||
|
this.userAvatar = require("@/assets/logo/user.jpg");
|
||||||
|
|
||||||
|
/* var userRank = sessionStorage.getItem("rank");
|
||||||
|
if (userRank == 1) {
|
||||||
|
this.rankIf = true;
|
||||||
|
} else {
|
||||||
|
this.rankIf = false;
|
||||||
|
} */
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style src="./../assets/css/Header.css" scoped>
|
<style src="./../assets/css/Header.css" scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
|
@ -1,58 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="hello">
|
|
||||||
<h1>{{ msg }}</h1>
|
|
||||||
<p>
|
|
||||||
For a guide and recipes on how to configure / customize this project,<br>
|
|
||||||
check out the
|
|
||||||
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
|
|
||||||
</p>
|
|
||||||
<h3>Installed CLI Plugins</h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
|
|
||||||
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
|
|
||||||
</ul>
|
|
||||||
<h3>Essential Links</h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
|
|
||||||
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
|
|
||||||
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
|
|
||||||
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
|
|
||||||
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
|
|
||||||
</ul>
|
|
||||||
<h3>Ecosystem</h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
|
|
||||||
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
|
|
||||||
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
|
|
||||||
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
|
|
||||||
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
name: 'HelloWorld',
|
|
||||||
props: {
|
|
||||||
msg: String
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
|
||||||
<style scoped>
|
|
||||||
h3 {
|
|
||||||
margin: 40px 0 0;
|
|
||||||
}
|
|
||||||
ul {
|
|
||||||
list-style-type: none;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
li {
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0 10px;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
color: #42b983;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -7,14 +7,14 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Header from "@/components/AdminHeader.vue"
|
import Header from "@/components/AdminHeader"
|
||||||
|
import Footer from "@/components/Footer"
|
||||||
|
|
||||||
import Footer from "@/components/Footer.vue"
|
|
||||||
export default {
|
export default {
|
||||||
name: "AdminLayout",
|
name: "AdminLayout",
|
||||||
components:{
|
components:{
|
||||||
|
Header,
|
||||||
Footer,
|
Footer,
|
||||||
Header
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -7,13 +7,14 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Header from "@/components/Header.vue"
|
import Header from "@/components/Header"
|
||||||
import Footer from "@/components/Footer.vue"
|
import Footer from "@/components/Footer"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "HomeLayout",
|
name: "HomeLayout",
|
||||||
components:{
|
components:{
|
||||||
Header,
|
Header,
|
||||||
Footer
|
Footer,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
29
src/main.js
|
@ -1,21 +1,36 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import App from './App.vue'
|
import App from './App'
|
||||||
import ElementUI from 'element-ui';
|
|
||||||
import 'element-ui/lib/theme-chalk/index.css';
|
|
||||||
import router from './router'
|
import router from './router'
|
||||||
import Axios from "axios";
|
import ElementUI from 'element-ui'
|
||||||
|
|
||||||
|
import 'element-ui/lib/theme-chalk/index.css'
|
||||||
|
|
||||||
|
import Axios from "axios"
|
||||||
import http from './utils/http/index'
|
import http from './utils/http/index'
|
||||||
|
|
||||||
import mavonEditor from 'mavon-editor'
|
import mavonEditor from 'mavon-editor'
|
||||||
import 'mavon-editor/dist/css/index.css'
|
import 'mavon-editor/dist/css/index.css'
|
||||||
// import editor from "mavon-editor";
|
|
||||||
|
// 图标
|
||||||
|
import "../src/assets/icon/iconfont.css"
|
||||||
|
/* // echarts
|
||||||
|
import * as echarts from 'echarts';
|
||||||
|
// 时间
|
||||||
|
import moment from "moment"; */
|
||||||
|
|
||||||
|
|
||||||
Vue.use(http)
|
Vue.use(http)
|
||||||
Vue.prototype.$axios = Axios
|
Vue.prototype.$axios = Axios
|
||||||
|
|
||||||
|
|
||||||
|
Vue.use(mavonEditor)
|
||||||
|
/* Vue.prototype.$echarts = echarts
|
||||||
|
Vue.prototype.$moment = moment; */
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
|
|
||||||
|
|
||||||
Vue.use(ElementUI);
|
Vue.use(ElementUI)
|
||||||
Vue.use(mavonEditor)
|
|
||||||
|
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
|
|
|
@ -14,5 +14,4 @@ export default {
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
<style src="./../assets/css/common.css" scoped/>
|
<style src="./../assets/css/common.css" scoped/>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<el-breadcrumb class="breadcrumb" separator="/">
|
<el-breadcrumb class="breadcrumb" separator="/">
|
||||||
<el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
|
<el-breadcrumb-item :to="{ path: '/home' }">赛事首页</el-breadcrumb-item>
|
||||||
<el-breadcrumb-item>编辑</el-breadcrumb-item>
|
<el-breadcrumb-item>编辑</el-breadcrumb-item>
|
||||||
</el-breadcrumb>
|
</el-breadcrumb>
|
||||||
<mavon-editor :ishljs="true" v-model="data" @save="save"/>
|
<mavon-editor :ishljs="true" v-model="data" @save="save"/>
|
||||||
|
|
|
@ -4,11 +4,6 @@ import VueRouter from 'vue-router'
|
||||||
Vue.use(VueRouter)
|
Vue.use(VueRouter)
|
||||||
|
|
||||||
let routes = [
|
let routes = [
|
||||||
// {
|
|
||||||
// //TODO:404
|
|
||||||
// path: '*',
|
|
||||||
// component: () => import('../views/develop.vue'),
|
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
component: () => import("@/layout/HomeLayout"),
|
component: () => import("@/layout/HomeLayout"),
|
||||||
|
@ -20,17 +15,14 @@ let routes = [
|
||||||
path: "/home",
|
path: "/home",
|
||||||
component: () => import("@/pages/Home"),
|
component: () => import("@/pages/Home"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// 首页编辑页面
|
// 首页编辑页面
|
||||||
path: "/homeEdit",
|
path: "/homeEdit",
|
||||||
component: () => import("@/pages/HomeEdit"),
|
component: () => import("@/pages/HomeEdit"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -39,7 +31,6 @@ let routes = [
|
||||||
path: "/intro",
|
path: "/intro",
|
||||||
component: () => import("@/pages/Intro"),
|
component: () => import("@/pages/Intro"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -48,7 +39,6 @@ let routes = [
|
||||||
path: "/notice",
|
path: "/notice",
|
||||||
component: () => import("@/pages/Notice"),
|
component: () => import("@/pages/Notice"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -57,7 +47,6 @@ let routes = [
|
||||||
path: "/guide",
|
path: "/guide",
|
||||||
component: () => import("@/pages/Guide"),
|
component: () => import("@/pages/Guide"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -66,7 +55,6 @@ let routes = [
|
||||||
path: "/chat",
|
path: "/chat",
|
||||||
component: () => import("@/pages/Chat"),
|
component: () => import("@/pages/Chat"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -75,7 +63,6 @@ let routes = [
|
||||||
path: "/contact",
|
path: "/contact",
|
||||||
component: () => import("@/pages/ContactUs"),
|
component: () => import("@/pages/ContactUs"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -84,7 +71,6 @@ let routes = [
|
||||||
path: "/submit",
|
path: "/submit",
|
||||||
component: () => import("@/pages/Submit/Submit"),
|
component: () => import("@/pages/Submit/Submit"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -93,7 +79,6 @@ let routes = [
|
||||||
path: "/chart",
|
path: "/chart",
|
||||||
component: () => import("@/pages/Data/Chart"),
|
component: () => import("@/pages/Data/Chart"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -102,7 +87,6 @@ let routes = [
|
||||||
path: "/rank",
|
path: "/rank",
|
||||||
component: () => import("@/pages/Data/Rank"),
|
component: () => import("@/pages/Data/Rank"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -111,7 +95,6 @@ let routes = [
|
||||||
path: "/applyList",
|
path: "/applyList",
|
||||||
component: () => import("@/pages/Manage/ApplyList"),
|
component: () => import("@/pages/Manage/ApplyList"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -120,7 +103,6 @@ let routes = [
|
||||||
path: "/submitList",
|
path: "/submitList",
|
||||||
component: () => import("@/pages/Manage/SubmitList"),
|
component: () => import("@/pages/Manage/SubmitList"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -129,7 +111,6 @@ let routes = [
|
||||||
path: "/apply",
|
path: "/apply",
|
||||||
component: () => import("@/pages/Apply/Apply"),
|
component: () => import("@/pages/Apply/Apply"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -145,7 +126,6 @@ let routes = [
|
||||||
path: "setting",
|
path: "setting",
|
||||||
component: () => import("@/pages/Admin/Setting"),
|
component: () => import("@/pages/Admin/Setting"),
|
||||||
meta: {
|
meta: {
|
||||||
// 页面标题title
|
|
||||||
title: '红山开源社区'
|
title: '红山开源社区'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -154,8 +134,8 @@ let routes = [
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
// Adding layout property from each route to the meta
|
|
||||||
// object so it can be accessed later.
|
|
||||||
function addLayoutToRoute( route, parentLayout = "default" )
|
function addLayoutToRoute( route, parentLayout = "default" )
|
||||||
{
|
{
|
||||||
route.meta = route.meta || {} ;
|
route.meta = route.meta || {} ;
|
||||||
|
|
|
@ -1,15 +1,10 @@
|
||||||
|
// Header导航栏页面更改
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function openPage(router,path){
|
function openPage(router,path){
|
||||||
router.push({
|
router.push({
|
||||||
path: path
|
path: path
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
openPage
|
openPage
|
||||||
}
|
}
|