提交修改

This commit is contained in:
daihh
2022-06-02 16:20:52 +08:00
20 changed files with 2080 additions and 1607 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
node_modules node_modules
node_modules

View File

@@ -41,8 +41,8 @@ const teacherSystem = function(id) {
teacher_id 教师id teacher_id 教师id
* } data 查询条件 * } data 查询条件
*/ */
const teacherInfo = function(data) { const teacherInfo = function(sysId) {
return ajax.get('/b1/system/teacher/teacher-info',data); return ajax.get('/b1/system/teacher/teacher-info?teacher_id='+sysId);
} }
/** /**
* 教师删除接口 * 教师删除接口
@@ -63,11 +63,83 @@ const teacherSystem = function(id) {
const updateStatus = function(data) { const updateStatus = function(data) {
return ajax.postJson('/b1/system/teacher/update-status',data); return ajax.postJson('/b1/system/teacher/update-status',data);
} }
/**
* 教师授课记录查询接口
* @param {
```json
id // 教师id
courseType // 课程类型1,2:面授,训练班0在线班
pageSize // 每页数据条数
page // 返回第几页数据
isPage // 是否分页0分页返回1不分页直接返回全部
```
*/
const getCourseScore = function(data) {
return ajax.get(`/b1/system/teacher/course-score?id=${data.id}&courseType=${data.courseType}&pageSize=${data.pageSize}&page=${data.page}&isPage=${data.isPage}`);
}
/**
* 内部讲师-授课资格 查询接口
* @param {
id // 教师id
pageSize // 每页数据条数
page // 返回第几页数据
```}
*/
const getTeachingQualify = function(data) {
return ajax.get(`/b1/system/teacher/teaching-qualify?id=${data.id}&pageSize=${data.pageSize}&page=${data.page}`);
}
/**
* 内部讲师-未开班资源查询接口
* @param {
id // 教师id
```
*/
const getCourseInfo = function(id) {
return ajax.get('/b1/system/teacher/course-info?id='+id);
}
/**
* 内部讲师-晋级过程查询接口
* @param {
id // 教师id
```
*/
const teacherUpgradePrecess = function(id) {
return ajax.get('/b1/system/teacher/teacher-upgrade-precess?id='+id);
}
/**
* 内部讲师-修改模块讲师信息
* @param {
courseId // 课程id
modId // 模块id
teacherId // 教师id
teachingTime // 授课时间
*/
const editModelTeacher = function(data) {
return ajax.postJson('/b1/system/teacher/edit-model-teacher',data);
}
/**
* 内部讲师-删除模块讲师接口
* @param {
courseId // 课程id
modId // 模块id
teacherId // 教师id
remark // 备注
*/
const deleteModelTeacher = function(data) {
return ajax.postJson('/b1/system/teacher/delete-model-teacher',data);
}
export default { export default {
editTeacher, editTeacher,
teacherSystem, teacherSystem,
teacherInfo, teacherInfo,
deleteTeacher, deleteTeacher,
updateStatus updateStatus,
getCourseScore,
getTeachingQualify,
getCourseInfo,
teacherUpgradePrecess,
deleteModelTeacher,
editModelTeacher
} }

View File

