git@gitee.com:SKYID/osredm-comp-custom.git

This commit is contained in:
以说 2022-06-01 20:52:34 +08:00
parent ac248d63b5
commit b9f0e6fc5a
32 changed files with 1014 additions and 158 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -9,13 +9,10 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
<link rel="icon" href="./pageLogo.jpg">
<title>红山开源社区竞赛服务系统</title>
</head>
<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>
<!-- built files will be auto injected -->
</body>

BIN
public/pageLogo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@ -5,20 +5,35 @@
</template>
<script>
export default {
name: 'App',
components: {
}
}
</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>

View File

@ -1,7 +1,7 @@
.footer{
position: fixed;
bottom: 0;
height:11.3vw;
height: 11.3vw;
width: 100%;
align-items: center;
background-color: #0a1d30;
@ -19,24 +19,21 @@
}
.text{
text-align: center;
align-items: center;
margin-left: 50px;
color: white;
font-size: 15px;
vertical-align: middle;
}
a:hover{
color: rgb(250, 202, 46);
}
a:active{
color: rgb(250, 202, 46);
}
a{
text-decoration:none;
text-decoration: none;
color: white;
}

View File

@ -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{
text-align: center;
display: flex;
/*vertical-align: center;*/
justify-content: center;
}
.el-menu-item{
font-size: 1.1rem;
}
/deep/ .el-submenu__title{
::v-deep .el-submenu__title{
font-size: 1.1rem !important;
/*width: 129px !important;*/
}

539
src/assets/icon/demo.css Normal file
View File

@ -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;
}

View File

@ -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">&#xe642;</span>
<div class="name">发送邮件</div>
<div class="code-name">&amp;#xe642;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe61f;</span>
<div class="name">电话</div>
<div class="code-name">&amp;#xe61f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe667;</span>
<div class="name">位置1</div>
<div class="code-name">&amp;#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"
>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
</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">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon-zqlxxx"&gt;&lt;/span&gt;
</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">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
</code></pre>
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
<pre><code class="language-html">&lt;style&gt;
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
&lt;/style&gt;
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
&lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
&lt;/svg&gt;
</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>

View File

@ -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";
}

File diff suppressed because one or more lines are too long

View File

@ -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
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

View File

Before

Width:  |  Height:  |  Size: 711 KiB

After

Width:  |  Height:  |  Size: 711 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -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

