mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-11 03:46:44 +08:00
我的收藏笔记tab
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
<!-- <span>收藏时间:{{ item.time || item.favoritesTime | timeFilter }}</span> -->
|
||||
</div>
|
||||
<div class="article-info-summary two-line-ellipsis">{{ item.summary || item.content}}</div>
|
||||
<interactBar :type="2" :readonly="true" :data="items" :views="false" :shares="false"></interactBar>
|
||||
<interactBar :type="2" :readonly="true" :data="item" :views="false" :shares="false"></interactBar>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<router-link :to="'/case/detail?id='+item.cases.id" > {{item.cases.summary}}</router-link>
|
||||
</div>
|
||||
<div>
|
||||
<interactBar :type="3" :readonly="true" :data="items" :views="false" :shares="false"></interactBar>
|
||||
<interactBar :type="3" :readonly="true" :data="item" :views="false" :shares="false"></interactBar>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import interactBar from '@/components/Portal/interactBar.vue';
|
||||
// import interactBar from '@/components/Portal/interactBar.vue';
|
||||
import courseImage from '@/components/Course/courseImage.vue';
|
||||
export default {
|
||||
name: 'comStudyItem',
|
||||
@@ -75,9 +75,12 @@ export default {
|
||||
};
|
||||
},
|
||||
components: {
|
||||
interactBar,
|
||||
// interactBar,
|
||||
courseImage
|
||||
},
|
||||
mounted() {
|
||||
console.log(this.items,'items');
|
||||
},
|
||||
methods: {
|
||||
coudetail(item) {
|
||||
// let routeData = this.$router.resolve({ path: '/course/detail?id=' + item.objId });
|
||||
@@ -103,27 +106,27 @@ export default {
|
||||
contentTypeFilter(value) {
|
||||
let obj = {};
|
||||
switch (value) {
|
||||
case '10': {
|
||||
case 10: {
|
||||
obj.class = 'uc-course-type2';
|
||||
obj.text = '录播';
|
||||
break;
|
||||
}
|
||||
case '21': {
|
||||
case 21: {
|
||||
obj.class = 'uc-course-type2';
|
||||
obj.text = '直播';
|
||||
break;
|
||||
}
|
||||
case '20': {
|
||||
case 20: {
|
||||
obj.class = 'uc-course-type2';
|
||||
obj.text = '录播';
|
||||
break;
|
||||
}
|
||||
case '30': {
|
||||
case 30: {
|
||||
obj.class = 'uc-course-type2';
|
||||
obj.text = '面授';
|
||||
break;
|
||||
}
|
||||
case '90': {
|
||||
case 90: {
|
||||
obj.class = 'uc-course-type2';
|
||||
obj.text = '混合';
|
||||
break;
|
||||
|
||||
109
src/components/HomePage/favoritesNote.vue
Normal file
109
src/components/HomePage/favoritesNote.vue
Normal file
@@ -0,0 +1,109 @@
|
||||
<template>
|
||||
<div class="note-list">
|
||||
<ul v-if="list.length > 0">
|
||||
<li class="note-list-index" v-for="item in list" :key="item.id">
|
||||
<p style="margin-bottom:18px;">
|
||||
<span style="font-size: 16px;font-weight: 600;color: #333;">{{item.courseName}}</span> <span class="qa-bq">#笔记#</span>
|
||||
|
||||
<span class="follow-hide" style="float:right">
|
||||
<el-button @click.stop="delCollectItem(item)" type="text" icon="el-icon-star-on" style="color:#8590A6">取消收藏</el-button>
|
||||
</span>
|
||||
</p>
|
||||
<!-- <h6 class="note-title-info follow-home-title">
|
||||
|
||||
</h6> -->
|
||||
<p class="note-text">
|
||||
{{item.content}}
|
||||
</p>
|
||||
<div>
|
||||
<interactBar :type="6" :data="item" :shares="false" :views="false" :readonly="true"></interactBar>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div v-else class="home-no-list">
|
||||
<img class="img" :src="`${webBaseUrl}/images/homeWu/no-note.png`" alt="" srcset="">
|
||||
<p class="text">还没有笔记</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import interactBar from "@/components/Portal/interactBar.vue";
|
||||
// import author from "@/components/Portal/authorInfo.vue";
|
||||
export default{
|
||||
name:"NoteList",
|
||||
components: {
|
||||
interactBar,
|
||||
// timeShow,
|
||||
// author
|
||||
},
|
||||
props:{
|
||||
list:{
|
||||
type:Array,
|
||||
default:()=>[]
|
||||
},
|
||||
isDynamic:{
|
||||
type:Boolean,
|
||||
default:false,
|
||||
},
|
||||
personal:{
|
||||
type:Boolean,
|
||||
default:false,
|
||||
}
|
||||
},
|
||||
data(){
|
||||
return{
|
||||
noteList:[]
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods:{
|
||||
delCollectItem(item) {
|
||||
this.$confirm('您确定要取消收藏吗?', '取消提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$emit('confirm', item);
|
||||
// apiFavorites.del(item){
|
||||
// console.log(this.$parent,"我拿到的父组件")
|
||||
// }
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
emitHide(id) {
|
||||
this.$emit('hideIndex',id)
|
||||
},
|
||||
//展示全部
|
||||
changeIsAll(item) {
|
||||
item.isAll = !item.isAll;
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.note-list{
|
||||
ul{
|
||||
margin: 0;
|
||||
}
|
||||
.note-list-index{
|
||||
padding: 30px 0;
|
||||
border-bottom: 1px solid rgba($color: #999999, $alpha: 0.2) !important;
|
||||
}
|
||||
.note-title-info{
|
||||
margin: 0;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.note-text{
|
||||
margin-bottom: 18px;
|
||||
font-size: 14px;
|
||||
color: #333330;
|
||||
line-height: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<div class="one-line-ellipsis" style="color: #333330;font-size: 14px;padding-top:1px">{{ item.question.bestAnswer }}</div>
|
||||
</div>
|
||||
<interactBar :type="4" :readonly="true" :data="items" :views="false" :shares="false"></interactBar>
|
||||
<interactBar :type="4" :readonly="true" :data="item" :views="false" :shares="false"></interactBar>
|
||||
|
||||
<!-- <div class="article-info-tools"> -->
|
||||
<!-- <authorInfo :avatar="item.avatar" :name="item.name" :info="item.orgInfo" :sex="item.sex"></authorInfo> -->
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
</div>
|
||||
<img class="banner-img" style=" margin: 0 auto;" :src=" fileBaseUrl + item.image" alt="">
|
||||
</swiper-slide>
|
||||
<div class="swiper-pagination" slot="pagination"></div>
|
||||
</swiper>
|
||||
</div>
|
||||
<div class="personal-panel">
|
||||
@@ -969,7 +970,7 @@
|
||||
right: 8%;
|
||||
top: 105px;
|
||||
// background: url('/images/homeWu/personal-bgimg.png');
|
||||
background: rgba($color: #fff, $alpha: 0.2);
|
||||
background: rgba($color: #fff, $alpha: 0.46);
|
||||
border-radius: 8px;
|
||||
z-index: 999;
|
||||
backdrop-filter: blur(10px);
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</el-col>
|
||||
<el-col :span="8" v-for="(item,index) in testList" :key="index">
|
||||
<!-- @click="textdetail(item)" -->
|
||||
<div>
|
||||
<div style="text-align: center;">
|
||||
<!-- @click="jumpRouter(item)" -->
|
||||
<section>
|
||||
<!-- <div @click="hasPermission(item)">
|
||||
|
||||
@@ -99,6 +99,23 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="笔记" name="note">
|
||||
<div>
|
||||
<note-list @confirm="confirm" :list="noteList.list"></note-list>
|
||||
</div>
|
||||
<div style="text-align: center;margin-top:50px;" v-if="caseList.list.length > 0">
|
||||
<el-pagination
|
||||
background
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="noteList.pageIndex"
|
||||
:page-sizes="[10, 20, 30, 40]"
|
||||
:page-size="noteList.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="noteList.count"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="案例" name="case">
|
||||
<div>
|
||||
<case-items @confirm="confirm" :items="caseList.list"></case-items>
|
||||
@@ -199,15 +216,17 @@
|
||||
import articleItems from '@/components/Article/collectList.vue';
|
||||
import courseItems from '@/components/Course/collectItem.vue';
|
||||
import caseItems from '@/components/Case/collectList.vue';
|
||||
import noteList from '@/components/HomePage/favoritesNote.vue'
|
||||
import qaItems from '@/components/Qa/favoritesQaList.vue';
|
||||
import apiFavorite from '@/api/modules/favorites.js';
|
||||
import apiUser from '@/api/system/user.js';
|
||||
import apiNote from '@/api/phase2/note.js';
|
||||
import apiCourse from "@/api/modules/coursePortal.js";
|
||||
import courseImage from '@/components/Course/courseImage.vue';
|
||||
import {cutFullName} from "@/utils/tools.js";
|
||||
export default {
|
||||
name: 'myShareIndex',
|
||||
components: { articleItems, courseItems, qaItems, courseImage,caseItems },
|
||||
components: { articleItems, courseItems, qaItems, courseImage,caseItems,noteList},
|
||||
data() {
|
||||
return {
|
||||
isSearh:false,
|
||||
@@ -239,6 +258,12 @@ export default {
|
||||
count: 0,
|
||||
list: []
|
||||
},
|
||||
noteList:{
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
count: 0,
|
||||
list: []
|
||||
},
|
||||
articleList: {
|
||||
type: '',
|
||||
pageIndex: 1,
|
||||
@@ -270,6 +295,9 @@ export default {
|
||||
if (this.tabName == 'case') {
|
||||
this.findCase();
|
||||
}
|
||||
if (this.tabName == 'note') {
|
||||
this.findNote();
|
||||
}
|
||||
if (this.tabName == 'article') {
|
||||
this.findArticle();
|
||||
}
|
||||
@@ -294,6 +322,9 @@ export default {
|
||||
if (this.tabName == 'case') {
|
||||
this.findCase();
|
||||
}
|
||||
if (this.tabName == 'note') {
|
||||
this.findNote();
|
||||
}
|
||||
if (this.tabName == 'article') {
|
||||
this.findArticle();
|
||||
}
|
||||
@@ -325,6 +356,9 @@ export default {
|
||||
if (tab.name == 'case') {
|
||||
this.findCase();
|
||||
}
|
||||
if (this.tabName == 'note') {
|
||||
this.findNote();
|
||||
}
|
||||
if (tab.name == 'article') {
|
||||
this.findArticle();
|
||||
}
|
||||
@@ -345,6 +379,9 @@ export default {
|
||||
this.caseList.pageSize = value;
|
||||
this.findCase();
|
||||
}
|
||||
if (this.tabName == 'note') {
|
||||
this.findNote();
|
||||
}
|
||||
if (this.tabName == 'article') {
|
||||
this.articleList.pageSize = value;
|
||||
this.findArticle();
|
||||
@@ -368,6 +405,10 @@ export default {
|
||||
this.caseList.pageIndex = value;
|
||||
this.findCase();
|
||||
}
|
||||
if (this.tabName == 'note') {
|
||||
this.noteList.pageIndex = value;
|
||||
this.findNote();
|
||||
}
|
||||
if (this.tabName == 'article') {
|
||||
this.articleList.pageIndex = value;
|
||||
this.findArticle();
|
||||
@@ -381,6 +422,25 @@ export default {
|
||||
this.findAll();
|
||||
}
|
||||
},
|
||||
findNote() {
|
||||
let query = {
|
||||
paegIndex:this.noteList.pageIndex,
|
||||
pageSize:this.noteList.pageSize,
|
||||
dataType:1,
|
||||
// orderType 排序顺序 顺序倒叙
|
||||
// orderField 排序字段
|
||||
keyword: this.keyword.trim()
|
||||
}
|
||||
apiNote.pagelist(query).then(res=>{
|
||||
if(res.status==200){
|
||||
console.log(res,'res');
|
||||
this.noteList.count = res.result.count;
|
||||
this.noteList.list = res.result.list;
|
||||
console.log(this.noteList.list,'this.noteList.list ');
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
findAll() {
|
||||
let query = {
|
||||
pageIndex: this.dataList.pageIndex,
|
||||
@@ -389,7 +449,7 @@ export default {
|
||||
};
|
||||
apiFavorite.queryAll(query).then(res=>{
|
||||
if(res.status==200){
|
||||
this.dataList.count=res.result.count
|
||||
this.dataList.count=res.result.count;
|
||||
if(res.result.length!=0){
|
||||
let courseIds=[];
|
||||
res.result.list.map(item=>{
|
||||
@@ -692,6 +752,9 @@ export default {
|
||||
if (this.tabName == 'case') {
|
||||
this.findCase();
|
||||
}
|
||||
if (this.tabName == 'note') {
|
||||
this.findNote();
|
||||
}
|
||||
if (this.tabName == 'article') {
|
||||
this.findArticle();
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<span>{{current.end}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="exp-table">
|
||||
<div class="exp-table" style="margin-top:36px">
|
||||
<div class="table-hear">
|
||||
<div style="margin-left:5px">排名</div>
|
||||
<div style="margin-left:5px">姓名</div>
|
||||
|
||||
Reference in New Issue
Block a user