no message

This commit is contained in:
xiaoronghao 2023-04-10 19:20:33 +08:00
parent e5df02f241
commit 5a6d83cc06
13 changed files with 142 additions and 53 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

BIN
public/img/unlock.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -12,11 +12,12 @@
<div class="discussion-single-box flexflex flex1">
<div class="discussion-single-content flexacenter flex1">
<input class="discussion-single-input flex1" cursor-spacing="5" type="text"
:placeholder="twoCommentData ? '写回复…' : '想问啥,大胆问…'" v-model="commentContent" />
:placeholder="twoCommentData ? '写回复…' : '想问啥,大胆问…'" :value="commentContent"
@input="inputCommentContent($event)" />
<img class="discussion-single-input-icom" @click.stop="setValue()"
src="@/assets/img/detail/unfold.png" />
</div>
<div class="discussion-single-btn flexcenter" @click.stop="postComment(commentContent)">
<div class="discussion-single-btn flexcenter" @click.stop="postComment()">
发布
</div>
</div>
@ -32,14 +33,14 @@
<div class="discussion-text one-line">{{ twoCommentData.content }}</div>
</div>
<div class="discussion-multi-content flexflex flex1">
<textarea class="discussion-multi-textarea flex1" type="text" maxlength="500" v-model="commentContent"
:placeholder="twoCommentData ? '写回复…' : '想问啥,大胆问…'"></textarea>
<textarea class="discussion-multi-textarea flex1" type="text" maxlength="500" :value="commentContent"
:placeholder="twoCommentData ? '写回复…' : '想问啥,大胆问…'" @input="inputCommentContent($event)"></textarea>
<img class="discussion-multi-icom" @click.stop="openDiscussionSingle()"
src="@/assets/img/detail/pack.png" />
<div class="discussion-multi-sum">{{ 500 - commentContent.length }}</div>
</div>
<div class="discussion-multi-bottom flexflex flexacenter">
<div class="discussion-multi-btn flexcenter" @click.stop="postComment(commentContent)">
<div class="discussion-multi-btn flexcenter" @click.stop="postComment()">
发布
</div>
</div>
@ -53,30 +54,26 @@ export default {
name: 'DetailReply',
data() {
return {
commentContent: "",
openDiscussionSingleState: true, //
};
},
props: ["twoCommentData", "popState"],
props: ["twoCommentData", "popState", "commentContent"],
mounted() {
console.log("子组件");
},
methods: {
//
postComment(commentContent) {
this.$parent.postComment(commentContent)
postComment() {
this.$parent.postComment()
},
//
handlePopCancel() {
console.log(this.$parent.popState, "this.$parent.popState");
this.$parent.twoCommentData = null
this.$parent.popState = ""
},
//
@ -98,6 +95,11 @@ export default {
}, 500);
},
inputCommentContent(event) {
let value = event.currentTarget.value
this.$parent.commentContent = value
}
},
};

View File

