Files
yshop-pro-uniapp/hooks/useActivity.js

137 lines
3.4 KiB
JavaScript
Raw Normal View History

// mouse.js
import { ref } from 'vue'
import { onReachBottom, onReady } from '@dcloudio/uni-app'
import { formatDate } from '@/utils/utils'
export const useActivity = getPage => {
// 页码,默认为1
const page = ref(1)
// 页大小,默认为10
const pageSize = ref(10)
// 到底了
const loadend = ref(false)
// 加载中
const loading = ref(false)
// 加载中
const startTime = ref(null)
// 加载中
const endTime = ref(null)
// 是否有数据
const listEmpty = ref(false)
const dataList = ref([])
const otherQuery = ref({})
const activeIndex = ref(0)
const timesList = ref([])
const handleGetDataList = async () => {
if (loading.value || loadend.value) return
loading.value = true
const res = await getPage({
pageNo: page.value,
pageSize: pageSize.value,
startTime: startTime.value,
endTime: endTime.value,
...otherQuery.value
})
const products = res.list
listEmpty.value = false
console.log(products,'products')
if (products) {
if (products.length <= 0) {
if (page.value === 1) {
listEmpty.value = true
} else {
loadend.value = true
}
}
dataList.value = dataList.value.concat(products)
}
loading.value = false
}
const handleRefresh = async () => {
loadend.value = false
loading.value = false
page.value = 1
dataList.value = []
await handleGetDataList()
}
// 初始化时间
const handleGetTimeList = ()=>{
let now = new Date();
let nowHours = new Date().getHours()
for (let i=0;i<4;i++){
let obj = {
time: nowHours+i >= 24?`${nowHours+i-24}:00`.padStart(5, '0'):`${nowHours+i}:00`.padStart(5, '0'),
status: 2,
countdown: '',
startTime: '',
endTime: ''
}
now.setMinutes(0);
now.setSeconds(0);
now.setMilliseconds(0);
now.setHours(nowHours + i);
obj.startTime = now.getTime()
now.setHours(nowHours + i + 1);
obj.endTime = now.getTime()
if(i===0){
obj.status = 1
obj.countdown = now.getTime() - new Date().getTime()
}
timesList.value.push(obj)
}
startTime.value = timesList.value[0].startTime
endTime.value = timesList.value[0].endTime
handleRefresh()
}
// 时间切换
const timeChange = (item,index)=>{
activeIndex.value = index
startTime.value = item.startTime
endTime.value = item.endTime
handleRefresh()
}
// 倒计时结束
const countDownFinish = ()=>{
timesList.value = []
activeIndex.value = 0
handleGetTimeList()
}
onReachBottom(() => {
if (loading.value || loadend.value) return
page.value += 1
handleGetDataList()
})
// 通过返回值暴露所管理的状态
return {
dataList,
page,
pageSize,
loading,
loadend,
listEmpty,
refresh: handleRefresh,
otherQuery,
activeIndex,
timesList,
timeChange,
countDownFinish,
handleGetTimeList
}
}