zhxy-jzd/src/pages/base/home/detail.vue

252 lines
6.1 KiB
Vue
Raw Normal View History

2025-04-30 01:43:23 +08:00
<template>
<view class="notice-detail">
<!-- 通知头部 -->
<view class="notice-header">
<view class="notice-title">
<text>开学典礼安排通知</text>
</view>
<view class="notice-meta">
<text class="publisher">发布人: 李校长</text>
<text class="date">2023-07-18 10:30</text>
</view>
</view>
<!-- 通知内容 -->
<view class="notice-content">
<view class="content-section">
<text class="section-title">尊敬的各位家长</text>
<text class="section-text">您好经学校研究决定将于2023年9月1日星期五上午9:00举行新学年开学典礼现将有关事项通知如下</text>
</view>
<view class="content-section">
<text class="section-title">时间安排</text>
<text class="section-text">1. 开学典礼时间2023年9月1日星期五上午9:00-10:30</text>
<text class="section-text">2. 学生到校时间上午8:30</text>
<text class="section-text">3. 家长参观时间上午10:30-11:30</text>
</view>
<view class="content-section">
<text class="section-title">地点</text>
<text class="section-text">学校操场雨天改至体育馆</text>
</view>
<view class="content-section">
<text class="section-title">着装要求</text>
<text class="section-text">1. 学生穿着校服佩戴校徽</text>
<text class="section-text">2. 教师着正装</text>
</view>
<view class="content-section">
<text class="section-title">注意事项</text>
<text class="section-text">1. 请家长们提前安排孩子的出行避免迟到</text>
<text class="section-text">2. 开学当天请带齐学习用品</text>
<text class="section-text">3. 新生请佩戴校牌</text>
<text class="section-text">4. 如遇天气变化请关注学校短信通知</text>
</view>
<view class="content-section">
<text class="section-title">联系方式</text>
<text class="section-text">学校办公室0123-4567890</text>
<text class="section-text">教务处0123-4567891</text>
</view>
<view class="content-section">
<text class="section-text">感谢各位家长的配合与支持</text>
</view>
</view>
<!-- 附件区域 -->
<view class="attachment-section">
<view class="section-header">
<text class="header-title">附件</text>
</view>
<view class="attachment-list">
<view class="attachment-item" @click="previewAttachment">
<u-icon name="file-text" size="22" color="#2D81FF"></u-icon>
<text class="attachment-name">开学典礼流程安排.pdf</text>
<u-icon name="download" size="20" color="#999"></u-icon>
</view>
<view class="attachment-item" @click="previewAttachment">
<u-icon name="file-text" size="22" color="#2D81FF"></u-icon>
<text class="attachment-name">学校地图及交通指南.pdf</text>
<u-icon name="download" size="20" color="#999"></u-icon>
</view>
</view>
</view>
</view>
</template>
<script setup lang="ts">
import { ref } from "vue";
// 预览附件
const previewAttachment = () => {
uni.showToast({
title: "附件下载中...",
icon: "loading"
});
// 模拟下载过程
setTimeout(() => {
uni.showToast({
title: "下载成功",
icon: "success"
});
}, 1500);
};
// 分享通知
const shareNotice = () => {
uni.showShareMenu({
withShareTicket: true,
menus: ['shareAppMessage', 'shareTimeline']
});
};
</script>
<style lang="scss" scoped>
// 工具类
@mixin text-ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.notice-detail {
min-height: 100vh;
background-color: #f5f5f5;
padding-bottom: 80px; // 留出底部按钮的空间
}
// 通知头部
.notice-header {
background-color: #fff;
padding: 20px;
border-bottom: 1px solid #eee;
.notice-title {
font-size: 20px;
font-weight: bold;
color: #333;
margin-bottom: 15px;
line-height: 1.4;
}
.notice-meta {
display: flex;
justify-content: space-between;
font-size: 14px;
color: #999;
.publisher {
margin-right: 15px;
}
}
}
// 通知内容
.notice-content {
background-color: #fff;
padding: 20px;
margin-top: 10px;
.content-section {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
.section-title {
font-size: 16px;
font-weight: 500;
color: #333;
margin-bottom: 10px;
display: block;
}
.section-text {
font-size: 15px;
color: #666;
line-height: 1.6;
margin-bottom: 10px;
display: block;
&:last-child {
margin-bottom: 0;
}
}
}
}
// 附件区域
.attachment-section {
background-color: #fff;
padding: 20px;
margin-top: 10px;
.section-header {
margin-bottom: 15px;
.header-title {
font-size: 16px;
font-weight: 500;
color: #333;
}
}
.attachment-list {
.attachment-item {
display: flex;
align-items: center;
padding: 12px 15px;
background-color: #f9f9f9;
border-radius: 8px;
margin-bottom: 10px;
&:last-child {
margin-bottom: 0;
}
.attachment-name {
flex: 1;
font-size: 14px;
color: #333;
margin: 0 10px;
@include text-ellipsis;
}
}
}
}
// 底部按钮
.bottom-actions {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 15px 20px;
background-color: #fff;
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
.action-btn {
width: 100%;
height: 45px;
line-height: 45px;
border-radius: 25px;
font-size: 16px;
&.share {
background: linear-gradient(to right, #2D81FF, #5A9EFF);
color: #fff;
}
&::after {
border: none;
}
}
}
</style>