@ -134,9 +134,7 @@
<img class="card-head-icon" :src="item.avatar" />
<div class="card-head-content flex1 flexflex">
<div class="card-head-name flexflex">{{ item.author }}
<!-- <div class="landlord flexcenter" v-if="index == 0">
楼主
</div> -->
<div class="landlord flexcenter" v-if="item.isauthor == 1">楼主</div>
</div>
<div class="card-head-time">{{ $formattedDate(item.dateline) }}</div>
</div>
@ -145,10 +143,13 @@
index + 2}` }}</div>
<div class="card-head-fool" v-else>{{ `${(postList.page - 1) * postList.limit + index + 1}` }}
</div>
<div class="edit-box flexcenter" v-if="item.ismyself == 1" @click.stop="handleIsmyself(item)">
<img class="edit-icom" src="@/assets/img/detail/edit.png" />
</div>
<!-- <div class="card-head-fool">{{ index == 0 ? '楼主' : `${index}` }}</div> -->
</div>
<div class="card-content flex1" @click.stop="handleReplyPop(item.token)" v-html="item.message"></div>
<div class="card-content flex1" @click.stop="handleReplyPop(item)" v-html="item.message"></div>
<template v-if="false">
@ -318,7 +319,8 @@
</div>
</div>
<detail-reply :two-comment-data="twoCommentData" :pop-state="popState"></detail-reply>
<detail-reply :two-comment-data="twoCommentData" :comment-content="commentContent"
:pop-state="popState"></detail-reply>
<coins :coin-config="coinConfig" :pop-state="popState"></coins>
</div>
@ -459,6 +461,8 @@ export default {
loading: null, //
commentContent: "", //
};
},
@ -488,7 +492,18 @@ export default {
info['message'] = info['message'].replaceAll(reg, '<br/>')
info['message'] = info['message'].replace(/<img[^>]*>/g, (match) => {
return match.replace(/width="[^"]*"/g, '').replace(/height="[^"]*"/g, '');
});
})
info["messageList"] = []
info['message'] = info['message'].replace("[hide]作者设置了回复可见[/hide]", `<div class="flexcenter content-unlock content-unlock-no"><img class="unlock-icom" src="./img/unlock.png">作者设置了回复可见</div>`)
// if (info.message.indexOf("[hide][/hide]")) {
// `<div class="flexcenter content-unlock content-unlock-no"><img class="unlock-icom" src="@/assets/img/detail/unlock.png"></div>`
// }
this.info = info
this.type = data.type
@ -498,7 +513,8 @@ export default {
else if (this.type == 5) this.getsummaryDetails()
else if (this.type == 3) this.getTenementDetails()
else if (this.type == 2) this.getInterviewDetails()
this.getPostList()
info['ispost'] != 0 ? this.getPostList() : ''
}).finally(() => {
this.$closeUnderLoading(this)
@ -513,7 +529,6 @@ export default {
let data = res.data
// let offerinfo = data.offerinfo
let offerinfo = data.collegelist[0]
console.log("offerinfo", offerinfo);
let useperformanceStr = ""
offerinfo.useperformance && offerinfo.useperformance.forEach((el, index) => {
useperformanceStr += el + (offerinfo.useperformance.length - 1 == index ? '' : '、')
@ -523,7 +538,6 @@ export default {
// offerinfo['schoolname'] = offerinfo.school.name
this.offerinfo = offerinfo
// this.shareurl = data.shareurl
})
},
@ -628,8 +642,8 @@ export default {
},
//
handleReplyPop(token) {
console.log(token);
handleReplyPop(item) {
console.log(item);
this.popState = "discussionSingle"
},
@ -637,12 +651,21 @@ export default {
postComment(message) {
this.$http.post("/api/operation/reply", {
token: this.token,
message
message: this.commentContent
}).then(res => {
if (res.code != 200) return
let data = res.data
console.log(data);
this.popState = ""
let { count, limit } = this.postList
let query = {
page: Math.ceil((count + 1) / limit),
tid: this.tid
}
this.$router.push({ path: `/detailIndex`, query })
})
},
@ -700,6 +723,13 @@ export default {
this.$router.push({ path: `/allSections`, query: { twofid: this.info.fid } })
},
//
handleIsmyself(item) {
console.log(item, "item");
this.twoCommentData = item.message
this.popState = "discussionMulti"
},
},
components: {
@ -844,8 +874,22 @@ export default {
color: rgb(127, 127, 127);
font-size: .32rem;
}
.edit-box {
width: .64rem;
height: .64rem;
border-radius: 50%;
background: #f6f6f6;
margin-left: .32rem;
.edit-icom {
width: .4rem;
// height: .4rem;
}
}
}
.card-content {
color: #333;
font-size: .36rem;
@ -895,49 +939,50 @@ export default {
}
}
.content-unlock {
&.content-unlock-no {
height: 3.2rem;
/deep/ {
.content-unlock {
&.content-unlock-no {
height: 3.2rem;
.unlock-icom {
width: .64rem;
height: .64rem;
margin-right: 0.2rem;
.unlock-icom {
width: .64rem;
height: .64rem;
margin-right: 0.2rem;
}
}
}
background: rgba(242, 242, 242, 0.7);
margin: .48rem 0;
color: #555555;
font-size: .32rem;
border-radius: .16rem;
&.content-already {
background: rgba(242, 242, 242, 0.7);
margin: .48rem 0;
padding: .32rem;
color: #555555;
font-size: .32rem;
border-radius: .16rem;
.content-already-header {
color: #7f7f7f;
font-size: .28rem;
justify-content: center;
&.content-already {
background: rgba(242, 242, 242, 0.7);
margin: .48rem 0;
padding: .32rem;
color: #555555;
font-size: .32rem;
border-radius: .16rem;
.content-already-header {
color: #7f7f7f;
font-size: .28rem;
justify-content: center;
}
.content-unlock-wenzi {
color: #333;
font-size: .36rem;
line-height: .6rem;
margin-top: .3rem;
}
}
.content-unlock-wenzi {
color: #333;
font-size: .36rem;
line-height: .6rem;
margin-top: .3rem;
}
}
}
}
.offer-content {
@ -957,6 +1002,48 @@ export default {
img {
max-width: 100%;
}
.content-unlock {
&.content-unlock-no {
height: 3.2rem;
.unlock-icom {
width: .64rem;
height: .64rem;
margin-right: 0.2rem;
}
}
background: rgba(242, 242, 242, 0.7);
margin: .48rem 0;
color: #555555;
font-size: .32rem;
border-radius: .16rem;
&.content-already {
background: rgba(242, 242, 242, 0.7);
margin: .48rem 0;
padding: .32rem;
color: #555555;
font-size: .32rem;
border-radius: .16rem;
.content-already-header {
color: #7f7f7f;
font-size: .28rem;
justify-content: center;
}
.content-unlock-wenzi {
color: #333;
font-size: .36rem;
line-height: .6rem;
margin-top: .3rem;
}
}
}
}
}