Compare commits

...

33 Commits

Author SHA1 Message Date
a96f53cd0d feat: 右侧菜单高度调整为 650 2025-09-09 17:19:42 +08:00
2a124e78a9 feat: 溢出控制高度的代码, 防止内容塌陷 2025-09-09 17:19:41 +08:00
f6e99a1657 feat: 溢出控制高度的代码, 防止内容塌陷 2025-09-09 17:19:40 +08:00
67f7e9e70d fix: 修复火狐报错的问题
去除冗余的接口请求
2025-08-14 13:37:41 +08:00
joshen
029d5b0791 修复1181案例不显示案主信息 2025-08-05 15:26:27 +08:00
joshen
12a6ed8fea Merge remote-tracking branch '104/master-0626' into master-0626 2025-08-05 14:30:02 +08:00
joshen
363492866f 修复1181案例不显示案主信息 2025-08-05 14:29:24 +08:00
joshen
d237dc99ee 修改弹框可见 2025-07-25 21:01:58 +08:00
joshen
995933ae56 Merge remote-tracking branch '104-git/master-0626' into master-0626 2025-07-25 20:53:15 +08:00
joshen
dff81df91d 修改弹框可见 2025-07-25 20:52:43 +08:00
670788339
0864704c4c 仅内网可见-管理员端 调试 2025-07-23 17:53:43 +08:00
670788339
58fc6264fe 仅内网可见-管理员端 调试 2025-07-23 17:45:30 +08:00
670788339
5276813eba 仅内网可见-管理员端 调试 2025-07-23 17:28:36 +08:00
670788339
3485435c9e 仅内网可见-管理员端 调试 2025-07-23 17:24:51 +08:00
670788339
2ee3daedf6 仅内网可见-管理员端 调试 2025-07-23 17:10:19 +08:00
joshen
5d0d64abbf 修改背景颜色 2025-07-23 16:49:08 +08:00
joshen
ea97aee4af 修复评分会点错 2025-07-23 15:07:30 +08:00
joshen
a968062936 修复视频进度条拖动 2025-07-23 14:40:06 +08:00
joshen
6d11475456 修改边界颜色 2025-07-23 13:45:38 +08:00
joshen
a7396e0a6a 修改边界颜色 2025-07-23 13:37:42 +08:00
670788339
ac236e8d7c 仅内网可见-管理员端 调试 2025-07-21 21:17:18 +08:00
670788339
f537608e4f 仅内网可见-管理员端 调试 2025-07-21 21:10:41 +08:00
670788339
c7f4a224ff 仅内网可见-管理员端 调试 2025-07-21 20:59:06 +08:00
670788339
a4d088a3ae 仅内网可见-管理员端 调试 2025-07-21 20:44:20 +08:00
670788339
3cd2c5f433 仅内网可见-管理员端 调试 2025-07-21 20:33:47 +08:00
670788339
8c69fac9be 仅内网可见-管理员端 调试 2025-07-21 20:24:39 +08:00
670788339
4033eb2294 仅内网可见-管理员端 调试 2025-07-21 20:18:33 +08:00
670788339
ec469db72a 仅内网可见-管理员端 调试 2025-07-21 20:15:20 +08:00
670788339
5e1ea2469b 仅内网可见-管理员端 调试 2025-07-21 20:11:41 +08:00
670788339
2baa5c61a4 仅内网可见-管理员端 调试 2025-07-21 20:10:25 +08:00
670788339
b627398b7d 仅内网可见-管理员端 调试 2025-07-21 19:57:51 +08:00
670788339
7be5c072d9 仅内网可见-管理员端 调试 2025-07-21 19:37:32 +08:00
670788339
de14f9f561 仅内网可见-管理员端 调试 2025-07-21 19:26:19 +08:00
6 changed files with 268 additions and 223 deletions

View File

