|
@@ -17,6 +17,7 @@ import { clockTimes, fastWithSleep } from "@/services/health";
|
|
|
import NewDurationPicker, { DurationPickerType } from "../base/new_durationpicker";
|
|
import NewDurationPicker, { DurationPickerType } from "../base/new_durationpicker";
|
|
|
import showAlert from "@/components/basic/Alert";
|
|
import showAlert from "@/components/basic/Alert";
|
|
|
import NewDatePicker, { NewDatePickerType } from "../base/new_date_picker";
|
|
import NewDatePicker, { NewDatePickerType } from "../base/new_date_picker";
|
|
|
|
|
+import ChooseDateTime from "../components/choose_date_time";
|
|
|
|
|
|
|
|
let useRoute;
|
|
let useRoute;
|
|
|
let useNavigation;
|
|
let useNavigation;
|
|
@@ -89,6 +90,8 @@ export default function LogTime() {
|
|
|
var t2 = now.getTime()
|
|
var t2 = now.getTime()
|
|
|
t2 += 24 * 3600 * 1000
|
|
t2 += 24 * 3600 * 1000
|
|
|
var left = t2 - t + 500
|
|
var left = t2 - t + 500
|
|
|
|
|
+
|
|
|
|
|
+ //前端待处理,日期更新
|
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
|
setArray(array => {
|
|
setArray(array => {
|
|
|
array.map((item) => {
|
|
array.map((item) => {
|
|
@@ -139,7 +142,7 @@ export default function LogTime() {
|
|
|
event_id: timeline.event_id,
|
|
event_id: timeline.event_id,
|
|
|
schedule_id: timeline.schedule_id,
|
|
schedule_id: timeline.schedule_id,
|
|
|
time: dayjs().format('HH:mm'),
|
|
time: dayjs().format('HH:mm'),
|
|
|
- today: true,
|
|
|
|
|
|
|
+ date:dayjs().format('YYYY-MM-DD'),
|
|
|
extra: {
|
|
extra: {
|
|
|
set_time: enterTime,
|
|
set_time: enterTime,
|
|
|
confirm_time: enterTime
|
|
confirm_time: enterTime
|
|
@@ -172,7 +175,7 @@ export default function LogTime() {
|
|
|
event_id: timeline.event_id,
|
|
event_id: timeline.event_id,
|
|
|
schedule_id: timeline.schedule_id,
|
|
schedule_id: timeline.schedule_id,
|
|
|
time: dayjs().format('HH:mm'),
|
|
time: dayjs().format('HH:mm'),
|
|
|
- today: true,
|
|
|
|
|
|
|
+ date:dayjs().format('YYYY-MM-DD'),
|
|
|
extra: {
|
|
extra: {
|
|
|
set_time: enterTime,
|
|
set_time: enterTime,
|
|
|
confirm_time: enterTime
|
|
confirm_time: enterTime
|
|
@@ -211,17 +214,14 @@ export default function LogTime() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (!isConflict) {
|
|
if (!isConflict) {
|
|
|
- var fastStartToday = new Date().getDate() == new Date(fastStartTime).getDate()
|
|
|
|
|
- list[0].today = fastStartToday
|
|
|
|
|
|
|
+ list[0].date = dayjs(fastStartTime).format('YYYY-MM-DD')
|
|
|
list[0].time = dayjs(fastStartTime).format('HH:mm')
|
|
list[0].time = dayjs(fastStartTime).format('HH:mm')
|
|
|
|
|
|
|
|
- var sleepStartToday = new Date().getDate() == new Date(sleepStartTime).getDate()
|
|
|
|
|
- list[1].today = sleepStartToday
|
|
|
|
|
|
|
+ list[1].date = dayjs(sleepStartTime).format('YYYY-MM-DD')
|
|
|
list[1].time = dayjs(sleepStartTime).format('HH:mm')
|
|
list[1].time = dayjs(sleepStartTime).format('HH:mm')
|
|
|
|
|
|
|
|
if (list.length > 2) {
|
|
if (list.length > 2) {
|
|
|
- var sleepEndToday = new Date().getDate() == new Date(sleepEndTime).getDate()
|
|
|
|
|
- list[2].today = sleepEndToday
|
|
|
|
|
|
|
+ list[2].date = dayjs(sleepEndTime).format('YYYY-MM-DD')
|
|
|
list[2].time = dayjs(sleepEndTime).format('HH:mm')
|
|
list[2].time = dayjs(sleepEndTime).format('HH:mm')
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -229,22 +229,19 @@ export default function LogTime() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (fast.real && fast.real.start_timestamp) {
|
|
if (fast.real && fast.real.start_timestamp) {
|
|
|
- var fastStartToday = new Date().getDate() == new Date(fast.real.start_timestamp).getDate()
|
|
|
|
|
- list[0].today = fastStartToday
|
|
|
|
|
|
|
+ list[0].date = dayjs(fast.real.start_timestamp).format('YYYY-MM-DD')
|
|
|
list[0].disable = true
|
|
list[0].disable = true
|
|
|
list[0].time = dayjs(fast.real.start_timestamp).format('HH:mm')
|
|
list[0].time = dayjs(fast.real.start_timestamp).format('HH:mm')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (sleep.real && sleep.real.start_timestamp) {
|
|
if (sleep.real && sleep.real.start_timestamp) {
|
|
|
- var sleepStartToday = new Date().getDate() == new Date(sleep.real.start_timestamp).getDate()
|
|
|
|
|
- list[1].today = sleepStartToday
|
|
|
|
|
|
|
+ list[1].date = dayjs(sleep.real.start_timestamp).format('YYYY-MM-DD')
|
|
|
list[1].disable = true
|
|
list[1].disable = true
|
|
|
list[1].time = dayjs(sleep.real.start_timestamp).format('HH:mm')
|
|
list[1].time = dayjs(sleep.real.start_timestamp).format('HH:mm')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (list.length > 2 && sleep.real && sleep.real.end_timestamp) {
|
|
if (list.length > 2 && sleep.real && sleep.real.end_timestamp) {
|
|
|
- var sleepEndToday = new Date().getDate() == new Date(sleep.real.end_timestamp).getDate()
|
|
|
|
|
- list[2].today = sleepEndToday
|
|
|
|
|
|
|
+ list[2].date = dayjs(sleep.real.end_timestamp).format('YYYY-MM-DD')
|
|
|
list[2].disable = true
|
|
list[2].disable = true
|
|
|
list[2].time = dayjs(sleep.real.end_timestamp).format('HH:mm')
|
|
list[2].time = dayjs(sleep.real.end_timestamp).format('HH:mm')
|
|
|
}
|
|
}
|
|
@@ -263,18 +260,15 @@ export default function LogTime() {
|
|
|
|
|
|
|
|
function getTimestamp(obj) {
|
|
function getTimestamp(obj) {
|
|
|
var time = obj.time
|
|
var time = obj.time
|
|
|
- var hour = parseInt(time.split(':')[0])
|
|
|
|
|
- var minute = parseInt(time.split(':')[1])
|
|
|
|
|
- var today = obj.today
|
|
|
|
|
- var now = new Date()
|
|
|
|
|
- now.setHours(hour)
|
|
|
|
|
- now.setMinutes(minute)
|
|
|
|
|
- now.setSeconds(0)
|
|
|
|
|
- now.setMilliseconds(0)
|
|
|
|
|
|
|
+ // var hour = parseInt(time.split(':')[0])
|
|
|
|
|
+ // var minute = parseInt(time.split(':')[1])
|
|
|
|
|
+ // var date = obj.date
|
|
|
|
|
+ var now = new Date(obj.date+'T'+time+':'+dayjs().format('ss'))
|
|
|
|
|
+ // now.setHours(hour)
|
|
|
|
|
+ // now.setMinutes(minute)
|
|
|
|
|
+ // now.setSeconds(0)
|
|
|
|
|
+ // now.setMilliseconds(0)
|
|
|
var timestamp = now.getTime()
|
|
var timestamp = now.getTime()
|
|
|
- if (!today) {
|
|
|
|
|
- timestamp -= 24 * 3600 * 1000
|
|
|
|
|
- }
|
|
|
|
|
return timestamp
|
|
return timestamp
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -453,12 +447,12 @@ export default function LogTime() {
|
|
|
function changeToScheduleTime(schedule_time, index) {
|
|
function changeToScheduleTime(schedule_time, index) {
|
|
|
var nowTime = parseInt(dayjs().format('HHmm'))
|
|
var nowTime = parseInt(dayjs().format('HHmm'))
|
|
|
var scheduleTime = parseInt(schedule_time.replace(':', ''))
|
|
var scheduleTime = parseInt(schedule_time.replace(':', ''))
|
|
|
- var isToday = true
|
|
|
|
|
|
|
+ var date = dayjs().format('YYYY-MM-DD')
|
|
|
if (scheduleTime > nowTime) {
|
|
if (scheduleTime > nowTime) {
|
|
|
- isToday = false
|
|
|
|
|
|
|
+ date = dayjs(new Date().getTime()-24*3600*1000).format('YYYY-MM-DD')
|
|
|
}
|
|
}
|
|
|
var list = JSON.parse(JSON.stringify(array))
|
|
var list = JSON.parse(JSON.stringify(array))
|
|
|
- list[index].today = isToday
|
|
|
|
|
|
|
+ list[index].date = date
|
|
|
list[index].time = schedule_time
|
|
list[index].time = schedule_time
|
|
|
list[index].extra.confirm_time = new Date().getTime()
|
|
list[index].extra.confirm_time = new Date().getTime()
|
|
|
setArray(list)
|
|
setArray(list)
|
|
@@ -501,8 +495,15 @@ export default function LogTime() {
|
|
|
var schedule_time = ''
|
|
var schedule_time = ''
|
|
|
var title = ''
|
|
var title = ''
|
|
|
|
|
|
|
|
- var date = array[index].today ? "Today" : "Yesterday"
|
|
|
|
|
|
|
+ var date = array[index].date//array[index].today ? "Today" : "Yesterday"
|
|
|
var time = array[index].time
|
|
var time = array[index].time
|
|
|
|
|
+ var min = new Date().getTime()
|
|
|
|
|
+ if (iFast) {
|
|
|
|
|
+ min = fast.picker_min_timestamp
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ min = sleep.picker_min_timestamp
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
const today = dayjs();
|
|
const today = dayjs();
|
|
|
var schedule_id = ''
|
|
var schedule_id = ''
|
|
@@ -518,17 +519,18 @@ export default function LogTime() {
|
|
|
|
|
|
|
|
if (array[index].disable) {
|
|
if (array[index].disable) {
|
|
|
var timestamp = iStart ? fast.real.start_timestamp : fast.real.end_timestamp
|
|
var timestamp = iStart ? fast.real.start_timestamp : fast.real.end_timestamp
|
|
|
- const dt = dayjs(timestamp);
|
|
|
|
|
- const yesterday = today.subtract(1, 'day');
|
|
|
|
|
- time = dayjs(timestamp).format('HH:mm')
|
|
|
|
|
-
|
|
|
|
|
- if (dt.isSame(today, 'day')) {
|
|
|
|
|
- date = 'Today';
|
|
|
|
|
- } else if (dt.isSame(yesterday, 'day')) {
|
|
|
|
|
- date = 'Yesterday';
|
|
|
|
|
- } else {
|
|
|
|
|
- date = dt.format('MM-DD');
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ date = dayjs(timestamp).format('YYYY-MM-DD')
|
|
|
|
|
+ // const dt = dayjs(timestamp);
|
|
|
|
|
+ // const yesterday = today.subtract(1, 'day');
|
|
|
|
|
+ // time = dayjs(timestamp).format('HH:mm')
|
|
|
|
|
+
|
|
|
|
|
+ // if (dt.isSame(today, 'day')) {
|
|
|
|
|
+ // date = global.language == 'en' ? 'Today' : '今天';
|
|
|
|
|
+ // } else if (dt.isSame(yesterday, 'day')) {
|
|
|
|
|
+ // date = global.language == 'en' ? 'Yesterday' : '昨天';
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // date = global.language == 'en' ? dt.format('MMM D') : dt.format('MMMD日');
|
|
|
|
|
+ // }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
@@ -540,132 +542,52 @@ export default function LogTime() {
|
|
|
title = iStart ? 'Bedtime' : 'Wake up'
|
|
title = iStart ? 'Bedtime' : 'Wake up'
|
|
|
if (array[index].disable) {
|
|
if (array[index].disable) {
|
|
|
var timestamp = iStart ? sleep.real.start_timestamp : sleep.real.end_timestamp
|
|
var timestamp = iStart ? sleep.real.start_timestamp : sleep.real.end_timestamp
|
|
|
- const dt = dayjs(timestamp);
|
|
|
|
|
- const yesterday = today.subtract(1, 'day');
|
|
|
|
|
- time = dayjs(timestamp).format('HH:mm')
|
|
|
|
|
-
|
|
|
|
|
- if (dt.isSame(today, 'day')) {
|
|
|
|
|
- date = 'Today';
|
|
|
|
|
- } else if (dt.isSame(yesterday, 'day')) {
|
|
|
|
|
- date = 'Yesterday';
|
|
|
|
|
- } else {
|
|
|
|
|
- date = dt.format('MM-DD');
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ date = dayjs(timestamp).format('YYYY-MM-DD')
|
|
|
|
|
+ // const dt = dayjs(timestamp);
|
|
|
|
|
+ // const yesterday = today.subtract(1, 'day');
|
|
|
|
|
+ // time = dayjs(timestamp).format('HH:mm')
|
|
|
|
|
+
|
|
|
|
|
+ // if (dt.isSame(today, 'day')) {
|
|
|
|
|
+ // date = global.language == 'en' ? 'Today' : '今天';
|
|
|
|
|
+ // } else if (dt.isSame(yesterday, 'day')) {
|
|
|
|
|
+ // date = global.language == 'en' ? 'Yesterday' : '昨天';
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // date = global.language == 'en' ? dt.format('MMM D') : dt.format('MMMD日');
|
|
|
|
|
+ // }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
var showError = false;
|
|
var showError = false;
|
|
|
if (conflicts.includes(schedule_id)) {
|
|
if (conflicts.includes(schedule_id)) {
|
|
|
showError = true
|
|
showError = true
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- return <View style={{ position: 'relative' }}>
|
|
|
|
|
- <View className="card_header">
|
|
|
|
|
- {
|
|
|
|
|
- showError && !isSingle && <View className="error_icon_bg">
|
|
|
|
|
- <Image src={require('@assets/_health/tip_error.png')} style={{ width: rpxToPx(26), height: rpxToPx(26) }} />
|
|
|
|
|
- </View>
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- isSingle ? <View style={{ flex: 1 }} /> :
|
|
|
|
|
- <View className="h34" style={{ flex: 1 }}>{title}</View>
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- <View style={{
|
|
|
|
|
- borderColor: showError ? 'red' : 'transparent',
|
|
|
|
|
- borderWidth: rpxToPx(2),
|
|
|
|
|
- borderRadius: rpxToPx(88 / 4),
|
|
|
|
|
- borderStyle: 'solid'
|
|
|
|
|
- }}>
|
|
|
|
|
- <NewButton
|
|
|
|
|
- type={(expandIndex == index && chooseDate) ? NewButtonType.alpha :NewButtonType.gray}
|
|
|
|
|
- color={iFast ? MainColorType.fast : MainColorType.sleep}
|
|
|
|
|
- title={date}
|
|
|
|
|
- fontSize={rpxToPx(34)}
|
|
|
|
|
- width={rpxToPx(196)}
|
|
|
|
|
- height={rpxToPx(84)}
|
|
|
|
|
- disable={array[index].disable}
|
|
|
|
|
- onClick={() => {
|
|
|
|
|
- setChooseDate(true)
|
|
|
|
|
- setExpandIndex(index)
|
|
|
|
|
- // var list = JSON.parse(JSON.stringify(array))
|
|
|
|
|
- // list[index].today = !list[index].today
|
|
|
|
|
- // list[index].extra.confirm_time = new Date().getTime()
|
|
|
|
|
- // setArray(list)
|
|
|
|
|
- }}
|
|
|
|
|
- />
|
|
|
|
|
- </View>
|
|
|
|
|
- <View style={{ width: rpxToPx(12) }} />
|
|
|
|
|
- <View style={{
|
|
|
|
|
- borderColor: showError ? 'red' : 'transparent',
|
|
|
|
|
- borderWidth: rpxToPx(2),
|
|
|
|
|
- borderRadius: rpxToPx(88 / 4),
|
|
|
|
|
- borderStyle: 'solid'
|
|
|
|
|
- }}>
|
|
|
|
|
- <NewButton
|
|
|
|
|
- type={(expandIndex == index && !chooseDate) ? NewButtonType.alpha : NewButtonType.gray}
|
|
|
|
|
- color={iFast ? MainColorType.fast : MainColorType.sleep}
|
|
|
|
|
- title={time}
|
|
|
|
|
- fontSize={rpxToPx(34)}
|
|
|
|
|
- width={rpxToPx(136)}
|
|
|
|
|
- height={rpxToPx(84)}
|
|
|
|
|
- disable={array[index].disable}
|
|
|
|
|
- onClick={() => {
|
|
|
|
|
- setChooseDate(false)
|
|
|
|
|
- setExpandIndex(index)
|
|
|
|
|
- }}
|
|
|
|
|
- />
|
|
|
|
|
- </View>
|
|
|
|
|
- {
|
|
|
|
|
- isSingle && <View style={{ flex: 1 }} />
|
|
|
|
|
- }
|
|
|
|
|
- <View className='border_footer_line' style={{ left: rpxToPx(66) }} />
|
|
|
|
|
- </View>
|
|
|
|
|
- {
|
|
|
|
|
- expandIndex == index && chooseDate && <View style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', width: rpxToPx(698) }}>
|
|
|
|
|
- <NewDatePicker
|
|
|
|
|
- type={NewDatePickerType.normal}
|
|
|
|
|
- isToday={array[index].today}
|
|
|
|
|
- onChange={(e) => {
|
|
|
|
|
- // console.log(e)
|
|
|
|
|
- var list = JSON.parse(JSON.stringify(array))
|
|
|
|
|
- list[index].today = e==1
|
|
|
|
|
- list[index].extra.confirm_time = new Date().getTime()
|
|
|
|
|
- setArray(list)
|
|
|
|
|
- }}
|
|
|
|
|
- color={iFast ? MainColorType.fast : MainColorType.sleep} />
|
|
|
|
|
- </View>
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- expandIndex == index && !chooseDate && <View style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', width: rpxToPx(698) }}>
|
|
|
|
|
- <NewTimePicker time={array[index].time} onChange={(e) => {
|
|
|
|
|
- var list = JSON.parse(JSON.stringify(array))
|
|
|
|
|
- list[index].time = e
|
|
|
|
|
- list[index].extra.confirm_time = new Date().getTime()
|
|
|
|
|
- setArray(list)
|
|
|
|
|
- }} color={iFast ? MainColorType.fast : MainColorType.sleep} />
|
|
|
|
|
- </View>
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- expandIndex == index && !chooseDate && <View className='card_footer'>
|
|
|
|
|
- <NewButton type={NewButtonType.link}
|
|
|
|
|
- title={changeTimeText(schedule_time, time)}
|
|
|
|
|
- onClick={() => tapChangeTime(schedule_time, time, index)}
|
|
|
|
|
- >
|
|
|
|
|
- <View style={{ marginRight: rpxToPx(12), display: 'flex' }}>
|
|
|
|
|
- <IconCalendar width={rpxToPx(24)} color='#5C7099' />
|
|
|
|
|
- </View>
|
|
|
|
|
- </NewButton>
|
|
|
|
|
- </View>
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- showLine && <View className="border_footer_line" style={{ left: rpxToPx(66) }} />
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- </View>
|
|
|
|
|
|
|
+ return <ChooseDateTime
|
|
|
|
|
+ title={isSingle ? null : title}
|
|
|
|
|
+ disable={array[index].disable}
|
|
|
|
|
+ showError={showError}
|
|
|
|
|
+ showLine={showLine}
|
|
|
|
|
+ footerTitle={changeTimeText(schedule_time, time)}
|
|
|
|
|
+ tapFooter={() => tapChangeTime(schedule_time, time, index)}
|
|
|
|
|
+ color={iFast ? MainColorType.fast : MainColorType.sleep}
|
|
|
|
|
+ minTimestamp={min}
|
|
|
|
|
+ date={date}
|
|
|
|
|
+ time={time}
|
|
|
|
|
+ expand={expandIndex == index}
|
|
|
|
|
+ choose={() => {
|
|
|
|
|
+ setExpandIndex(index)
|
|
|
|
|
+ }}
|
|
|
|
|
+ dateChange={(e) => {
|
|
|
|
|
+ var list = JSON.parse(JSON.stringify(array))
|
|
|
|
|
+ list[index].date = e
|
|
|
|
|
+ list[index].extra.confirm_time = new Date().getTime()
|
|
|
|
|
+ setArray(list)
|
|
|
|
|
+ }}
|
|
|
|
|
+ timeChange={(e) => {
|
|
|
|
|
+ var list = JSON.parse(JSON.stringify(array))
|
|
|
|
|
+ list[index].time = e
|
|
|
|
|
+ list[index].extra.confirm_time = new Date().getTime()
|
|
|
|
|
+ setArray(list)
|
|
|
|
|
+ }}
|
|
|
|
|
+ />
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function multiContent() {
|
|
function multiContent() {
|