BIN
src/assets/logo/user.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -2,7 +2,7 @@
<div>
<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="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" >
<template slot="title">相关配置</template>
<el-menu-item index="9-1">配置1</el-menu-item>
@ -17,7 +17,7 @@ export default {
name: "AdminHeader",
data() {
return {
logoImg: require("../assets/logo.svg"),
osredmLogo: require("../assets/logo/osredmLogo.svg"),
activeIndex: '1',
activeIndex2: '1'
};

View File

@ -2,10 +2,13 @@
<div class="footer">
<div class="footer-content">
<el-image :src="logo" class="logo"></el-image>
<el-image :src="osredmLogo" class="osredmLogo"></el-image>
<div class="text">
<div>
+86-010-66357650 &nbsp;&nbsp;osredm@163.com &nbsp;&nbsp;北京市海淀区西三环北路72号</div>
<i class="icon-zqldianhuahover"></i>&nbsp; +86-010-66357650 &nbsp;&nbsp;&nbsp;&nbsp;
<i class="icon-zqlfasongyoujian"></i>&nbsp; osredm@163.com &nbsp;&nbsp;&nbsp;&nbsp;
<i class="icon-zqlweizhi1"></i>&nbsp; 北京市海淀区西三环北路72号
</div>
<div style="margin-top: 10px">
版权所有<a href="https://osredm.com/">红山开源社区</a>
<a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802034576" style="margin-left: 10px">
@ -27,8 +30,7 @@ export default {
name: "Footer",
data(){
return{
telIcon: require("../assets/logo/tel.svg"),
logo: require("../assets/logo-white.svg")
osredmLogo: require("../assets/logo/osredmLogo-white.svg")
}
}
}

View File

@ -1,25 +1,25 @@
<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: 需要根据设定动态更改-->
<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="logoImg" style="width: 120px; margin-right: 50px;cursor:pointer;"/>
<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-image @click="backOsredm" :src="osredmLogo" style="width: 120px; margin-right: 50px; cursor: pointer;"/>
<el-menu-item index="home">赛事首页</el-menu-item>
<el-menu-item index="guide" >赛事指南</el-menu-item>
<el-menu-item index="notice" >通知公告</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="chat" >交流互动</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>
<el-menu-item index="applyList">报名列表</el-menu-item>
<el-menu-item index="submitList">作品列表</el-menu-item>
</el-submenu>
</el-menu>
</div>
</template>
<script>
// eslint-disable-next-line no-unused-vars
import pageUtils from "../utils/pageUtils";
export default {
name: "Header",
data() {
return {
bannerLogo: require("../assets/banner.jpg"),
logoImg: require("../assets/logo.svg"),
activeIndex: 'home',
activeIndex2: '1'
banner: require("../assets/logo/banner.jpg"),
osredmLogo: require("../assets/logo/osredmLogo.svg"),
activeIndex: "home", /* 启动默认显示页 */
userName: "",
userPass: "",
userAvatar: "", /* 用户头像 */
rankIf: true, /* 权限识别 */
};
},
methods: {
// eslint-disable-next-line no-unused-vars
//
handleSelect(key, keyPath) {
switch (key){
case "home":
@ -90,15 +99,50 @@ export default {
break;
}
// 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(){
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>
<style src="./../assets/css/Header.css" scoped>
</style>

View File

@ -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>

View File

@ -7,14 +7,14 @@
</template>
<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 {
name: "AdminLayout",
components:{
Header,
Footer,
Header
}
}
</script>

View File

@ -7,13 +7,14 @@
</template>
<script>
import Header from "@/components/Header.vue"
import Footer from "@/components/Footer.vue"
import Header from "@/components/Header"
import Footer from "@/components/Footer"
export default {
name: "HomeLayout",
components:{
Header,
Footer
Footer,
}
}
</script>

View File

@ -1,21 +1,36 @@
import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App'
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 mavonEditor from 'mavon-editor'
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.prototype.$axios = Axios
Vue.use(mavonEditor)
/* Vue.prototype.$echarts = echarts
Vue.prototype.$moment = moment; */
Vue.config.productionTip = false
Vue.use(ElementUI);
Vue.use(mavonEditor)
Vue.use(ElementUI)
new Vue({

View File

@ -14,5 +14,4 @@ export default {
</style>
<style src="./../assets/css/common.css" scoped/>

View File

@ -1,7 +1,7 @@
<template>
<div class="content">
<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>
<mavon-editor :ishljs="true" v-model="data" @save="save"/>

View File

@ -4,11 +4,6 @@ import VueRouter from 'vue-router'
Vue.use(VueRouter)
let routes = [
// {
// //TODO:404
// path: '*',
// component: () => import('../views/develop.vue'),
// },
{
path: '/',
component: () => import("@/layout/HomeLayout"),
@ -20,17 +15,14 @@ let routes = [
path: "/home",
component: () => import("@/pages/Home"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
{
// 首页编辑页面
path: "/homeEdit",
component: () => import("@/pages/HomeEdit"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -39,7 +31,6 @@ let routes = [
path: "/intro",
component: () => import("@/pages/Intro"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -48,7 +39,6 @@ let routes = [
path: "/notice",
component: () => import("@/pages/Notice"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -57,7 +47,6 @@ let routes = [
path: "/guide",
component: () => import("@/pages/Guide"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -66,7 +55,6 @@ let routes = [
path: "/chat",
component: () => import("@/pages/Chat"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -75,7 +63,6 @@ let routes = [
path: "/contact",
component: () => import("@/pages/ContactUs"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -84,7 +71,6 @@ let routes = [
path: "/submit",
component: () => import("@/pages/Submit/Submit"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -93,7 +79,6 @@ let routes = [
path: "/chart",
component: () => import("@/pages/Data/Chart"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -102,7 +87,6 @@ let routes = [
path: "/rank",
component: () => import("@/pages/Data/Rank"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -111,7 +95,6 @@ let routes = [
path: "/applyList",
component: () => import("@/pages/Manage/ApplyList"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -120,7 +103,6 @@ let routes = [
path: "/submitList",
component: () => import("@/pages/Manage/SubmitList"),
meta: {
// 页面标题title
title: '红山开源社区'
},
},
@ -129,7 +111,6 @@ let routes = [
path: "/apply",
component: () => import("@/pages/Apply/Apply"),
meta: {
// 页面标题title
title: '红山开源社区'
},
}
@ -145,7 +126,6 @@ let routes = [
path: "setting",
component: () => import("@/pages/Admin/Setting"),
meta: {
// 页面标题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" )
{
route.meta = route.meta || {} ;

View File

@ -1,15 +1,10 @@
// Header导航栏页面更改
function openPage(router,path){
router.push({
path: path
});
}
export default {
openPage
}