Files
dvcp_v2_wechat_app/src/project/fengdu/AppCircle/Detail.vue
yanran200730 c276a3f908 接口对接
2023-03-17 14:10:11 +08:00

320 lines
6.6 KiB
Vue

<template>
<div class="Detail" v-if="isShow">
<div class="top">
<div class="item-top">
<image :src="info.createUserAvatar" />
<div class="right">
<h3>{{ info.createUserName }}</h3>
<span>{{ info.publishDepartName }}</span>
</div>
</div>
<div class="item-content">
<span v-if="name" @click="toTopic('./TopicDetail?themeId=' + themeId + '&name=' + name)">#{{ name }}</span>
<text>{{ info.content }}</text>
</div>
<div class="item-imgs" v-if="info.files && info.files.length">
<image mode="aspectFill" v-for="(item, index) in item.files" :key="index" :src="item.url" />
</div>
<p>{{ info.createTime }}</p>
<div class="item-bottom">
<div>
<image src="https://cdn.cunwuyun.cn/wxmp/fengdu/ic-zhuanfa.png" />
<i>{{ info.sharedCount }}</i>
</div>
<div>
<image src="https://cdn.cunwuyun.cn/wxmp/fengdu/zan.png" />
<i>{{ info.appreciateCount }}</i>
</div>
<div>
<image src="https://cdn.cunwuyun.cn/wxmp/fengdu/ic-pinglun.png" />
<i>{{ info.commentCount }}</i>
</div>
</div>
</div>
<div class="comment">
<h2>评论</h2>
<div class="comment-wrapper">
<div class="comment-item" v-for="(item, index) in 10" :key="index">
<image src="https://cdn.cunwuyun.cn/wxmp/fengdu/ic-fangwuchuzu.png" />
<div class="right">
<h3>清风</h3>
<p>联系方式呢</p>
<div class="bottom">
<span>2020-12-11 10:10</span>
<div>回复</div>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<input placeholder="请输入">
<div>发送</div>
</div>
<AiLogin ref="login"/>
</div>
</template>
<script>
export default {
name: 'Detail',
appName: '详情',
data () {
return {
id: '',
isShow: false,
info: {},
name: '',
themeId: '',
isFrom: ''
}
},
onLoad (query) {
this.isFrom = query.isFrom
this.id = query.id
this.$loading()
this.getInfo(query.id)
this.themeId = query.themeId
this.name = query.name || ''
},
methods: {
getInfo (id) {
this.$instance.post(`/app/appneighborhoodassistance/queryDetailById?id=${id}`).then(res => {
if (res.code === 0) {
this.info = res.data
this.isShow = true
}
uni.hideLoading()
})
},
toTopic (url) {
if (this.isFrom === 'topic') {
uni.navigateBack({
delta: 1
})
} else {
this.$linkTo(url)
}
}
}
}
</script>
<style scoped lang="scss">
.Detail {
padding-top: 24px;
padding-bottom: 100px;
div {
box-sizing: border-box;
}
.footer {
display: flex;
align-items: center;
position: fixed;
left: 0;
bottom: 0;
z-index: 111;
width: 100%;
padding: 14px 32px;
background: #fff;
input {
flex: 1;
height: 60px;
margin-right: 16px;
padding: 0 24px;
border-radius: 30px;
font-size: 26px;
color: #333;
box-sizing: border-box;
background: #eeeeeeff;
}
div {
width: 100px;
height: 60px;
line-height: 60px;
text-align: center;
font-size: 26px;
color: #fff;
border-radius: 30px;
background: #2d7dffff;
}
}
.comment {
margin-top: 24px;
padding: 32px 32px 0;
background: #fff;
.comment-wrapper {
.comment-item {
display: flex;
padding: 26px 0;
&:first-child {
padding-top: 0;
}
& > image {
width: 72px;
height: 72px;
margin-right: 16px;
border-radius: 50%;
}
.right {
flex: 1;
padding-bottom: 32px;
border-bottom: 1px solid #EEEEEE;
h3 {
line-height: 40px;
margin-bottom: 8px;
color: #666666;
font-size: 28px;
}
p {
line-height: 42px;
margin-bottom: 24px;
color: #333;
font-size: 28px;
}
.bottom {
display: flex;
align-items: center;
justify-content: space-between;
span {
color: #999999;
font-size: 24px;
}
div {
color: #687DA6;
font-size: 24px;
}
}
}
&:last-child {
padding-bottom: 0;
.right {
border-bottom: none;
}
}
}
}
& > h2 {
margin-bottom: 32px;
color: #3d3d3d;
font-size: 38px;
font-weight: 600;
}
}
.top {
padding: 24px 24px 0;
background: #ffffff;
.item-top {
display: flex;
align-items: center;
image {
width: 96px;
height: 96px;
margin-right: 16px;
border-radius: 50%;
}
h3 {
margin-bottom: 12px;
color: #333333;
text-align: left;
font-size: 34px;
font-weight: 500;
}
span {
color: #999999;
font-size: 28px;
}
}
.item-imgs {
display: flex;
align-items: center;
image {
flex: 1;
height: 202px;
margin-right: 12px;
&:nth-of-type(3n) {
margin-right: 0;
}
}
}
& > p {
margin: 24px 0;
font-size: 28px;
color: #333333;
}
.item-bottom {
display: flex;
align-items: center;
height: 88px;
border-top: 1px solid #eeeeee;
div {
display: flex;
align-items: center;
justify-content: center;
flex: 1;
image {
width: 40px;
height: 40px;
margin: 16px;
}
i {
color: #687DA6;
font-size: 28px;
}
}
}
.item-content {
margin: 16px;
line-height: 1.3;
// text-align: justify;
span {
font-size: 28px;
color: #4181FF;
}
text {
font-size: 28px;
color: #333333;
}
}
}
}
</style>