修复部分bug

This commit is contained in:
2022-07-07 20:32:59 +08:00
parent d3a7fd9913
commit 3637447ab6
22 changed files with 262 additions and 318 deletions
+47 -88
View File
@@ -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, //响应式数据返回
// }
}