Allow browsing before mini login
This commit is contained in:
@@ -62,6 +62,11 @@ function formatSleepRange(status: DeviceStatus | null): string {
|
||||
return `${start}-${end}`
|
||||
}
|
||||
|
||||
function goLoginWithRedirect(url = '/pages/device/index') {
|
||||
Taro.setStorageSync('postLoginRedirect', url)
|
||||
Taro.navigateTo({ url: '/pages/login/index' })
|
||||
}
|
||||
|
||||
function formatAlarmTime(value?: string | null): string {
|
||||
if (!value) return '--'
|
||||
const date = new Date(value)
|
||||
@@ -129,6 +134,7 @@ export default function Device() {
|
||||
const [isSavingVolume, setIsSavingVolume] = useState(false)
|
||||
const [sleepWakePending, setSleepWakePending] = useState<'on' | 'off' | null>(null)
|
||||
const [volumeValue, setVolumeValue] = useState(0)
|
||||
const [isGuest, setIsGuest] = useState(false)
|
||||
const volumeCommandInFlightRef = useRef(false)
|
||||
|
||||
useDidShow(() => {
|
||||
@@ -137,11 +143,18 @@ export default function Device() {
|
||||
|
||||
const loadDeviceInfo = async () => {
|
||||
if (!getToken()) {
|
||||
Taro.reLaunch({ url: '/pages/login/index' })
|
||||
setBinding(null)
|
||||
setChild(null)
|
||||
setDeviceStatus(null)
|
||||
setDeviceAlarms([])
|
||||
setVolumeValue(0)
|
||||
setIsGuest(true)
|
||||
setIsLoading(false)
|
||||
return
|
||||
}
|
||||
|
||||
setIsLoading(true)
|
||||
setIsGuest(false)
|
||||
try {
|
||||
const context = await loadCurrentChildBindingContext()
|
||||
setChild(context.currentChild)
|
||||
@@ -264,6 +277,52 @@ export default function Device() {
|
||||
)
|
||||
}
|
||||
|
||||
if (isGuest) {
|
||||
return (
|
||||
<View className='device-page'>
|
||||
<View className='guest-hero'>
|
||||
<View className='guest-device-icon'>
|
||||
<Image className='robot-img' src={require('../../assets/tab-icons/robot.png')} mode='aspectFit' />
|
||||
</View>
|
||||
<Text className='guest-title'>伴伴儿童陪伴设备</Text>
|
||||
<Text className='guest-subtitle'>查看设备状态、定位轨迹、亲子消息和休眠管理。浏览功能后,可在需要绑定设备时登录。</Text>
|
||||
</View>
|
||||
|
||||
<View className='guest-feature-grid'>
|
||||
<View className='guest-feature-card'>
|
||||
<Image className='guest-feature-icon' src={require('../../assets/tab-icons/device-icon.png')} mode='aspectFit' />
|
||||
<Text className='guest-feature-title'>设备状态</Text>
|
||||
<Text className='guest-feature-desc'>查看电量、信号、版本和告警记录。</Text>
|
||||
</View>
|
||||
<View className='guest-feature-card'>
|
||||
<Image className='guest-feature-icon' src={require('../../assets/tab-icons/location-icon.png')} mode='aspectFit' />
|
||||
<Text className='guest-feature-title'>定位展示</Text>
|
||||
<Text className='guest-feature-desc'>绑定后可查看设备当前位置。</Text>
|
||||
</View>
|
||||
<View className='guest-feature-card'>
|
||||
<Image className='guest-feature-icon' src={require('../../assets/tab-icons/chat-icon.png')} mode='aspectFit' />
|
||||
<Text className='guest-feature-title'>亲子互动</Text>
|
||||
<Text className='guest-feature-desc'>查看孩子和设备的消息会话。</Text>
|
||||
</View>
|
||||
<View className='guest-feature-card'>
|
||||
<Image className='guest-feature-icon' src={require('../../assets/tab-icons/manage-icon.png')} mode='aspectFit' />
|
||||
<Text className='guest-feature-title'>设备管理</Text>
|
||||
<Text className='guest-feature-desc'>管理孩子资料、绑定设备和休眠设置。</Text>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
<View className='guest-action-card'>
|
||||
<Text className='guest-action-title'>准备绑定或管理设备</Text>
|
||||
<Text className='guest-action-desc'>登录后可创建孩子资料、绑定设备并开启完整功能。</Text>
|
||||
<View className='guest-primary-btn' onClick={() => goLoginWithRedirect('/pages/device/index')}>
|
||||
<Text className='guest-primary-btn-text'>登录后继续</Text>
|
||||
</View>
|
||||
</View>
|
||||
{systemBanner}
|
||||
</View>
|
||||
)
|
||||
}
|
||||
|
||||
if (!child) {
|
||||
return (
|
||||
<View className='device-page'>
|
||||
|
||||
Reference in New Issue
Block a user