You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
275 lines
6.3 KiB
275 lines
6.3 KiB
<template>
|
|
<div class="tree-hole-container">
|
|
<ol class="tree-hole-list" v-if="!$common.isEmpty(treeHoleList)">
|
|
<li class="tree-hole-li"
|
|
v-for="(treeHole, index) in treeHoleList"
|
|
:key="index">
|
|
<div class="tree-hole-content"
|
|
:class="{ leftTreeHole: index % 2 === 0 && !$common.mobile(), rightTreeHole: index % 2 !== 0 || $common.mobile() }">
|
|
<el-avatar shape="circle" class="avatar-img" :size="36" :src="currentUser.avatar"></el-avatar>
|
|
<div class="tree-hole-box"
|
|
:style="{background: $constant.tree_hole_color[index % $constant.tree_hole_color.length]}">
|
|
<div class="box-tag" v-if="index % 2 === 0 && !$common.mobile()"
|
|
:style="{'border-color': 'transparent transparent transparent '+$constant.tree_hole_color[index % $constant.tree_hole_color.length]}"></div>
|
|
<div class="box-tag" v-if="index % 2 !== 0 || $common.mobile()"
|
|
:style="{'border-color': 'transparent '+$constant.tree_hole_color[index % $constant.tree_hole_color.length]+' transparent transparent'}"></div>
|
|
<div class="my-content" v-html="treeHole.content"></div>
|
|
<div style="display: flex;justify-content: space-between">
|
|
<div>😃 {{treeHole.createTime}}</div>
|
|
<div @click="deleteTreeHole(treeHole.id)"
|
|
class="tree-hole-delete"
|
|
v-if="!$common.isEmpty($store.state.currentUser) && $store.state.currentUser.id === treeHole.userId">
|
|
<svg viewBox="0 0 1024 1024" width="18" height="18" style="vertical-align: -2px;">
|
|
<path
|
|
d="M921.1392 155.392h-270.592v-48.2816c0-22.7328-18.432-41.1648-41.1648-41.1648H426.3424a41.1648 41.1648 0 0 0-41.1648 41.1648v48.2816H110.6432c-14.1312 0-25.6 11.4688-25.6 25.6s11.4688 25.6 25.6 25.6h810.496c14.1312 0 25.6-11.4688 25.6-25.6s-11.4688-25.6-25.6-25.6zM170.8032 260.0448v592.8448c0 50.8928 41.2672 92.16 92.16 92.16h500.6848c50.8928 0 92.16-41.2672 92.16-92.16V260.0448H170.8032z m249.1392 462.7968c0 14.1312-11.4688 25.6-25.6 25.6s-25.6-11.4688-25.6-25.6V443.0848c0-14.1312 11.4688-25.6 25.6-25.6s25.6 11.4688 25.6 25.6v279.7568z m243.1488 0c0 14.1312-11.4688 25.6-25.6 25.6s-25.6-11.4688-25.6-25.6V443.0848c0-14.1312 11.4688-25.6 25.6-25.6s25.6 11.4688 25.6 25.6v279.7568z"
|
|
fill="#FF623E"></path>
|
|
</svg>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
<div class="tree-hole-go">
|
|
<i class="fa fa-paper-plane" @click="launch()"></i>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
props: {
|
|
treeHoleList: {
|
|
type: Array
|
|
},
|
|
avatar: {
|
|
type: String
|
|
}
|
|
},
|
|
|
|
data() {
|
|
return {
|
|
currentUser: this.$store.state.currentUser,
|
|
}
|
|
},
|
|
|
|
computed: {},
|
|
|
|
watch: {},
|
|
|
|
created() {
|
|
|
|
},
|
|
|
|
mounted() {
|
|
|
|
},
|
|
|
|
methods: {
|
|
launch() {
|
|
this.$emit("launch");
|
|
},
|
|
deleteTreeHole(id) {
|
|
this.$emit("deleteTreeHole", id);
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
.tree-hole-container {
|
|
padding: 20px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.tree-hole-list {
|
|
padding: 100px 0 20px;
|
|
margin: 0;
|
|
position: relative;
|
|
list-style: none;
|
|
}
|
|
|
|
.tree-hole-list:before {
|
|
content: '';
|
|
width: 4px;
|
|
border-radius: 50%;
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
background-color: var(--themeBackground);
|
|
}
|
|
|
|
.tree-hole-list:after {
|
|
content: '';
|
|
width: 12px;
|
|
height: 12px;
|
|
border: 4px solid var(--maxLightRed);
|
|
border-radius: 50%;
|
|
position: absolute;
|
|
top: 10px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
background-color: var(--white);
|
|
animation: weiYanShadowFlashing 1.5s linear infinite;
|
|
}
|
|
|
|
.tree-hole-li {
|
|
margin: 5px auto;
|
|
}
|
|
|
|
.tree-hole-content {
|
|
position: relative;
|
|
width: 50%;
|
|
}
|
|
|
|
.leftTreeHole {
|
|
text-align: right;
|
|
}
|
|
|
|
.rightTreeHole {
|
|
margin-left: 50%;
|
|
}
|
|
|
|
.tree-hole-content:before {
|
|
content: '';
|
|
width: 12px;
|
|
height: 12px;
|
|
border: 4px solid var(--blue);
|
|
border-radius: 50%;
|
|
position: absolute;
|
|
top: 10px;
|
|
background-color: var(--white);
|
|
}
|
|
|
|
.leftTreeHole:before {
|
|
right: 0;
|
|
transform: translateX(10px);
|
|
}
|
|
|
|
.rightTreeHole:before {
|
|
left: 0;
|
|
transform: translateX(-10px);
|
|
}
|
|
|
|
.avatar-img {
|
|
position: absolute;
|
|
top: 0;
|
|
transition: all 0.3s ease-in-out;
|
|
}
|
|
|
|
.leftTreeHole .avatar-img {
|
|
right: 25px;
|
|
}
|
|
|
|
.rightTreeHole .avatar-img {
|
|
left: 25px;
|
|
}
|
|
|
|
.tree-hole-box {
|
|
font-size: 16px;
|
|
padding: 10px;
|
|
width: 360px;
|
|
border-radius: 5px;
|
|
position: relative;
|
|
letter-spacing: 0.1em;
|
|
font-weight: 400;
|
|
transition: all 0.3s ease-in-out;
|
|
color: var(--black);
|
|
text-align: left;
|
|
display: inline-block;
|
|
}
|
|
|
|
.leftTreeHole .tree-hole-box {
|
|
margin-right: 90px;
|
|
}
|
|
|
|
.rightTreeHole .tree-hole-box {
|
|
margin-left: 90px;
|
|
}
|
|
|
|
.tree-hole-box:hover, .avatar-img:hover {
|
|
transform: translateY(-5px);
|
|
box-shadow: 0 0 16px 3px var(--miniMask);
|
|
}
|
|
|
|
.box-tag {
|
|
content: '';
|
|
position: absolute;
|
|
border-style: solid;
|
|
}
|
|
|
|
.leftTreeHole .box-tag {
|
|
right: -10px;
|
|
border-width: 15px 0 5px 10px;
|
|
}
|
|
|
|
.rightTreeHole .box-tag {
|
|
left: -10px;
|
|
border-width: 15px 10px 5px 0;
|
|
}
|
|
|
|
.my-content {
|
|
margin: 0 10px 10px;
|
|
line-height: 30px;
|
|
}
|
|
|
|
.tree-hole-box > div:last-child {
|
|
color: var(--greyFont);
|
|
padding: 10px 10px 0;
|
|
border-top: 1px dashed var(--white);
|
|
font-size: 14px;
|
|
}
|
|
|
|
.tree-hole-go {
|
|
color: var(--blue);
|
|
font-weight: 700;
|
|
font-size: 25px;
|
|
margin: 20px auto;
|
|
text-align: center;
|
|
}
|
|
|
|
.tree-hole-go i {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.tree-hole-go i:hover {
|
|
animation: scale 1s linear infinite;
|
|
}
|
|
|
|
.tree-hole-delete {
|
|
font-size: 14px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
@media screen and (max-width: 1000px) {
|
|
.tree-hole-box {
|
|
width: calc(100% - 90px);
|
|
}
|
|
}
|
|
|
|
@media screen and (max-width: 600px) {
|
|
.tree-hole-content {
|
|
margin-bottom: 50px;
|
|
}
|
|
|
|
.tree-hole-list:after {
|
|
left: 0;
|
|
}
|
|
|
|
.tree-hole-list:before {
|
|
left: 0;
|
|
}
|
|
|
|
.rightTreeHole {
|
|
margin-left: unset;
|
|
}
|
|
|
|
.tree-hole-content {
|
|
width: 100%;
|
|
}
|
|
}
|
|
</style>
|