school_website/ruoyi-ui/src/views/officialWebsite/practice.vue
2024-08-17 15:19:21 +08:00

1011 lines
23 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="container">
<div class="top-box">
<headers :msg='msg'></headers>
<div class="ny-banner">
<img src="../../assets/gw/dssj.png" alt="">
</div>
</div>
<!-- new -->
<div class="navigation">
<div class="content">
<div class="left"> <img src="../../assets/gw/home.png" alt="">
<p><a href="/gw">首页</a><i class="el-icon-arrow-right"></i> <span href="">实践平台</span></p>
</div>
<div class="right">
<div class="nav-item" v-for="(item, index) in nav" v-bind:class="[index === currentActive ? 'active' : '']"
@click="getCurrentActive(index)">
{{ item.categoryName }}
</div>
</div>
</div>
</div>
<div class="about-conts" v-bind:class="[currentActive == 0 || currentActive == 3 ? 'bj' : '']">
<!-- main -->
<div v-for="(item, index) in nav " :key=index>
<div class="about-conts-item1" v-if="currentActive == index">
<!-- 实践平台 -->
<div v-if="currentActive !== 0" class="list" >
<div class="item" v-for="(item, index) in teachingAchievements" :key="index" @click="toDetail(item.id)">
<div class="img">
<img :src="imgurl + item.contentImg" alt="">
</div>
<div class="tt">{{ item.contentTitle }}</div>
<div class="desc">
<div class="desc" v-html="item.summary"></div>
</div>
</div>
</div>
<!-- 通用 -->
<div class="neirong" v-html="pageContext" v-else></div>
<!-- 详情数据穿透 -->
<div class="team" v-if="currentActive == 999 && isShowDetails">
<div class="neirong" v-html="detailsContent"></div>
</div>
</div>
</div>
<div>
<page-util :page-num="pageNum" :page-size="8" :category-id="categoryId" @event-message="handleDataFromPage"/>
</div>
<!-- 实践教学资源 -->
<!-- <div class="about-conts-item1" v-if="currentActive == 0">
<div class="neirong" v-html="content"></div>
</div> -->
<!-- 专业平台介绍 -->
<!-- <div class="ayptjs" v-if="currentActive == 1">
<div class="ayptjs-list">
<div class="item" v-for="(item, index) in 8">
<div class="img">
<img src="../../assets/gw/Snipaste_2024-07-23_22-51-23.jpg" alt="">
</div>
<div class="text">
<div class="tts">人机工程仿真分析平台</div>
<div class="desc">
人机工程学是一门涉及人体测量学、工业设计、工业工程、心理学、美学等多个领域的交叉学科,其研究目的是实现不同的作业中人、机器、环境三者间的协调。即运用上述学科的知识、研究方法、评价手段,对工作器具、工作方式和工作环境的设计进行分析,并提出改造建议,使得作业在效率、安全、健康、舒适等方面的性能得以有效提高。
</div>
</div>
<div class="more">
<div class="xian"></div>
<p>查看详情</p>
</div>
</div>
</div>
</div> -->
<!-- 实践项目 -->
<!-- <div class="xjxm" v-if="currentActive == 2">
<div class="list">
<div class="item" v-for="(item, index) in 6 " :key="index">
<div class="img">
<img src="../../assets/gw/Snipaste_2024-07-23_22-51-23.jpg" alt="" class="imgWO">
</div>
<div class="tt">船舶轮机实训虚拟仿真项目</div>
<div class="desc">
项目以培养高素质轮机工程专业技术人才为目标围绕国际海事组织公约和国家海事局相关评估考核规范进行设计与开发项目运用虚拟现实增强现实智能移动端网络通讯等软硬件技术搭建了基于云服务的虚拟仿真实训教学平台,为学生提供从虚拟认知虚拟操作虚拟拆装到应急处置的综合性船舶轮机虚拟仿真实训环境本虚拟仿真实训教学软件的使用,极大地提升了学生实际动手能力,为其今后走向工作岗位打下更坚实的基础
</div>
<div class="time">2024-07-20</div>
</div>
</div>
<div class="page">
<el-pagination background layout="prev, pager, next" :total="1000" class="">
</el-pagination>
</div>
</div> -->
<!-- -->
<!-- <div class="teaching" v-if="currentActive == 3">
<div class="teaching-list">
<div class="item" v-for="(item, index) in 8">
<div class="img">
<img src="../../assets/gw/Snipaste_2024-07-23_22-51-23.jpg" alt="" class="imgWO">
</div>
<div class="tt">《基础化学实验》实验教学大纲《基础化学实验》实验教学大纲基础化学实验》实验教学大纲《基础化学实验》实验教学大纲</div>
</div>
</div>
<div class="page"><el-pagination background layout="prev, pager, next" :total="1000" class="">
</el-pagination></div>
</div> -->
</div>
<footers></footers>
</div>
</template>
<script>
import { Swiper, SwiperSlide } from "vue-awesome-swiper";
import "swiper/css/swiper.min.css";
import { getPageData, getCategoryByParentId } from "@/api/officialWebsite/getPageData";
import footers from '@/views/officialWebsite/Components/footer.vue'
import headers from '@/views/officialWebsite/Components/header.vue'
import PageUtil from '@/views/officialWebsite/Components/page'
export default {
components: {
headers,
footers,
Swiper,
SwiperSlide,
PageUtil,
},
name: 'HelloWorld',
data() {
return {
msg:9,
isShowDetails:false,
detailsContent:"",
imgurl: process.env.VUE_APP_BASE_API,
teachingAchievements: [],
teachingAchievements2: [],
teachingAchievements3: [],
pageContext: "",
categoryId: "",
pageNum: 1,
input4: "",
show_search: true,
nav: [
// { name: '实践教学资源' },
// { name: '实践平台 ' },
// { name: '实践项目' },
// { name: '自制仪器设备' },
],
currentActive: 0,
isMounted: false,
content: `<p style="box-sizing: inherit; text-align: justify; text-indent: 2em; margin-bottom: 5px; margin-top: 5px; line-height: 1.75em;">
<span style="font-family: 微软雅黑, &quot;Microsoft YaHei&quot;; font-size: 18px;">淄博瑞安输变电工程有限公司成立于2006年公司原属国网淄博供电公司下属施工企业现为山东泉舜控股集团有限公司全资子公司注册资本5000万元。公司设立于历史悠久的齐文化发祥地淄博市并在济南、青岛、聊城、东营、潍坊、济宁、泰安、李庄、邯郸等各地设有分支机构。企业人才结构合理大专以上学历及具有各种专业技术职称的近300余人是一支经过国家电网公司多年锻造、专业技术强、电力工程施工经验丰富的的铁军队伍。<br/></span>
</p>
<p style="text-indent: 2em; margin-bottom: 5px; margin-top: 5px; line-height: 1.75em;">
<span style="font-family: 微软雅黑, &quot;Microsoft YaHei&quot;; font-size: 18px;">公司主要经营范围包括:220千伏及以下电力工程总承包施工电力输配电线路架设施工变电站电气设备安装建筑物土建施工城市及道路照明工程施工高低压电气设备修试:电力技术咨询;输配变电电力线路设备巡视、维护、维修及带电作业服务;电力销售;房屋、设备、车辆租赁及新能源技术开发、技术转让、技术服务。</span>
</p>
<p style="text-indent: 2em; margin-bottom: 5px; margin-top: 5px; line-height: 1.75em;">
<span style="font-family: 微软雅黑, &quot;Microsoft YaHei&quot;; font-size: 18px;">公司秉承山东泉舜控股集团有限公司建设“泉心立业、舜势百年”的百年企业的美好愿景,坚持“专业、规范、服务、诚信、创新、实力”的经营宗旨,为广大客户提供“电保姆”式的电力全产业链服务!</span>
</p>
<p style="box-sizing: inherit; margin-top: 0px; text-align: justify; text-indent: 2em; margin-bottom: 5px; line-height: 1.75em;">
<span style="box-sizing: inherit; font-family: 微软雅黑, MicrosoftYaHei;"></span><br/>
</p>`,
routeParam : {
"categoryId": this.$route.query.id,
"pageNum": 1,
"pageSize": 10
}
}
},
mounted() {
// 页面加载完毕调用
this.initPageData();
},
computed: {
},
methods: {
showDetails(value){
this.isShowDetails = true;
this.currentActive = 999;
this.detailsContent = value.contentDetail;
},
// 触发导航
getCurrentActive(value) {
if (this.currentActive == value) {
return
}
if (value !== 0){
this.categoryId = this.nav[value].id
this.pageNum = 1
}
this.currentActive = value;
this.isShowDetails = false;
},
initPageData() {
getCategoryByParentId(this.routeParam.categoryId).then(res => {
this.nav = res.data
this.getContentDetail()
})
},
getContentDetail(){
this.routeParam.categoryId = this.nav[this.currentActive].id
getPageData(this.routeParam).then(response => {
this.pageContext = response.data.list[0].contentDetail
})
},
handleDataFromPage(data){
if (this.currentActive !== 0){
this.teachingAchievements = data
}
// if (this.currentActive === 2 || this.currentActive == 4){
// this.nav[this.currentActive].children.list = data
// }
// if (this.currentActive === 5){
// this.noticeList = data
// }
},
toDetail(id){
if (id){
this.$router.push({
name: 'details',
query:{ id: id }
});
}
}
}
}
</script>
<style scoped>
/* .container {
background: #F5F5F5;
} */
.bj {
background: #F5F5F5;
}
/* 圆形分页按钮样式 */
::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 !important;
;
/* 背景颜色 */
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;
}
.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;
}
.about-conts {
padding: 40px 0;
}
.about-conts .about-conts-item1 {
padding: 30px 2%;
width: 76%;
margin: 0 auto;
background-color: #fff;
}
.about-conts .ayptjs {
padding: 0px 0;
width: 80%;
margin: 0 auto;
}
.about-conts .ayptjs .tt {
display: flex;
justify-content: center;
font-weight: bold;
font-size: 28px;
color: #333333;
margin-bottom: 60px;
}
.about-conts .ayptjs-list {
display: flex;
flex-wrap: wrap;
}
.about-conts .ayptjs-list .item {
width: 23%;
height: 211px;
/* overflow: hidden; */
margin-right: 2%;
position: relative;
margin-bottom: 30px;
cursor: pointer;
}
.about-conts .ayptjs-list .item .img {
position: absolute;
width: 100%;
height: 211px;
z-index: 2;
top: 0;
transition: 0.5s ease;
}
.about-conts .ayptjs-list .item .img img {
width: 100%;
height: 211px;
position: absolute;
z-index: 2;
}
.about-conts .ayptjs-list .item .text {
position: absolute;
width: 94%;
height: 191px;
z-index: 3;
background: linear-gradient(180deg, rgba(0, 83, 117, 0) 0%, #005375 100%);
display: flex;
padding: 0 3%;
flex-direction: column;
justify-content: flex-end;
color: #fff;
overflow: hidden;
top: 0;
transition: 0.5s ease;
padding-bottom: 20px;
;
}
.about-conts .ayptjs-list .item .text .tts {
font-weight: bold;
font-size: 20px;
color: #FFFFFF;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
margin-bottom: 15px;
padding-bottom: 15px;
transition: 0.5s ease;
}
.about-conts .ayptjs-list .item .text .desc {
overflow: hidden;
/** 隐藏超出的内容 **/
word-break: break-all;
text-overflow: ellipsis;
/** 多行 **/
display: -webkit-box;
/** 对象作为伸缩盒子模型显示 **/
-webkit-box-orient: vertical;
/** 设置或检索伸缩盒对象的子元素的排列方式 **/
-webkit-line-clamp: 2;
/** 显示的行数 **/
line-height: 28px;
font-size: 16px;
/* display: none; */
transition: 0.5s ease;
margin-bottom: -85px;
/* padding-bottom: 20px; */
}
.about-conts .ayptjs-list .item:hover .img::after {
content: "";
position: absolute;
right: -10px;
top: 10px;
width: 100%;
height: 211px;
z-index: 1;
/* background-color: #f0f; */
filter: blur(10px);
background: rgba(0, 83, 117, 0.7);
}
.about-conts .ayptjs-list .item:hover .text .desc {
margin-bottom: 0;
}
/* .about-conts .ayptjs-list .item:hover .text {
top: -30px
}
.about-conts .ayptjs-list .item:hover .img {
top: -30px
} */
.about-conts .ayptjs-list .item .more {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
color: #005375;
font-size: 18px;
position: absolute;
bottom: -10px;
display: none;
}
.about-conts .ayptjs-list .item .more .xian {
width: 70%;
height: 1px;
/* left: 0; */
background-color: #005375;
}
.about-conts .ayptjs-list .item .more p {
width: 30%;
text-align: right
}
.list {
width: 80%;
margin: 30px auto;
display: flex;
flex-wrap: wrap;
/*justify-content: space-between;*/
margin-top: 0px;
}
.list .item {
width: 31%;
height: 432px;
margin-bottom: 30px;
position: relative;
;
}
.list .item .img {
width: 100%;
height: 19rem;
border-radius: 0px 0px 0px 0px;
overflow: hidden;
}
.list .item .img img {
height: 100%;
}
.list .item .tt {
font-weight: bold;
font-size: 20px;
color: #005375;
margin: 15px 0;
}
.list .item .desc {
overflow: hidden;
/** 隐藏超出的内容 **/
word-break: break-all;
text-overflow: ellipsis;
/** 多行 **/
display: -webkit-box;
/** 对象作为伸缩盒子模型显示 **/
-webkit-box-orient: vertical;
/** 设置或检索伸缩盒对象的子元素的排列方式 **/
-webkit-line-clamp: 2;
/** 显示的行数 **/
font-size: 18px;
color: #999999;
line-height: 24px;
}
.list .item .time {
position: absolute;
bottom: 0;
font-weight: 500;
font-size: 18px;
color: #005375;
}
.teaching {
/* padding: 40px 0; */
background: #F5F5F5;
}
.teaching .teaching-list {
/* padding: 30px 2%; */
width: 80%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
}
.teaching .teaching-list .item {
width: 31%;
height: 365px;
background-color: #fff;
margin-right: 3.2%;
margin-bottom: 30px;
position: relative;
}
.teaching .teaching-list .item:nth-child(3n) {
margin-right: 0;
}
.teaching .teaching-list .item .img {
width: 100%;
height: 288px;
overflow: hidden;
border-radius: 0px 0px 0px 0px;
}
.teaching .teaching-list .item .img img {
height: 100%;
}
.teaching .teaching-list .item .tt {
width: 85%;
margin: 20px auto;
font-weight: bold;
font-size: 20px;
color: #333333;
/* line-height: 30px; */
overflow: hidden;
/** 隐藏超出的内容 **/
word-break: break-all;
text-overflow: ellipsis;
/** 多行 **/
display: -webkit-box;
/** 对象作为伸缩盒子模型显示 **/
-webkit-box-orient: vertical;
/** 设置或检索伸缩盒对象的子元素的排列方式 **/
-webkit-line-clamp: 1;
/** 显示的行数 **/
}
.teaching .teaching-list .item .bottom {
width: 85%;
margin: 0 auto;
position: absolute;
left: 7.5%;
bottom: 30px;
display: flex;
align-items: center;
}
.teaching .teaching-list .item .bottom .btn {
width: 132px;
height: 48px;
background: #005375;
border-radius: 4px 4px 4px 4px;
display: flex;
justify-content: center;
align-items: center;
color: #FFFFFF;
font-weight: 500;
font-size: 18px;
margin-right: 50px;
}
.teaching .teaching-list .item .bottom p {
font-family: PingFang SC, PingFang SC;
font-weight: 700;
font-size: 18px;
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;
}
.list {
width: 80%;
margin: 30px auto;
display: flex;
flex-wrap: wrap;
/*justify-content: space-between;*/
margin-top: 50px;
}
.list .item {
width: 23%;
height: 220px;
margin-bottom: 30px;
position: relative;
background-color: #fff;
overflow: hidden;
cursor: pointer;
}
.list .item .img {
width: 100%;
height: 220px;
border-radius: 0px 0px 0px 0px;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
}
.list .item .img img {
width: 75%;
}
.list .item .tt {
font-size: 20px;
position: absolute;
width: 94%;
height: 94%;
font-weight: 500;
font-size: 20px;
color: #FFFFFF;
line-height: 35px;
padding: 3%;
display: flex;
justify-content: center;
align-items: center;
background: rgba(0, 83, 117, 0.9);
top: 100%;
left: 0;
transition: 0.5s ease;
}
.list .item:hover .tt {
top: 0%;
}
.desc {
overflow: hidden;
/** 隐藏超出的内容 **/
word-break: break-all;
text-overflow: ellipsis;
/** 多行 **/
display: -webkit-box;
/** 对象作为伸缩盒子模型显示 **/
-webkit-box-orient: vertical;
/** 设置或检索伸缩盒对象的子元素的排列方式 **/
-webkit-line-clamp: 2;
/** 显示的行数 **/
line-height: 28px;
font-size: 16px;
/* display: none; */
transition: 0.5s ease;
margin-bottom: -85px;
/* padding-bottom: 20px; */
}
.swiper-list {
width: 80%;
margin: 30px auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 50px;
}
.swiper-list .item {
width: 31%;
height: 432px;
margin-bottom: 30px;
position: relative;
;
}
.swiper-list .item .img {
width: 100%;
height: 287px;
border-radius: 0px 0px 0px 0px;
overflow: hidden;
}
.swiper-list .item .img img {
height: 100%;
}
.swiper-list .item .tt {
font-weight: bold;
font-size: 20px;
color: #005375;
margin: 15px 0;
}
.swiper-list .item .desc {
overflow: hidden;
/** 隐藏超出的内容 **/
word-break: break-all;
text-overflow: ellipsis;
/** 多行 **/
display: -webkit-box;
/** 对象作为伸缩盒子模型显示 **/
-webkit-box-orient: vertical;
/** 设置或检索伸缩盒对象的子元素的排列方式 **/
-webkit-line-clamp: 2;
/** 显示的行数 **/
font-size: 18px;
color: #999999;
line-height: 24px;
}
.swiper-list .item .time {
position: absolute;
bottom: 0;
font-weight: 500;
font-size: 18px;
color: #005375;
}
.equip-img {
width: 100%;
height: 19rem;
border-radius: 0px 0px 0px 0px;
overflow: hidden;
}
</style>