| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- // mouse.js
- import { ref, onMounted, onUnmounted } from 'vue'
- import { onReady, onReachBottom } from '@dcloudio/uni-app'
- export const usePage = getPage => {
- // 页码,默认为1
- const page = ref(1)
- // 页大小,默认为10
- const limit = ref(10)
- // 关键字
- const keyword = ref('')
- // 类别
- const type = ref('')
- // 分类ID
- const sid = ref('')
- // 是否新品,不为空的字符串即可
- const news = ref('')
- // 是否积分兑换商品
- const isIntegral = ref('')
- // 到底了
- const loadend = ref(false)
- // 加载中
- const loading = ref(false)
- const dataList = ref([])
- const handleGetDataList = async () => {
- console.log('--> % handleGetDataList % loading:\n', loading.value)
- console.log('--> % handleGetDataList % loadend:\n', loadend.value)
- if (loading.value || loadend.value) return
- loading.value = true
- const products = await getPage({
- page: page.value,
- limit: limit.value,
- keyword: keyword.value,
- type: type.value,
- sid: sid.value,
- news: news.value,
- isIntegral: isIntegral.value,
- })
- console.log('--> % handleGetDataList % products:\n', products)
- if (products) {
- if (products.length <= 0) {
- loadend.value = true
- }
- dataList.value = dataList.value.concat(products)
- }
- loading.value = false
- }
- const handleRefresh = () => {
- loadend.value = false
- loading.value = false
- dataList.value = []
- handleGetDataList()
- }
- onReady(() => {
- console.log('onReady')
- // handleGetDataList()
- })
- onReachBottom(() => {
- if (loading.value) return
- page.value += 1
- })
- // 通过返回值暴露所管理的状态
- return {
- type,
- dataList,
- page,
- limit,
- keyword,
- loading,
- loadend,
- refresh: handleRefresh,
- }
- }
|