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
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> |