修改回答变讨论

This commit is contained in:
A1300399510 2025-01-21 19:06:13 +08:00
parent 8b5d8f4523
commit 9589e95cba
4 changed files with 190 additions and 68 deletions

52
app.vue
View File

@ -162,7 +162,7 @@
</div>
<div class="details-box flexflex">
<div v-if="emojiMaskState" class="emoji-box-mask" @click="closeEmoji()"></div>
<div v-if="emojiMaskState" class="emoji-box-mask" @click="closeEmojiMask()"></div>
<div class="close-box">
<div class="close-circle flexcenter" @click="closeDetailMode()">
@ -194,19 +194,24 @@
</a>
<div class="avatar-mask"></div>
</div>
<div class="time">{{ handleDate(detailsInfo["publicationdate"]) }}</div>
</div>
<div class="operate-item flexacenter" style="cursor: auto;">
<img class="operate-icon operate-collect-icon" style="width: 13px; height: 8px;" src="./img/view-icon.svg" />
{{ detailsInfo["viewnum"] || 0 }}
</div>
<div class="time">{{ handleDate(detailsInfo["publicationdate"]) }}</div>
</div>
<div class="operate-box flexacenter">
<div class="answer-btn flexcenter" :class="{ white: detailsInfo['answers'] == 0 }" @click="openIAnswer()">
<!-- <div class="answer-btn flexcenter" :class="{ white: detailsInfo['answers'] == 0 }" @click="openIAnswer()">
<img class="answer-btn-icon answer-icon-edit" src="./img/edit-icon.png" />
<img class="answer-btn-icon answer-icon-white" src="./img/edit-icon-white.svg" />
我来回答
</div>
</div> -->
<div class="operate-list flexacenter">
<div class="operate-item flexacenter" style="cursor: auto;">
<img class="operate-icon operate-collect-icon" style="width: 13px; height: 8px;" src="./img/view-icon.svg" />
{{ detailsInfo["viewnum"] || 0 }}
<div class="operate-item flexacenter" @click="operateLike()">
<img class="operate-icon operate-like-icon" v-if="islike == 0" src="/img/like-icon.png" />
<img class="operate-icon operate-like-icon" v-else src="/img/like-icon-colours.png" />
{{ detailsInfo.likenum || "赞" }}
</div>
<ClientOnly>
<div class="operate-item flexacenter" @click="operateCollect()">
@ -244,7 +249,7 @@
</div>
</div>
</div>
<commentList v-if="isCommentList"></commentList>
<commentList ref="commentListRef" v-if="isCommentList"></commentList>
<!-- 一共多少 -->
<!-- <div v-if="false" class="answer-total-amount"> {{ detailsInfo["answers"] }} 个回答</div> -->
@ -943,6 +948,10 @@ export default {
let isNeedLogin = ref(true) //
provide("isNeedLogin", isNeedLogin)
let emojiMaskState = ref(false)
provide("emojiMaskState", emojiMaskState)
//
const goLogin = () => {
if (typeof window === "undefined") return
@ -1300,7 +1309,7 @@ export default {
return
}
let data = res.data
console.log("data", data)
// console.log("data", data)
data["info"]["uniqid"] = uniqid
detailsInfo.value = data["info"] || {}
@ -1375,6 +1384,8 @@ export default {
}
})
// console.log("valve", valve)
if (!valve) {
let content = ""
if (info?.["content"]?.indexOf("<img") == -1) content = info["content"]
@ -1447,17 +1458,17 @@ export default {
}
// -
const operateLike = (token, index) => {
const operateLike = () => {
if (isNeedLogin.value) {
goLogin()
return
}
$ajax("/api/operate/like", { token }).then(res => {
$ajax("/api/operate/like", { token: detailsToken }).then(res => {
if (res.code != 200) return
let data = res.data
answerList.value[index]["islike"] = data["status"]
answerList.value[index]["likenum"] = data["count"]
islike.value = data.status || 0
detailsInfo.value["likenum"] = data.count || 0
handleMsg("success", res["message"] || "操作成功")
})
}
@ -2365,6 +2376,8 @@ export default {
}
}
provide("handleAnswerText", handleAnswerText)
// esc
const handleKeydown = event => {
if (event.key !== "Escape") return
@ -2397,7 +2410,7 @@ export default {
}
//
const handleMenuState = (token) => {
const handleMenuState = token => {
reportToken = token
alertShow.value = true
}
@ -2647,7 +2660,7 @@ export default {
watch(initState, (newValue, oldValue) => {
if (newValue === 2) {
const params = route.query
calculateListIndex(detailsInfo.value, params["uniqid"])
// calculateListIndex(detailsInfo.value, params["uniqid"])
}
})
@ -3082,7 +3095,14 @@ export default {
const commentList = ref([])
return { isCommentList, commentList, islike, handleLookOnly, zeroreply, replaceNumberObj, closeMyModel, myModelList, myModelState, listHeight, bottomTpsStyle, TAHomePage, sendMessage, avatarState, openUserInfo, isNeedLogin, handleInputYou, openListIAnswer, isListEmptyState, cutYourAnswerAnonymous, handleYourAnswer, yourAnswer, handleLogo, inTheEndState, setItemUrl, seo, originUrl, handleMenuState, reasonList, checkList, alertShow, alertText, selectRadio, alertSubmit, cutType, dialogSrc, answerPage, handleDetailsScroll, replaceState, copyText, boxClass, questionPlaceholderState, yourAnswerPlaceholderState, handleInput, handlePaste, itemStyle, listStyle, listBoxStyle, myType, type, pitchIndex, cut, list, keyword, keywordText, getList, total, typeList, typePitch, getDetails, detailsInfo, detailsIsanswered, detailsIscollection, detailsIsmyself, detailShare, detailLoading, answerList, operateLike, operateCollect, IAnswerState, IAnswerEditState, IAnswerInfo, amendIAnswer, openIAnswer, closeIAnswer, submitAnswer, openCommentState, handleAllComment, myCollectionList, myCollectionCount, myQuestionsList, myQuestionsCount, myAnswerList, myAnswerCount, cutAnswerPopupState, handleDate, handleCollectionScroll, handleAnswersScroll, handleQuestionsScroll, cancelCollection, getMyCollection, questionsSetp, questionsObj, cutAnonymous, cutQuestionsSetp, cutQuestionsPopupState, questionsTypeList, postingIssue, choosingTheme, handleMy, changeAnonymous, changeAnonymousQuestions, pageHeaderHeight, pageListHeight, questionsTransmitState, questionsTransmitMaskState, closeAllTransmitState, closeTransmitState, handleAnswerTransmitList, closeDetailMode, tabListFixeState, handleListScroll, historicalSearchState, historicalSearchList, searchFocus, searchBlur, searchClick, handleClickHistoricalItem, handleClickClear, isSearchMode, questionsInit, myCount, msg, myOpenDetails, handleAnswerText, getCurrentUrl, loading, showComments, jointriposte, randomEmojis, selectEomji, openRespondDetails, respondPopState, respondDetail, respondPopObj, closePopList, coinAmount, openInsert, insertcoinsState, insert, coinMessage, coinSelectAmountDispose, closeInsert, postCoinSbmit, cutOperate, insertcoinsNoState }
const commentListRef = ref(null)
const closeEmojiMask = () => {
if (commentListRef.value) commentListRef.value.closeEmoji()
}
return { commentListRef, closeEmojiMask, emojiMaskState, isCommentList, commentList, islike, handleLookOnly, zeroreply, replaceNumberObj, closeMyModel, myModelList, myModelState, listHeight, bottomTpsStyle, TAHomePage, sendMessage, avatarState, openUserInfo, isNeedLogin, handleInputYou, openListIAnswer, isListEmptyState, cutYourAnswerAnonymous, handleYourAnswer, yourAnswer, handleLogo, inTheEndState, setItemUrl, seo, originUrl, handleMenuState, reasonList, checkList, alertShow, alertText, selectRadio, alertSubmit, cutType, dialogSrc, answerPage, handleDetailsScroll, replaceState, copyText, boxClass, questionPlaceholderState, yourAnswerPlaceholderState, handleInput, handlePaste, itemStyle, listStyle, listBoxStyle, myType, type, pitchIndex, cut, list, keyword, keywordText, getList, total, typeList, typePitch, getDetails, detailsInfo, detailsIsanswered, detailsIscollection, detailsIsmyself, detailShare, detailLoading, answerList, operateLike, operateCollect, IAnswerState, IAnswerEditState, IAnswerInfo, amendIAnswer, openIAnswer, closeIAnswer, submitAnswer, openCommentState, handleAllComment, myCollectionList, myCollectionCount, myQuestionsList, myQuestionsCount, myAnswerList, myAnswerCount, cutAnswerPopupState, handleDate, handleCollectionScroll, handleAnswersScroll, handleQuestionsScroll, cancelCollection, getMyCollection, questionsSetp, questionsObj, cutAnonymous, cutQuestionsSetp, cutQuestionsPopupState, questionsTypeList, postingIssue, choosingTheme, handleMy, changeAnonymous, changeAnonymousQuestions, pageHeaderHeight, pageListHeight, questionsTransmitState, questionsTransmitMaskState, closeAllTransmitState, closeTransmitState, handleAnswerTransmitList, closeDetailMode, tabListFixeState, handleListScroll, historicalSearchState, historicalSearchList, searchFocus, searchBlur, searchClick, handleClickHistoricalItem, handleClickClear, isSearchMode, questionsInit, myCount, msg, myOpenDetails, handleAnswerText, getCurrentUrl, loading, showComments, jointriposte, randomEmojis, selectEomji, openRespondDetails, respondPopState, respondDetail, respondPopObj, closePopList, coinAmount, openInsert, insertcoinsState, insert, coinMessage, coinSelectAmountDispose, closeInsert, postCoinSbmit, cutOperate, insertcoinsNoState }
},
}
</script>

View File

@ -2,7 +2,7 @@
<div class="answer-discuss">
<div class="header flexacenter">
回答&讨论
<span class="num">{{ 17 }}</span>
<span class="num">{{ commentCount || '' }}</span>
</div>
<div class="input-box">
<div class="top flexflex">
@ -12,7 +12,7 @@
<div class="picture-box" v-if="picture.url">
<div class="picture">
<img class="close" @click="closeFileUpload()" src="/img/close-icon.png" />
<img class="img" :src="picture.base64 || picture.url" />
<img class="img" @click="handleAnswerText" :src="picture.base64 || picture.url" />
</div>
</div>
@ -71,7 +71,7 @@
</div>
<div class="comments-content">
<div class="comments-text">{{ item["content"] }}</div>
<img class="comments-img" :src="item.image?.base64 || item.image?.url" v-if="item.image?.url" />
<img class="comments-img" @click="handleAnswerText" :src="item.image?.base64 || item.image?.url" v-if="item.image?.url" />
<div class="input-box" v-if="item['childState']">
<img class="cross" @click="closeAnswerCommentsChild(index)" src="/img/cross-icon.png" />
<div class="top flexflex">
@ -80,7 +80,7 @@
<div class="picture-box" v-if="item.picture?.url">
<div class="picture">
<img class="close" @click="closeFileUpload(index)" src="/img/close-icon.png" />
<img class="img" :src="item.picture.base64 || item.picture.url" />
<img class="img" @click="handleAnswerText" :src="item.picture.base64 || item.picture.url" />
</div>
</div>
<div class="bottom flexacenter">
@ -138,21 +138,45 @@
</div>
<div class="comments-content">
<div class="comments-text">
<div class="comments-reply" v-if="JSON.stringify(ite['reply']) != '[]'">@{{ ite["reply"]["nickname"] }}</div>
<!-- <div class="comments-reply" v-if="JSON.stringify(ite['reply']) != '[]'">@{{ ite["reply"]["nickname"] }}</div> -->
<div class="comments-reply" v-if="ite?.reply?.nickname">@{{ ite["reply"]["nickname"] }}</div>
{{ ite["content"] }}
</div>
<div class="comments-input-box flexacenter" v-if="ite['childState']">
<div class="comments-input flexflex">
<textarea class="flex1" placeholder="回复" v-model="ite['commentInput']"></textarea>
<div class="comments-btn flexcenter">发送</div>
<img class="comments-img" @click="handleAnswerText" :src="ite.image?.base64 || ite.image?.url" v-if="ite.image?.url" />
<div class="input-box" v-if="ite['childState']">
<img class="cross" @click="closeAnswerCommentsChild(index)" src="/img/cross-icon.png" />
<div class="top flexflex">
<div class="input-placeholder" v-if="ite.isPlaceholderVisible">回复{{ ite["nickname"] }}</div>
<div class="input-textarea flex1" contenteditable="true" @focus="clearPlaceholder(index, i)" @blur="setPlaceholder($event, index, i)" @paste="handleInputPaste($event, index, i)"></div>
</div>
<div class="picture-box" v-if="ite.picture?.url">
<div class="picture">
<img class="close" @click="closeFileUpload(index, i)" src="/img/close-icon.png" />
<img class="img" @click="handleAnswerText" :src="ite.picture.base64 || ite.picture.url" />
</div>
</div>
<div class="bottom flexacenter">
<div class="operate flexacenter">
<div class="item" :class="{ 'pitch': ite.emojiState }">
<img class="icon" src="/img/smiling-face.png" @click="openEmoji(index, i)" alt="" />
<div class="emoji-box">
<div class="emoji-icon" v-for="item in emojiData" :key="item" @click="selectEmoji(item, index, i)">{{ item }}</div>
</div>
</div>
<div class="item flexacenter">
<input class="file" type="file" @change="handleFileUpload($event, index, i)" accept=".png, .jpg, .jpeg" />
<img class="icon" src="/img/picture-icon.png" alt="" />
<span class="file-hint">最多可上传1张图片支持在输入框中直接粘贴图片</span>
</div>
</div>
<div class="btn" @click="submitAnswerComments(index, i)">发送</div>
</div>
<img class="forkfork" src="/img/cross-icon.png" />
</div>
</div>
</div>
<div class="comments-also flexacenter" v-if="item['childnum'] > item['child'].length" @click="alsoCommentsData(index, ind)">
<div class>还有{{ item["childnum"] - 1 }}条回复</div>
<div class="comments-also flexacenter" v-if="item['childnum'] > item['child'].length" @click="alsoCommentsData(index, i)">
<div class>还有{{ item["childnum"] - item.child.length }}条回复</div>
<img class="also-icon" src="/img/arrow-circular-gray.png" />
</div>
</div>
@ -166,7 +190,7 @@ const props = defineProps({
})
onMounted(() => {
getComment()
// getComment()
})
const $ajax = inject("$ajax")
@ -176,6 +200,9 @@ const handleDate = inject("handleDate")
const isNeedLogin = inject("isNeedLogin")
const handleMsg = inject("handleMsg")
const uploadImg = inject("uploadImg")
const handleAnswerText = inject("handleAnswerText")
const emojiMaskState = inject("emojiMaskState")
const commentList = ref([])
let commentCount = ref(0)
@ -190,7 +217,7 @@ const getComment = () => {
$ajax("/api/comment/lists", {
token: detailsToken.value,
page: commentPage.value,
limit: 1000,
limit: 1500,
})
.then(res => {
if (res.code != 200) return
@ -221,7 +248,7 @@ const getComment = () => {
}
commentList.value = commentList.value.concat(data.data)
console.log("commentList", commentList.value)
// console.log("commentList", commentList.value)
commentCount.value = data.count
commentTotalCount.value = data.comments
@ -240,6 +267,19 @@ const getComment = () => {
})
}
// detailsToken
watch(
detailsToken,
(newValue, oldValue) => {
if (newValue !== oldValue) {
commentPage.value = 1
commentList.value = []
getComment()
}
},
{ immediate: true }
)
let picture = ref({})
const handleFileUpload = (event, index, i) => {
@ -277,7 +317,6 @@ const closeFileUpload = (index, i) => {
//
let emojiState = ref(false)
let emojiMaskState = ref(false)
const emojiData = ["😀", "😁", "😆", "😅", "😂", "😉", "😍", "🥰", "😋", "😜", "🤪", "😎", "🤩", "🥳", "😔", "🙁", "😭", "😡", "😳", "🤗", "🤔", "🤭", "🤫", "😯", "😵", "🙄", "🥴", "🤢", "🤑", "🤠", "👌", "✌️", "🤟", "🤘", "🤙", "👍", "👎", "✊", "👏", "🤝", "🙏", "💪", "❤️", "💔", "🌹", "🥀", "🎉", "🎁", "🧧", "🌙", "⭐", "🌍", "💌", "📬", "🚗", "🚕", "🚲", "🛵", "🚀", "🚁", "⛵", "🚢", "🍎", "🍐", "🍊", "🍉", "🍓", "🍑", "🍔", "🍟", "🍕", "🥪", "🍜", "🍡", "🍨", "🍦", "🎂", "🍰", "🍭", "🍿", "🍩", "🧃", "🍹"]
@ -287,6 +326,8 @@ const openEmoji = (index, i) => {
else if (index != undefined) commentList.value[index]["emojiState"] = true
else emojiState.value = true
console.log("emojiMaskState", emojiMaskState)
emojiMaskState.value = true
}
@ -305,13 +346,21 @@ const closeEmoji = (index, i) => {
emojiMaskState.value = false
}
defineExpose({
closeEmoji,
})
// Emoji
const selectEmoji = (key, index, i) => {
closeEmoji()
console.log("key", key)
if (i != undefined) {
const commentInput = document.querySelector(".comments-box .input-textarea")
commentInput.innerText += key
commentList.value[index].child[i]["isPlaceholderVisible"] = false
} else if (index != undefined) {
const commentInput = document.querySelector(".comments-box .input-textarea")
commentInput.innerText += key
commentList.value[index]["isPlaceholderVisible"] = false
} else {
inputTextareaRef.value.innerHTML += key
@ -337,7 +386,7 @@ const setPlaceholder = (event, index, i) => {
}
}
const handleInputPaste = (event, index, i) => {
const handleInputPaste = (event, index, ii) => {
const items = event.clipboardData.items //
for (let i = 0; i < items.length; i++) {
const item = items[i]
@ -349,16 +398,13 @@ const handleInputPaste = (event, index, i) => {
reader.onload = e => {
const base64 = e.target.result
uploadImg(base64).then(res => {
console.log(index)
const obj = {
base64,
...res,
}
if (i != undefined) commentList.value[index].child[i]["picture"] = {}
else if (index != undefined) commentList.value[index]["picture"] = {}
if (i != undefined) commentList.value[index].child[ii]["picture"] = obj
else if (index != undefined) commentList.value[index]["picture"] = obj
else picture.value = obj
handleMsg("success", "上传成功")
})
}
@ -379,23 +425,23 @@ const submitAnswerComments = (index, i) => {
let content = ""
let parentid = null
let token = detailsToken.value
let image = []
let image = {}
if (i != null) {
const commentInput = document.querySelector(".comments-box .input-textarea")
content = commentInput.innerText
parentid = commentList.value[index]["child"][i]["id"]
image = commentList.value[index]["child"][i]["picture"]
} else if (index != null) {
const commentInput = document.querySelector(".comments-box .input-textarea")
content = commentInput.innerText
parentid = commentList.value[index]["id"]
image = commentList.value[index]["picture"]
} else {
content = inputTextareaRef.value.innerText
image = picture.value
}
console.log("content", content)
$ajax("/api/comment/submit", {
content,
token,
@ -420,7 +466,7 @@ const submitAnswerComments = (index, i) => {
image,
}
commentList.value[index]["child"].unshift(targetData)
commentList.value[index]["child"].push(targetData)
commentList.value[index]["childnum"]++
} else if (index != null) {
let targetData = {
@ -476,7 +522,7 @@ const operateAnswerCommentsLike = (token, index, i) => {
let data = res.data
console.log("i",i)
console.log("i", i)
if (i != undefined) {
commentList.value[index].child[i]["islike"] = data["status"]
@ -492,7 +538,7 @@ const operateAnswerCommentsLike = (token, index, i) => {
// -
const openAnswerCommentsChild = (index, i) => {
console.log("isNeedLogin", isNeedLogin)
// console.log("isNeedLogin", isNeedLogin)
if (isNeedLogin.value) {
goLogin()
@ -518,11 +564,10 @@ const closeAnswerCommentsChild = () => {
}
//
const alsoCommentsData = (index, ind) => {
return
const targetAnswerList = [...answerList.value]
const parentid = targetAnswerList[index]["commentList"][ind]["id"]
const token = targetAnswerList[index]["token"]
const alsoCommentsData = (index, i) => {
// const targetAnswerList = [...answerList.value]
const parentid = commentList.value[index]["id"]
const token = detailsToken.value
$ajax("/api/comment/childrenList", {
token,
@ -534,10 +579,16 @@ const alsoCommentsData = (index, ind) => {
if (res.code != 200) return
let data = res.data
let merged1 = [...targetAnswerList[index]["commentList"][ind]["child"], ...data.data.filter(item2 => !targetAnswerList[index]["commentList"][ind]["child"].find(item1 => item1.id == item2.id))]
let merged = [...commentList.value[index]["child"], ...data.data.filter(item2 => !commentList.value[index]["child"].find(item1 => item1.id == item2.id))]
targetAnswerList[index]["commentList"][ind]["child"] = merged1
answerList.value = targetAnswerList
console.log("merged1", merged)
merged.forEach(element => {
element["isPlaceholderVisible"] = true
})
commentList.value[index]["child"] = merged
// answerList.value = targetAnswerList
})
}

View File

@ -696,6 +696,15 @@ a {
}
#answer-app .main .details-area-box .details-box .answer-discuss .input-box .top {
padding: 0 14px;
position: relative;
}
#answer-app .main .details-area-box .details-box .answer-discuss .input-box .top .input-placeholder {
color: #7f7f7f;
pointer-events: none;
font-size: 14px;
position: absolute;
top: 0;
left: 14px;
}
#answer-app .main .details-area-box .details-box .answer-discuss .input-box .top .avatar {
width: 24px;
@ -1465,7 +1474,7 @@ a {
#answer-app .main .details-area-box .details-box .info-box .user-info .user-name {
color: #7f7f7f;
font-size: 13px;
margin-right: 20px;
margin-right: 10px;
}
#answer-app .main .details-area-box .details-box .info-box .user-info .homeShare {
height: 14px;
@ -1474,20 +1483,33 @@ a {
font-size: 12px;
color: #aaaaaa;
}
#answer-app .main .details-area-box .details-box .info-box .operate-item {
font-size: 12px;
color: #7f7f7f;
margin-right: 7px;
}
#answer-app .main .details-area-box .details-box .info-box .operate-item .operate-icon {
margin-right: 7px;
}
#answer-app .main .details-area-box .details-box .operate-box {
justify-content: space-between;
height: 54px;
border-top: 1px dotted #ebebeb;
padding: 0 24px;
flex: 1;
position: relative;
}
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item {
font-size: 13px;
color: #7f7f7f;
margin-left: 49px;
cursor: pointer;
height: 53px;
position: relative;
}
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item:not(:first-of-type) {
margin-left: 36px;
}
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item .operate-icon {
margin-right: 5px;
}
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item.commentnum {
z-index: 1;
@ -1505,9 +1527,8 @@ a {
transform: translateX(-50%);
}
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item .operate-icon {
margin-right: 7px;
margin-right: 5px;
}
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item .operate-icon.operate-like-icon,
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item .operate-icon.operate-transmit-icon {
width: 14px;
height: 14px;
@ -1520,8 +1541,9 @@ a {
width: 16px;
height: 16px;
}
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item.operate-transmit {
position: relative;
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item .operate-icon.operate-like-icon {
width: 16px;
height: 16px;
}
#answer-app .main .details-area-box .details-box .operate-box .operate-list .operate-item.operate-transmit:hover::after {
content: "";
@ -1540,7 +1562,7 @@ a {
box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
position: absolute;
top: 64px;
right: -24px;
left: 0;
background: #fff;
justify-content: space-between;
padding: 40px 35px 42px;

View File

@ -865,6 +865,17 @@ a {
flex-direction: column;
.top {
padding: 0 14px;
position: relative;
.input-placeholder {
color: #7f7f7f;
pointer-events: none;
font-size: 14px;
position: absolute;
top: 0;
left: 14px;
}
.avatar {
width: 24px;
height: 24px;
@ -1768,7 +1779,7 @@ a {
.user-name {
color: #7f7f7f;
font-size: 13px;
margin-right: 20px;
margin-right: 10px;
}
.homeShare {
@ -1780,6 +1791,15 @@ a {
font-size: 12px;
color: #aaaaaa;
}
.operate-item {
font-size: 12px;
color: #7f7f7f;
margin-right: 7px;
.operate-icon {
margin-right: 7px;
}
}
}
.operate-box {
@ -1788,17 +1808,22 @@ a {
border-top: 1px dotted #ebebeb;
padding: 0 24px;
flex: 1;
position: relative;
.operate-list {
.operate-item {
font-size: 13px;
color: #7f7f7f;
margin-left: 49px;
cursor: pointer;
height: 53px;
&:not(:first-of-type) {
margin-left: 36px;
}
// background-color: #333333;
position: relative;
.operate-icon {
margin-right: 5px;
}
// position: relative;
// z-index: 1;
&.commentnum {
@ -1819,9 +1844,8 @@ a {
}
.operate-icon {
margin-right: 7px;
margin-right: 5px;
&.operate-like-icon,
&.operate-transmit-icon {
width: 14px;
height: 14px;
@ -1836,10 +1860,15 @@ a {
width: 16px;
height: 16px;
}
&.operate-like-icon {
width: 16px;
height: 16px;
}
}
&.operate-transmit {
position: relative;
// position: relative;
// z-index: 1;
// &:hover {
@ -1863,7 +1892,7 @@ a {
position: absolute;
top: 64px;
right: -24px;
left: 0;
background: #fff;
justify-content: space-between;
padding: 40px 35px 42px;