货无忧
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.
 
 
 
 
 

227 lines
4.0 KiB

<template>
<u-navbar title="消息" placeholder border=true leftIcon=''></u-navbar>
<view class="basic_container pt20">
<!-- <BasicContainer :option="option">
<template #body> -->
<view class="tabbar mb20 ">
<block v-for="(item, index) in details.tabbarOption">
<view :class="{'tabbar_item': true, active: index === details.tabbarStatus, 'flex-c-c': true}"
@click="()=> handleTabbar(index)">
<text>
{{item.label}}
</text>
</view>
</block>
<view class="activeItem" :style="`transform: translateX(${100 * details.tabbarStatus}%);`">
</view>
</view>
<!-- 列表 -->
<view class="list">
<block v-for="item in details.data">
<view class="list_item">
<!-- 标题 -->
<view class="title_container border-bottom flex-c-sb">
<view class="align-center">
<!-- <image class="tip" src="@/static/weixin.png" mode=""></image> -->
<text class="title1 ml10">{{item.type}}</text>
</view>
<view class="info">
{{item.time}}
</view>
</view>
<!-- 内容 -->
<view class="content_container border-bottom">
<view class="content_title title2">
<!-- 关于系统升级的通知 -->
{{item.title}}
</view>
<view class="text" v-html="item.content">
<!-- 为了让您更好的使用资源平台,我们正在对平台进行升级。升级期间暂时无法访问。给您带来的不便,敬请谅解 -->
</view>
</view>
<!-- 查看详情 -->
<view class="title_container flex-c-sb" @click="handleDetil">
<view class="title1">
查看详情
</view>
<view class="info">
<u-icon name="arrow-right" color="#999 " size="20"></u-icon>
</view>
</view>
</view>
</block>
</view>
<!-- </template>
</BasicContainer> -->
</view>
</template>
<script setup>
import {
reactive
} from 'vue';
import {
getBasicNoticeList
} from '@/api/user.js';
let details = reactive({
tabbarStatus: 0,
activeIndex: 0,
tabbarOption: [{
label: '系统公告'
},
{
label: '消息通知'
},
],
data: []
})
const handleTabbar = (status) => {
details.tabbarStatus = status
details.activeIndex = 0
}
const handleDetil = () => {
console.log('111 :>> ', 111);
uni.navigateTo({
url: '/pagesMsg/pages/MsgDetail/MsgDetail'
})
}
const initPage = async () => {
const res = await getBasicNoticeList({})
}
initPage()
</script>
<style lang="scss" scoped>
.infoStart {
&::before {
content: '';
display: block;
width: 6px;
height: 6px;
background-color: #fc4956;
border-radius: 50%;
}
}
// tabbar
.tabbar {
position: relative;
z-index: 9;
background-color: #fff;
display: flex;
height: 90upx;
position: relative;
border-radius: 10upx;
margin: 0 20upx;
overflow: hidden;
.tabbar_item {
flex: 1;
transition: all 0.3s;
text {
position: relative;
z-index: 10;
}
&.active {
color: #fff;
}
}
// 选中背景
.activeItem {
width: 50%;
height: 100%;
position: absolute;
bottom: 0;
left: 0;
background-color: var(--subjectColor);
transition: all 0.3s;
}
}
// 列表
.list {
padding: 12px;
.list_item {
background-color: #fff;
border-radius: 8px;
// 标题
.title_container {
padding: 10px;
}
// 内容
.content_container {
padding: 16px 10px;
.content_title {
margin-bottom: 7px;
}
.text {
font-size: 13px;
color: #999999;
line-height: 19px;
}
}
.title1 {
font-size: 15px;
color: #151515;
line-height: 22px;
}
.title2 {
@extend .infoStart;
display: flex;
align-items: center;
font-size: 16px;
color: #151515;
line-height: 23px;
&::before {
margin-right: 10px;
}
}
.info {
color: #999;
font-size: 12px;
line-height: 17px;
}
.tip {
width: 24px;
height: 24px;
}
.border-bottom {
border-bottom: 1px solid #eee;
}
}
}
</style>