|
@@ -6,11 +6,11 @@ import { useEffect, useState } from "react";
|
|
|
import Taro, { useRouter, useShareAppMessage } from "@tarojs/taro";
|
|
import Taro, { useRouter, useShareAppMessage } from "@tarojs/taro";
|
|
|
import dayjs from "dayjs";
|
|
import dayjs from "dayjs";
|
|
|
import { getScenario, getThemeColor } from "@/features/health/hooks/health_hooks";
|
|
import { getScenario, getThemeColor } from "@/features/health/hooks/health_hooks";
|
|
|
-import { baseUrl } from "@/services/http/api";
|
|
|
|
|
|
|
+import { baseUrl, SHARE_COVER_URL } from "@/services/http/api";
|
|
|
import { checkAuthorized } from "@/utils/check_authorized";
|
|
import { checkAuthorized } from "@/utils/check_authorized";
|
|
|
import { createMoment, delEvents, delRecord, getEvents, getRecordDetail, makeDone } from "@/services/health";
|
|
import { createMoment, delEvents, delRecord, getEvents, getRecordDetail, makeDone } from "@/services/health";
|
|
|
import NewButton, { NewButtonType } from "../base/new_button";
|
|
import NewButton, { NewButtonType } from "../base/new_button";
|
|
|
-import { IconClose, IconLongFast, IconShare } from "@/components/basic/Icons";
|
|
|
|
|
|
|
+import { IconClose, IconError, IconLongFast, IconShare } from "@/components/basic/Icons";
|
|
|
import { rpxToPx, vibrate } from "@/utils/tools";
|
|
import { rpxToPx, vibrate } from "@/utils/tools";
|
|
|
import { MainColorType } from "@/context/themes/color";
|
|
import { MainColorType } from "@/context/themes/color";
|
|
|
import NewModal from "../base/new_modal";
|
|
import NewModal from "../base/new_modal";
|
|
@@ -62,6 +62,7 @@ export default function TimelineDetail() {
|
|
|
const [count, setCount] = useState(0)
|
|
const [count, setCount] = useState(0)
|
|
|
const [fastSleepPop, setFastSleepPop] = useState(false)
|
|
const [fastSleepPop, setFastSleepPop] = useState(false)
|
|
|
const [shareUser, setShareUser] = useState<any>(null)
|
|
const [shareUser, setShareUser] = useState<any>(null)
|
|
|
|
|
+ const [showEmpty, setShowEmpty] = useState(false)
|
|
|
const dispatch = useDispatch()
|
|
const dispatch = useDispatch()
|
|
|
|
|
|
|
|
const { t } = useTranslation()
|
|
const { t } = useTranslation()
|
|
@@ -78,41 +79,48 @@ export default function TimelineDetail() {
|
|
|
router = useRouter()
|
|
router = useRouter()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- const { schedule_id, event_id, window_id, isfastsleep, islongfast, disable_edit, uid } = router.params
|
|
|
|
|
|
|
+ const { schedule_id, event_id, window_id, isfastsleep, fast_type, disable_edit, uid } = router.params
|
|
|
|
|
|
|
|
|
|
|
|
|
if (process.env.TARO_ENV == 'weapp') {
|
|
if (process.env.TARO_ENV == 'weapp') {
|
|
|
|
|
|
|
|
useShareAppMessage((e) => {
|
|
useShareAppMessage((e) => {
|
|
|
var title = ''
|
|
var title = ''
|
|
|
|
|
+ var defaultImg = SHARE_COVER_URL + 'my_fast.jpg'
|
|
|
if (isfastsleep == '1') {
|
|
if (isfastsleep == '1') {
|
|
|
title = t('health.share_my_fast_sleep')
|
|
title = t('health.share_my_fast_sleep')
|
|
|
|
|
+ defaultImg = SHARE_COVER_URL + 'my_fast_with_sleep.jpg'
|
|
|
}
|
|
}
|
|
|
- else if (islongfast == '1') {
|
|
|
|
|
|
|
+ else if (fast_type == 'LF') {
|
|
|
title = t('health.share_my_long_fast')
|
|
title = t('health.share_my_long_fast')
|
|
|
|
|
+ defaultImg = SHARE_COVER_URL + 'my_long_fast.jpg'
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
switch (health.mode) {
|
|
switch (health.mode) {
|
|
|
case 'FAST':
|
|
case 'FAST':
|
|
|
title = t('health.share_my_fasting')
|
|
title = t('health.share_my_fasting')
|
|
|
|
|
+ defaultImg = SHARE_COVER_URL + 'my_fast.jpg'
|
|
|
break;
|
|
break;
|
|
|
case 'EAT':
|
|
case 'EAT':
|
|
|
title = t('health.share_my_eating')
|
|
title = t('health.share_my_eating')
|
|
|
|
|
+ defaultImg = SHARE_COVER_URL + 'my_meal.jpg'
|
|
|
break;
|
|
break;
|
|
|
case 'ACTIVE':
|
|
case 'ACTIVE':
|
|
|
title = t('health.share_my_activity')
|
|
title = t('health.share_my_activity')
|
|
|
|
|
+ defaultImg = SHARE_COVER_URL + 'my_activity.jpg'
|
|
|
break;
|
|
break;
|
|
|
case 'SLEEP':
|
|
case 'SLEEP':
|
|
|
title = t('health.share_my_sleep')
|
|
title = t('health.share_my_sleep')
|
|
|
|
|
+ defaultImg = SHARE_COVER_URL + 'my_sleep.jpg'
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
var imgs = imgList()
|
|
var imgs = imgList()
|
|
|
- var imageUrl = imgs.length > 0 ? imgs[0] : 'https://background-pictures.oss-cn-beijing.aliyuncs.com/windows/eat2.jpg'
|
|
|
|
|
|
|
+ var imageUrl = imgs.length > 0 ? imgs[0] : defaultImg
|
|
|
return {
|
|
return {
|
|
|
title: title,
|
|
title: title,
|
|
|
- path: `/_health/pages/timeline_detail?type=${router.params.type}&schedule_id=${schedule_id}&window_id=${window_id}&event_id=${event_id}&uid=${uid ?? user.id}&isfastsleep=${isfastsleep}&disable_edit=1&enter_type=share`,
|
|
|
|
|
|
|
+ path: `/_health/pages/timeline_detail?type=${router.params.type}&fast_type=${fast_type}&schedule_id=${schedule_id}&window_id=${window_id}&event_id=${event_id}&uid=${uid ?? user.id}&isfastsleep=${isfastsleep}&disable_edit=1&enter_type=share`,
|
|
|
imageUrl: imageUrl
|
|
imageUrl: imageUrl
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
@@ -201,6 +209,9 @@ export default function TimelineDetail() {
|
|
|
if ((res as any).share_user) {
|
|
if ((res as any).share_user) {
|
|
|
setShareUser((res as any).share_user)
|
|
setShareUser((res as any).share_user)
|
|
|
}
|
|
}
|
|
|
|
|
+ }).catch(e => {
|
|
|
|
|
+ setLoaded(true)
|
|
|
|
|
+ setShowEmpty(true)
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
@@ -218,6 +229,9 @@ export default function TimelineDetail() {
|
|
|
if ((res as any).share_user) {
|
|
if ((res as any).share_user) {
|
|
|
setShareUser((res as any).share_user)
|
|
setShareUser((res as any).share_user)
|
|
|
}
|
|
}
|
|
|
|
|
+ }).catch(e => {
|
|
|
|
|
+ setLoaded(true)
|
|
|
|
|
+ setShowEmpty(true)
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -587,73 +601,74 @@ export default function TimelineDetail() {
|
|
|
|
|
|
|
|
|
|
|
|
|
return <View style={{ display: 'flex', flex: 1, flexDirection: 'column', backgroundColor: '#fff', height: '101vh' }}>
|
|
return <View style={{ display: 'flex', flex: 1, flexDirection: 'column', backgroundColor: '#fff', height: '101vh' }}>
|
|
|
- <View className="detail_header">
|
|
|
|
|
- <Image className="detail_header_header"
|
|
|
|
|
- src={shareUser ? shareUser.avatar : user.avatar}
|
|
|
|
|
- mode="aspectFill"
|
|
|
|
|
- />
|
|
|
|
|
- <View className="detail_header_content">
|
|
|
|
|
- <Text className="detail_nickname">{shareUser ? shareUser.nickname : user.nickname}</Text>
|
|
|
|
|
- {
|
|
|
|
|
- (!window_id || window_id == 'undefined') && (detail.scenario != 'MEAL' && detail.scenario != 'ACTIVITY') &&
|
|
|
|
|
- <TimeTitleDesc
|
|
|
|
|
- timeObj={detail.time}
|
|
|
|
|
- time={dayjs(detail.time.timestamp).format('HH:mm')}
|
|
|
|
|
- title={detail.title}
|
|
|
|
|
- />
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- !window_id && detail.scenario == 'ACTIVITY' && !list &&
|
|
|
|
|
- <TimeTitleDesc
|
|
|
|
|
- timeObj={detail.time}
|
|
|
|
|
- time={dayjs(detail.time.timestamp).format('HH:mm')}
|
|
|
|
|
- title={detail.title}
|
|
|
|
|
- />
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- list && list.map((item, index) => {
|
|
|
|
|
- return <View key={index} style={{ flexDirection: 'column', display: 'flex' }}>
|
|
|
|
|
- {
|
|
|
|
|
- (item.title || item.description) && <TimeTitleDesc
|
|
|
|
|
- showPoint={detail.show}
|
|
|
|
|
- timeObj={detail.time}
|
|
|
|
|
- time={dayjs(item.time.timestamp).format('HH:mm')}
|
|
|
|
|
- title={item.title}
|
|
|
|
|
- desc={item.description}
|
|
|
|
|
- />
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- </View>
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- history && history.map((item, index) => {
|
|
|
|
|
- return <View key={index} style={{ flexDirection: 'column', display: 'flex' }}>
|
|
|
|
|
- {
|
|
|
|
|
- item.show && <TimeTitleDesc
|
|
|
|
|
- timeObj={item.time}
|
|
|
|
|
- time={dayjs(item.time.timestamp).format('HH:mm')}
|
|
|
|
|
- title={item.title}
|
|
|
|
|
- dayTag={dayTag(item)}
|
|
|
|
|
- desc=''
|
|
|
|
|
- />
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- item.moments && item.moments.map((moment, j) => {
|
|
|
|
|
- return (moment.title || moment.description) && <View key={j * 10} style={{ flexDirection: 'column', display: 'flex' }}>
|
|
|
|
|
- <TimeTitleDesc
|
|
|
|
|
- showPoint={item.show}
|
|
|
|
|
- timeObj={moment.time}
|
|
|
|
|
- time={dayjs(moment.time.timestamp).format('HH:mm')}
|
|
|
|
|
- title={moment.title}
|
|
|
|
|
- dayTag={dayTag(moment)}
|
|
|
|
|
- desc={moment.description}
|
|
|
|
|
- />
|
|
|
|
|
- </View>
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ !showEmpty && <View className="detail_header">
|
|
|
|
|
+ <Image className="detail_header_header"
|
|
|
|
|
+ src={shareUser ? shareUser.avatar : user.avatar}
|
|
|
|
|
+ mode="aspectFill"
|
|
|
|
|
+ />
|
|
|
|
|
+ <View className="detail_header_content">
|
|
|
|
|
+ <Text className="detail_nickname">{shareUser ? shareUser.nickname : user.nickname}</Text>
|
|
|
|
|
+ {
|
|
|
|
|
+ (!window_id || window_id == 'undefined') && (detail.scenario != 'MEAL' && detail.scenario != 'ACTIVITY') &&
|
|
|
|
|
+ <TimeTitleDesc
|
|
|
|
|
+ timeObj={detail.time}
|
|
|
|
|
+ time={dayjs(detail.time.timestamp).format('HH:mm')}
|
|
|
|
|
+ title={detail.title}
|
|
|
|
|
+ />
|
|
|
|
|
+ }
|
|
|
|
|
+ {
|
|
|
|
|
+ !window_id && detail.scenario == 'ACTIVITY' && !list &&
|
|
|
|
|
+ <TimeTitleDesc
|
|
|
|
|
+ timeObj={detail.time}
|
|
|
|
|
+ time={dayjs(detail.time.timestamp).format('HH:mm')}
|
|
|
|
|
+ title={detail.title}
|
|
|
|
|
+ />
|
|
|
|
|
+ }
|
|
|
|
|
+ {
|
|
|
|
|
+ list && list.map((item, index) => {
|
|
|
|
|
+ return <View key={index} style={{ flexDirection: 'column', display: 'flex' }}>
|
|
|
|
|
+ {
|
|
|
|
|
+ (item.title || item.description) && <TimeTitleDesc
|
|
|
|
|
+ showPoint={detail.show}
|
|
|
|
|
+ timeObj={detail.time}
|
|
|
|
|
+ time={dayjs(item.time.timestamp).format('HH:mm')}
|
|
|
|
|
+ title={item.title}
|
|
|
|
|
+ desc={item.description}
|
|
|
|
|
+ />
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- {/* {
|
|
|
|
|
|
|
+ </View>
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ {
|
|
|
|
|
+ history && history.map((item, index) => {
|
|
|
|
|
+ return <View key={index} style={{ flexDirection: 'column', display: 'flex' }}>
|
|
|
|
|
+ {
|
|
|
|
|
+ item.show && <TimeTitleDesc
|
|
|
|
|
+ timeObj={item.time}
|
|
|
|
|
+ time={dayjs(item.time.timestamp).format('HH:mm')}
|
|
|
|
|
+ title={item.title}
|
|
|
|
|
+ dayTag={dayTag(item)}
|
|
|
|
|
+ desc=''
|
|
|
|
|
+ />
|
|
|
|
|
+ }
|
|
|
|
|
+ {
|
|
|
|
|
+ item.moments && item.moments.map((moment, j) => {
|
|
|
|
|
+ return (moment.title || moment.description) && <View key={j * 10} style={{ flexDirection: 'column', display: 'flex' }}>
|
|
|
|
|
+ <TimeTitleDesc
|
|
|
|
|
+ showPoint={item.show}
|
|
|
|
|
+ timeObj={moment.time}
|
|
|
|
|
+ time={dayjs(moment.time.timestamp).format('HH:mm')}
|
|
|
|
|
+ title={moment.title}
|
|
|
|
|
+ dayTag={dayTag(moment)}
|
|
|
|
|
+ desc={moment.description}
|
|
|
|
|
+ />
|
|
|
|
|
+ </View>
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ {/* {
|
|
|
item.moments && item.moments.map((moment, j) => {
|
|
item.moments && item.moments.map((moment, j) => {
|
|
|
return <View key={j * 10} style={{ flexDirection: 'column', display: 'flex' }}>
|
|
return <View key={j * 10} style={{ flexDirection: 'column', display: 'flex' }}>
|
|
|
<TimeTitleDesc
|
|
<TimeTitleDesc
|
|
@@ -675,10 +690,10 @@ export default function TimelineDetail() {
|
|
|
desc=''
|
|
desc=''
|
|
|
/>
|
|
/>
|
|
|
} */}
|
|
} */}
|
|
|
- </View>
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
- {/* {
|
|
|
|
|
|
|
+ </View>
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ {/* {
|
|
|
<View className="media" style={{ marginRight: mediaCount() == 4 ? 80 : 0, marginTop: rpxToPx(24) }}>
|
|
<View className="media" style={{ marginRight: mediaCount() == 4 ? 80 : 0, marginTop: rpxToPx(24) }}>
|
|
|
{
|
|
{
|
|
|
list && list.map(moment => {
|
|
list && list.map(moment => {
|
|
@@ -691,66 +706,84 @@ export default function TimelineDetail() {
|
|
|
|
|
|
|
|
</View>
|
|
</View>
|
|
|
} */}
|
|
} */}
|
|
|
- {
|
|
|
|
|
- mediaCount() > 1 && <View style={{ marginTop: rpxToPx(17), display: 'flex', flexShrink: 0 }}>
|
|
|
|
|
- <CoverList imgs={imgList()} count={mediaCount()} />
|
|
|
|
|
- </View>
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- mediaCount() == 1 && <View style={{ marginTop: rpxToPx(17), display: 'flex', flexShrink: 0 }}>
|
|
|
|
|
- <SingleImage url={imgList()[0]} />
|
|
|
|
|
- </View>
|
|
|
|
|
- }
|
|
|
|
|
- <View style={{ height: rpxToPx(17), flexShrink: 0, display: 'flex' }} />
|
|
|
|
|
-
|
|
|
|
|
- {
|
|
|
|
|
- isfastsleep == '0' && history && detail.windows && detail.windows.map((item, index) => {
|
|
|
|
|
- return <TargetProgress key={index} showLine={index < detail.windows.length - 1}
|
|
|
|
|
- onClick={() => {
|
|
|
|
|
- vibrate()
|
|
|
|
|
- }}
|
|
|
|
|
- color={getThemeColor(item.window)}
|
|
|
|
|
- showRing={detail.fast_type == 'LF' ? false : true}
|
|
|
|
|
- desc={item.description}
|
|
|
|
|
- icon={
|
|
|
|
|
- detail.fast_type == 'LF' ? <IconLongFast color={MainColorType.fast} width={rpxToPx(32)} /> : null
|
|
|
|
|
- }
|
|
|
|
|
- canvasId={`${item.window}${item.window_range.start_timestamp}${index}aa`}
|
|
|
|
|
- startTimestamp={item.window_range.start_timestamp}
|
|
|
|
|
- endTimerstamp={item.window_range.end_timestamp}
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ mediaCount() > 1 && <View style={{ marginTop: rpxToPx(17), display: 'flex', flexShrink: 0 }}>
|
|
|
|
|
+ <CoverList imgs={imgList()} count={mediaCount()} />
|
|
|
|
|
+ </View>
|
|
|
|
|
+ }
|
|
|
|
|
+ {
|
|
|
|
|
+ mediaCount() == 1 && <View style={{ marginTop: rpxToPx(17), display: 'flex', flexShrink: 0 }}>
|
|
|
|
|
+ <SingleImage url={imgList()[0]} />
|
|
|
|
|
+ </View>
|
|
|
|
|
+ }
|
|
|
|
|
+ <View style={{ height: rpxToPx(17), flexShrink: 0, display: 'flex' }} />
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ isfastsleep == '0' && history && detail.windows && detail.windows.map((item, index) => {
|
|
|
|
|
+ return <TargetProgress key={index} showLine={index < detail.windows.length - 1}
|
|
|
|
|
+ onClick={() => {
|
|
|
|
|
+ vibrate()
|
|
|
|
|
+ }}
|
|
|
|
|
+ color={getThemeColor(item.window)}
|
|
|
|
|
+ showRing={detail.fast_type == 'LF' ? false : true}
|
|
|
|
|
+ desc={item.description}
|
|
|
|
|
+ icon={
|
|
|
|
|
+ detail.fast_type == 'LF' ? <IconLongFast color={MainColorType.fast} width={rpxToPx(32)} /> : null
|
|
|
|
|
+ }
|
|
|
|
|
+ canvasId={`${item.window}${item.window_range.start_timestamp}${index}aa`}
|
|
|
|
|
+ startTimestamp={item.window_range.start_timestamp}
|
|
|
|
|
+ endTimerstamp={item.window_range.end_timestamp}
|
|
|
|
|
+ />
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ {
|
|
|
|
|
+ isfastsleep == '1' && history && detail.windows && detail.windows.length >= 2 && <TargetProgress
|
|
|
|
|
+ onClick={showFastSleepPopDetail}
|
|
|
|
|
+ showRing={true}
|
|
|
|
|
+ doubleRing={true}
|
|
|
|
|
+ first={detail.windows[0]}
|
|
|
|
|
+ second={detail.windows[1]}
|
|
|
|
|
+ canvasId={`double_${detail.windows[0].window_range.start_timestamp}`}
|
|
|
/>
|
|
/>
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- isfastsleep == '1' && history && detail.windows && detail.windows.length >= 2 && <TargetProgress
|
|
|
|
|
- onClick={showFastSleepPopDetail}
|
|
|
|
|
- showRing={true}
|
|
|
|
|
- doubleRing={true}
|
|
|
|
|
- first={detail.windows[0]}
|
|
|
|
|
- second={detail.windows[1]}
|
|
|
|
|
- canvasId={`double_${detail.windows[0].window_range.start_timestamp}`}
|
|
|
|
|
- />
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- publish && <View style={{ display: 'flex', flexDirection: 'row', height: rpxToPx(60), marginTop: rpxToPx(17), alignItems: 'center' }}>
|
|
|
|
|
- {/* <Text className="h24 g02">{publish.edited ? '编辑于' : '发布于'}{dayjs(publish.timestamp).format('M月D日 HH:mm')}</Text> */}
|
|
|
|
|
- <Text className="h24 g02">{footerTime(publish)}</Text>
|
|
|
|
|
- <View style={{ flex: 1 }} />
|
|
|
|
|
- <View className="share_btn_bg">
|
|
|
|
|
-
|
|
|
|
|
- <View className="share_icon_bg">
|
|
|
|
|
- <IconShare color={MainColorType.link + 'cc'} width={rpxToPx(32)} />
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ {
|
|
|
|
|
+ publish && <View style={{ display: 'flex', flexDirection: 'row', height: rpxToPx(60), marginTop: rpxToPx(17), alignItems: 'center' }}>
|
|
|
|
|
+ {/* <Text className="h24 g02">{publish.edited ? '编辑于' : '发布于'}{dayjs(publish.timestamp).format('M月D日 HH:mm')}</Text> */}
|
|
|
|
|
+ <Text className="h24 g02">{footerTime(publish)}</Text>
|
|
|
|
|
+ <View style={{ flex: 1 }} />
|
|
|
|
|
+ <View className="share_btn_bg">
|
|
|
|
|
+
|
|
|
|
|
+ <View className="share_icon_bg">
|
|
|
|
|
+ <IconShare color={MainColorType.link + 'cc'} width={rpxToPx(32)} />
|
|
|
|
|
+ </View>
|
|
|
|
|
+ <Button className="share_btn" openType="share">1</Button>
|
|
|
</View>
|
|
</View>
|
|
|
- <Button className="share_btn" openType="share">1</Button>
|
|
|
|
|
|
|
+ {!router.params.uid && <NewButton
|
|
|
|
|
+ type={NewButtonType.more}
|
|
|
|
|
+ onClick={tapMore}
|
|
|
|
|
+ />}
|
|
|
</View>
|
|
</View>
|
|
|
- {!router.params.uid && <NewButton
|
|
|
|
|
- type={NewButtonType.more}
|
|
|
|
|
- onClick={tapMore}
|
|
|
|
|
- />}
|
|
|
|
|
- </View>
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ </View>
|
|
|
|
|
+ </View>
|
|
|
|
|
+ }
|
|
|
|
|
+ {
|
|
|
|
|
+ showEmpty && <View className="no_data_bg2" style={{ marginTop: rpxToPx(256) }}>
|
|
|
|
|
+ <View style={{
|
|
|
|
|
+ backgroundColor: MainColorType.g04,
|
|
|
|
|
+ width: rpxToPx(108),
|
|
|
|
|
+ height: rpxToPx(108),
|
|
|
|
|
+ borderRadius: rpxToPx(54),
|
|
|
|
|
+ display: 'flex',
|
|
|
|
|
+ alignItems: 'center',
|
|
|
|
|
+ justifyContent: 'center'
|
|
|
|
|
+ }}>
|
|
|
|
|
+ <IconError width={rpxToPx(88)} color="#fff" />
|
|
|
|
|
+ </View>
|
|
|
|
|
+ <Text className="h50 g01 bold" style={{ marginBottom: rpxToPx(92), marginTop: rpxToPx(24) }}>{t('health.no_content')}</Text>
|
|
|
</View>
|
|
</View>
|
|
|
- </View>
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
<Text style={{ opacity: 0 }}>{count}</Text>
|
|
<Text style={{ opacity: 0 }}>{count}</Text>
|
|
|
<ListFooter />
|
|
<ListFooter />
|
|
|
{
|
|
{
|