mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-09 02:46:44 +08:00
我的收藏回答
This commit is contained in:
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<interactBar :type="3" :readonly="true" :data="item" :views="false" :shares="false"></interactBar>
|
<interactBar :type="3" :readonly="true" :data="item.cases" :views="false" :shares="false"></interactBar>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -472,6 +472,8 @@ export default {
|
|||||||
postData.title=this.data.name;
|
postData.title=this.data.name;
|
||||||
}else if(this.type==60){
|
}else if(this.type==60){
|
||||||
postData.title=this.data.content;
|
postData.title=this.data.content;
|
||||||
|
} else if(this.type==5){
|
||||||
|
postData.title='收藏回答';
|
||||||
} else {
|
} else {
|
||||||
postData.title=this.data.title;
|
postData.title=this.data.title;
|
||||||
}
|
}
|
||||||
|
|||||||
123
src/components/Qa/answerList.vue
Normal file
123
src/components/Qa/answerList.vue
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
<template>
|
||||||
|
<div class="answer-list">
|
||||||
|
<ul>
|
||||||
|
<li class="answer-list-index" v-for="item in items" :key="item.id">
|
||||||
|
<!-- <p class="portal-summary-text" style="margin-bottom:18px">
|
||||||
|
<span v-if="!personal || isFollow">{{item.aname}}</span>
|
||||||
|
{{item.cusInfo}}<span style="margin-left:28px">{{item.eventTime}}</span>
|
||||||
|
<span v-if="item.aid == userInfo.aid" class="follow-hide pointer" style="float:right">
|
||||||
|
<span v-if="item.hidden">已隐藏</span>
|
||||||
|
<span v-else @click="emitHide(item.id)"> <svg-icon style="margin-right: 10px;font-size:22px;padding-top: 4px;" icon-class="eyes"></svg-icon>隐藏 </span>
|
||||||
|
</span>
|
||||||
|
</p> -->
|
||||||
|
<h6 class="answer-title-info follow-home-title">
|
||||||
|
<span class="pointer" @click="jumpDetail(item)">{{item.qtitle || item.title}}</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 @click="emitHide(item.id)"> <svg-icon style="margin-right: 10px;font-size:22px;padding-top: 4px;" icon-class="eyes"></svg-icon>隐藏 </span> -->
|
||||||
|
</span>
|
||||||
|
</h6>
|
||||||
|
<p class="answer-text">
|
||||||
|
{{displayAll(item)}}
|
||||||
|
<span style="color:#0B4D9D;cursor:pointer;" v-if="item.content && item.content.length>180" @click.stop="changeIsAll(item)">
|
||||||
|
{{item.isAll?'收起':'全文展开'}}
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<div>
|
||||||
|
<interactBar :type="0" :data="item" :shares="false" :views="false" :readonly="true"></interactBar>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import interactBar from "@/components/Portal/interactBar.vue";
|
||||||
|
import author from "@/components/Portal/authorInfo.vue";
|
||||||
|
import { mapGetters,mapActions } from 'vuex';
|
||||||
|
export default{
|
||||||
|
name:"answerList",
|
||||||
|
components: {
|
||||||
|
interactBar,
|
||||||
|
// timeShow,
|
||||||
|
author
|
||||||
|
},
|
||||||
|
props:{
|
||||||
|
items:{
|
||||||
|
type:Array,
|
||||||
|
default:()=>[]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['userInfo']),
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
answerList:[]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
delCollectItem(item) {
|
||||||
|
this.$confirm('您确定要取消收藏吗?', '取消提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.$emit('confirm', item);
|
||||||
|
// apiFavorites.del(item){
|
||||||
|
// console.log(this.$parent,"我拿到的父组件")
|
||||||
|
// }
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
},
|
||||||
|
jumpDetail(item){
|
||||||
|
this.$router.push('/qa/answer?id='+item.qid)
|
||||||
|
},
|
||||||
|
emitHide(id) {
|
||||||
|
this.$emit('hideIndex',id)
|
||||||
|
},
|
||||||
|
displayAll(item) {
|
||||||
|
if (!item.isAll && item.content && item.content.length > 180) {
|
||||||
|
return item.content.slice(0, 180) + "...";
|
||||||
|
}
|
||||||
|
return item.content;
|
||||||
|
},
|
||||||
|
//展示全部
|
||||||
|
changeIsAll(item) {
|
||||||
|
item.isAll = !item.isAll;
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.answer-list{
|
||||||
|
ul{
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.answer-list-index{
|
||||||
|
padding: 30px 0;
|
||||||
|
border-bottom: 1px solid rgba($color: #999999, $alpha: 0.2) !important;
|
||||||
|
::v-deep .interact-bar-btns{
|
||||||
|
.interact-bar-btn{
|
||||||
|
text-align: right;
|
||||||
|
min-width: 78px !important;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.answer-title-info{
|
||||||
|
margin: 0;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
.answer-text{
|
||||||
|
margin-bottom: 18px;
|
||||||
|
font-size: 14px;
|
||||||
|
word-break:break-all;
|
||||||
|
color: #333330;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
<div class="answer-time">
|
<div class="answer-time">
|
||||||
<div> <!--之前显示时间的位置--> </div>
|
<div> <!--之前显示时间的位置--> </div>
|
||||||
<div style="margin-right: 10px;">
|
<div style="margin-right: 10px;">
|
||||||
<interactBar :type="5" :data="item" :favorites="false" :comments="false" :shares="false" :views="false"></interactBar>
|
<interactBar :type="5" :data="item" :comments="false" :shares="false" :views="false"></interactBar>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="answer-boot">
|
<div class="answer-boot">
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
<note-list v-if="item.type==6" @confirm="confirm" :list="[item]"></note-list>
|
<note-list v-if="item.type==6" @confirm="confirm" :list="[item]"></note-list>
|
||||||
<article-items v-if="item.type==2" @confirm="confirm" :items="[item]"></article-items>
|
<article-items v-if="item.type==2" @confirm="confirm" :items="[item]"></article-items>
|
||||||
<qa-items v-if="item.type==4" :items="[item]" @confirm="confirm" :collect="true" :share="false" :remove="false" :edit="false"></qa-items>
|
<qa-items v-if="item.type==4" :items="[item]" @confirm="confirm" :collect="true" :share="false" :remove="false" :edit="false"></qa-items>
|
||||||
|
<answer-items v-if="item.type==5" :items="[item]" @confirm="confirm"></answer-items>
|
||||||
</div>
|
</div>
|
||||||
<!-- v-if="courseList.count>courseList.pageSize" -->
|
<!-- v-if="courseList.count>courseList.pageSize" -->
|
||||||
<div v-if="dataList.list.length > 0" style="text-align: center;margin-top:57px">
|
<div v-if="dataList.list.length > 0" style="text-align: center;margin-top:57px">
|
||||||
@@ -172,23 +173,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="问答" name="qa">
|
<el-tab-pane label="提问" name="qa">
|
||||||
<div>
|
<div>
|
||||||
<!-- <div style="padding-bottom: 10px;">
|
|
||||||
<div style="display: flex;justify-content:flex-start;">
|
|
||||||
<div style="padding: 0px 5px;">
|
|
||||||
<el-select v-model="qaList.resolve" style="width: 110px;" clearable>
|
|
||||||
<el-option label="未解决" :value="false"></el-option>
|
|
||||||
<el-option label="已解决" :value="true"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</div>
|
|
||||||
<div style="padding: 0px 5px;"><el-input placeholder="关键词搜索" v-model="qaList.title"></el-input></div>
|
|
||||||
<div style="padding: 0px 5px;"><el-button @click="findQa" icon="el-icon-search" type="primary" >搜索</el-button></div>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
<qa-items :items="qaList.list" @confirm="confirm" :collect="true" :share="false" :remove="false" :edit="false"></qa-items>
|
<qa-items :items="qaList.list" @confirm="confirm" :collect="true" :share="false" :remove="false" :edit="false"></qa-items>
|
||||||
</div>
|
</div>
|
||||||
<!-- v-if="qaList.count>qaList.pageSize" -->
|
|
||||||
<div v-if="qaList.list.length > 0" style="text-align: center;margin-top:57px">
|
<div v-if="qaList.list.length > 0" style="text-align: center;margin-top:57px">
|
||||||
<el-pagination
|
<el-pagination
|
||||||
background
|
background
|
||||||
@@ -208,6 +196,29 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="回答" name="answer">
|
||||||
|
<div>
|
||||||
|
<answer-items :items="answerList.list" @confirm="confirm"></answer-items>
|
||||||
|
</div>
|
||||||
|
<div v-if="answerList.list.length > 0" style="text-align: center;margin-top:57px">
|
||||||
|
<el-pagination
|
||||||
|
background
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
:current-page="answerList.pageIndex"
|
||||||
|
:page-sizes="[10, 20, 30, 40]"
|
||||||
|
:page-size="answerList.pageSize"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="answerList.count"
|
||||||
|
></el-pagination>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<div v-if="answerList.list.length == 0">
|
||||||
|
<div v-if="isSearh" class="zan-wu">没有查询到相关内容</div>
|
||||||
|
<div v-else class="zan-wu">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<div style="height: 100px;text-align: center;"></div>
|
<div style="height: 100px;text-align: center;"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -220,6 +231,7 @@ import courseItems from '@/components/Course/collectItem.vue';
|
|||||||
import caseItems from '@/components/Case/collectList.vue';
|
import caseItems from '@/components/Case/collectList.vue';
|
||||||
import noteList from '@/components/HomePage/favoritesNote.vue'
|
import noteList from '@/components/HomePage/favoritesNote.vue'
|
||||||
import qaItems from '@/components/Qa/favoritesQaList.vue';
|
import qaItems from '@/components/Qa/favoritesQaList.vue';
|
||||||
|
import answerItems from '@/components/Qa/answerList.vue';
|
||||||
import apiFavorite from '@/api/modules/favorites.js';
|
import apiFavorite from '@/api/modules/favorites.js';
|
||||||
import apiUser from '@/api/system/user.js';
|
import apiUser from '@/api/system/user.js';
|
||||||
import apiNote from '@/api/phase2/note.js';
|
import apiNote from '@/api/phase2/note.js';
|
||||||
@@ -228,7 +240,7 @@ import courseImage from '@/components/Course/courseImage.vue';
|
|||||||
import {cutFullName} from "@/utils/tools.js";
|
import {cutFullName} from "@/utils/tools.js";
|
||||||
export default {
|
export default {
|
||||||
name: 'myShareIndex',
|
name: 'myShareIndex',
|
||||||
components: { articleItems, courseItems, qaItems, courseImage,caseItems,noteList},
|
components: { articleItems, courseItems, qaItems, courseImage,caseItems,noteList,answerItems},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isSearh:false,
|
isSearh:false,
|
||||||
@@ -248,6 +260,12 @@ export default {
|
|||||||
label: '录播课'
|
label: '录播课'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
answerList:{
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
count: 0,
|
||||||
|
list: []
|
||||||
|
},
|
||||||
qaList: {
|
qaList: {
|
||||||
pageIndex: 1,
|
pageIndex: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
@@ -306,6 +324,9 @@ export default {
|
|||||||
if (this.tabName == 'course') {
|
if (this.tabName == 'course') {
|
||||||
this.findCourse();
|
this.findCourse();
|
||||||
}
|
}
|
||||||
|
if (this.tabName == 'answer') {
|
||||||
|
this.findAnswer();
|
||||||
|
}
|
||||||
if (this.tabName == 'all') {
|
if (this.tabName == 'all') {
|
||||||
this.findAll();
|
this.findAll();
|
||||||
}
|
}
|
||||||
@@ -336,6 +357,9 @@ export default {
|
|||||||
if (this.tabName == 'all') {
|
if (this.tabName == 'all') {
|
||||||
this.findAll();
|
this.findAll();
|
||||||
}
|
}
|
||||||
|
if (this.tabName == 'answer') {
|
||||||
|
this.findAnswer();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
resData() {
|
resData() {
|
||||||
this.qaList.pageIndex = 1;
|
this.qaList.pageIndex = 1;
|
||||||
@@ -370,6 +394,9 @@ export default {
|
|||||||
if (tab.name == 'all') {
|
if (tab.name == 'all') {
|
||||||
this.findAll();
|
this.findAll();
|
||||||
}
|
}
|
||||||
|
if (this.tabName == 'answer') {
|
||||||
|
this.findAnswer();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
//分页点击事件
|
//分页点击事件
|
||||||
handleSizeChange(value) {
|
handleSizeChange(value) {
|
||||||
@@ -396,6 +423,10 @@ export default {
|
|||||||
this.dataList.pageSize = value;
|
this.dataList.pageSize = value;
|
||||||
this.findAll();
|
this.findAll();
|
||||||
}
|
}
|
||||||
|
if (this.tabName == 'answer') {
|
||||||
|
this.answerList.pageSize = value;
|
||||||
|
this.findAnswer();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
//分页点击事件
|
//分页点击事件
|
||||||
handleCurrentChange(value) {
|
handleCurrentChange(value) {
|
||||||
@@ -423,10 +454,33 @@ export default {
|
|||||||
this.dataList.pageIndex = value;
|
this.dataList.pageIndex = value;
|
||||||
this.findAll();
|
this.findAll();
|
||||||
}
|
}
|
||||||
|
if (this.tabName == 'answer') {
|
||||||
|
this.answerList.pageIndex = value;
|
||||||
|
this.findAnswer();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
findAnswer() {
|
||||||
|
let query = {
|
||||||
|
pageIndex:this.answerList.pageIndex,
|
||||||
|
pageSize:this.answerList.pageSize,
|
||||||
|
// dataType:1,
|
||||||
|
// orderType 排序顺序 顺序倒叙
|
||||||
|
// orderField 排序字段
|
||||||
|
keyword: this.keyword.trim()
|
||||||
|
}
|
||||||
|
apiFavorite.findAnswerPage(query).then(res=>{
|
||||||
|
if(res.status==200){
|
||||||
|
res.result.list.forEach(item=>{
|
||||||
|
item.isAll = false;
|
||||||
|
})
|
||||||
|
this.answerList.count = res.result.count;
|
||||||
|
this.answerList.list = res.result.list;
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
findNote() {
|
findNote() {
|
||||||
let query = {
|
let query = {
|
||||||
paegIndex:this.noteList.pageIndex,
|
pageIndex:this.noteList.pageIndex,
|
||||||
pageSize:this.noteList.pageSize,
|
pageSize:this.noteList.pageSize,
|
||||||
dataType:1,
|
dataType:1,
|
||||||
// orderType 排序顺序 顺序倒叙
|
// orderType 排序顺序 顺序倒叙
|
||||||
@@ -749,7 +803,7 @@ export default {
|
|||||||
},
|
},
|
||||||
confirm(item) {
|
confirm(item) {
|
||||||
let id = '';
|
let id = '';
|
||||||
if(item.type){
|
if(item.favoriteId){
|
||||||
id = item.favoriteId;
|
id = item.favoriteId;
|
||||||
} else {
|
} else {
|
||||||
id = item.id;
|
id = item.id;
|
||||||
@@ -775,6 +829,9 @@ export default {
|
|||||||
if (this.tabName == 'all') {
|
if (this.tabName == 'all') {
|
||||||
this.findAll();
|
this.findAll();
|
||||||
}
|
}
|
||||||
|
if (this.tabName == 'answer') {
|
||||||
|
this.findAnswer();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res.message);
|
this.$message.error(res.message);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user