import { PageContainer, Switch, Text, View, Image } from '@tarojs/components' import './DayNightCard.scss' import { ColorType } from '@/context/themes/color' import { useEffect, useState } from 'react' import Box from '@/components/layout/Box' import Taro, { useDidShow } from '@tarojs/taro' import { clearLocation, getPerm, latestLocation, uploadPerm } from '@/services/user' import { useDispatch, useSelector } from 'react-redux' import { useTranslation } from 'react-i18next' import { TimeFormatter } from '@/utils/time_format' import { systemLocation } from '@/services/common' import { setDayRingData, showDay } from '@/store/day' import { setNightRingData, showNight, updateMember } from '@/store/night' import Modal from '@/components/layout/Modal.weapp' import { rpxToPx } from '@/utils/tools' import { jumpPage } from '@/features/trackTimeDuration/hooks/Common' import DayNightDetailPopup from './DayNightDetailPopup' import { IconDay, IconInfo, IconNight } from '@/components/basic/Icons' import { getClocks } from '@/services/trackTimeDuration' import { request } from '@/services/http/request' import { API_USER_LOCATION } from '@/services/http/api' let useNavigation; if (process.env.TARO_ENV == 'rn') { useNavigation = require("@react-navigation/native").useNavigation } let locationDetail; let sunriseA = new Date() sunriseA.setHours(6) sunriseA.setMinutes(0) sunriseA.setSeconds(0) sunriseA.setMilliseconds(0) const sunsetA = new Date() sunsetA.setHours(18) sunsetA.setMinutes(0) sunsetA.setSeconds(0) sunsetA.setMilliseconds(0) const sunriseB = new Date() sunriseB.setHours(6) sunriseB.setMinutes(0) sunriseB.setSeconds(0) sunriseB.setMilliseconds(0) let lastDayInfo: any = null; let lastNightInfo: any = null; let joingMember = false export default function DayNightCard(props: { isNight: boolean, count: number }) { const user = useSelector((state: any) => state.user); const dayStore = useSelector((state: any) => state.day); const nightStore = useSelector((state: any) => state.night); const [authInfo, setAuthInfo] = useState(global.locationDetail ? global.locationDetail : null) const [sunriseTime, setSunriseTime] = useState('06:00') const [sunriseTmrTime, setSunriseTmrTime] = useState('06:00') const [sunsetTime, setSunsetTime] = useState('18:00') const [sunriseDate, setSunriseDate] = useState(sunriseA) const [sunriseTmrDate, setSunriseTmrDate] = useState(new Date(sunriseB.getTime() + 24 * 3600 * 1000)) const [sunsetDate, setSunsetDate] = useState(sunsetA) const [showDetailModal, setShowDetailModal] = useState(false) const [showDetailPopup, setShowDetailPopup] = useState(false) // const [locationDetail, setLocationDetail] = useState(null) const [nightDate, setNightDate] = useState(new Date()) const [dayDate, setDayDate] = useState(new Date()) const dispatch = useDispatch(); const { t } = useTranslation() const isMember = true; let navigation; if (useNavigation) { navigation = useNavigation() } useEffect(() => { if (user.isLogin) { if (global.locationDetail) { locationDetail = global.locationDetail setAuthInfo(locationDetail) } var today = new Date() var yesterday = new Date(today.getTime() - 24 * 3600 * 1000) var tomorrow = new Date(today.getTime() + 24 * 3600 * 1000 * 3) var strYesterday = `${yesterday.getFullYear()}-${TimeFormatter.padZero(yesterday.getMonth() + 1)}-${TimeFormatter.padZero(yesterday.getDate())}` var strTomorrow = `${tomorrow.getFullYear()}-${TimeFormatter.padZero(tomorrow.getMonth() + 1)}-${TimeFormatter.padZero(tomorrow.getDate())}` latestLocation({ date_start: strYesterday, date_end: strTomorrow }).then(data => { setAuthInfo(data as any) updateDate(data) locationDetail = data global.locationDetail = locationDetail Taro.setStorage({ key: 'gps', data: JSON.stringify(data as any) }) }) } else { setSunriseTime('06:00'); setSunriseTmrTime('06:00') setSunsetTime('18:00') setSunriseDate(sunriseA) setSunriseTmrDate(new Date(sunriseB.getTime() + 24 * 3600 * 1000)) setSunsetDate(sunsetA) } }, [user.isLogin]) useEffect(() => { locationDetail = global.locationDetail setAuthInfo(locationDetail) }, [global.locationDetail]) useEffect(() => { if (locationDetail) updateDate(locationDetail) if (props.isNight) { global.clearNightLocation = () => { clearCacheData() } } else { global.clearDayLocation = () => { clearCacheData() } } }, []) useEffect(() => { if (locationDetail) { var detail: any = locationDetail var now = new Date() if (now.getHours() == 0 && now.getMinutes() == 0 && now.getSeconds() == 0) { detail.daylights.splice(0, 1) } locationDetail = detail // setLocationDetail(detail) updateDate(detail) } }, [props.count]) useEffect(() => { // if (user.test_user && joingMember) { // auth() // } if (!isMember) { lastNightInfo = null lastDayInfo = null locationDetail = null setAuthInfo(null) setSunriseTime('06:00') setSunriseTmrTime('06:00') setSunsetTime('18:00') dispatch(updateMember({ isMember: isMember, gpsInfo: null })) dispatch(setDayRingData({ date: new Date().getTime(), sunrise: '06:00', sunset: '18:00' })) dispatch(setNightRingData({ date: new Date().getTime(), sunrise: '06:00', sunset: '18:00' })) } else { getGPSCache() } }, [user.test_user]) useDidShow(() => { if (!user.isLogin) { dispatch(showNight(false)) dispatch(showDay(false)) Taro.setStorage({ key: 'showNightRing', data: false }) Taro.setStorage({ key: 'showDayRing', data: false }) } }) async function getGPSCache() { var gps = await getStorage('gps') if (gps && gps.length > 0) { locationDetail = JSON.parse(gps) global.locationDetail = JSON.parse(gps) } } async function getStorage(key: string) { try { const res = await Taro.getStorage({ key }); return res.data; } catch { return ''; } } function updateDate(data) { var today = new Date() // var yesterday = new Date(today.getTime() - 24 * 3600 * 1000) var tomorrow = new Date(today.getTime() + 24 * 3600 * 1000) // var strYesterday = `${yesterday.getFullYear()}-${TimeFormatter.padZero(yesterday.getMonth() + 1)}-${TimeFormatter.padZero(yesterday.getDate())}` // var strTomorrow = `${tomorrow.getFullYear()}-${TimeFormatter.padZero(tomorrow.getMonth() + 1)}-${TimeFormatter.padZero(tomorrow.getDate())}` if (isMember && data && data.daylights && data.daylights.length > 0) { var yesterdayDate = new Date(data.daylights[0].date + 'T' + data.daylights[0].sunset) var todaySunriseDate = new Date(data.daylights[1].date + 'T' + data.daylights[1].sunrise) var todaySunsetDate = new Date(data.daylights[1].date + 'T' + data.daylights[1].sunset) var tomorrowSunriseDate = new Date(data.daylights[2].date + 'T' + data.daylights[2].sunrise) var tomorrowSunsetDate = new Date(data.daylights[2].date + 'T' + data.daylights[2].sunset) // var tomorrowSunsetDate = new Date(data.daylights[2].date + 'T' + data.daylights[2].sunset) //今天凌晨日出前 if (yesterdayDate.getTime() < today.getTime() && today.getTime() < todaySunriseDate.getTime()) { setNightDate(yesterdayDate) setDayDate(today) if (props.isNight) { setSunsetTime(data.daylights[0].sunset) setSunriseTmrTime(data.daylights[1].sunrise) setSunsetDate(yesterdayDate) setSunriseTmrDate(todaySunriseDate) } else { setSunriseTime(data.daylights[1].sunrise) setSunsetTime(data.daylights[1].sunset) setSunriseDate(todaySunriseDate) setSunsetDate(todaySunsetDate) } updateNightStore(yesterdayDate, data.daylights[1].sunrise, data.daylights[0].sunset) updateDayStore(today, data.daylights[1].sunrise, data.daylights[1].sunset) } //今天白天(今天出日后-日落前) else if (todaySunriseDate.getTime() < today.getTime() && today.getTime() < todaySunsetDate.getTime()) { setNightDate(todaySunsetDate) setDayDate(todaySunriseDate) if (props.isNight) { setSunsetTime(data.daylights[1].sunset) setSunriseTmrTime(data.daylights[2].sunrise) setSunsetDate(todaySunsetDate) setSunriseTmrDate(tomorrowSunriseDate) } else { setSunriseTime(data.daylights[1].sunrise) setSunsetTime(data.daylights[1].sunset) setSunsetDate(todaySunsetDate) setSunriseDate(todaySunriseDate) } updateNightStore(today, data.daylights[2].sunrise, data.daylights[1].sunset) updateDayStore(today, data.daylights[1].sunrise, data.daylights[1].sunset) } //今天夜晚 else if (today.getTime() > todaySunsetDate.getTime() && today.getTime() < tomorrowSunriseDate.getTime()) { setNightDate(todaySunsetDate) setDayDate(tomorrowSunriseDate) if (props.isNight) { setSunsetTime(data.daylights[1].sunset) setSunriseTmrTime(data.daylights[2].sunrise) setSunsetDate(todaySunsetDate) setSunriseTmrDate(tomorrowSunriseDate) } else { setSunriseTime(data.daylights[2].sunrise) setSunsetTime(data.daylights[2].sunset) setSunriseDate(tomorrowSunriseDate) setSunsetDate(tomorrowSunsetDate) } updateNightStore(today, data.daylights[2].sunrise, data.daylights[1].sunset) updateDayStore(tomorrowSunriseDate, data.daylights[2].sunrise, data.daylights[2].sunset) } } else { locationDetail = null setAuthInfo(null) setSunriseTime('06:00') setSunriseTmrTime('06:00') setSunsetTime('18:00') dispatch(updateMember({ isMember: isMember, gpsInfo: null })) dispatch(setDayRingData({ date: new Date().getTime(), sunrise: '06:00', sunset: '18:00' })) dispatch(setNightRingData({ date: new Date().getTime(), sunrise: '06:00', sunset: '18:00' })) } } function updateNightStore(date, sunrise, sunset) { if (lastNightInfo && lastNightInfo.date.getDate() == new Date(date).getDate() && lastNightInfo.sunrise == sunrise && lastNightInfo.sunset == sunset ) { return } lastNightInfo = { date, sunrise, sunset } dispatch(setNightRingData({ date: date.getTime(), sunrise: sunrise, sunset: sunset })) } function updateDayStore(date, sunrise, sunset) { if (lastDayInfo && lastDayInfo.date.getDate() == new Date(date).getDate() && lastDayInfo.sunrise == sunrise && lastDayInfo.sunset == sunset ) { return } lastDayInfo = { date, sunrise, sunset } dispatch(setDayRingData({ date: date.getTime(), sunrise: sunrise, sunset: sunset })) } function tapCard(e) { // if (process.env.TARO_ENV == 'weapp') { // e.stopPropagation() // } if (!user.isLogin) { jumpPage('/pages/account/ChooseAuth', 'ChooseAuth', navigation) return } if (!dayStore.showDayRing) { return } setShowDetailPopup(true) } function auth(e?: any) { if (e && process.env.TARO_ENV == 'weapp') { e.stopPropagation() } var today = new Date() var yesterday = new Date(today.getTime() - 24 * 3600 * 1000) var tomorrow = new Date(today.getTime() + 24 * 3600 * 1000 * 3) var strYesterday = `${yesterday.getFullYear()}-${TimeFormatter.padZero(yesterday.getMonth() + 1)}-${TimeFormatter.padZero(yesterday.getDate())}` var strTomorrow = `${tomorrow.getFullYear()}-${TimeFormatter.padZero(tomorrow.getMonth() + 1)}-${TimeFormatter.padZero(tomorrow.getDate())}` // systemLocation({ // lat: 77, // lng: 20, // date_start: strYesterday, // date_end: strTomorrow, // coordinate_system_standard: 'GCJ-02' // }).then(data => { // }) // return if (process.env.TARO_ENV == 'rn') { Taro.getLocation({ success(res) { systemLocation({ lat: res.latitude, lng: res.longitude, // name: 'app test', // address: 'app test', date_start: strYesterday, date_end: strTomorrow, // coordinate_system_standard: 'GCJ-02' }).then(data => { console.log('get Location',data) updateDate(data); locationDetail = data; global.locationDetail = locationDetail setAuthInfo(data as any) setSunriseTime((data as any).daylights[0].sunrise) setSunriseTmrTime((data as any).daylights[1].sunrise) setSunsetTime((data as any).daylights[0].sunset) Taro.setStorage({ key: 'gps', data: JSON.stringify(data as any) }) dispatch(updateMember({ isMember: isMember, gpsInfo: (data as any) })) showRing() }) }, fail(res) { if (res.errMsg == 'Permissions denied!') { alert('aaa') } console.log(res) showRing() }, complete(res) { } }) return } joingMember = false; Taro.chooseLocation({ latitude: authInfo && authInfo.lat ? authInfo.lat : undefined, longitude: authInfo && authInfo.lat ? authInfo.lng : undefined, success: function (res) { systemLocation({ lat: res.latitude, lng: res.longitude, name: res.name, address: res.address, date_start: strYesterday, date_end: strTomorrow, coordinate_system_standard: 'GCJ-02' }).then(data => { updateDate(data); locationDetail = data; global.locationDetail = locationDetail setAuthInfo(data as any) setSunriseTime((data as any).daylights[0].sunrise) setSunriseTmrTime((data as any).daylights[1].sunrise) setSunsetTime((data as any).daylights[0].sunset) Taro.setStorage({ key: 'gps', data: JSON.stringify(data as any) }) showRing() dispatch(updateMember({ isMember: isMember, gpsInfo: (data as any) })) }) }, fail(res) { Taro.showToast({ title: '位置修改失败!\n请重新选择就近位置', icon: 'none' }) showRing() }, complete(res) { } }) } function showRing() { dispatch(showNight(true)) dispatch(showDay(true)) Taro.setStorage({ key: 'showNightRing', data: true }) Taro.setStorage({ key: 'showDayRing', data: true }) } function getLocation() { var city = '' if ((authInfo as any).address){ if ((authInfo as any).address.city.length > 0) { city = (authInfo as any).address.city } else if ((authInfo as any).address.province.length > 0) { city = (authInfo as any).address.province } else if ((authInfo as any).address.country.length > 0) { city = (authInfo as any).address.country } else { city = t('feature.track_time_duration.third_ring.unknown') } } else { city = t('feature.track_time_duration.third_ring.unknown') } // return city +' | '+parseInt(authInfo.lat)+'°'+ ' '+parseInt(authInfo.lng) return `${city} | ${Math.abs(parseInt(authInfo.lat))}°${parseInt(authInfo.lat) < 0 ? 'S' : 'N'} ${Math.abs(parseInt(authInfo.lng))}°${parseInt(authInfo.lng) < 0 ? 'W' : 'E'}` } function clearData() { Taro.showModal({ title: '提示', content: '确认清除位置数据?', success: function (res) { if (res.confirm) { clearLocation().then(res => { if (global.clearNightLocation) { global.clearNightLocation() } if (global.clearDayLocation) { global.clearDayLocation() } lastNightInfo = null lastDayInfo = null }) } else if (res.cancel) { console.log('用户点击取消') } } }) } function clearCacheData() { locationDetail = null Taro.removeStorage({ key: 'gps' }) setAuthInfo(null) setSunriseTime('06:00') setSunriseTmrTime('06:00') setSunsetTime('18:00') dispatch(updateMember({ isMember: isMember, gpsInfo: null })) dispatch(setDayRingData({ date: new Date().getTime(), sunrise: '06:00', sunset: '18:00' })) dispatch(setNightRingData({ date: new Date().getTime(), sunrise: '06:00', sunset: '18:00' })) } function detailModalContent() { var split = new Date().toString().split(' '); var timezone = split[split.length - 2]; if (!authInfo || !(authInfo as any).lat) { return 暂无位置信息 } return { { {t('feature.track_time_duration.third_ring.location')} {authInfo ? getLocation() : t('feature.track_time_duration.third_ring.enter')} } { {t('feature.track_time_duration.third_ring.latitude')} {(authInfo as any).lat} } {t('feature.track_time_duration.third_ring.longitude')} {(authInfo as any).lng} {t('feature.track_time_duration.third_ring.timezone')} {timezone} } { clearData() setShowDetailModal(false) }} style={{ width: '100%', textAlign: 'center', marginBottom: 50, color: '#fff', marginTop: 20 }}>清除位置 } function modalContent2() { if (process.env.TARO_ENV == 'weapp') { return { setShowDetailModal(false) }} confirm={() => { }}> { detailModalContent() } } else if (process.env.TARO_ENV == 'rn') { return { }} onBeforeLeave={() => { }} onClick={() => { alert('b') }} onClickOverlay={() => { alert('a') }} onAfterLeave={() => { setShowDetailModal(false) }} show={showDetailModal} round={true} overlay={true} position='bottom' > { detailModalContent() } } } function modalContent() { if (process.env.TARO_ENV == 'weapp') { return { setShowDetailPopup(false) }} confirm={() => { }}> { setShowDetailPopup(false) }} /> } else if (process.env.TARO_ENV == 'rn') { return { }} onBeforeLeave={() => { }} onClick={() => { alert('b') }} onClickOverlay={() => { alert('a') }} onAfterLeave={() => { setShowDetailPopup(false) }} show={showDetailModal} round={true} overlay={true} position='bottom' > { setShowDetailPopup(false) }} /> } } function nightDuration() { if (!authInfo || !(authInfo as any).lat) { if (new Date().getHours() >= 6) { return `${t('feature.day_night.tonight')} ${sunsetTime} - ${t('feature.day_night.tomorrow_morning')} ${sunriseTmrTime}` } return `${t('feature.day_night.last_night')} ${sunsetTime} - ${t('feature.day_night.this_morning')} ${sunriseTmrTime}` // return `Yesterday ${sunsetTime} - Today ${sunriseTmrTime}` } if (nightDate.getDate() == new Date().getDate()) { return `${t('feature.day_night.tonight')} ${sunsetTime.substring(0, 5)} - ${t('feature.day_night.tomorrow_morning')} ${sunriseTmrTime.substring(0, 5)}` } return `${t('feature.day_night.last_night')} ${sunsetTime.substring(0, 5)} - ${t('feature.day_night.this_morning')} ${sunriseTmrTime.substring(0, 5)}` //`Yesterday ${sunsetTime} - Today ${sunriseTmrTime}` } function getSunsetTime() { if (props.isNight) { if (!authInfo || !(authInfo as any).lat) { if (new Date().getHours() >= 6) { return `${t('feature.day_night.tonight')} ${sunsetTime}` } return `${t('feature.day_night.last_night')} ${sunsetTime}` // return `Yesterday ${sunsetTime} - Today ${sunriseTmrTime}` } if (nightDate.getDate() == new Date().getDate()) { return `${t('feature.day_night.tonight')} ${sunsetTime.substring(0, 5)}` } return `${t('feature.day_night.last_night')} ${sunsetTime.substring(0, 5)}` } if (!authInfo || !(authInfo as any).lat) { if (new Date().getHours() >= 18) { return `${t('feature.day_night.tomorrow')} ${sunriseTime}` // return `Tomorrow ${sunriseTime} - ${sunsetTime}` } return `${t('feature.day_night.today')} ${sunriseTime}` // return `Today ${sunriseTime} - ${sunsetTime}` } if (dayDate.getDate() == new Date().getDate()) { return `${t('feature.day_night.today')} ${sunriseTime.substring(0, 5)}` // return `Today ${sunriseTime} - ${sunsetTime}` } return `${t('feature.day_night.tomorrow')} ${sunriseTime.substring(0, 5)}` } function getSunriseTime() { if (props.isNight) { if (!authInfo || !(authInfo as any).lat) { if (new Date().getHours() >= 6) { return `${t('feature.day_night.tomorrow_morning')} ${sunriseTmrTime}` } return `${t('feature.day_night.this_morning')} ${sunriseTmrTime}` // return `Yesterday ${sunsetTime} - Today ${sunriseTmrTime}` } if (nightDate.getDate() == new Date().getDate()) { return `${t('feature.day_night.tomorrow_morning')} ${sunriseTmrTime.substring(0, 5)}` } return `${t('feature.day_night.this_morning')} ${sunriseTmrTime.substring(0, 5)}` } if (!authInfo || !(authInfo as any).lat) { if (new Date().getHours() >= 18) { return `${t('feature.day_night.tomorrow')} ${sunsetTime}` // return `Tomorrow ${sunriseTime} - ${sunsetTime}` } return `${t('feature.day_night.today')} ${sunsetTime}` // return `Today ${sunriseTime} - ${sunsetTime}` } if (dayDate.getDate() == new Date().getDate()) { return `${t('feature.day_night.today')} ${sunsetTime.substring(0, 5)}` // return `Today ${sunriseTime} - ${sunsetTime}` } return `${t('feature.day_night.tomorrow')} ${sunsetTime.substring(0, 5)}` } function dayDuration() { if (!authInfo || !(authInfo as any).lat) { if (new Date().getHours() >= 18) { return `${t('feature.day_night.tomorrow')} ${sunriseTime} - ${sunsetTime}` // return `Tomorrow ${sunriseTime} - ${sunsetTime}` } return `${t('feature.day_night.today')} ${sunriseTime} - ${sunsetTime}` // return `Today ${sunriseTime} - ${sunsetTime}` } if (dayDate.getDate() == new Date().getDate()) { return `${t('feature.day_night.today')} ${sunriseTime.substring(0, 5)} - ${sunsetTime.substring(0, 5)}` // return `Today ${sunriseTime} - ${sunsetTime}` } return `${t('feature.day_night.tomorrow')} ${sunriseTime.substring(0, 5)} - ${sunsetTime.substring(0, 5)}` // return `Tomorrow ${sunriseTime} - ${sunsetTime}` } function nightDurationDesc1() { if (authInfo && authInfo.lat) { return t('feature.day_night.sunset_to_sunrise') } return t('feature.day_night.night_tip') } function dayDurationDesc1() { if (authInfo && authInfo.lat) { return t('feature.day_night.sunrise_to_sunset') } return t('feature.day_night.day_tip') } function longClick() { if (user.isLogin && user.test_user && authInfo) setShowDetailModal(true) } function showLocationAlert(e) { if (process.env.TARO_ENV == 'weapp') { e.stopPropagation() } if (isMember && authInfo && authInfo.lat) { tapCard(e) return } Taro.showModal({ title: props.isNight ? t('feature.day_night.alert_required_night') : t('feature.day_night.alert_required_day'), content: props.isNight ? t('feature.day_night.alert_night_content') : t('feature.day_night.alert_day_content'), confirmText: t('feature.day_night.choose_location'), cancelText: t('feature.day_night.view_more'), success: function (res) { if (res.confirm) { auth() // console.log('用户点击确定') } else if (res.cancel) { setShowDetailPopup(true) } } }) } function tapShow() { dispatch(showNight(true)) dispatch(showDay(true)) Taro.showModal({ title: 'Login Required', content: props.isNight ? 'Log in to see your daily local nighttime from sunset to sunrise.' : 'Log in to see your daily local daytime from sunrise to sunset.', cancelText: 'Later', confirmText: 'Login', success: function (res) { if (res.confirm) { Taro.setStorage({ key: 'showNightRing', data: true }) Taro.setStorage({ key: 'showDayRing', data: true }) if (!user.isLogin) { jumpPage('/pages/account/ChooseAuth', 'ChooseAuth', navigation) return } } else if (res.cancel) { dispatch(showNight(false)) dispatch(showDay(false)) Taro.setStorage({ key: 'showNightRing', data: false }) Taro.setStorage({ key: 'showDayRing', data: false }) } } }) } function operate(e) { if (process.env.TARO_ENV == 'weapp') { e.stopPropagation() } Taro.showActionSheet({ itemList: ['选择位置', '重置'], success: function (res) { switch (res.tapIndex) { case 0: auth() break; case 1: reset() break; } }, fail: function (res) { console.log(res.errMsg) } }) } function reset() { var content = '' if (props.isNight) { if (authInfo && authInfo.lat) { content = 'Local times for sunset and sunrise, together with the nighttime ring will turn off, and your location data will be cleared. ' } else { content = 'Sunset and sunrise times, together with the nighttime ring will turn off.' } } else { if (authInfo && authInfo.lat) { content = 'Local times for sunrise and sunset, together with the daytime ring will turn off, and your location data will be cleared. ' } else { content = 'Sunrise and sunset times, together with the daytime ring will turn off.' } } Taro.showModal({ title: 'Reset Alert', content: content, success: function (res) { if (res.confirm) { if (user.isLogin) { uploadPerm({ show_ring: false }) } clearLocation().then(res => { if (global.clearNightLocation) { global.clearNightLocation() } if (global.clearDayLocation) { global.clearDayLocation() } lastNightInfo = null lastDayInfo = null dispatch(showNight(false)) dispatch(showDay(false)) Taro.setStorage({ key: 'showNightRing', data: false }) Taro.setStorage({ key: 'showDayRing', data: false }) }) } else if (res.cancel) { console.log('用户点击取消') } } }) } // return // { // !user.isLogin && {props.isNight ? '显示当地夜晚时间' : '显示当地白天时间'} // } // { // user.isLogin && !dayStore.showDayRing && {props.isNight ? '显示当地夜晚时间' : '显示当地白天时间'} // } // { // user.isLogin && dayStore.showDayRing && // {props.isNight ? nightDuration() : dayDuration()} // {props.isNight ? nightDurationDesc1() : dayDurationDesc1()} // // // // // // // {props.isNight ? '日落' : '日出'} // {props.isNight ? getSunsetTime() : getSunriseTime()} // {!props.isNight ? '日落' : '日出'} // {!props.isNight ? getSunsetTime() : getSunriseTime()} // // // { // authInfo && authInfo.lat ? // // {getLocation()} // // : // // // {props.isNight ? t('feature.day_night.get_local_time') : t('feature.day_night.get_local_time_sunrise')} // // // } // // } // { // showDetailPopup && modalContent() // } // { // showDetailModal && modalContent2() // } // return { user.isLogin ? {props.isNight ? t('feature.day_night.night_ring_login') : t('feature.day_night.day_ring_login')} : {props.isNight ? t('feature.day_night.night_ring') : t('feature.day_night.day_ring')} } { user.isLogin && {t('feature.day_night.limited_free')} } { e.stopPropagation() }} onChange={(e) => { if (process.env.TARO_ENV == 'weapp') { e.stopPropagation() } dispatch(showNight(e.detail.value)) dispatch(showDay(e.detail.value)) Taro.setStorage({ key: 'showNightRing', data: e.detail.value }) Taro.setStorage({ key: 'showDayRing', data: e.detail.value }) if (user.isLogin) { uploadPerm({ show_ring: e.detail.value }) } else { if (e.detail.value) { setTimeout(() => { Taro.showModal({ title: props.isNight ? t('feature.day_night.night_alert_title') : t('feature.day_night.day_alert_title'), content: props.isNight ? t('feature.day_night.night_alert_content') : t('feature.day_night.day_alert_content'), showCancel: false, confirmText: t('feature.day_night.got_it') }) }, 500) } } }} /> { user.isLogin && dayStore.showDayRing && { props.isNight ? : } {props.isNight ? nightDuration() : dayDuration()} {props.isNight ? nightDurationDesc1() : dayDurationDesc1()} { authInfo && authInfo.lat ? {getLocation()} : {props.isNight ? t('feature.day_night.get_local_time') : t('feature.day_night.get_local_time_sunrise')} } } { showDetailPopup && modalContent() } { showDetailModal && modalContent2() } }