2024-07-19 07:03:52 +00:00
|
|
|
|
<template>
|
2024-08-12 03:11:03 +00:00
|
|
|
|
<el-popover ref="addPopper" :width="470" trigger="click" popper-class="add-popper" :teleported="false" :show-arrow="true" @show="catState(true)" @hide="catState(false)" v-model:visible="state" :placement="type == 'bottom' ? 'top' : 'bottom'">
|
2024-07-19 07:03:52 +00:00
|
|
|
|
<template #reference>
|
|
|
|
|
<div class="respond-add flexcenter" :class="{ 'angle': state }">
|
|
|
|
|
<img class="respond-add-icon" src="../assets/img/plus-sign.svg" />
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<div class="respond-list-box">
|
|
|
|
|
<div class="respond-list-title">选择你的回应:</div>
|
|
|
|
|
<div class="respond-list">
|
|
|
|
|
<template v-for="item in riposteoptions" :key="item">
|
2024-08-12 03:11:03 +00:00
|
|
|
|
<div class="respond-item flexcenter" v-for="(item, key) in item.data" :key="key">
|
|
|
|
|
<div class="respond-item-key" v-html="jointriposte(key)" @click="selectEomji(key)"></div>
|
|
|
|
|
</div>
|
2024-07-19 07:03:52 +00:00
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-popover>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup>
|
|
|
|
|
let props = defineProps({
|
|
|
|
|
type: Boolean,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
let state = ref(false)
|
|
|
|
|
|
|
|
|
|
let riposteoptions = inject("riposteoptions")
|
|
|
|
|
let selectEomjiPop = inject("selectEomjiPop")
|
|
|
|
|
let jointriposte = inject("jointriposte")
|
|
|
|
|
|
|
|
|
|
const emit = defineEmits(["update:respondShowState"])
|
|
|
|
|
|
|
|
|
|
const catState = value => {
|
|
|
|
|
state.value = value
|
|
|
|
|
if (props.type == "bottom") {
|
|
|
|
|
emit("update:respondShowState", value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const addPopper = ref(null)
|
|
|
|
|
|
|
|
|
|
const selectEomji = key => {
|
|
|
|
|
selectEomjiPop(key)
|
|
|
|
|
addPopper.value.hide()
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
|
|
.respond-add {
|
|
|
|
|
width: 30px;
|
|
|
|
|
height: 30px;
|
|
|
|
|
background-color: rgba(98, 177, 255, 1);
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
position: relative;
|
|
|
|
|
// margin: 5px;
|
|
|
|
|
|
|
|
|
|
&.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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.respond-add-icon {
|
|
|
|
|
width: 14px;
|
|
|
|
|
height: 14px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<style lang="less">
|
|
|
|
|
.el-popover.el-popper.add-popper {
|
|
|
|
|
padding: 0;
|
|
|
|
|
background: #f6f6f6;
|
|
|
|
|
border: 1px solid #ebebeb;
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
// left: 0 !important;
|
|
|
|
|
}
|
|
|
|
|
.el-popper.add-popper.is-light .el-popper__arrow::before {
|
|
|
|
|
background: #f6f6f6;
|
|
|
|
|
}
|
|
|
|
|
</style>
|