Compare commits

...

29 Commits

Author SHA1 Message Date
emcchui
1843c9e6aa 去除姚吟添加的默认排序条件 2025-02-13 14:26:10 +08:00
joshen
ca25bd9d76 調試 2025-01-20 17:45:42 +08:00
joshen
091c09204f 案例查询 2025-01-20 17:33:09 +08:00
joshen
31be7b053e 調試 2025-01-18 18:39:03 +08:00
joshen
178431e7df 調試 2025-01-18 01:55:22 +08:00
joshen
efbf778d80 調試 2025-01-18 01:24:39 +08:00
joshen
14fdadcec3 調試 2025-01-18 01:24:10 +08:00
joshen
33feddbe3a 調試 2025-01-18 01:15:07 +08:00
joshen
7756c28679 調試 2025-01-18 01:13:55 +08:00
joshen
bb45487264 調試 2025-01-18 01:10:53 +08:00
joshen
df77e5c7dc 調試 2025-01-18 00:56:50 +08:00
joshen
b22dc4539a 調試 2025-01-18 00:47:29 +08:00
joshen
db024ebc2a 調試 2025-01-18 00:46:41 +08:00
joshen
5e7580a936 判空 2025-01-18 00:23:45 +08:00
joshen
5f9da5cf03 Merge branch 'zcwy_0822_case' into master_1202
# Conflicts:
#	src/views/hotforum/Index.vue
2024-12-27 16:15:16 +08:00
zhangsir
1b3064f2ab 替换图片 2024-12-27 16:11:01 +08:00
joshen
24be910b83 回退图片 2024-12-25 14:20:11 +08:00
joshen
6153daa98a Merge branch 'zcwy_0822_case' into master_1202
# Conflicts:
#	src/views/hotforum/Index.vue
2024-12-24 16:40:18 +08:00
zhangsir
c5f6f5c83e 替换图片 2024-12-24 16:22:37 +08:00
joshen
4d0cae9346 Merge branch 'zcwy_1127_teacher' into master_1202 2024-12-12 16:46:44 +08:00
zhangsir
5be181df8c 回退授课记录页面 2024-12-12 16:45:08 +08:00
joshen
67f2ff3e86 重新提交 2024-12-12 11:56:35 +08:00
joshen
3588ef3e67 回退 2024-12-12 11:42:11 +08:00
joshen
7fab8bb062 huancun 2024-12-12 11:12:54 +08:00
joshen
977af999a3 huancun 2024-12-12 11:10:03 +08:00
joshen
cc0362380e Merge branch 'zcwy_0822_case' into master_1202 2024-12-12 10:56:07 +08:00
zhangsir
45027ca77e 2024 2024-12-10 19:53:38 +08:00
joshen
83838b2c1a Merge branch 'zcwy_1127_teacher' into master_1202 2024-12-10 18:15:33 +08:00
zhangsir
acbacac737 讲师管理授课记录讲师端 2024-12-10 14:32:51 +08:00
10 changed files with 209 additions and 198 deletions

View File

@@ -16,9 +16,9 @@
<meta name="referrer" content="strict-origin-when-cross-origin"/> <meta name="referrer" content="strict-origin-when-cross-origin"/>
<link rel="icon" href="<%= BASE_URL %>logo/favicon.ico"> <link rel="icon" href="<%= BASE_URL %>logo/favicon.ico">
<title>京东方大学堂</title> <title>京东方大学堂</title>
<script> <script>
// if(window.top != window.self){ // if(window.top != window.self){
// window.top.location=window.self.location; // window.top.location=window.self.location;
// } // }

View File

