school_website/ruoyi-ui/src/views/officialWebsite/competition.vue

695 lines
16 KiB
Vue
Raw Normal View History

2024-07-25 10:03:15 +08:00
<template>
2024-08-01 09:32:11 +08:00
<div class="container" style="background: #f6f6f6">
2024-07-25 10:03:15 +08:00
<div class="top-box">
2024-07-29 14:30:06 +08:00
<headers></headers>
2024-07-25 10:03:15 +08:00
<div class="ny-banner">
<img src="../../assets/gw/ny-banner.jpg" alt="">
</div>
</div>
<!-- new -->
<div class="navigation">
<div class="content">
<div class="left"> <img src="../../assets/gw/home.png" alt="">
2024-07-29 16:39:28 +08:00
<p><a href="/gw">首页</a><i class="el-icon-arrow-right"></i> <span href="">大赛风采</span></p>
2024-07-25 10:03:15 +08:00
</div>
<div class="right">
<div class="nav-item" v-for="(item, index) in nav" v-bind:class="[index === currentActive ? 'active' : '']"
@click="getCurrentActive(index)">
2024-07-29 19:00:42 +08:00
{{ item.categoryName }}
2024-07-25 10:03:15 +08:00
</div>
</div>
</div>
</div>
<div class="committee-cont">
2024-08-01 09:32:11 +08:00
<div class="tabber-box " v-if="currentActive == 3" >
<div class="titel_">赛区参赛报名表本科组</div>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="180px" class="demo-ruleForm">
<div style="display: flex;">
<el-form-item label="所属赛区" prop="name">
<el-input style="width: 300px" v-model="ruleForm.name"></el-input>
</el-form-item>
<el-form-item label="学校及院系名称" prop="name">
<el-input style="width: 300px" v-model="ruleForm.name"></el-input>
</el-form-item>
<el-form-item label="参赛团队名称" prop="name">
<el-input style="width: 300px" v-model="ruleForm.name"></el-input>
</el-form-item>
</div>
<div style="width: 100%;display: flex;align-items: center;justify-content: space-between;padding: 4px 10px">
<div style="font-size: 16px;font-weight: bold">
教师信息
</div>
<el-button type="primary" icon="el-icon-plus">新增</el-button>
</div>
<div class="kuang" v-for="(item, index) in ruleForm.teacherlsit" :key="index" >
<div class="d-s">
<el-form-item label="领队教师姓名" prop="name">
<el-input v-model="item.name" style="width: 260px"></el-input>
</el-form-item>
<el-form-item label="领队教师职务" prop="name">
<el-input v-model="item.duties" style="width: 260px"></el-input>
</el-form-item>
<el-form-item label="领队教师手机" prop="name">
<el-input v-model="item.tel" style="width: 260px"></el-input>
</el-form-item>
</div>
<div class="d-s">
<el-form-item label="领队教师E-mail" prop="name">
<el-input v-model="item.Email" style="width: 260px"></el-input>
</el-form-item>
<el-form-item label="领队教师所在系及专业" prop="name">
<el-input v-model="item.details" style="width: 260px"></el-input>
</el-form-item>
</div>
</div>
<div style="width: 100%;display: flex;align-items: center;justify-content: space-between;padding: 4px 10px">
<div style="font-size: 16px;font-weight: bold">
参赛队员信息
</div>
<el-button type="primary" icon="el-icon-plus">新增</el-button>
</div>
<div class="kuang" v-for="(item, index) in ruleForm.studentlist" :key="index" >
<div class="d-s">
<el-form-item label="参赛队员姓名" prop="name">
<el-input v-model="item.name" style="width: 260px"></el-input>
</el-form-item>
<el-form-item label="参赛队员性别" prop="name">
<el-input v-model="item.duties" style="width: 260px"></el-input>
</el-form-item>
<el-form-item label="参赛队员手机号" prop="name">
<el-input v-model="item.tel" style="width: 260px"></el-input>
</el-form-item>
</div>
<div class="d-s">
<el-form-item label="参赛队员专业" prop="name">
<el-input v-model="item.details" style="width: 260px"></el-input>
</el-form-item>
</div>
</div>
<div style="width: 100%;display: flex;align-items: center;justify-content: space-between;padding: 4px 10px">
<div style="font-size: 16px;font-weight: bold">
盲样邮寄地址
</div>
</div>
<div class="d-s">
<el-form-item label="盲样收件人及联系电话" prop="name">
<el-input style="width: 300px" v-model="ruleForm.name"></el-input>
</el-form-item>
<el-form-item label="邮寄地址" prop="name">
<el-input style="width: 300px" v-model="ruleForm.name"></el-input>
</el-form-item>
</div>
</el-form>
<div style="display: flex;justify-content: center">
<el-button type="primary" >确认提交</el-button>
</div>
</div>
2024-07-29 19:00:42 +08:00
<!-- main -->
<div v-for="(item, index) in nav " :key=index>
<div class="about-conts-item1" v-if="currentActive == index">
2024-08-02 16:14:37 +08:00
<div v-if="currentActive != 3 && currentActive != 2 " class="neirong" v-html="pageContextList[index]"></div>
<div class="wrapbox">
<div v-if="currentActive == 2 " v-for="(item,index) in nav[2].children.list">
<img :src=" imgurl + item.contentImg" style="width: 255px;height: 220px">
<div>{{item.contentTitle}}</div>
</div>
</div>
2024-07-29 19:00:42 +08:00
</div>
</div>
<!-- <div class="news">
2024-07-25 10:03:15 +08:00
<div class="news-list">
<div class="item" v-for="(item, index) in 8">
<div class="tts">
关于开展第二届跨专业虚拟仿真综合实习的通知关于开展第二届跨专业虚拟仿真综合实习的通知关于开展第二届跨专业虚拟仿真综合实习的通知关于开展第二届跨专业虚拟仿真综合实习的通知关于开展第二届跨专业虚拟仿真综合实习的通知
</div>
<div class="time">2024-05-20</div>
</div>
</div>
<div class="page">
<el-pagination background layout="prev, pager, next" :total="1000" class="">
</el-pagination>
</div>
2024-07-29 19:00:42 +08:00
</div> -->
2024-07-25 10:03:15 +08:00
</div>
2024-07-29 14:30:06 +08:00
<footers></footers>
2024-07-25 10:03:15 +08:00
</div>
</template>
<script>
import { Swiper, SwiperSlide } from "vue-awesome-swiper";
import "swiper/css/swiper.min.css";
2024-07-29 19:00:42 +08:00
import { getPageData, getPageColumn } from "@/api/officialWebsite/getPageData";
2024-07-29 14:30:06 +08:00
import footers from '@/views/officialWebsite/Components/footer.vue'
import headers from '@/views/officialWebsite/Components/header.vue'
2024-07-25 10:03:15 +08:00
export default {
components: {
2024-07-29 14:30:06 +08:00
headers,
footers,
2024-07-25 10:03:15 +08:00
Swiper,
SwiperSlide,
},
name: 'HelloWorld',
props: {
msg: String
},
data() {
return {
2024-08-02 16:14:37 +08:00
imgurl:process.env.VUE_APP_BASE_API,
2024-08-01 09:32:11 +08:00
ruleForm: {
2024-08-02 16:14:37 +08:00
2024-08-01 09:32:11 +08:00
name: '',
teacherlsit:[
{}
],
studentlist:[
{}
]
},
rules: {
name: [
{ required: true, message: '请输入活动名称', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
],
},
2024-07-29 19:00:42 +08:00
pageContextList: [],
2024-07-25 10:03:15 +08:00
nav: [
2024-07-29 19:00:42 +08:00
// { name: '大赛信息' },
// { name: '比赛通知' },
// { name: '报名信息' },
// { name: '获奖信息' },
// { name: '赛事风采' },
2024-07-25 10:03:15 +08:00
],
2024-08-02 16:14:37 +08:00
currentActive: 0,
2024-07-25 10:03:15 +08:00
isMounted: false,
input4: ""
}
},
2024-07-29 19:00:42 +08:00
mounted() {
// 页面加载完毕调用
this.initPageData();
},
2024-07-25 10:03:15 +08:00
computed: {
},
methods: {
// 触发导航
getCurrentActive(value) {
if (this.currentActive == value) {
return
}
this.currentActive = value
2024-08-02 16:14:37 +08:00
console.log(this.nav[2].children.list,'nav' )
2024-07-29 19:00:42 +08:00
},
initPageData() {
let routeParam = {
"categoryId": this.$route.query.id,
"pageNum": 1,
"pageSize": 10
}
getPageColumn(routeParam).then(response => {
response.data.forEach(cloumnItem => {
this.nav.push(cloumnItem);
let context = "";
cloumnItem.children.list.forEach(element => {
context += element.contentDetail;
});
this.pageContextList.push(context);
2024-08-02 16:14:37 +08:00
2024-07-29 19:00:42 +08:00
// cloumnItem.categoryName
});
});
2024-08-02 16:14:37 +08:00
2024-07-29 19:00:42 +08:00
},
2024-07-25 10:03:15 +08:00
}
}
</script>
2024-08-02 16:14:37 +08:00
<style scoped lang="scss">
2024-07-25 10:03:15 +08:00
/* .container {
background: #F5F5F5;
} */
.bj {
background: #F5F5F5;
}
::v-deep .team .el-input__inner {
width: 240px;
border-radius: 50px;
}
/* 圆形分页按钮样式 */
::v-deep .el-pagination .el-pager li:not(.disabled) {
border-radius: 100%;
/* 圆形 */
width: 50px;
height: 50px;
/* 按钮高度 */
line-height: 50px;
/* 文字垂直居中 */
text-align: center;
/* 文字水平居中 */
margin: 0 15px;
/* 按钮间距 */
border-radius: 50%;
width: 50px;
height: 50px;
background: #FFFFFF;
border: 1px solid #DDDDDD;
}
/* 选中的页码按钮样式 */
::v-deep .el-pagination .el-pager .active {
background-color: #005375;
;
/* 背景颜色 */
color: #fff;
/* 文字颜色 */
}
::v-deep .el-pagination.is-background .btn-next,
::v-deep .el-pagination.is-background .btn-prev {
background-color: #f4f4f5;
color: #333;
margin: 0 15px;
border-radius: 50%;
width: 50px;
height: 50px;
background: #FFFFFF;
border: 1px solid #DDDDDD;
}
::v-deep .el-pagination .btn-next .el-icon,
::v-deep .el-pagination .btn-prev .el-icon {
font-size: 18px;
}
.top-box {
width: 100%;
/* height: 1000px; */
/* background: url(''); */
/* background-size: cover; */
/* 背景图片铺满盒子 */
/* background-repeat: no-repeat; */
/* 禁止背景图片重复 */
position: relative;
}
.tab-box {
width: 100%;
box-sizing: border-box;
padding: 20px 2%;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
background-color: #005375;
font-weight: bold;
font-size: 18px;
color: #FFFFFF;
/* position: absolute; */
z-index: 3;
}
.d-s {
display: flex;
align-items: center;
}
.logo-box {
width: 50px;
height: 50px;
background: #fff;
}
.logo-size {
font-weight: 800;
font-size: 24px;
color: #FFFFFF;
margin-left: 20px;
}
.x-x {
margin-right: 20px;
cursor: pointer;
}
2024-08-02 16:14:37 +08:00
.wrapbox{
width: 100%;
2024-07-25 10:03:15 +08:00
2024-08-02 16:14:37 +08:00
display: flex;
flex-wrap: wrap;
box-sizing: border-box;
padding: 15px;
}
2024-07-25 10:03:15 +08:00
.ny-banner {
width: 100%;
}
.ny-banner img {
width: 100%;
}
.navigation {
width: 100%;
height: 60px;
background: #FFFFFF;
border-radius: 0px 0px 0px 0px;
border-bottom: 1px solid #EEEEEE;
}
.navigation .content {
width: 80%;
margin: 0 auto;
height: 60px;
display: flex;
justify-content: space-between;
align-items: center
}
.navigation .content .left {
width: 30%;
display: flex;
align-items: center
}
.navigation img {
width: 15px;
margin-right: 10px;
}
.navigation p {
/* margin-top: 5px; */
color: #999;
}
.navigation span {
color: #999;
}
.navigation span:last-child {
font-weight: 700;
color: #005375;
}
.navigation .content .right {
width: 70%;
display: flex;
justify-content: flex-end;
align-items: center
}
.navigation .content .right .nav-item {
width: 200px;
display: flex;
height: 60px;
justify-content: center;
align-items: center;
font-size: 20px;
cursor: pointer;
font-weight: 500;
border-bottom: 3px solid transparent;
}
.navigation .content .right .active {
border-bottom: 3px solid #005375;
color: #005375;
font-weight: bold;
}
2024-07-30 11:07:46 +08:00
.page-box{
width: 82%;
margin: 10px auto;
}
2024-07-25 10:03:15 +08:00
.committee-cont {
2024-07-30 11:07:46 +08:00
width: 80%;
2024-08-01 09:32:11 +08:00
margin: 40px auto;
background: #fff;
border-radius: 8px;
2024-08-02 16:14:37 +08:00
overflow: hidden;
box-sizing: border-box;
padding: 15px;
img{
width: 100%;
}
2024-07-25 10:03:15 +08:00
}
.committee-cont .news {
width: 80%;
margin: 0 auto;
margin-top: 30px;
}
.committee-cont .news .news-list .item {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 30px;
margin-bottom: 30px;
cursor: pointer;
border-bottom: 1px solid #EEEEEE;
}
.committee-cont .news .news-list .item .tts {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
width: 80%;
font-size: 20px;
color: #333333;
font-weight: 500;
}
.committee-cont .news .news-list .item .time {
color: #999999;
font-size: 14px;
}
.committee-cont .team {
width: 80%;
margin: 0 auto;
margin-top: 30px;
}
.committee-cont .team .team-list {
border: 1px solid #EEEEEE;
margin-top: 30px;
}
.committee-cont .team .team-list .team-list-header {
display: flex;
height: 50px;
align-items: center;
background: #F2F3F5;
}
.committee-cont .team .team-list .team-list-header .div {
width: 20%;
height: 50px;
display: flex;
align-items: center;
padding-left: 2%;
border-right: 1px solid #EEEEEE;
font-size: 16px;
font-weight: bold;
}
.committee-cont .team .team-list .team-list-header .div:last-child {
width: 8%;
}
.committee-cont .team .team-list .item {
display: flex;
height: 50px;
align-items: center;
}
.committee-cont .team .team-list .item .div {
width: 20%;
height: 50px;
display: flex;
align-items: center;
padding-left: 2%;
border-right: 1px solid #EEEEEE;
font-size: 16px;
}
.committee-cont .team .team-list .item .div:last-child {
width: 8%;
color: #005375;
}
.index-footer {
background: #383838;
padding-top: 30px;
}
.index-footer .footer {
width: 80%;
margin: 0 auto;
}
.index-footer .footer .logo {
display: flex;
justify-content: space-between;
/* align-items: center; */
}
.index-footer .footer .logo .footer-contact {}
.index-footer .footer .logo .footer-contact .p {
display: inline-block;
display: flex;
float: left;
margin-left: 50px;
align-items: center;
color: rgba(255, 255, 255, 0.7);
font-size: 16px;
/* justify-content: flex-end; */
}
.index-footer .footer .logo .footer-contact .p img {
margin-right: 10px;
}
.index-footer .footer .logo .footer-contact .p:nth-child(3) {
width: 100%;
clear: both;
margin-top: 20px;
}
.index-footer .footer .footer-nav {
display: flex;
margin-top: 20px;
padding-top: 30px;
border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.index-footer .footer .footer-nav .footer-nav-item {
width: 9%;
margin-right: 1%;
}
.index-footer .footer .footer-nav .footer-nav-item:last-child {
margin-right: 0;
}
.index-footer .footer .footer-nav .footer-nav-item .tt {
font-weight: 500;
font-size: 18px;
color: rgba(255, 255, 255, 0.7);
line-height: 18px;
position: relative;
padding-bottom: 20px;
margin-bottom: 20px;
}
.index-footer .footer .footer-nav .footer-nav-item .tt::after {
content: "";
width: 20px;
height: 2px;
background: #005375;
border-radius: 0px 0px 0px 0px;
position: absolute;
bottom: 0;
left: 0;
}
.index-footer .footer .footer-nav .footer-nav-item a {
text-decoration: none;
font-weight: 500;
font-size: 16px;
color: rgba(255, 255, 255, 0.4);
line-height: 16px;
display: block;
margin-bottom: 15px;
}
.index-footer .footer .footer-nav .footer-nav-item a:last-child {
margin-bottom: 0;
}
.index-footer .footer .web_icp {
display: flex;
margin-top: 50px;
height: 80px;
align-items: center;
justify-content: space-between;
border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.index-footer .footer .web_icp a {
text-decoration: none;
font-weight: 500;
font-size: 16px;
color: rgba(255, 255, 255, 0.4);
line-height: 16px;
margin-right: 30px;
}
.index-footer .footer .web_icp .right {
display: flex;
align-items: center;
justify-content: flex-end
}
.index-footer .footer .web_icp .right div {
margin-right: 25px;
font-weight: 500;
font-size: 18px;
color: rgba(255, 255, 255, 0.7);
line-height: 18px;
}
2024-08-01 09:32:11 +08:00
.tabber-box{
width: 100%;
box-sizing: border-box;
padding: 15px;
}
.titel_{
font-weight: bold;
font-size: 28px;
color: #333333;
text-align: center;
margin-bottom: 25px;
}
.kuang{
border: 1px solid #ccc;
border-radius: 8px;
box-sizing: border-box;
padding: 15px;
margin: 15px auto;
}
2024-07-25 10:03:15 +08:00
</style>