2025-11-14 11:39:33 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<view>
|
|
|
|
|
|
<u-navbar :is-back="true" title="招商公告" :border-bottom="false"></u-navbar>
|
|
|
|
|
|
<view class="wrap">
|
|
|
|
|
|
<scroll-view scroll-y style="height: 100%;width: 100%;">
|
|
|
|
|
|
<view class="page-box">
|
2026-01-15 17:18:24 +08:00
|
|
|
|
<view class="tabSwiper" v-for="(item, index) in flowList" :key="item.noticeId" @click="clickContent(item)">
|
2025-12-31 11:23:28 +08:00
|
|
|
|
<u-icon name="bell" :size="35" color="#FF2F31" class="bell-icon"></u-icon>
|
2025-12-26 17:39:00 +08:00
|
|
|
|
<view class="content-wrapper">
|
|
|
|
|
|
<view class="top">
|
2026-01-15 17:18:24 +08:00
|
|
|
|
<view class="title">{{ item.noticeTitle }}</view>
|
|
|
|
|
|
<view class="date">{{ item.createTime }}</view>
|
2025-11-14 11:39:33 +08:00
|
|
|
|
</view>
|
2025-12-26 17:39:00 +08:00
|
|
|
|
<view class="item">
|
2026-01-15 17:18:24 +08:00
|
|
|
|
<view class="content u-line-2">{{ item.noticeContent }}</view>
|
2025-11-14 11:39:33 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
2025-12-26 17:39:00 +08:00
|
|
|
|
<u-icon name="arrow-right" color="rgb(203,203,203)" :size="26" class="arrow-icon"></u-icon>
|
2025-11-14 11:39:33 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</scroll-view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
export default {
|
|
|
|
|
|
data() {
|
2025-12-26 17:39:00 +08:00
|
|
|
|
// 静态公告数据
|
2026-01-15 17:18:24 +08:00
|
|
|
|
const staticNoticeList = [];
|
2025-11-14 11:39:33 +08:00
|
|
|
|
return {
|
2026-01-15 17:18:24 +08:00
|
|
|
|
pageNo: 1,
|
|
|
|
|
|
pageSize: 20,
|
|
|
|
|
|
flowList: [],
|
|
|
|
|
|
loadStatus: 'loadmore',
|
|
|
|
|
|
isRefreshing: false
|
2025-11-14 11:39:33 +08:00
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
onLoad() {
|
2025-12-26 17:39:00 +08:00
|
|
|
|
// 静态数据已在data中初始化,无需调用接口
|
2026-01-15 17:18:24 +08:00
|
|
|
|
this.getNoticecList();
|
2025-11-14 11:39:33 +08:00
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
2025-12-26 17:39:00 +08:00
|
|
|
|
clickContent(item) {
|
2026-01-15 17:18:24 +08:00
|
|
|
|
if (item.noticeId) {
|
|
|
|
|
|
this.$u.route({
|
|
|
|
|
|
url: '/pages-biz/notice/noticeDetail',
|
|
|
|
|
|
params: {
|
|
|
|
|
|
id: item.noticeId
|
|
|
|
|
|
}
|
2025-11-14 11:39:33 +08:00
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2025-12-26 17:39:00 +08:00
|
|
|
|
getNoticecList() {
|
2026-01-15 17:18:24 +08:00
|
|
|
|
if (this.loadStatus !== 'loadmore') return;
|
|
|
|
|
|
this.loadStatus = 'loading';
|
|
|
|
|
|
let url = "/notice/pageQuery";
|
|
|
|
|
|
this.$u.post(url, {
|
|
|
|
|
|
pageNo: this.pageNo,
|
|
|
|
|
|
pageSize: this.pageSize
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
const rows = res.data.result || [];
|
|
|
|
|
|
console.log(rows)
|
|
|
|
|
|
if (this.pageNo === 1) this.flowList = [];
|
|
|
|
|
|
this.flowList = this.flowList.concat(rows)
|
|
|
|
|
|
if (rows.length < this.pageSize) {
|
|
|
|
|
|
this.loadStatus = 'nomore';
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.pageNo++;
|
|
|
|
|
|
this.loadStatus = 'loadmore';
|
|
|
|
|
|
}
|
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
|
console.log("获取招商公告失败:", err)
|
|
|
|
|
|
});
|
2025-11-14 11:39:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.tabSwiper {
|
2025-12-26 17:39:00 +08:00
|
|
|
|
width: 95%;
|
2025-11-14 11:39:33 +08:00
|
|
|
|
background-color: #ffffff;
|
2025-12-26 17:39:00 +08:00
|
|
|
|
margin: 16rpx auto;
|
|
|
|
|
|
border-radius: 12rpx;
|
2025-11-14 11:39:33 +08:00
|
|
|
|
box-sizing: border-box;
|
2025-12-26 17:39:00 +08:00
|
|
|
|
padding: 32rpx;
|
|
|
|
|
|
box-shadow: 0 1rpx 8rpx rgba(0, 0, 0, 0.04);
|
|
|
|
|
|
transition: all 0.2s ease;
|
|
|
|
|
|
border: 1rpx solid #f0f0f0;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
|
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.bell-icon {
|
|
|
|
|
|
margin-right: 32rpx;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
margin-top: 4rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.content-wrapper {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
min-width: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.arrow-icon {
|
|
|
|
|
|
margin-left: 24rpx;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
margin-top: 16rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-14 11:39:33 +08:00
|
|
|
|
.top {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
2025-12-26 17:39:00 +08:00
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
|
|
|
|
|
|
|
.title {
|
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
color: #1a1a1a;
|
|
|
|
|
|
line-height: 38rpx;
|
|
|
|
|
|
flex: 1;
|
2025-11-14 11:39:33 +08:00
|
|
|
|
}
|
2025-12-26 17:39:00 +08:00
|
|
|
|
|
|
|
|
|
|
.date {
|
|
|
|
|
|
color: #999999;
|
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 30rpx;
|
|
|
|
|
|
top: 15rpx;
|
2025-11-14 11:39:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-12-26 17:39:00 +08:00
|
|
|
|
|
2025-11-14 11:39:33 +08:00
|
|
|
|
.item {
|
|
|
|
|
|
.content {
|
2025-12-26 17:39:00 +08:00
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
|
line-height: 36rpx;
|
|
|
|
|
|
color: #666666;
|
|
|
|
|
|
letter-spacing: 0.5rpx;
|
|
|
|
|
|
margin-top: 10rpx;
|
2025-11-14 11:39:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-12-26 17:39:00 +08:00
|
|
|
|
|
2025-11-14 11:39:33 +08:00
|
|
|
|
.wrap {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
height: calc(100vh - var(--window-top));
|
|
|
|
|
|
width: 100%;
|
2025-12-26 17:39:00 +08:00
|
|
|
|
background-color: #fafafa;
|
2025-11-14 11:39:33 +08:00
|
|
|
|
}
|
2025-12-26 17:39:00 +08:00
|
|
|
|
|
|
|
|
|
|
.page-box {
|
|
|
|
|
|
padding: 16rpx 0 40rpx 0;
|
2025-11-14 11:39:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
</style>
|