ct
This commit is contained in:
@@ -68,7 +68,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pad-b112"></div>
|
||||
<div class="btn" @click="submit">保存</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -161,7 +160,7 @@ export default {
|
||||
|
||||
for (let i = 0; i < list.length; i ++) {
|
||||
if (!list[i].content) {
|
||||
return this.$u.toast(`请输入弟${i + 1}个选项的内容`)
|
||||
return this.$u.toast(`请输入第${i + 1}个选项的内容`)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -243,7 +242,8 @@ export default {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.add {
|
||||
// height: 100%;
|
||||
padding-bottom: 200px;
|
||||
background: #f5f5f5;
|
||||
|
||||
.header-description {
|
||||
::v-deep .u-form {
|
||||
|
||||
@@ -237,7 +237,7 @@ export default {
|
||||
width: 100%;
|
||||
|
||||
.addresss {
|
||||
.u-form-item__body {
|
||||
::v-deep .u-form-item__body {
|
||||
.u-form-item--right {
|
||||
.u-form-item--right__content {
|
||||
.u-form-item--right__content__slot {
|
||||
@@ -252,6 +252,11 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.u-form-item--right__content__icon {
|
||||
.u-icon {
|
||||
margin-bottom: 8px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,78 +1,81 @@
|
||||
<template>
|
||||
<div class="Detail" v-if="pageShow" :class="[isAnnouncer && data.status === '0' && data.type === '0' ? 'detail-active' : '']">
|
||||
<div class="detail-top">
|
||||
<div flex class="w-100">
|
||||
<div class="avatar" v-text="data.avatar" />
|
||||
<div flex class="column start fill">
|
||||
<b class="color-333" v-text="data.createUserName" />
|
||||
<span class="color-999" v-text="data.createTime" />
|
||||
</div>
|
||||
<div class="statusTag" :class="{ over: data.status > 0 }" v-text="data.status == 0 ? (data.type == 0 ? '征集中' : '投票中') : $dict.getLabel('discussStatus', data.status)" />
|
||||
</div>
|
||||
|
||||
<div class="header-middle">
|
||||
<div class="contsnts">
|
||||
<u-parse :html="data.content"></u-parse>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="img-list" v-if="data.images && data.images.length">
|
||||
<img :src="item.url" alt="" v-for="(item, index) in data.images" :key="index" @click="previewImage(data.images, item.url)" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="data.type == 0" class="comments">
|
||||
<span class="totalCount">
|
||||
<span class="total" v-text="`全部评论(${commentCount})`" />
|
||||
<span class="rightCount">
|
||||
<u-icon name="clock" v-if="data.status === '0'"></u-icon>
|
||||
<u-count-down v-if="data.status === '0'" :timestamp="timestamp" separator="zh" show-days show-hours show-minutes show-seconds></u-count-down>
|
||||
<span style="color: #999" v-else>已截止</span>
|
||||
</span>
|
||||
</span>
|
||||
<div v-for="op in data.messages" :key="op.id">
|
||||
<div flex class="header">
|
||||
<u-avatar :src="op.avatar" size="48" />
|
||||
<div flex class="fill">
|
||||
<b v-text="op.createUserName" />
|
||||
<span class="tags">{{ data.createUserId === op.createUserId ? '话事人' : '居民' }}</span>
|
||||
<div class="details">
|
||||
<div class="detail-top">
|
||||
<div flex class="w-100">
|
||||
<div class="avatar" v-text="data.avatar" />
|
||||
<div flex class="column start fill">
|
||||
<b class="color-333" v-text="data.createUserName" />
|
||||
<span class="color-999" v-text="data.createTime" />
|
||||
</div>
|
||||
<u-icon name="thumb-up" :label="op.suport" :color="op.isSuport ? 'red' : '#ccc'" @click="like(op.id)" />
|
||||
<div class="statusTag" :class="{ over: data.status > 0 }" v-text="data.status == 0 ? (data.type == 0 ? '征集中' : '投票中') : $dict.getLabel('discussStatus', data.status)" />
|
||||
</div>
|
||||
|
||||
<div class="content" v-text="op.content" @click="adddeleShow(op.id)" />
|
||||
|
||||
<div class="content color-999" v-text="op.createTime" />
|
||||
</div>
|
||||
<AiEmpty v-if="!data.messages.length"></AiEmpty>
|
||||
</div>
|
||||
|
||||
<div v-else-if="data.type == 1" class="comments">
|
||||
<span class="totalCount">
|
||||
<span class="total">{{ data.voteType === '1' ? '投票清单(可多选)' : '投票清单' }}</span>
|
||||
<span class="rightCount">
|
||||
<u-icon name="clock" v-if="data.status === '0'"></u-icon>
|
||||
<u-count-down v-if="data.status === '0'" :timestamp="timestamp" separator="zh" show-days show-hours show-minutes show-seconds></u-count-down>
|
||||
<span style="color: #999" v-else>已截止</span>
|
||||
</span>
|
||||
</span>
|
||||
<div class="comments-vote">
|
||||
<div class="vote-item" v-for="(item, index) in data.voteList" :key="index">
|
||||
<div class="left">
|
||||
<span>{{ item.item }}:</span>
|
||||
<span>{{ item.content }}</span>
|
||||
<div class="header-middle">
|
||||
<div class="contsnts">
|
||||
<u-parse :html="data.content"></u-parse>
|
||||
</div>
|
||||
<i>{{ item.count }}</i>
|
||||
<em :style="{ width: item.percentage }"></em>
|
||||
</div>
|
||||
|
||||
<div class="img-list" v-if="data.images && data.images.length">
|
||||
<img :src="item.url" alt="" v-for="(item, index) in data.images" :key="index" @click="previewImage(data.images, item.url)" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="votePeople" v-if="data.type === '1'">
|
||||
<div class="leftPeople">共{{ data.voteCount }}人参与投票</div>
|
||||
<div v-if="data.type == 0" class="comments">
|
||||
<span class="totalCount">
|
||||
<span class="total" v-text="`全部评论(${commentCount})`" />
|
||||
<span class="rightCount">
|
||||
<u-icon name="clock" v-if="data.status === '0'"></u-icon>
|
||||
<u-count-down v-if="data.status === '0'" :timestamp="timestamp" separator="zh" show-days show-hours show-minutes show-seconds></u-count-down>
|
||||
<span style="color: #999" v-else>已截止</span>
|
||||
</span>
|
||||
</span>
|
||||
<div v-for="op in data.messages" :key="op.id">
|
||||
<div flex class="header">
|
||||
<u-avatar :src="op.avatar" size="48" />
|
||||
<div flex class="fill">
|
||||
<b v-text="op.createUserName" />
|
||||
<span class="tags">{{ data.createUserId === op.createUserId ? '话事人' : '居民' }}</span>
|
||||
</div>
|
||||
<u-icon name="thumb-up" :label="op.suport" :color="op.isSuport ? 'red' : '#ccc'" @click="like(op.id)" />
|
||||
</div>
|
||||
|
||||
<div class="right">
|
||||
<span @click="toUserList">查看详情</span>
|
||||
<u-icon name="arrow-right" color="#999"></u-icon>
|
||||
<div class="content" v-text="op.content" @click="adddeleShow(op.id)" />
|
||||
|
||||
<div class="content color-999" v-text="op.createTime" />
|
||||
</div>
|
||||
<AiEmpty v-if="!data.messages.length"></AiEmpty>
|
||||
</div>
|
||||
|
||||
<div v-else-if="data.type == 1" class="comments">
|
||||
<span class="totalCount">
|
||||
<span class="total">{{ data.voteType === '1' ? '投票清单(可多选)' : '投票清单' }}</span>
|
||||
<span class="rightCount">
|
||||
<u-icon name="clock" v-if="data.status === '0'"></u-icon>
|
||||
<u-count-down v-if="data.status === '0'" :timestamp="timestamp" separator="zh" show-days show-hours show-minutes show-seconds></u-count-down>
|
||||
<span style="color: #999" v-else>已截止</span>
|
||||
</span>
|
||||
</span>
|
||||
<div class="comments-vote">
|
||||
<div class="vote-item" v-for="(item, index) in data.voteList" :key="index">
|
||||
<div class="left">
|
||||
<span>{{ item.item }}:</span>
|
||||
<span>{{ item.content }}</span>
|
||||
</div>
|
||||
<i>{{ item.count }}</i>
|
||||
<em :style="{ width: item.percentage }"></em>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="votePeople" v-if="data.type === '1'">
|
||||
<div class="leftPeople">共{{ data.voteCount }}人参与投票</div>
|
||||
|
||||
<div class="right">
|
||||
<span @click="toUserList">查看详情</span>
|
||||
<u-icon name="arrow-right" color="#999"></u-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -94,8 +97,10 @@
|
||||
</u-popup>
|
||||
|
||||
<u-popup v-model="deleShow" mode="bottom" class="popupdele">
|
||||
<div class="hint">删除我的评论</div>
|
||||
<div class="dele" @click="modalShow = true">删除</div>
|
||||
<div @click="deleShow = false">取消</div>
|
||||
<div class="liness"></div>
|
||||
<div class="cancel" @click="deleShow = false">取消</div>
|
||||
</u-popup>
|
||||
|
||||
<u-modal v-model="modalShow" content="确定删除该留言" :mask-close-able="true" @confirm="confirmDelete"></u-modal>
|
||||
@@ -328,6 +333,7 @@ export default {
|
||||
.Detail {
|
||||
padding-bottom: 40px;
|
||||
background: #f6f7f9;
|
||||
height: 100%;
|
||||
|
||||
.end-btn {
|
||||
position: fixed;
|
||||
@@ -347,214 +353,217 @@ export default {
|
||||
padding-bottom: 132px;
|
||||
}
|
||||
|
||||
.detail-top {
|
||||
padding: 30px;
|
||||
background: #fff;
|
||||
border-bottom: 16px solid #f6f7f9;
|
||||
.details {
|
||||
// padding-bottom: 112px;
|
||||
.detail-top {
|
||||
padding: 30px;
|
||||
background: #fff;
|
||||
border-bottom: 16px solid #f6f7f9;
|
||||
|
||||
.avatar {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
color: #fff;
|
||||
background: $uni-color-primary;
|
||||
border-radius: 50%;
|
||||
font-size: 24px;
|
||||
.avatar {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
color: #fff;
|
||||
background: $uni-color-primary;
|
||||
border-radius: 50%;
|
||||
font-size: 24px;
|
||||
text-align: center;
|
||||
line-height: 64px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
.color-999 {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.color-333 {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.w-100 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.statusTag {
|
||||
padding: 0 12px;
|
||||
line-height: 30px;
|
||||
border: 1px solid #2573ff;
|
||||
color: #2573ff;
|
||||
font-size: 22px;
|
||||
|
||||
&.over {
|
||||
border-color: #666;
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
|
||||
.header-middle {
|
||||
padding: 32px 0 48px 0;
|
||||
|
||||
.contsnts {
|
||||
font-size: 26px;
|
||||
line-height: 1.5;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
img {
|
||||
margin-top: 30px;
|
||||
width: 686px;
|
||||
height: 486px;
|
||||
}
|
||||
}
|
||||
|
||||
.img-list {
|
||||
img {
|
||||
width: calc(33vw - 6px - 24px);
|
||||
height: calc(33vw - 6px - 24px);
|
||||
margin: 0 12px 12px 0;
|
||||
|
||||
&:nth-of-type(3n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 100%;
|
||||
line-height: 112px;
|
||||
background: #fff;
|
||||
font-size: 32px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tags {
|
||||
width: 80px;
|
||||
height: 34px;
|
||||
line-height: 34px;
|
||||
margin-left: 16px;
|
||||
text-align: center;
|
||||
line-height: 64px;
|
||||
margin-right: 16px;
|
||||
color: #fff;
|
||||
font-size: 24px;
|
||||
background: #1aaaff;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.color-999 {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.color-333 {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.w-100 {
|
||||
::v-deep uni-video {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.statusTag {
|
||||
padding: 0 12px;
|
||||
line-height: 30px;
|
||||
border: 1px solid #2573ff;
|
||||
color: #2573ff;
|
||||
font-size: 22px;
|
||||
.comments {
|
||||
padding: 0 32px 20px;
|
||||
font-size: 28px;
|
||||
background: #fff;
|
||||
|
||||
&.over {
|
||||
border-color: #666;
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
|
||||
.header-middle {
|
||||
padding: 32px 0 48px 0;
|
||||
|
||||
.contsnts {
|
||||
font-size: 26px;
|
||||
line-height: 1.5;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
img {
|
||||
margin-top: 30px;
|
||||
width: 686px;
|
||||
height: 486px;
|
||||
}
|
||||
}
|
||||
|
||||
.img-list {
|
||||
img {
|
||||
width: calc(33vw - 6px - 24px);
|
||||
height: calc(33vw - 6px - 24px);
|
||||
margin: 0 12px 12px 0;
|
||||
|
||||
&:nth-of-type(3n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 100%;
|
||||
line-height: 112px;
|
||||
background: #fff;
|
||||
font-size: 32px;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tags {
|
||||
width: 80px;
|
||||
height: 34px;
|
||||
line-height: 34px;
|
||||
margin-left: 16px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-size: 24px;
|
||||
background: #1aaaff;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
::v-deep uni-video {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.comments {
|
||||
padding: 0 32px 20px;
|
||||
font-size: 28px;
|
||||
background: #fff;
|
||||
|
||||
.vote-item {
|
||||
display: flex;
|
||||
position: relative;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 24px 32px;
|
||||
margin-bottom: 16px;
|
||||
background: #ffffff;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
border: 1px solid #95cbff;
|
||||
|
||||
.left {
|
||||
.vote-item {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
line-height: 1.2;
|
||||
margin-right: 20px;
|
||||
position: relative;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 24px 32px;
|
||||
margin-bottom: 16px;
|
||||
background: #ffffff;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
border: 1px solid #95cbff;
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
line-height: 1.2;
|
||||
margin-right: 20px;
|
||||
|
||||
span {
|
||||
word-break: break-word;
|
||||
|
||||
&:first-child {
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
em {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 0;
|
||||
height: 100%;
|
||||
background: #dce8f4;
|
||||
}
|
||||
|
||||
span {
|
||||
word-break: break-word;
|
||||
flex-shrink: 1;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
color: #5b84b3;
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
flex: 1;
|
||||
}
|
||||
i {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
font-style: normal;
|
||||
color: #5b84b3;
|
||||
font-size: 28px;
|
||||
}
|
||||
}
|
||||
|
||||
em {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 0;
|
||||
height: 100%;
|
||||
background: #dce8f4;
|
||||
.totalCount {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.total {
|
||||
display: block;
|
||||
font-size: 30px;
|
||||
height: 120px;
|
||||
box-sizing: border-box;
|
||||
padding-top: 44px;
|
||||
}
|
||||
.rightCount {
|
||||
padding-top: 44px;
|
||||
}
|
||||
}
|
||||
|
||||
span {
|
||||
flex-shrink: 1;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
color: #5b84b3;
|
||||
font-size: 28px;
|
||||
.u-avatar {
|
||||
margin-right: 24px;
|
||||
}
|
||||
|
||||
i {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
font-style: normal;
|
||||
color: #5b84b3;
|
||||
font-size: 28px;
|
||||
.content {
|
||||
color: #333;
|
||||
margin-left: 72px;
|
||||
margin-top: 10px;
|
||||
|
||||
&.color-999 {
|
||||
color: #999999;
|
||||
font-size: 24px;
|
||||
margin-bottom: 48px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.totalCount {
|
||||
.votePeople {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.total {
|
||||
display: block;
|
||||
font-size: 30px;
|
||||
height: 120px;
|
||||
box-sizing: border-box;
|
||||
padding-top: 44px;
|
||||
}
|
||||
.rightCount {
|
||||
padding-top: 44px;
|
||||
}
|
||||
}
|
||||
|
||||
.u-avatar {
|
||||
margin-right: 24px;
|
||||
}
|
||||
|
||||
.content {
|
||||
color: #333;
|
||||
margin-left: 72px;
|
||||
margin-top: 10px;
|
||||
|
||||
&.color-999 {
|
||||
color: #999999;
|
||||
font-size: 24px;
|
||||
margin-bottom: 48px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.votePeople {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 16px;
|
||||
height: 112px;
|
||||
padding: 0 32px 0 52px;
|
||||
background: #fff;
|
||||
.leftPeople {
|
||||
font-size: 28px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.right {
|
||||
span {
|
||||
color: #2573ff;
|
||||
margin-top: 16px;
|
||||
height: 112px;
|
||||
padding: 0 32px 0 52px;
|
||||
background: #fff;
|
||||
.leftPeople {
|
||||
font-size: 28px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.right {
|
||||
span {
|
||||
color: #2573ff;
|
||||
font-size: 28px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -633,23 +642,31 @@ export default {
|
||||
|
||||
.popupdele {
|
||||
::v-deep .u-drawer-content {
|
||||
border-radius: 24px 24px 0px 0px;
|
||||
text-align: center;
|
||||
div {
|
||||
padding: 5px 0;
|
||||
color: #666;
|
||||
.hint {
|
||||
padding: 40px 0 44px 0;
|
||||
border-bottom: 1px solid #e7e8e9;
|
||||
font-size: 24px;
|
||||
color: #666666;
|
||||
font-size: 24px;
|
||||
color: #666666;
|
||||
}
|
||||
.dele {
|
||||
padding: 24px 0 28px 0;
|
||||
font-size: 32px;
|
||||
color: #c25450;
|
||||
}
|
||||
.liness {
|
||||
height: 12px;
|
||||
background: #f6f7f8;
|
||||
}
|
||||
.cancel {
|
||||
padding: 24px 0 62px 0;
|
||||
font-size: 32px;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ::v-deep .u-drawer {
|
||||
// .u-drawer-content {
|
||||
// .u-drawer__scroll-view {
|
||||
// .uni-scroll-view {
|
||||
// // overflow: hidden;
|
||||
// overflow: inherit !important;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
</style>
|
||||
|
||||
BIN
src/apps/AppVillageDiscuss/img/user-img.png
Normal file
BIN
src/apps/AppVillageDiscuss/img/user-img.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
@@ -1,12 +1,14 @@
|
||||
<template>
|
||||
<div class="userList">
|
||||
<div v-if="data.votes && data.votes.length > 0">
|
||||
<div v-if="data.votes && data.votes.length">
|
||||
<div class="datas" v-for="(item, index) in data.votes" :key="index">
|
||||
<div class="avatLeft">{{ item.userName.substring(item.userName.length, item.userName.length - 2) }}</div>
|
||||
<div class="avatLeft" v-if="anonymous == 0">{{ item.userName.substring(item.userName.length, item.userName.length - 2) }}</div>
|
||||
|
||||
<img class="avatLeft" src="./img/user-img.png" alt="" v-else />
|
||||
|
||||
<div class="right">
|
||||
<div class="top">
|
||||
<span class="names" v-if="anonymous && anonymous == 1">{{ item.userName }}</span>
|
||||
<span class="names" v-if="anonymous && anonymous == 0">{{ item.userName }}</span>
|
||||
<span v-else>匿名用户</span>
|
||||
|
||||
<span class="times">{{ item.createTime }}</span>
|
||||
@@ -75,7 +77,6 @@ uni-page-body {
|
||||
|
||||
.datas {
|
||||
display: flex;
|
||||
|
||||
padding: 20px 32px 0 32px;
|
||||
|
||||
.avatLeft {
|
||||
@@ -92,7 +93,7 @@ uni-page-body {
|
||||
}
|
||||
.right {
|
||||
border-bottom: 1px solid #ddd;
|
||||
width: 100%;
|
||||
width: calc(100% - 90px);
|
||||
margin: 10px 0 0 16px;
|
||||
padding-bottom: 32px;
|
||||
.top {
|
||||
|
||||
Reference in New Issue
Block a user