Leon 1 年之前
父節點
當前提交
892f9e9de7

+ 2 - 2
src/_health/base/new_durationpicker.tsx

@@ -11,7 +11,7 @@ export default function NewDurationPicker(props: { value?: any, onChange?: any,
     const [loaded, setLoaded] = useState(false)
     useEffect(() => {
         var hours: any = []
-        var tempValues: any = [0]
+        var tempValues: any = [props.value/5]
 
         var array:any = []
         for (var i=0;i<=12*3;i++){
@@ -39,7 +39,7 @@ export default function NewDurationPicker(props: { value?: any, onChange?: any,
         setValues(e.detail.value)
         if (props.onChange) {
             var list = e.detail.value
-            props.onChange((list[0] + '').padStart(2, '0') + ':' + (list[1] + '').padStart(2, '0'))
+            props.onChange(list[0]*5)
         }
     }
 

+ 11 - 2
src/_health/components/add_label.tsx

@@ -13,7 +13,7 @@ import NewTimePicker from "../base/new_timepicker";
 import showAlert from "@/components/basic/Alert";
 import { jumpPage } from "@/features/trackTimeDuration/hooks/Common";
 
-export default function AddLabel(props: { labels: any, defaultValue?: string, disMiss?: any }) {
+export default function AddLabel(props: { labels: any, defaultValue?: string, disMiss?: any,justLabel?:boolean,confirm?:any }) {
     const [showTimePicker, setShowTimePicker] = useState(false)
     const health = useSelector((state: any) => state.health);
     const [value, setValue] = useState(props.defaultValue ?? '')
@@ -128,6 +128,15 @@ export default function AddLabel(props: { labels: any, defaultValue?: string, di
         })
     }
 
+    function tapDone(){
+        if (props.justLabel){
+            props.confirm(value)
+        }
+        else {
+            setShowTimePicker(true)
+        }
+    }
+
     function timeContent() {
         return <View>
             <View className="header1">Set Time</View>
@@ -181,7 +190,7 @@ export default function AddLabel(props: { labels: any, defaultValue?: string, di
                 }
             </View>
         </View>
-        <View className="pop_footer" style={{ backgroundColor: getThemeColor(health.mode) }} onClick={() => setShowTimePicker(true)}>下一步</View>
+        <View className="pop_footer" style={{ backgroundColor: getThemeColor(health.mode) }} onClick={tapDone}>{props.justLabel?'完成':'下一步'}</View>
         {/* {
             showTimePicker && timeContent()
         } */}

+ 27 - 5
src/_health/components/post_moment_time.tsx

@@ -19,17 +19,36 @@ export default function PostMomentTime(props: {
     const [isYesterday, setIsYesterday] = useState(false)
     const [showMore, setShowMore] = useState(false)
     const [time, setTime] = useState(props.time)
+    const [minutes, setMinutes] = useState(30)
+
+    function durationTime() {
+        var hour = Math.floor(minutes / 60)
+        var minute = minutes % 60
+        var str = ''
+        if (hour > 0) {
+            str = hour + '小时'
+        }
+        if (minute > 0) {
+            str += minute + '分钟'
+        }
+        if (hour == 0 && minute == 0) {
+            str = '0分钟'
+        }
+        return str
+    }
 
     function durationContent() {
         return <View className='picker_time_card'>
             <View className='picker_time_card_header'>
                 <Text>Duration</Text>
-                <View className='time_btn' onClick={() => setShowDurationPicker(true)}>30 mins</View>
+                <View className='time_btn' onClick={() => setShowDurationPicker(true)}>{durationTime()}</View>
             </View>
             {
-                showDurationPicker && <NewDurationPicker />
+                showDurationPicker && <NewDurationPicker value={minutes} color={getThemeColor(health.mode)} onChange={(v) => {
+                    setMinutes(v)
+                }} />
             }
-            
+
             <View className='picker_time_card_footer'>
                 <IconTarget width={rpxToPx(24)} color='#5C7099' />
                 <Text style={{ color: '#5C7099', marginLeft: rpxToPx(12), fontSize: rpxToPx(26) }}>Scheduled for xxx today</Text>
@@ -41,7 +60,10 @@ export default function PostMomentTime(props: {
         title='开始时间'
         dismiss={props.dismiss}
         confirm={() => {
-            props.onChange(time)
+            props.onChange({
+                time:time,
+                duration:minutes
+            })
         }}
         themeColor={getThemeColor(health.mode)}>
         <View style={{ flexDirection: 'column', display: 'flex', alignItems: 'center' }}>
@@ -51,7 +73,7 @@ export default function PostMomentTime(props: {
                     <View style={{ flex: 1 }} />
                     <View className='time_btn'>Yesterday</View>
                     <View style={{ width: rpxToPx(12) }} />
-                    <View className='time_btn' onClick={()=>{
+                    <View className='time_btn' onClick={() => {
                         setShowDurationPicker(false)
                     }}>{time}</View>
                     <View style={{ flex: 1 }} />

+ 65 - 8
src/_health/pages/add_moment.tsx

@@ -11,13 +11,15 @@ import Modal from "@/components/layout/Modal.weapp";
 import dayjs from "dayjs";
 import TimePicker from "@/features/common/TimePicker";
 import { MainColorType } from "@/context/themes/color";
-import { createMoment } from "@/services/health";
+import { createMoment, getLabelsEvent } from "@/services/health";
 import { useDispatch, useSelector } from "react-redux";
 import { getThemeColor } from "@/features/health/hooks/health_hooks";
 import { setShowActionTip } from "@/store/health";
 import DurationPicker from "../components/duration_picker";
 import NewModal from "../base/new_modal";
 import PostMomentTime from "../components/post_moment_time";
+import AddLabel from "../components/add_label";
+import showAlert from "@/components/basic/Alert";
 
 
 let useRoute;
@@ -43,6 +45,8 @@ export default function AddMoment() {
     const [showTimePicker, setShowTimePicker] = useState(false)
     const [showTitlePicker, setShowTitlePicker] = useState(false)
 
+    const [labels, setLabels] = useState<any>([])
+
 
 
     let router
@@ -66,9 +70,14 @@ export default function AddMoment() {
 
     useEffect(() => {
         global.set_time = new Date().getTime()
-        if (is_temp && title == '') {
-            setShowTimePicker(true)
-        }
+        
+
+        getLabelsEvent({ window: health.mode }).then(res => {
+            setLabels((res as any).labels)
+            if (is_temp && title == '') {
+                setShowTitlePicker(true)
+            }
+        })
     }, [])
 
     function duration() {
@@ -117,13 +126,19 @@ export default function AddMoment() {
             })
             return
         }
+        var date = new Date(timestamp)
+        var hour = parseInt(time.split(':')[0]+'')
+        var minute = parseInt(time.split(':')[1]+'')
+        date.setHours(hour)
+        date.setMinutes(minute)
+
         var params: any = {
             schedule_id: schedule_id,
             title: title,
             description: desc,
             start: {
-                date: dayjs(timestamp).format('YYYYMMDD'),
-                timestamp: timestamp
+                date: dayjs(date.getTime()).format('YYYYMMDD'),
+                timestamp: date.getTime()
             }
         }
 
@@ -138,10 +153,19 @@ export default function AddMoment() {
         if (event_id) {
             params.event_id = event_id
         }
+
+        if (is_temp){
+            params.event = health.mode == 'EAT'?'EAT_CUSTOM':'ACTIVE_CUSTOM'
+        }
         // if (moment.target && moment.target.duration) {
         //     params.duration = durationT//moment.target.duration
         // }
 
+        if (durationT){
+            params.duration = durationT*60*1000
+        }
+        
+
         params.extra = {
             set_time: global.set_time ? global.set_time : new Date().getTime(),
             confirm_time: new Date().getTime()
@@ -289,7 +313,11 @@ export default function AddMoment() {
             <Text onClick={() => {
                 setShowTimePicker(true)
             }} style={{ marginLeft: 20, color: '#5C7099' }}>{time}</Text>
-            <Text style={{ marginLeft: 20, color: '#5C7099' }}>{title}</Text>
+            <Text
+                onClick={() => {
+                    setShowTitlePicker(true)
+                }}
+                style={{ marginLeft: 20, color: '#5C7099' }}>{title}</Text>
         </View>
 
         <View className="form">
@@ -319,12 +347,41 @@ export default function AddMoment() {
         }
         {
             showTimePicker && <PostMomentTime time={time} onChange={(e) => {
-                setTime(e)
+                const {duration,time} = e;
+                setTime(time)
+                setDurationT(duration)
                 setShowTimePicker(false)
             }} dismiss={() => {
                 setShowTimePicker(false)
             }} />
         }
+        {
+            showTitlePicker && <Modal testInfo={null}
+                catchDismiss={true}
+                dismiss={() => {
+                }}
+                confirm={() => { }}>
+                <AddLabel labels={labels} 
+                defaultValue={title}
+                justLabel={true}
+                confirm={e=>{
+                    setTitle(e)
+                    if (e.length==0){
+                        showAlert({
+                            title:'提示',
+                            content:'请输入标题',
+                            showCancel:false
+                        })
+                        return
+                    }
+                    setShowTitlePicker(false)
+                }}
+                disMiss={() => {
+                    debugger
+                    // setShowTitlePicker(false)
+                }} />
+            </Modal>
+        }
 
         {/* {
             durationPicker && <DurationPicker

+ 1 - 1
src/_health/pages/move.tsx

@@ -621,7 +621,7 @@ export default function Move() {
                             <Text className="history_item_date">{(item.date + '').substring(6, 8)}</Text>
                             <View className="history_item_detail_bg">
                                 <Image className="history_item_detail_icon" src={require('@assets/_health/walk.png')} />
-                                <Text> Hours Active {item.active_hours} · Total Steps {item.stat.real_steps}</Text>
+                                <Text style={{fontSize:rpxToPx(26)}}> Hours Active {item.active_hours} · Total Steps {item.stat.real_steps}</Text>
                             </View>
                             <View className="border_footer_line" />
                         </View>

+ 8 - 0
src/_health/pages/schedules.config.ts

@@ -0,0 +1,8 @@
+export default definePageConfig({
+    usingComponents:{
+      // 'ec-canvas': '../../lib/ec-canvas/ec-canvas',
+      // 'demo':'../../components/demo'
+    },
+    "navigationBarTitleText":"",
+    "navigationBarBackgroundColor":"#f5f5f5"
+  })

+ 161 - 0
src/_health/pages/schedules.scss

@@ -0,0 +1,161 @@
+@import "~taro-ui/dist/style/components/swipe-action.scss";
+
+.schedule_list_bg{
+    height: 100vh;
+    display: flex;
+    flex-direction: column;
+}
+
+.container {
+    display: flex;
+    flex-direction: column;
+    flex: 1;
+}
+
+.schedule_item {
+    padding-left: 40px;
+    padding-right: 40px;
+    height: 128px;
+    align-items: center;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    position: relative;
+    background-color: #fff;
+}
+
+.item_hover{
+    background-color: #E5E5E5;
+}
+
+.item_line{
+    height: 2px;
+    background-color: #B2B2B2;
+    transform: scaleY(0.5);
+    position: absolute;
+    left: 100px;
+    right: 0;
+    bottom: 0;
+}
+
+.item_left2{
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    flex: 1;
+}
+
+.item_index{
+    color: #B2B2B2;
+    font-size: 26px;
+    width: 36px;
+    height: 42px;
+    margin-right: 24px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+
+}
+
+.index_point{
+    width: 16px;
+    height: 16px;
+    border-radius: 8px;
+}
+
+.item_name{
+    color: #000;
+    font-size: 34px;
+}
+
+.edit_item_time{
+    color: #000;
+    font-size: 34px;
+    width: 160px;
+    height: 84px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background-color: #B2B2B21A;
+    border-radius: 20px;
+}
+
+.toolbar{
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    margin-top: 20px;
+    margin-bottom: 20px;
+    padding-left: 46px;
+    padding-right: 46px;
+}
+
+.item_add{
+    height: 128px;
+    display: flex;
+    flex-direction: row;
+    background-color: #fff;
+    align-items: center;
+    padding-left: 40px;
+}
+
+.toolbar_btn{
+    color: #FF751A;
+    font-size: 34px;
+    margin-left: 26px;
+}
+
+.notification_icon{
+    width: 34px;
+    height: 34px;
+    margin-right: 12px;
+}
+
+.schedule_header_title{
+    margin-left: 40px;
+    font-weight: bold;
+    font-size: 50px;
+    color: #000;
+    margin-bottom: 40px;
+    margin-top: 22px;
+}
+
+.cell_hover{
+    background-color: #E5E5E5;
+}
+
+.edit_icon{
+    padding: 22px;
+    width: 34px;
+    height: 34px;
+}
+
+.error_tip {
+    height: 72px;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    background-color: #FF00001A;
+    padding-left: 42px;
+    box-sizing: border-box;
+    color: #000;
+    font-size: 24px;
+}
+
+.success_tip {
+    height: 72px;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    background-color: #00B2181A;
+    padding-left: 42px;
+    box-sizing: border-box;
+    color: #000;
+    font-size: 24px;
+}
+
+.conflict_tip {
+    color: #FF0000;
+    font-size: 20px;
+    margin-right: 12px;
+}

+ 258 - 0
src/_health/pages/schedules.tsx

@@ -0,0 +1,258 @@
+import { createSchedule, getLabelsEvent, getSchedules } from "@/services/health";
+import { View, Text, Image } from "@tarojs/components";
+import { useRouter } from "@tarojs/taro";
+import { useEffect, useState } from "react";
+import { useSelector } from "react-redux";
+import './schedules.scss';
+import { rpxToPx } from "@/utils/tools";
+import { getThemeColor } from "@/features/health/hooks/health_hooks";
+import { jumpPage } from "@/features/trackTimeDuration/hooks/Common";
+import Modal from "@/components/layout/Modal.weapp";
+import TimePicker from "@/features/common/TimePicker";
+import showAlert from "@/components/basic/Alert";
+
+let useRoute;
+let useNavigation;
+let scenario = '';
+if (process.env.TARO_ENV == 'rn') {
+    useRoute = require("@react-navigation/native").useRoute
+    useNavigation = require("@react-navigation/native").useNavigation
+}
+
+export default function Schedules() {
+    let navigation, showActionSheetWithOptions;
+
+    let router
+    if (useNavigation) {
+        navigation = useNavigation()
+    }
+
+    if (process.env.TARO_ENV == 'rn') {
+        router = useRoute()
+    }
+    else {
+        router = useRouter()
+    }
+    const [list, setList] = useState<any>([])
+    const [labels, setLabels] = useState<any>([])
+    const [errors, setErrors] = useState<any>(router.params.errors ? JSON.parse(router.params.errors) : [])
+    const [showTimePicker, setShowTimePicker] = useState(false)
+    const health = useSelector((state: any) => state.health);
+    const [selItem, setSelItem] = useState<any>(null)
+    const [selIndex, setSelIndex] = useState(-1)
+    const selMode = router.params.mode;
+
+    useEffect(() => {
+        if (selMode == '' && router.params.schedules) {
+            setList(JSON.parse(router.params.schedules))
+        }
+        else {
+            schedules()
+        }
+
+    }, [])
+
+    global.refreshSchedules = () => {
+        schedules()
+    }
+
+    function schedules() {
+        let windows = ''
+        switch (selMode) {
+            case 'FAST':
+                windows = 'FAST,EAT';
+                break
+            case 'EAT':
+                windows = 'EAT,FAST';
+                break
+            case 'SLEEP':
+                windows = 'SLEEP,ACTIVE';
+                break
+            case 'ACTIVE':
+                windows = 'ACTIVE,SLEEP';
+                break
+            case 'DAY':
+                windows = 'DAY,NIGHT';
+                break
+            case 'NIGHT':
+                windows = 'ACTIVE,DAY';
+                break
+        }
+        getSchedules({ window: windows }).then(res => {
+            setList((res as any).data)
+        }).catch(e => {
+
+        })
+
+        getLabelsEvent({ window: health.mode }).then(res => {
+            setLabels((res as any).labels)
+        })
+    }
+
+    function getTitle() {
+        switch (selMode) {
+            case 'FAST':
+                return '断食和进食';
+            case 'EAT':
+                return '进食和断食';
+            case 'SLEEP':
+                return '睡眠和活动';
+            case 'ACTIVE':
+                return '活动和睡眠';
+            case 'DAY':
+                return '白天和夜晚';
+            case 'NIGHT':
+                return '夜晚和白天';
+        }
+        return '全部'
+    }
+
+    function modalContent() {
+        const strTime = selItem.time
+
+        var title = selItem.title
+        var color = getThemeColor(selItem.window)
+
+        return <TimePicker time={strTime}
+            color={color}
+            title={title}
+            confirm={(e) => {
+                selItem.time = e
+                setSelItem(selItem)
+                setShowTimePicker(false)
+                var array = JSON.parse(JSON.stringify(list))
+                array[selIndex].time = e
+                setList(array)
+                checkData(array)
+                // confirmPickerTime(e)
+            }}
+            cancel={() => {
+                setShowTimePicker(false)
+            }} />
+    }
+
+    function checkData(array) {
+        createSchedule({
+            schedules: array,
+            // only_check: true
+        }).then(res => {
+
+
+            if ((res as any).result) {
+                setErrors([])
+                setList((res as any).schedules)
+                global.refreshWindow()
+                if (global.refreshSchedules) {
+                    global.refreshSchedules()
+                }
+                // if (global.refreshSchedules2) {
+                //     global.refreshSchedules2()
+                // }
+            }
+            else {
+                var array = (res as any).conflict_windows;
+                var showMore = false;
+                if (array.length > 2) {
+                    showMore = true;
+                }
+                else if (array.length == 1) {
+                    showMore = false;
+                }
+                else {
+                    // 判断是否同时存在 FAST 和 EAT
+                    const containsFastAndEat = array.includes('FAST') && array.includes('EAT');
+
+                    // 判断是否同时存在 SLEEP 和 ACTIVE
+                    const containsSleepAndActive = array.includes('SLEEP') && array.includes('ACTIVE');
+
+                    // 最终结果
+                    const result = containsFastAndEat || containsSleepAndActive;
+                    showMore = !result;
+                }
+                if (selMode != '' && showMore) {
+                    showAlert({
+                        title: '弹窗标题',
+                        content: '冲突描述',
+                        showCancel: false,
+                        confirm: () => {
+                            jumpPage(`./schedules?mode=&schedules=${JSON.stringify((res as any).schedules)}&errors=${JSON.stringify((res as any).error_messages)}`)
+                        }
+                    })
+                }
+                else {
+                    setList((res as any).schedules)
+                    setErrors((res as any).error_messages ? (res as any).error_messages : [])
+                }
+            }
+        })
+    }
+
+
+    return <View>
+        <View style={{ display: 'flex', flexDirection: 'column' }}>
+            <View className='schedule_header_title'>{getTitle()}</View>
+            {
+                errors.map((item, index) => {
+                    return <View key={index} className='error_tip'>{item}</View>
+                })
+            }
+            {/* {
+                errors.length == 0 && <View className='success_tip'>时间冲突已解决,并保存</View>
+            } */}
+            <View style={{ backgroundColor: '#fff' }}>
+                {
+                    list.map((obj, i) => {
+                        return <View className='schedule_item' key={i} style={{
+                            width: rpxToPx(750),
+                            boxSizing: 'border-box',
+                            backgroundColor: obj.window == selMode ? getThemeColor(selMode) + '08' : '#fff'
+
+                        }}>
+                            <View className='item_left2'>
+                                <View className='item_index'>
+                                    <View className="index_point" style={{ backgroundColor: getThemeColor(obj.window) }} />
+                                </View>
+                                <Text className='item_name'>{obj.title}</Text>
+                                <View style={{ flex: 1 }} />
+                                {
+                                    obj.is_conflict && <Text className="conflict_tip">时间冲突,请调整</Text>
+                                }
+                                {
+                                    !obj.is_all_day && <View className='edit_item_time' onClick={() => {
+                                        setSelIndex(i)
+                                        setSelItem(obj)
+                                        setShowTimePicker(true)
+                                    }} style={{
+                                        backgroundColor: obj.window == selMode ? getThemeColor(selMode) + '1A' : '#B2B2B21A',
+                                        color: obj.window == selMode ? getThemeColor(selMode) : '#000'
+                                    }}>{obj.time}</View>
+                                }
+
+                                {
+                                    i < list.length - 1 && <View className='item_line' />
+                                }
+                            </View>
+                        </View>
+                    })
+                }
+            </View>
+            {
+                selMode != '' && <Text onClick={() => {
+                    jumpPage('/_health/pages/schedules?mode=')
+                }}>查看全部</Text>
+            }
+            {
+                showTimePicker && <Modal
+                    testInfo={null}
+                    dismiss={() => {
+                        setShowTimePicker(false)
+                    }}
+                    confirm={() => { }}>
+                    {
+                        modalContent()
+                    }
+                </Modal>
+            }
+        </View>
+    </View>
+}

+ 1 - 0
src/app.config.ts

@@ -49,6 +49,7 @@ const appConfig = defineAppConfig({
     {
       root: '_health',
       pages: [
+        'pages/schedules',
         'pages/add_moment',
         'pages/schedules_list',
         'pages/schedules_del',

+ 5 - 1
src/components/layout/Modal.weapp.tsx

@@ -23,7 +23,8 @@ export default function Modal(props: {
     themeColor?: string,
     modalType?: ModalType,
     cancelCatchMove?: boolean,
-    themeIsWhite?: boolean
+    themeIsWhite?: boolean,
+    catchDismiss?:boolean,
 }) {
 
     const [isDismiss, setIsDismiss] = useState(false)
@@ -147,6 +148,9 @@ export default function Modal(props: {
 
     return <View className={isDismiss ? 'modal modal_dismiss' : 'modal'} catchMove onLongPress={longPress}>
         <View style={{ flex: 1, width: 375, flexShrink: 0 }} onClick={(e) => {
+            if (props.catchDismiss){
+                return;
+            }
             if (process.env.TARO_ENV == 'weapp') {
                 e.stopPropagation()
             }; dismiss()

+ 8 - 4
src/features/health/HistoryItem.tsx

@@ -102,7 +102,9 @@ export default function HistoryItem(props: { data: any, preData: any, index: num
                         return <Text key={index}>
                             <Text className="history_item_title">{item.real && dayjs(item.real.start_timestamp).format('HH:mm')} {getTitle(item)} </Text>
                             {
-                                item.moment && item.moment.description && <Text className="history_item_desc">{item.moment.description}</Text>
+                                item.moments && item.moments.map((moment,i)=>{
+                                    return <Text className="history_item_desc" key={i*1000}>{moment.description}</Text>
+                                })
                             }
                         </Text>
                     })
@@ -111,9 +113,11 @@ export default function HistoryItem(props: { data: any, preData: any, index: num
             <View className="media" style={{ marginTop: mediaCount() > 0 ? 9 : -10, marginRight: mediaCount() == 4 ? 80 : 0 }}>
                 {
                     props.data.events.map((item) => {
-                        if (item.moment) {
-                            return item.moment.media.map((obj, j) => {
-                                return <Image className="media_item" mode="aspectFill" onClick={() => preview(obj)} src={obj.url} key={j * 10} />
+                        if (item.moments){
+                            return item.moments.map(moment=>{
+                                return moment.media.map((obj, j) => {
+                                    return <Image className="media_item" mode="aspectFill" onClick={() => preview(obj)} src={obj.url} key={j * 10} />
+                                })
                             })
                         }
 

+ 5 - 5
src/features/health/MainConsole.tsx

@@ -470,7 +470,7 @@ export default function MainConsole(props: { type: WindowType }) {
                     switch (health.mode) {
                         case 'DAY':
                         case 'NIGHT':
-                            jumpPage('/_health/pages/schedules_list?mode=' + health.mode)
+                            jumpPage('/_health/pages/schedules?mode=' + health.mode)
                             break;
                         case 'FAST':
                         case 'SLEEP':
@@ -481,7 +481,7 @@ export default function MainConsole(props: { type: WindowType }) {
                                     setDurationPicker(true)
                                 }
                                 else {
-                                    jumpPage('/_health/pages/schedules_list?mode=' + health.mode)
+                                    jumpPage('/_health/pages/schedules?mode=' + health.mode)
                                 }
                             }
                             break;
@@ -500,14 +500,14 @@ export default function MainConsole(props: { type: WindowType }) {
                 {
                     switch (health.mode) {
                         case 'EAT':
-                            jumpPage('/_health/pages/schedules_list?mode=' + health.mode)
+                            jumpPage('/_health/pages/schedules?mode=' + health.mode)
                             break;
                         case 'FAST':
                         case 'SLEEP':
                             const obj = getScenario(health.windows, health.mode)
                             if (obj.window_id) {
                                 //del record
-                                jumpPage('/_health/pages/schedules_list?mode=' + health.mode)
+                                jumpPage('/_health/pages/schedules?mode=' + health.mode)
                                 console.log('zzzzzzzzz')
                             }
                             else {
@@ -515,7 +515,7 @@ export default function MainConsole(props: { type: WindowType }) {
                             }
                             break;
                         case 'ACTIVE':
-                            jumpPage('/_health/pages/schedules_list?mode=' + health.mode)
+                            jumpPage('/_health/pages/schedules?mode=' + health.mode)
                             break;
                         case 'DAY':
                         case 'NIGHT':

+ 1 - 1
src/pages/account/Profile.tsx

@@ -297,7 +297,7 @@ export default function Page() {
             </View>
 
             <View className="profile_cell profile_cell_space" onClick={()=>{
-                jumpPage("/_health/pages/schedules_list?mode=")
+                jumpPage("/_health/pages/schedules?mode=")
             }}>
                 <Image src={require('@assets/_health/sit.png')} className="profile_cell_icon" />
                 <Text style={{ flex: 1 }}>Schedule</Text>