整站主题色统一取$main-color并且更换颜色

master
yujialong 4 months ago
parent f7f57d84dd
commit 3d32d5436e
  1. 2
      src/components/breadcrumb/index.vue
  2. 51
      src/layouts/navbar/index.vue
  3. 212
      src/pages/achievement/edit/index.vue
  4. 2
      src/pages/achievement/info/project.vue
  5. 186
      src/pages/activity/details/index.vue
  6. 156
      src/pages/activity/manage/preview/index.vue
  7. 4
      src/pages/assessment/add/index.vue
  8. 207
      src/pages/course/preview/index.vue
  9. 21
      src/pages/information/contentManage/index.vue
  10. 20
      src/pages/information/list/index.vue
  11. 4
      src/pages/match/add/index.vue
  12. 2
      src/pages/match/add/step3.vue
  13. 2
      src/pages/match/manage/matchInfo.vue
  14. 178
      src/pages/match/preview/index.vue
  15. 10
      src/pages/product/list/index.vue
  16. 12
      src/pages/product/show/index.vue
  17. 4
      src/pages/station/list/index.vue
  18. 4
      src/pages/station/preview/index.vue
  19. 85
      src/pages/system/list/staffSide.vue
  20. 2
      src/styles/default/index.scss
  21. 2
      src/styles/var.scss

