126 lines
2.1 KiB
Vue
126 lines
2.1 KiB
Vue
|
<template>
|
||
|
<view class="content">
|
||
|
<view class="container">
|
||
|
<view class="my-header">
|
||
|
<view class="my-icons" @click="goback"> <uni-icons type="left" size="16"></uni-icons> </view>
|
||
|
<view class="my-text">样版页</view>
|
||
|
<view class="my-icons"></view>
|
||
|
</view>
|
||
|
|
||
|
|
||
|
</view>
|
||
|
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import request from '../../utils/request';
|
||
|
export default {
|
||
|
data() {
|
||
|
return {
|
||
|
title: '',
|
||
|
List: [],
|
||
|
pageNo: 1,
|
||
|
pageSize: 10,
|
||
|
totalPage: '',
|
||
|
|
||
|
}
|
||
|
},
|
||
|
onLoad() {
|
||
|
this.resetting() //重置方法
|
||
|
this.getList() //调用请求
|
||
|
},
|
||
|
onPullDownRefresh() {
|
||
|
//下拉刷新
|
||
|
this.resetting() //重置方法
|
||
|
this.getList() //调用请求
|
||
|
uni.stopPullDownRefresh()
|
||
|
},
|
||
|
onReachBottom() {
|
||
|
// 触底加载
|
||
|
if (this.pageNo >= this.totalPage) {
|
||
|
uni.showToast({
|
||
|
title: '没有下一页数据',
|
||
|
icon: 'none'
|
||
|
})
|
||
|
} else {
|
||
|
this.pageNo++
|
||
|
this.getList()
|
||
|
}
|
||
|
},
|
||
|
|
||
|
components: {
|
||
|
|
||
|
},
|
||
|
methods: {
|
||
|
//滞空方法
|
||
|
resetting() {
|
||
|
this.pageNo = 1
|
||
|
this.pageSize = 10
|
||
|
this.totalPage = ''
|
||
|
this.List = []
|
||
|
},
|
||
|
// 分页——网络请求
|
||
|
async getList() {
|
||
|
uni.showLoading({
|
||
|
title: '加载中'
|
||
|
});
|
||
|
let res = await request({
|
||
|
url: '网络请求',
|
||
|
method: 'get',
|
||
|
data: {
|
||
|
pageNo: this.pageNo,
|
||
|
pageSize: this.pageSize,
|
||
|
}
|
||
|
})
|
||
|
if (res.code == 200) {
|
||
|
uni.hideLoading(); //交互反馈
|
||
|
if (this.pageNo != 1) {
|
||
|
this.List = this.ruleList.concat(res.result.records)
|
||
|
} else {
|
||
|
this.List = res.result.records
|
||
|
}
|
||
|
this.totalPage = res.result.pages
|
||
|
}
|
||
|
},
|
||
|
goback() {
|
||
|
uni.navigateBack()
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style scoped lang="scss">
|
||
|
.content {
|
||
|
background: #f4f5f6;
|
||
|
}
|
||
|
|
||
|
.container {
|
||
|
width: 100%;
|
||
|
height: 100vh;
|
||
|
box-sizing: border-box;
|
||
|
padding-top: 88px;
|
||
|
}
|
||
|
|
||
|
.my-header {
|
||
|
width: 100%;
|
||
|
height: 88px;
|
||
|
background: #ffffff;
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
justify-content: space-between;
|
||
|
color: #000;
|
||
|
box-sizing: border-box;
|
||
|
padding: 0px 15px;
|
||
|
padding-top: 40px;
|
||
|
z-index: 99999;
|
||
|
|
||
|
.my-icons {
|
||
|
width: 20px;
|
||
|
|
||
|
}
|
||
|
|
||
|
position: fixed;
|
||
|
top: 0px;
|
||
|
}
|
||
|
</style>
|