| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403 | <template>	<view class="content">		<!-- 这里设置了z-paging加载时禁止自动调用reload方法,自行控制何时reload(懒加载)-->		<!--  :enable-back-to-top="currentIndex===tabIndex" 在微信小程序上可以多加这一句,因为默认是允许点击返回顶部的,但是这个页面有多个scroll-view,会全部返回顶部,所以需要控制是当前index才允许点击返回顶部 -->		<!-- refresher-threshold="160rpx" -->		<z-paging auto-show-back-to-top ref="paging" @query="queryList" :list.sync="dataList" :default-page-size="15"			:mounted-auto-call-reload="false" style="height: 100%;">			<!-- <custom-refresher slot="refresher" slot-scope="{refresherStatus}" :status="refresherStatus"></custom-refresher> -->			<!-- 如果希望其他view跟着页面滚动,可以放在z-paging标签内 -->			<!-- list数据,建议像下方这样在item外层套一个view,而非直接for循环item,因为slot插入有数量限制 -->			<view style="display:flex;flex-wrap: wrap;">				<block v-for="(item,index) in dataList" :key="index">					<poster-list :item="item" :index="index"></poster-list>				</block>			</view>		</z-paging>	</view></template><script>	import posterList from "@/components/modules/tools/poster/poster-list.vue";	import customRefresher from "@/components/common/custom-refresher/custom-refresher.vue"	export default {		components: {			posterList,			customRefresher		},		data() {			return {				dataList: [],				firstLoaded: false,				posterlist: [{						"name": "推荐",						"list": [{								"img": "/static/image/poster/baoxian/poster1.jpg",								"name": "推荐1"							},							{								"img": "/static/image/poster/chanpin/poster1.png",								"name": "推荐2"							},							{								"img": "/static/image/poster/jieqi/poster1.jpg",								"name": "推荐3"							},							{								"img": "/static/image/poster/jieri/poster1.jpg",								"name": "推荐4"							},							{								"img": "/static/image/poster/zengyuan/poster1.png",								"name": "推荐5"							}						]					},					{						"name": "保险",						"list": [{								"img": "/static/image/poster/baoxian/poster1.jpg",								"name": "保险1"							},							{								"img": "/static/image/poster/baoxian/poster2.jpg",								"name": "保险2"							},							{								"img": "/static/image/poster/baoxian/poster3.jpg",								"name": "保险3"							},							{								"img": "/static/image/poster/baoxian/poster4.jpg",								"name": "保险4"							},							{								"img": "/static/image/poster/baoxian/poster5.jpg",								"name": "保险5"							},							{								"img": "/static/image/poster/baoxian/poster6.jpg",								"name": "保险6"							},							{								"img": "/static/image/poster/baoxian/poster7.jpg",								"name": "保险7"							},							{								"img": "/static/image/poster/baoxian/poster8.jpg",								"name": "保险8"							},							{								"img": "/static/image/poster/baoxian/poster9.jpg",								"name": "保险9"							},							{								"img": "/static/image/poster/baoxian/poster10.jpg",								"name": "保险10"							},							{								"img": "/static/image/poster/baoxian/poster11.jpg",								"name": "保险11"							},							{								"img": "/static/image/poster/baoxian/poster12.jpg",								"name": "保险12"							}						]					},					{						"name": "产品",						"list": [{								"img": "/static/image/poster/chanpin/poster1.png",								"name": "产品1"							},							{								"img": "/static/image/poster/chanpin/poster2.png",								"name": "产品2"							},							{								"img": "/static/image/poster/chanpin/poster3.png",								"name": "产品3"							},							{								"img": "/static/image/poster/chanpin/poster4.png",								"name": "产品4"							},							{								"img": "/static/image/poster/chanpin/poster5.png",								"name": "产品5"							},							{								"img": "/static/image/poster/chanpin/poster6.png",								"name": "产品6"							},							{								"img": "/static/image/poster/chanpin/poster7.png",								"name": "产品7"							},							{								"img": "/static/image/poster/chanpin/poster8.png",								"name": "产品8"							},							{								"img": "/static/image/poster/chanpin/poster9.png",								"name": "产品9"							},							{								"img": "/static/image/poster/chanpin/poster10.png",								"name": "产品10"							},							{								"img": "/static/image/poster/chanpin/poster11.png",								"name": "产品11"							},							{								"img": "/static/image/poster/chanpin/poster12.png",								"name": "产品12"							},						]					},					{						"name": "节气",						"list": [{								"img": "/static/image/poster/jieqi/poster1.jpg",								"name": "处暑"							},							{								"img": "/static/image/poster/jieqi/poster2.jpg",								"name": "大暑"							},							{								"img": "/static/image/poster/jieqi/poster3.jpg",								"name": "谷雨"							},							{								"img": "/static/image/poster/jieqi/poster4.jpg",								"name": "寒露"							},							{								"img": "/static/image/poster/jieqi/poster5.jpg",								"name": "惊蛰"							},							{								"img": "/static/image/poster/jieqi/poster6.jpg",								"name": "立春"							},							{								"img": "/static/image/poster/jieqi/poster7.jpg",								"name": "立冬"							},							{								"img": "/static/image/poster/jieqi/poster8.jpg",								"name": "立秋"							},							{								"img": "/static/image/poster/jieqi/poster9.jpg",								"name": "秋分"							},							{								"img": "/static/image/poster/jieqi/poster10.jpg",								"name": "夏至"							},							{								"img": "/static/image/poster/jieqi/poster11.jpg",								"name": "小寒"							},							{								"img": "/static/image/poster/jieqi/poster12.jpg",								"name": "雨水"							},						]					},					{						"name": "节日",						"list": [{								"img": "/static/image/poster/jieri/poster1.jpg",								"name": "端午节"							},							{								"img": "/static/image/poster/jieri/poster2.jpg",								"name": "父亲节"							},							{								"img": "/static/image/poster/jieri/poster3.jpg",								"name": "国庆节"							},							{								"img": "/static/image/poster/jieri/poster4.jpg",								"name": "九一八"							},							{								"img": "/static/image/poster/jieri/poster5.jpg",								"name": "母亲节"							},							{								"img": "/static/image/poster/jieri/poster6.jpg",								"name": "女神节"							},							{								"img": "/static/image/poster/jieri/poster7.jpg",								"name": "七夕节"							},							{								"img": "/static/image/poster/jieri/poster8.jpg",								"name": "清明节"							},							{								"img": "/static/image/poster/jieri/poster9.jpg",								"name": "圣诞节"							},							{								"img": "/static/image/poster/jieri/poster10.jpg",								"name": "植树节"							},							{								"img": "/static/image/poster/jieri/poster11.jpg",								"name": "中秋节"							},							{								"img": "/static/image/poster/jieri/poster12.jpg",								"name": "重阳节"							},						]					},					{						"name": "增员",						"list": [{								"img": "/static/image/poster/zengyuan/poster1.png",								"name": "增员1"							},							{								"img": "/static/image/poster/zengyuan/poster2.png",								"name": "增员2"							},							{								"img": "/static/image/poster/zengyuan/poster3.png",								"name": "增员3"							},							{								"img": "/static/image/poster/zengyuan/poster4.png",								"name": "增员4"							},							{								"img": "/static/image/poster/zengyuan/poster5.png",								"name": "增员5"							},							{								"img": "/static/image/poster/zengyuan/poster6.png",								"name": "增员6"							},							{								"img": "/static/image/poster/zengyuan/poster7.png",								"name": "增员7"							},							{								"img": "/static/image/poster/zengyuan/poster8.png",								"name": "增员8"							},							{								"img": "/static/image/poster/zengyuan/poster9.png",								"name": "增员9"							},							{								"img": "/static/image/poster/zengyuan/poster10.png",								"name": "增员10"							},							{								"img": "/static/image/poster/zengyuan/poster11.png",								"name": "增员11"							},							{								"img": "/static/image/poster/zengyuan/poster12.png",								"name": "增员12"							},						]					}				]			}		},		props: {			tabIndex: {				type: Number,				default: function() {					return 0				}			},			currentIndex: {				type: Number,				default: function() {					return 0				}			},		},		watch: {			currentIndex: {				handler(newVal) {					if (newVal === this.tabIndex) {						//懒加载,当滑动到当前的item时,才去加载						if (!this.firstLoaded) {							this.$nextTick(() => {								this.$refs.paging.reload();							})						}					}				},				immediate: true			},		},		methods: {			queryList(pageNo, pageSize) {				//组件加载时会自动触发此方法,因此默认页面加载时会自动触发,无需手动调用				//这里的pageNo和pageSize会自动计算好,直接传给服务器即可				//模拟请求服务器获取分页数据,请替换成自己的网络请求				// this.$request.queryList(pageNo, pageSize, this.tabIndex + 1, (data) => {				let a = this.posterlist[this.tabIndex].list				let data = {					'content': a				};				this.$refs.paging.complete(a);				this.firstLoaded = true;				// })			}		}	}</script><style>	/* 注意,1、父节点需要固定高度,z-paging的height:100%才会生效 */	/* 注意,2、请确保z-paging与同级的其他view的总高度不得超过屏幕宽度,以避免超出屏幕高度时页面的滚动与z-paging内部的滚动冲突 */	.content {		height: 100%;		/* 父节点建议开启flex布局 */		display: flex;		flex-direction: column;	}	.item {		position: relative;		height: 150rpx;		display: flex;		align-items: center;		justify-content: space-between;		padding: 0rpx 30rpx;	}	.item-detail {		padding: 5rpx 15rpx;		border-radius: 10rpx;		font-size: 28rpx;		color: white;		background-color: #007AFF;	}	.item-line {		position: absolute;		bottom: 0rpx;		left: 0rpx;		height: 1px;		width: 100%;		background-color: #eeeeee;	}</style>
 |