@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
{ |
||||
"emmet_language_server": { |
||||
"init_options": { |
||||
"preferences": { |
||||
"css.intUnit": "rpx", |
||||
"css.floatUnitr": "rpx" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
{ |
||||
"component": true, |
||||
"usingComponents": { |
||||
"van-tabbar": "@vant/weapp/tabbar/index", |
||||
"van-tabbar-item": "@vant/weapp/tabbar-item/index" |
||||
} |
||||
} |
||||
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
.tab-item { |
||||
.icon { |
||||
width: 44rpx; |
||||
height: 44rpx; |
||||
} |
||||
.name { |
||||
font-size: 24rpx; |
||||
color: rgba(148, 163, 184, 1); |
||||
&.active { |
||||
color: rgba(74, 184, 253, 1); |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,67 @@
@@ -0,0 +1,67 @@
|
||||
import { getCurrentPageUrl } from '@/utils/util' |
||||
const app = getApp() |
||||
|
||||
Component({ |
||||
properties: {}, |
||||
data: { |
||||
imageUrl: app.globalData.imageUrl, |
||||
Timestamp: app.globalData.Timestamp, |
||||
|
||||
isChild: 0, |
||||
active: 0, |
||||
list: [ |
||||
{ |
||||
pagePath: '/pages/index/index', |
||||
text: '首页', |
||||
icon: 'tabbar1', |
||||
iconActive: 'tabbar11', |
||||
}, |
||||
{ |
||||
pagePath: '/pages/act/index', |
||||
text: '活动', |
||||
icon: 'tabbar2', |
||||
iconActive: 'tabbar12', |
||||
}, |
||||
{ |
||||
pagePath: '/pages/notice/index', |
||||
text: '通知', |
||||
icon: 'tabbar3', |
||||
iconActive: 'tabbar13', |
||||
}, |
||||
{ |
||||
pagePath: '/pages/knowledge/index', |
||||
text: '智能体', |
||||
icon: 'tabbar4', |
||||
iconActive: 'tabbar14', |
||||
}, |
||||
{ |
||||
pagePath: '/pages/my/index', |
||||
text: '我的', |
||||
icon: 'tabbar5', |
||||
iconActive: 'tabbar15', |
||||
}, |
||||
], |
||||
}, |
||||
observers: {}, |
||||
lifetimes: { |
||||
ready() { |
||||
const pagePath = getCurrentPageUrl() |
||||
const active = this.data.list.findIndex((item) => item.pagePath === pagePath) |
||||
this.setData({ |
||||
active, |
||||
anyWhere: app.globalData.anyWhere, |
||||
}) |
||||
}, |
||||
}, |
||||
methods: { |
||||
onChange() {}, |
||||
handleNav(e) { |
||||
const { index } = e.currentTarget.dataset |
||||
const { list } = this.data |
||||
const pagePath = list[index].pagePath |
||||
wx.switchTab({ |
||||
url: pagePath, |
||||
}) |
||||
}, |
||||
}, |
||||
}) |
||||
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
<van-tabbar active="{{ active }}" active-color="rgba(74, 184, 253, 1)" bind:change="onChange" inactive-color="#010105"> |
||||
<block wx:for="{{list}}" wx:key="*this"> |
||||
<van-tabbar-item |
||||
class="tab-item" |
||||
wx:if="{{ index != 3 || !anyWhere}}" |
||||
bind:tap="handleNav" |
||||
data-index="{{index}}" |
||||
icon="/images/{{active==index ? item.iconActive : item.icon}}.png" |
||||
> |
||||
<view class="name {{index==active && 'active'}}">{{item.text}}</view> |
||||
<view class="hot"></view> |
||||
</van-tabbar-item> |
||||
</block> |
||||
</van-tabbar> |
||||
|
After Width: | Height: | Size: 2.3 MiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 877 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 632 B |
|
After Width: | Height: | Size: 571 B |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 8.0 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
{ |
||||
"navigationStyle": "default", |
||||
"navigationBarTitleText": "活动", |
||||
"usingComponents": { |
||||
"van-popup": "@vant/weapp/popup/index" |
||||
} |
||||
} |
||||
@ -0,0 +1,327 @@
@@ -0,0 +1,327 @@
|
||||
page { |
||||
background-color: rgba(247, 248, 250, 1); |
||||
} |
||||
.page { |
||||
padding-bottom: calc(60px + env(safe-area-inset-bottom)); |
||||
.page-header { |
||||
padding: 30rpx 30rpx 0; |
||||
background-color: #fff; |
||||
.search { |
||||
margin: 30rpx; |
||||
padding: 12rpx 24rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 16rpx; |
||||
background-color: rgba(247, 248, 250, 1); |
||||
border-radius: 40rpx; |
||||
.icon { |
||||
width: 38rpx; |
||||
height: 38rpx; |
||||
} |
||||
.content { |
||||
font-size: 28rpx; |
||||
color: rgba(148, 163, 184, 0.7); |
||||
line-height: 44rpx; |
||||
} |
||||
} |
||||
.options { |
||||
display: flex; |
||||
.tabs { |
||||
flex: 1; |
||||
overflow-x: auto; |
||||
display: flex; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
overflow-x: auto; |
||||
&::-webkit-scrollbar { |
||||
display: none; |
||||
} |
||||
.tab { |
||||
flex-shrink: 0; |
||||
padding: 10rpx 18rpx 16rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(71, 85, 105, 1); |
||||
&.active { |
||||
position: relative; |
||||
font-size: 36rpx; |
||||
color: rgba(74, 184, 253, 1); |
||||
&::after { |
||||
position: absolute; |
||||
bottom: 0; |
||||
left: 50%; |
||||
transform: translateX(-50%); |
||||
content: ''; |
||||
display: block; |
||||
width: 32rpx; |
||||
height: 6rpx; |
||||
background: #4ab8fd; |
||||
border-radius: 19228rpx 19228rpx 19228rpx 19228rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
.filter-btn { |
||||
margin-top: 2rpx; |
||||
align-self: start; |
||||
padding: 8rpx 24rpx; |
||||
flex-shrink: 0; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 6rpx; |
||||
background-color: rgba(247, 248, 250, 1); |
||||
border-radius: 40rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(74, 184, 253, 1); |
||||
.icon { |
||||
width: 32rpx; |
||||
height: 32rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
.type-list { |
||||
padding: 32rpx 30rpx; |
||||
display: flex; |
||||
gap: 30rpx; |
||||
flex-wrap: nowrap; |
||||
overflow-x: auto; |
||||
&::-webkit-scrollbar { |
||||
display: none; |
||||
} |
||||
.type { |
||||
flex-shrink: 0; |
||||
.icon { |
||||
display: block; |
||||
margin: 0 auto; |
||||
width: 32rpx; |
||||
height: 32rpx; |
||||
padding: 30rpx; |
||||
background-color: rgba(255, 255, 255, 1); |
||||
border-radius: 16rpx; |
||||
} |
||||
.icon-active { |
||||
display: none; |
||||
margin: 0 auto; |
||||
width: 32rpx; |
||||
height: 32rpx; |
||||
padding: 30rpx; |
||||
background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); |
||||
border-radius: 16rpx; |
||||
} |
||||
.name { |
||||
margin-top: 15rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(71, 85, 105, 1); |
||||
text-align: center; |
||||
} |
||||
&.active { |
||||
.icon { |
||||
display: none; |
||||
} |
||||
.icon-active { |
||||
display: block; |
||||
} |
||||
.name { |
||||
color: rgba(74, 184, 253, 1); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
.banner { |
||||
margin: 30rpx 30rpx 0; |
||||
height: 230rpx; |
||||
.b-img { |
||||
display: block; |
||||
width: 100%; |
||||
height: 100%; |
||||
} |
||||
} |
||||
.list { |
||||
margin: 30rpx; |
||||
.card { |
||||
margin-bottom: 24rpx; |
||||
padding: 24rpx; |
||||
display: flex; |
||||
gap: 24rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
&:last-of-type { |
||||
border: none; |
||||
} |
||||
.photo { |
||||
flex-shrink: 0; |
||||
position: relative; |
||||
width: 262rpx; |
||||
height: 196rpx; |
||||
border-radius: 16rpx; |
||||
overflow: hidden; |
||||
.status { |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
padding: 8rpx 16rpx; |
||||
font-size: 22rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
background: #feb54a; |
||||
border-radius: 16rpx 0rpx 16rpx 0rpx; |
||||
} |
||||
.p-img { |
||||
border-radius: 16rpx; |
||||
display: block; |
||||
width: 100%; |
||||
height: 100%; |
||||
} |
||||
.user { |
||||
position: absolute; |
||||
bottom: 0; |
||||
left: 0; |
||||
width: 100%; |
||||
box-sizing: border-box; |
||||
text-align: center; |
||||
line-height: 44rpx; |
||||
font-size: 24rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
background-color: rgba(0, 0, 0, 0.36); |
||||
backdrop-filter: blur(8rpx); |
||||
} |
||||
} |
||||
.wrap { |
||||
.title { |
||||
margin-bottom: 28rpx; |
||||
font-size: 32rpx; |
||||
color: rgba(17, 24, 39, 1); |
||||
line-height: 48rpx; |
||||
font-weight: bold; |
||||
height: 96rpx; |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
display: -webkit-box; |
||||
-webkit-box-orient: vertical; |
||||
-webkit-line-clamp: 2; |
||||
} |
||||
.date, |
||||
.site { |
||||
margin-top: 12rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(100, 116, 139, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 8rpx; |
||||
.icon { |
||||
width: 22rpx; |
||||
height: 22rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.aside-bar { |
||||
position: fixed; |
||||
right: 30rpx; |
||||
bottom: 290rpx; |
||||
width: 110rpx; |
||||
height: 110rpx; |
||||
background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); |
||||
box-shadow: |
||||
inset 0rpx 4rpx 24rpx 0rpx rgba(255, 255, 255, 0.25), |
||||
0rpx 15rpx 30rpx -6rpx rgba(74, 172, 219, 0.4); |
||||
border-radius: 55rpx 55rpx 55rpx 55rpx; |
||||
text-align: center; |
||||
padding-top: 14rpx; |
||||
box-sizing: border-box; |
||||
.icon { |
||||
width: 50rpx; |
||||
height: 50rpx; |
||||
} |
||||
.name { |
||||
font-size: 20rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
} |
||||
} |
||||
|
||||
.popup { |
||||
background: #fff; |
||||
padding: 32rpx 30rpx 120rpx; |
||||
.popup-line { |
||||
margin: 0 auto; |
||||
width: 77rpx; |
||||
height: 8rpx; |
||||
background: #c0c6d6; |
||||
border-radius: 20rpx; |
||||
} |
||||
.row { |
||||
.r-title { |
||||
margin-top: 42rpx; |
||||
font-size: 36rpx; |
||||
color: rgba(17, 24, 39, 1); |
||||
font-weight: bold; |
||||
} |
||||
.select { |
||||
margin-top: 24rpx; |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
gap: 23rpx 16rpx; |
||||
.s-item { |
||||
font-size: 32rpx; |
||||
color: rgba(71, 85, 105, 1); |
||||
padding: 15rpx 30rpx; |
||||
background: #f7f8fa; |
||||
border-radius: 15rpx 15rpx 15rpx 15rpx; |
||||
} |
||||
} |
||||
.date-raneg { |
||||
margin-top: 24rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 23rpx; |
||||
.line { |
||||
color: rgba(192, 198, 214, 1); |
||||
} |
||||
.date { |
||||
flex: 1; |
||||
.content { |
||||
padding: 23rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
gap: 8rpx; |
||||
background: #f8fafd; |
||||
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||
.icon { |
||||
width: 33rpx; |
||||
height: 33rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
.popup-footer { |
||||
margin-top: 56rpx; |
||||
display: flex; |
||||
gap: 30rpx; |
||||
.cancel, |
||||
.sure { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
} |
||||
.cancel { |
||||
flex: 1; |
||||
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||
border: 1px solid #4ab8fd; |
||||
font-size: 32rpx; |
||||
color: rgba(74, 184, 253, 1); |
||||
} |
||||
.sure { |
||||
flex: 1; |
||||
height: 96rpx; |
||||
background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); |
||||
box-shadow: 0rpx 15rpx 30rpx -6rpx rgba(74, 172, 219, 0.4); |
||||
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||
font-size: 32rpx; |
||||
color: #fff; |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,52 @@
@@ -0,0 +1,52 @@
|
||||
const _app = getApp<IAppOption>() |
||||
|
||||
Page({ |
||||
data: { |
||||
filterShow: true, |
||||
typeList: [ |
||||
{ |
||||
name: '全部分类', |
||||
icon: '5', |
||||
iconActive: '6', |
||||
}, |
||||
{ |
||||
name: '学术科技', |
||||
icon: '7', |
||||
iconActive: '8', |
||||
}, |
||||
{ |
||||
name: '文体艺术', |
||||
icon: '9', |
||||
iconActive: '10', |
||||
}, |
||||
{ |
||||
name: '志愿公益', |
||||
icon: '11', |
||||
iconActive: '12', |
||||
}, |
||||
{ |
||||
name: '创新创业', |
||||
icon: '13', |
||||
iconActive: '14', |
||||
}, |
||||
], |
||||
}, |
||||
onLoad() {}, |
||||
handlePopupClose() { |
||||
this.setData({ |
||||
filterShow: false, |
||||
}) |
||||
}, |
||||
handleApply() { |
||||
wx.navigateTo({ |
||||
url: '/pages/actAdd/index', |
||||
}) |
||||
}, |
||||
handleDetail() { |
||||
wx.navigateTo({ |
||||
url: '/pages/actDetail/index', |
||||
}) |
||||
}, |
||||
}) |
||||
|
||||
export {} |
||||
@ -0,0 +1,94 @@
@@ -0,0 +1,94 @@
|
||||
<view class="page"> |
||||
<view class="page-header"> |
||||
<view class="search"> |
||||
<image class="icon" src="/images/icon1.png"></image> |
||||
<view class="content">请搜索你想要的内容</view> |
||||
</view> |
||||
<view class="options"> |
||||
<view class="tabs"> |
||||
<view class="tab {{index==0 && 'active'}}" wx:for="{{10}}" wx:key="index">全部</view> |
||||
</view> |
||||
<view class="filter-btn"> |
||||
<image class="icon" src="/images/icon4.png"></image> |
||||
筛选 |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<view class="type-list"> |
||||
<view class="type {{index==0 && 'active'}}" wx:for="{{typeList}}" wx:key="index"> |
||||
<image class="icon" src="/images/icon5.png"></image> |
||||
<image class="icon-active" src="/images/icon6.png"></image> |
||||
<view class="name">全部分类</view> |
||||
</view> |
||||
</view> |
||||
<swiper class="banner"> |
||||
<swiper-item> |
||||
<image class="b-img" mode="aspectFill" src="/images/bg1.png"></image> |
||||
</swiper-item> |
||||
</swiper> |
||||
<view class="list"> |
||||
<view class="card" wx:for="{{2}}" wx:key="index" bind:tap="handleDetail"> |
||||
<view class="photo"> |
||||
<view class="status">进行中</view> |
||||
<image class="p-img" src="/images/bg1.png"></image> |
||||
<view class="user">128人已报名</view> |
||||
</view> |
||||
<view class="wrap"> |
||||
<view class="title"> |
||||
深职大第十五届校园歌手大赛深职大第十五届校园歌手大深职大第十五届校园歌手大深职大第十五届校园歌手大赛赛赛 |
||||
</view> |
||||
<view class="date"> |
||||
<image class="icon" src="/images/icon3.png"></image> |
||||
<view class="content">2026.04.01-2026.05.30</view> |
||||
</view> |
||||
<view class="site"> |
||||
<image class="icon" src="/images/icon15.png"></image> |
||||
<view class="content">留仙洞校区音乐厅</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="aside-bar" bind:tap="handleApply"> |
||||
<image class="icon" src="/images/icon16.png"></image> |
||||
<view class="name">活动申请</view> |
||||
</view> |
||||
|
||||
<van-popup show="{{ filterShow }}" position="bottom" round bind:close="handlePopupClose"> |
||||
<view class="popup"> |
||||
<view class="popup-line"></view> |
||||
<view class="row"> |
||||
<view class="r-title">时间筛选</view> |
||||
<view class="select"> |
||||
<view class="s-item">全部时间</view> |
||||
<view class="s-item">今天</view> |
||||
<view class="s-item">本周</view> |
||||
<view class="s-item">本月</view> |
||||
<view class="s-item">自定义时间</view> |
||||
</view> |
||||
</view> |
||||
<view class="row"> |
||||
<view class="r-title">时间范围</view> |
||||
<view class="date-raneg"> |
||||
<picker class="date" mode="date"> |
||||
<view class="content"> |
||||
2026-05-28 |
||||
<image class="icon" src="/images/icon17.png"></image> |
||||
</view> |
||||
</picker> |
||||
<view class="line">-</view> |
||||
<picker class="date" mode="date"> |
||||
<view class="content"> |
||||
2026-05-28 |
||||
<image class="icon" src="/images/icon17.png"></image> |
||||
</view> |
||||
</picker> |
||||
</view> |
||||
</view> |
||||
<view class="popup-footer"> |
||||
<view class="cancel">取消</view> |
||||
<view class="sure">确定</view> |
||||
</view> |
||||
</view> |
||||
</van-popup> |
||||
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
{ |
||||
"usingComponents": {} |
||||
} |
||||
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
const _app = getApp<IAppOption>(); |
||||
|
||||
Page({ |
||||
data: {}, |
||||
onLoad() {}, |
||||
}); |
||||
|
||||
export {} |
||||
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
{ |
||||
"usingComponents": { |
||||
"van-icon": "@vant/weapp/icon/index", |
||||
"van-count-down": "@vant/weapp/count-down/index", |
||||
"mp-html": "mp-html", |
||||
"van-rate": "@vant/weapp/rate/index" |
||||
} |
||||
} |
||||
@ -0,0 +1,278 @@
@@ -0,0 +1,278 @@
|
||||
page { |
||||
background-color: rgba(248, 250, 253, 1); |
||||
} |
||||
.page-title { |
||||
font-size: 32rpx; |
||||
color: #fff; |
||||
} |
||||
.page-back { |
||||
font-size: 32rpx; |
||||
color: #fff; |
||||
} |
||||
|
||||
.page { |
||||
min-height: 100vh; |
||||
box-sizing: border-box; |
||||
padding-bottom: 280rpx; |
||||
.info-card { |
||||
margin: 349rpx 30rpx 0; |
||||
padding: 48rpx 30rpx 40rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
.title { |
||||
font-size: 40rpx; |
||||
color: rgba(17, 24, 39, 1); |
||||
font-weight: bold; |
||||
line-height: 56rpx; |
||||
} |
||||
.stat { |
||||
margin-top: 28rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
flex-wrap: wrap; |
||||
gap: 32rpx; |
||||
.user { |
||||
flex: 1; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 18rpx; |
||||
.avatar-wrap { |
||||
display: flex; |
||||
align-items: center; |
||||
.icon { |
||||
margin-right: -8rpx; |
||||
width: 40rpx; |
||||
height: 40rpx; |
||||
} |
||||
} |
||||
.content { |
||||
font-size: 24rpx; |
||||
color: rgba(148, 163, 184, 1); |
||||
} |
||||
} |
||||
.pv, |
||||
.share { |
||||
flex-shrink: 0; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 12rpx; |
||||
font-size: 24rpx; |
||||
color: rgba(148, 163, 184, 1); |
||||
.icon { |
||||
width: 34rpx; |
||||
height: 34rpx; |
||||
} |
||||
} |
||||
} |
||||
.tags { |
||||
margin-top: 25rpx; |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
gap: 16rpx; |
||||
.tag { |
||||
padding: 4rpx 16rpx; |
||||
font-size: 24rpx; |
||||
border-radius: 8rpx; |
||||
color: rgba(74, 184, 253, 1); |
||||
background-color: rgba(74, 184, 253, 0.1); |
||||
} |
||||
} |
||||
.row-wrap { |
||||
margin-top: 24rpx; |
||||
border-top: 1px solid rgba(136, 142, 152, 0.19); |
||||
.row { |
||||
margin-top: 34rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 12rpx; |
||||
.icon { |
||||
flex-shrink: 0; |
||||
width: 36rpx; |
||||
height: 36rpx; |
||||
} |
||||
.content { |
||||
font-size: 28rpx; |
||||
color: rgba(71, 85, 105, 1); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.rich-card { |
||||
margin: 24rpx 30rpx 0; |
||||
padding: 30rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
.r-title { |
||||
font-size: 36rpx; |
||||
color: rgba(17, 24, 39, 1); |
||||
font-weight: bold; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 20rpx; |
||||
&::before { |
||||
margin-left: -30rpx; |
||||
content: ''; |
||||
display: block; |
||||
width: 10rpx; |
||||
height: 36rpx; |
||||
background: #4ab8fd; |
||||
border-radius: 0 12rpx 12rpx 0; |
||||
} |
||||
} |
||||
.mp-html { |
||||
margin-top: 30rpx; |
||||
} |
||||
} |
||||
|
||||
.comment-list { |
||||
margin: 42rpx 30rpx 0; |
||||
.c-title { |
||||
font-size: 36rpx; |
||||
color: rgba(25, 28, 30, 1); |
||||
font-weight: bold; |
||||
} |
||||
.c-card { |
||||
margin-top: 30rpx; |
||||
padding: 30rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
.user { |
||||
display: flex; |
||||
.avatar { |
||||
flex-shrink: 0; |
||||
width: 84rpx; |
||||
height: 84rpx; |
||||
border-radius: 50%; |
||||
} |
||||
.wrap { |
||||
padding-left: 16rpx; |
||||
.naem { |
||||
font-size: 32rpx; |
||||
color: rgba(17, 24, 39, 1); |
||||
} |
||||
.rate { |
||||
display: flex; |
||||
align-items: baseline; |
||||
gap: 10rpx; |
||||
.r-status { |
||||
font-size: 24rpx; |
||||
color: rgba(254, 181, 74, 1); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
.content { |
||||
margin-top: 32rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(71, 85, 105, 1); |
||||
line-height: 42rpx; |
||||
} |
||||
.photo-wrap { |
||||
margin-top: 32rpx; |
||||
display: grid; |
||||
grid-template-columns: repeat(3, 1fr); |
||||
gap: 18rpx; |
||||
.photo-item { |
||||
aspect-ratio: 1 / 1; |
||||
.photo { |
||||
width: 100%; |
||||
height: 100%; |
||||
border-radius: 16rpx; |
||||
} |
||||
} |
||||
} |
||||
.c-footer { |
||||
margin-top: 24rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
gap: 24rpx; |
||||
.date { |
||||
flex: 1; |
||||
font-size: 28rpx; |
||||
color: rgba(148, 163, 184, 1); |
||||
} |
||||
.stat { |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 24rpx; |
||||
.s-item { |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 12rpx; |
||||
.icon { |
||||
width: 36rpx; |
||||
height: 36rpx; |
||||
} |
||||
.s-content { |
||||
font-size: 28rpx; |
||||
color: rgba(100, 116, 139, 1); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.footer { |
||||
position: fixed; |
||||
bottom: 0; |
||||
left: 0; |
||||
width: 100%; |
||||
background-color: #fff; |
||||
.count-down-wrap { |
||||
padding: 10rpx 0; |
||||
position: absolute; |
||||
top: 0; |
||||
left: 50%; |
||||
width: 100%; |
||||
transform: translate(-50%, -100%); |
||||
background-color: rgba(255, 246, 233, 1); |
||||
.count-down { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
font-size: 28rpx; |
||||
gap: 8rpx; |
||||
white-space: nowrap; |
||||
color: rgba(254, 181, 74, 1); |
||||
.c-item { |
||||
padding: 0 10rpx; |
||||
color: #fff; |
||||
line-height: 56rpx; |
||||
background-color: rgba(254, 181, 74, 1); |
||||
min-width: 50rpx; |
||||
text-align: center; |
||||
box-sizing: border-box; |
||||
border-radius: 4rpx; |
||||
} |
||||
} |
||||
} |
||||
.options { |
||||
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 16rpx); |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 26rpx; |
||||
.com, |
||||
.btn { |
||||
flex: 1; |
||||
height: 96rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
box-sizing: border-box; |
||||
border-radius: 16rpx; |
||||
font-size: 32rpx; |
||||
} |
||||
.com { |
||||
color: rgba(74, 184, 253, 1); |
||||
border: 1px solid #4ab8fd; |
||||
} |
||||
.btn { |
||||
color: #fff; |
||||
background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
const _app = getApp<IAppOption>(); |
||||
|
||||
Page({ |
||||
data: {}, |
||||
onLoad() {}, |
||||
}); |
||||
|
||||
export {} |
||||
@ -0,0 +1,127 @@
@@ -0,0 +1,127 @@
|
||||
<navbar fixed customStyle="background:{{background}};"> |
||||
<van-icon class="page-back" name="arrow-left" slot="left" /> |
||||
<view class="page-title" slot="title">详情</view> |
||||
</navbar> |
||||
|
||||
<view |
||||
class="page" |
||||
style="background: url('/images/bg1.png') no-repeat top center/100% 655rpx;padding-top: {{pageTop}}px;" |
||||
> |
||||
<view class="info-card"> |
||||
<view class="title">深职大第十五届校园歌手大赛</view> |
||||
<view class="stat"> |
||||
<view class="user"> |
||||
<view class="avatar-wrap"> |
||||
<image class="icon" src="/images/icon18.png"></image> |
||||
<image class="icon" src="/images/icon19.png"></image> |
||||
<image class="icon" src="/images/icon20.png"></image> |
||||
</view> |
||||
<view class="content">1345人已报名</view> |
||||
</view> |
||||
<view class="pv"> |
||||
<image class="icon" src="/images/icon21.png"></image> |
||||
134次 |
||||
</view> |
||||
<view class="share"> |
||||
<image class="icon" src="/images/icon22.png"></image> |
||||
1380次 |
||||
</view> |
||||
</view> |
||||
<view class="tags"> |
||||
<view class="tag">校园活动</view> |
||||
<view class="tag">学生会</view> |
||||
</view> |
||||
<view class="row-wrap"> |
||||
<view class="row"> |
||||
<image class="icon" src="/images/icon27.png"></image> |
||||
<view class="content">报名时间 2026.5.30 - 2026.6.30.</view> |
||||
</view> |
||||
<view class="row"> |
||||
<image class="icon" src="/images/icon28.png"></image> |
||||
<view class="content">活动时间 2026.7.1 19:00 - 2026.7.1 21:00</view> |
||||
</view> |
||||
<view class="row"> |
||||
<image class="icon" src="/images/icon29.png"></image> |
||||
<view class="content">活动地点 留仙洞校区音乐厅</view> |
||||
</view> |
||||
<view class="row"> |
||||
<image class="icon" src="/images/icon30.png"></image> |
||||
<view class="content">主办方 学生会</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="rich-card"> |
||||
<view class="r-title">活动介绍</view> |
||||
<mp-html class="mp-html" content="{{content}}"></mp-html> |
||||
</view> |
||||
|
||||
<view class="comment-list"> |
||||
<view class="c-title">精彩评论 (21条)</view> |
||||
<view class="c-card"> |
||||
<view class="user"> |
||||
<image class="avatar" src="/images/bg1.png"></image> |
||||
<view class="wrap"> |
||||
<view class="name">李可可</view> |
||||
<view class="rate"> |
||||
<van-rate value="{{4.5}}" color="#F7B550" allow-half readonly size="24rpx" void-color="#F7F8FA" /> |
||||
<view class="r-status">非常满意</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<view class="content"> |
||||
本次活动组织有序,流程顺畅,现场氛围良好。活动内容丰富、安排合理,服务贴心到位,整体体验良好。歌手们的实力都很强! |
||||
</view> |
||||
<view class="photo-wrap"> |
||||
<view class="photo-item"> |
||||
<image class="photo" src="/images/bg1.png"></image> |
||||
</view> |
||||
</view> |
||||
<view class="c-footer"> |
||||
<view class="date">2026-01-01 12:00:00</view> |
||||
<view class="stat"> |
||||
<view class="s-item"> |
||||
<image class="icon" src="/images/icon31.png"></image> |
||||
<view class="s-content">34</view> |
||||
</view> |
||||
<view class="s-item"> |
||||
<image class="icon" src="/images/icon32.png"></image> |
||||
<view class="s-content">回复</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="footer"> |
||||
<van-count-down |
||||
use-slot |
||||
time="{{ detail.LeftTime*1000 }}" |
||||
bind:change="handleTimeChange" |
||||
bind:finish="handleTimeFinish" |
||||
class="count-down-wrap" |
||||
> |
||||
<view class="count-down"> |
||||
倒计时 |
||||
<block wx:if="{{timeData.days>0}}"> |
||||
<view class="c-item">{{timeData.days}}</view> |
||||
天 |
||||
</block> |
||||
<block> |
||||
<view class="c-item">{{timeData.hours}}</view> |
||||
时 |
||||
</block> |
||||
<block> |
||||
<view class="c-item">{{timeData.minutes}}</view> |
||||
分 |
||||
</block> |
||||
<view class="c-item">{{timeData.seconds}}</view> |
||||
秒 |
||||
</view> |
||||
</van-count-down> |
||||
<view class="options"> |
||||
<view class="com">去评论</view> |
||||
<view class="btn">我要报名</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
{ |
||||
"usingComponents": {} |
||||
} |
||||
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
const _app = getApp<IAppOption>(); |
||||
|
||||
Page({ |
||||
data: {}, |
||||
onLoad() {}, |
||||
}); |
||||
|
||||
export {} |
||||
@ -1,3 +1,9 @@
@@ -1,3 +1,9 @@
|
||||
{ |
||||
"usingComponents": {} |
||||
"navigationStyle": "custom", |
||||
"usingComponents": { |
||||
"van-icon": "@vant/weapp/icon/index", |
||||
"van-notice-bar": "@vant/weapp/notice-bar/index", |
||||
"van-tab": "@vant/weapp/tab/index", |
||||
"van-tabs": "@vant/weapp/tabs/index" |
||||
} |
||||
} |
||||
|
||||
@ -1,3 +1,242 @@
@@ -1,3 +1,242 @@
|
||||
page { |
||||
background: rgba(247, 248, 250, 1); |
||||
} |
||||
.page { |
||||
padding: 20rpx; |
||||
position: relative; |
||||
min-height: 100vh; |
||||
padding-bottom: calc(60px + env(safe-area-inset-bottom)); |
||||
.search { |
||||
margin: 30rpx; |
||||
padding: 10rpx 24rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 16rpx; |
||||
background-color: #fff; |
||||
border-radius: 40rpx; |
||||
.icon { |
||||
width: 38rpx; |
||||
height: 38rpx; |
||||
} |
||||
.content { |
||||
font-size: 28rpx; |
||||
color: rgba(148, 163, 184, 0.7); |
||||
line-height: 44rpx; |
||||
} |
||||
} |
||||
.notice { |
||||
margin: 353rpx 30rpx 0; |
||||
padding: 12rpx 24rpx; |
||||
background-color: #fff; |
||||
border-radius: 59rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 12rpx; |
||||
.icon { |
||||
flex-shrink: 0; |
||||
width: 36rpx; |
||||
height: 36rpx; |
||||
} |
||||
.content { |
||||
flex: 1; |
||||
font-size: 28rpx; |
||||
color: rgba(71, 85, 105, 1); |
||||
--notice-bar-padding: 0; |
||||
--notice-bar-line-height: 40rpx; |
||||
--notice-bar-height: 40rpx; |
||||
} |
||||
.more { |
||||
color: rgba(148, 163, 184, 1); |
||||
} |
||||
} |
||||
.kkd { |
||||
margin: 32rpx 30rpx; |
||||
padding: 36rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
.k-item { |
||||
text-align: center; |
||||
flex: 1; |
||||
.icon { |
||||
width: 120rpx; |
||||
height: 120rpx; |
||||
} |
||||
.name { |
||||
margin-top: 13rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(71, 85, 105, 1); |
||||
} |
||||
} |
||||
} |
||||
.module { |
||||
margin: 35rpx 30rpx 0; |
||||
.m-header { |
||||
display: flex; |
||||
align-content: inherit; |
||||
justify-content: space-between; |
||||
.title { |
||||
font-size: 36rpx; |
||||
color: rgba(15, 29, 63, 1); |
||||
font-weight: bold; |
||||
} |
||||
.more { |
||||
font-size: 28rpx; |
||||
color: rgba(148, 163, 184, 1); |
||||
} |
||||
} |
||||
.activity-list { |
||||
margin: 20rpx -30rpx; |
||||
padding-left: 30rpx; |
||||
display: flex; |
||||
flex-wrap: nowrap; |
||||
gap: 24rpx; |
||||
overflow-x: auto; |
||||
&::-webkit-scrollbar { |
||||
display: none; |
||||
} |
||||
.a-card { |
||||
flex-shrink: 0; |
||||
width: 653rpx; |
||||
height: 218rpx; |
||||
.a-img { |
||||
display: block; |
||||
width: 100%; |
||||
height: 100%; |
||||
border-radius: 24rpx; |
||||
} |
||||
} |
||||
} |
||||
.agent-list { |
||||
margin: 20rpx -30rpx; |
||||
padding-left: 30rpx; |
||||
display: flex; |
||||
flex-wrap: nowrap; |
||||
gap: 24rpx; |
||||
overflow-x: auto; |
||||
&::-webkit-scrollbar { |
||||
display: none; |
||||
} |
||||
.a-card { |
||||
flex-shrink: 0; |
||||
padding-top: 44rpx; |
||||
width: 200rpx; |
||||
height: 264rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
box-sizing: border-box; |
||||
.icon { |
||||
display: block; |
||||
margin: 0 auto; |
||||
width: 112rpx; |
||||
height: 112rpx; |
||||
border-radius: 16rpx; |
||||
} |
||||
.name { |
||||
margin-top: 32rpx; |
||||
padding: 0 10rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(71, 85, 105, 1); |
||||
text-align: center; |
||||
white-space: nowrap; |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
.recommend { |
||||
margin: 42rpx 30rpx 0; |
||||
--tabs-nav-background-color: transparent; |
||||
--tab-font-size: 32rpx; |
||||
.van-tab--active { |
||||
--tab-font-size: 36rpx; |
||||
font-weight: bold; |
||||
} |
||||
.van-tabs__line { |
||||
display: none; |
||||
} |
||||
.van-tab { |
||||
position: relative; |
||||
flex: none; |
||||
} |
||||
.van-tab--active::after { |
||||
content: ''; |
||||
display: block; |
||||
position: absolute; |
||||
bottom: 0; |
||||
left: 50%; |
||||
transform: translateX(-50%); |
||||
width: 42rpx; |
||||
height: 8rpx; |
||||
background: #4ab8fd; |
||||
border-radius: 37rpx 37rpx 37rpx 37rpx; |
||||
} |
||||
.van-tabs__nav { |
||||
gap: 70rpx; |
||||
} |
||||
.r-activity-list { |
||||
margin-top: 32rpx; |
||||
padding: 0 32rpx; |
||||
border-radius: 16rpx; |
||||
background-color: #fff; |
||||
.card { |
||||
padding: 24rpx 0; |
||||
display: flex; |
||||
gap: 24rpx; |
||||
padding-bottom: 24rpx; |
||||
border-bottom: 1px solid rgba(148, 163, 184, 0.1); |
||||
&:last-of-type{ |
||||
border: none; |
||||
} |
||||
.photo { |
||||
flex-shrink: 0; |
||||
position: relative; |
||||
width: 262rpx; |
||||
height: 196rpx; |
||||
.status { |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
padding: 8rpx 16rpx; |
||||
font-size: 22rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
background: #feb54a; |
||||
border-radius: 16rpx 0rpx 16rpx 0rpx; |
||||
} |
||||
.p-img { |
||||
border-radius: 16rpx; |
||||
display: block; |
||||
width: 100%; |
||||
height: 100%; |
||||
} |
||||
} |
||||
.wrap { |
||||
.title { |
||||
font-size: 32rpx; |
||||
color: rgba(17, 24, 39, 1); |
||||
line-height: 48rpx; |
||||
font-weight: bold; |
||||
} |
||||
.user { |
||||
margin-top: 18rpx; |
||||
color: rgba(100, 116, 139, 1); |
||||
font-size: 24rpx; |
||||
} |
||||
.date { |
||||
margin-top: 20rpx; |
||||
font-size: 24rpx; |
||||
color: rgba(100, 116, 139, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 8rpx; |
||||
.icon { |
||||
width: 22rpx; |
||||
height: 22rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
@ -1,3 +1,86 @@
@@ -1,3 +1,86 @@
|
||||
<view class="page"> |
||||
<text>{{title}}</text> |
||||
<view |
||||
class="page" |
||||
style="background: url('/images/bg1.png') no-repeat top center/100% 655rpx;padding-top: {{pageTop}}px;" |
||||
> |
||||
<view class="search"> |
||||
<image class="icon" src="/images/icon1.png"></image> |
||||
<view class="content">请搜索你想要的内容</view> |
||||
</view> |
||||
<view class="notice"> |
||||
<image class="icon" src="/images/icon2.png"></image> |
||||
<view class="content"> |
||||
<van-notice-bar |
||||
color="rgba(71, 85, 105, 1)" |
||||
background="transparent" |
||||
speed="{{3}}" |
||||
text="技术是开发它的人的共同灵魂。" |
||||
/> |
||||
</view> |
||||
<van-icon class="more" name="arrow" /> |
||||
</view> |
||||
<view class="kkd"> |
||||
<view class="k-item" wx:for="{{4}}" wx:key="index"> |
||||
<image class="icon" src="/images/icon2.png"></image> |
||||
<view class="name">智能课表</view> |
||||
</view> |
||||
</view> |
||||
<view class="module"> |
||||
<view class="m-header"> |
||||
<view class="title">热门活动</view> |
||||
<view class="more"> |
||||
查看详情 |
||||
<van-icon name="arrow" /> |
||||
</view> |
||||
</view> |
||||
<view class="activity-list"> |
||||
<view class="a-card" wx:for="{{4}}" wx:key="index"> |
||||
<image class="a-img" mode="aspectFill" src="/images/bg1.png"></image> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<view class="module"> |
||||
<view class="m-header"> |
||||
<view class="title">推荐智能体</view> |
||||
<view class="more"> |
||||
查看详情 |
||||
<van-icon name="arrow" /> |
||||
</view> |
||||
</view> |
||||
<view class="agent-list"> |
||||
<view class="a-card" wx:for="{{4}}" wx:key="index"> |
||||
<image class="icon" src="/images/icon2.png"></image> |
||||
<view class="name">PPT小助手</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<view class="recommend"> |
||||
<van-tabs |
||||
active="{{ active }}" |
||||
color="rgba(74, 184, 253, 1)" |
||||
title-active-color="rgba(15, 29, 63, 1)" |
||||
title-inactive-color="rgba(71, 85, 105, 1)" |
||||
bind:change="onChange" |
||||
swipeable |
||||
> |
||||
<van-tab title="推荐活动"> |
||||
<view class="r-activity-list"> |
||||
<view class="card" wx:for="{{2}}" wx:key="index"> |
||||
<view class="photo"> |
||||
<view class="status">进行中</view> |
||||
<image class="p-img" src="/images/bg1.png"></image> |
||||
</view> |
||||
<view class="wrap"> |
||||
<view class="title">深职大第十五届校园歌手大赛</view> |
||||
<view class="user">128人已报名</view> |
||||
<view class="date"> |
||||
<image class="icon" src="/images/icon3.png"></image> |
||||
<view class="content">2026.04.01-2026.05.30</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</van-tab> |
||||
<van-tab title="智能体">内容 2</van-tab> |
||||
</van-tabs> |
||||
</view> |
||||
</view> |
||||
|
||||
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
{ |
||||
"navigationBarTitleText": "通知", |
||||
"navigationStyle": "default", |
||||
"usingComponents": { |
||||
"van-tab": "@vant/weapp/tab/index", |
||||
"van-tabs": "@vant/weapp/tabs/index", |
||||
"van-icon": "@vant/weapp/icon/index" |
||||
} |
||||
} |
||||
@ -0,0 +1,125 @@
@@ -0,0 +1,125 @@
|
||||
page { |
||||
background-color: rgba(247, 248, 250, 1); |
||||
} |
||||
|
||||
.page { |
||||
.tabs { |
||||
.van-tabs__line { |
||||
width: 32rpx !important; |
||||
} |
||||
.van-tab--active { |
||||
--tab-font-size: 32rpx; |
||||
} |
||||
} |
||||
.page0 { |
||||
padding: 0 32rpx; |
||||
.module { |
||||
margin-top: 32rpx; |
||||
.date { |
||||
font-size: 28rpx; |
||||
color: rgba(148, 163, 184, 1); |
||||
text-align: center; |
||||
} |
||||
.card { |
||||
margin-top: 24rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
padding: 32rpx; |
||||
.title { |
||||
font-size: 32rpx; |
||||
color: rgba(17, 24, 39, 1); |
||||
font-weight: bold; |
||||
} |
||||
.content { |
||||
margin-top: 24rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(100, 116, 139, 1); |
||||
line-height: 44rpx; |
||||
} |
||||
.c-footer { |
||||
margin-top: 32rpx; |
||||
padding-top: 22rpx; |
||||
border-top: 1px solid rgba(235, 235, 235, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
.tag { |
||||
font-size: 24rpx; |
||||
color: rgba(74, 184, 253, 1); |
||||
padding: 4rpx 16rpx; |
||||
border-radius: 6rpx; |
||||
background-color: rgba(74, 184, 253, 0.1); |
||||
} |
||||
.detail { |
||||
font-size: 28rpx; |
||||
color: rgba(148, 163, 184, 0.5); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.page2 { |
||||
padding: 0 32rpx; |
||||
.module { |
||||
margin-top: 32rpx; |
||||
.date { |
||||
font-size: 28rpx; |
||||
color: rgba(148, 163, 184, 1); |
||||
text-align: center; |
||||
} |
||||
.card { |
||||
margin-top: 24rpx; |
||||
background-color: #fff; |
||||
border-radius: 24rpx; |
||||
padding: 32rpx; |
||||
.title { |
||||
font-size: 32rpx; |
||||
color: rgba(17, 24, 39, 1); |
||||
font-weight: bold; |
||||
} |
||||
.content { |
||||
margin-top: 24rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(100, 116, 139, 1); |
||||
line-height: 44rpx; |
||||
} |
||||
.c-footer { |
||||
margin-top: 30rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
.tag { |
||||
font-size: 24rpx; |
||||
padding: 4rpx 16rpx; |
||||
border-radius: 6rpx; |
||||
&.tag1 { |
||||
color: rgba(111, 220, 174, 1); |
||||
background-color: rgba(111, 220, 174, 0.1); |
||||
} |
||||
&.tag2 { |
||||
color: rgba(253, 91, 89, 1); |
||||
background-color: rgba(253, 91, 89, 0.1); |
||||
} |
||||
&.tag3 { |
||||
color: rgba(74, 184, 253, 1); |
||||
background-color: rgba(74, 184, 253, 0.1); |
||||
} |
||||
&.tag4 { |
||||
color: rgba(254, 181, 74, 1); |
||||
background-color: rgba(254, 181, 74, 0.1); |
||||
} |
||||
&.tag5 { |
||||
color: rgba(171, 89, 248, 1); |
||||
background-color: rgba(171, 89, 248, 0.1); |
||||
} |
||||
} |
||||
.detail { |
||||
font-size: 28rpx; |
||||
color: rgba(148, 163, 184, 0.5); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
const _app = getApp<IAppOption>() |
||||
|
||||
Page({ |
||||
data: { |
||||
active: 2, |
||||
}, |
||||
onLoad() {}, |
||||
handleDetail() { |
||||
wx.navigateTo({ |
||||
url: '/pages/noticeDetail/index', |
||||
}) |
||||
}, |
||||
}) |
||||
|
||||
export {} |
||||
@ -0,0 +1,59 @@
@@ -0,0 +1,59 @@
|
||||
<view class="page"> |
||||
<van-tabs |
||||
class="tabs" |
||||
color="rgba(74, 184, 253, 1)" |
||||
title-inactive-color="rgba(71, 85, 105, 1)" |
||||
title-active-color="rgba(74, 184, 253, 1)" |
||||
active="{{ active }}" |
||||
bind:change="onChange" |
||||
> |
||||
<van-tab title="公告"> |
||||
<view class="page0"> |
||||
<view class="module" wx:for="{{4}}" wx:key="index" bind:tap="handleDetail"> |
||||
<view class="date">03-01 13:01</view> |
||||
<view class="card"> |
||||
<view class="title">2025-2026学年暑期社会实践报名启动</view> |
||||
<view class="content"> |
||||
本次活动聚焦社会服务、乡村振兴、红色教育、志愿服务等方向,引导青年以实干践行使命,用行... |
||||
</view> |
||||
<view class="c-footer"> |
||||
<view class="tag">重要通知</view> |
||||
<view class="detail"> |
||||
查看详情 |
||||
<van-icon name="arrow" /> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</van-tab> |
||||
<van-tab title="重要通知">内容 2</van-tab> |
||||
<van-tab title="活动通知"> |
||||
<view class="page2"> |
||||
<view class="module" wx:for="{{4}}" wx:key="index"> |
||||
<view class="date">03-01 13:01</view> |
||||
<view class="card"> |
||||
<view class="title">2025-2026学年暑期社会实践报名启动</view> |
||||
<view class="content"> |
||||
本次活动聚焦社会服务、乡村振兴、红色教育、志愿服务等方向,引导青年以实干践行使命,用行... |
||||
</view> |
||||
<view class="reason">驳回原因:</view> |
||||
<view class="c-footer"> |
||||
<!-- tag1 活动审核 --> |
||||
<!-- tag2 活动驳回 --> |
||||
<!-- tag3 报名通知 --> |
||||
<!-- tag4 签到通知 --> |
||||
<!-- tag5 评论审核 --> |
||||
<view class="tag tag1">重要通知</view> |
||||
<view class="detail"> |
||||
查看详情 |
||||
<van-icon name="arrow" /> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</van-tab> |
||||
<van-tab title="智能体通知">内容 2</van-tab> |
||||
</van-tabs> |
||||
</view> |
||||
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
{ |
||||
"navigationBarTitleText": "通知详情", |
||||
"navigationStyle": "default", |
||||
"usingComponents": { |
||||
"mp-html": "mp-html" |
||||
} |
||||
} |
||||
@ -0,0 +1,154 @@
@@ -0,0 +1,154 @@
|
||||
.page { |
||||
padding: 32rpx; |
||||
.info { |
||||
.row { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
.type { |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 8rpx; |
||||
.icon { |
||||
width: 34rpx; |
||||
height: 34rpx; |
||||
} |
||||
.content { |
||||
font-size: 32rpx; |
||||
color: rgba(74, 184, 253, 1); |
||||
} |
||||
} |
||||
.status { |
||||
font-size: 24rpx; |
||||
padding: 4rpx 16rpx; |
||||
border-radius: 6rpx; |
||||
&.status1 { |
||||
color: rgba(111, 220, 174, 1); |
||||
background-color: rgba(111, 220, 174, 0.1); |
||||
} |
||||
&.status2 { |
||||
color: rgba(253, 91, 89, 1); |
||||
background-color: rgba(253, 91, 89, 0.1); |
||||
} |
||||
&.status3 { |
||||
color: rgba(74, 184, 253, 1); |
||||
background-color: rgba(74, 184, 253, 0.1); |
||||
} |
||||
&.status4 { |
||||
color: rgba(254, 181, 74, 1); |
||||
background-color: rgba(254, 181, 74, 0.1); |
||||
} |
||||
&.status5 { |
||||
color: rgba(171, 89, 248, 1); |
||||
background-color: rgba(171, 89, 248, 0.1); |
||||
} |
||||
} |
||||
} |
||||
.title { |
||||
margin-top: 30rpx; |
||||
font-size: 42rpx; |
||||
line-height: 48rpx; |
||||
color: rgba(17, 24, 39, 1); |
||||
font-weight: bold; |
||||
} |
||||
.tag-wrap { |
||||
margin-top: 30rpx; |
||||
display: flex; |
||||
gap: 16rpx; |
||||
flex-wrap: wrap; |
||||
.tag { |
||||
font-size: 24rpx; |
||||
padding: 4rpx 16rpx; |
||||
border-radius: 6rpx; |
||||
&.tag1 { |
||||
color: rgba(111, 220, 174, 1); |
||||
background-color: rgba(111, 220, 174, 0.1); |
||||
} |
||||
&.tag2 { |
||||
color: rgba(253, 91, 89, 1); |
||||
background-color: rgba(253, 91, 89, 0.1); |
||||
} |
||||
&.tag3 { |
||||
color: rgba(74, 184, 253, 1); |
||||
background-color: rgba(74, 184, 253, 0.1); |
||||
} |
||||
&.tag4 { |
||||
color: rgba(254, 181, 74, 1); |
||||
background-color: rgba(254, 181, 74, 0.1); |
||||
} |
||||
&.tag5 { |
||||
color: rgba(171, 89, 248, 1); |
||||
background-color: rgba(171, 89, 248, 0.1); |
||||
} |
||||
} |
||||
} |
||||
.stat { |
||||
margin-top: 30rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 36rpx; |
||||
.date, |
||||
.user { |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 8rpx; |
||||
.icon { |
||||
width: 30rpx; |
||||
height: 30rpx; |
||||
} |
||||
.content { |
||||
font-size: 28rpx; |
||||
color: rgba(148, 163, 184, 1); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
.mp-html { |
||||
margin-top: 30rpx; |
||||
} |
||||
.tip { |
||||
margin-top: 30rpx; |
||||
padding: 24rpx; |
||||
background-color: rgba(254, 181, 74, 0.1); |
||||
border-radius: 16rpx; |
||||
display: flex; |
||||
gap: 23rpx; |
||||
.icon { |
||||
margin-top: 4rpx; |
||||
flex-shrink: 0; |
||||
width: 32rpx; |
||||
height: 32rpx; |
||||
} |
||||
.wrap { |
||||
.w-title { |
||||
font-size: 32rpx; |
||||
color: rgba(254, 181, 74, 1); |
||||
} |
||||
.w-content { |
||||
font-size: 28rpx; |
||||
color: rgba(254, 181, 74, 1); |
||||
} |
||||
} |
||||
} |
||||
.footer { |
||||
position: fixed; |
||||
bottom: 0; |
||||
left: 0; |
||||
width: 100%; |
||||
box-sizing: border-box; |
||||
padding: 30rpx 30rpx calc(env(safe-area-inset-bottom) + 30rpx); |
||||
background-color: #fff; |
||||
box-shadow: 0rpx -4rpx 21rpx 0rpx rgba(0, 0, 0, 0.07); |
||||
.btn { |
||||
height: 96rpx; |
||||
font-size: 32rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); |
||||
box-shadow: 0rpx 15rpx 30rpx -6rpx rgba(74, 172, 219, 0.4); |
||||
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
const _app = getApp<IAppOption>(); |
||||
|
||||
Page({ |
||||
data: {}, |
||||
onLoad() {}, |
||||
}); |
||||
|
||||
export {} |
||||
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
<view class="page"> |
||||
<view class="info"> |
||||
<view class="row"> |
||||
<view class="type"> |
||||
<image class="icon" src="/images/icon23.png"></image> |
||||
<view class="content">通知</view> |
||||
</view> |
||||
<view class="status status1">已发布</view> |
||||
</view> |
||||
<view class="title">关于开展校园歌手大赛的通知</view> |
||||
<view class="tag-wrap"> |
||||
<view class="tag tag1">校园活动</view> |
||||
</view> |
||||
<view class="stat"> |
||||
<view class="date"> |
||||
<image class="icon" src="/images/icon24.png"></image> |
||||
<view class="content">2026-05-20 14:30:00</view> |
||||
</view> |
||||
<view class="user"> |
||||
<image class="icon" src="/images/icon25.png"></image> |
||||
<view class="content">浏览人数:128</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
<view class="mp-html"> |
||||
<mp-html content="{{content}}"></mp-html> |
||||
</view> |
||||
<view class="tip"> |
||||
<image class="icon" src="/images/icon26.png"></image> |
||||
<view class="wrap"> |
||||
<view class="w-title">温馨提示</view> |
||||
<view class="w-content">未尽事宜,请联系校团委文艺部,联系电话:0755-12345678。</view> |
||||
</view> |
||||
</view> |
||||
<view class="footer"> |
||||
<view class="btn">查看活动详情</view> |
||||
</view> |
||||
</view> |
||||