@@ -170,7 +170,9 @@ const updateContentOrders = function(cid,items) {
const detail = function(id) { const detail = function(id) {
return ajax.get('/xboe/m/course/manage/detail?id=' + id); return ajax.get('/xboe/m/course/manage/detail?id=' + id);
} }
const getDictIds = function(pid,type) {
return ajax.get(`/xboe/m/course/manage/getDictIds?pid=${pid}&type=${type}`);
}
/** /**
* 更新内容的名称 * 更新内容的名称
* @param {Object} data * @param {Object} data
@@ -446,6 +448,7 @@ export default {
findUpdateLogs, findUpdateLogs,
getUpdateLog, getUpdateLog,
detail, detail,
getDictIds,
saveContent, saveContent,
pageList, pageList,
setEnabled, setEnabled,

View File

@@ -571,6 +571,7 @@ export default {
} }
}, },
mounted() { mounted() {
this.getDictIds();
let extendFlag=this.$route.query.f; //是否是管理端过来的 let extendFlag=this.$route.query.f; //是否是管理端过来的
this.extendRefId=this.$route.query.refId; this.extendRefId=this.$route.query.refId;
this.extendRefType=this.$route.query.refType; this.extendRefType=this.$route.query.refType;
@@ -601,16 +602,8 @@ export default {
this.isPermission = false; this.isPermission = false;
return; return;
} }
console.log("--- this.dicts = ",this.dicts)
this.isPermission = this.dicts.includes(orgId); this.isPermission = this.dicts.includes(orgId);
/*if(this.isPermission && !this.courseInfo && !this.courseInfo.device){
this.courseInfo.device = 4;
}else{
if(!this.courseInfo && !this.courseInfo.device){
return;
}else{
this.courseInfo.device = 3;
}
}*/
console.log("--- 监听结束 this.isPermission = ",this.isPermission) console.log("--- 监听结束 this.isPermission = ",this.isPermission)
}, },
// 关键字的更改 // 关键字的更改
@@ -917,6 +910,21 @@ export default {
this.courseCoverurl = ''; this.courseCoverurl = '';
this.courseInfo.coverImg = ''; this.courseInfo.coverImg = '';
}, },
//获取字典信息
async getDictIds() {
console.log("--- 获取字典信息 1 = ", this.dicts);
try {
const response = await apiCourse.getDictIds(637, 1); // 确保返回 Promise
console.log("--- 获取字典信息 2 result= ", response);
if (response.status === 200) {
this.dicts = response.result.dicts; // 正确提取 dicts
console.log("--- 获取字典信息 3 = ", this.dicts);
}
} catch (error) {
console.error("获取字典信息失败:", error);
}
},
//获取课程信息 //获取课程信息
async getDetail(id) { async getDetail(id) {
this.curCourseId = id; this.curCourseId = id;

View File

@@ -37,7 +37,6 @@ export default {
}, },
isDrag:{ isDrag:{
type: Boolean, type: Boolean,
default: true,
}, },
blobId:{ blobId:{
type: String, type: String,

View File

@@ -20,7 +20,7 @@
</div> </div>
<div class="label"> <div class="label">
<author :aid="caseDetail.sysCreateAid" :onlyAvatar="true" :avatar="authorInfo.avatar" <author :aid="caseDetail.sysCreateAid" :onlyAvatar="true" :avatar="authorInfo.avatar"
:sex="authorInfo.sex"></author> :sex="authorInfo.sex" :name="authorInfo.name"></author>
<span>案主{{ authorInfo.name }} ({{ authorInfo.orgInfo }})</span> <span>案主{{ authorInfo.name }} ({{ authorInfo.orgInfo }})</span>
<!-- <span>案主{{ authorInfo.name }}</span> <!-- <span>案主{{ authorInfo.name }}</span>
<span>工号{{ authorInfo.code }}</span> <span>工号{{ authorInfo.code }}</span>

View File

@@ -1609,7 +1609,7 @@ export default {
}) })
console.log(res?.result?.list ,'有没有数据2'); console.log(res?.result?.list ,'有没有数据2');
this.caseList.list = res.result.list this.caseList.list = res.result.list
// this.getCaseUserData(res.result.list); this.getCaseUserData(res.result.list);
// 给所有的赋值 // 给所有的赋值
this.caseList.count = res.result.count; this.caseList.count = res.result.count;
this.caseList.showPagCount = res.result.count; this.caseList.showPagCount = res.result.count;