@@ -173,6 +173,17 @@ const end=function(id){
const exports=function(query){ const exports=function(query){
return ajax.post('/xboe/teacher/export',query); return ajax.post('/xboe/teacher/export',query);
} }
/**
* courseType // 课程类型1,2:面授,训练班0在线班
* sysId:教师的sysId
* tid 教师的id
* @param {tid,sysId,countType,pageSize:100,pageIndex} query
*/
const findAllCourses=function(query){
return ajax.post('/xboe/teacher/compose/find/courses',query);
}
export default { export default {
findByName, findByName,
getInfoById, getInfoById,

View File

@@ -134,7 +134,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.one-line-ellipsis{ .one-line-ellipsis{
display: -webkit-box; display: -webkit-box;
// white-space:pre-wrap; white-space:pre-wrap;
word-wrap: break-word; word-wrap: break-word;
word-break:break-all; word-break:break-all;
overflow: hidden; overflow: hidden;

View File

@@ -180,7 +180,7 @@
<div style="padding-right: 30px;"><div></div></div> <div style="padding-right: 30px;"><div></div></div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-checkbox style="margin-right:10px" v-model="checked"></el-checkbox><span style="font-size:14px;color:#787878;">我已阅读并遵守<span style="color:#588afc;margin-right:10px;cursor: pointer;" @click="courseInfoFormCheckedShow = true">平台内容发布要求</span></span> <el-checkbox style="margin-right:10px" v-if="curCourseId != ''" v-model="checked"></el-checkbox><span v-if="curCourseId != ''" style="font-size:14px;color:#787878;">我已阅读并遵守<span style="color:#588afc;margin-right:10px;cursor: pointer;" @click="courseInfoFormCheckedShow = true">平台内容发布要求</span></span>
<!-- <el-button v-if="curCourseId!='' && contentInfo.list.length>0">预览</el-button> --> <!-- <el-button v-if="curCourseId!='' && contentInfo.list.length>0">预览</el-button> -->
<el-button :loading="btnLoading" v-if="curCourseId != ''" :disabled="!checked" @click="submitCourse()" type="primary">提交审核</el-button> <el-button :loading="btnLoading" v-if="curCourseId != ''" :disabled="!checked" @click="submitCourse()" type="primary">提交审核</el-button>
<el-button @click="closeForm()">关闭</el-button> <el-button @click="closeForm()">关闭</el-button>

View File

@@ -593,6 +593,7 @@
setupTage:0, setupTage:0,
}, },
}, },
pdfTip:'',//pdf文件的提示
hasCWare:{ keyword:'', count: 0, pageSize: 10, pageIndex: 1, list:[]}, hasCWare:{ keyword:'', count: 0, pageSize: 10, pageIndex: 1, list:[]},
homework:{ homework:{
show:1, show:1,

View File

@@ -162,7 +162,7 @@ export default {
let obj = { let obj = {
one: urlPre+'/web/teacherLesson', one: urlPre+'/web/teacherLesson',
two: urlPre+'/grow180/login', two: urlPre+'/grow180/login',
three: this.webBaseUrl + '/study/index', three: this.webBaseUrl + '/study/index?study=1',
four: 'https://m.qingxuetang.com/x/?appId=qxtcorp306130', four: 'https://m.qingxuetang.com/x/?appId=qxtcorp306130',
five: urlPre+'/boe/new-employee/index.html' five: urlPre+'/boe/new-employee/index.html'
}; };

View File

@@ -44,7 +44,7 @@
</el-col> </el-col>
<el-col :span="2"> <el-col :span="2">
<div class="grid-content bg-purple"> <div class="grid-content bg-purple">
<el-button type="primary" style="margin-left: 20px;" @click="getSignupList()" >搜索</el-button> <el-button type="primary" style="margin-left: 20px;" @click="getSignupList()" >ssz</el-button>
</div> </div>
</el-col> </el-col>
<!-- <el-col :span="2"> --> <!-- <el-col :span="2"> -->
@@ -623,14 +623,16 @@ export default {
pageIndex: this.study.pageIndex, pageIndex: this.study.pageIndex,
pageSize: this.study.pageSize pageSize: this.study.pageSize
}; };
apicourseStudy.findSignup(params).then(res => { apicourseStudy.findSignup(params).then(res => {
if (res.status === 200) { if (res.status === 200) {
let ids = []; let ids = [];
res.result.list.forEach(item => { res.result.list.forEach(item => {
ids.push(item.aid); ids.push(item.aid);
}); });
this.getQaUserData(res.result.list, ids); this.getQaUserData(res.result.list, ids);
// this.study.list = res.result.list; this.study.list = res.result.list;
this.study.count = res.result.count; this.study.count = res.result.count;
} else { } else {
this.$message.error(res.message); this.$message.error(res.message);

View File

@@ -73,10 +73,11 @@
<span slot="title" class="textl">考试管理</span> <span slot="title" class="textl">考试管理</span>
</el-menu-item> </el-menu-item>
</el-submenu> </el-submenu>
<!-- <el-menu-item index="/manage/teachers" v-show="curIdentity == 3"> <!--增加一个说明-->
<el-menu-item index="/manage/teachers" v-show="curIdentity == 3">
<svg-icon icon-class="teather"></svg-icon> <svg-icon icon-class="teather"></svg-icon>
<span slot="title">教师管理</span> <span slot="title">教师管理</span>
</el-menu-item> --> </el-menu-item>
<!-- <el-menu-item index="/case/manage" v-show="curIdentity == 3"> <!-- <el-menu-item index="/case/manage" v-show="curIdentity == 3">
<svg-icon icon-class="case"></svg-icon> <svg-icon icon-class="case"></svg-icon>
<span slot="title">案例管理</span> <span slot="title">案例管理</span>

View File

@@ -373,6 +373,7 @@ export default {
}; };
let isTopList = []; let isTopList = [];
let data = []; let data = [];
this.courseList.list = [];
apiCoursePortal.pageList(course).then(res => { apiCoursePortal.pageList(course).then(res => {
if (res.status == 200 && res.result.list.length > 0) { if (res.status == 200 && res.result.list.length > 0) {

View File

@@ -123,7 +123,7 @@
}, },
beforeCreate() { beforeCreate() {
this.loading = true; this.loading = true;
let params={ let params={
// keyword:this.keyword, // keyword:this.keyword,
page:1, page:1,
size:10, size:10,
@@ -138,7 +138,11 @@
if(res.result.count > 0) { if(res.result.count > 0) {
this.$router.push('/uc/study/task') this.$router.push('/uc/study/task')
} else { } else {
this.$router.push('/uc/study/courses') if(this.$route.query.study == '1') {
this.$router.push('/uc/study/task')
} else {
this.$router.push('/uc/study/courses')
}
} }
}else{ }else{
this.$router.push('/uc/study/courses') this.$router.push('/uc/study/courses')

View File

@@ -69,7 +69,7 @@
</el-select> </el-select>
</div> </div>
<div style="width:390px"> <div style="width:390px">
<el-button type="primary" @click="searchData()" icon="el-icon-search" >搜索</el-button> <el-button type="primary" @click="searchData(true)" icon="el-icon-search" >搜索</el-button>
<el-button icon="el-icon-refresh-right" type="primary" style="margin-left:5px" @click="reset">重置</el-button> <el-button icon="el-icon-refresh-right" type="primary" style="margin-left:5px" @click="reset">重置</el-button>
</div> </div>
</div> </div>
@@ -519,7 +519,8 @@ export default {
this.params.sysType1 = ''; this.params.sysType1 = '';
this.params.sysType2 = ''; this.params.sysType2 = '';
this.params.sysType3 = ''; this.params.sysType3 = '';
this.searchData();
this.searchData(true);
}, },
...mapActions({ ...mapActions({
getResOwnerTree:'resOwner/getResOwnerTree', getResOwnerTree:'resOwner/getResOwnerTree',
@@ -590,7 +591,10 @@ export default {
}, },
// 课程查询 // 课程查询
async searchData() { async searchData(pageReset) {
if(pageReset){
this.page.pageIndex=1;
}
this.params.resOwner1 = this.resOwner[0]; this.params.resOwner1 = this.resOwner[0];
this.params.resOwner2 = this.resOwner[1]; this.params.resOwner2 = this.resOwner[1];
this.params.resOwner3 = this.resOwner[2]; this.params.resOwner3 = this.resOwner[2];

View File

@@ -155,7 +155,7 @@
<el-form-item> <el-form-item>
<el-button type="primary" @click="selectQuery()">搜索</el-button> <el-button type="primary" @click="selectQuery()">搜索</el-button>
<!-- <el-button type="primary" size="mini" @click="randomTest.showRandom = true">批量导入</el-button> --> <!-- <el-button type="primary" size="mini" @click="randomTest.showRandom = true">批量导入</el-button> -->
<el-button @click="addPageBreak" type="primary" size="mini">分页符</el-button> <!-- <el-button @click="addPageBreak" type="primary" size="mini">分页符</el-button> -->
</el-form-item> </el-form-item>
<el-form-item><el-checkbox v-model="qpaper.optShow">选项</el-checkbox></el-form-item> <el-form-item><el-checkbox v-model="qpaper.optShow">选项</el-checkbox></el-form-item>
</el-form> </el-form>
@@ -451,7 +451,10 @@ export default {
this.resOwner = []; this.resOwner = [];
this.formTab = 'info'; this.formTab = 'info';
this.totalScore=0; this.totalScore=0;
this.qlib.type= '';
this.qlib.title= '';
this.paperLength=0; this.paperLength=0;
this.question.all =
this.question.list =[]; this.question.list =[];
this.question.checkQuest = []; this.question.checkQuest = [];
}, },

View File

@@ -31,7 +31,7 @@
<el-table-column type="selection"></el-table-column> <el-table-column type="selection"></el-table-column>
<el-table-column label="姓名" prop="name" fixed> <el-table-column label="姓名" prop="name" fixed>
<template slot-scope="scope"> <template slot-scope="scope">
<span @click="handleName(scope.row)">{{scope.row.name}}</span> <span class="previewStyle" @click="handleName(scope.row)">{{scope.row.name}}</span>
</template> </template>
</el-table-column> </el-table-column>
@@ -159,9 +159,9 @@
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="showTeacherDetails" :visible.sync="showTeacherDetails"
width="800px"> width="800px">
<teacher-details v-if="teacherDetailsId != ''" :id="teacherDetailsId"></teacher-details> <teacher-details v-if="teacherDetailsId != ''" :id="teacherDetailsId" :newId="teacherDetailId"></teacher-details>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="handleClose"> </el-button> <el-button @click="handleCloseOne()"> </el-button>
<!-- <el-button type="primary" @click="showTeacherDetails = false"> </el-button> --> <!-- <el-button type="primary" @click="showTeacherDetails = false"> </el-button> -->
</span> </span>
</el-dialog> </el-dialog>
@@ -180,7 +180,8 @@
components:{imageUpload,teacherDetails}, components:{imageUpload,teacherDetails},
data(){ data(){
return { return {
teacherDetailsId: '', teacherDetailId:'',//新数据id
teacherDetailsId: '',// sid
showTeacherDetails:false, showTeacherDetails:false,
tSystemData:{}, tSystemData:{},
tLevelData:{}, tLevelData:{},
@@ -255,14 +256,15 @@
...mapGetters(['userInfo']) ...mapGetters(['userInfo'])
}, },
methods:{ methods:{
handleClose() { handleCloseOne() {
console.log("1111");
// this.teacherDetailsId = ''; // this.teacherDetailsId = '';
this.showTeacherDetails = false; this.showTeacherDetails = false;
}, },
handleName(row) { handleName(row) {
this.showTeacherDetails = true; this.showTeacherDetails = true;
this.teacherDetailsId = row.id; this.teacherDetailsId = row.sysId;
this.teacherDetailId = row.id;
// this.teacherDetailsId = '13BEBDBD-3D28-244D-648D-0CBD6796717C'
}, },
getTeachersystem() { getTeachersystem() {
teacherBoeApi.teacherSystem(this.userInfo.sysId).then(res=>{ teacherBoeApi.teacherSystem(this.userInfo.sysId).then(res=>{
@@ -600,7 +602,7 @@
eleLink.download = '教师授课信息'; eleLink.download = '教师授课信息';
eleLink.style.display = 'none'; eleLink.style.display = 'none';
eleLink.setAttribute('target', '_blank'); eleLink.setAttribute('target', '_blank');
eleLink.href = `${process.env.VUE_APP_BASE_API}/xboe/m/course/manage/export-teacher-course?teacherId=${row.id}`; eleLink.href = `${process.env.VUE_APP_BASE_API}/xboe/teacher/compose/export/courses?tid=${row.id}&sysId=${row.sysId}&courseType=0,1,2`;
document.body.appendChild(eleLink); document.body.appendChild(eleLink);
eleLink.click(); eleLink.click();
document.body.removeChild(eleLink); document.body.removeChild(eleLink);

View File

@@ -7,60 +7,62 @@
<el-col :span="24"> <el-col :span="24">
<el-form label-width="120px" size="mini"> <el-form label-width="120px" size="mini">
<el-form-item label="头像:"> <el-form-item label="头像:">
<div style="width: 90px;height: 90px" v-if="form.account.avatar == ''"> <div style="width: 90px;height: 90px" v-if="newForm && newForm.account && newForm.account.avatar == ''">
<img style="width:100%;height:100%" v-if="form.gender == 1" :src="webBaseUrl + '/images/Avatarman.png'" alt="" srcset=""> <img style="width:100%;height:100%" v-if="newForm.gender == 1" :src="webBaseUrl + '/images/Avatarman.png'" alt="" srcset="">
<img style="width:100%;height:100%" v-else :src="webBaseUrl + '/images/Avatarwoman.png'" alt="" srcset=""> <img style="width:100%;height:100%" v-else :src="webBaseUrl + '/images/Avatarwoman.png'" alt="" srcset="">
</div> </div>
<div style="width: 90px;height: 90px" v-else> <div style="width: 90px;height: 90px" v-else>
<img style="width:100%;height:100%" :src="form.account.avatar" alt="" srcset=""> <img style="width:100%;height:100%" :src="newForm && newForm.account && newForm.account.avatar" alt="" srcset="">
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="讲师账号:"> <el-form-item label="讲师账号:">
<el-col :span="12">{{form.user.userNo}}</el-col> <el-col :span="12">{{newForm.user.userNo}}</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="讲师姓名:">{{form.user.name}}</el-form-item> <el-form-item label="讲师姓名:">{{newForm.user.name}}</el-form-item>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="讲师组织:" > <el-form-item label="讲师组织:" >
<el-col :span="12">--</el-col> <el-col :span="12">{{form.company_name}}</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="初始授课时长:">12分账</el-form-item></el-col> <el-form-item label="初始授课时长:">{{formatSeconds(form.default_teaching_time)}}</el-form-item></el-col>
</el-form-item> </el-form-item>
<el-form-item label="讲师体系:"> <el-form-item label="讲师体系:">
<el-col :span="12">波ue</el-col> <el-col :span="12">{{form.system_name}}</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="讲师级别:"> <el-form-item label="讲师级别:">
2 {{form.level_name}}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="总计授课时长:"> <el-form-item label="总计授课时长:">
<el-col :span="12">12分账</el-col> <el-col :span="12">{{formatSeconds(form.teaching_time)}}</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="认证状态:"> <el-form-item label="认证状态:">
未认证 {{form.is_certify == 1? '已认证':'未认证'}}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="认证时间:"> <el-form-item label="认证时间:">
<el-col :span="12">--</el-col> <el-col :span="12">{{formatsec(form.certify_at *1000)}}</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="认证资料:"> --</el-form-item> <el-form-item label="认证资料:">
<!-- <a href="http://" target="_blank" rel="noopener noreferrer"></a> -->
</el-form-item>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="认证人:"> <!-- <el-form-item label="认证人:"> -->
<el-col :span="12">认证人</el-col> <!-- <el-col :span="12">--</el-col> -->
<el-col :span="12"> <!-- <el-col :span="12"> -->
<el-form-item label="讲师介绍:"> <el-form-item label="讲师介绍:">
讲师介绍 <div v-html="form.description"></div>
</el-form-item>
</el-col>
</el-form-item> </el-form-item>
<el-form-item label="讲师备注:"> <!-- </el-col>
-- </el-form-item> -->
<el-form-item label="讲师备注:">
{{form.remark}}
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-col> </el-col>
@@ -69,8 +71,8 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="授课记录" name="second"> <el-tab-pane label="授课记录" name="second">
<div style="display:flex"> <div style="display:flex">
<div><el-button type="primary">导出授课记录</el-button></div> <!-- <div><el-button type="primary" @click="exportCourse()">导出授课记录</el-button></div> -->
<div style="margin: 0 5px"><el-select v-model="value" placeholder="请选择" clearable > <div style="margin: 0 5px"><el-select v-model="records.courseType" placeholder="请选择" clearable @change="getCourseScore()">
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item.value" :key="item.value"
@@ -79,143 +81,167 @@
</el-option> </el-option>
</el-select></div> </el-select></div>
</div> </div>
<el-table <el-table height="430"
:data="tableData" :data="records.list"
style="width: 100%;margin-top:10px"> style="width: 100%;margin-top:10px">
<el-table-column <el-table-column
prop="date" prop="courseCode" width="120"
label="班级编号" label="班级编号">
width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="courseType"
label="类型" label="类型">
width="180"> <template slot-scope="scope">
<span v-if="scope.row.courseType == '1'">面授班</span>
<span v-if="scope.row.courseType == '2'">训练班</span>
<span v-if="scope.row.courseType == '0'">在线班</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="courseName" show-overflow-tooltip
label="班级名称"> label="班级名称" width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="date" prop="modName" show-overflow-tooltip
label="模块名称" label="模块名称"
width="180"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="teachingTime"
label="授课时长(min)" label="授课时长(min)" width="120">
width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="openStartTime"
label="开班时间"> label="开班时间" width="140">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="courseStatus"
label="班级状态" label="班级状态"
width="180"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="teacherScore"
label="评分"> label="评分">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="操作" label="操作"
width="180"> width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="update()">修改</el-button> <el-button type="text" @click="recordsUpdate(scope.row)">修改</el-button>
<el-button type="text">删除</el-button> <el-button type="text" @click="recordsDel(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <div style="text-align:center;margin-top:20px">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="records.page"
:page-sizes="[10, 20, 30, 40]"
:page-size="records.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="records.count">
</el-pagination>
</div> -->
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="授课资格" name="third"> <el-tab-pane label="授课资格" name="third">
<el-table <el-table height="430"
:data="tableData" :data="qualify.list"
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
prop="date" prop="courseCode"
label="课程编号" label="课程编号"
width="180"> width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="courseName" show-overflow-tooltip
label="课程名称" label="课程名称"
width="180"> width="250">
</el-table-column>
<el-table-column
prop="address"
label="班级名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="date" prop="dictionaryName"
label="课程分类" label="课程分类"
width="180"> width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="courseType"
label="课程类型" label="课程类型"
width="180"> width="100">
<template slot-scope="scope">
<span v-if="scope.row.courseType == '0'">在线班</span>
<span v-if="scope.row.courseType == '1'">面授</span>
<span v-if="scope.row.courseType == '2'">线下课</span>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <div style="text-align:center;margin-top:20px">
<el-pagination
background
@size-change="qualifySizeChange"
@current-change="qualifyCurrentChange"
:current-page="records.page"
:page-sizes="[10, 20, 30, 40]"
:page-size="records.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="records.count">
</el-pagination>
</div> -->
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="未开班资源" name="fourth"> <el-tab-pane label="未开班资源" name="fourth">
<el-table <el-table height="430"
:data="tableData" :data="courseInfoList"
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
prop="date" prop="courseCode"
label="班级编号" label="班级编号"
width="180"> width="120">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="courseName" show-overflow-tooltip
label="班级名称" label="班级名称"
width="180"> width="200">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="modName" width="150" show-overflow-tooltip
label="模块名称"> label="模块名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="date" prop="teachingTime"
label="授课时长" label="授课时长"
width="180"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="openStartTime"
label="开班时间" label="开班时间"
width="180"> width="180">
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="晋级过程" name="five"> <el-tab-pane label="晋级过程" name="five">
<el-table <el-table height="370"
:data="tableData" :data="precessList"
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
prop="date" prop="operatorTime"
label="变更时间" label="变更时间"
width="180"> width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="type"
label="变更方式" label="变更方式">
width="180"> <template slot-scope="scope">
</el-table-column> <span v-if="scope.row.type == '0'">手动</span>
<el-table-column <span v-if="scope.row.type == '1'">自动</span>
prop="address" </template>
label="模块名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="date" prop="afterLevelName"
label="变更结果" label="变更结果">
width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="operatorName"
label="操作人" label="操作人">
width="180">
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
@@ -225,22 +251,23 @@
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="300px" width="300px"
top="20%" top="20%"
:modal="false" :modal="false">
:before-close="handleClose">
<div>请输入授课时长分钟</div> <div>请输入授课时长分钟</div>
<div><el-input v-model="input" placeholder="请输入内容"></el-input></div> <div style="margin-top:20px"><el-input v-model="records.row.teachingTime" placeholder="请输入内容"></el-input></div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false"> </el-button> <el-button type="primary" @click="editModelTeacher()"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import qs from 'qs'
import teacherApi from "@/api/modules/teacher"; import teacherApi from "@/api/modules/teacher";
import teacherBoeApi from "@/api/boe/teacher"; import teacherBoeApi from "@/api/boe/teacher";
import userApi from "@/api/system/user"; import userApi from "@/api/system/user";
import { formatSeconds,formatsec } from '@/utils/datetime.js'
import imageUpload from "@/components/ImageUpload/index.vue"; import imageUpload from "@/components/ImageUpload/index.vue";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
export default { export default {
@@ -249,14 +276,46 @@ export default {
props: { props: {
id:{ id:{
type: String, type: String,
},
newId:{
type: String,
} }
}, },
data() { data() {
return { return {
formatsec,
formatSeconds,
baseUrl: process.env.VUE_APP_BASE_API,
newForm:{
account:{},
user:{},
},
dialogVisible:false, dialogVisible:false,
activeName: "first", activeName: "first",
value: "", value: "",
options: [], options: [//1,2:面授,训练班0在线班
{label:'录播',value:'0'},
{label:'面授',value:'1'},
{label:'线下课',value:'2'},
],
records:{// 授课记录
courseType:'',
// pageSize: 1,
// page:5,
count:0,
list:[],
row:{
teachingTime:'',
},
},
qualify:{//授课资格
pageSize: 1,
page:5,
count:0,
list:[]
},
courseInfoList: [],//未开班资源
precessList:[],//晋级过程
tableData: [], tableData: [],
input:'', input:'',
form:{ form:{
@@ -266,26 +325,168 @@ export default {
}; };
}, },
mounted() { mounted() {
console.log(this.id,'id'); this.getDetail(this.id);
this.getDetail(this.id) this.getAvatar();
}, },
computed: { computed: {
...mapGetters(["userInfo"]) ...mapGetters(["userInfo"])
}, },
methods: { methods: {
update(row) { getAvatar(){
console.log(row,'row'); teacherApi.detail(this.newId).then(res => {
if (res.status == 200) {
// const result = res.result;
this.newForm = res.result;
if(res.result.account.avatar != '') {
this.newForm.account.avatar = this.baseUrl + res.result.account.avatar;
}
}
})
},
exportCourse(row){
var eleLink = document.createElement('a');
eleLink.download = '教师授课信息';
eleLink.style.display = 'none';
eleLink.setAttribute('target', '_blank');
eleLink.href = `${process.env.VUE_APP_BASE_API}/xboe/teacher/compose/export/courses?tid=${row.id}&sysId=${row.sysId}&courseType=0,1,3`;
document.body.appendChild(eleLink);
eleLink.click();
document.body.removeChild(eleLink);
},
recordsDel(row) {
this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let data = {
courseId:row.courseId, // 课程id
modId:row.modId, // 模块id
teacherId:row.teacherId, // 教师id
remark:'', // 备注
}
teacherBoeApi.deleteModelTeacher(data).then(res=>{
if(res.status == '200') {
this.getCourseScore();
this.$message({
type: 'success',
message: '删除成功!'
});
} else {
this.$message.error(res.message);
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
recordsUpdate(row) {
this.records.row = row;
this.dialogVisible = true; this.dialogVisible = true;
}, },
handleClick() {}, handleClick(tab, event) {
getDetail(id) { if(tab.name == 'second') {// 授课记录
this.saveLoading = false; this.getCourseScore();
this.newOrEdit = "编辑教师"; } else if(tab.name == 'third') {// 授课资格
this.allowInput = true; this.getTeachingQualify();
teacherApi.detail(id).then(res => { }else if(tab.name == 'fourth') {// 为开班资源
this.getCourseInfo();
}if(tab.name == 'five') {// 晋级过程
this.teacherUpgradePrecess();
}
},
// 晋级过程
teacherUpgradePrecess() {
teacherBoeApi.teacherUpgradePrecess(this.id).then(res=>{
if(res.status == '200') {
this.precessList = res.result.data;
}
})
},
// 未开班资源
getCourseInfo() {
teacherBoeApi.getCourseInfo(this.id).then(res=>{
if(res.status == '200') {
this.courseInfoList = res.result.data;
}
})
},
// 授课资格
getTeachingQualify() {
let data = {
id:this.id, // 教师id
pageSize:this.qualify.pageSize, // 每页数据条数
page:this.qualify.page, // 返回第几页数据
}
teacherBoeApi.getTeachingQualify(data).then(res=>{
if(res.status == '200') {
this.qualify.list = res.result.data;
}
})
},
qualifySizeChange(val) {
this.qualify.pageSize = val
this.qualify.page = 1
this.getTeachingQualify()
},
qualifyCurrentChange(val) {
this.qualify.page = val
this.getTeachingQualify()
},
editModelTeacher() {
let data = {
courseId:this.records.row.courseId, // 课程id
modId:this.records.row.modId, // 模块id
teacherId:this.records.row.teacherId, // 教师id
teachingTime:this.records.row.teachingTime, // 授课时间
}
teacherBoeApi.editModelTeacher(data).then(res=>{
if(res.status == '200') {
this.$message.success('修改成功');
this.dialogVisible = false;
this.getCourseScore();
} else {
this.$message.error(res.message);
}
})
},
// 授课记录
getCourseScore() {
let data = {
id:this.id,// 教师id
courseType:this.records.courseType || '0,1,2', // 课程类型1,2:面授,训练班0在线班
// pageSize:this.records.pageSize, // 每页数据条数
// page:this.records.page, // 返回第几页数据
isPage:1, // 是否分页0分页返回1不分页直接返回全部
}
teacherBoeApi.getCourseScore(data).then(res=>{
if(res.status === '200') {
this.records.list = res.result.data;
}
})
},
handleSizeChange(val) {
this.records.pageSize = val
this.records.page = 1
this.getCourseScore()
},
handleCurrentChange(val) {
this.records.page = val
this.getCourseScore()
},
getDetail() {
teacherBoeApi.teacherInfo(this.id).then(res => {
if (res.status == 200) { if (res.status == 200) {
const result = res.result; const result = res.result;
this.form = result; this.form = result;
} else {
this.$message.error(res.message);
} }
}); });
} }
@@ -297,6 +498,8 @@ export default {
.teacher-details { .teacher-details {
height: 500px; height: 500px;
.one{ .one{
height: 460px;
overflow-y: auto;
.el-form-item{ .el-form-item{
margin-bottom: 10px; margin-bottom: 10px;
} }

View File

@@ -37,7 +37,7 @@
</div> </div>
<span class="more"></span> <span class="more"></span>
</el-row> </el-row>
<div class="data-content"> <div class="data-content" v-if="articleList.list.length > 0">
<div :span="24" v-for="(article, aidx) in articleList.list" :key="aidx" class="article-list"> <div :span="24" v-for="(article, aidx) in articleList.list" :key="aidx" class="article-list">
<div class="article-info"> <div class="article-info">
<!--title--> <!--title-->
@@ -77,7 +77,11 @@
<div class="pagination-div"> <div class="pagination-div">
<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 && !isSeach">没有更多数据了</span>
<span class="pag-text-msg" v-else-if="isSeach">没有查询到相关内容</span>
</div>
<div v-if="isSeach" style="height:382px">
</div> </div>
</el-card> </el-card>
</el-row> </el-row>
@@ -193,6 +197,7 @@ export default {
ankingFixed:false, ankingFixed:false,
diagSync:false,//控制弹窗 diagSync:false,//控制弹窗
// articleList: [] // articleList: []
isSeach:false,
}; };
}, },
mounted() { mounted() {
@@ -200,7 +205,9 @@ export default {
// this.ankingWidth=el_anking.clientWidth; // this.ankingWidth=el_anking.clientWidth;
//console.log(el_anking.clientWidth,'clientWidth'); //console.log(el_anking.clientWidth,'clientWidth');
this.articleList.keyword = this.$route.query.keyword; this.articleList.keyword = this.$route.query.keyword;
if(this.articleList.keyword != '') {
this.isSeach = true;
}
this.getArticleList(); this.getArticleList();
this.getAnkingData(); this.getAnkingData();
this.searchterm(); this.searchterm();
@@ -217,6 +224,7 @@ export default {
methods: { methods: {
emitInput(val){ emitInput(val){
this.articleList.keyword = val; this.articleList.keyword = val;
this.isSeach =true;
this.searchData(); this.searchData();
}, },
saveSuccess(data){ saveSuccess(data){
@@ -329,6 +337,7 @@ export default {
// portalPageList接口换了这是原来的 // portalPageList接口换了这是原来的
apiArticle.findPortal(query).then(res => { apiArticle.findPortal(query).then(res => {
if (res.status == 200 && res.result.list.length > 0) { if (res.status == 200 && res.result.list.length > 0) {
this.isSeach =false;
let ids = []; let ids = [];
res.result.list.forEach(item => { res.result.list.forEach(item => {
item.authorInfo = { name: '', avatar: '', orgInfo: '' ,sex:null}; item.authorInfo = { name: '', avatar: '', orgInfo: '' ,sex:null};

View File

@@ -144,27 +144,92 @@
</el-row> </el-row>
</div> </div>
<div style="width: 245px;margin-left: 5px;"> <div style="width: 245px;margin-left: 5px;">
<div id="fixd-box"> <div>
<el-card class="ranking-card"> <div id="fixd-box">
<div slot="header"> <el-card class="ranking-card" >
<span>排行榜</span> <div slot="header">
</div> <span style="font-size: 14px;font-weight: 600;color: #333333;">好评榜</span>
<div> </div>
<el-row class="ranking-title" v-for="(item,index) in ankingList" :key="index"> <div style="padding-bottom:10px">
<el-col :span="6"> <el-row class="ranking-title">
<!-- <el-col :span="15" style="color: #333333;font-size: 14px;">名称</el-col> -->
<!-- <el-col :offset="4" :span="5" class="center" style="color: #333333;font-size: 14px;">分数</el-col> -->
</el-row>
<el-row class="ranking-title bacolor" v-for="(item, index) in ankingList" :key="index" >
<el-col :span="6" style="height:34px">
<img v-if="index===0" :src="`${webBaseUrl}/images/first.png`"/> <img v-if="index===0" :src="`${webBaseUrl}/images/first.png`"/>
<img v-if="index===1" :src="`${webBaseUrl}/images/second.png`"/> <img v-if="index===1" :src="`${webBaseUrl}/images/second.png`"/>
<img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/> <img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/>
</el-col> <span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
<el-col class="center" :span="18">{{item.sysCreateUname}}</el-col> </el-col>
<!-- <el-col class="center" :span="7">{{''}}</el-col> <el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.sysCreateUname" placement="top-start">
<el-col class="center" :span="7">{{item.counts}}</el-col> --> <el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.sysCreateUname }}</el-col>
</el-row> </el-tooltip>
</div> <!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
</el-card> </el-row>
</div>
</el-card>
<div style="height: 10px;"></div>
<el-card class="ranking-card" >
<div slot="header">
<span style="font-size: 14px;font-weight: 600;color: #333333;">人气榜</span>
</div>
<div style="padding-bottom:10px">
<el-row class="ranking-title">
<!-- <el-col :span="15" style="color: #333333;font-size: 14px;">名称</el-col> -->
<!-- <el-col :offset="4" :span="5" class="center" style="color: #333333;font-size: 14px;">分数</el-col> -->
</el-row>
<el-row class="ranking-title bacolor" v-for="(item, index) in Popularity" :key="index" >
<el-col :span="6" style="height:34px">
<img v-if="index===0" :src="`${webBaseUrl}/images/first.png`"/>
<img v-if="index===1" :src="`${webBaseUrl}/images/second.png`"/>
<img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</el-col>
<el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title" placement="top-start">
<el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col>
</el-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
</el-row>
</div>
</el-card>
<div style="height: 10px;"></div>
<el-card class="ranking-card" >
<div slot="header">
<span style="font-size: 14px;font-weight: 600;color: #333333;">人气榜</span>
</div>
<div style="padding-bottom:10px">
<el-row class="ranking-title">
<!-- <el-col :span="15" style="color: #333333;font-size: 14px;">名称</el-col> -->
<!-- <el-col :offset="4" :span="5" class="center" style="color: #333333;font-size: 14px;">分数</el-col> -->
</el-row>
<el-row class="ranking-title bacolor" v-for="(item, index) in Positive" :key="index" >
<el-col :span="6" style="height:34px">
<img v-if="index===0" :src="`${webBaseUrl}/images/first.png`"/>
<img v-if="index===1" :src="`${webBaseUrl}/images/second.png`"/>
<img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</el-col>
<el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title" placement="top-start">
<el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col>
</el-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
</el-row>
</div>
</el-card>
</div>
</div> </div>
</div> </div>
<el-row :gutter="10"> <el-row :gutter="10">
</el-row> </el-row>
<div style="height: 50px;"></div> <div style="height: 50px;"></div>
@@ -198,6 +263,7 @@ import author from '@/components/Portal/authorInfo.vue';
import apiCase from '@/api/modules/cases.js'; import apiCase from '@/api/modules/cases.js';
import apiUser from '@/api/system/user.js'; import apiUser from '@/api/system/user.js';
import apiSearchterm from "@/api/modules/searchterm.js"; import apiSearchterm from "@/api/modules/searchterm.js";
import apiDict from "@/api/modules/dict.js";
export default { export default {
name: 'index', name: 'index',
components: { portalHeader, portalFooter, portalFloatTools, interactBar,timeShow ,author}, components: { portalHeader, portalFooter, portalFloatTools, interactBar,timeShow ,author},
@@ -219,6 +285,8 @@ export default {
list:[] list:[]
}, },
ankingList:[], ankingList:[],
Popularity:[],
Positive:[],
protocolDialogVisible: false, protocolDialogVisible: false,
protocolConfirmButton:true, protocolConfirmButton:true,
queryCondition:{ queryCondition:{
@@ -244,7 +312,9 @@ export default {
} }
this.keyWord = this.$route.query.keyword; this.keyWord = this.$route.query.keyword;
this.getAnkingData() this.getAnkingData()
this.getPopularity()
this.searchterm() this.searchterm()
this.getPositive()
this.getCaseData(); this.getCaseData();
window.addEventListener( window.addEventListener(
"scroll", "scroll",
@@ -377,17 +447,78 @@ export default {
}); });
}, },
getAnkingData(){ getAnkingData(){
apiCase.usernameList(10).then(res=>{ apiCase.usernameList(5).then(res=>{
if(res.status==200){ if(res.status==200){
this.ankingList=res.result this.ankingList=res.result
// console.log(res)
} }
}) })
},
getPopularity(){
apiCase.queryPraises(5).then(res=>{
if(res.status==200){
this.Popularity=res.result
// console.log(this.Popularity)
}
})
},
getPositive(){
apiCase.queryComments(5).then(res=>{
if(res.status==200){
this.Positive=res.result
console.log(res)
}
})
},
jumpRouter(item){
this.$router.push(`/case/detail?id=${item.id}`);
} }
} }
}; };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.ranking-title {
line-height: 34px;
font-size: 15px;
color: #333333;
.center-titlt{
font-size: 15px;
color: #333333;
}
.center{
text-align: right;
}
img{
margin-top: 5px;
}
}
::v-deep .title-line-ellipsis{
// width: 100%;
display: -webkit-box;
overflow: hidden;
text-overflow:ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
box-sizing: border-box;
word-break:break-all;
}
::v-deep .el-card__body{
padding: 0;
}
::v-deep .bacolor:nth-child(odd){
background-color: #fff;
padding: 0 5px;
}
::v-deep .bacolor:nth-child(even){
background-color: #f6f6f6;
padding: 0 5px;
}
::v-deep .el-card{ ::v-deep .el-card{
border: none; border: none;
border-radius: 0px; border-radius: 0px;
@@ -598,8 +729,7 @@ export default {
text-align: center; text-align: center;
} }
} }
.ranking-title {
}
.aligh-title{ .aligh-title{
font-size: 14px; font-size: 14px;
color: #333333; color: #333333;

View File

@@ -77,7 +77,13 @@
<img :src="fileBaseUrl+coursewareInfo.content.content" alt="图片"> <img :src="fileBaseUrl+coursewareInfo.content.content" alt="图片">
</div> </div>
<div v-if="coursewareInfo.content.contentType == 40"> <div v-if="coursewareInfo.content.contentType == 40">
<pdfPreview :autoScroll="true" v-if="coursewareInfo.content.contentType == 40 && coursewareInfo.content.content" :filePath="fileBaseUrl+coursewareInfo.content.content"></pdfPreview> <div style="padding: 10px;color: #767676; " v-if="curCFile.converStatus < 2">
<div>此课程内容无法预览请联系管理员</div>
</div>
<div style="padding: 10px;color: #767676;" v-if="curCFile.converStatus == 3">
此课程内容无法预览请联系管理员
</div>
<pdfPreview :autoScroll="true" v-if="coursewareInfo.content.contentType == 40" :filePath="fileBaseUrl+coursewareInfo.content.content"></pdfPreview>
</div> </div>
<div v-if="coursewareInfo.content.contentType == 41"> <div v-if="coursewareInfo.content.contentType == 41">
<div class="couretitle" style="padding: 20px;text-align: left;" v-html="coursewareInfo.content.content"></div> <div class="couretitle" style="padding: 20px;text-align: left;" v-html="coursewareInfo.content.content"></div>
@@ -305,6 +311,7 @@ export default {
}, },
data() { data() {
return { return {
curCFile:{},
sex:null, sex:null,
playerBoxShow:false, playerBoxShow:false,
userAvatarText, userAvatarText,
@@ -440,7 +447,8 @@ export default {
if($this.coursewareInfo.content.content!='' && $this.coursewareInfo.content.content.indexOf('.pdf')==-1){ if($this.coursewareInfo.content.content!='' && $this.coursewareInfo.content.content.indexOf('.pdf')==-1){
apiCourseFile.detail($this.coursewareInfo.content.contentRefId).then(cfrs=>{ apiCourseFile.detail($this.coursewareInfo.content.contentRefId).then(cfrs=>{
if(cfrs.status==200){ if(cfrs.status==200){
$this.coursewareInfo.content.content=cfrs.result.previewFilePath; this.curCFile = cfrs.result;
$this.coursewareInfo.content.content=cfrs.result.previewFilePath;
}else{ }else{
$this.$message.error('加载pdf课件文件失败'); $this.$message.error('加载pdf课件文件失败');
} }

View File

@@ -48,7 +48,7 @@
</el-radio-group> --> </el-radio-group> -->
</span> </span>
</el-row> </el-row>
<div class="data-content"> <div class="data-content" v-if="qaList.length > 0">
<div :span="24" v-for="(qa, qaidx) in qaList" :key="qaidx" class="qa-list"> <div :span="24" v-for="(qa, qaidx) in qaList" :key="qaidx" class="qa-list">
<div class="qa-info-box"> <div class="qa-info-box">
<div class="qa-info"> <div class="qa-info">
@@ -85,7 +85,11 @@
<div class="pagination-div"> <div class="pagination-div">
<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 && !isSeach">没有更多数据了</span>
<span class="pag-text-msg" v-else-if="isSeach">没有查询到相关内容</span>
</div>
<div v-if="isSeach" style="height:382px">
</div> </div>
</el-card> </el-card>
</el-row> </el-row>
@@ -215,12 +219,16 @@ export default {
//以上是整理后的数据 //以上是整理后的数据
anking: 2, //排行榜 anking: 2, //排行榜
ankingList: [], ankingList: [],
styleControl:2 styleControl:2,
isSeach:false,
}; };
}, },
mounted() { mounted() {
this.queryKeyWord = this.$route.query.keyword; this.queryKeyWord = this.$route.query.keyword;
this.queryConditions.keyword = this.queryKeyWord; this.queryConditions.keyword = this.queryKeyWord;
if(this.queryConditions.keyword != '') {
this.isSeach = true;
}
this.getQaData(true); this.getQaData(true);
this.getAnkingData(); this.getAnkingData();
window.addEventListener("scroll", this.handleScroll); window.addEventListener("scroll", this.handleScroll);
@@ -232,6 +240,7 @@ export default {
methods: { methods: {
emitInput(val){ emitInput(val){
this.queryKeyWord = val; this.queryKeyWord = val;
this.isSeach =true;
this.search(); this.search();
}, },
//发布回答 //发布回答
@@ -373,6 +382,7 @@ export default {
.potallist(this.queryConditions) .potallist(this.queryConditions)
.then(res => { .then(res => {
if (res.status == 200 && res.result.list.length > 0) { if (res.status == 200 && res.result.list.length > 0) {
this.isSeach = false;
res.result.list.forEach(item => { res.result.list.forEach(item => {
item.authorInfo = { aid: '', name: '', orgInfo: '', avatar: '',sex:null, }; item.authorInfo = { aid: '', name: '', orgInfo: '', avatar: '',sex:null, };
}); });

View File

@@ -82,7 +82,15 @@
</div> </div>
</div> </div>
</div> </div>
<div v-if="resType == 40"><pdfPreview :autoScroll="true" v-if="resType == 40" :filePath="fileBaseUrl + contentData.content"></pdfPreview></div> <div v-if="resType == 40">
<div style="padding: 10px;color: #767676; " v-if="curCFile.converStatus < 2">
<div>此课程内容无法预览请联系管理员</div>
</div>
<div style="padding: 10px;color: #767676;" v-if="curCFile.converStatus == 3">
此课程内容无法预览请联系管理员
</div>
<pdfPreview :autoScroll="true" v-if="resType == 40" :filePath="fileBaseUrl + contentData.content"></pdfPreview>
</div>
<div v-if="resType == 41"><div style="padding: 20px;" v-html="contentData.content"></div></div> <div v-if="resType == 41"><div style="padding: 20px;" v-html="contentData.content"></div></div>
<div v-if="resType == 52"> <div v-if="resType == 52">
<div v-if="contentData.content != ''"> <div v-if="contentData.content != ''">
@@ -255,6 +263,7 @@ export default {
components: { courseImage, portalHeader, portalFooter, hyperLink, comments, homework, exam, interactBar, assess, pdfPreview, audioPlayer, videoPlayer }, components: { courseImage, portalHeader, portalFooter, hyperLink, comments, homework, exam, interactBar, assess, pdfPreview, audioPlayer, videoPlayer },
data() { data() {
return { return {
curCFile:{},
interactRuning:false, interactRuning:false,
playerBoxShow:false, playerBoxShow:false,
userAvatarText, userAvatarText,
@@ -807,17 +816,19 @@ export default {
let url=this.fileBaseUrl+this.curriculumData.url; let url=this.fileBaseUrl+this.curriculumData.url;
//this.createVideoBlob(url); //this.createVideoBlob(url);
} else if (r.contentType == 40) { } else if (r.contentType == 40) {
//let url = this.fileBaseUrl + r.content; // if (r.content != '' && r.content.indexOf('.pdf') == -1) {
if (r.content != '' && r.content.indexOf('.pdf') == -1) {
apiCourseFile.detail(r.contentRefId).then(cfrs => { apiCourseFile.detail(r.contentRefId).then(cfrs => {
if (cfrs.status == 200) { if (cfrs.status == 200) {
r.content = cfrs.result.previewFilePath; r.content = cfrs.result.previewFilePath;
//console.log(r.content); this.curCFile = cfrs.result;
if(cfrs.result.previewFilePath == '' && cfrs.result.filePath.indexOf('pdf') > -1) {
r.content = cfrs.result.filePath;
}
} else { } else {
$this.$message.error('加载pdf课件文件失败'); $this.$message.error('加载pdf课件文件失败');
} }
}); });
} // }
} else if (r.contentType == 52) { } else if (r.contentType == 52) {
this.isAppendTime=false; this.isAppendTime=false;
if (r.content.startsWith('\{')) { if (r.content.startsWith('\{')) {