|
|
@@ -12,13 +12,19 @@ import Footer from "@/components/Footer";
|
|
|
import PickerViews from "@/components/PickerViews";
|
|
|
import { AtFloatLayout } from "taro-ui";
|
|
|
import "taro-ui/dist/style/components/float-layout.scss";
|
|
|
-import { pickerDurations } from "../hooks/Console";
|
|
|
+import { durationDatas, durationIndex, durationTime, pickerDurations } from "../hooks/Console";
|
|
|
+import { TimeFormatter } from "@/utils/time_format";
|
|
|
|
|
|
export default function Component() {
|
|
|
+ const isFastFirst = false;
|
|
|
const dispatch = useDispatch();
|
|
|
const scenario = useSelector((state: any) => state.scenario);
|
|
|
- const [pickerValue, setPickerValue] = useState(0)
|
|
|
+ const common = useSelector((state: any) => state.common);
|
|
|
+
|
|
|
const [isOpen, setIsOpen] = useState(false)
|
|
|
+
|
|
|
+ // const [count,setCount] = useState(0)
|
|
|
+ const [beginChange, setBeginChange] = useState(true)
|
|
|
var scheduleObj: { start_time: any; end_time: any; };
|
|
|
if (scenario.name == 'FAST') {
|
|
|
scheduleObj = scenario.schedule.fast
|
|
|
@@ -37,6 +43,10 @@ export default function Component() {
|
|
|
|
|
|
const [startTime, setStartTime] = useState(scheduleObj.start_time)
|
|
|
const [endTime, setEndTime] = useState(scheduleObj.end_time)
|
|
|
+ const [pickerValue, setPickerValue] = useState(durationIndex(scheduleObj.start_time, scheduleObj.end_time, common))
|
|
|
+
|
|
|
+ const [hours, setHours] = useState(durationTime(scheduleObj.start_time, scheduleObj.end_time)[0])
|
|
|
+ const [minutes, setMinutes] = useState(durationTime(scheduleObj.start_time, scheduleObj.end_time)[1])
|
|
|
|
|
|
function start() {
|
|
|
if (scenario.name == 'FAST' || scenario.name == 'SLEEP') {
|
|
|
@@ -59,44 +69,71 @@ export default function Component() {
|
|
|
})
|
|
|
}
|
|
|
else {
|
|
|
- if (scenario.step == 'fast') {
|
|
|
+ if ((scenario.step == 'fast' && isFastFirst) || (scenario.step == 'sleep' && !isFastFirst)) {
|
|
|
var obj = JSON.parse(JSON.stringify(scenario))
|
|
|
- obj.schedule.fast = {
|
|
|
- start_time: startTime,
|
|
|
- end_time: endTime,
|
|
|
+ if (isFastFirst) {
|
|
|
+ obj.schedule.fast = {
|
|
|
+ start_time: startTime,
|
|
|
+ end_time: endTime,
|
|
|
+ }
|
|
|
+ dispatch(setStep('sleep'))
|
|
|
+ dispatch(setScenario(obj))
|
|
|
}
|
|
|
- dispatch(setStep('sleep'))
|
|
|
- dispatch(setScenario(obj))
|
|
|
+ else {
|
|
|
+ obj.schedule.sleep = {
|
|
|
+ start_time: startTime,
|
|
|
+ end_time: endTime,
|
|
|
+ }
|
|
|
+ dispatch(setStep('fast'))
|
|
|
+ dispatch(setScenario(obj))
|
|
|
+ }
|
|
|
+
|
|
|
Taro.navigateTo({
|
|
|
url: '/pages/SetSchedule'
|
|
|
})
|
|
|
}
|
|
|
else {
|
|
|
- setPlan({
|
|
|
- scenario: scenario.name,
|
|
|
- schedule: {
|
|
|
- fast: {
|
|
|
- start_time: scenario.schedule.fast.start_time,
|
|
|
- end_time: scenario.schedule.fast.end_time,
|
|
|
- }, sleep: {
|
|
|
- start_time: startTime,
|
|
|
- end_time: endTime,
|
|
|
- }
|
|
|
- }
|
|
|
- }).then(res => {
|
|
|
- dispatch(setStep('fast'))
|
|
|
- Taro.navigateBack({ delta: 4 })
|
|
|
- })
|
|
|
+ commit()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ function commit() {
|
|
|
+ setPlan({
|
|
|
+ scenario: scenario.name,
|
|
|
+ schedule: {
|
|
|
+ fast: {
|
|
|
+ start_time: isFastFirst ? scenario.schedule.fast.start_time : startTime,
|
|
|
+ end_time: isFastFirst ? scenario.schedule.fast.end_time : endTime,
|
|
|
+ }, sleep: {
|
|
|
+ start_time: !isFastFirst ? scenario.schedule.sleep.start_time : startTime,
|
|
|
+ end_time: !isFastFirst ? scenario.schedule.sleep.end_time : endTime,
|
|
|
+ // start_time: startTime,
|
|
|
+ // end_time: endTime,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).then(res => {
|
|
|
+ dispatch(setStep('fast'))
|
|
|
+ Taro.navigateBack({ delta: 4 })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
function onStartTimeChange(e: string) {
|
|
|
+ setBeginChange(true)
|
|
|
setStartTime(e)
|
|
|
+
|
|
|
+ setPickerValue(durationIndex(e, endTime, common))
|
|
|
+ setHours(durationTime(e, endTime)[0])
|
|
|
+ setMinutes(durationTime(e, endTime)[1])
|
|
|
}
|
|
|
|
|
|
function onEndTimeChange(e: string) {
|
|
|
+ setBeginChange(false)
|
|
|
setEndTime(e)
|
|
|
+
|
|
|
+ setPickerValue(durationIndex(startTime, e, common))
|
|
|
+ setHours(durationTime(startTime, e)[0])
|
|
|
+ setMinutes(durationTime(startTime, e)[1])
|
|
|
}
|
|
|
|
|
|
useReady(() => {
|
|
|
@@ -111,14 +148,22 @@ export default function Component() {
|
|
|
}
|
|
|
|
|
|
function durationChange(e) {
|
|
|
- var count = e[0] * 5 + 60;
|
|
|
- setPickerValue(e[0])
|
|
|
+ var list = durationDatas(common)
|
|
|
+ setHours(list[0][e[0]])
|
|
|
+ setMinutes(list[1][e[1]])
|
|
|
+ setPickerValue(e)
|
|
|
setIsOpen(false)
|
|
|
+ if (beginChange) {
|
|
|
+ setEndTime(TimeFormatter.calculateTimeByTimeRange(list[0][e[0]] * 60 + list[1][e[1]], startTime, true));
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ setStartTime(TimeFormatter.calculateTimeByTimeRange(list[0][e[0]] * 60 + list[1][e[1]], endTime, false));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
function layoutContent() {
|
|
|
- return <View style={{color:'#000'}}>
|
|
|
- <PickerViews onChange={durationChange} items={[pickerDurations()]} value={[pickerValue]} height={200} showBtns={true} onCancel={()=>{setIsOpen(false)}}/>
|
|
|
+ return <View style={{ color: '#000' }}>
|
|
|
+ <PickerViews onChange={durationChange} items={durationDatas(common)} value={pickerValue} height={200} showBtns={true} onCancel={() => { setIsOpen(false) }} />
|
|
|
</View>
|
|
|
}
|
|
|
|
|
|
@@ -137,7 +182,7 @@ export default function Component() {
|
|
|
|
|
|
</View>
|
|
|
<View style={{ flex: 1 }} />
|
|
|
- <Text className="duration" onClick={()=>{setIsOpen(true)}}>16 hours 00 mins</Text>
|
|
|
+ <Text className="duration" onClick={() => { setIsOpen(true) }}>{hours > 0 ? hours + ' hours ' : ''}{minutes > 0 ? minutes + ' minutes' : ''}</Text>
|
|
|
</View>
|
|
|
|
|
|
<Footer child={
|