no message
This commit is contained in:
parent
7e7a17e925
commit
5a890aaee5
466
app.vue
466
app.vue
@ -162,7 +162,7 @@
|
||||
</div>
|
||||
|
||||
<div class="details-box flexflex">
|
||||
<!-- 转发的蒙版 -->
|
||||
<div v-if="emojiState" class="emoji-box-mask" @click="closeEmoji()"></div>
|
||||
|
||||
<div class="close-box">
|
||||
<div class="close-circle flexcenter" @click="closeDetailMode()">
|
||||
@ -247,18 +247,169 @@
|
||||
|
||||
<div class="answer-discuss">
|
||||
<div class="header flexacenter">
|
||||
回答&讨论 <span class="num">{{ 17 }}</span>
|
||||
回答&讨论
|
||||
<span class="num">{{ 17 }}</span>
|
||||
</div>
|
||||
<div class="input-box">
|
||||
<div class="top"></div>
|
||||
<div class="top flexflex">
|
||||
<img class="avatar" src="https://axure-file.lanhuapp.com/md5__61e148c1ead80d48108f4e5a7f93abc3.svg" />
|
||||
<div class="input-textarea flex1" :class="{ 'placeholder': isPlaceholderVisible }" contenteditable="true" @focus="clearPlaceholder" @blur="setPlaceholder" @paste="handleInputPaste"></div>
|
||||
</div>
|
||||
<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" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom flexacenter">
|
||||
<div class="operate">
|
||||
<img class="item" src="" alt="">
|
||||
<img class="item" src="" alt="">
|
||||
<div class="operate flexacenter">
|
||||
<div class="item" :class="{ 'pitch': emojiState }">
|
||||
<img class="icon" src="/img/smiling-face.png" @click="openEmoji()" alt="" />
|
||||
<div class="emoji-box">
|
||||
<div class="emoji-icon" v-for="item in emojiData" :key="item" @click="selectEmoji(item)">{{ item }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item flexacenter">
|
||||
<input class="file" type="file" @change="handleFileUpload" accept=".png, .jpg, .jpeg" />
|
||||
<img class="icon" src="/img/picture-icon.png" alt="" />
|
||||
<span class="file-hint">最多可上传1张图片,支持在输入框中直接粘贴图片。</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn">发送</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="comments-box">
|
||||
<div class="comments-item" v-for="(item, index) in commentList" :key="index">
|
||||
<div class="comments-header flexacenter">
|
||||
<div class="comments-header-left flexacenter">
|
||||
<img class="comments-avatar" :src="item['avatar']" />
|
||||
<div class="comments-username">{{ item["nickname"] }}</div>
|
||||
<div class="comments-time">{{ handleDate(item["timestamp"]) }}</div>
|
||||
<!-- <div class="comments-identity" v-if="item['questioner'] == 1">提问者</div>
|
||||
<div class="comments-identity" v-else-if="item['isauthor'] == 1">回答者</div> -->
|
||||
<div class="comments-identity" v-if="item['isauthor'] == 1">提问者</div>
|
||||
<div class="avatar-box flexflex" v-if="item['avatarState']">
|
||||
<a class="avatar-item flexcenter" target="_blank" @click.prevent="sendMessage(item['uin'])">
|
||||
<img class="avatar-icon" src="@/img/send-messages-icon.png" />
|
||||
发送信息
|
||||
</a>
|
||||
<a class="avatar-item flexcenter" target="_blank" @click.prevent="TAHomePage(item['uin'])">
|
||||
<img class="avatar-icon" src="@/img/homepage-icon.png" />
|
||||
TA的主页
|
||||
</a>
|
||||
<div class="avatar-mask"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="comments-header-right flexacenter">
|
||||
<div class="menu-box flexacenter" @click="handleMenuState(index)">
|
||||
<img class="menu-icon" src="./img/menu-icon-gray.svg" />
|
||||
<div class="report-box flexcenter">举报</div>
|
||||
</div>
|
||||
<img class="comment-icon" @click="openAnswerCommentsChild(index)" src="./img/comment-icon-gray.svg" />
|
||||
<div class="flexacenter like-box">
|
||||
<img class="like-icon" v-if="item['islike'] == 0" src="./img/like-icon-gray.png" />
|
||||
<img class="like-icon" v-else src="./img/like-icon-colours.png" />
|
||||
<div class="like-quantity">{{ item["likenum"] || 0 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="comments-content">
|
||||
<div class="comments-text">{{ item["content"] }}</div>
|
||||
<div class="input-box" v-if="item['childState']">
|
||||
<img class="cross" @click="closeAnswerCommentsChild(index)" src="/img/cross-icon.png" />
|
||||
<div class="top flexflex">
|
||||
<div class="input-textarea flex1" :class="{ 'placeholder': isPlaceholderVisible }" contenteditable="true" @focus="clearPlaceholder" @blur="setPlaceholder" @paste="handleInputPaste(event, index)"></div>
|
||||
</div>
|
||||
<div class="picture-box" v-if="item.picture?.url">
|
||||
<div class="picture">
|
||||
<img class="close" @click="closeFileUpload" src="/img/close-icon.png" />
|
||||
<img class="img" :src="picture.base64 || picture.url" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom flexacenter">
|
||||
<div class="operate flexacenter">
|
||||
<div class="item" :class="{ 'pitch': emojiState }">
|
||||
<img class="icon" src="/img/smiling-face.png" @click="openEmoji()" alt="" />
|
||||
<div class="emoji-box">
|
||||
<div class="emoji-icon" v-for="item in emojiData" :key="item" @click="selectEmoji(item)">{{ item }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item flexacenter">
|
||||
<input class="file" type="file" @change="handleFileUpload" accept=".png, .jpg, .jpeg" />
|
||||
<img class="icon" src="/img/picture-icon.png" alt="" />
|
||||
<span class="file-hint">最多可上传1张图片,支持在输入框中直接粘贴图片。</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn">发送</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="comments-input-box flexacenter" v-if="item['childState']">
|
||||
<div class="comments-input flexflex">
|
||||
<textarea class="flex1" placeholder="回复" v-model="item['commentInput']"></textarea>
|
||||
<div class="comments-btn flexcenter" @click="submitAnswerComments(index)">发送</div>
|
||||
</div>
|
||||
<img class="forkfork" src="./img/cross-icon.png" @click="closeAnswerCommentsChild(index)" />
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="child-comments" v-if="item['child'].length != 0">
|
||||
<div class="comments-item" v-for="ite in item['child']" :key="ite.id">
|
||||
<div class="comments-header flexacenter">
|
||||
<div class="comments-header-left flexacenter">
|
||||
<img class="comments-avatar" :src="ite['avatar']" />
|
||||
<div class="comments-username">{{ ite["nickname"] }}</div>
|
||||
<div class="comments-time">{{ handleDate(ite["timestamp"]) }}</div>
|
||||
<div class="comments-identity" v-if="ite['questioner'] == 1">提问者</div>
|
||||
<div class="comments-identity" v-else-if="ite['isauthor'] == 1">回答者</div>
|
||||
|
||||
<div class="avatar-box flexflex" v-if="ite['avatarState']">
|
||||
<a class="avatar-item flexcenter" target="_blank">
|
||||
<img class="avatar-icon" src="@/img/send-messages-icon.png" />
|
||||
发送信息
|
||||
</a>
|
||||
<a class="avatar-item flexcenter" target="_blank">
|
||||
<img class="avatar-icon" src="@/img/homepage-icon.png" />
|
||||
TA的主页
|
||||
</a>
|
||||
<div class="avatar-mask"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="comments-header-right flexacenter">
|
||||
<div class="menu-box flexacenter">
|
||||
<img class="menu-icon" src="./img/menu-icon-gray.svg" />
|
||||
<div class="report-box flexcenter">举报</div>
|
||||
</div>
|
||||
<img class="comment-icon" src="./img/comment-icon-gray.svg" />
|
||||
<div class="flexacenter like-box">
|
||||
<img class="like-icon" v-if="ite['islike'] == 0" src="./img/like-icon-gray.png" />
|
||||
<img class="like-icon" v-else src="./img/like-icon-colours.png" />
|
||||
<div class="like-quantity">{{ ite["likenum"] || 0 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="comments-content">
|
||||
<div class="comments-text">
|
||||
<div class="comments-reply" v-if="JSON.stringify(ite['reply']) != '[]'">@{{ 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>
|
||||
</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>
|
||||
<img class="also-icon" src="./img/arrow-circular-gray.png" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 一共多少 -->
|
||||
@ -298,19 +449,22 @@
|
||||
<div class="interaction-box flexacenter flex1">
|
||||
<div class="interaction-item flexacenter" :class="{ 'pitch': item.tab == 'riposte' }" @click="cutOperate(index, 'riposte')">
|
||||
<template v-if="item.ripostecount?.total">
|
||||
回应 <span class="amount">{{ item.ripostecount?.total }}</span>
|
||||
回应
|
||||
<span class="amount">{{ item.ripostecount?.total }}</span>
|
||||
</template>
|
||||
<template v-else>添加回应</template>
|
||||
</div>
|
||||
<div class="interaction-item flexacenter" :class="{ 'pitch': item.tab == 'comment' }" @click="cutOperate(index, 'comment')">
|
||||
<template v-if="item.commentnum != 0">
|
||||
讨论 <span class="amount">{{ item.commentnum }}</span>
|
||||
讨论
|
||||
<span class="amount">{{ item.commentnum }}</span>
|
||||
</template>
|
||||
<template v-else>添加讨论</template>
|
||||
</div>
|
||||
<div class="interaction-item flexacenter" :class="{ 'pitch': item.tab == 'coin' }" @click="cutOperate(index, 'coin')">
|
||||
<template v-if="item.coinnum > 0">
|
||||
投币 <span class="amount">{{ item.coinnum }}</span>
|
||||
投币
|
||||
<span class="amount">{{ item.coinnum }}</span>
|
||||
</template>
|
||||
<template v-else>给TA投币</template>
|
||||
</div>
|
||||
@ -353,7 +507,9 @@
|
||||
<div class="coins-show flexacenter">
|
||||
<img class="coins-icon" src="@/img/bi-icon.png" />
|
||||
<div class="coins-text flexacenter flex1">
|
||||
该回答已获 <span class="quantity">{{ item.coinnum }}</span> 个寄托币
|
||||
该回答已获
|
||||
<span class="quantity">{{ item.coinnum }}</span>
|
||||
个寄托币
|
||||
</div>
|
||||
<div class="coins-btn flexcenter" @click="openInsert(index)">给TA投币</div>
|
||||
</div>
|
||||
@ -787,7 +943,10 @@
|
||||
<div class="alert-form" v-show="alertShow">
|
||||
<div class="comments reports">
|
||||
<div class="head">
|
||||
<span style="display: flex; align-items: center;"> <img style="width: 25px; margin-right: 7px;" src="//app.gter.net/image/gter/offer/img/exclamationpoint.png?v=4.2.08_331040000" />举报投诉 </span>
|
||||
<span style="display: flex; align-items: center;">
|
||||
<img style="width: 25px; margin-right: 7px;" src="//app.gter.net/image/gter/offer/img/exclamationpoint.png?v=4.2.08_331040000" />
|
||||
举报投诉
|
||||
</span>
|
||||
<div class="close icon-close iconfont" @click="alertShow = false"></div>
|
||||
</div>
|
||||
<div class="form">
|
||||
@ -819,15 +978,19 @@
|
||||
<div class="slit-box">
|
||||
<div class="slit-head" style="">
|
||||
<div class="slit-head-title flexflex" style="">
|
||||
<span>投币</span> <a target="_blank" :href="insert.coinConfig.strategy.url" style="">{{ insert.coinConfig.strategy.button }}</a>
|
||||
<span>投币</span>
|
||||
<a target="_blank" :href="insert.coinConfig.strategy.url" style="">{{ insert.coinConfig.strategy.button }}</a>
|
||||
</div>
|
||||
<div class="in-all">
|
||||
你共有 <span>{{ insert.coinMybalance }}</span> 寄托币
|
||||
你共有
|
||||
<span>{{ insert.coinMybalance }}</span>
|
||||
寄托币
|
||||
</div>
|
||||
</div>
|
||||
<div class="coin-quantity flex-items">
|
||||
<div class="coin-quantity-item" :class="{ 'coin-pitch': coinAmount == item }" v-for="item in insert.coinConfig.list" :key="item" @click="coinSelectAmountDispose(item)">
|
||||
{{ item }} <span>{{ insert.coinConfig.unit }}</span>
|
||||
{{ item }}
|
||||
<span>{{ insert.coinConfig.unit }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<input class="slit-input" type="number" v-model="coinAmount" placeholder="自定义投币金额" />
|
||||
@ -856,7 +1019,10 @@
|
||||
</div>
|
||||
|
||||
<a :href="insert.coinConfig.strategy.url" target="_blank">
|
||||
<div class="strategy-btn greenBj flexcenter">{{ insert.coinConfig.strategy.button }}<img class="strategy-icon" src="@/img/arrows-black.svg" /></div>
|
||||
<div class="strategy-btn greenBj flexcenter">
|
||||
{{ insert.coinConfig.strategy.button }}
|
||||
<img class="strategy-icon" src="@/img/arrows-black.svg" />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@ -880,7 +1046,7 @@ import axios from "axios"
|
||||
export default {
|
||||
name: "#answer-app",
|
||||
async setup() {
|
||||
const author = "785a26e691ea92444fd4babc712f75e1"
|
||||
const author = "0803d96d8d50aa0cda2cf1678d828179"
|
||||
const $ajax = (url, data) => {
|
||||
url = url.indexOf("//") > -1 ? url : baseURL + url
|
||||
return new Promise(function (resolve, reject) {
|
||||
@ -1000,6 +1166,8 @@ export default {
|
||||
|
||||
const params = route.query
|
||||
|
||||
if (params["uniqid"]) getDetails(params["uniqid"])
|
||||
|
||||
// console.log(params);
|
||||
// getDetails(params.uniqid)
|
||||
// 是否直接打开提问
|
||||
@ -1088,6 +1256,8 @@ export default {
|
||||
$ajax("/api/user").then(res => {
|
||||
if (res.code != 200) return
|
||||
let data = res.data
|
||||
console.log("data", data)
|
||||
|
||||
myCount.value = data.count
|
||||
handleMy(key)
|
||||
})
|
||||
@ -1299,6 +1469,8 @@ export default {
|
||||
return
|
||||
}
|
||||
let data = res.data
|
||||
console.log("data", data)
|
||||
|
||||
data["info"]["uniqid"] = uniqid
|
||||
detailsInfo.value = data["info"] || {}
|
||||
detailsIsanswered.value = data["isanswered"] || 0
|
||||
@ -1306,6 +1478,7 @@ export default {
|
||||
detailsIsmyself.value = data["ismyself"] || 0
|
||||
detailsToken = data["token"] || ""
|
||||
detailShare.value = data["share"] || {}
|
||||
islike.value = data["islike"] || 0
|
||||
|
||||
type.value = "details"
|
||||
|
||||
@ -1338,6 +1511,8 @@ export default {
|
||||
nextTick(() => detailsAreaScrollTop())
|
||||
|
||||
handleInsertRelatedlist(uniqid)
|
||||
|
||||
getComment()
|
||||
})
|
||||
.finally(() => (detailLoading.value = false))
|
||||
}
|
||||
@ -1423,20 +1598,9 @@ export default {
|
||||
|
||||
nextTick(() => {
|
||||
getRiposte(index)
|
||||
// getCoinConfig(index)
|
||||
})
|
||||
|
||||
// if (element.ripostes > 0) {
|
||||
// nextTick(() => getRiposte(index))
|
||||
// } else {
|
||||
// element["randomEmojis"] = []
|
||||
// element["ripostelist"] = []
|
||||
// element["ripostecount"] = {}
|
||||
// }
|
||||
})
|
||||
|
||||
// console.log("data.data", data.data) showOneCommentState
|
||||
|
||||
answerList.value = answerList.value.concat(data.data)
|
||||
|
||||
if (answerList.value.length == data["count"]) answerPage.value = 0
|
||||
@ -1746,7 +1910,7 @@ export default {
|
||||
}
|
||||
|
||||
// 打开 回答-评论 的子评论
|
||||
const openAnswerCommentsChild = (index, ind, i) => {
|
||||
const openAnswerCommentsChild = (index, i) => {
|
||||
if (isNeedLogin.value) {
|
||||
goLogin()
|
||||
return
|
||||
@ -1754,23 +1918,19 @@ export default {
|
||||
|
||||
closeAnswerCommentsChild()
|
||||
|
||||
if (i == null) answerList.value[index].commentList[ind]["childState"] = true
|
||||
else answerList.value[index].commentList[ind]["child"][i]["childState"] = true
|
||||
if (i == null) commentList.value[index]["childState"] = true
|
||||
else commentList.value[index]["child"][i]["childState"] = true
|
||||
}
|
||||
|
||||
// 关闭 回答-评论 的子评论
|
||||
const closeAnswerCommentsChild = (index, ind, i) => {
|
||||
const closeAnswerCommentsChild = () => {
|
||||
const targetAnswerList = [...answerList.value]
|
||||
|
||||
targetAnswerList.forEach(element => {
|
||||
if (element["commentList"] && element["commentList"].length != 0) {
|
||||
element["commentList"].forEach(ele => {
|
||||
ele["childState"] = false
|
||||
if (ele["child"] && ele["child"].length != 0) {
|
||||
ele["child"].forEach(el => {
|
||||
el["childState"] = false
|
||||
})
|
||||
}
|
||||
commentList.value.forEach(ele => {
|
||||
ele["childState"] = false
|
||||
if (ele["child"] && ele["child"].length != 0) {
|
||||
ele["child"].forEach(el => {
|
||||
el["childState"] = false
|
||||
})
|
||||
}
|
||||
})
|
||||
@ -2558,13 +2718,13 @@ export default {
|
||||
}
|
||||
|
||||
// 打开举报
|
||||
const handleMenuState = (index, ind, i) => {
|
||||
const handleMenuState = (index, i) => {
|
||||
if (isNeedLogin.value) {
|
||||
goLogin()
|
||||
return
|
||||
}
|
||||
if (i === undefined) reportToken = answerList.value[index].commentList[ind]["token"]
|
||||
else reportToken = answerList.value[index].commentList[ind]["child"][i]["token"]
|
||||
if (i === undefined) reportToken = commentList.value[index]["token"]
|
||||
else reportToken = commentList.value[index]["child"][i]["token"]
|
||||
alertShow.value = true
|
||||
}
|
||||
|
||||
@ -2690,39 +2850,41 @@ export default {
|
||||
const params = route.query
|
||||
if (params["keyword"]) keyword.value = params["keyword"]
|
||||
if (params["tid"]) typePitch.value = params["tid"]
|
||||
if (process.server && params["uniqid"]) {
|
||||
await axios
|
||||
.post(baseURL + "/api/details", { uniqid: params["uniqid"] })
|
||||
.then(response => {
|
||||
let res = response.data
|
||||
let data = res.data
|
||||
console.log("data", data)
|
||||
console.log(process.server)
|
||||
|
||||
data["info"]["uniqid"] = params["uniqid"]
|
||||
detailsInfoDataVuex.value = data
|
||||
detailsInfo.value = data["info"] || {}
|
||||
detailsIsanswered.value = data["isanswered"] || 0
|
||||
detailsIscollection.value = data["iscollection"] || 0
|
||||
detailsIsmyself.value = data["ismyself"] || 0
|
||||
detailsToken = data["token"] || ""
|
||||
detailShare.value = data["share"] || {}
|
||||
islike.value = data["islike"] || 0
|
||||
// if (process.server && params["uniqid"]) {
|
||||
// await axios
|
||||
// .post(baseURL + "/api/details", { uniqid: params["uniqid"] })
|
||||
// .then(response => {
|
||||
// let res = response.data
|
||||
// let data = res.data
|
||||
// console.log("data", data)
|
||||
|
||||
type.value = "details"
|
||||
// data["info"]["uniqid"] = params["uniqid"]
|
||||
// detailsInfoDataVuex.value = data
|
||||
// detailsInfo.value = data["info"] || {}
|
||||
// detailsIsanswered.value = data["isanswered"] || 0
|
||||
// detailsIscollection.value = data["iscollection"] || 0
|
||||
// detailsIsmyself.value = data["ismyself"] || 0
|
||||
// detailsToken = data["token"] || ""
|
||||
// detailShare.value = data["share"] || {}
|
||||
// islike.value = data["islike"] || 0
|
||||
|
||||
// calculateListIndex(data.info, params["uniqid"]);
|
||||
// type.value = "details"
|
||||
|
||||
answerList.value = []
|
||||
answerPage.value = 1
|
||||
getAnswerList()
|
||||
// // calculateListIndex(data.info, params["uniqid"]);
|
||||
|
||||
closeAllTransmitState()
|
||||
// answerList.value = []
|
||||
// answerPage.value = 1
|
||||
// getAnswerList()
|
||||
|
||||
replaceState({ uniqid: params["uniqid"] })
|
||||
seo.value = data.seo
|
||||
})
|
||||
.catch(error => console.error(error))
|
||||
}
|
||||
// closeAllTransmitState()
|
||||
|
||||
// replaceState({ uniqid: params["uniqid"] })
|
||||
// seo.value = data.seo
|
||||
// })
|
||||
// .catch(error => console.error(error))
|
||||
// }
|
||||
|
||||
await $ajax("/api/lists", {
|
||||
page,
|
||||
@ -3242,13 +3404,173 @@ export default {
|
||||
})
|
||||
}
|
||||
|
||||
const commentList = ref([])
|
||||
let commentCount = ref(0)
|
||||
let commentTotalCount = ref(0)
|
||||
let commentPage = ref(1)
|
||||
let isgetCommentSate = false // 请求评论状态
|
||||
let alreadyCommentIdList = []
|
||||
|
||||
const getComment = () => {
|
||||
console.log("getComment")
|
||||
|
||||
if (commentPage.value == 0 || isgetCommentSate) return
|
||||
isgetCommentSate = true
|
||||
console.log("getComment")
|
||||
// https://offer.gter.net/miniprogramApi/offer/comments/lists
|
||||
$ajax("/api/comment/lists", {
|
||||
token: detailsToken,
|
||||
page: commentPage.value,
|
||||
limit: 1000,
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code != 200) return
|
||||
let data = res.data
|
||||
|
||||
data.data.forEach((element, index) => {
|
||||
element["isReplyBoxShow"] = 0
|
||||
// element.timestamp = util.timeformat(element.timestamp, 2)
|
||||
if (element.child.length > 0) {
|
||||
element.child.forEach(el => {
|
||||
// el.timestamp = util.timeformat(el.timestamp, 2)
|
||||
el["isReplyBoxShow"] = 0
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
if (commentPage.value > 1) {
|
||||
let alreadyCommentIdList = alreadyCommentIdList
|
||||
for (let index = 0; index < data.data.length; index++) {
|
||||
if (alreadyCommentIdList.includes(data.data[index].id)) {
|
||||
data.data.splice(index, 1)
|
||||
index--
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
commentList.value = commentList.value.concat(data.data)
|
||||
console.log("commentList", commentList.value)
|
||||
|
||||
commentCount.value = data.count
|
||||
commentTotalCount.value = data.comments
|
||||
commentPage.value = data.count > commentList.length ? commentPage.value + 1 : 0
|
||||
|
||||
// console.log("commentList", commentList)
|
||||
// this.setData({
|
||||
// commentList,
|
||||
// commentCount: data.count,
|
||||
// commentTotalCount: data.comments,
|
||||
// commentPage: data.count > commentList.length ? this.data.commentPage + 1 : 0,
|
||||
// })
|
||||
})
|
||||
.finally(() => {
|
||||
isgetCommentSate = false
|
||||
})
|
||||
}
|
||||
|
||||
let picture = ref({})
|
||||
|
||||
const handleFileUpload = event => {
|
||||
closeEmoji()
|
||||
const file = event.target.files[0] // 获取选择的文件
|
||||
if (file) {
|
||||
const reader = new FileReader()
|
||||
reader.onload = e => {
|
||||
const base64 = e.target.result
|
||||
uploadImg(base64).then(res => {
|
||||
picture.value = {
|
||||
base64,
|
||||
...res,
|
||||
}
|
||||
handleMsg("success", "上传成功")
|
||||
})
|
||||
}
|
||||
reader.readAsDataURL(file)
|
||||
}
|
||||
}
|
||||
|
||||
// 删除上传的图片
|
||||
const closeFileUpload = () => {
|
||||
picture.value = {}
|
||||
}
|
||||
|
||||
//
|
||||
let emojiState = ref(false)
|
||||
|
||||
const emojiData = ["😀", "😁", "😆", "😅", "😂", "😉", "😍", "🥰", "😋", "😜", "🤪", "😎", "🤩", "🥳", "😔", "🙁", "😭", "😡", "😳", "🤗", "🤔", "🤭", "🤫", "😯", "😵", "🙄", "🥴", "🤢", "🤑", "🤠", "👌", "✌️", "🤟", "🤘", "🤙", "👍", "👎", "✊", "👏", "🤝", "🙏", "💪", "❤️", "💔", "🌹", "🥀", "🎉", "🎁", "🧧", "🌙", "⭐", "🌍", "💌", "📬", "🚗", "🚕", "🚲", "🛵", "🚀", "🚁", "⛵", "🚢", "🍎", "🍐", "🍊", "🍉", "🍓", "🍑", "🍔", "🍟", "🍕", "🥪", "🍜", "🍡", "🍨", "🍦", "🎂", "🍰", "🍭", "🍿", "🍩", "🧃", "🍹"]
|
||||
|
||||
// 打开 Emoji
|
||||
const openEmoji = () => {
|
||||
emojiState.value = true
|
||||
}
|
||||
|
||||
// 关闭 Emoji
|
||||
const closeEmoji = () => {
|
||||
emojiState.value = false
|
||||
}
|
||||
|
||||
// 选择 Emoji
|
||||
const selectEmoji = key => {
|
||||
closeEmoji()
|
||||
|
||||
console.log("key", key)
|
||||
}
|
||||
|
||||
let isPlaceholderVisible = ref(true)
|
||||
|
||||
const clearPlaceholder = () => {
|
||||
isPlaceholderVisible.value = false // 聚焦时隐藏占位符
|
||||
}
|
||||
|
||||
const setPlaceholder = event => {
|
||||
if (event.target.innerHTML == "<br>") event.target.innerHTML = ""
|
||||
const html = event.target.innerHTML
|
||||
if (!html) isPlaceholderVisible.value = true
|
||||
}
|
||||
|
||||
const handleInputPaste = (event, index, i) => {
|
||||
const items = event.clipboardData.items // 获取粘贴的内容
|
||||
for (let i = 0; i < items.length; i++) {
|
||||
const item = items[i]
|
||||
if (item.type.startsWith("image/")) {
|
||||
// 检查是否为图片
|
||||
event.preventDefault()
|
||||
const file = item.getAsFile() // 获取文件
|
||||
const reader = new FileReader()
|
||||
reader.onload = e => {
|
||||
const base64 = e.target.result
|
||||
uploadImg(base64).then(res => {
|
||||
console.log(index)
|
||||
const obj = {
|
||||
base64,
|
||||
...res,
|
||||
}
|
||||
|
||||
console.log(commentList.value);
|
||||
|
||||
if (index == undefined) {
|
||||
picture.value = obj
|
||||
} else if (i >= 0) {
|
||||
commentList.value[index].child[i]["picture"] = obj
|
||||
} else {
|
||||
commentList.value[index]["picture"] = obj
|
||||
}
|
||||
handleMsg("success", "上传成功")
|
||||
})
|
||||
}
|
||||
reader.readAsDataURL(file)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// const selectEomji = key => {}
|
||||
|
||||
return { 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, submitAnswerComments, operateAnswerCommentsLike, openAnswerCommentsChild, closeAnswerCommentsChild, alsoCommentsData, 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 }
|
||||
return { handleInputPaste, setPlaceholder, clearPlaceholder, isPlaceholderVisible, openEmoji, emojiState, closeEmoji, selectEmoji, emojiData, closeFileUpload, picture, handleFileUpload, 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, submitAnswerComments, operateAnswerCommentsLike, openAnswerCommentsChild, closeAnswerCommentsChild, alsoCommentsData, 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>
|
||||
|
||||
<style>
|
||||
@import url(./index.css);
|
||||
@import url(/css/index.css);
|
||||
@import url(/css/indexVice.css);
|
||||
</style>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
924
css/indexVice.css
Normal file
924
css/indexVice.css
Normal file
@ -0,0 +1,924 @@
|
||||
#answer-app .alert-form {
|
||||
display: block;
|
||||
position: fixed;
|
||||
z-index: 2100;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
}
|
||||
#answer-app .alert-form * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
#answer-app .alert-form .reports {
|
||||
height: 440px;
|
||||
}
|
||||
#answer-app .alert-form .reports .radio-area {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
#answer-app .alert-form .reports .radio-area .radio-area-item {
|
||||
color: #606266;
|
||||
font-size: 14px;
|
||||
margin-right: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .alert-form .reports .radio-area .radio-area-item.pitch .radio-area-frame {
|
||||
background-color: #50e3c2;
|
||||
border-color: #50e3c2;
|
||||
}
|
||||
#answer-app .alert-form .reports .radio-area .radio-area-item.pitch .radio-area-frame::after {
|
||||
-webkit-transform: rotate(45deg) scaleY(1);
|
||||
transform: rotate(45deg) scaleY(1);
|
||||
}
|
||||
#answer-app .alert-form .reports .radio-area .radio-area-item .radio-area-frame {
|
||||
border: 1px solid #dcdfe6;
|
||||
border-radius: 2px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
-webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
|
||||
transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
|
||||
position: relative;
|
||||
margin-right: 10px;
|
||||
}
|
||||
#answer-app .alert-form .reports .radio-area .radio-area-item .radio-area-frame::after {
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
content: "";
|
||||
border: 1px solid #fff;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
height: 7px;
|
||||
left: 4px;
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
-webkit-transform: rotate(45deg) scaleY(0);
|
||||
transform: rotate(45deg) scaleY(0);
|
||||
width: 3px;
|
||||
-webkit-transition: -webkit-transform 0.15s ease-in 0.05s;
|
||||
transition: -webkit-transform 0.15s ease-in 0.05s;
|
||||
transition: transform 0.15s ease-in 0.05s;
|
||||
transition: transform 0.15s ease-in 0.05s, -webkit-transform 0.15s ease-in 0.05s;
|
||||
-webkit-transform-origin: center;
|
||||
transform-origin: center;
|
||||
}
|
||||
#answer-app .alert-form .el-checkbox-group {
|
||||
font-size: 0;
|
||||
}
|
||||
#answer-app .alert-form .comments {
|
||||
display: block;
|
||||
position: fixed;
|
||||
z-index: 11;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
width: 740px;
|
||||
height: 440px;
|
||||
max-width: 90vw;
|
||||
max-height: 90vh;
|
||||
transform: translate(-50%, -50%);
|
||||
background-color: #ffffff;
|
||||
border: none;
|
||||
border-radius: 8px 8px 6px 6px;
|
||||
}
|
||||
#answer-app .alert-form .comments .text-box {
|
||||
position: relative;
|
||||
}
|
||||
#answer-app .alert-form .comments .text-num {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
color: #999;
|
||||
font-size: 12px;
|
||||
}
|
||||
#answer-app .alert-form .comments .form {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 34px 30px 40px;
|
||||
}
|
||||
#answer-app .alert-form .comments .form textarea {
|
||||
height: 172px;
|
||||
margin-bottom: 30px;
|
||||
display: block;
|
||||
width: 100%;
|
||||
background: #f7f7f7;
|
||||
padding: 18px;
|
||||
font-size: 14px;
|
||||
border: 1px solid #f7f7f7;
|
||||
border-radius: 5px;
|
||||
outline: none;
|
||||
resize: none;
|
||||
line-height: 22px;
|
||||
}
|
||||
#answer-app .alert-form .head {
|
||||
padding: 0 18px 0 30px;
|
||||
display: flex;
|
||||
height: 56px;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: #333333;
|
||||
color: #fff;
|
||||
font-size: 17px;
|
||||
border-radius: 6px 6px 0 0;
|
||||
}
|
||||
#answer-app .alert-form .head .close {
|
||||
color: #b3b3b3;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .alert-form .footer {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
#answer-app .alert-form .footer button[type="button"] {
|
||||
margin-right: 20px;
|
||||
}
|
||||
#answer-app .alert-form .footer button {
|
||||
border: 1px #999999 solid;
|
||||
border-radius: 5px;
|
||||
background-color: #ffffff;
|
||||
width: 128px;
|
||||
height: 38px;
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .alert-form .footer button[type="submit"] {
|
||||
background-color: #50e3c2;
|
||||
border-color: #50e3c2;
|
||||
color: #fff;
|
||||
}
|
||||
#answer-app .alert-form .el-checkbox__input.is-checked .el-checkbox__inner,
|
||||
#answer-app .alert-form .el-checkbox__input.is-indeterminate .el-checkbox__inner {
|
||||
background-color: #50e3c2;
|
||||
border-color: #50e3c2;
|
||||
}
|
||||
#answer-app .alert-form .el-checkbox__input.is-focus .el-checkbox__inner,
|
||||
#answer-app .alert-form .el-checkbox__inner:hover {
|
||||
border-color: #50e3c2;
|
||||
}
|
||||
#answer-app .alert-form .el-checkbox__input.is-checked + .el-checkbox__label {
|
||||
color: #50e3c2;
|
||||
}
|
||||
#answer-app .bottom-tps {
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
color: #555;
|
||||
text-align: center;
|
||||
padding: 30px 0;
|
||||
min-width: 508px;
|
||||
}
|
||||
#answer-app .avatar-box {
|
||||
flex-direction: column;
|
||||
width: 140px;
|
||||
height: 101px;
|
||||
background-color: #f4f8ff;
|
||||
border: 1px solid #dce0ea;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.20392157);
|
||||
-webkit-box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.20392157);
|
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.20392157);
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
z-index: 100;
|
||||
}
|
||||
#answer-app .avatar-box .avatar-mask {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: -1;
|
||||
cursor: auto;
|
||||
}
|
||||
#answer-app .avatar-box .avatar-item {
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
height: 50px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .avatar-box .avatar-item:not(:last-of-type) {
|
||||
border-bottom: 1px dotted #d7d7d7;
|
||||
}
|
||||
#answer-app .avatar-box .avatar-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
#answer-app .edit-answers {
|
||||
width: 720px;
|
||||
height: 400px;
|
||||
background-color: #ffffff;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
|
||||
-webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
|
||||
box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
#answer-app .edit-answers .close-icon {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
right: 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .edit-answers .titletitle {
|
||||
height: 64px;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
font-size: 14px;
|
||||
color: #000000;
|
||||
font-weight: 650;
|
||||
padding-top: 20px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
#answer-app .edit-answers .question-textarea {
|
||||
display: block;
|
||||
border: none;
|
||||
outline: none;
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
color: #555555;
|
||||
line-height: 26px;
|
||||
resize: none;
|
||||
padding: 20px;
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
}
|
||||
#answer-app .edit-answers .question-textarea.placeholder::after {
|
||||
content: "输入图文内容回答提问(支持直接粘贴图片)";
|
||||
color: #999;
|
||||
}
|
||||
#answer-app .edit-answers .question-textarea img {
|
||||
max-width: 100%;
|
||||
}
|
||||
#answer-app .msg-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
line-height: 16px;
|
||||
}
|
||||
#answer-app .msg-container .iconfont {
|
||||
margin-right: 5px;
|
||||
}
|
||||
#answer-app .msg-enter-active {
|
||||
animation: anim 0.5s;
|
||||
}
|
||||
#answer-app .msg-leave-active {
|
||||
animation: anim 0.5s reverse;
|
||||
}
|
||||
@keyframes anim {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate(-50%, -200%);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
}
|
||||
#answer-app .my-popover .popover-box {
|
||||
width: 750px;
|
||||
height: 616px;
|
||||
max-height: 92vh;
|
||||
background-color: #ffffff;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
|
||||
-webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
|
||||
box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
|
||||
flex-direction: column;
|
||||
padding-top: 30px;
|
||||
position: relative;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .cross-icon {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
right: 12px;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .tab-list {
|
||||
color: #aaa;
|
||||
font-size: 16px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .tab-list .tab-item {
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .tab-list .tab-item .quantity {
|
||||
margin-left: 10px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .tab-list .tab-item.pitch {
|
||||
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
|
||||
font-weight: 650;
|
||||
color: #000000;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .tab-list .tab-item.pitch .quantity {
|
||||
font-weight: 400;
|
||||
color: #555;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .tab-list .long-string {
|
||||
margin: 0 20px;
|
||||
width: 1px;
|
||||
height: 17px;
|
||||
background-color: #d7d7d7;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .empty-box {
|
||||
width: 690px;
|
||||
height: 490px;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #ebebeb;
|
||||
border-radius: 6px;
|
||||
margin: 0 auto;
|
||||
flex-direction: column;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .empty-box .dot-list .item {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .empty-box .dot-list .item:not(:last-of-type) {
|
||||
margin-right: 5px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .empty-box .empty-icon {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .empty-box .empty-hint {
|
||||
font-size: 13px;
|
||||
color: #7f7f7f;
|
||||
line-height: 22px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box {
|
||||
width: 690px;
|
||||
height: 490px;
|
||||
margin: 0 auto;
|
||||
overflow: auto;
|
||||
padding-right: 10px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .icon {
|
||||
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
|
||||
font-weight: 650;
|
||||
font-size: 13px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
border-radius: 50%;
|
||||
color: #fff;
|
||||
margin-right: 17px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .icon.q {
|
||||
background-color: #72db86;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .icon.a {
|
||||
background-color: #62b1ff;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item {
|
||||
padding: 20px 0;
|
||||
border-bottom: 1px dotted #ebebeb;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .centre {
|
||||
flex-direction: column;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .centre .info {
|
||||
font-size: 12px;
|
||||
color: #555;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .centre .info .time {
|
||||
color: #aaa;
|
||||
margin-left: 8px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .centre .titletitle {
|
||||
color: #333333;
|
||||
font-size: 14px;
|
||||
min-height: 21px;
|
||||
margin-bottom: 10px;
|
||||
width: 532px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .centre .titletitle img {
|
||||
height: 80px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .centre .text {
|
||||
font-size: 12px;
|
||||
color: #aaaaaa;
|
||||
width: 532px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .text {
|
||||
font-size: 13px;
|
||||
color: #333;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .arrows {
|
||||
width: 8px;
|
||||
height: 5px;
|
||||
margin-left: 6px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .state-popup {
|
||||
position: absolute;
|
||||
top: 28px;
|
||||
right: 3px;
|
||||
width: 140px;
|
||||
height: 101px;
|
||||
background-color: #ffffff;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.20392157);
|
||||
-webkit-box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.20392157);
|
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.20392157);
|
||||
flex-direction: column;
|
||||
z-index: 1;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .state-popup .state-popup-mask {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
z-index: -1;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .state-popup .state-popup-item {
|
||||
justify-content: space-between;
|
||||
color: #555;
|
||||
font-size: 14px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .state-popup .state-popup-item:hover {
|
||||
color: #000000;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .state-popup .state-popup-item.pitch {
|
||||
color: #fa6b11;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .state-popup .state-popup-item.pitch .state-popup-icon {
|
||||
display: block;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .state-popup .state-popup-item:not(:last-of-type) {
|
||||
border-bottom: 1px dotted #e3e3e3;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .state-box .state-popup .state-popup-item .state-popup-icon {
|
||||
width: 11px;
|
||||
height: 8px;
|
||||
display: none;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box .item .operate-box .edit-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
cursor: pointer;
|
||||
margin-left: 30px;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box.collect-list .item {
|
||||
padding: 20px 0;
|
||||
border-bottom: 1px dotted #ebebeb;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box.collect-list .item .delete-box .delete-icon {
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box.questions-list .item .new-answer {
|
||||
color: #f95d5d;
|
||||
}
|
||||
#answer-app .my-popover .popover-box .content-box.questions-list .item .new-answer .long-string {
|
||||
width: 1px;
|
||||
height: 12px;
|
||||
background-color: #d7d7d7;
|
||||
margin: 0 8px;
|
||||
}
|
||||
#answer-app .popover-mask {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
z-index: 1000;
|
||||
}
|
||||
#answer-app .respond-add {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
background-color: #62b1ff;
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
}
|
||||
#answer-app .respond-add.angle::after {
|
||||
content: "";
|
||||
background: #f6f6f6;
|
||||
border: 1px solid #e4e7ed;
|
||||
border-bottom-color: transparent !important;
|
||||
border-right-color: transparent !important;
|
||||
border-top-left-radius: 2px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
bottom: -17px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%) rotate(45deg);
|
||||
z-index: 3000;
|
||||
}
|
||||
#answer-app .respond-add .respond-add-icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
#answer-app .respond-list-mask {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
z-index: 1;
|
||||
}
|
||||
#answer-app .respond-pop-mask {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
z-index: 10;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop {
|
||||
width: 600px;
|
||||
height: 500px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #e5e5e5;
|
||||
border-radius: 20px;
|
||||
box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.21);
|
||||
-webkit-box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.21);
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-pop-title {
|
||||
height: 50px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-bottom: 1px dotted rgba(215, 215, 215, 0.5);
|
||||
align-items: center;
|
||||
color: #555555;
|
||||
position: relative;
|
||||
font-size: 16px;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-pop-title .respond-pop-amount {
|
||||
margin: 0 8px;
|
||||
font-weight: 650;
|
||||
color: #000000;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-pop-title .respond-title-icon {
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
right: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list {
|
||||
overflow: auto;
|
||||
height: 450px;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list::-webkit-scrollbar-track {
|
||||
border-radius: 10px;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list::-webkit-scrollbar-thumb {
|
||||
background-color: #0003;
|
||||
border-radius: 10px;
|
||||
transition: all 0.2s ease-in-out;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list .respond-item {
|
||||
display: flex;
|
||||
padding: 20px 0 0 20px;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list .respond-item:not(:last-of-type) .respond-content {
|
||||
border-bottom: 1px dotted rgba(215, 215, 215, 0.5);
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list .respond-item .respond-code {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
background-color: #f6f6f6;
|
||||
border-radius: 10px;
|
||||
font-family: "emojifont";
|
||||
font-size: 25px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-right: 20px;
|
||||
cursor: pointer;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list .respond-item .respond-code.pitch {
|
||||
background-color: #f6f6bd;
|
||||
border: 1px solid #ccd003;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list .respond-item .respond-content {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list .respond-item .respond-content .respond-total {
|
||||
font-size: 14px;
|
||||
color: #7f7f7f;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list .respond-item .respond-content .user-item {
|
||||
font-size: 14px;
|
||||
color: #555555;
|
||||
display: inline-flex;
|
||||
margin-right: 20px;
|
||||
margin-bottom: 10px;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-list .respond-item .respond-content .user-item .user-avatar {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
border-radius: 50%;
|
||||
margin-right: 10px;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-pop-no {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-pop-no .respond-title-icon {
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-pop-no .respond-pop-no-icon {
|
||||
width: 90px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
#answer-app .respond-pop-mask .respond-pop .respond-pop-no .respond-pop-no-text {
|
||||
font-size: 13px;
|
||||
color: #7f7f7f;
|
||||
line-height: 22px;
|
||||
}
|
||||
#answer-app .slit-pop-mask {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
z-index: 10;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
#answer-app .slit-pop-box {
|
||||
width: 523px;
|
||||
border: 1px solid #e5e5e5;
|
||||
background-color: #fff;
|
||||
border-radius: 11px;
|
||||
padding: 60px 50px 48px 38px;
|
||||
display: flex;
|
||||
-webkit-box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.21);
|
||||
box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.21);
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-left {
|
||||
width: 50px;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-left .slit-left-icon {
|
||||
width: 50px;
|
||||
height: 60px;
|
||||
margin-top: -8px;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box {
|
||||
flex: 1;
|
||||
margin-left: 15px;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .slit-head {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 54px;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .slit-head .slit-head-title {
|
||||
font-weight: 650;
|
||||
font-size: 20px;
|
||||
color: #333;
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .slit-head .slit-head-title a {
|
||||
font-weight: 100;
|
||||
font-size: 13px;
|
||||
text-decoration: underline !important;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .slit-head .in-all {
|
||||
font-size: 13px;
|
||||
color: #7f7f7f;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .slit-head .in-all > span {
|
||||
color: #000;
|
||||
font-weight: 650;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .coin-quantity {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 27px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .coin-quantity .coin-quantity-item {
|
||||
width: 78px;
|
||||
height: 46px;
|
||||
border: 1px solid #d7d7d7;
|
||||
background-color: #f0f2f5;
|
||||
border-radius: 5px;
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
font-weight: 650;
|
||||
line-height: 46px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .coin-quantity .coin-quantity-item > span {
|
||||
color: #555;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .coin-quantity .coin-quantity-item:not(:last-of-type) {
|
||||
margin-right: 16px;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .coin-quantity .coin-quantity-item.coin-pitch {
|
||||
background-color: #333333;
|
||||
border-color: #333333;
|
||||
color: #fff;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .coin-quantity .coin-quantity-item.coin-pitch > span {
|
||||
color: #fff;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .slit-input {
|
||||
width: 360px;
|
||||
height: 38px;
|
||||
padding-left: 8px;
|
||||
border: 1px solid #d7d7d7;
|
||||
outline: none;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
font-size: 15px;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .slit-input::-webkit-outer-spin-button,
|
||||
#answer-app .slit-pop-box .slit-box .slit-input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .slit-input[type="number"] {
|
||||
-moz-appearance: textfield;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .slit-input .el-input__inner {
|
||||
border: none;
|
||||
outline: none;
|
||||
padding: 0 54px 0 0;
|
||||
margin: 0;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .message-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .message-box .message-hint {
|
||||
color: #000;
|
||||
font-size: 14px;
|
||||
margin-top: 29px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .operation {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-top: 48px;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .operation .operation-item {
|
||||
width: 120px;
|
||||
height: 41px;
|
||||
margin-left: 16px;
|
||||
border: 1px solid #797979;
|
||||
border-radius: 45px;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
}
|
||||
#answer-app .slit-pop-box .slit-box .operation .operation-item.greenBj {
|
||||
background-color: #50e3c2;
|
||||
border-color: #50e3c2 !important;
|
||||
}
|
||||
#answer-app .no-jituobi-pop-box {
|
||||
width: 520px;
|
||||
flex-direction: column;
|
||||
border: 1px solid #e5e5e5;
|
||||
background-color: #fff;
|
||||
border-radius: 11px;
|
||||
display: flex;
|
||||
-webkit-box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.21);
|
||||
box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.21);
|
||||
padding-bottom: 55px;
|
||||
}
|
||||
#answer-app .no-jituobi-pop-box .no-jituobi-close {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 10px;
|
||||
align-self: flex-end;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .no-jituobi-pop-box .no-jituobi-head {
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
margin: 23px auto 42px;
|
||||
}
|
||||
#answer-app .no-jituobi-pop-box .no-jituobi-head .bi-icon {
|
||||
width: 50px;
|
||||
height: 60px;
|
||||
}
|
||||
#answer-app .no-jituobi-pop-box .strategy-btn {
|
||||
width: 198px;
|
||||
height: 43px;
|
||||
color: #000;
|
||||
font-size: 16px;
|
||||
border-radius: 100px;
|
||||
margin: 0 auto;
|
||||
cursor: pointer;
|
||||
}
|
||||
#answer-app .no-jituobi-pop-box .strategy-btn.greenBj {
|
||||
background-color: #50e3c2;
|
||||
border-color: #50e3c2 !important;
|
||||
}
|
||||
#answer-app .no-jituobi-pop-box .strategy-btn .strategy-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
#answer-app .answer-empty-box {
|
||||
height: 321px;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
background-color: #fff;
|
||||
width: 626px;
|
||||
height: 300px;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #ebebeb;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
|
||||
-webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
|
||||
box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.11764706);
|
||||
margin-bottom: 21px;
|
||||
}
|
||||
.el-popover.el-popper {
|
||||
padding: 0px;
|
||||
border-radius: 10px;
|
||||
border: 1px solid #ebebeb;
|
||||
}
|
||||
.el-popper.is-light .el-popper__arrow:before {
|
||||
background: #f6f6f6;
|
||||
}
|
||||
.respond-list-box {
|
||||
width: 470px;
|
||||
background: #f6f6f6;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.respond-list-box .respond-list-title {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
color: #333333;
|
||||
padding-top: 16px;
|
||||
padding-left: 20px;
|
||||
padding-bottom: 25px;
|
||||
}
|
||||
.respond-list-box .respond-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(10, 1fr);
|
||||
}
|
||||
.respond-list-box .respond-list .respond-item {
|
||||
font-size: 20px;
|
||||
font-family: "emojifont";
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.respond-list-box .respond-list .respond-item .respond-item-key {
|
||||
font-family: "emojifont";
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
.respond-list-box .respond-list .respond-item .respond-item-key:hover::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
display: block;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
background-color: #eee;
|
||||
border-radius: 4px;
|
||||
z-index: -1;
|
||||
}
|
1095
css/indexVice.less
Normal file
1095
css/indexVice.less
Normal file
File diff suppressed because it is too large
Load Diff
BIN
img/close-icon.png
Normal file
BIN
img/close-icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.0 KiB |
BIN
img/picture-icon.png
Normal file
BIN
img/picture-icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
img/smiling-face.png
Normal file
BIN
img/smiling-face.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
Loading…
Reference in New Issue
Block a user