@ -49,7 +49,7 @@ export default {
.is-link, .is-link,
.el-breadcrumb__separator { .el-breadcrumb__separator {
font-weight: 400; font-weight: 400;
color: #9278ff; color: $main-color;
} }
&:last-child { &:last-child {

@ -1,40 +1,27 @@
<template> <template>
<div> <div>
<el-menu v-if="menuRefresh" <el-menu v-if="menuRefresh" class="sidebar" :default-active="active" background-color="#3b3c40" text-color="#bfcbd9"
class="sidebar-el-menu" active-text-color="#fff" unique-opened mode="horizontal" @select="menuSelect">
:default-active="active"
background-color="#324157"
text-color="#bfcbd9"
active-text-color="#9278FF"
unique-opened
mode="horizontal"
@select="menuSelect">
<template v-for="item in menus"> <template v-for="item in menus">
<template v-if="item.subs"> <template v-if="item.subs">
<el-submenu :index="item.index" <el-submenu :index="item.index" :key="item.index">
:key="item.index">
<template slot="title"> <template slot="title">
<i :class="item.icon"></i> <i :class="item.icon"></i>
<span slot="title">{{ item.title }}</span> <span slot="title">{{ item.title }}</span>
</template> </template>
<template v-for="subItem in item.subs"> <template v-for="subItem in item.subs">
<el-submenu v-if="subItem.subs" <el-submenu v-if="subItem.subs" :index="subItem.index" :key="subItem.index">
:index="subItem.index"
:key="subItem.index">
<template slot="title">{{ subItem.title }}</template> <template slot="title">{{ subItem.title }}</template>
<el-menu-item v-for="(threeItem,i) in subItem.subs" <el-menu-item v-for="(threeItem, i) in subItem.subs" :key="i" :index="threeItem.index">{{
:key="i" threeItem.title
:index="threeItem.index">{{ threeItem.title }}</el-menu-item> }}</el-menu-item>
</el-submenu> </el-submenu>
<el-menu-item v-else <el-menu-item v-else :index="subItem.index" :key="subItem.index">{{ subItem.title }}</el-menu-item>
:index="subItem.index"
:key="subItem.index">{{ subItem.title }}</el-menu-item>
</template> </template>
</el-submenu> </el-submenu>
</template> </template>
<template v-else> <template v-else>
<el-menu-item :index="item.index" <el-menu-item :index="item.index" :key="item.index">
:key="item.index">
<i :class="item.icon"></i> <i :class="item.icon"></i>
<span slot="title">{{ item.title }}</span> <span slot="title">{{ item.title }}</span>
</el-menu-item> </el-menu-item>
@ -204,19 +191,13 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.sidebar::-webkit-scrollbar { /deep/.sidebar {
width: 0; border-bottom-color: $main-color !important;
}
.sidebar-el-menu:not(.el-menu--collapse) {
width: 100%;
}
.el-menu.el-menu--horizontal { .el-menu-item {
border-bottom: none; &.is-active {
} background-color: $main-color !important;
}
.sidebar > ul { }
height: 100%;
} }
</style> </style>

@ -2,30 +2,21 @@
<div> <div>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="flex-between"> <div class="flex-between">
<div class="per_title" <div class="per_title" @click="goback()">
@click="goback()">
<i class="el-icon-arrow-left"></i> <i class="el-icon-arrow-left"></i>
<span class="per_back">返回</span> <span class="per_back">返回</span>
<span class="per_school">修改分数</span> <span class="per_school">修改分数</span>
</div> </div>
<div> <div>
<el-button type="success" <el-button type="success" round class="mag" @click="saveAdd('form')">预览</el-button>
round <el-button type="primary" round class="mag" @click="saveAdd('form')">发布成绩</el-button>
class="mag"
@click="saveAdd('form')">预览</el-button>
<el-button type="primary"
round
class="mag"
@click="saveAdd('form')">发布成绩</el-button>
</div> </div>
</div> </div>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<h6 style="text-align: center;font-size: 20px">实验成绩报告</h6> <h6 style="text-align: center;font-size: 20px">实验成绩报告</h6>
<div class="flex-center mgb20 user_header"> <div class="flex-center mgb20 user_header">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
@ -33,245 +24,154 @@
</div> </div>
<div> <div>
<el-table :data="infoData" <el-table :data="infoData" class="table" stripe header-align="center">
class="table" <el-table-column prop="projectName" label="实验名称" align="center">
stripe
header-align="center">
<el-table-column prop="projectName"
label="实验名称"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="period" <el-table-column prop="period" label="实验学时" align="center">
label="实验学时"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="userName" <el-table-column prop="userName" label="学生姓名" align="center">
label="学生姓名"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="number" <el-table-column prop="number" label="学生学号" align="center">
label="学生学号"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="class" <el-table-column prop="class" label="学生班级" align="center">
label="学生班级"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="content" <el-table-column prop="content" label="实验内容" align="center">
label="实验内容"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="desc" <el-table-column prop="desc" label="实验数据与结果分析" align="center">
label="实验数据与结果分析"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="result" <el-table-column prop="result" label="实验结论" align="center">
label="实验结论"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="experience" <el-table-column prop="experience" label="实验与心得体会" align="center">
label="实验与心得体会"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="total" <el-table-column prop="total" label="总分" align="center">
label="总分"
align="center">
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="meta-title-wrap"> <div class="meta-title-wrap">
<p class="meta-title">实验项目名称</p> <p class="meta-title">实验项目名称</p>
</div> </div>
<el-input v-model="form.projectName" <el-input v-model="form.projectName" type="textarea" :disabled="true" rows="5"></el-input>
type="textarea"
:disabled="true"
rows="5"></el-input>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="meta-title-wrap"> <div class="meta-title-wrap">
<p class="meta-title">实验目的</p> <p class="meta-title">实验目的</p>
<span>得分50/60</span> <span>得分50/60</span>
</div> </div>
<el-input v-model="form.experimentGoal" <el-input v-model="form.experimentGoal" type="textarea" :disabled="true" rows="5"></el-input>
type="textarea"
:disabled="true"
rows="5"></el-input>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="meta-title-wrap"> <div class="meta-title-wrap">
<p class="meta-title">实验原理</p> <p class="meta-title">实验原理</p>
<span>得分50/60</span> <span>得分50/60</span>
</div> </div>
<el-input v-model="form.principle" <el-input v-model="form.principle" type="textarea" :disabled="true" rows="5"></el-input>
type="textarea"
:disabled="true"
rows="5"></el-input>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="meta-title-wrap"> <div class="meta-title-wrap">
<p class="meta-title">实验内容</p> <p class="meta-title">实验内容</p>
<span>得分50/60</span> <span>得分50/60</span>
</div> </div>
<el-input v-model="form.content" <el-input v-model="form.content" type="textarea" :disabled="true" rows="5"></el-input>
type="textarea"
:disabled="true"
rows="5"></el-input>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="meta-title-wrap"> <div class="meta-title-wrap">
<p class="meta-title">实验步骤</p> <p class="meta-title">实验步骤</p>
<span>得分50/60</span> <span>得分50/60</span>
</div> </div>
<el-input v-model="form.step" <el-input v-model="form.step" type="textarea" :disabled="true" rows="5"></el-input>
type="textarea"
:disabled="true"
rows="5"></el-input>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="meta-title-wrap"> <div class="meta-title-wrap">
<p class="meta-title">实验数据</p> <p class="meta-title">实验数据</p>
<span>得分50/60</span> <span>得分50/60</span>
</div> </div>
<el-table :data="expData" <el-table :data="expData" class="table" stripe header-align="center">
class="table" <el-table-column type="index" width="100" label="序号" align="center">
stripe
header-align="center">
<el-table-column type="index"
width="100"
label="序号"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.$index + 1 }} {{ scope.$index + 1 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="module" <el-table-column prop="module" label="模块" align="center">
label="模块"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="judgmentPointsName" <el-table-column prop="judgmentPointsName" label="考核点" align="center">
label="考核点"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="userAnswer" <el-table-column prop="userAnswer" label="学生答案" align="center">
label="学生答案"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="answer" <el-table-column prop="answer" label="参考答案" align="center">
label="参考答案"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="codeScore" <el-table-column prop="codeScore" label="得分" align="center">
label="得分"
align="center">
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="meta-title-wrap"> <div class="meta-title-wrap">
<p class="meta-title">实验结论</p> <p class="meta-title">实验结论</p>
<span>得分50/60</span> <span>得分50/60</span>
</div> </div>
<el-input type="textarea" <el-input type="textarea" v-model="form.conclusion" rows="5"></el-input>
v-model="form.conclusion" <div class="flex-between" style="margin-top: 10px">
rows="5"></el-input>
<div class="flex-between"
style="margin-top: 10px">
<span>教师评分</span> <span>教师评分</span>
<div> <div>
<el-input style="display: inline-block;width: auto;" <el-input style="display: inline-block;width: auto;" placeholder="请输入"></el-input>
placeholder="请输入"></el-input>
(10) (10)
</div> </div>
</div> </div>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="meta-title-wrap"> <div class="meta-title-wrap">
<p class="meta-title">总结及心得体会</p> <p class="meta-title">总结及心得体会</p>
<span>得分50/60</span> <span>得分50/60</span>
</div> </div>
<el-input type="textarea" <el-input type="textarea" v-model="form.summarize" rows="5"></el-input>
v-model="form.summarize" <div class="flex-between" style="margin-top: 10px">
rows="5"></el-input>
<div class="flex-between"
style="margin-top: 10px">
<span>教师评分</span> <span>教师评分</span>
<div> <div>
<el-input style="display: inline-block;width: auto;" <el-input style="display: inline-block;width: auto;" placeholder="请输入"></el-input>
placeholder="请输入"></el-input>
(10) (10)
</div> </div>
</div> </div>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="meta-title-wrap"> <div class="meta-title-wrap">
<p class="meta-title">对本实验过程及方法手段的改进建议</p> <p class="meta-title">对本实验过程及方法手段的改进建议</p>
<span>得分50/60</span> <span>得分50/60</span>
</div> </div>
<el-input type="textarea" <el-input type="textarea" rows="5" v-model="form.improvement"></el-input>
rows="5"
v-model="form.improvement"></el-input>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="flex-between mgb20"> <div class="flex-between mgb20">
<span>老师寄语</span> <span>老师寄语</span>
</div> </div>
<el-input type="textarea" <el-input type="textarea" rows="5"></el-input>
rows="5"></el-input>
</el-card> </el-card>
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<p class="mgb20">教师签名</p> <p class="mgb20">教师签名</p>
<div class="mgb20"> <div class="mgb20">
<el-radio v-model="autograph" <el-radio v-model="autograph" label="1">不使用</el-radio>
label="1">不使用</el-radio> <el-radio v-model="autograph" label="2">已有签名</el-radio>
<el-radio v-model="autograph" <el-radio v-model="autograph" label="3">重新上传</el-radio>
label="2">已有签名</el-radio>
<el-radio v-model="autograph"
label="3">重新上传</el-radio>
</div> </div>
<el-row v-if="autograph != 1"> <el-row v-if="autograph != 1">
<el-col :span="6"> <el-col :span="6">
<el-select class="sign-select" <el-select class="sign-select" v-model="signId" placeholder="请选择签名" size="mini" v-show="autograph == 2">
v-model="signId" <el-option v-for="item in signList" :key="item.id" :label="item.signatureName" :value="item.id">
placeholder="请选择签名"
size="mini"
v-show="autograph == 2">
<el-option v-for="item in signList"
:key="item.id"
:label="item.signatureName"
:value="item.id">
</el-option> </el-option>
</el-select> </el-select>
<el-upload :data="{userId: userId}" <el-upload :data="{ userId: userId }" :limit="1" :action="api.uploadSignature" list-type="picture-card"
:limit="1" :on-remove="handleRemove" :on-exceed="handleExceed" :on-success="uploadSuccess">
:action="api.uploadSignature"
list-type="picture-card"
:on-remove="handleRemove"
:on-exceed="handleExceed"
:on-success="uploadSuccess">
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
</el-col> </el-col>
@ -422,7 +322,7 @@ export default {
.step-title { .step-title {
margin-bottom: 10px; margin-bottom: 10px;
font-size: 16px; font-size: 16px;
color: #9278ff; color: $main-color;
} }
.border_lf { .border_lf {
@ -463,7 +363,7 @@ export default {
.step-title { .step-title {
margin-bottom: 10px; margin-bottom: 10px;
font-size: 16px; font-size: 16px;
color: #9278ff; color: $main-color;
} }
.bd-title { .bd-title {

@ -602,7 +602,7 @@ export default {
.back { .back {
margin-right: 20px; margin-right: 20px;
color: #9278ff; color: $main-color;
cursor: pointer; cursor: pointer;
} }
} }

@ -1,12 +1,11 @@
<template> <template>
<div class="wrap index"> <div class="wrap index">
<div class="banner" <div class="banner"
:style="{backgroundImage: 'url(' + (form.carouselUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20230515/jpg/1658017103770836992.jpg') + ')'}">创业活动详情</div> :style="{ backgroundImage: 'url(' + (form.carouselUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20230515/jpg/1658017103770836992.jpg') + ')' }">
创业活动详情</div>
<div class="center-con"> <div class="center-con">
<div class="center-wrap"> <div class="center-wrap">
<breadcrumb ref="breadcrumb" <breadcrumb ref="breadcrumb" :data="'全部项目/' + form.projectName" :query="{
:data="'全部项目/' + form.projectName"
:query="{
whetherToSignUp: $route.query.whetherToSignUp, whetherToSignUp: $route.query.whetherToSignUp,
filterSort: $route.query.filterSort, filterSort: $route.query.filterSort,
keyword: $route.query.keyword, keyword: $route.query.keyword,
@ -14,102 +13,73 @@
}"></breadcrumb> }"></breadcrumb>
<div class="content"> <div class="content">
<div class="tool flex-between"> <div class="tool flex-between">
<el-tabs v-model="curType" <el-tabs v-model="curType" @tab-click="typeChange">
@tab-click="typeChange"> <el-tab-pane v-for="(item, index) in typeList" :key="index" :label="item.name"
<el-tab-pane v-for="(item, index) in typeList"
:key="index"
:label="item.name"
:name="item.id"></el-tab-pane> :name="item.id"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="action"> <div class="action">
<p class="end-text" <p class="end-text" v-if="end">
v-if="end">
距离{{ endList[status] }}还有 距离{{ endList[status] }}还有
<em>{{ end }}</em> <em>{{ end }}</em>
</p> </p>
<a class="status" <a class="status"
:class="{wait: status == 0,signing: status == 2,signed: status == 1,finish: status == 3 || status == 4}" :class="{ wait: status == 0, signing: status == 2, signed: status == 1, finish: status == 3 || status == 4 }"
:title="statusList[status]" :title="statusList[status]" @click.stop="signup">{{ statusList[status] }}</a>
@click.stop="signup">{{ statusList[status] }}</a>
</div> </div>
</div> </div>
<div class="info" <div class="info" id="part1">
id="part1">
<h6 class="title">{{ form.projectName }}</h6> <h6 class="title">{{ form.projectName }}</h6>
<div class="meta">最近编辑时间{{ form.updateTime }}</div> <div class="meta">最近编辑时间{{ form.updateTime }}</div>
</div> </div>
<div v-show="curType < 4"> <div v-show="curType < 4">
<div class="l-title"><img src="@/assets/img/label.png" <div class="l-title"><img src="@/assets/img/label.png" alt=""> 项目信息</div>
alt=""> 项目信息</div> <div v-if="form.projectDescribe" class="texts ql-editor" v-html="form.projectDescribe"></div>
<div v-if="form.projectDescribe"
class="texts ql-editor"
v-html="form.projectDescribe"></div>
<template v-if="form.activityFileList"> <template v-if="form.activityFileList">
<h6 class="p-title">附件下载</h6> <h6 class="p-title">附件下载</h6>
<ul class="files"> <ul class="files">
<li v-for="(item, i) in form.activityFileList" <li v-for="(item, i) in form.activityFileList" :key="i">
:key="i"> <el-link v-if="item.canPreview" class="m-r-10" type="primary" @click="preview(item)">{{ item.fileName
<el-link v-if="item.canPreview" }}</el-link>
class="m-r-10" <span v-else class="fileName">{{ item.fileName }}</span>
type="primary" <el-link type="primary" :underline="false" @click="download(item)">下载</el-link>
@click="preview(item)">{{ item.fileName }}</el-link>
<span v-else
class="fileName">{{ item.fileName }}</span>
<el-link type="primary"
:underline="false"
@click="download(item)">下载</el-link>
</li> </li>
</ul> </ul>
</template> </template>
<!-- 进展 --> <!-- 进展 -->
<div class="l-title" <div class="l-title" id="part2"><img src="@/assets/img/label.png" alt=""> 项目进展</div>
id="part2"><img src="@/assets/img/label.png" <ul class="progress" v-if="progress.length">
alt=""> 项目进展</div> <li v-for="(item, index) in progress" :key="index"
<ul class="progress"
v-if="progress.length">
<li v-for="(item,index) in progress"
:key="index"
:class="item.status == 0 ? 'not' : (item.status == 1 ? 'ing' : 'done')"> :class="item.status == 0 ? 'not' : (item.status == 1 ? 'ing' : 'done')">
<i class="dot"></i> <i class="dot"></i>
<p class="name">{{item.title}}</p> <p class="name">{{ item.title }}</p>
<p class="desc">{{item.description}}</p> <p class="desc">{{ item.description }}</p>
</li> </li>
<img class="rocket" <img class="rocket" src="@/assets/img/rocket.png" alt="">
src="@/assets/img/rocket.png"
alt="">
</ul> </ul>
<template v-else> <template v-else>
<div class="empty"> <div class="empty">
<div> <div>
<img src="@/assets/img/none.png" <img src="@/assets/img/none.png" alt="">
alt="">
<p>暂无数据</p> <p>暂无数据</p>
</div> </div>
</div> </div>
</template> </template>
<!-- 公告 --> <!-- 公告 -->
<div class="l-title" <div class="l-title" id="part3"><img src="@/assets/img/label.png" alt=""> 通知公告</div>
id="part3"><img src="@/assets/img/label.png" <ul class="notice-list" v-if="notices.length">
alt=""> 通知公告</div> <li v-for="(item, i) in notices" :key="i" @click="toNotice(item)">
<ul class="notice-list"
v-if="notices.length">
<li v-for="(item, i) in notices"
:key="i"
@click="toNotice(item)">
<h6>{{ item.announcementTitle }}</h6> <h6>{{ item.announcementTitle }}</h6>
<p class="meta">{{ item.updateTime }}</p> <p class="meta">{{ item.updateTime }}</p>
<div class="des" <div class="des" v-html="item.announcementText"></div>
v-html="item.announcementText"></div>
</li> </li>
</ul> </ul>
<template v-else> <template v-else>
<div class="empty"> <div class="empty">
<div> <div>
<img src="@/assets/img/none.png" <img src="@/assets/img/none.png" alt="">
alt="">
<p>暂无通知公告</p> <p>暂无通知公告</p>
</div> </div>
</div> </div>
@ -119,24 +89,15 @@
</div> </div>
</div> </div>
<el-dialog title="报名" <el-dialog title="报名" :visible.sync="signupVisible" :close-on-click-modal="false" width="300px">
:visible.sync="signupVisible"
:close-on-click-modal="false"
width="300px">
<el-form class="dia-form"> <el-form class="dia-form">
<el-form-item> <el-form-item>
<el-input placeholder="请输入4位数大赛邀请码" <el-input placeholder="请输入4位数大赛邀请码" maxlength="4" v-model="invitationCode"></el-input>
maxlength="4"
v-model="invitationCode"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" <span slot="footer" class="dialog-footer">
class="dialog-footer"> <el-button size="small" type="primary" @click="signupSubmit">报名</el-button>
<el-button size="small" <el-button size="small" @click="signupVisible = false">取消</el-button>
type="primary"
@click="signupSubmit">报名</el-button>
<el-button size="small"
@click="signupVisible = false">取消</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -401,6 +362,7 @@ export default {
.wrap { .wrap {
margin: -24px; margin: -24px;
} }
.banner { .banner {
width: 100%; width: 100%;
height: 350px; height: 350px;
@ -411,39 +373,48 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.l-title { .l-title {
font-size: 18px; font-size: 18px;
} }
.main .center-con { .main .center-con {
background: url(../../../assets/img/match-bg1.png) (0px 95px) / auto auto no-repeat, background: url(../../../assets/img/match-bg1.png) (0px 95px) / auto auto no-repeat,
url(../../../assets/img/match-bg2.png) (98% 300px) / auto auto no-repeat; url(../../../assets/img/match-bg2.png) (98% 300px) / auto auto no-repeat;
} }
.main .center-wrap { .main .center-wrap {
width: 1000px; width: 1000px;
margin: 30px auto 0; margin: 30px auto 0;
} }
.rule-title { .rule-title {
margin-bottom: 10px; margin-bottom: 10px;
font-size: 16px; font-size: 16px;
} }
.rule { .rule {
padding: 15px; padding: 15px;
margin-bottom: 15px; margin-bottom: 15px;
border: 1px solid #dfdfdf; border: 1px solid #dfdfdf;
p { p {
font-size: 14px; font-size: 14px;
line-height: 30px; line-height: 30px;
color: #6e6e6e; color: #6e6e6e;
} }
} }
/deep/.el-tabs__item { /deep/.el-tabs__item {
box-shadow: none !important; box-shadow: none !important;
} }
.content { .content {
position: relative; position: relative;
padding: 20px 40px; padding: 20px 40px;
margin-top: 30px; margin-top: 30px;
background-color: #fff; background-color: #fff;
.title { .title {
width: 67%; width: 67%;
margin: 0 auto; margin: 0 auto;
@ -451,6 +422,7 @@ export default {
text-align: center; text-align: center;
color: #0b1d30; color: #0b1d30;
} }
.tool { .tool {
z-index: 100; z-index: 100;
position: sticky; position: sticky;
@ -458,16 +430,19 @@ export default {
margin-bottom: 20px; margin-bottom: 20px;
background-color: #fff; background-color: #fff;
} }
.info .meta { .info .meta {
padding: 16px 0; padding: 16px 0;
font-size: 12px; font-size: 12px;
color: #999; color: #999;
text-align: center; text-align: center;
} }
.action { .action {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
} }
.status { .status {
max-width: 120px; max-width: 120px;
padding: 0 16px; padding: 0 16px;
@ -479,46 +454,57 @@ export default {
border-radius: 4px; border-radius: 4px;
cursor: pointer; cursor: pointer;
@include ellipsis(); @include ellipsis();
&.wait { &.wait {
background-color: #faad14; background-color: #faad14;
} }
&.signing { &.signing {
background-color: $main-color; background-color: $main-color;
} }
&.signed { &.signed {
background-color: #52c41a; background-color: #52c41a;
} }
&.playing { &.playing {
background-color: #f96d6d; background-color: #f96d6d;
} }
&.finish { &.finish {
background-color: #ccc; background-color: #ccc;
} }
} }
.end-text { .end-text {
font-size: 12px; font-size: 12px;
color: #666; color: #666;
em { em {
font-style: normal; font-style: normal;
color: #f00; color: #f00;
} }
} }
.texts { .texts {
margin: 20px 0 50px; margin: 20px 0 50px;
font-size: 14px; font-size: 14px;
line-height: 1.6; line-height: 1.6;
text-indent: 2em; text-indent: 2em;
overflow: hidden; overflow: hidden;
/deep/img { /deep/img {
max-width: 100%; max-width: 100%;
} }
} }
.progress { .progress {
position: relative; position: relative;
width: 95%; width: 95%;
padding: 50px 0; padding: 50px 0;
margin: 40px auto 80px; margin: 40px auto 80px;
text-align: left; text-align: left;
&:before { &:before {
content: ''; content: '';
position: absolute; position: absolute;
@ -528,6 +514,7 @@ export default {
height: 100%; height: 100%;
background-color: #e1e6f2; background-color: #e1e6f2;
} }
&:after { &:after {
content: ''; content: '';
position: absolute; position: absolute;
@ -536,15 +523,18 @@ export default {
border: 8px solid transparent; border: 8px solid transparent;
border-bottom-color: #e1e6f2; border-bottom-color: #e1e6f2;
} }
.rocket { .rocket {
position: absolute; position: absolute;
bottom: -50px; bottom: -50px;
left: 425px; left: 425px;
} }
li { li {
position: relative; position: relative;
width: 400px; width: 400px;
margin-bottom: 42px; margin-bottom: 42px;
.dot { .dot {
position: absolute; position: absolute;
top: 12px; top: 12px;
@ -554,6 +544,7 @@ export default {
background-color: #dcdcdc; background-color: #dcdcdc;
border-radius: 50%; border-radius: 50%;
} }
.name { .name {
display: inline-block; display: inline-block;
padding: 0 19px; padding: 0 19px;
@ -565,21 +556,25 @@ export default {
border-radius: 20px; border-radius: 20px;
background-color: #c4c4c4; background-color: #c4c4c4;
} }
.desc { .desc {
position: relative; position: relative;
color: #333; color: #333;
font-size: 14px; font-size: 14px;
} }
&.ing, &.ing,
&.done { &.done {
.dot { .dot {
top: 8px; top: 8px;
background-color: #007eff; background-color: $main-color;
} }
.name { .name {
background-color: #007eff; background-color: $main-color;
} }
} }
&.ing { &.ing {
.dot { .dot {
width: 27px; width: 27px;
@ -587,14 +582,17 @@ export default {
border: 6px solid #e2f1fb; border: 6px solid #e2f1fb;
} }
} }
&:nth-child(odd) { &:nth-child(odd) {
text-align: right; text-align: right;
&.ing { &.ing {
.dot { .dot {
left: auto; left: auto;
right: -51px; right: -51px;
} }
} }
.name { .name {
&:before { &:before {
content: ''; content: '';
@ -608,30 +606,37 @@ export default {
border-left-color: #c4c4c4; border-left-color: #c4c4c4;
} }
} }
.desc { .desc {
text-align: right; text-align: right;
} }
&.ing, &.ing,
&.done { &.done {
.name { .name {
&:before { &:before {
border-left-color: #007eff; border-left-color: $main-color;
} }
} }
} }
} }
&:nth-child(even) { &:nth-child(even) {
margin-left: 482px; margin-left: 482px;
.dot { .dot {
left: -51px; left: -51px;
} }
&.ing { &.ing {
.dot { .dot {
left: -57px; left: -57px;
} }
} }
.name { .name {
text-align: left; text-align: left;
&:after { &:after {
content: ''; content: '';
z-index: 2; z-index: 2;
@ -644,6 +649,7 @@ export default {
border-right-color: #c4c4c4; border-right-color: #c4c4c4;
} }
} }
.desc { .desc {
&:before { &:before {
left: auto; left: auto;
@ -651,6 +657,7 @@ export default {
border: 8px solid transparent; border: 8px solid transparent;
border-left-color: #fff; border-left-color: #fff;
} }
&:after { &:after {
left: auto; left: auto;
right: -18px; right: -18px;
@ -663,31 +670,37 @@ export default {
&.done { &.done {
.name { .name {
&:after { &:after {
border-right-color: #007eff; border-right-color: $main-color;
} }
} }
} }
} }
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
} }
} }
} }
.files { .files {
margin-bottom: 30px; margin-bottom: 30px;
li { li {
display: flex; display: flex;
align-items: center; align-items: center;
margin: 10px 0; margin: 10px 0;
} }
.fileName { .fileName {
margin-right: 10px; margin-right: 10px;
font-size: 12px; font-size: 12px;
} }
} }
.notice-list { .notice-list {
text-align: left; text-align: left;
li { li {
padding: 16px; padding: 16px;
margin-bottom: 12px; margin-bottom: 12px;
@ -696,23 +709,28 @@ export default {
border-radius: 6px; border-radius: 6px;
background-color: #fff; background-color: #fff;
border-bottom: 1px dashed #ebebeb; border-bottom: 1px dashed #ebebeb;
&:last-child { &:last-child {
border-bottom: 0; border-bottom: 0;
} }
} }
h6 { h6 {
font-size: 20px; font-size: 20px;
font-weight: 500; font-weight: 500;
color: #0b1d30; color: #0b1d30;
&:hover { &:hover {
color: #007eff; color: $main-color;
} }
} }
.meta { .meta {
margin: 10px 0; margin: 10px 0;
font-size: 14px; font-size: 14px;
color: #666; color: #666;
} }
.des { .des {
font-size: 14px; font-size: 14px;
color: #333; color: #333;
@ -727,53 +745,65 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
} }
.table { .table {
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;
th, th,
td { td {
padding: 12px; padding: 12px;
border: 1px solid #ebeef5; border: 1px solid #ebeef5;
} }
&.tc { &.tc {
text-align: center; text-align: center;
} }
th { th {
text-align: center; text-align: center;
background-color: #f8faff; background-color: #f8faff;
} }
.icon { .icon {
margin-right: 10px; margin-right: 10px;
font-size: 16px; font-size: 16px;
color: #7a7a7a; color: #7a7a7a;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: #007eff; color: $main-color;
} }
} }
.plus { .plus {
margin-bottom: 10px; margin-bottom: 10px;
text-align: right; text-align: right;
} }
.line { .line {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 10px; margin-bottom: 10px;
.el-input { .el-input {
margin-right: 15px; margin-right: 15px;
} }
} }
} }
.flex-center { .flex-center {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 15px; margin-bottom: 15px;
} }
/deep/.dia-form { /deep/.dia-form {
.w-100 { .w-100 {
width: 100%; width: 100%;
} }
.tips { .tips {
display: flex; display: flex;
justify-content: center; justify-content: center;

@ -1,18 +1,15 @@
<template> <template>
<div class="wrap index"> <div class="wrap index">
<div class="banner" <div class="banner"
:style="{backgroundImage: 'url(' + (form.carouselUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20220613/png/1536269450851409920.png') + ')'}"></div> :style="{ backgroundImage: 'url(' + (form.carouselUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20220613/png/1536269450851409920.png') + ')' }">
</div>
<div class="center-con"> <div class="center-con">
<div class="center-wrap"> <div class="center-wrap">
<breadcrumb ref="breadcrumb" <breadcrumb ref="breadcrumb" :data="'全部项目/' + form.projectName"></breadcrumb>
:data="'全部项目/' + form.projectName"></breadcrumb>
<div class="content"> <div class="content">
<div class="tool flex-between"> <div class="tool flex-between">
<el-tabs v-model="curType" <el-tabs v-model="curType" @tab-click="typeChange">
@tab-click="typeChange"> <el-tab-pane v-for="(item, index) in typeList" :key="index" :label="item.name"
<el-tab-pane v-for="(item, index) in typeList"
:key="index"
:label="item.name"
:name="item.id"></el-tab-pane> :name="item.id"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="status wait">等待报名</div> <div class="status wait">等待报名</div>
@ -23,77 +20,53 @@
</div> </div>
<div v-show="curType < 4"> <div v-show="curType < 4">
<div class="l-title" <div class="l-title" id="part1"><img src="@/assets/img/label.png" alt=""> 项目信息</div>
id="part1"><img src="@/assets/img/label.png" <div v-if="form.projectDescribe" class="texts ql-editor" v-html="form.projectDescribe"></div>
alt=""> 项目信息</div>
<div v-if="form.projectDescribe"
class="texts ql-editor"
v-html="form.projectDescribe"></div>
<template v-if="form.activityFileList"> <template v-if="form.activityFileList">
<h6 class="p-title">附件下载</h6> <h6 class="p-title">附件下载</h6>
<ul class="files"> <ul class="files">
<li v-for="(item, i) in form.activityFileList" <li v-for="(item, i) in form.activityFileList" :key="i">
:key="i"> <el-link v-if="item.canPreview" class="m-r-10" type="primary" @click="preview(item)">{{ item.fileName
<el-link v-if="item.canPreview" }}</el-link>
class="m-r-10" <span v-else class="fileName">{{ item.fileName }}</span>
type="primary" <el-link type="primary" :underline="false" @click="download(item)">下载</el-link>
@click="preview(item)">{{ item.fileName }}</el-link>
<span v-else
class="fileName">{{ item.fileName }}</span>
<el-link type="primary"
:underline="false"
@click="download(item)">下载</el-link>
</li> </li>
</ul> </ul>
</template> </template>
<!-- 进展 --> <!-- 进展 -->
<div class="l-title" <div class="l-title" id="part2"><img src="@/assets/img/label.png" alt=""> 项目进展</div>
id="part2"><img src="@/assets/img/label.png" <ul class="progress" v-if="progress.length">
alt=""> 项目进展</div> <li v-for="(item, index) in progress" :key="index"
<ul class="progress"
v-if="progress.length">
<li v-for="(item,index) in progress"
:key="index"
:class="item.status == 0 ? 'not' : (item.status == 1 ? 'ing' : 'done')"> :class="item.status == 0 ? 'not' : (item.status == 1 ? 'ing' : 'done')">
<i class="dot"></i> <i class="dot"></i>
<p class="name">{{item.title}}</p> <p class="name">{{ item.title }}</p>
<p class="desc">{{item.description}}</p> <p class="desc">{{ item.description }}</p>
</li> </li>
<img class="rocket" <img class="rocket" src="@/assets/img/rocket.png" alt="">
src="@/assets/img/rocket.png"
alt="">
</ul> </ul>
<template v-else> <template v-else>
<div class="empty"> <div class="empty">
<div> <div>
<img src="@/assets/img/none.png" <img src="@/assets/img/none.png" alt="">
alt="">
<p>暂无数据</p> <p>暂无数据</p>
</div> </div>
</div> </div>
</template> </template>
<!-- 公告 --> <!-- 公告 -->
<div class="l-title" <div class="l-title" id="part3"><img src="@/assets/img/label.png" alt=""> 通知公告</div>
id="part3"><img src="@/assets/img/label.png" <ul class="notice-list" v-if="notices.length">
alt=""> 通知公告</div> <li v-for="(item, i) in notices" :key="i" @click="toNotice(item)">
<ul class="notice-list"
v-if="notices.length">
<li v-for="(item, i) in notices"
:key="i"
@click="toNotice(item)">
<h6>{{ item.announcementTitle }}</h6> <h6>{{ item.announcementTitle }}</h6>
<p class="meta">{{ item.updateTime }}</p> <p class="meta">{{ item.updateTime }}</p>
<div class="des" <div class="des" v-html="item.announcementText"></div>
v-html="item.announcementText"></div>
</li> </li>
</ul> </ul>
<template v-else> <template v-else>
<div class="empty"> <div class="empty">
<div> <div>
<img src="@/assets/img/none.png" <img src="@/assets/img/none.png" alt="">
alt="">
<p>暂无通知公告</p> <p>暂无通知公告</p>
</div> </div>
</div> </div>
@ -182,6 +155,7 @@ export default {
.wrap { .wrap {
margin: -24px; margin: -24px;
} }
.banner { .banner {
width: 100%; width: 100%;
height: 350px; height: 350px;
@ -190,40 +164,49 @@ export default {
background-size: 100% 350px; background-size: 100% 350px;
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.l-title { .l-title {
font-size: 18px; font-size: 18px;
} }
.main .center-con { .main .center-con {
width: 1000px; width: 1000px;
margin: 40px auto 0; margin: 40px auto 0;
background: url(../../../../assets/img/match-bg1.png) (0px 95px) / auto auto no-repeat, background: url(../../../../assets/img/match-bg1.png) (0px 95px) / auto auto no-repeat,
url(../../../../assets/img/match-bg2.png) (98% 300px) / auto auto no-repeat; url(../../../../assets/img/match-bg2.png) (98% 300px) / auto auto no-repeat;
} }
.main .center-wrap { .main .center-wrap {
margin-top: 30px; margin-top: 30px;
} }
.rule-title { .rule-title {
margin-bottom: 10px; margin-bottom: 10px;
font-size: 16px; font-size: 16px;
} }
.rule { .rule {
padding: 15px; padding: 15px;
margin-bottom: 15px; margin-bottom: 15px;
border: 1px solid #dfdfdf; border: 1px solid #dfdfdf;
p { p {
font-size: 14px; font-size: 14px;
line-height: 30px; line-height: 30px;
color: #6e6e6e; color: #6e6e6e;
} }
} }
/deep/.el-tabs__item { /deep/.el-tabs__item {
box-shadow: none !important; box-shadow: none !important;
} }
.content { .content {
position: relative; position: relative;
padding: 20px 40px; padding: 20px 40px;
margin-top: 30px; margin-top: 30px;
background-color: #fff; background-color: #fff;
.title { .title {
width: 67%; width: 67%;
margin: 0 auto; margin: 0 auto;
@ -231,6 +214,7 @@ export default {
text-align: center; text-align: center;
color: #0b1d30; color: #0b1d30;
} }
.tool { .tool {
z-index: 100; z-index: 100;
position: sticky; position: sticky;
@ -238,16 +222,19 @@ export default {
margin-bottom: 20px; margin-bottom: 20px;
background-color: #fff; background-color: #fff;
} }
.info .meta { .info .meta {
padding: 16px 0; padding: 16px 0;
font-size: 12px; font-size: 12px;
color: #999; color: #999;
text-align: center; text-align: center;
} }
.action { .action {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
} }
.status { .status {
max-width: 120px; max-width: 120px;
padding: 0 16px; padding: 0 16px;
@ -259,46 +246,57 @@ export default {
border-radius: 4px; border-radius: 4px;
cursor: pointer; cursor: pointer;
@include ellipsis(); @include ellipsis();
&.wait { &.wait {
background-color: #faad14; background-color: #faad14;
} }
&.signing { &.signing {
background-color: $main-color; background-color: $main-color;
} }
&.signed { &.signed {
background-color: #52c41a; background-color: #52c41a;
} }
&.playing { &.playing {
background-color: #f96d6d; background-color: #f96d6d;
} }
&.finish { &.finish {
background-color: #ccc; background-color: #ccc;
} }
} }
.end-text { .end-text {
font-size: 12px; font-size: 12px;
color: #666; color: #666;
em { em {
font-style: normal; font-style: normal;
color: #f00; color: #f00;
} }
} }
.texts { .texts {
margin: 20px 0 50px; margin: 20px 0 50px;
font-size: 14px; font-size: 14px;
line-height: 1.6; line-height: 1.6;
text-indent: 2em; text-indent: 2em;
overflow: hidden; overflow: hidden;
/deep/img { /deep/img {
max-width: 100%; max-width: 100%;
} }
} }
.progress { .progress {
position: relative; position: relative;
width: 95%; width: 95%;
padding: 50px 0; padding: 50px 0;
margin: 40px auto 80px; margin: 40px auto 80px;
text-align: left; text-align: left;
&:before { &:before {
content: ''; content: '';
position: absolute; position: absolute;
@ -308,6 +306,7 @@ export default {
height: 100%; height: 100%;
background-color: #e1e6f2; background-color: #e1e6f2;
} }
&:after { &:after {
content: ''; content: '';
position: absolute; position: absolute;
@ -316,15 +315,18 @@ export default {
border: 8px solid transparent; border: 8px solid transparent;
border-bottom-color: #e1e6f2; border-bottom-color: #e1e6f2;
} }
.rocket { .rocket {
position: absolute; position: absolute;
bottom: -50px; bottom: -50px;
left: 425px; left: 425px;
} }
li { li {
position: relative; position: relative;
width: 400px; width: 400px;
margin-bottom: 42px; margin-bottom: 42px;
.dot { .dot {
position: absolute; position: absolute;
top: 12px; top: 12px;
@ -334,6 +336,7 @@ export default {
background-color: #dcdcdc; background-color: #dcdcdc;
border-radius: 50%; border-radius: 50%;
} }
.name { .name {
display: inline-block; display: inline-block;
padding: 0 19px; padding: 0 19px;
@ -345,21 +348,25 @@ export default {
border-radius: 20px; border-radius: 20px;
background-color: #c4c4c4; background-color: #c4c4c4;
} }
.desc { .desc {
position: relative; position: relative;
color: #333; color: #333;
font-size: 14px; font-size: 14px;
} }
&.ing, &.ing,
&.done { &.done {
.dot { .dot {
top: 8px; top: 8px;
background-color: #007eff; background-color: $main-color;
} }
.name { .name {
background-color: #007eff; background-color: $main-color;
} }
} }
&.ing { &.ing {
.dot { .dot {
width: 27px; width: 27px;
@ -367,14 +374,17 @@ export default {
border: 6px solid #e2f1fb; border: 6px solid #e2f1fb;
} }
} }
&:nth-child(odd) { &:nth-child(odd) {
text-align: right; text-align: right;
&.ing { &.ing {
.dot { .dot {
left: auto; left: auto;
right: -51px; right: -51px;
} }
} }
.name { .name {
&:before { &:before {
content: ''; content: '';
@ -388,30 +398,37 @@ export default {
border-left-color: #c4c4c4; border-left-color: #c4c4c4;
} }
} }
.desc { .desc {
text-align: right; text-align: right;
} }
&.ing, &.ing,
&.done { &.done {
.name { .name {
&:before { &:before {
border-left-color: #007eff; border-left-color: $main-color;
} }
} }
} }
} }
&:nth-child(even) { &:nth-child(even) {
margin-left: 482px; margin-left: 482px;
.dot { .dot {
left: -51px; left: -51px;
} }
&.ing { &.ing {
.dot { .dot {
left: -57px; left: -57px;
} }
} }
.name { .name {
text-align: left; text-align: left;
&:after { &:after {
content: ''; content: '';
z-index: 2; z-index: 2;
@ -424,6 +441,7 @@ export default {
border-right-color: #c4c4c4; border-right-color: #c4c4c4;
} }
} }
.desc { .desc {
&:before { &:before {
left: auto; left: auto;
@ -431,6 +449,7 @@ export default {
border: 8px solid transparent; border: 8px solid transparent;
border-left-color: #fff; border-left-color: #fff;
} }
&:after { &:after {
left: auto; left: auto;
right: -18px; right: -18px;
@ -443,31 +462,37 @@ export default {
&.done { &.done {
.name { .name {
&:after { &:after {
border-right-color: #007eff; border-right-color: $main-color;
} }
} }
} }
} }
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
} }
} }
} }
.files { .files {
margin-bottom: 30px; margin-bottom: 30px;
li { li {
display: flex; display: flex;
align-items: center; align-items: center;
margin: 10px 0; margin: 10px 0;
} }
.fileName { .fileName {
margin-right: 10px; margin-right: 10px;
font-size: 12px; font-size: 12px;
} }
} }
.notice-list { .notice-list {
text-align: left; text-align: left;
li { li {
padding: 16px; padding: 16px;
margin-bottom: 12px; margin-bottom: 12px;
@ -476,23 +501,28 @@ export default {
border-radius: 6px; border-radius: 6px;
background-color: #fff; background-color: #fff;
border-bottom: 1px dashed #ebebeb; border-bottom: 1px dashed #ebebeb;
&:last-child { &:last-child {
border-bottom: 0; border-bottom: 0;
} }
} }
h6 { h6 {
font-size: 20px; font-size: 20px;
font-weight: 500; font-weight: 500;
color: #0b1d30; color: #0b1d30;
&:hover { &:hover {
color: #007eff; color: $main-color;
} }
} }
.meta { .meta {
margin: 10px 0; margin: 10px 0;
font-size: 14px; font-size: 14px;
color: #666; color: #666;
} }
.des { .des {
font-size: 14px; font-size: 14px;
color: #333; color: #333;
@ -507,53 +537,65 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
} }
.table { .table {
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;
th, th,
td { td {
padding: 12px; padding: 12px;
border: 1px solid #ebeef5; border: 1px solid #ebeef5;
} }
&.tc { &.tc {
text-align: center; text-align: center;
} }
th { th {
text-align: center; text-align: center;
background-color: #f8faff; background-color: #f8faff;
} }
.icon { .icon {
margin-right: 10px; margin-right: 10px;
font-size: 16px; font-size: 16px;
color: #7a7a7a; color: #7a7a7a;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: #007eff; color: $main-color;
} }
} }
.plus { .plus {
margin-bottom: 10px; margin-bottom: 10px;
text-align: right; text-align: right;
} }
.line { .line {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 10px; margin-bottom: 10px;
.el-input { .el-input {
margin-right: 15px; margin-right: 15px;
} }
} }
} }
.flex-center { .flex-center {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 15px; margin-bottom: 15px;
} }
/deep/.dia-form { /deep/.dia-form {
.w-100 { .w-100 {
width: 100%; width: 100%;
} }
.tips { .tips {
display: flex; display: flex;
justify-content: center; justify-content: center;

@ -591,7 +591,7 @@ export default {
.el-tree-node__expand-icon { .el-tree-node__expand-icon {
padding: 2px; padding: 2px;
color: #fff; color: #fff;
background-color: #9278ff; background-color: $main-color;
border-radius: 30px; border-radius: 30px;
margin: 0 10px; margin: 0 10px;
} }
@ -607,7 +607,7 @@ export default {
.el-checkbox__inner { .el-checkbox__inner {
width: 18px; width: 18px;
height: 18px; height: 18px;
border: 1px solid #9278ff; border: 1px solid $main-color$main-color;
border-radius: 20px; border-radius: 20px;
} }

@ -1,78 +1,46 @@
<template> <template>
<!-- 课程预览 --> <!-- 课程预览 -->
<div class="wrap"> <div class="wrap">
<el-card shadow="hover" <el-card shadow="hover" class="m-b-20">
class="m-b-20">
<div class="flex-between"> <div class="flex-between">
<el-page-header @back="goBack" <el-page-header @back="goBack" :content="'课程预览'"></el-page-header>
:content="'课程预览'"></el-page-header>
</div> </div>
</el-card> </el-card>
<div class="flex"> <div class="flex">
<div class="cover" <div class="cover" :class="{ 'is-word': showMask1 }">
:class="{'is-word': showMask1}"> <img v-if="coverUrl" :src="coverUrl" alt="" width="100%" height="100%">
<img v-if="coverUrl"
:src="coverUrl"
alt=""
width="100%"
height="100%">
<template v-else-if="iframeSrc"> <template v-else-if="iframeSrc">
<iframe class="inner fileIframe" <iframe class="inner fileIframe" id="fileIframe" :src="iframeSrc" frameborder="0"></iframe>
id="fileIframe"
:src="iframeSrc"
frameborder="0"></iframe>
<template v-if="showMask"> <template v-if="showMask">
<div class="mask" <div class="mask" style="width: 500px;height: 30px;top: 53px;right: 320px"></div>
style="width: 500px;height: 30px;top: 53px;right: 320px"></div> <div class="mask" style="width: 175px;height: 30px;top: 53px;right: 5px"></div>
<div class="mask"
style="width: 175px;height: 30px;top: 53px;right: 5px"></div>
</template> </template>
<template v-if="showMask1"> <template v-if="showMask1">
<div class="word-mask" <div class="word-mask" style="height: 40px;"></div>
style="height: 40px;"></div> <div class="word-mask2" style="top: 55px;left: 28%;width: 44%;height: calc(100% - 80px);"></div>
<div class="word-mask2"
style="top: 55px;left: 28%;width: 44%;height: calc(100% - 80px);"></div>
</template> </template>
<template v-if="showMask2"> <template v-if="showMask2">
<div class="excel-mask1" <div class="excel-mask1" style="height: 48px;"></div>
style="height: 48px;"></div>
</template> </template>
</template> </template>
<div class="pdf inner" <div class="pdf inner" v-else-if="pdfSrc">
v-else-if="pdfSrc">
<p class="arrow"> <p class="arrow">
<span @click="changePdfPage(0)" <span @click="changePdfPage(0)" class="turn el-icon-arrow-left" :class="{ grey: currentPage == 1 }"></span>
class="turn el-icon-arrow-left"
:class="{grey: currentPage==1}"></span>
{{ currentPage }} / {{ pageCount }} {{ currentPage }} / {{ pageCount }}
<span @click="changePdfPage(1)" <span @click="changePdfPage(1)" class="turn el-icon-arrow-right"
class="turn el-icon-arrow-right" :class="{ grey: currentPage == pageCount }"></span>
:class="{grey: currentPage==pageCount}"></span>
</p> </p>
<pdf class="pdf-wrap" <pdf class="pdf-wrap" :src="pdfSrc" :page="currentPage" @num-pages="pageCount = $event"
:src="pdfSrc" @page-loaded="currentPage = $event" @loaded="loadPdfHandler">
:page="currentPage"
@num-pages="pageCount=$event"
@page-loaded="currentPage=$event"
@loaded="loadPdfHandler">
</pdf> </pdf>
</div> </div>
<div class="inner" <div class="inner" v-else-if="playAuth">
v-else-if="playAuth"> <div class="video_wid" id="player"></div>
<div class="video_wid"
id="player"></div>
</div> </div>
<div class="inner" <div class="inner" v-else-if="videoSrc">
v-else-if="videoSrc"> <video class="video" :key="videoSrc" width="100%" height="100%" autoplay controls>
<video class="video" <source :src="videoSrc" type="video/mp4">
:key="videoSrc"
width="100%"
height="100%"
autoplay
controls>
<source :src="videoSrc"
type="video/mp4">
您的浏览器不支持 video 标签 您的浏览器不支持 video 标签
</video> </video>
</div> </div>
@ -81,49 +49,26 @@
<div class="list"> <div class="list">
<h4 class="title">{{ courseName }}</h4> <h4 class="title">{{ courseName }}</h4>
<div class="desc-wrap"> <div class="desc-wrap">
<div class="desc" <div class="desc" :class="{ active: desShrink }" v-html="description"></div>
:class="{active: desShrink}" <i class="arrow" :class="{ active: desShrink }" v-if="description.length > 40">
v-html="description"></div>
<i class="arrow"
:class="{active: desShrink}"
v-if="description.length > 40">
<span>...</span> <span>...</span>
<img src="@/assets/img/arrow-down.png" <img src="@/assets/img/arrow-down.png" alt="" @click="desShrink = !desShrink">
alt=""
@click="desShrink = !desShrink">
</i> </i>
</div> </div>
<div class="chapters"> <div class="chapters">
<template v-if="videoList.length"> <template v-if="videoList.length">
<div class="chapter" <div class="chapter" v-for="(item, index) in videoList" :key="index">
v-for="(item,index) in videoList"
:key="index">
<div class="chapterName">{{ item.name }}</div> <div class="chapterName">{{ item.name }}</div>
<div class="section" <div class="section" v-if="item.subsectionList.length">
v-if="item.subsectionList.length"> <div v-for="(section, i) in item.subsectionList" :key="i" @click="preview(section, item.name)">
<div v-for="(section,i) in item.subsectionList" <p class="sectionName" :class="{ active: curLink === `${item.name}${section.name}` }">
:key="i" <img v-if="section.fileType === 'pptx'" src="@/assets/img/exts/ppt.png" alt="">
@click="preview(section, item.name)"> <img v-else-if="section.fileType === 'mp4'" src="@/assets/img/exts/video.png" alt="">
<p class="sectionName"
:class="{active: curLink === `${item.name}${section.name}`}">
<img v-if="section.fileType === 'pptx'"
src="@/assets/img/exts/ppt.png"
alt="">
<img v-else-if="section.fileType === 'mp4'"
src="@/assets/img/exts/video.png"
alt="">
<img v-else-if="section.fileType === 'doc' || section.fileType === 'docx'" <img v-else-if="section.fileType === 'doc' || section.fileType === 'docx'"
src="@/assets/img/exts/word.png" src="@/assets/img/exts/word.png" alt="">
alt=""> <img v-else-if="section.fileType === 'txt'" src="@/assets/img/exts/txt.png" alt="">
<img v-else-if="section.fileType === 'txt'" <img v-else-if="section.fileType === 'pdf'" src="@/assets/img/exts/pdf.png" alt="">
src="@/assets/img/exts/txt.png" <img v-else src="@/assets/img/exts/pic.png" alt="">
alt="">
<img v-else-if="section.fileType === 'pdf'"
src="@/assets/img/exts/pdf.png"
alt="">
<img v-else
src="@/assets/img/exts/pic.png"
alt="">
{{ section.name }} {{ section.name }}
</p> </p>
</div> </div>
@ -320,7 +265,9 @@ export default {
.wrap { .wrap {
padding: 0 200px; padding: 0 200px;
} }
$height: 700px; $height: 700px;
.video_wid, .video_wid,
.cover { .cover {
position: relative; position: relative;
@ -328,9 +275,11 @@ $height: 700px;
height: $height !important; height: $height !important;
border: 0; border: 0;
} }
.page { .page {
/deep/.des { /deep/.des {
overflow: auto; overflow: auto;
div, div,
p, p,
span { span {
@ -338,21 +287,27 @@ $height: 700px;
} }
} }
} }
.l-title { .l-title {
font-size: 17px; font-size: 17px;
} }
.cover { .cover {
background-color: #252528; background-color: #252528;
img { img {
border-radius: 8px; border-radius: 8px;
} }
&.is-word { &.is-word {
overflow: hidden; overflow: hidden;
} }
} }
.fileIframe { .fileIframe {
height: $height !important; height: $height !important;
} }
.video_wid, .video_wid,
.inner { .inner {
width: 100%; width: 100%;
@ -360,25 +315,30 @@ $height: 700px;
border: 0; border: 0;
overflow: auto; overflow: auto;
} }
.cover.is-word { .cover.is-word {
.inner { .inner {
height: calc(100% + 38px) !important; height: calc(100% + 38px) !important;
margin-top: -38px; margin-top: -38px;
} }
} }
.video_wid:focus { .video_wid:focus {
outline: none; outline: none;
} }
.catalog { .catalog {
width: 296px; width: 296px;
padding: 16px; padding: 16px;
margin-left: 12px; margin-left: 12px;
background-color: #252528; background-color: #252528;
.renew { .renew {
width: 100%; width: 100%;
margin-bottom: 16px; margin-bottom: 16px;
font-size: 17px; font-size: 17px;
} }
.entry { .entry {
display: block; display: block;
width: 100%; width: 100%;
@ -390,13 +350,16 @@ $height: 700px;
line-height: 34px; line-height: 34px;
background: url(../../../assets/img/entry.png) 0 0/100% 100% no-repeat; background: url(../../../assets/img/entry.png) 0 0/100% 100% no-repeat;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
opacity: 0.9; opacity: 0.9;
} }
} }
.types { .types {
display: flex; display: flex;
margin: 15px 0; margin: 15px 0;
.item { .item {
display: inline-flex; display: inline-flex;
justify-content: center; justify-content: center;
@ -407,53 +370,66 @@ $height: 700px;
background-color: #4e4e4e; background-color: #4e4e4e;
border-radius: 4px; border-radius: 4px;
cursor: pointer; cursor: pointer;
&:first-child { &:first-child {
margin-right: 10px; margin-right: 10px;
} }
&:hover { &:hover {
background-color: #377be3; background-color: #377be3;
} }
&.active { &.active {
background-color: $main-color; background-color: $main-color;
} }
} }
.icon { .icon {
margin-right: 5px; margin-right: 5px;
font-size: 18px; font-size: 18px;
} }
} }
} }
.list { .list {
height: calc(700px - 82px); height: calc(700px - 82px);
overflow-y: auto; overflow-y: auto;
.title { .title {
margin-bottom: 11px; margin-bottom: 11px;
color: #fff; color: #fff;
font-size: 16px; font-size: 16px;
} }
.pro-title { .pro-title {
margin-bottom: 5px; margin-bottom: 5px;
color: #fff; color: #fff;
font-size: 12px; font-size: 12px;
} }
/deep/.el-progress-bar { /deep/.el-progress-bar {
width: 92%; width: 92%;
} }
/deep/.el-progress__text { /deep/.el-progress__text {
color: #fff; color: #fff;
} }
.desc-wrap { .desc-wrap {
position: relative; position: relative;
.desc { .desc {
font-size: 12px; font-size: 12px;
color: #fff; color: #fff;
line-height: 22px; line-height: 22px;
@include mul-ellipsis(2); @include mul-ellipsis(2);
&.active { &.active {
display: block; display: block;
overflow: visible; overflow: visible;
} }
} }
.arrow { .arrow {
position: absolute; position: absolute;
bottom: 2px; bottom: 2px;
@ -462,41 +438,50 @@ $height: 700px;
justify-content: space-between; justify-content: space-between;
width: 46px; width: 46px;
background-color: #fff; background-color: #fff;
span { span {
font-size: 14px; font-size: 14px;
color: rgba(0, 0, 0, 0.65); color: rgba(0, 0, 0, 0.65);
} }
img { img {
width: 16px; width: 16px;
cursor: pointer; cursor: pointer;
} }
&.active { &.active {
span { span {
opacity: 0; opacity: 0;
} }
img { img {
transform: rotate(180deg); transform: rotate(180deg);
} }
} }
} }
} }
.chapters { .chapters {
margin-top: 16px; margin-top: 16px;
max-height: calc(100% - 53px); max-height: calc(100% - 53px);
overflow: auto; overflow: auto;
} }
.chapter { .chapter {
margin-bottom: 20px; margin-bottom: 20px;
} }
.chapterName { .chapterName {
color: #fff; color: #fff;
font-size: 14px; font-size: 14px;
} }
.section { .section {
padding: 5px 15px; padding: 5px 15px;
margin-top: 12px; margin-top: 12px;
background-color: #121214; background-color: #121214;
} }
.sectionName { .sectionName {
position: relative; position: relative;
padding-right: 15px; padding-right: 15px;
@ -505,36 +490,44 @@ $height: 700px;
color: #999; color: #999;
cursor: pointer; cursor: pointer;
@include ellipsis; @include ellipsis;
img { img {
margin-right: 8px; margin-right: 8px;
} }
.icon { .icon {
position: absolute; position: absolute;
right: 0; right: 0;
font-size: 14px; font-size: 14px;
color: #00c935; color: #00c935;
} }
.circle { .circle {
width: 14px; width: 14px;
height: 14px; height: 14px;
border-radius: 50%; border-radius: 50%;
border: 1px solid #ccc; border: 1px solid #ccc;
} }
&.active { &.active {
color: #fff; color: #fff;
} }
} }
} }
.buy { .buy {
text-align: center; text-align: center;
.tips { .tips {
margin-bottom: 10px; margin-bottom: 10px;
font-size: 14px; font-size: 14px;
} }
img { img {
width: 85%; width: 85%;
} }
} }
.el-image-viewer__wrapper { .el-image-viewer__wrapper {
transform: translateY(-10px); transform: translateY(-10px);
transition: transform 0.5s; transition: transform 0.5s;
@ -543,19 +536,23 @@ $height: 700px;
transform: translateY(0); transform: translateY(0);
} }
} }
.el-image-viewer__close { .el-image-viewer__close {
z-index: 2000; z-index: 2000;
top: 15px; top: 15px;
right: 15px; right: 15px;
&.doc-close { &.doc-close {
i { i {
color: #000 !important; color: #000 !important;
} }
} }
} }
.list::-webkit-scrollbar { .list::-webkit-scrollbar {
width: 4px; width: 4px;
} }
.list::-webkit-scrollbar-thumb { .list::-webkit-scrollbar-thumb {
border-radius: 10px; border-radius: 10px;
background: rgba(0, 0, 0, 0.06); background: rgba(0, 0, 0, 0.06);
@ -566,6 +563,7 @@ $height: 700px;
position: absolute; position: absolute;
background-color: rgb(57, 58, 61); background-color: rgb(57, 58, 61);
} }
.word-mask { .word-mask {
z-index: 9; z-index: 9;
position: absolute; position: absolute;
@ -574,6 +572,7 @@ $height: 700px;
width: 100%; width: 100%;
background-color: rgb(243, 242, 241); background-color: rgb(243, 242, 241);
} }
.word-mask1 { .word-mask1 {
z-index: 9; z-index: 9;
position: absolute; position: absolute;
@ -582,11 +581,13 @@ $height: 700px;
width: 100%; width: 100%;
background-color: #185abd; background-color: #185abd;
} }
.word-mask2 { .word-mask2 {
z-index: 9; z-index: 9;
position: absolute; position: absolute;
background-color: transparent; background-color: transparent;
} }
.excel-mask1 { .excel-mask1 {
z-index: 9; z-index: 9;
position: absolute; position: absolute;
@ -595,30 +596,38 @@ $height: 700px;
width: 60%; width: 60%;
background-color: #107c41; background-color: #107c41;
} }
/deep/.pdf-dia { /deep/.pdf-dia {
border-radius: 0 !important; border-radius: 0 !important;
.el-dialog__header { .el-dialog__header {
display: none; display: none;
} }
.el-dialog__body { .el-dialog__body {
padding: 0; padding: 0;
} }
.el-dialog__headerbtn { .el-dialog__headerbtn {
top: 10px; top: 10px;
.el-dialog__close { .el-dialog__close {
color: #fff; color: #fff;
font-size: 16px; font-size: 16px;
} }
} }
} }
.pdf { .pdf {
position: relative; position: relative;
.full { .full {
position: absolute; position: absolute;
top: 7px; top: 7px;
right: 10px; right: 10px;
cursor: pointer; cursor: pointer;
} }
.arrow { .arrow {
padding: 10px 0; padding: 10px 0;
display: flex; display: flex;
@ -627,27 +636,32 @@ $height: 700px;
font-size: 16px; font-size: 16px;
color: #fff; color: #fff;
background-color: #333; background-color: #333;
.turn { .turn {
margin: 0 10px; margin: 0 10px;
font-size: 18px; font-size: 18px;
cursor: pointer; cursor: pointer;
} }
} }
.pdf-wrap { .pdf-wrap {
width: 80%; width: 80%;
margin: 0 auto; margin: 0 auto;
} }
} }
/deep/.project-dia { /deep/.project-dia {
.el-dialog__body { .el-dialog__body {
padding: 28px 32px; padding: 28px 32px;
} }
} }
.projects { .projects {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
max-height: 400px; max-height: 400px;
overflow: auto; overflow: auto;
li { li {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
@ -657,21 +671,26 @@ $height: 700px;
background-color: #f6f8fa; background-color: #f6f8fa;
border-radius: 16px; border-radius: 16px;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
span { span {
color: #007eff; color: $main-color;
} }
} }
&:nth-child(3n) { &:nth-child(3n) {
margin-right: 0; margin-right: 0;
} }
&.active { &.active {
background-color: #f2f7ff; background-color: #f2f7ff;
span { span {
color: #3988ff; color: #3988ff;
} }
} }
} }
span { span {
max-width: 140px; max-width: 140px;
margin-left: 14px; margin-left: 14px;
@ -679,10 +698,12 @@ $height: 700px;
color: #333; color: #333;
} }
} }
.tabs { .tabs {
display: flex; display: flex;
align-items: center; align-items: center;
margin: 10px 0; margin: 10px 0;
.item { .item {
padding: 0 10px; padding: 0 10px;
margin-right: 16px; margin-right: 16px;
@ -692,12 +713,14 @@ $height: 700px;
line-height: 50px; line-height: 50px;
border-bottom: 3px solid transparent; border-bottom: 3px solid transparent;
cursor: pointer; cursor: pointer;
&.active { &.active {
color: #007eff; color: $main-color;
border-color: #007eff; border-color: $main-color;
} }
} }
} }
.tab-content { .tab-content {
width: calc(100% - 308px); width: calc(100% - 308px);
} }

@ -2,19 +2,11 @@
<!-- 内容管理 --> <!-- 内容管理 -->
<div class="flex"> <div class="flex">
<div class="menu-con"> <div class="menu-con">
<el-tree ref="column" <el-tree ref="column" :data="menuList" :props="{ label: 'name' }" highlight-current :expand-on-click-node="false"
:data="menuList" default-expand-all node-key="id" @node-click="handleSelect"></el-tree>
:props="{ label: 'name' }"
highlight-current
:expand-on-click-node="false"
default-expand-all
node-key="id"
@node-click="handleSelect"></el-tree>
</div> </div>
<div class="right"> <div class="right">
<ContentList ref="content" <ContentList ref="content" v-show="menuList.length" :columnId="columnId" />
v-show="menuList.length"
:columnId="columnId" />
</div> </div>
</div> </div>
</template> </template>
@ -106,15 +98,18 @@ export default {
height: calc(100vh - 250px); height: calc(100vh - 250px);
border-right: solid 1px #e6e6e6; border-right: solid 1px #e6e6e6;
background-color: #f2f6fc; background-color: #f2f6fc;
/deep/.el-tree-node__content { /deep/.el-tree-node__content {
height: 50px; height: 50px;
} }
} }
.right { .right {
flex: 1; flex: 1;
} }
/deep/.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
/deep/.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
color: #fff; color: #fff;
background-color: #9278ff; background-color: $main-color;
} }
</style> </style>

@ -2,17 +2,11 @@
<!-- 资讯管理 --> <!-- 资讯管理 -->
<div class="page"> <div class="page">
<ul class="column-tab"> <ul class="column-tab">
<li :class="{active: tabsName == 1}" <li :class="{ active: tabsName == 1 }" @click="handleClick(1)"><i class="el-icon-collection-tag"></i> 栏目管理</li>
@click="handleClick(1)"><i class="el-icon-collection-tag"></i> 栏目管理</li> <li :class="{ active: tabsName == 2 }" @click="handleClick(2)"><i class="el-icon-document"></i> 内容管理</li>
<li :class="{active: tabsName == 2}"
@click="handleClick(2)"><i class="el-icon-document"></i> 内容管理</li>
</ul> </ul>
<columnManage class="flex-1" <columnManage class="flex-1" ref="content1" v-if="tabsName == 1" />
ref="content1" <ContentManage class="flex-1" ref="content2" v-if="tabsName == 2" />
v-if="tabsName == 1" />
<ContentManage class="flex-1"
ref="content2"
v-if="tabsName == 2" />
</div> </div>
</template> </template>
@ -80,20 +74,24 @@ export default {
.page { .page {
display: flex; display: flex;
} }
.column-tab { .column-tab {
width: 120px; width: 120px;
border-right: solid 1px #e6e6e6; border-right: solid 1px #e6e6e6;
li { li {
display: flex; display: flex;
align-items: center; align-items: center;
height: 60px; height: 60px;
cursor: pointer; cursor: pointer;
i { i {
margin-right: 5px; margin-right: 5px;
} }
&:hover, &:hover,
&.active { &.active {
color: #9278ff; color: $main-color;
} }
} }
} }

@ -326,11 +326,11 @@ export default {
.circle { .circle {
color: #fff; color: #fff;
border-color: #459ffb; border-color: #459ffb;
background: #007eff; background: $main-color;
} }
.text { .text {
color: #007eff; color: $main-color;
} }
} }

@ -508,7 +508,7 @@ export default {
bottom: -63px; bottom: -63px;
right: 0; right: 0;
font-size: 12px; font-size: 12px;
color: #007eff; color: $main-color;
cursor: pointer; cursor: pointer;
} }
} }

@ -631,7 +631,7 @@ export default {
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: #007eff; color: $main-color;
} }
} }

@ -1,18 +1,14 @@
<template> <template>
<div class="match"> <div class="match">
<div class="banner" <div class="banner"
:style="{backgroundImage: 'url(' + (form.carouselUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20220613/png/1536269450851409920.png') + ')'}"></div> :style="{ backgroundImage: 'url(' + (form.carouselUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20220613/png/1536269450851409920.png') + ')' }">
</div>
<div class="center"> <div class="center">
<breadcrumb ref="breadcrumb" <breadcrumb ref="breadcrumb" :data="'全部赛事/' + form.name" route="list"></breadcrumb>
:data="'全部赛事/' + form.name"
route="list"></breadcrumb>
<div class="match-inner"> <div class="match-inner">
<div class="flex-between"> <div class="flex-between">
<el-tabs v-model="curType" <el-tabs v-model="curType" @tab-click="typeChange">
@tab-click="typeChange"> <el-tab-pane v-for="(item, index) in typeList" :key="index" :label="item.name"
<el-tab-pane v-for="(item, index) in typeList"
:key="index"
:label="item.name"
:name="item.id"></el-tab-pane> :name="item.id"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="status wait">等待报名</div> <div class="status wait">等待报名</div>
@ -22,46 +18,32 @@
<div class="meta">最近编辑时间{{ form.updateTime }}</div> <div class="meta">最近编辑时间{{ form.updateTime }}</div>
</div> </div>
<div class="l-title" <div class="l-title" id="part1"><img src="@/assets/img/label.png" alt=""> 竞赛信息</div>
id="part1"><img src="@/assets/img/label.png" <div v-if="form.description" class="texts ql-editor" v-html="form.description"></div>
alt=""> 竞赛信息</div>
<div v-if="form.description"
class="texts ql-editor"
v-html="form.description"></div>
<template v-if="form.competitionAnnexList && form.competitionAnnexList.length"> <template v-if="form.competitionAnnexList && form.competitionAnnexList.length">
<h6 class="p-title">附件下载</h6> <h6 class="p-title">附件下载</h6>
<ul class="files"> <ul class="files">
<li v-for="(item, i) in form.competitionAnnexList" <li v-for="(item, i) in form.competitionAnnexList" :key="i">
:key="i"> <el-link v-if="item.canPreview" class="m-r-10" type="primary" @click="previewFile(item)">{{ item.fileName
<el-link v-if="item.canPreview" }}</el-link>
class="m-r-10" <span v-else class="file-name">{{ item.fileName }}</span>
type="primary" <el-link type="primary" :underline="false" @click="download(item)">下载</el-link>
@click="previewFile(item)">{{ item.fileName }}</el-link>
<span v-else
class="file-name">{{ item.fileName }}</span>
<el-link type="primary"
:underline="false"
@click="download(item)">下载</el-link>
</li> </li>
</ul> </ul>
</template> </template>
<template v-if="!form.description && (!form.competitionAnnexList || !form.competitionAnnexList.length )"> <template v-if="!form.description && (!form.competitionAnnexList || !form.competitionAnnexList.length)">
<div class="empty"> <div class="empty">
<div> <div>
<img src="@/assets/img/none.png" <img src="@/assets/img/none.png" alt="">
alt="">
<p>暂无数据</p> <p>暂无数据</p>
</div> </div>
</div> </div>
</template> </template>
<template v-if="form.releaseType && form.competitionStage.length"> <template v-if="form.releaseType && form.competitionStage.length">
<div class="l-title"><img src="@/assets/img/label.png" <div class="l-title"><img src="@/assets/img/label.png" alt=""> 赛程规则与内容</div>
alt=""> 赛程规则与内容</div>
<h6 class="rule-title">{{ form.competitionStage.length }}个竞赛阶段同一个团队每个成员只能参加一个阶段赛项</h6> <h6 class="rule-title">{{ form.competitionStage.length }}个竞赛阶段同一个团队每个成员只能参加一个阶段赛项</h6>
<div v-for="(rule, i) in form.competitionStage" <div v-for="(rule, i) in form.competitionStage" :key="i" class="rule">
:key="i"
class="rule">
<p style="font-size: 16px;color: #333;">{{ rule.stageName }}</p> <p style="font-size: 16px;color: #333;">{{ rule.stageName }}</p>
<p>比赛时间{{ rule.startTime && rule.startTime + ' ~ ' + rule.endTime }}</p> <p>比赛时间{{ rule.startTime && rule.startTime + ' ~ ' + rule.endTime }}</p>
<p>比赛方式{{ methods.find(e => e.id == rule.method) && methods.find(e => e.id == rule.method).name }}</p> <p>比赛方式{{ methods.find(e => e.id == rule.method) && methods.find(e => e.id == rule.method).name }}</p>
@ -76,11 +58,11 @@
<template v-if="form.completeCompetitionSetup.competitionType"> <template v-if="form.completeCompetitionSetup.competitionType">
<p>每个团队参赛人数限制{{ rule.teamNumLimit || '不限制' }}</p> <p>每个团队参赛人数限制{{ rule.teamNumLimit || '不限制' }}</p>
<p>团队成绩计算方式{{ teamCalculationMethods.find(e => e.id == rule.teamCalculationMethod) && teamCalculationMethods.find(e => e.id == rule.teamCalculationMethod).name }}</p> <p>团队成绩计算方式{{ teamCalculationMethods.find(e => e.id == rule.teamCalculationMethod) &&
teamCalculationMethods.find(e => e.id == rule.teamCalculationMethod).name }}</p>
</template> </template>
<!-- <p v-if="rule.resultAnnouncementTime != 0">阶段比赛结束后{{ rule.resultAnnouncementTime }}小时公布阶段比赛成绩</p> --> <!-- <p v-if="rule.resultAnnouncementTime != 0">阶段比赛结束后{{ rule.resultAnnouncementTime }}小时公布阶段比赛成绩</p> -->
<div v-if="form.rule === 1" <div v-if="form.rule === 1" class="flex">
class="flex">
<p>晋级规则</p> <p>晋级规则</p>
<div> <div>
<p v-if="rule.peopleLimit">本阶段成绩排名前{{ rule.peopleLimit }}可晋级下一阶段比赛</p> <p v-if="rule.peopleLimit">本阶段成绩排名前{{ rule.peopleLimit }}可晋级下一阶段比赛</p>
@ -92,52 +74,38 @@
</template> </template>
<!-- 进展 --> <!-- 进展 -->
<div class="l-title" <div class="l-title" id="part2"><img src="@/assets/img/label.png" alt=""> 竞赛进展</div>
id="part2"><img src="@/assets/img/label.png" <ul class="progress" v-if="progress.length">
alt=""> 竞赛进展</div> <li v-for="(item, index) in progress" :key="index"
<ul class="progress"
v-if="progress.length">
<li v-for="(item,index) in progress"
:key="index"
:class="item.status == 0 ? 'not' : (item.status == 1 ? 'ing' : 'done')"> :class="item.status == 0 ? 'not' : (item.status == 1 ? 'ing' : 'done')">
<i class="dot"></i> <i class="dot"></i>
<p class="name">{{item.title}}</p> <p class="name">{{ item.title }}</p>
<p class="desc">{{item.description}}</p> <p class="desc">{{ item.description }}</p>
</li> </li>
<img class="rocket" <img class="rocket" src="@/assets/img/rocket.png" alt="">
src="@/assets/img/rocket.png"
alt="">
</ul> </ul>
<template v-else> <template v-else>
<div class="empty"> <div class="empty">
<div> <div>
<img src="@/assets/img/none.png" <img src="@/assets/img/none.png" alt="">
alt="">
<p>暂无数据</p> <p>暂无数据</p>
</div> </div>
</div> </div>
</template> </template>
<!-- 公告 --> <!-- 公告 -->
<div class="l-title" <div class="l-title" id="part3"><img src="@/assets/img/label.png" alt=""> 通知公告</div>
id="part3"><img src="@/assets/img/label.png" <ul class="notice-list" v-if="notices.length">
alt=""> 通知公告</div> <li v-for="(item, i) in notices" :key="i" @click="toNotice(item)">
<ul class="notice-list"
v-if="notices.length">
<li v-for="(item, i) in notices"
:key="i"
@click="toNotice(item)">
<h6>{{ item.announcementTitle }}</h6> <h6>{{ item.announcementTitle }}</h6>
<p class="meta">{{ item.updateTime }}</p> <p class="meta">{{ item.updateTime }}</p>
<div class="des" <div class="des" v-html="item.announcementText"></div>
v-html="item.announcementText"></div>
</li> </li>
</ul> </ul>
<template v-else> <template v-else>
<div class="empty"> <div class="empty">
<div> <div>
<img src="@/assets/img/none.png" <img src="@/assets/img/none.png" alt="">
alt="">
<p>暂无通知公告</p> <p>暂无通知公告</p>
</div> </div>
</div> </div>
@ -237,11 +205,13 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
/deep/.breadcrumb .el-breadcrumb__item .is-link { /deep/.breadcrumb .el-breadcrumb__item .is-link {
color: #007eff; color: $main-color;
} }
.match { .match {
padding-bottom: 20px; padding-bottom: 20px;
background-color: #f3f6fa; background-color: #f3f6fa;
.banner { .banner {
width: 100%; width: 100%;
height: 350px; height: 350px;
@ -250,38 +220,46 @@ export default {
background-repeat: no-repeat; background-repeat: no-repeat;
box-sizing: border-box; box-sizing: border-box;
} }
.center { .center {
width: 1000px; width: 1000px;
margin: 40px auto 0; margin: 40px auto 0;
} }
.match-inner { .match-inner {
min-height: calc(100vh - 465px); min-height: calc(100vh - 465px);
padding: 30px 40px 20px; padding: 30px 40px 20px;
background-color: #fff; background-color: #fff;
box-sizing: border-box; box-sizing: border-box;
} }
/deep/.el-tabs { /deep/.el-tabs {
.el-tabs__item.is-active, .el-tabs__item.is-active,
.el-tabs__item:hover { .el-tabs__item:hover {
color: #007eff; color: $main-color;
} }
.el-tabs__active-bar { .el-tabs__active-bar {
background-color: #007eff; background-color: $main-color;
} }
} }
.p-title { .p-title {
border-left-color: #007eff; border-left-color: $main-color;
} }
.l-title { .l-title {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 12px; margin-bottom: 12px;
font-size: 18px; font-size: 18px;
color: #333; color: #333;
img { img {
margin-right: 5px; margin-right: 5px;
} }
} }
.status { .status {
padding: 0 16px; padding: 0 16px;
margin-left: 20px; margin-left: 20px;
@ -291,19 +269,24 @@ export default {
background-color: #52c41a; background-color: #52c41a;
border-radius: 4px; border-radius: 4px;
cursor: pointer; cursor: pointer;
&.wait { &.wait {
background-color: #faad14; background-color: #faad14;
} }
&.signing { &.signing {
background-color: #007eff; background-color: $main-color;
} }
&.signed { &.signed {
background-color: #52c41a; background-color: #52c41a;
} }
&.finish { &.finish {
background-color: #ccc; background-color: #ccc;
} }
} }
.title { .title {
width: 67%; width: 67%;
margin: 0 auto; margin: 0 auto;
@ -311,47 +294,57 @@ export default {
text-align: center; text-align: center;
color: #0b1d30; color: #0b1d30;
} }
.info .meta { .info .meta {
padding: 16px 0; padding: 16px 0;
font-size: 12px; font-size: 12px;
color: #999; color: #999;
text-align: center; text-align: center;
} }
.texts { .texts {
margin-bottom: 30px; margin-bottom: 30px;
font-size: 14px; font-size: 14px;
line-height: 1.6; line-height: 1.6;
text-indent: 2em; text-indent: 2em;
overflow: hidden; overflow: hidden;
/deep/img { /deep/img {
max-width: 100%; max-width: 100%;
} }
} }
.files { .files {
margin-bottom: 30px; margin-bottom: 30px;
li { li {
display: flex; display: flex;
align-items: center; align-items: center;
margin: 10px 0; margin: 10px 0;
} }
.file-name { .file-name {
margin-right: 10px; margin-right: 10px;
font-size: 12px; font-size: 12px;
} }
} }
.el-link.el-link--primary { .el-link.el-link--primary {
color: #007eff !important; color: $main-color !important;
&:after { &:after {
border-color: #007eff; border-color: $main-color;
} }
} }
} }
.progress { .progress {
position: relative; position: relative;
width: 95%; width: 95%;
padding: 50px 0; padding: 50px 0;
margin: 40px auto 80px; margin: 40px auto 80px;
text-align: left; text-align: left;
&:before { &:before {
content: ''; content: '';
position: absolute; position: absolute;
@ -361,6 +354,7 @@ export default {
height: 100%; height: 100%;
background-color: #e1e6f2; background-color: #e1e6f2;
} }
&:after { &:after {
content: ''; content: '';
position: absolute; position: absolute;
@ -369,15 +363,18 @@ export default {
border: 8px solid transparent; border: 8px solid transparent;
border-bottom-color: #e1e6f2; border-bottom-color: #e1e6f2;
} }
.rocket { .rocket {
position: absolute; position: absolute;
bottom: -50px; bottom: -50px;
left: 425px; left: 425px;
} }
li { li {
position: relative; position: relative;
width: 400px; width: 400px;
margin-bottom: 42px; margin-bottom: 42px;
.dot { .dot {
position: absolute; position: absolute;
top: 12px; top: 12px;
@ -387,6 +384,7 @@ export default {
background-color: #dcdcdc; background-color: #dcdcdc;
border-radius: 50%; border-radius: 50%;
} }
.name { .name {
display: inline-block; display: inline-block;
padding: 0 19px; padding: 0 19px;
@ -398,21 +396,25 @@ export default {
border-radius: 20px; border-radius: 20px;
background-color: #c4c4c4; background-color: #c4c4c4;
} }
.desc { .desc {
position: relative; position: relative;
color: #333; color: #333;
font-size: 14px; font-size: 14px;
} }
&.ing, &.ing,
&.done { &.done {
.dot { .dot {
top: 8px; top: 8px;
background-color: #007eff; background-color: $main-color;
} }
.name { .name {
background-color: #007eff; background-color: $main-color;
} }
} }
&.ing { &.ing {
.dot { .dot {
width: 27px; width: 27px;
@ -420,14 +422,17 @@ export default {
border: 6px solid #e2f1fb; border: 6px solid #e2f1fb;
} }
} }
&:nth-child(odd) { &:nth-child(odd) {
text-align: right; text-align: right;
&.ing { &.ing {
.dot { .dot {
left: auto; left: auto;
right: -58px; right: -58px;
} }
} }
.name { .name {
&:before { &:before {
content: ''; content: '';
@ -441,30 +446,37 @@ export default {
border-left-color: #c4c4c4; border-left-color: #c4c4c4;
} }
} }
.desc { .desc {
text-align: right; text-align: right;
} }
&.ing, &.ing,
&.done { &.done {
.name { .name {
&:before { &:before {
border-left-color: #007eff; border-left-color: $main-color;
} }
} }
} }
} }
&:nth-child(even) { &:nth-child(even) {
margin-left: 482px; margin-left: 482px;
.dot { .dot {
left: -51px; left: -51px;
} }
&.ing { &.ing {
.dot { .dot {
left: -57px; left: -57px;
} }
} }
.name { .name {
text-align: left; text-align: left;
&:after { &:after {
content: ''; content: '';
z-index: 2; z-index: 2;
@ -477,6 +489,7 @@ export default {
border-right-color: #c4c4c4; border-right-color: #c4c4c4;
} }
} }
.desc { .desc {
&:before { &:before {
left: auto; left: auto;
@ -484,6 +497,7 @@ export default {
border: 8px solid transparent; border: 8px solid transparent;
border-left-color: #fff; border-left-color: #fff;
} }
&:after { &:after {
left: auto; left: auto;
right: -18px; right: -18px;
@ -496,18 +510,21 @@ export default {
&.done { &.done {
.name { .name {
&:after { &:after {
border-right-color: #007eff; border-right-color: $main-color;
} }
} }
} }
} }
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
} }
} }
.notice-list { .notice-list {
text-align: left; text-align: left;
li { li {
padding: 16px; padding: 16px;
margin-bottom: 12px; margin-bottom: 12px;
@ -516,23 +533,28 @@ export default {
border-radius: 6px; border-radius: 6px;
background-color: #fff; background-color: #fff;
border-bottom: 1px dashed #ebebeb; border-bottom: 1px dashed #ebebeb;
&:last-child { &:last-child {
border-bottom: 0; border-bottom: 0;
} }
} }
h6 { h6 {
font-size: 20px; font-size: 20px;
font-weight: 500; font-weight: 500;
color: #0b1d30; color: #0b1d30;
&:hover { &:hover {
color: #007eff; color: $main-color;
} }
} }
.meta { .meta {
margin: 10px 0; margin: 10px 0;
font-size: 14px; font-size: 14px;
color: #666; color: #666;
} }
.des { .des {
font-size: 14px; font-size: 14px;
color: #333; color: #333;
@ -547,29 +569,35 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
} }
.empty { .empty {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding: 50px 0; padding: 50px 0;
text-align: center; text-align: center;
img { img {
width: 471px; width: 471px;
} }
p { p {
margin-top: 40px; margin-top: 40px;
font-size: 18px; font-size: 18px;
color: rgba(0, 0, 0, 0.25); color: rgba(0, 0, 0, 0.25);
} }
} }
.rule-title { .rule-title {
margin-bottom: 10px; margin-bottom: 10px;
font-size: 16px; font-size: 16px;
} }
.rule { .rule {
padding: 15px; padding: 15px;
margin-bottom: 15px; margin-bottom: 15px;
border: 1px solid #dfdfdf; border: 1px solid #dfdfdf;
p { p {
font-size: 14px; font-size: 14px;
line-height: 30px; line-height: 30px;

@ -470,7 +470,7 @@ export default {
} }
&.active:after { &.active:after {
background-color: #9278ff; background-color: $main-color;
} }
} }
} }
@ -526,7 +526,7 @@ export default {
&.active { &.active {
font-weight: 600; font-weight: 600;
color: #9278ff; color: $main-color;
} }
} }
@ -552,7 +552,7 @@ export default {
&.active { &.active {
.name { .name {
color: #9278ff; color: $main-color;
} }
} }
} }
@ -570,7 +570,7 @@ export default {
&.active { &.active {
.el-input .el-input__inner { .el-input .el-input__inner {
color: #9278ff; color: $main-color;
} }
} }
} }
@ -691,7 +691,7 @@ export default {
.tag { .tag {
margin-right: 8px; margin-right: 8px;
color: #9278ff; color: $main-color;
background-color: #f9f9f9; background-color: #f9f9f9;
border: 0; border: 0;
} }

@ -378,7 +378,7 @@ export default {
color: #2e2d31; color: #2e2d31;
.val { .val {
color: #007eff; color: $main-color;
} }
} }
@ -443,7 +443,7 @@ export default {
} }
.entry { .entry {
background: #007eff; background: $main-color;
} }
} }
@ -474,7 +474,7 @@ export default {
} }
&.active:after { &.active:after {
background-color: #007eff; background-color: $main-color;
} }
} }
} }
@ -538,7 +538,7 @@ export default {
} }
&:hover { &:hover {
color: #007eff; color: $main-color;
background: #f6fbff; background: #f6fbff;
} }
@ -626,7 +626,7 @@ export default {
.tag { .tag {
margin-right: 8px; margin-right: 8px;
color: #007eff; color: $main-color;
background-color: #f9f9f9; background-color: #f9f9f9;
border: 0; border: 0;
} }
@ -676,7 +676,7 @@ export default {
margin: 5px 0; margin: 5px 0;
.url { .url {
color: #007eff; color: $main-color;
text-decoration: underline; text-decoration: underline;
} }
} }

@ -195,8 +195,8 @@ export default {
cursor: pointer; cursor: pointer;
&.active { &.active {
color: #007eff; color: $main-color;
border-color: #007eff; border-color: $main-color;
} }
} }
} }

@ -1332,7 +1332,7 @@ $height: 700px;
.point { .point {
font-weight: 600; font-weight: 600;
color: #9278ff; color: $main-color;
} }
.none { .none {
@ -1367,7 +1367,7 @@ $height: 700px;
&:hover { &:hover {
span { span {
color: #007eff; color: $main-color;
} }
} }

@ -2,88 +2,51 @@
<div> <div>
<div> <div>
<div class="flex-between m-b-20"> <div class="flex-between m-b-20">
<h6 class="p-title" <h6 class="p-title" style="margin-bottom: 0">教师组织架构</h6>
style="margin-bottom: 0">教师组织架构</h6> <el-button type="text" @click="addMajor" v-auth="'教师管理:新增专业'">添加</el-button>
<el-button type="text"
@click="addMajor"
v-auth="'教师管理:新增专业'">添加</el-button>
</div> </div>
<org-tree :data="orgList" <org-tree :data="orgList" show-checkbox default-expand-all ref="orgTree" node-key="id" highlight-current
show-checkbox :expand-on-click-node="false" @node-click="getSingle" @check="getCheck"
default-expand-all :props="{ children: 'children', label: 'label', isLeaf: 'leaf' }">
ref="orgTree" <span class="custom-tree-node" slot-scope="{ node, data }">
node-key="id"
highlight-current
:expand-on-click-node="false"
@node-click="getSingle"
@check="getCheck"
:props="{children: 'children', label: 'label', isLeaf: 'leaf'}">
<span class="custom-tree-node"
slot-scope="{ node, data }">
<span style="display: inline-block; margin-right: 20px">{{ node.label }}</span> <span style="display: inline-block; margin-right: 20px">{{ node.label }}</span>
<span> <span>
<el-button v-auth="'教师管理:新增专业'" <el-button v-auth="'教师管理:新增专业'" type="text" icon="el-icon-edit-outline"
type="text"
icon="el-icon-edit-outline"
@click="() => handleEdit(node, data)"> @click="() => handleEdit(node, data)">
</el-button> </el-button>
<el-button v-auth="'教师管理:编辑专业'" <el-button v-auth="'教师管理:编辑专业'" v-if="node.level === 1" type="text" icon="el-icon-circle-plus-outline"
v-if="node.level === 1"
type="text"
icon="el-icon-circle-plus-outline"
@click="() => handleAdd(node, data)"> @click="() => handleAdd(node, data)">
</el-button> </el-button>
<el-button v-auth="'教师管理:删除专业'" <el-button v-auth="'教师管理:删除专业'" type="text" icon="el-icon-delete" @click="() => handleDel(node, data)">
type="text"
icon="el-icon-delete"
@click="() => handleDel(node, data)">
</el-button> </el-button>
</span> </span>
</span> </span>
</org-tree> </org-tree>
</div> </div>
<el-dialog :title="Form.staffArchitectureId ? '编辑部门' : '新增部门'" <el-dialog :title="Form.staffArchitectureId ? '编辑部门' : '新增部门'" :visible.sync="majorVisible" width="24%" center
:visible.sync="majorVisible" @close="closeAdd" :close-on-click-modal="false">
width="24%" <el-form ref="Form" :model="Form" :rules="rules">
center
@close="closeAdd"
:close-on-click-modal="false">
<el-form ref="Form"
:model="Form"
:rules="rules">
<el-form-item prop="staffArchitectureName"> <el-form-item prop="staffArchitectureName">
<el-input placeholder="请输入部门名称" <el-input placeholder="请输入部门名称" v-model="Form.staffArchitectureName"></el-input>
v-model="Form.staffArchitectureName"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" <span slot="footer" class="dialog-footer">
class="dialog-footer">
<el-button @click="majorVisible = false"> </el-button> <el-button @click="majorVisible = false"> </el-button>
<el-button type="primary" <el-button type="primary" @click="sure('Form')"> </el-button>
@click="sure('Form')"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog :title="Form.gradeId ? '编辑部门' : '新增部门'" <el-dialog :title="Form.gradeId ? '编辑部门' : '新增部门'" :visible.sync="depVisible" width="24%" center @close="closeAdd"
:visible.sync="depVisible"
width="24%"
center
@close="closeAdd"
:close-on-click-modal="false"> :close-on-click-modal="false">
<el-form ref="Form1" <el-form ref="Form1" :model="Form" :rules="rules">
:model="Form"
:rules="rules">
<el-form-item prop="gradeName"> <el-form-item prop="gradeName">
<el-input placeholder="请输入部门名称" <el-input placeholder="请输入部门名称" v-model="Form.gradeName"></el-input>
v-model="Form.gradeName"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" <span slot="footer" class="dialog-footer">
class="dialog-footer">
<el-button @click="depVisible = false"> </el-button> <el-button @click="depVisible = false"> </el-button>
<el-button type="primary" <el-button type="primary" @click="sureDepartment('Form1')"> </el-button>
@click="sureDepartment('Form1')"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -321,7 +284,7 @@ export default {
.side_icon i { .side_icon i {
cursor: pointer; cursor: pointer;
font-size: 20px; font-size: 20px;
color: #9278ff; color: $main-color;
} }
.side_tree { .side_tree {
@ -331,7 +294,7 @@ export default {
} }
.side_tree i { .side_tree i {
color: #9278ff; color: $main-color;
margin-left: 10px; margin-left: 10px;
} }
@ -358,7 +321,7 @@ export default {
} }
.two_active { .two_active {
color: #9278ff; color: $main-color;
} }
/* .two_active:hover{ /* .two_active:hover{
@ -367,7 +330,7 @@ export default {
} */ } */
.two_back:hover { .two_back:hover {
cursor: pointer; cursor: pointer;
color: #9278ff; color: $main-color;
} }
.mar_top { .mar_top {

@ -1,6 +1,6 @@
/* 改变主题色变量 */ /* 改变主题色变量 */
$--color-primary: #9278FF; $--color-primary: #062c87;
/* 改变 icon 字体路径变量,必需 */ /* 改变 icon 字体路径变量,必需 */
$--font-path: '~element-ui/lib/theme-chalk/fonts'; $--font-path: '~element-ui/lib/theme-chalk/fonts';

@ -1,4 +1,4 @@
$main-color: #9278FF; $main-color: #062c87;
$max-width: 1440px; $max-width: 1440px;
$min-width: 1280px; $min-width: 1280px;

Loading…
Cancel
Save