|
|
@@ -16,6 +16,8 @@ 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";
|
|
|
|
|
|
|
|
|
let useRoute;
|
|
|
@@ -28,7 +30,6 @@ if (process.env.TARO_ENV == 'rn') {
|
|
|
|
|
|
export default function AddMoment() {
|
|
|
const [desc, setDesc] = useState('')
|
|
|
- const [title, setTitle] = useState('')
|
|
|
const { t } = useTranslation()
|
|
|
const [imgUrl, setImgUrl] = useState('')
|
|
|
const [startTime, setStartTime] = useState(0)
|
|
|
@@ -38,6 +39,9 @@ export default function AddMoment() {
|
|
|
const [durationT, setDurationT] = useState(0)
|
|
|
const dispatch = useDispatch()
|
|
|
const health = useSelector((state: any) => state.health);
|
|
|
+ const [timestamp, setTimestamp] = useState(new Date().getTime())
|
|
|
+ const [showTimePicker, setShowTimePicker] = useState(false)
|
|
|
+ const [showTitlePicker, setShowTitlePicker] = useState(false)
|
|
|
|
|
|
|
|
|
|
|
|
@@ -54,47 +58,19 @@ export default function AddMoment() {
|
|
|
router = useRouter()
|
|
|
}
|
|
|
|
|
|
- const [moment, setMoment] = useState(JSON.parse(router.params.moment))
|
|
|
+ const [time, setTime] = useState(dayjs().format('HH:mm'))
|
|
|
+ const [title, setTitle] = useState(router.params.title)
|
|
|
+
|
|
|
+ const { event_id, is_temp, schedule_id } = router.params
|
|
|
+
|
|
|
|
|
|
useEffect(() => {
|
|
|
global.set_time = new Date().getTime()
|
|
|
-
|
|
|
- var obj = JSON.parse(router.params.moment)
|
|
|
- if (obj.target) {
|
|
|
- obj.target.timestamp = new Date().getTime()
|
|
|
- setDurationT(obj.target.duration ?? 0)
|
|
|
+ if (is_temp && title == '') {
|
|
|
+ setShowTimePicker(true)
|
|
|
}
|
|
|
-
|
|
|
- setMoment(obj)
|
|
|
-
|
|
|
-
|
|
|
- // var obj = JSON.parse(router.params.moment)
|
|
|
- // var start = dayjs(obj.target.timestamp).format('HH:mm')
|
|
|
- // setStartTime(start)
|
|
|
- // setEndTime(obj.target_end_time)
|
|
|
}, [])
|
|
|
|
|
|
- function getIntervalHoursAndMinutes(time1, time2) {
|
|
|
- // 将时间字符串转换为 Date 对象
|
|
|
- const date1 = new Date(`2000-01-01T${time1}Z`);
|
|
|
- const date2 = new Date(`2000-01-02T${time2}Z`);
|
|
|
-
|
|
|
- // 计算两个 Date 对象之间的时间差
|
|
|
- let intervalMs = Math.abs(date2.getTime() - date1.getTime());
|
|
|
-
|
|
|
- // 如果 time2 比 time1 小, 说明跨天了, 需要加上一天的毫秒数
|
|
|
- if (date2 < date1) {
|
|
|
- intervalMs += 24 * 60 * 60 * 1000;
|
|
|
- }
|
|
|
-
|
|
|
- // 计算小时和分钟差
|
|
|
- const intervalSeconds = Math.floor(intervalMs / 1000);
|
|
|
- const hours = Math.floor(intervalSeconds / 3600);
|
|
|
- const minutes = Math.floor((intervalSeconds % 3600) / 60);
|
|
|
-
|
|
|
- return { hours, minutes };
|
|
|
- }
|
|
|
-
|
|
|
function duration() {
|
|
|
const seconds = durationT / 1000
|
|
|
var hours = Math.floor(seconds / 3600)
|
|
|
@@ -104,11 +80,9 @@ export default function AddMoment() {
|
|
|
if (hours > 0) {
|
|
|
time = hours + '小时'
|
|
|
}
|
|
|
- console.log(time)
|
|
|
if (minutes > 0) {
|
|
|
time += minutes + '分钟'
|
|
|
}
|
|
|
- console.log(time)
|
|
|
return time
|
|
|
}
|
|
|
|
|
|
@@ -144,29 +118,15 @@ export default function AddMoment() {
|
|
|
return
|
|
|
}
|
|
|
var params: any = {
|
|
|
- schedule_id: moment.schedule_id,
|
|
|
- title: moment.title,
|
|
|
+ schedule_id: schedule_id,
|
|
|
+ title: title,
|
|
|
description: desc,
|
|
|
- }
|
|
|
-
|
|
|
- if (moment.target) {
|
|
|
- params.start = {
|
|
|
- date: dayjs(moment.target.timestamp).format('YYYYMMDD'),
|
|
|
- timestamp: moment.target.timestamp
|
|
|
- }
|
|
|
- }
|
|
|
- else {
|
|
|
- params.start = {
|
|
|
- date: dayjs().format('YYYYMMDD'),
|
|
|
- timestamp: new Date().getTime()
|
|
|
+ start: {
|
|
|
+ date: dayjs(timestamp).format('YYYYMMDD'),
|
|
|
+ timestamp: timestamp
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (title.length > 0) {
|
|
|
- params.title = title
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
|
|
|
if (imgUrl.length > 0) {
|
|
|
params.media = [{
|
|
|
@@ -175,12 +135,12 @@ export default function AddMoment() {
|
|
|
source: 'album'
|
|
|
}]
|
|
|
}
|
|
|
- if (moment.event_id) {
|
|
|
- params.event_id = moment.event_id
|
|
|
- }
|
|
|
- if (moment.target && moment.target.duration) {
|
|
|
- params.duration = durationT//moment.target.duration
|
|
|
+ if (event_id) {
|
|
|
+ params.event_id = event_id
|
|
|
}
|
|
|
+ // if (moment.target && moment.target.duration) {
|
|
|
+ // params.duration = durationT//moment.target.duration
|
|
|
+ // }
|
|
|
|
|
|
params.extra = {
|
|
|
set_time: global.set_time ? global.set_time : new Date().getTime(),
|
|
|
@@ -284,11 +244,9 @@ export default function AddMoment() {
|
|
|
}
|
|
|
|
|
|
function pickerContent() {
|
|
|
- const timestamp = moment.target.timestamp
|
|
|
- const strTime = dayjs(timestamp).format('HH:mm')
|
|
|
- return <TimePicker time={strTime}
|
|
|
+ return <TimePicker time={time}
|
|
|
color={MainColorType.eat}
|
|
|
- title={moment.title}
|
|
|
+ title={title}
|
|
|
confirm={(e) => {
|
|
|
confirmPickerTime(e)
|
|
|
}}
|
|
|
@@ -304,15 +262,7 @@ export default function AddMoment() {
|
|
|
date.setMinutes(list[1])
|
|
|
|
|
|
console.log(date)
|
|
|
-
|
|
|
- // const duration = meal.target_end_time-meal.target_start_time
|
|
|
- // const endDate = date.getTime()+duration;
|
|
|
- var data = JSON.parse(JSON.stringify(moment))
|
|
|
- data.target.timestamp = date.getTime()
|
|
|
- // data.schedule_end_time = dayjs(endDate).format('HH:mm')
|
|
|
- // data.target_starts_time = date.getTime()
|
|
|
- // data.target_end_time = date.getTime()+duration
|
|
|
- setMoment(data)
|
|
|
+ setTimestamp(date.getTime())
|
|
|
setShowPicker(false)
|
|
|
}
|
|
|
|
|
|
@@ -322,7 +272,7 @@ export default function AddMoment() {
|
|
|
|
|
|
|
|
|
return <View>
|
|
|
- {
|
|
|
+ {/* {
|
|
|
health.mode != 'FAST' && health.mode != 'SLEEP' &&
|
|
|
<View className="addmoment_header">
|
|
|
<Text className="header_time" onClick={tapTime} style={{ color: getThemeColor(health.mode) }}>{dayjs().format('HH:mm')}</Text>
|
|
|
@@ -333,7 +283,14 @@ export default function AddMoment() {
|
|
|
(health.mode == 'EAT' || health.mode == 'ACTIVE') && <Text className="header_time" style={{ color: getThemeColor(health.mode) }} onClick={tapDuration}>{duration()}</Text>
|
|
|
}
|
|
|
</View>
|
|
|
- }
|
|
|
+ } */}
|
|
|
+
|
|
|
+ <View className="addmoment_header">
|
|
|
+ <Text onClick={() => {
|
|
|
+ setShowTimePicker(true)
|
|
|
+ }} style={{ marginLeft: 20, color: '#5C7099' }}>{time}</Text>
|
|
|
+ <Text style={{ marginLeft: 20, color: '#5C7099' }}>{title}</Text>
|
|
|
+ </View>
|
|
|
|
|
|
<View className="form">
|
|
|
<View>
|
|
|
@@ -360,8 +317,16 @@ export default function AddMoment() {
|
|
|
{
|
|
|
showPicker && timeContent()
|
|
|
}
|
|
|
-
|
|
|
{
|
|
|
+ showTimePicker && <PostMomentTime time={time} onChange={(e) => {
|
|
|
+ setTime(e)
|
|
|
+ setShowTimePicker(false)
|
|
|
+ }} dismiss={() => {
|
|
|
+ setShowTimePicker(false)
|
|
|
+ }} />
|
|
|
+ }
|
|
|
+
|
|
|
+ {/* {
|
|
|
durationPicker && <DurationPicker
|
|
|
title='进食时长'
|
|
|
done={(time) => {
|
|
|
@@ -373,6 +338,9 @@ export default function AddMoment() {
|
|
|
dismiss={() => {
|
|
|
setDurationPicker(false)
|
|
|
}} time={durationT} />
|
|
|
+ } */}
|
|
|
+ {
|
|
|
+
|
|
|
}
|
|
|
{/* <Text> add eat detail</Text> */}
|
|
|
</View>
|