@@ -1,5 +1,6 @@
/**我的授课记录*/ /**我的授课记录*/
import ajax from '@/api/boe/boeApiAjax.js' import ajax from '@/api/boe/boeApiAjax.js'
import ajax2 from '@/api/unionAjax.js'
import axios from 'axios' import axios from 'axios'
import { getToken } from '@/utils/token' import { getToken } from '@/utils/token'
const baseURL = process.env.VUE_APP_BOE_BASE_API; const baseURL = process.env.VUE_APP_BOE_BASE_API;
@@ -60,12 +61,15 @@ const exportStudentOfTearcher = function(userId) {
const courseRecordList = function(data) { const courseRecordList = function(data) {
return ajax.postJson('/b1/system/teacher/teacher-course-list',data); return ajax.postJson('/b1/system/teacher/teacher-course-list',data);
} }
const getListByToken = function(data) {
return ajax2.get('/manageApi',`/admin/teacherRecord/getListByToken?courseName=${data.courseName}&page=${data.page}&pageSize=${data.pageSize}`);
}
export default { export default {
courseRecordExport, courseRecordExport,
courseRecordList, courseRecordList,
getListByToken,
exportStudentOfCourse, exportStudentOfCourse,
exportStudentOfTearcher exportStudentOfTearcher

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

View File

@@ -327,7 +327,7 @@ export default {
}, },
startTest(){ startTest(){
apiExamPaper.newPaperContent(this.info.id).then(res=>{ apiExamPaper.newPaperContent(this.info.id).then(res=>{
if(res.error == ''&&res.result != ''){ if(!res.error&&res.result != ''){
if(this.info.paperType==2){ if(this.info.paperType==2){
this.examPaper.json=res.result; this.examPaper.json=res.result;
let qitems=this.convertToItems(this.examPaper.json); let qitems=this.convertToItems(this.examPaper.json);

View File

@@ -51,7 +51,8 @@
<el-dropdown placement="bottom" @command="handleContributor"> <el-dropdown placement="bottom" @command="handleContributor">
<span class="el-dropdown-link" style="font-size:16px;cursor: pointer;" :style="{color:textColor}">贡献者大会</span> <span class="el-dropdown-link" style="font-size:16px;cursor: pointer;" :style="{color:textColor}">贡献者大会</span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="one">2023</el-dropdown-item> <el-dropdown-item command="three">2024</el-dropdown-item>
<el-dropdown-item command="one" divided>2023</el-dropdown-item>
<el-dropdown-item command="two" divided>2022</el-dropdown-item> <el-dropdown-item command="two" divided>2022</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
@@ -246,6 +247,7 @@ export default {
let obj = { let obj = {
one: urlPre + "/web/contributornew/index", one: urlPre + "/web/contributornew/index",
two: urlPre + "/web/contributor/index", two: urlPre + "/web/contributor/index",
three: urlPre + "/web/contributor_2024/index"
}; };
window.open(obj[val]); window.open(obj[val]);
}, },

View File

@@ -52,7 +52,7 @@
<el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button-group> <el-button-group>
<el-button style="margin:0 5px" type="text" v-if="scope.row.recommendRank === ''" @click="suggest(scope.row)" icon="el-icon-medal">榜单推荐</el-button> <el-button style="margin:0 5px" type="text" v-if="scope.row.recommendRank === ''||scope.row.recommendRank === null" @click="suggest(scope.row)" icon="el-icon-medal">榜单推荐</el-button>
<!-- <el-button type="text" @click="shareItem(scope.row)" icon="el-icon-share" style="margin:0 5px">推荐</el-button> --> <!-- <el-button type="text" @click="shareItem(scope.row)" icon="el-icon-share" style="margin:0 5px">推荐</el-button> -->
<el-button style="margin:0 5px" v-if="!scope.row.isTop && scope.row.confidentialityLevel == '内部'" type="text" <el-button style="margin:0 5px" v-if="!scope.row.isTop && scope.row.confidentialityLevel == '内部'" type="text"
@click="setTop(scope.row)" icon="el-icon-top">置顶</el-button> @click="setTop(scope.row)" icon="el-icon-top">置顶</el-button>

View File

@@ -1,206 +1,206 @@
<template> <template>
<div style="padding: 12px 32px 10px 12px;"> <div style="padding: 12px 32px 10px 12px;">
<div style="display: flex;justify-content: flex-start;"> <div style="display: flex;justify-content: flex-start;">
<div><el-input v-model="keyword" placeholder="输入课程名称搜索" clearable></el-input></div> <div><el-input v-model="keyword" placeholder="输入课程名称搜索" clearable></el-input></div>
<div style="padding-left: 10px;"><el-button @click="recordList()" type="primary" icon="el-icon-search">搜索</el-button></div> <div style="padding-left: 10px;"><el-button @click="recordList()" type="primary" icon="el-icon-search">搜索</el-button></div>
<div style="padding: 0px 5px;"><el-button icon="el-icon-refresh-right" @click="keyword = ''" type="primary" >重置</el-button></div> <div style="padding: 0px 5px;"><el-button icon="el-icon-refresh-right" @click="keyword = ''" type="primary" >重置</el-button></div>
<div style="padding: 0px 5px;"><el-button type="primary" @click="exportFile()" icon="el-icon-search" size="small" round>导出</el-button></div> <div style="padding: 0px 5px;"><el-button type="primary" @click="exportFile()" icon="el-icon-search" size="small" round>导出</el-button></div>
<div style="padding: 0px 5px;"><el-button type="primary" @click="exportStudentOfTearcher()" icon="el-icon-search" size="small" round>导出学员信息</el-button></div> <div style="padding: 0px 5px;"><el-button type="primary" @click="exportStudentOfTearcher()" icon="el-icon-search" size="small" round>导出学员信息</el-button></div>
</div> </div>
<div class="Export"> <div class="Export">
<!-- <div style="padding-left: 10px;"><el-button type="primary" @click="exportFile()" icon="el-icon-search" size="small" round>导出</el-button></div> --> <!-- <div style="padding-left: 10px;"><el-button type="primary" @click="exportFile()" icon="el-icon-search" size="small" round>导出</el-button></div> -->
<!-- <div style="padding: 0px 5px;"><el-button icon="el-icon-refresh-right" type="primary" size="small" round>导出学员信息</el-button></div> --> <!-- <div style="padding: 0px 5px;"><el-button icon="el-icon-refresh-right" type="primary" size="small" round>导出学员信息</el-button></div> -->
</div> </div>
<div style="margin-top:20px;"> <div style="margin-top:20px;">
<el-table :data="pageData" border stripe> <el-table :data="pageData" border stripe>
<el-table-column <el-table-column
label="课程时间" label="课程时间"
prop="courseTime" prop="courseTime"
width="200px"> width="200px">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="课程名称" label="课程名称"
prop="courseName" prop="courseName"
width="200px"> width="200px">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="开课场地" label="开课场地"
prop="address" prop="address"
width="240px"> width="240px">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="所属课程" label="所属课程"
prop="parentCourse" prop="parentCourse"
width="120px"> width="120px">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="所属项目" label="所属项目"
prop="parentProject" prop="parentProject"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="所属路径" label="所属路径"
prop="parentRoute" prop="parentRoute"
width="200px" width="200px"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="学习总人数" label="学习总人数"
prop="studentNumber" prop="studentNumber"
width="100px" width="100px"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="时长(分钟)" label="时长(分钟)"
width="100px" width="100px"
prop="period" prop="period"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="评分" label="评分"
width="100px" width="100px"
prop="score" prop="score"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="操作" label="操作"
align="center" align="center"
width="150px" width="150px"
prop="cz" prop="cz"
fixed="right" fixed="right"
> >
<template v-slot="scope"> <template v-slot="scope">
<el-button type="text" @click="exportStudentOfCourse(scope.row.courseId)" size="small">导出学员信息</el-button> <el-button type="text" @click="exportStudentOfCourse(scope.row.courseId)" size="small">导出学员信息</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div style="text-align: center; margin-top:57px"> <div style="text-align: center; margin-top:57px">
<el-pagination <el-pagination
background background
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page="pageInfo.page" :current-page="pageInfo.page"
:page-sizes="[10, 20, 30, 40]" :page-sizes="[10, 20, 30, 40]"
:page-size="pageInfo.pageSize" :page-size="pageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="pageInfo.total" :total="pageInfo.total"
></el-pagination> ></el-pagination>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import apiCourse from '../../api/boe/courseRecord.js'; import apiCourse from '../../api/boe/courseRecord.js';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
export default { export default {
data(){ data(){
return { return {
pageData:[], pageData:[],
keyword:'', keyword:'',
pageInfo:{}, pageInfo:{},
} }
}, },
mounted() { mounted() {
this.recordList(1); this.recordList(1);
}, },
computed: { computed: {
...mapGetters(['userInfo']) ...mapGetters(['userInfo'])
}, },
methods: { methods: {
// 导出所有记录 // 导出所有记录
exportFile(){ exportFile(){
let req = { let req = {
userId: this.userInfo.sysId userId: this.userInfo.sysId
// userId:"70F80F4E-34BA-10AB-894A-8FA812B19637" // userId:"70F80F4E-34BA-10AB-894A-8FA812B19637"
} }
apiCourse.courseRecordExport(req).then(res=>{ apiCourse.courseRecordExport(req).then(res=>{
const link = document.createElement('a');// 创建a标签 const link = document.createElement('a');// 创建a标签
let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); // 设置文件类型 let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); // 设置文件类型
link.style.display = "none"; link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", "授课记录.xls"); link.setAttribute("download", "授课记录.xls");
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
document.body.removeChild(link); document.body.removeChild(link);
}) })
}, },
// 导出课程下的学员信息 // 导出课程下的学员信息
exportStudentOfCourse(courseId){ exportStudentOfCourse(courseId){
let userId = this.userInfo.sysId; let userId = this.userInfo.sysId;
apiCourse.exportStudentOfCourse(userId,courseId).then(res=>{ apiCourse.exportStudentOfCourse(userId,courseId).then(res=>{
const link = document.createElement('a');// 创建a标签 const link = document.createElement('a');// 创建a标签
let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); // 设置文件类型 let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); // 设置文件类型
link.style.display = "none"; link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", "授课记录.xls"); link.setAttribute("download", "授课记录.xls");
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
document.body.removeChild(link); document.body.removeChild(link);
}) })
}, },
// 导出教师下的所有授课记录下的学员信息 // 导出教师下的所有授课记录下的学员信息
exportStudentOfTearcher(){ exportStudentOfTearcher(){
let userId = this.userInfo.sysId; let userId = this.userInfo.sysId;
// let userId = '5D36C207-64F4-C512-312D-C9598257695C'; // let userId = '5D36C207-64F4-C512-312D-C9598257695C';
apiCourse.exportStudentOfTearcher(userId).then(res=>{ apiCourse.exportStudentOfTearcher(userId).then(res=>{
const link = document.createElement('a');// 创建a标签 const link = document.createElement('a');// 创建a标签
let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); // 设置文件类型 let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); // 设置文件类型
link.style.display = "none"; link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", "授课记录.xls"); link.setAttribute("download", "授课记录.xls");
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
document.body.removeChild(link); document.body.removeChild(link);
}) })
}, },
recordList(pageIndex){ recordList(pageIndex){
let req = { let req = {
//     userId:"6B049FAF-C314-7CCF-0D28-0D23F4C42531", //     userId:"6B049FAF-C314-7CCF-0D28-0D23F4C42531",
userId: this.userInfo.sysId, userId: this.userInfo.sysId,
keyword:this.keyword, keyword:this.keyword,
    page:pageIndex,     page:pageIndex,
    pageSize:10     pageSize:10
} }
apiCourse.courseRecordList(req).then(res=>{ apiCourse.courseRecordList(req).then(res=>{
if(res.status == 200) { if(res.status == 200) {
this.pageData = res.result.list; this.pageData = res.result.list;
this.pageInfo = res.result.pageInfo; this.pageInfo = res.result.pageInfo;
} else { } else {
this.$message({ this.$message({
type: 'error', type: 'error',
message: res.message message: res.message
}); });
} }
}) })
}, },
// 每页显示的条数事件 // 每页显示的条数事件
handleSizeChange(val){ handleSizeChange(val){
this.pageInfo.pageSize = val; this.pageInfo.pageSize = val;
this.recordList(1); this.recordList(1);
}, },
// 显示制定页的数据 // 显示制定页的数据
handleCurrentChange(val){ handleCurrentChange(val){
this.pageInfo.pageIndex = val; this.pageInfo.pageIndex = val;
this.recordList(this.pageInfo.pageIndex); this.recordList(this.pageInfo.pageIndex);
}, },
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.Export{ .Export{
display: flex; display: flex;
padding-top: 10px; padding-top: 10px;
} }
</style> </style>

View File

@@ -22,7 +22,7 @@
{img:'01',url:'1265897142383042560'}, {img:'01',url:'1265897142383042560'},
{img:'02',url:'1265697724606210048'}, {img:'02',url:'1265697724606210048'},
{img:'003',url:'1280185851054231552'}, {img:'003',url:'1280185851054231552'},
{img:'4',url:''}, {img:'04',url:'1321778585966247936'},
], ],
} }
}, },
@@ -97,7 +97,7 @@
padding: 28px; padding: 28px;
padding-top: 62px; padding-top: 62px;
margin-bottom: 59px; margin-bottom: 59px;
.img { .img {
width: 100%; // 图片宽度占满item宽度 width: 100%; // 图片宽度占满item宽度
height: auto; // 自动调整高度 height: auto; // 自动调整高度
@@ -132,7 +132,7 @@
padding: 14px; padding: 14px;
padding-top: 26px; padding-top: 26px;
margin-bottom: 30px; margin-bottom: 30px;
.img { .img {
width: 100%; // 图片宽度占满item宽度 width: 100%; // 图片宽度占满item宽度
height: auto; // 自动调整高度 height: auto; // 自动调整高度
@@ -176,4 +176,4 @@
} }
} }
} }
</style> </style>

View File

@@ -185,11 +185,11 @@
<div class="back_num" v-if="numIsFalse"> <div class="back_num" v-if="numIsFalse">
<div class="search_div_num"> <div class="search_div_num">
当前已检索 <span style="color:#FF4040 ;"> 当前已检索 <span style="color:#FF4040 ;">
{{ caseList.count }}</span> 条数据 {{ this.caseList.count }}</span> 条数据
</div> </div>
</div> </div>
<div class="data-content"> <div class="data-content">
<div v-for="item in caseList.list" :key="isTimeData?item.browsingHistoryId : item.id" class="case-list"> <div v-for="item in this.caseList.list" :key="isTimeData?item.browsingHistoryId : item.id" class="case-list">
<div class="case-info"> <div class="case-info">
<div class="case-info-cont"> <div class="case-info-cont">
<!-- <router-link :to="'/case/detail?id=' + item.id"> --> <!-- <router-link :to="'/case/detail?id=' + item.id"> -->
@@ -270,7 +270,7 @@
</div> </div>
</div> </div>
</div> </div>
<div v-if="caseList.showPagCount > queryCondition.pageSize"> <div v-if="this.caseList.showPagCount > queryCondition.pageSize">
<pagination :size="queryCondition.pageSize" :total="caseList.count" :page="queryCondition.pageIndex" <pagination :size="queryCondition.pageSize" :total="caseList.count" :page="queryCondition.pageIndex"
layout="total, prev, pager, next, jumper" @change-page="currentChange"></pagination> layout="total, prev, pager, next, jumper" @change-page="currentChange"></pagination>
</div> </div>
@@ -279,7 +279,7 @@
<!-- <span class="pag-text" @click="loadMore()" v-if="moreState == 1">加载更多</span> <!-- <span class="pag-text" @click="loadMore()" v-if="moreState == 1">加载更多</span>
<span class="pag-text-msg" v-else-if="moreState == 2">数据加载中</span> <span class="pag-text-msg" v-else-if="moreState == 2">数据加载中</span>
<span class="pag-text-msg" v-else-if="moreState == 3">没有更多数据了</span> --> <span class="pag-text-msg" v-else-if="moreState == 3">没有更多数据了</span> -->
<span class="notcoures" v-if="caseList.list.length == 0"> <span class="notcoures" v-if="this.caseList.list.length == 0">
<img :src="`${webBaseUrl}/images/nocase.png`" alt=""> <img :src="`${webBaseUrl}/images/nocase.png`" alt="">
<h5>暂无案例请优先学习其它案例吧</h5> <h5>暂无案例请优先学习其它案例吧</h5>
</span> </span>
@@ -555,7 +555,7 @@ export default {
name: '', name: '',
years: [], years: [],
// 随机 // 随机
notInIds: [],//重复的id // notInIds: [],//重复的id
orderField: "id", orderField: "id",
orderAsc: false,//排序 orderAsc: false,//排序
sysType1:'', sysType1:'',
@@ -1507,7 +1507,7 @@ export default {
}; };
}); });
res.result.list.forEach(item=>{ res.result.list.forEach(item=>{
item.viewRankTags = item.viewRankTags.slice(0,2) item.viewRankTags = (item.viewRankTags||[]).slice(0,2)||[]
}) })
this.caseList.list = res.result.list this.caseList.list = res.result.list
this.getCaseUserData(res.result.list); this.getCaseUserData(res.result.list);
@@ -1562,7 +1562,7 @@ export default {
}; };
}); });
res.result.list.forEach(item=>{ res.result.list.forEach(item=>{
item.viewRankTags = item.viewRankTags.slice(0,2) item.viewRankTags = (item.viewRankTags||[]).slice(0,2)||[]
}) })
this.caseList.list = res.result.list this.caseList.list = res.result.list
this.getCaseUserData(res.result.list); this.getCaseUserData(res.result.list);
@@ -1599,12 +1599,17 @@ export default {
} else { } else {
this.moreState = 3; this.moreState = 3;
} }
// console.log(res?.result?.list ,'有没有数据'); if(res.result.list.length ===0){
this.moreState = 3;
this.isSeach = false;
}
console.log(res?.result?.list ,'有没有数据1');
res.result.list.forEach(item=>{ res.result.list.forEach(item=>{
item.viewRankTags = item.viewRankTags.slice(0,2) item.viewRankTags = (item.viewRankTags||[]).slice(0,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

@@ -253,7 +253,7 @@ export default {
if(res.status==200){ if(res.status==200){
let localCourseIds=[];//本地在线课程的id集合 let localCourseIds=[];//本地在线课程的id集合
res.result.list.forEach(item=>{ res.result.list.forEach(item=>{
if(item.courseImage.startsWith('/upload')){ if(item.courseImage?.startsWith('/upload')){
item.courseImage=$this.fileUrl+item.courseImage.substring(7) item.courseImage=$this.fileUrl+item.courseImage.substring(7)
} }
if(item.source==2){ if(item.source==2){