Branch_d40a2540
yujialong 1 year ago
parent fea0e6ff64
commit a7a979f0f4
  1. 72
      src/pages/achievement/list/index.vue
  2. 3
      src/pages/achievement/show/index.vue
  3. 63
      src/pages/match/add/set.vue
  4. 10
      src/pages/product/show/index.vue
  5. 145
      src/pages/screen/index.vue
  6. 5
      src/pages/station/preview/index.vue
  7. 2
      src/setting.js

@ -48,16 +48,12 @@
</li>
<li>
<label>课程</label>
<el-select v-model="curriculumId"
@change="curriculumChange">
<el-option label="不限"
value=""></el-option>
<el-option v-for="item in curriculumList"
:key="item.cid"
:label="item.curriculumName"
:value="item.cid">
</el-option>
</el-select>
<el-cascader v-model="mallIds"
:options="curs"
:props="{ checkStrictly: true, value: 'id' }"
popper-class="course-cas"
@expand-change="curChange"
@change="curChange"></el-cascader>
</li>
<li>
<el-input placeholder="请输入考核或项目名称"
@ -165,9 +161,12 @@ export default {
return {
classId: this.$route.query.class ? +this.$route.query.class : '',
classList: [],
curriculumId: this.$route.query.curriculum ? +this.$route.query.curriculum : '',
mallId: this.$route.query.mallId ? +this.$route.query.mallId : '',
systemId: this.$route.query.systemId ? +this.$route.query.systemId : '',
curriculumList: [],
projectPermissions: this.$route.query.per ? +this.$route.query.per : 0,
mallIds: [],
curs: [],
keyword: "",
searchTimer: null,
startingtime: "",
@ -231,20 +230,48 @@ export default {
}
},
mounted () {
this.getschoolCourse();
this.getClassData();
this.getClassData()
this.getCourse()
},
methods: {
pickerInput () {
this.month = '6'
},
getschoolCourse () { //
this.$get(this.api.schoolCourseByAchievement).then(res => {
this.curriculumList = res.data;
//
async getCourse () {
const { data } = await this.$get(this.api.getSystemIdBySchool)
const res = await this.$get(this.api.getSchoolEffectiveCourse)
if (res.data.length) {
res.data.map(e => {
e.id = e.mallId
e.label = e.curriculumName
e.children = data.filter(n => e.systemId.split(',').includes(n.id + '')) //
})
this.curs = res.data
this.mallIds = [this.mallId || res.data[0].mallId, this.systemId || data[0].id]
this.getData();
}).catch(err => {
});
console.log("🚀 ~ file: index.vue:431 ~ getSystemData ~ res.data:", this.mallIds)
}
},
//
curChange (val) {
const id = val[0]
if (val.length === 1) {
//
this.mallIds = [id, this.curs.find(e => e.id == id).children[0].id]
}
this.$router.push({
path: 'list',
query: {
...this.$route.query,
mallId: this.mallIds[0],
systemId: this.mallIds[1],
}
})
this.getData()
},
getClassData () { //
this.$post(this.api.myClass).then(res => {
this.classList = res.list;
@ -256,19 +283,20 @@ export default {
background: "rgba(255,255,255,.6)"
});
const per = this.projectPermissions
const curriculumId = this.curriculumId
const curr = this.curriculumList.find(e => e.cid == curriculumId)
const { mallIds } = this
const cur = this.curs.find(e => e.mallId == mallIds[0])
let data = {
classId: this.classId,
permissions: per,
curriculumId,
curriculumId: cur.cid,
mallId: mallIds[0],
keyWord: this.keyword,
startTime: this.startingtime,
endTime: this.endTime,
month: this.month,
pageNum: this.page,
pageSize: this.pageSize,
systemId: curr ? curr.systemId : ''
systemId: mallIds[1]
};
this.$post(this.api.getAchievementInfo, data).then(res => {
let list = []

@ -146,7 +146,8 @@
v-html="scope.row.referenceAnswer"></div>
</template>
</el-table-column>
<el-table-column prop="userAnswer"
<el-table-column v-if="!project"
prop="userAnswer"
label="学生答案">
<template slot-scope="scope">
<div v-if='scope.row.lcRuleRecords'>

@ -38,14 +38,12 @@
<div>
<p class="m-b-20">课程</p>
<div class="inline-input">
<el-select v-model="form.cid"
@change="courseChange">
<el-option v-for="item in curriculumList"
:key="item.cid"
:label="item.curriculumName"
:value="item.cid">
</el-option>
</el-select>
<el-cascader v-model="mallIds"
:options="curs"
:props="{ checkStrictly: true, value: 'id' }"
popper-class="course-cas"
@expand-change="curChange"
@change="curChange"></el-cascader>
</div>
</div>
</el-card>
@ -131,6 +129,8 @@ export default {
return {
loadIns: null,
curriculumList: [],
curs: [],
mallIds: [],
keyword: '',
projects: [],
page: 1,
@ -157,28 +157,47 @@ export default {
}
},
mounted () {
this.getCourse()
this.getSystemData()
},
methods: {
//
getCourse () {
async getSystemData () {
const { data } = await this.$get(this.api.getSystemIdBySchool)
const res = await this.$get(this.api.getSchoolEffectiveCourse)
const { mallId, cid, systemId } = this.form
if (res.data.length) {
res.data.map(e => {
e.id = e.mallId
e.label = e.curriculumName
e.children = data.filter(n => e.systemId.split(',').includes(n.id + '')) //
})
this.curs = res.data
//
const first = res.data[0]
this.mallIds = [mallId || first.mallId, systemId || data[0].id]
this.form.cid = cid || first.cid
this.sysId = systemId || first.systemId
this.loadIns = Loading.service()
this.$get(this.api.curriculumList).then(({ data }) => {
const list = data
this.curriculumList = data
if (!this.form.cid && list.length) this.form.cid = list[0].cid
this.courseChange()
}).catch(err => {
this.loadIns.close()
});
this.getProject()
}
},
//
courseChange (val) {
const { systemId } = this.curriculumList.find(e => e.cid == this.form.cid)
this.sysId = systemId
if (val) this.loadIns = Loading.service()
curChange (val) {
const id = val[0]
const item = this.curs.find(e => e.id == id)
if (val.length === 1) {
//
this.mallIds = [id, item.children[0].id]
}
this.form.mallId = id
this.form.cid = item.cid
this.sysId = this.mallIds[1]
this.loadIns = Loading.service()
this.getProject()
},
//
getProject () {
this.$post(this.api.getProjectAssessmentByCompetition, {

@ -88,7 +88,7 @@
@click="toTrail">试用体验</button>
<button v-else-if="isCourse || withLink"
class="btn entry"
@click="toStation">进入实验</button>
@click="toStation">进入{{ isDataforward ? '系统' : '实验' }}</button>
<button v-else-if="isValueModule"
class="btn entry"
@click="toSystem">进入系统</button>
@ -268,7 +268,13 @@ export default {
let id = this.form.classificationIds
if (id) return id[0] == 3
return false
}
},
//
isDataforward () {
let id = this.form.classificationIds
if (id) return id[0] == 5
return false
},
},
mounted () {
this.getData()

@ -1,7 +1,10 @@
<template>
<div class="wrap">
<!-- 全屏 -->
<img class="full" src="@/assets/img/screen/full.png" alt="" @click="fullScreen">
<img class="full"
src="@/assets/img/screen/full.png"
alt=""
@click="fullScreen">
<!--header-->
<div class="header">
<div class="bg_header">
@ -34,13 +37,18 @@
<i class="b_r_line"></i>
</div>
<div class="main_title">
<img src="@/assets/img/screen/t_1.png" alt="">
<img src="@/assets/img/screen/t_1.png"
alt="">
平台考试数据统计
</div>
<ul class="time-switch">
<li v-for="(item, i) in times" :key="i" :class="{active: item.id === time}" @click="switchTime(item.id)">{{ item.name }}</li>
<li v-for="(item, i) in times"
:key="i"
:class="{active: item.id === time}"
@click="switchTime(item.id)">{{ item.name }}</li>
</ul>
<div id="chart1" class="chart"></div>
<div id="chart1"
class="chart"></div>
</div>
<div class="item">
<div class="t_line_box">
@ -60,10 +68,12 @@
<i class="b_r_line"></i>
</div>
<div class="main_title">
<img src="@/assets/img/screen/t_2.png" alt="">
<img src="@/assets/img/screen/t_2.png"
alt="">
学生成绩分布分析
</div>
<div id="chart2" class="chart t_btn9"></div>
<div id="chart2"
class="chart t_btn9"></div>
</div>
<div class="item">
<div class="t_line_box">
@ -83,10 +93,12 @@
<i class="b_r_line"></i>
</div>
<div class="main_title">
<img src="@/assets/img/screen/t_7.png" alt="">
<img src="@/assets/img/screen/t_7.png"
alt="">
月人均在线学习时长情况
</div>
<div id="chart3" class="chart t_btn9"></div>
<div id="chart3"
class="chart t_btn9"></div>
</div>
<div class="item">
<div class="t_line_box">
@ -106,14 +118,17 @@
<i class="b_r_line"></i>
</div>
<div class="main_title">
<img src="@/assets/img/screen/t_7.png" alt="">
<img src="@/assets/img/screen/t_7.png"
alt="">
平台登录人数
</div>
<div id="chart4" class="chart t_btn9"></div>
<div id="chart4"
class="chart t_btn9"></div>
</div>
</div>
<div class="middle">
<div class="item" style="height: 620px">
<div class="item"
style="height: 620px">
<!--左上边框-->
<div class="t_line_box">
<i class="t_l_line"></i>
@ -134,8 +149,15 @@
<i class="r_b_line"></i>
<i class="b_r_line"></i>
</div>
<video class="video" ref="video" width="100%" height="100%" autoplay muted loop>
<source src="@/assets/videos/screen.mp4" type="video/mp4">
<video class="video"
ref="video"
width="100%"
height="100%"
autoplay
muted
loop>
<source src="@/assets/videos/screen.mp4"
type="video/mp4">
您的浏览器不支持 video 标签
</video>
<div class="stat-mask"></div>
@ -151,7 +173,8 @@
<p class="name">当前活跃人数</p>
</div>
</div>
<div class="item" style="height: 440px;">
<div class="item"
style="height: 440px;">
<!--左上边框-->
<div class="t_line_box">
<i class="t_l_line"></i>
@ -173,14 +196,18 @@
<i class="b_r_line"></i>
</div>
<div class="main_title">
<img src="@/assets/img/screen/t_3.png" alt="">
<img src="@/assets/img/screen/t_3.png"
alt="">
学生实验课程考核成绩趋势图
</div>
<div class="chart" id="chart5" style="height: 420px"></div>
<div class="chart"
id="chart5"
style="height: 420px"></div>
</div>
</div>
<div class="right">
<div class="item" style="height: 160px">
<div class="item"
style="height: 160px">
<!--左上边框-->
<div class="t_line_box">
<i class="t_l_line"></i>
@ -202,18 +229,23 @@
<i class="b_r_line"></i>
</div>
<div class="main_title">
<img src="@/assets/img/screen/t_4.png" alt="">
<img src="@/assets/img/screen/t_4.png"
alt="">
本月综合学习积极性最高的实验课程
</div>
<ul class="list">
<li v-for="(item, i) in courses" :key="i">
<li v-for="(item, i) in courses"
:key="i">
<span class="index">{{ i + 1 }}</span>
<p class="text">{{ item.curriculumName }}</p>
<img class="icon" src="@/assets/img/screen/medal.png" alt="">
<p class="text">{{ item.goodsName }}</p>
<img class="icon"
src="@/assets/img/screen/medal.png"
alt="">
</li>
</ul>
</div>
<div class="item" style="height: 240px">
<div class="item"
style="height: 240px">
<!--左上边框-->
<div class="t_line_box">
<i class="t_l_line"></i>
@ -235,19 +267,23 @@
<i class="b_r_line"></i>
</div>
<div class="main_title">
<img src="@/assets/img/screen/t_5.png" alt="">
<img src="@/assets/img/screen/t_5.png"
alt="">
热门理论课程排行榜
</div>
<div class="popular-wrap" ref="popularCourses">
<div class="popular-wrap"
ref="popularCourses">
<ul class="list popular">
<li v-for="(item, i) in popularCourses" :key="i">
<li v-for="(item, i) in popularCourses"
:key="i">
<span class="index">{{ i + 1 }}</span>
<p class="text">{{ item }}</p>
</li>
</ul>
</div>
</div>
<div class="item" style="height: 300px">
<div class="item"
style="height: 300px">
<div class="t_line_box">
<i class="t_l_line"></i>
<i class="l_t_line"></i>
@ -265,7 +301,8 @@
<i class="b_r_line"></i>
</div>
<div class="main_title">
<img src="@/assets/img/screen/t_7.png" alt="">
<img src="@/assets/img/screen/t_7.png"
alt="">
学霸排行榜
</div>
<div class="main_table">
@ -281,10 +318,13 @@
</thead>
</table>
</div>
<div class="main_table" ref="ach" style="max-height: 220px;margin-top: 0;overflow: hidden">
<div class="main_table"
ref="ach"
style="max-height: 222px;margin-top: 0;overflow: hidden">
<table>
<tbody>
<tr v-for="(item, i) in achs" :key="i">
<tr v-for="(item, i) in achs"
:key="i">
<td width="20%">{{ i + 1 }}</td>
<td width="20%">{{ item.userName }}</td>
<td width="20%">{{ token ? item.className : item.schoolName }}</td>
@ -295,7 +335,8 @@
</table>
</div>
</div>
<div class="item" style="height: 300px">
<div class="item"
style="height: 300px">
<div class="t_line_box">
<i class="t_l_line"></i>
<i class="l_t_line"></i>
@ -313,7 +354,8 @@
<i class="b_r_line"></i>
</div>
<div class="main_title">
<img src="@/assets/img/screen/t_7.png" alt="">
<img src="@/assets/img/screen/t_7.png"
alt="">
活跃度排行榜
</div>
<div class="main_table">
@ -327,10 +369,13 @@
</thead>
</table>
</div>
<div class="main_table" ref="active" style="max-height: 230px;margin-top: 0;overflow: hidden">
<div class="main_table"
ref="active"
style="max-height: 230px;margin-top: 0;overflow: hidden">
<table>
<tbody>
<tr v-for="(item, i) in actives" :key="i">
<tr v-for="(item, i) in actives"
:key="i">
<td width="20%">{{ i + 1 }}</td>
<td width="20%">{{ token ? item.className : item.schoolName }}</td>
<td width="20%">{{ item.activityIndex }}</td>
@ -702,30 +747,24 @@ export default {
}
]
//
const cousrseRes = this.token ?
await this.$get(this.api.schoolCourse) :
await this.$post(this.api.curriculumListForBeforeLogin, {
const cousrseRes = await this.$post(this.api.listOfGoods, {
pageNum: 1,
pageSize: 100,
supplierId: '1,2,3,4',
curriculumName: '',
categoryId: '',
curriculumType: '',
professionalCategoryId: '',
professionalId: '',
pageSize: 1000,
sort: 0,
isShelves: 0,
hotTag: 1,
})
if (cousrseRes) {
const courseList = this.token ?
cousrseRes.data :
const courseList =
cousrseRes.page.records
const ids = courseList.map(e => e.cid)
const ids = courseList.map(e => e.mallId)
times.map(e => {
e.cid = ids
e.mallId = ids
})
const courseData = {}
courseList.map(e => {
// e.curriculumName = e.curriculumName.substring(0, 10)
courseData[e.curriculumName] = []
// e.productName = e.productName.substring(0, 10)
courseData[e.productName] = []
})
this.$post(this.api.studentAssessSchievement, times).then(({ data }) => {
const times = []
@ -733,9 +772,9 @@ export default {
data.map((e, i) => {
times.push(e.time)
e.assesScoreRespList.map(n => {
const item = courseList.find(j => j.cid == n.curriculumId)
const item = courseList.find(j => j.mallId == n.mallId)
if (item) {
const name = item.curriculumName
const name = item.productName
if (courseData[name]) {
courseData[name][i] = +n.avgScore
}
@ -792,7 +831,7 @@ export default {
},
legend: {
top: '8%',
data: courseList.map(e => e.curriculumName),
data: courseList.map(e => e.productName),
textStyle: {
color: 'rgba(255,255,255,.5)',
fontSize: '12',
@ -1101,5 +1140,5 @@ export default {
</script>
<style lang="scss" scoped>
@import "../../styles/page/screen.scss";
@import '../../styles/page/screen.scss';
</style>

@ -591,7 +591,7 @@ export default {
},
//
async getProgress () {
let res = await this.$post(`${this.api.courseLearningProgress}?courseId=${this.courseId}&systemId=${this.systemIds}`);
let res = await this.$post(`${this.api.courseLearningProgress}?courseId=${this.courseId}&systemId=${this.systemIds}&mallId=${this.mallId}`);
this.progressList = res.list
if (res.list.length) this.archProject = res.list[0].projectId
this.maximumScores.length || this.getMaximumScore()
@ -907,6 +907,7 @@ export default {
this.$get(this.api.getProjectBySystemId, {
systemId: this.systemIds,
cId: this.courseId, // id
mallId: this.mallId,
permissions: 0 // 0: ,1:
}).then(({ projects }) => {
this.loading = false
@ -974,7 +975,7 @@ export default {
location.href = `${Setting.bankPath}/#/index/list?curriculumName=${this.curriculumName}&token=${token}&cid=${this.courseId}&mallId=${this.mallId}&systemId=${this.systemIds}&projectId=${this.curProject}&assessmentId=&classId=&stopTime=&test=true&manager=1`
} else if (systemId == 12) {
//
window.open(`http://120.78.139.126:8879?systemId=${systemId}&courseId=${this.courseId}&projectId=${this.curProject}&token=${token}&userId=${this.userId}&classId=1`);
window.open(`http://120.78.139.126:8879?systemId=${systemId}&courseId=${this.courseId}&projectId=${this.curProject}&token=${token}&userId=${this.userId}&classId=1&mallId=${this.mallId}`);
} else if (systemId == 21) {
window.open(`http://121.37.29.24:80/yyyflogin?userId=${this.userId}&userName=${userName}&userType=${roleId}&reqType=1&reqId=3989a0ad671849b99dcbdcc208782333&caseId=9681f86902314b10bc752909121f9ab9&authorization=87DIVy348Oxzj3ha&classId=1876&courserId=7ff5d4715b114b7398b6f26c20fac460`);
} else if (systemId == 22) {

@ -26,7 +26,7 @@ if (isPro) {
uploadURL = `http://121.37.12.51/`
host = "http://121.37.12.51/"; // 中台测试服
// host = 'https://www.occupationlab.com/' // 正式服
host = "http://192.168.31.152:9000/"; // 榕
// host = "http://192.168.31.152:9000/"; // 榕
// host = 'http://192.168.31.51:9000/'; // 赓
}

Loading…
Cancel
Save