91 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Vue
		
	
	
| <template>
 | |
| 	<view class="notice">
 | |
| 		<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :up="upOption">
 | |
| 			<view v-for="(item, index) in lists" :key="index" class="notice-item bg-white">
 | |
| 				<view class="flex row-between item-header">
 | |
| 					<view class="header-title md bold">{{item.title}}</view>
 | |
| 					<view class="header-time muted xs">{{item.create_time}}</view>
 | |
| 				</view>
 | |
| 				<view class="item-main m-t-24">
 | |
| 					<view class="content sm lighter">{{item.content}}</view>
 | |
| 				</view>
 | |
| 			</view>
 | |
| 		</mescroll-body>
 | |
| 	</view>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| 	import {
 | |
| 		getNoticeLists
 | |
| 	} from '@/api/store';
 | |
| 	import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins";
 | |
| 	export default {
 | |
| 		mixins: [MescrollMixin],
 | |
| 		data() {
 | |
| 			return {
 | |
| 				lists: [],
 | |
| 				upOption: {
 | |
| 					empty: {
 | |
| 						icon: '/static/images/news_null.png',
 | |
| 						tip: "暂无消息通知~",
 | |
| 					}
 | |
| 				},
 | |
| 			};
 | |
| 		},
 | |
| 		onLoad() {
 | |
| 			this.type = this.$Route.query.type;
 | |
| 
 | |
| 			switch (this.type) {
 | |
| 				case "system":
 | |
| 					uni.setNavigationBarTitle({
 | |
| 						title: '系统通知'
 | |
| 					});
 | |
| 					break;
 | |
| 
 | |
| 				case "earning":
 | |
| 					uni.setNavigationBarTitle({
 | |
| 						title: '收益通知'
 | |
| 					});
 | |
| 					break;
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 
 | |
| 		methods: {
 | |
| 			upCallback(page) {
 | |
| 				getNoticeLists({
 | |
| 					page_size: page.size,
 | |
| 					page_no: page.num,
 | |
| 					type: this.type
 | |
| 				}).then(({
 | |
| 					data
 | |
| 				}) => {
 | |
| 					if (page.num == 1) this.lists = [];
 | |
| 					const curPageData = data.list;
 | |
| 					const curPageLen = curPageData.length;
 | |
| 					const hasNext = !!data.more;
 | |
| 					this.lists = this.lists.concat(curPageData);
 | |
| 					this.mescroll.endSuccess(curPageLen, hasNext);
 | |
| 				}).catch(() => {
 | |
| 					this.mescroll.endErr()
 | |
| 				})
 | |
| 			},
 | |
| 		}
 | |
| 	};
 | |
| </script>
 | |
| <style lang="scss">
 | |
| 	.notice {
 | |
| 		overflow: hidden;
 | |
| 		.notice-item {
 | |
| 			padding: 0 20rpx 30rpx;
 | |
| 			border-radius: 10rpx;
 | |
| 			margin: 20rpx 20rpx 0;
 | |
| 			.item-header {
 | |
| 				padding: 19rpx 0;
 | |
| 				border-bottom: $-solid-border;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| </style>
 |