dev_202412
yujialong 11 months ago
parent 0a9fcf47f3
commit 1b38df77d2
  1. 12
      public/index.html
  2. 4
      src/components/menuTree/index.vue
  3. 2
      src/pages/activity/manage/list/index.vue
  4. 1
      src/pages/course/details/index.vue
  5. 6
      src/pages/course/list/index.vue
  6. 140
      src/pages/info/details/index.vue
  7. 4
      src/pages/match/details/index.vue
  8. 6
      src/pages/station/list/index.vue
  9. 6
      src/pages/station/preview/index.vue
  10. 17
      src/store/modules/course.js

@ -3,21 +3,21 @@
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="keywords" content="智信云,教学,教育,在线编程" /> <meta name="keywords" content="职站,教学,教育,在线编程" />
<meta <meta
name="description" name="description"
content="智信云是一家为高等院校提供实验课程数字化服务的国家级高新技术企业。以区块链、大数据、人工智能等前沿技术在行业领域的运用为支撑,将新技术与经济与管理人才培养深度融合,面向全国高等院校的经济、金融、大数据应用等相关专业提供科研创新、金课建设、实验实训教学软件、实践教学以及学生就业培训为一体的专业建设咨询与技术支持服务。" content="职站是一款辅助院校教师开展虚拟仿真实验教学的智能云实践平台。平台采用了大数据,云计算等技术,为学校搭建信息化平台提供了基础,可助力院校实现教学智能化升级。职站平台设计遵循着极简、高效的理念,可帮助老师轻松开展实验教学,并支持自定义发布考核和练习,智能统计和检验学生的日常实训练习效果;老师还可以通过可视化图表报告直观查看学生实训成绩,评估教学成果。"
/> />
<meta name="baidu-site-verification" content="code-TRfXe8xIkJ" /> <meta name="baidu-site-verification" content="code-TRfXe8xIkJ" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <!-- <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> -->
<!-- <meta name="viewport" content="width=device-width, user-scalable=yes, shrink-to-fit=no" /> --> <meta name="viewport" content="width=device-width, user-scalable=yes, shrink-to-fit=no" />
<link rel="stylesheet" href="//at.alicdn.com/t/font_830376_qzecyukz0s.css" /> <link rel="stylesheet" href="//at.alicdn.com/t/font_830376_qzecyukz0s.css" />
<title></title> <title>职站——为院校打造一站式虚拟仿真实训教学数智云平台</title>
<script> <script>
var _hmt = _hmt || []; var _hmt = _hmt || [];
(function () { (function () {
var hm = document.createElement('script'); var hm = document.createElement('script');
hm.src = 'https://hm.baidu.com/hm.js?e4d7deeca2d6ea71d2bd5fa2365bc654'; hm.src = 'https://hm.baidu.com/hm.js?72fbad6ebf1d6c705117fe8fe0686a0e';
var s = document.getElementsByTagName('script')[0]; var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(hm, s); s.parentNode.insertBefore(hm, s);
})(); })();

@ -2,7 +2,7 @@
<div> <div>
<template v-for="(item, i) in this.menuList"> <template v-for="(item, i) in this.menuList">
<el-submenu :key="item.id" <el-submenu :key="item.id"
:index="item.id" :index="item.id.toString()"
v-if="item.children && item.children.length"> v-if="item.children && item.children.length">
<template slot="title"> <template slot="title">
<span slot="title">{{item.name}}</span> <span slot="title">{{item.name}}</span>
@ -10,7 +10,7 @@
<menuTree :menuList="item.children"></menuTree> <menuTree :menuList="item.children"></menuTree>
</el-submenu> </el-submenu>
<el-menu-item :key="i" <el-menu-item :key="i"
:index="item.id" :index="item.id.toString()"
v-else> v-else>
<span slot="title">{{item.name}}</span> <span slot="title">{{item.name}}</span>
</el-menu-item> </el-menu-item>

@ -365,7 +365,7 @@ export default {
}, },
handleCurrentChange (val) { handleCurrentChange (val) {
this.page = val; this.page = val;
this.$router.push(`list?page=${val}`) this.$router.push(`manage?page=${val}`)
this.getData() this.getData()
this.setPage(val) this.setPage(val)
}, },

