修复部分bug
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
import { SubscriptionMessageApi } from "@/api/user"
|
||||
import Taro from "@tarojs/taro"
|
||||
import dayjs from "dayjs"
|
||||
import { useEffect, useRef, useState } from "react"
|
||||
|
||||
//倒计时hook
|
||||
export const useTimeCountDown = () => {
|
||||
const [showTime, setShowTime] = useState({
|
||||
DD: '',
|
||||
HH: '',
|
||||
MM: '',
|
||||
SS: ''
|
||||
})
|
||||
const [timeStatus, setTimeStatus] = useState<0|1|2>(0) //倒计时状体 0:倒计时未开始 1:倒计时中, 2:倒计时已结束
|
||||
const timeObj:any = useRef()
|
||||
const endTime = useRef('')
|
||||
const onStart = (val = '') => {
|
||||
console.log('time:::', val)
|
||||
endTime.current = val
|
||||
if(endTime.current) {
|
||||
clearInterval(timeObj.current)
|
||||
timeObj.current = setInterval(() => {
|
||||
count_down()
|
||||
}, 1000)
|
||||
}
|
||||
}
|
||||
useEffect(() => {
|
||||
return () => {
|
||||
clearInterval(timeObj.current)
|
||||
}
|
||||
}, [])
|
||||
const count_down = () => {
|
||||
var startData = dayjs();
|
||||
var endDate = dayjs(endTime.current);
|
||||
setTimeStatus(() => 1)
|
||||
if(startData >= endDate) {
|
||||
clearInterval(timeObj.current)
|
||||
setShowTime((e) => ({...e, DD:'00', HH:'00', MM:'00', SS:'00'}))
|
||||
setTimeStatus(() => 2)
|
||||
return false
|
||||
}
|
||||
var _dd = endDate.diff(startData,'day');
|
||||
var _hh = endDate.diff(startData,'hour');
|
||||
var _mm = endDate.diff(startData,'minute');
|
||||
var _ss = endDate.diff(startData,'second');
|
||||
// 转换
|
||||
var hh = _hh - (_dd*24);
|
||||
var mm = _mm - (_hh*60);
|
||||
var ss = _ss - (_mm*60);
|
||||
// 格式化
|
||||
var DD = ('00'+_dd).slice(-2);
|
||||
var HH = ('00'+hh).slice(-2);
|
||||
var MM = ('00'+mm).slice(-2);
|
||||
var SS = ('00'+ss).slice(-2);
|
||||
console.log('endTime::', `${DD}-${HH}-${MM}-${SS}`)
|
||||
setShowTime((e) => ({...e, DD, HH, MM, SS}))
|
||||
}
|
||||
return {
|
||||
showTime,
|
||||
onStart,
|
||||
timeStatus
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//订阅消息hook
|
||||
export const UseSubscriptionMessage = () => {
|
||||
const {fetchData: fetchDataMessage} = SubscriptionMessageApi()
|
||||
const openSubscriptionMessage = ({orderId = 0, scenes = 0}:{orderId?: number, scenes: number}) => {
|
||||
return new Promise(async (resolve) => {
|
||||
let params:{sale_order_id?: number, scenes?: number} = {}
|
||||
orderId&&(params.sale_order_id = orderId)
|
||||
params.scenes = scenes
|
||||
let res = await fetchDataMessage(params)
|
||||
if(res.success&&res.data.TemplateID&&res.data.TemplateID.length > 0) {
|
||||
Taro.requestSubscribeMessage({
|
||||
tmplIds: res.data.TemplateID,
|
||||
complete: function (res) {
|
||||
resolve(res)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
resolve(true)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
openSubscriptionMessage
|
||||
}
|
||||
|
||||
}
|
||||
+47
-88
@@ -1,92 +1,51 @@
|
||||
import { SubscriptionMessageApi } from "@/api/user"
|
||||
import Taro from "@tarojs/taro"
|
||||
import dayjs from "dayjs"
|
||||
import { useEffect, useRef, useState } from "react"
|
||||
import { useDispatch, useSelector } from 'react-redux'
|
||||
import {SET_SHOPCOUNT, CLEAR_SHOPCOUNT} from '@/constants/common'
|
||||
import {DataParam} from '@/reducers/commonData'
|
||||
export default () => {
|
||||
const commonObj = useSelector((state:DataParam) => state) as DataParam
|
||||
const dispatch = useDispatch()
|
||||
|
||||
// const setToken = (shopCount: number) => {
|
||||
// dispatch({type:SET_SHOPCOUNT, data:{shopCount}})
|
||||
// }
|
||||
|
||||
//倒计时hook
|
||||
export const useTimeCountDown = () => {
|
||||
const [showTime, setShowTime] = useState({
|
||||
DD: '',
|
||||
HH: '',
|
||||
MM: '',
|
||||
SS: ''
|
||||
})
|
||||
const [timeStatus, setTimeStatus] = useState<0|1|2>(0) //倒计时状体 0:倒计时未开始 1:倒计时中, 2:倒计时已结束
|
||||
const timeObj:any = useRef()
|
||||
const endTime = useRef('')
|
||||
const onStart = (val = '') => {
|
||||
console.log('time:::', val)
|
||||
endTime.current = val
|
||||
if(endTime.current) {
|
||||
clearInterval(timeObj.current)
|
||||
timeObj.current = setInterval(() => {
|
||||
count_down()
|
||||
}, 1000)
|
||||
}
|
||||
}
|
||||
useEffect(() => {
|
||||
return () => {
|
||||
clearInterval(timeObj.current)
|
||||
}
|
||||
}, [])
|
||||
const count_down = () => {
|
||||
var startData = dayjs();
|
||||
var endDate = dayjs(endTime.current);
|
||||
setTimeStatus(() => 1)
|
||||
if(startData >= endDate) {
|
||||
clearInterval(timeObj.current)
|
||||
setShowTime((e) => ({...e, DD:'00', HH:'00', MM:'00', SS:'00'}))
|
||||
setTimeStatus(() => 2)
|
||||
return false
|
||||
}
|
||||
var _dd = endDate.diff(startData,'day');
|
||||
var _hh = endDate.diff(startData,'hour');
|
||||
var _mm = endDate.diff(startData,'minute');
|
||||
var _ss = endDate.diff(startData,'second');
|
||||
// 转换
|
||||
var hh = _hh - (_dd*24);
|
||||
var mm = _mm - (_hh*60);
|
||||
var ss = _ss - (_mm*60);
|
||||
// 格式化
|
||||
var DD = ('00'+_dd).slice(-2);
|
||||
var HH = ('00'+hh).slice(-2);
|
||||
var MM = ('00'+mm).slice(-2);
|
||||
var SS = ('00'+ss).slice(-2);
|
||||
console.log('endTime::', `${DD}-${HH}-${MM}-${SS}`)
|
||||
setShowTime((e) => ({...e, DD, HH, MM, SS}))
|
||||
}
|
||||
return {
|
||||
showTime,
|
||||
onStart,
|
||||
timeStatus
|
||||
}
|
||||
}
|
||||
// const setSessionKey = (sessionkey: string) => {
|
||||
// dispatch({type:SET_SESSIONKEY, data:{session_key: sessionkey}})
|
||||
// }
|
||||
|
||||
// const setUserInfo = (userInfo: UserParam) => {
|
||||
// dispatch({type:SET_USERINFO, data:{userInfo}})
|
||||
// }
|
||||
|
||||
//订阅消息hook
|
||||
export const UseSubscriptionMessage = () => {
|
||||
const {fetchData: fetchDataMessage} = SubscriptionMessageApi()
|
||||
const openSubscriptionMessage = ({orderId = 0, scenes = 0}:{orderId?: number, scenes: number}) => {
|
||||
return new Promise(async (resolve) => {
|
||||
let params:{sale_order_id?: number, scenes?: number} = {}
|
||||
orderId&&(params.sale_order_id = orderId)
|
||||
params.scenes = scenes
|
||||
let res = await fetchDataMessage(params)
|
||||
if(res.success&&res.data.TemplateID&&res.data.TemplateID.length > 0) {
|
||||
Taro.requestSubscribeMessage({
|
||||
tmplIds: res.data.TemplateID,
|
||||
complete: function (res) {
|
||||
resolve(res)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
resolve(true)
|
||||
}
|
||||
})
|
||||
}
|
||||
// const setAdminUserInfo = (adminUserInfo: UserAdminParam) => {
|
||||
// dispatch({type:SET_ADMINUSERINFO, data:{adminUserInfo}})
|
||||
// }
|
||||
|
||||
return {
|
||||
openSubscriptionMessage
|
||||
}
|
||||
|
||||
}
|
||||
// const setSortCode = (sortCode:SortCodeParam) => {
|
||||
// dispatch({type:SET_SORTCODE, data:{sort_code:sortCode}})
|
||||
// }
|
||||
|
||||
// const removeUserInfo = () => {
|
||||
// dispatch({type:CLEAR_USERINFO})
|
||||
// }
|
||||
|
||||
// const removeToken = () => {
|
||||
// dispatch({type:CLEAR_TOKEN})
|
||||
// }
|
||||
|
||||
// const removeSessionKey = () => {
|
||||
// dispatch({type:CLEAR_SESSIONKEY})
|
||||
// }
|
||||
|
||||
// return {
|
||||
// setToken,
|
||||
// setUserInfo,
|
||||
// setAdminUserInfo,
|
||||
// setSessionKey,
|
||||
// removeUserInfo,
|
||||
// removeToken,
|
||||
// removeSessionKey,
|
||||
// setSortCode,
|
||||
// userInfo, //响应式数据返回
|
||||
// }
|
||||
}
|
||||
Reference in New Issue
Block a user