大德通墓地App
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.
 
 
 

204 lines
4.1 KiB

<template>
<view>
<u-navbar title="消息" :is-back="false" :title-bold="true">
<view slot='right'>
<view class="rigBtn" @click="clearMsg">
清除未读
<u-image width="32rpx" height="32rpx" src="../../static/clear.png"
style="margin-left: 12rpx;transform: translateY(5rpx);"></u-image>
</view>
</view>
</u-navbar>
<!-- <view class="navBar">
<view class="content">
消息
</view>
<view class="rigBtn" @click="clearMsg">
清除未读
<u-image width="32rpx" height="32rpx" src="../../static/clear.png"
style="margin-left: 12rpx;transform: translateY(5rpx);"></u-image>
</view>
</view> -->
<!-- 列表 -->
<view class="list">
<view class="item" v-for="(item, index) in mesList" :key="index" @click="toMesgInfo(item)">
<view class="left">
<u-image width="88rpx" height="88rpx" border-radius="50%" :src="item.photo" class="img">
</u-image>
</view>
<view class="right">
<view class="title u-relative" >
{{item.name}}
<view class="dian" v-if="!item.isRed">
</view>
</view>
<view class="info">
{{item.content}}
</view>
</view>
<view class="time">
{{item.time}}
</view>
</view>
</view>
<u-modal v-model="show" confirm-color="#F44D4D" @cancel="show =false" @confirm="confirm"
:show-cancel-button="true" :show-title="false">
<view class="text">
确定清除未读消息?
</view>
</u-modal>
<u-tabbar v-model="vuex_current" :inactive-color="vuex_inactiveColor" :activeColor="vuex_activeColor"
:list="vuex_tabBar"></u-tabbar>
</view>
</template>
<script>
export default {
data() {
return {
mesList: [
// {
// photo: '../../static/mes1.png',
// name: '会员中心',
// content: '恭喜您,您获得了一次免费体验高级会员的机会…',
// time: '12:34',
// isRed: false,
// },
// {
// photo: '../../static/mes2.png',
// name: '上链成功',
// content: '你的订单P06023400已成功上链!',
// time: '12:34',
// isRed: false,
// },
// {
// photo: '../../static/mes3.png',
// name: '签约成功',
// content: '你的订单P06023400已成功签约!',
// time: '12:34',
// isRed: false,
// },
],
show: false
}
},
methods: {
submit() {
},
toMesgInfo(item) {
item.isRed = true
this.mesgLength()
uni.navigateTo({
url: './mesgInfo/mesgInfo'
})
},
clearMsg() {
this.show = true
},
confirm() {
this.mesList.forEach(item => {
item.isRed = true
})
this.mesgLength()
},
mesgLength(){
let arr = this.mesList.filter(item => {
return item.isRed === false
})
this.$u.vuex('vuex_tabBar[1].count', arr.length)
}
},
onLoad(){
this.mesgLength()
}
}
</script>
<style lang="scss" scoped>
.rigBtn {
display: flex;
color: #606060;
padding-right: 20rpx;
}
.navBar {
display: flex;
height: 100rpx;
line-height: 100rpx;
box-shadow: 0px 0px 22rpx 0px #ebebeb;
.content {
margin-left: 340rpx;
font-size: 36rpx;
font-weight: 600;
margin-right: 146rpx;
}
}
.list {
.item {
position: relative;
display: flex;
height: 148rpx;
padding-top: 30rpx;
// padding: 0 36rpx;
padding-left: 36rpx;
.left {
margin-right: 24rpx;
}
.right {
flex: 1;
border-bottom: 2rpx solid #f1f1f1;
.title {
font-size: 32rpx;
font-weight: 600;
margin-bottom: 10rpx;
}
.dian {
position: absolute;
top: 0;
left: 135rpx;
width: 10rpx;
height: 10rpx;
background-color: red;
border-radius: 50%;
}
.info {
color: #909399;
font-size: 24rpx;
width: 566rpx;
overflow: hidden;
/*超出部分隐藏*/
white-space: nowrap;
/*禁止换行*/
text-overflow: ellipsis;
/*省略号*/
height: 64rpx;
}
}
.time {
position: absolute;
top: 35rpx;
right: 36rpx;
color: #BFC2CC;
}
}
}
.text {
height: 188rpx;
line-height: 188rpx;
border-radius: 24rpx;
text-align: center;
}
</style>