mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-student.git
synced 2025-12-15 05:46:48 +08:00
讨论
This commit is contained in:
@@ -34,7 +34,7 @@ export const EXAMINATION_QUERYEXAMINATIONDETAILBYID = '/examination/queryExamina
|
|||||||
export const DISCUSS_COLLECTION = '/discussSubmit/clickDiscussCollectionCountOr post'
|
export const DISCUSS_COLLECTION = '/discussSubmit/clickDiscussCollectionCountOr post'
|
||||||
export const DISCUSS_LIKE = '/discussSubmit/clickDiscussLikeCountOr post'
|
export const DISCUSS_LIKE = '/discussSubmit/clickDiscussLikeCountOr post'
|
||||||
export const DISCUSS_LIST = '/discussSubmit/list'
|
export const DISCUSS_LIST = '/discussSubmit/list'
|
||||||
export const DISCUSS_DETAIL = '/discuss/getDiscussDetail'
|
export const DISCUSS_DETAIL = '/discussSubmit/detail'
|
||||||
export const DISCUSS_SUBMIT_REVIEW_LIST = '/discussSubmit/queryDiscussSubmitAndReview'
|
export const DISCUSS_SUBMIT_REVIEW_LIST = '/discussSubmit/queryDiscussSubmitAndReview'
|
||||||
|
|
||||||
export const COMMENT_LIST = '/comment/list'
|
export const COMMENT_LIST = '/comment/list'
|
||||||
|
|||||||
@@ -1,28 +1,64 @@
|
|||||||
import router from "@/router";
|
import router from "@/router";
|
||||||
import {ref, watch} from "vue";
|
import {reactive, ref, toRefs, watch} from "vue";
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
|
export function usePage(_url, param) {
|
||||||
|
|
||||||
|
const state = reactive({
|
||||||
|
data: {},
|
||||||
|
loading: false,
|
||||||
|
total: 0,
|
||||||
|
size: 10,
|
||||||
|
current: 1,
|
||||||
|
params: {pageNo: 1, pageSize: 10, ...param}
|
||||||
|
})
|
||||||
|
|
||||||
|
watch(param, () => {
|
||||||
|
state.params = {...state.params, ...param}
|
||||||
|
fetchData()
|
||||||
|
})
|
||||||
|
|
||||||
|
function fetchData() {
|
||||||
|
state.loading = true
|
||||||
|
request(_url, state.params).then(r => {
|
||||||
|
state.params.pageNo === 1 ? (state.data = r.data.records) : (state.data = [...state.data, ...r.data.records])
|
||||||
|
state.size = r.data.size
|
||||||
|
state.total = r.data.total
|
||||||
|
state.current = r.data.current
|
||||||
|
state.loading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchData()
|
||||||
|
return {
|
||||||
|
...toRefs(state),
|
||||||
|
fetchData,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export function useRequest(_url, params = {}) {
|
export function useRequest(_url, params = {}) {
|
||||||
|
|
||||||
const data = ref({})
|
const state = reactive({
|
||||||
const loading = ref(false)
|
data: {},
|
||||||
|
loading: false,
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
watch(params, () => {
|
watch(params, () => {
|
||||||
fetchData()
|
fetchData()
|
||||||
})
|
})
|
||||||
|
|
||||||
function fetchData() {
|
function fetchData() {
|
||||||
loading.value = true
|
state.loading = true
|
||||||
request(_url, params).then(r => {
|
request(_url, params).then(r => {
|
||||||
data.value = r.data
|
state.data = r.data
|
||||||
loading.value = false
|
state.loading = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fetchData()
|
fetchData()
|
||||||
return {
|
return {
|
||||||
data,
|
...toRefs(state),
|
||||||
loading,
|
|
||||||
fetchData,
|
fetchData,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,21 +39,18 @@
|
|||||||
<div class="title">
|
<div class="title">
|
||||||
{{ projectInfo.name }}
|
{{ projectInfo.name }}
|
||||||
</div>
|
</div>
|
||||||
<!-- todo #讨论页面 发表帖子跳转到哪里-->
|
<!-- <button class="btn">发表帖子</button>-->
|
||||||
<button class="btn">发表帖子</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-for="(item,i) in projectInfo.stageVoList" :key="i">
|
<div v-for="(item,i) in projectInfo.stageVoList" :key="i">
|
||||||
<div class="line clearfix">
|
<div class="line clearfix">
|
||||||
<div class="linetitle">{{ item.name }}</div>
|
<div class="linetitle">{{ item.name }}</div>
|
||||||
<div class="radi"></div>
|
<div class="radi"></div>
|
||||||
<!-- todo #讨论页面 状态字段没有-->
|
|
||||||
<div class="intime">进行中</div>
|
<div class="intime">进行中</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="allbtn">
|
<div class="allbtn">
|
||||||
<!-- todo #讨论页面 查询条件最新 最热 查询字段-->
|
<button :class="`btnone ${param.searchType==1?'active':''}`" >最新</button>
|
||||||
<button :class="`btnone ${param.searchType==1?'active':''}`" @click="param.searchType=1">最新</button>
|
<button :class="`btntwo ${param.searchType==2?'active':''}`"
|
||||||
<button :class="`btntwo ${param.searchType==2?'active':''}`" @click="param.searchType=2"
|
|
||||||
style="margin-left: 20px">最热
|
style="margin-left: 20px">最热
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -115,13 +112,13 @@ function comment({discussId: id}) {
|
|||||||
function like(d) {
|
function like(d) {
|
||||||
d.praised ? (d.praiseNum -= 1) : (d.praiseNum += 1)
|
d.praised ? (d.praiseNum -= 1) : (d.praiseNum += 1)
|
||||||
d.praised = !d.praised
|
d.praised = !d.praised
|
||||||
request(COMMENT_PRAISE, {targetId: d.discussId, type: 5})
|
request(COMMENT_PRAISE, {targetId: d.discussId, type: 3})
|
||||||
}
|
}
|
||||||
|
|
||||||
function collection(d) {
|
function collection(d) {
|
||||||
d.collected ? (d.collectionNum -= 1) : (d.collectionNum += 1)
|
d.collected ? (d.collectionNum -= 1) : (d.collectionNum += 1)
|
||||||
d.collected = !d.collected
|
d.collected = !d.collected
|
||||||
request(COMMENT_COLLECTION, {targetId: d.discussId, type: 6})
|
request(COMMENT_COLLECTION, {targetId: d.discussId, type: 4})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -174,9 +171,7 @@ function collection(d) {
|
|||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-top: 24px;
|
margin-top: 24px;
|
||||||
// display: flex;
|
display: block;
|
||||||
// flex-direction: column;
|
|
||||||
// align-items: center;
|
|
||||||
.middletitle {
|
.middletitle {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-top: 64px;
|
margin-top: 64px;
|
||||||
@@ -216,7 +211,7 @@ function collection(d) {
|
|||||||
.line {
|
.line {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin: 47px 45px 0 75px;
|
margin: 47px 45px 0 75px;
|
||||||
max-width: 1810px;
|
//max-width: 1810px;
|
||||||
// height: 50px;
|
// height: 50px;
|
||||||
background: #f9f9f9;
|
background: #f9f9f9;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
@@ -37,37 +37,36 @@
|
|||||||
<!-- 中间部分 -->
|
<!-- 中间部分 -->
|
||||||
<div class="middletitle">
|
<div class="middletitle">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
{{ disDetail.discussName }}
|
{{ disDetail.projectName }}
|
||||||
</div>
|
</div>
|
||||||
<!--todo #帖子评论详情 回复功能点击后去哪里-->
|
|
||||||
<button class="btn">回复</button>
|
<button class="btn">回复</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="line clearfix">
|
<div class="line clearfix">
|
||||||
<div class="linetitle">{{ disDetail.discussExplain }}</div>
|
<div class="linetitle">{{ disDetail.stageName }}</div>
|
||||||
<div class="radi"></div>
|
<div class="radi"></div>
|
||||||
<!--todo #帖子评论详情 缺少状态字段-->
|
|
||||||
<div class="intime">进行中</div>
|
<div class="intime">进行中</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="discusscontent clearfix">
|
<div class="discusscontent clearfix">
|
||||||
<div class="contenttop clearfix">
|
<div class="contenttop clearfix">
|
||||||
|
|
||||||
|
|
||||||
<div class="contenttitle">{{ data.discussSubmitTitle }}</div>
|
<div class="contenttitle">{{ disDetail.discussName }}</div>
|
||||||
<div @click="like(data.discussId)"
|
<div @click="like()"
|
||||||
style="display: flex;cursor: pointer;align-items: baseline;margin-left: 20px">
|
style="display: flex;cursor: pointer;align-items: baseline;margin-left: 20px">
|
||||||
<span class="iconfont icon-dianzan" :style="{color:data.isLike?'red':'#b3bdc4',marginLeft: '19px'}"></span>
|
<span class="iconfont icon-dianzan"
|
||||||
<div class="count"> {{ data.discussLikeCount }}</div>
|
:style="{color:disDetail.praised?'red':'#b3bdc4',marginLeft: '19px'}"></span>
|
||||||
|
<div class="count"> {{ disDetail.praiseNum || 0 }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div @click="collection(data.discussId)"
|
<div @click="collection()"
|
||||||
style="display: flex;cursor: pointer;align-items: baseline;margin-left: 20px">
|
style="display: flex;cursor: pointer;align-items: baseline;margin-left: 20px">
|
||||||
<span class="iconfont icon-shoucang"
|
<span class="iconfont icon-shoucang"
|
||||||
:style="{color:data.isCollection?'red':'#b3bdc4',marginLeft: '19px'}"></span>
|
:style="{color: disDetail.collected?'red':'#b3bdc4',marginLeft: '19px'}"></span>
|
||||||
<div class="count"> {{ data.discussCollectionCount }}</div>
|
<div class="count"> {{ disDetail.collectionNum || 0 }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="contentmid">
|
<div class="contentmid">
|
||||||
{{ data.discussSubmitTitle }}
|
{{ disDetail.discussExplain }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -75,15 +74,14 @@
|
|||||||
<div class="bascinfor">
|
<div class="bascinfor">
|
||||||
<div class="inputone">
|
<div class="inputone">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="textarea1"
|
v-model="disComment.content"
|
||||||
:autosize="{ minRows: 5, maxRows: 5 }"
|
:autosize="{ minRows: 5, maxRows: 5 }"
|
||||||
resize="none"
|
resize="none"
|
||||||
maxlength="100"
|
maxlength="100"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder="写评论~"
|
placeholder="写评论~"
|
||||||
@input="textareaInput"
|
|
||||||
/>
|
/>
|
||||||
<div class="words">{{ textarealength }}/100</div>
|
<div class="words">{{ disComment.content.length }}/100</div>
|
||||||
<div class="upload">
|
<div class="upload">
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<div class="allimg" v-for="(img,i) in commentSubmitFileList">
|
<div class="allimg" v-for="(img,i) in commentSubmitFileList">
|
||||||
@@ -105,62 +103,61 @@
|
|||||||
|
|
||||||
<div class="thinline"></div>
|
<div class="thinline"></div>
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
<div v-for="(row,i) in data.submitReviewVoList">
|
<div v-for="(row,i) in commontList">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="avator"></div>
|
<div class="avator"></div>
|
||||||
<div class="id">{{ row.stuName }}</div>
|
<div class="id">{{ row.userName }}</div>
|
||||||
<!--todo #帖子评论详情 评论人名称后面有个(显示事业)?-->
|
|
||||||
<div class="showCareer">(显示事业)</div>
|
<div class="showCareer">(显示事业)</div>
|
||||||
<div class="idThink">理性思考,崇尚科学</div>
|
<div class="idThink">理性思考,崇尚科学</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="discuss clearfix">
|
<div class="discuss clearfix">
|
||||||
<div class="discussmain clearfix">
|
<div class="discussmain clearfix">
|
||||||
<div class="talkmain">
|
<div class="talkmain">
|
||||||
{{ row.discussReviewContent }}
|
{{ row.content }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--todo #帖子评论详情 评论评论中缺少点赞数 是否点赞字段-->
|
<div class="intime">{{ row.ctime }}</div>
|
||||||
<div class="intime">{{ row.createTime }}</div>
|
|
||||||
<div class="likeYou">
|
<div class="likeYou">
|
||||||
<div @click="commentComment(row)" style="display: flex;cursor: pointer;align-items: baseline;">
|
<div @click="commentComment(row)" style="display: flex;cursor: pointer;align-items: baseline;">
|
||||||
<span class="iconfont icon-pinglun" :style="{color:'#b3bdc4'}"></span>
|
<span class="iconfont icon-pinglun"
|
||||||
<div class="count"> {{ row.discussLikeCount }}</div>
|
:style="{color:'#b3bdc4'}"></span>
|
||||||
|
<!-- <div class="count"> {{ row.praiseNum || 0 }}</div>-->
|
||||||
</div>
|
</div>
|
||||||
<div @click="commentLike(row)"
|
<div @click="commentLike(row)"
|
||||||
style="display: flex;cursor: pointer;align-items: baseline;margin-left: 19px">
|
style="display: flex;cursor: pointer;align-items: baseline;margin-left: 19px">
|
||||||
<span class="iconfont icon-shoucang"
|
<span class="iconfont icon-dianzan"
|
||||||
:style="{color:data.submitReviewVoList[i].isLike?'red':'#b3bdc4'}"></span>
|
:style="{color:row.praised?'red':'#b3bdc4'}"></span>
|
||||||
<div class="count"> {{ row.discussLikeCount }}</div>
|
<div class="count"> {{ row.praiseNum || 0 }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-for="(replay,j) in row.submitReplyVoList">
|
<div v-for="(replay,j) in row.children">
|
||||||
<div class="reply">
|
<div class="reply">
|
||||||
<div class="sameava avaone"></div>
|
<div class="sameava avaone"></div>
|
||||||
<div class="sameuser">{{ replay.stuName }}</div>
|
<div class="sameuser">{{ replay.userName }}</div>
|
||||||
<div class="centerreply">回复</div>
|
<div class="centerreply">回复</div>
|
||||||
<div class="sameava avatwo"></div>
|
<div class="sameava avatwo"></div>
|
||||||
<div class="sameuser">{{ row.stuName }}</div>
|
<div class="sameuser">{{ row.userName }}</div>
|
||||||
<div class="replytime">{{ replay.createTime }}</div>
|
<div class="replytime">{{ replay.ctime }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="allreplyimg">
|
<div class="allreplyimg">
|
||||||
<div class="singleimg"></div>
|
<div class="singleimg"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mainreply">
|
<div class="mainreply">
|
||||||
<div class="replydetail">
|
<div class="replydetail">
|
||||||
{{ replay.replyContent }}
|
{{ replay.content }}
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="talk"></div> -->
|
<!-- <div class="talk"></div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="likeYou">
|
<div class="likeYou">
|
||||||
<div @click="commentComment(replay)" style="display: flex;cursor: pointer;align-items: baseline;">
|
<div @click="commentComment(replay)" style="display: flex;cursor: pointer;align-items: baseline;">
|
||||||
<span class="iconfont icon-pinglun" :style="{color:'#b3bdc4'}"></span>
|
<span class="iconfont icon-pinglun" :style="{color:'#b3bdc4'}"></span>
|
||||||
<div class="count"> {{ replay.discussLikeCount }}</div>
|
<!-- <div class="count"> {{ replay.commentNum }}</div>-->
|
||||||
</div>
|
</div>
|
||||||
<div @click="commentLike(replay)"
|
<div @click="commentLike(replay)"
|
||||||
style="display: flex;cursor: pointer;align-items: baseline;margin-left: 19px">
|
style="display: flex;cursor: pointer;align-items: baseline;margin-left: 19px">
|
||||||
<span class="iconfont icon-shoucang"
|
<span class="iconfont icon-dianzan"
|
||||||
:style="{color:replay.isLike?'red':'#b3bdc4'}"></span>
|
:style="{color:replay.praised?'red':'#b3bdc4'}"></span>
|
||||||
<div class="count"> {{ replay.discussLikeCount }}</div>
|
<div class="count"> {{ replay.praiseNum || 0 }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -171,15 +168,14 @@
|
|||||||
<div class="discuss clearfix">
|
<div class="discuss clearfix">
|
||||||
<div class="inreply">
|
<div class="inreply">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="textarea2"
|
v-model="replayComment.content"
|
||||||
:autosize="{ minRows: 5, maxRows: 5 }"
|
:autosize="{ minRows: 5, maxRows: 5 }"
|
||||||
resize="none"
|
resize="none"
|
||||||
maxlength="100"
|
maxlength="100"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
@input="textareaInputdown"
|
:placeholder="replayComment.placeholder"
|
||||||
:placeholder="placeholder"
|
|
||||||
/>
|
/>
|
||||||
<div class="words">{{ textarealength2 }}/100</div>
|
<div class="words">{{ replayComment.content.length }}/100</div>
|
||||||
<div class="upload">
|
<div class="upload">
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<div class="allimg" v-for="(img,i) in fileList">
|
<div class="allimg" v-for="(img,i) in fileList">
|
||||||
@@ -194,8 +190,7 @@
|
|||||||
<div class="shangchuan">上传图片</div>
|
<div class="shangchuan">上传图片</div>
|
||||||
</button>
|
</button>
|
||||||
</UploadImg>
|
</UploadImg>
|
||||||
<!--todo #帖子评论详情 评论和回复评论的层级关系 只有2级?-->
|
<button class="btntwo" @click="submitReplayComment">发表</button>
|
||||||
<button class="btntwo">发表</button>
|
|
||||||
</datagrid>
|
</datagrid>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -209,51 +204,33 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {reactive, ref, toRefs} from "vue";
|
import {reactive, ref, toRefs} from "vue";
|
||||||
import {useRoute} from "vue-router/dist/vue-router";
|
import {useRoute} from "vue-router/dist/vue-router";
|
||||||
import {request, useRequest} from "@/api/request";
|
import {request, usePage, useRequest} from "@/api/request";
|
||||||
import {
|
import {
|
||||||
DISCUSS_COLLECTION,
|
COMMENT_ADD,
|
||||||
|
COMMENT_COLLECTION,
|
||||||
|
COMMENT_LIST, COMMENT_PRAISE,
|
||||||
DISCUSS_DETAIL,
|
DISCUSS_DETAIL,
|
||||||
DISCUSS_LIKE,
|
|
||||||
DISCUSS_LIST,
|
|
||||||
DISCUSS_SUBMIT_REVIEW_LIST,
|
|
||||||
FILE_UPLOAD
|
FILE_UPLOAD
|
||||||
} from "@/api/api";
|
} from "@/api/api";
|
||||||
import UploadImg from '@/components/img/UploadImg.vue'
|
import UploadImg from '@/components/img/UploadImg.vue'
|
||||||
|
|
||||||
const {query: {id: discussSubmitId, discussId}} = useRoute()
|
const {query: {id, discussSubmitId}} = useRoute()
|
||||||
|
|
||||||
const {data} = useRequest(DISCUSS_SUBMIT_REVIEW_LIST, {discussSubmitId})
|
const {data: commontList, fetchData: commonFetch} = usePage(COMMENT_LIST, {id, type: 1})
|
||||||
|
|
||||||
const {data: disDetail} = useRequest(DISCUSS_DETAIL, {discussId})
|
const {data: disDetail} = useRequest(DISCUSS_DETAIL, {id})
|
||||||
|
|
||||||
const fileList = ref([])
|
const fileList = ref([])
|
||||||
const commentSubmitFileList = ref([])
|
const commentSubmitFileList = ref([])
|
||||||
|
|
||||||
const state = reactive({
|
const disComment = ref({
|
||||||
textarea1: "",
|
content: '',
|
||||||
textarealength: 0,
|
})
|
||||||
textarea2: "",
|
const replayComment = ref({
|
||||||
textarealength2: 0,
|
|
||||||
placeholder: '',
|
placeholder: '',
|
||||||
rId:''
|
content: '',
|
||||||
});
|
pid: ''
|
||||||
const {
|
})
|
||||||
textarea1,
|
|
||||||
textarealength,
|
|
||||||
textarea2,
|
|
||||||
textarealength2,
|
|
||||||
placeholder
|
|
||||||
} = toRefs(state)
|
|
||||||
|
|
||||||
const textareaInput = (e) => {
|
|
||||||
state.textarea1 = e;
|
|
||||||
state.textarealength = e.length;
|
|
||||||
};
|
|
||||||
const textareaInputdown = (e) => {
|
|
||||||
state.textarea2 = e;
|
|
||||||
state.textarealength2 = e.length;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
function removeImg(i) {
|
function removeImg(i) {
|
||||||
fileList.value.splice(i, 1)
|
fileList.value.splice(i, 1)
|
||||||
@@ -263,34 +240,46 @@ function removeCommentImg() {
|
|||||||
commentSubmitFileList.value.splice(i, 1)
|
commentSubmitFileList.value.splice(i, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
//todo 帖子是否点赞收藏
|
function like() {
|
||||||
function like(discussSubmitId) {
|
disDetail.value.praised ? (disDetail.value.praiseNum -= 1) : (disDetail.value.praiseNum += 1)
|
||||||
data.value.isLike ? (data.value.discussLikeCount -= 1) : (data.value.discussLikeCount += 1)
|
disDetail.value.praised = !disDetail.value.praised
|
||||||
data.value.isLike = !data.value.isLike
|
request(COMMENT_PRAISE, {targetId: disDetail.value.discussId, type: 5})
|
||||||
request(DISCUSS_LIKE, {discussSubmitId})
|
|
||||||
//todo 帖子和评论 返回是否点赞和收藏
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function collection(discussSubmitId) {
|
function collection() {
|
||||||
data.value.isCollection ? (data.value.discussCollectionCount -= 1) : (data.value.discussCollectionCount += 1)
|
disDetail.value.collected ? (disDetail.value.collectionNum -= 1) : (disDetail.value.collectionNum += 1)
|
||||||
data.value.isCollection = !data.value.isCollection
|
disDetail.value.collected = !disDetail.value.collected
|
||||||
request(DISCUSS_COLLECTION, {discussSubmitId})
|
request(COMMENT_COLLECTION, {targetId: disDetail.value.discussId, type: 6})
|
||||||
}
|
}
|
||||||
|
|
||||||
function commentLike(obj) {
|
function commentLike(obj) {
|
||||||
obj.isLike ? (obj.discussLikeCount -= 1) : (obj.discussLikeCount += 1)
|
obj.praised ? (obj.praiseNum -= 1) : (obj.praiseNum += 1)
|
||||||
obj.isLike = !obj.isLike
|
obj.praised = !obj.praised
|
||||||
const discussSubmitId = obj.discussSubmitId
|
request(COMMENT_PRAISE, {targetId: obj.id, type: 5})
|
||||||
request(DISCUSS_LIKE, {discussSubmitId})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function commentComment(obj) {
|
function commentComment(obj) {
|
||||||
state.placeholder = '@ '+obj.stuName
|
replayComment.value.placeholder = '@ ' + obj.userName
|
||||||
state.rId = obj.discussSubmitId
|
replayComment.value.pid = obj.id
|
||||||
}
|
}
|
||||||
|
|
||||||
function submitComment() {
|
function submitComment() {
|
||||||
|
request(COMMENT_ADD, {targetId: disDetail.value.discussId, content: disComment.value.content, type: 1}).then(() => {
|
||||||
|
commonFetch()
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function submitReplayComment() {
|
||||||
|
request(COMMENT_ADD, {
|
||||||
|
targetId: disDetail.value.discussId,
|
||||||
|
content: replayComment.value.content,
|
||||||
|
type: 2,
|
||||||
|
pid: replayComment.value.pid
|
||||||
|
}).then(() => {
|
||||||
|
commonFetch()
|
||||||
|
})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -378,7 +367,6 @@ function submitComment() {
|
|||||||
.line {
|
.line {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin: 47px 45px 0 75px;
|
margin: 47px 45px 0 75px;
|
||||||
max-width: 1810px;
|
|
||||||
height: 50px;
|
height: 50px;
|
||||||
background: #f9f9f9;
|
background: #f9f9f9;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
Reference in New Issue
Block a user