This commit is contained in:
Vinjor 2025-04-01 10:06:51 +08:00
parent 11f2287704
commit 64ec8aa50e
4 changed files with 96 additions and 13 deletions

View File

@ -95,18 +95,25 @@
{ {
"path": "pages/components/subscribe", "path": "pages/components/subscribe",
"style": { "style": {
"navigationBarTitleText": "" "navigationBarTitleText": "订阅"
} }
} }
], ],
"subPackages": [{ "subPackages": [{
"root": "pages/notice", "root": "pages/notice",
"pages": [{ "pages": [{
"path": "detail", "path": "detail",
"style": { "style": {
"navigationBarTitleText": "通告详情" "navigationBarTitleText": "通告详情"
}
},
{
"path": "subscribe-set",
"style": {
"navigationBarTitleText": "订阅设置"
}
} }
}] ]
}], }],
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",

View File

@ -10,19 +10,41 @@
<view v-for="(item,index) in menus" @click="itemClick(index,item)" class="dl-menu" <view v-for="(item,index) in menus" @click="itemClick(index,item)" class="dl-menu"
:class="index==menuIndex?'dl-menu click':'dl-menu'">{{item}}</view> :class="index==menuIndex?'dl-menu click':'dl-menu'">{{item}}</view>
</view> </view>
<view class="seting"> <view class="seting" @click="goSet()">
<image src="@/static/set.png" mode="aspectFit"></image>
设置 设置
</view> </view>
</view> </view>
<!-- 通告列表 -->
<view class="dl-body">
<view class="dl-item-box">
<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="onReachBottomCus" refresher-enabled
@refresherrefresh="onRefresherrefresh" :refresher-triggered="isTriggered">
<notice-item v-if="dataList.length>0" :dataList="dataList" @goDetail="goDetail()"></notice-item>
<view style="text-align: center" v-if="dataList.length==0">
<image class="" src="@/static/images/nothing.png"></image>
</view>
</scroll-view>
</view>
</view>
</view> </view>
</template> </template>
<script> <script>
import noticeItem from '@/pages/components/notice-item.vue'
export default { export default {
components: {
noticeItem
},
data() { data() {
return { return {
menus: ['订阅', '关注'], menus: ['订阅', '关注'],
menuIndex: 0, menuIndex: 0,
dataList: ['', '', '', ''],
queryParams: {
pageNum: 1,
pageSize: 10,
}
} }
}, },
methods: { methods: {
@ -39,6 +61,32 @@
} }
this.menuIndex = index this.menuIndex = index
}, },
/**
* 上滑加载数据
*/
onReachBottomCus() {
// *
if (this.queryParams.pageNum * this.queryParams.pageSize >= this.total) {
toast("没有更多数据了")
return
}
//+1,
this.queryParams.pageNum++
},
/**
* 下拉刷新数据
*/
onRefresherrefresh() {
this.isTriggered = true
this.queryParams.pageNum = 1
this.total = 0
},
/**
* 去订阅设置页面
*/
goSet() {
this.$tab.navigateTo(`/pages/notice/subscribe-set`)
}
} }
} }
</script> </script>
@ -82,10 +130,10 @@
padding-top: 20rpx; padding-top: 20rpx;
.dl-menu { .dl-menu {
width: 100rpx; width: 80rpx;
font-size: 30rpx; font-size: 30rpx;
margin: 0 20rpx; margin: 0 20rpx;
padding-bottom: 20rpx; padding-bottom: 15rpx;
text-align: center; text-align: center;
} }
@ -97,10 +145,31 @@
} }
.seting { .seting {
width: 200rpx; width: 180rpx;
display: flex; display: flex;
align-items: self-end; align-items: center;
justify-content: center; justify-content: center;
image {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
}
}
.dl-body {
flex: 1;
width: 100%;
height: 100%;
background-color: #EEEEEE;
padding: 20rpx 20rpx 0 20rpx;
.dl-item-box {
height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 365rpx);
isplay: flex;
flex-direction: column;
padding-top: 15rpx;
} }
} }
} }

View File

@ -537,7 +537,7 @@
.fork-info { .fork-info {
flex: none; flex: none;
width: 250rpx; width: 270rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;

View File

@ -1,8 +1,8 @@
<template> <template>
<view class="uni-popup-dialog"> <view class="uni-popup-dialog">
<!-- <view class="uni-dialog-title"> <view class="uni-dialog-title" v-show="!iconPath">
<text class="uni-dialog-title-text" :class="['uni-popup__'+dialogType]">{{titleText}}</text> <text class="uni-dialog-title-text" :class="['uni-popup__'+dialogType]">{{titleText}}</text>
</view> --> </view>
<view v-if="mode === 'base'" class="uni-dialog-content"> <view v-if="mode === 'base'" class="uni-dialog-content">
<slot> <slot>
<image v-if="iconPath" :src="iconPath" mode="aspectFit"></image> <image v-if="iconPath" :src="iconPath" mode="aspectFit"></image>
@ -159,6 +159,9 @@
* 点击确认按钮 * 点击确认按钮
*/ */
onOk() { onOk() {
this.$nextTick(() => {
this.val = ""
})
if (this.mode === 'input') { if (this.mode === 'input') {
this.$emit('confirm', this.val) this.$emit('confirm', this.val)
} else { } else {
@ -171,6 +174,9 @@
* 点击取消按钮 * 点击取消按钮
*/ */
closeDialog() { closeDialog() {
this.$nextTick(() => {
this.val = ""
})
this.$emit('close') this.$emit('close')
if (this.beforeClose) return if (this.beforeClose) return
this.popup.close() this.popup.close()
@ -268,6 +274,7 @@
} }
.uni-dialog-input { .uni-dialog-input {
width: 100%;
flex: 1; flex: 1;
font-size: 14px; font-size: 14px;
border: 1px #eee solid; border: 1px #eee solid;