View File

@@ -22,7 +22,7 @@
<div class="course-playbox" ref="coursePlayerBox" id="id_course_player_box"> <div class="course-playbox" ref="coursePlayerBox" id="id_course_player_box">
<div class="course-player" ref="coursePlayer" id="id_course_player"> <div class="course-player" ref="coursePlayer" id="id_course_player">
<div> <div>
<div v-if="Internet != 2"> <div v-if="renderCourse">
<div v-if="resType == null || resType == 0"> <div v-if="resType == null || resType == 0">
<!--先显示视频图片--> <!--先显示视频图片-->
<course-image v-if="courseInfo.id != ''" :course="courseInfo"></course-image> <course-image v-if="courseInfo.id != ''" :course="courseInfo"></course-image>
@@ -110,11 +110,11 @@
</assess> </assess>
</div> </div>
</div> </div>
<div v-if="Internet == 2 || Internet == 3" style="margin:350px 250px" class="jianjie pdftext" id="pdfPreview"> <div v-if="!renderCourse && Internet ==2" style="margin:350px 250px" class="jianjie pdftext" id="pdfPreview">
<div style="margin-top:40px;font-weight:700;font-size: 22px;color: #ccc"> <div style="margin-top:40px;font-weight:700;font-size: 22px;color: #ccc">
<span>十分抱歉您当前的网络环境不符合观看要求为了保障案例信息的安全您需要接入公司内网才能观看</span> <span>十分抱歉您当前的网络环境不符合观看要求为了保障课程信息的安全您需要接入公司内网才能观看</span>
</div> </div>
<div style="margin-top:20px;text-align:center" @click="getInternet"> <div style="margin-top:20px;text-align:center" @click="refreshPage">
<el-button type="primary">重新检测</el-button> <el-button type="primary">重新检测</el-button>
</div> </div>
</div> </div>
@@ -177,7 +177,7 @@
</div> </div>
<!-- 课程单元 --> <!-- 课程单元 -->
<div class="course-units" v-if="tab == 1"> <div class="course-units" v-if="tab == 1">
<div :style="`height: ${controlHeight}px;overflow-y: auto;`"> <div style="min-height: 350px;max-height: 650px ;overflow-y: auto;">
<div class="catalog" v-if="courseInfo.type == 20"> <div class="catalog" v-if="courseInfo.type == 20">
<div v-for="(item, index) in catalogTree" :key="index" :name="index"> <div v-for="(item, index) in catalogTree" :key="index" :name="index">
<el-menu <el-menu
@@ -454,6 +454,7 @@
getType: getType, getType: getType,
ctabName: 'catalog', ctabName: 'catalog',
resType: null, resType: null,
renderCourse: true,
activeNames: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], activeNames: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
scoreInfo: { scoreInfo: {
dlgShow: false, dlgShow: false,
@@ -482,6 +483,7 @@
} }
}, },
mounted() { mounted() {
this.getInternet();
// 增加的用户受众id // 增加的用户受众id
let localKey = "user_" + this.userInfo.sysId + "_gids"; let localKey = "user_" + this.userInfo.sysId + "_gids";
let hasIds = sessionStorage.getItem(localKey); let hasIds = sessionStorage.getItem(localKey);
@@ -529,10 +531,6 @@
return treeList; return treeList;
} }
}, },
destroyed(){
this.cleanAppendTime();
this.stopStudyTime();
},
methods: { methods: {
handleOpen(key,path){ handleOpen(key,path){
if(this.isFalse){ if(this.isFalse){
@@ -818,7 +816,8 @@
}else if(h>500){ }else if(h>500){
h=h+60; h=h+60;
} }
$this.controlHeight=h-95; // 移除高度控制 防止内容塌陷
// $this.controlHeight=h-95;
}) })
@@ -1325,9 +1324,15 @@
}).then(rs => { }).then(rs => {
if (rs.status == 200) { if (rs.status == 200) {
if(rs.result.isPermission){ if(rs.result.isPermission){
// if (true){ this.protocolDialogVisible=true
this.getInternet() }
console.log('需要内网环境') if (!rs.result.isPermission || (rs.result.isPermission && this.Internet==1)){
// this.getInternet()
this.renderCourse = true
}else{
// this.Internet=1;
this.renderCourse = false
this.protocolDialogVisible=true
} }
if(rs.result.contents.length==0){ if(rs.result.contents.length==0){
$this.$message.error('课程内容已删除或课程已不再使用'); $this.$message.error('课程内容已删除或课程已不再使用');
@@ -1420,8 +1425,14 @@
} else { } else {
this.$message.error(rs.message); this.$message.error(rs.message);
} }
}); });
}, },
refreshPage() {
location.reload();
// this.getInternet();
// this.loadData();
},
getXmlHttpRequest() { getXmlHttpRequest() {
if (window.XMLHttpRequest) { if (window.XMLHttpRequest) {
return new XMLHttpRequest(); return new XMLHttpRequest();
@@ -1439,7 +1450,7 @@
let timer = setTimeout(function () { let timer = setTimeout(function () {
timedOut = true; timedOut = true;
xmlhttp.abort(); xmlhttp.abort();
}, 1); }, 1000);
xmlhttp.open("HEAD", window.location.protocol + "//uapi.boe.com.cn/500.html", true); xmlhttp.open("HEAD", window.location.protocol + "//uapi.boe.com.cn/500.html", true);
xmlhttp.send(); xmlhttp.send();
xmlhttp.onreadystatechange = function () { xmlhttp.onreadystatechange = function () {
@@ -1449,7 +1460,7 @@
$this.Internet = 1; $this.Internet = 1;
} else { } else {
clearTimeout(timer); clearTimeout(timer);
$this.protocolDialogVisible=true // $this.protocolDialogVisible=true
$this.Internet = 2; $this.Internet = 2;
} }
} else { } else {
@@ -1750,6 +1761,10 @@
} }
}, },
}, },
destroyed(){
this.cleanAppendTime();
this.stopStudyTime();
},
} }
</script> </script>
@@ -1786,24 +1801,46 @@
margin: 20px auto; margin: 20px auto;
.course-playbox { .course-playbox {
background-color: #fff; background-color: #fff;
min-height: 400px; //min-height: 400px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.course-player-container {
display: flex;
flex-direction: column;
height: 100%;
}
.course-player{ //内容播放区域 .course-player{ //内容播放区域
background-color: #f5f7fa; flex: 4; // 80%高度
flex:1;
min-width: 700px; min-width: 700px;
min-height: 400px; // min-height: 400px;
max-height: 800px; // max-height: 800px;
//height: 100%; height: 80%;
border: 1px solid #ffffff; border: 1px solid #ffffff;
padding-right: 20px; padding-right: 20px;
background-color: rgb(238, 238, 238);
// overflow: auto; // overflow: auto;
} }
.course-control{ //内容控制区域 .course-control{ //内容控制区域
width: 420px; width: 420px;
} }
} }
@media screen and (max-width: 1200px) {
.course-playbox,
.course-infobox {
flex-direction: column;
}
.course-player,
.course-info {
min-width: 100%;
padding-right: 0;
}
.course-control,
.course-teacher {
width: 100%;
margin-top: 20px;
}
}
.course-infobox { .course-infobox {
margin-top: 20px; margin-top: 20px;
display: flex; display: flex;
@@ -1923,13 +1960,10 @@
} }
.player-box { .player-box {
position: absolute; position: relative;
// top: 62px; width: 100%;
// left: 184px; max-width: 300px;
width: 300px; margin: 20px auto;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
height: 187px; height: 187px;
background: rgba(74, 74, 74, .5); background: rgba(74, 74, 74, .5);
border-radius: 33px; border-radius: 33px;
@@ -2072,6 +2106,7 @@
} }
.course-interact { .course-interact {
flex: 1; // 20%高度
height: 54px; height: 54px;
// padding-top: 10px; // padding-top: 10px;
// padding-right: 10px; // padding-right: 10px;