@ -153,6 +153,7 @@ export default {
player: null, player: null,
previewImg: '', previewImg: '',
iframeSrc: '', iframeSrc: '',
videoSrc: '',
isWord: false, isWord: false,
isPPT: false, isPPT: false,
isExcel: false, isExcel: false,

@ -97,6 +97,7 @@
import { Loading } from "element-ui"; import { Loading } from "element-ui";
import Setting from "@/setting"; import Setting from "@/setting";
import util from "@/libs/util" import util from "@/libs/util"
import qs from 'qs'
export default { export default {
name: "course", name: "course",
data () { data () {
@ -194,10 +195,6 @@ export default {
getData () { getData () {
this.loadIns = Loading.service() this.loadIns = Loading.service()
this.getList() this.getList()
// if (!Setting.isDev) {
// clearInterval(this.timer)
// this.timer = setInterval(this.getRedis, 1000)
// }
}, },
initData () { initData () {
this.page = 1; this.page = 1;
@ -244,6 +241,7 @@ export default {
}).catch(res => { }) }).catch(res => { })
}, },
toDetail (id) { toDetail (id) {
this.$store.commit('course/setReferrer', `${this.$route.path}?${qs.stringify(this.form)}&keyword=${this.keyword}&page=${this.page}`)
this.$router.push(`/${this.isTourist ? 'preCourse' : 'course'}/details?id=${id}&source=${this.active}`); this.$router.push(`/${this.isTourist ? 'preCourse' : 'course'}/details?id=${id}&source=${this.active}`);
} }
} }

@ -1,22 +1,26 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<breadcrumb ref="breadcrumb" data="资讯" :query="breadcrumbQuery"></breadcrumb> <breadcrumb ref="breadcrumb"
<div class="page"> data="资讯"
<h6 class="title">{{title}}</h6> :query="breadcrumbQuery"></breadcrumb>
<div class="metas"> <div class="page">
<span>作者 {{author}}</span> <h6 class="title">{{title}}</h6>
<el-divider direction="vertical"></el-divider> <div class="metas">
<span>{{date.replace(' 00:00:00','')}}</span> <span>作者 {{author}}</span>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<span>浏览量{{viewCount}}</span> <span>{{date.replace(' 00:00:00','')}}</span>
</div> <el-divider direction="vertical"></el-divider>
<span>浏览量{{viewCount}}</span>
</div>
<div class="cover"> <div class="cover">
<img :src="coverUrl" alt=""> <img :src="coverUrl"
</div> alt="">
<div class="content ql-editor" v-html="content"></div> </div>
</div> <div class="content ql-editor"
v-html="content"></div>
</div> </div>
</div>
</template> </template>
<script> <script>
import { Loading } from 'element-ui'; import { Loading } from 'element-ui';
@ -25,75 +29,75 @@ import 'quill/dist/quill.snow.css';
import 'quill/dist/quill.bubble.css'; import 'quill/dist/quill.bubble.css';
import breadcrumb from '@/components/breadcrumb' import breadcrumb from '@/components/breadcrumb'
export default { export default {
data() { data () {
return { return {
columnNames: this.$route.query.columnNames, columnNames: this.$route.query.columnNames,
breadcrumbQuery: { breadcrumbQuery: {
parentId: this.$route.query.parentId, parentId: this.$route.query.parentId,
name: this.$route.query.name name: this.$route.query.name
}, },
id: this.$route.query.id, id: this.$route.query.id,
coverUrl: '', coverUrl: '',
author: '', author: '',
date: '', date: '',
title: '', title: '',
content: '', content: '',
viewCount: 0, viewCount: 0,
loadIns: null loadIns: null
}
},
components: {
breadcrumb
},
mounted() {
this.getData()
},
methods: {
getData() {
this.loadIns = Loading.service()
this.$get(`${this.api.getArticle}?articleId=${this.id}`)
.then(res => {
let data = res.article
this.coverUrl = data.coverUrl
this.author = data.author
this.date = data.date
this.title = data.title
this.content = data.content
this.viewCount = data.viewCount
this.$forceUpdate()
this.$refs.breadcrumb.update(`最新资讯/${this.$route.query.name}/${this.columnNames.split(',').join('/')}/${this.title}`)
this.loadIns.close()
})
.catch(err => {
this.loadIns.close()
});
},
} }
},
components: {
breadcrumb
},
mounted () {
this.getData()
},
methods: {
getData () {
this.loadIns = Loading.service()
this.$get(`${this.api.getArticle}?articleId=${this.id}`)
.then(res => {
let data = res.article
this.coverUrl = data.coverUrl
this.author = data.author
this.date = data.date
this.title = data.title
this.content = data.content
this.viewCount = data.viewCount
this.$forceUpdate()
this.$refs.breadcrumb.update(`最新资讯/${this.$route.query.name}/${this.columnNames.split(',').join('/')}/${this.title}`)
this.loadIns.close()
})
.catch(err => {
this.loadIns.close()
});
},
}
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrap { .wrap {
padding-bottom: 20px; padding-bottom: 20px;
.title{ .title {
margin-top: 30px; margin-top: 30px;
text-align: center; text-align: center;
font-size: 28px; font-size: 28px;
font-weight: 500; font-weight: 500;
color: #0B1D30; color: #0b1d30;
} }
.metas{ .metas {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding-bottom: 32px; padding-bottom: 32px;
margin: 16px 0 32px; margin: 16px 0 32px;
span{ span {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
color: #999; color: #999;
font-size: 12px; font-size: 12px;
img{ img {
width: 18px; width: 18px;
margin-right: 5px; margin-right: 5px;
} }
@ -102,19 +106,19 @@ export default {
margin: 0 16px; margin: 0 16px;
} }
} }
.cover{ .cover {
margin: 20px 0; margin: 20px 0;
text-align: center; text-align: center;
img{ img {
width: 800px; width: 800px;
} }
} }
.content{ .content {
padding: 0 150px; padding: 0 150px;
line-height: 1.8; line-height: 1.8;
font-size: 16px; font-size: 16px;
text-indent: 2em; text-indent: 2em;
/deep/img{ /deep/img {
display: block; display: block;
width: 600px; width: 600px;
margin-left: auto; margin-left: auto;

@ -1055,9 +1055,7 @@ export default {
this.form.competitionStage && this.form.competitionStage.map(e => { this.form.competitionStage && this.form.competitionStage.map(e => {
// 00 // 00
const time = e.resultAnnouncementTime const time = e.resultAnnouncementTime
if (time === 0) { if (time >= 0) {
info.stages.find(n => n.stageId == e.stageId).showDetail = 1
} else if (time) {
const endTime = new Date(e.endTime).getTime() + time * 3600000 // + const endTime = new Date(e.endTime).getTime() + time * 3600000 // +
console.log("🚀 ~ this.$post ~ endTime:", time, endTime - now) console.log("🚀 ~ this.$post ~ endTime:", time, endTime - now)
if (now > endTime) { // if (now > endTime) { //

@ -63,8 +63,8 @@ export default {
return { return {
isZj: location.host === '10.60.32.76', // isZj: location.host === '10.60.32.76', //
isSq: Setting.isSq, isSq: Setting.isSq,
keyword: "", keyword: this.$route.query.keyword || '',
active: 0, active: +this.$route.query.active || 0,
tabs: [ tabs: [
{ {
id: 0, id: 0,
@ -95,7 +95,7 @@ export default {
}).catch(err => { }) }).catch(err => { })
}, },
goPreview (item) { goPreview (item) {
this.$router.push(`/station/preview?courseId=${item.cid}&curriculumName=${item.goodsName}&mallId=${item.mallId || ''}`); this.$router.push(`/station/preview?courseId=${item.cid}&curriculumName=${item.goodsName}&mallId=${item.mallId || ''}&keyword=${this.keyword}&active=${this.active}`);
}, },
// tab // tab
tabChange (item) { tabChange (item) {

@ -1,7 +1,11 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<breadcrumb ref="breadcrumb" <breadcrumb ref="breadcrumb"
:data="'实验台/' + (curriculumName || courseName)"></breadcrumb> :data="'实验台/' + (curriculumName || courseName)"
:query="{
keyword: this.$route.query.keyword || '',
active: this.$route.query.active || 0,
}"></breadcrumb>
<div class="flex"> <div class="flex">
<div class="cover" <div class="cover"
:class="{'is-word': showMask1}"> :class="{'is-word': showMask1}">

@ -0,0 +1,17 @@
/**
* 课程相关
* */
export default {
namespaced: true,
state: {
referrer: '',
},
mutations: {
setReferrer: (state, val) => {
state.referrer = val
},
},
actions: {
}
};
Loading…
Cancel
Save