Leon 2 anos atrás
pai
commit
72abea53ff

+ 9 - 7
src/app.config.ts

@@ -17,7 +17,9 @@ const appConfig = defineAppConfig({
     'pages/account/ProfileSetting',
     'pages/account/Setting',
     'pages/account/EditPage',
-    'pages/workout/WorkoutDetail'
+    'pages/workout/WorkoutDetail',
+    'pages/workout/Working',
+    'pages/workout/History'
   ],
   subPackages: [
     {
@@ -27,8 +29,8 @@ const appConfig = defineAppConfig({
       ]
     }
   ],
-  usingComponents:{
-    'mysvg':'./components/basic/svg'
+  usingComponents: {
+    'mysvg': './components/basic/svg'
   },
   // tabBar: {
   //   custom: true,
@@ -64,10 +66,10 @@ const appConfig = defineAppConfig({
 
 process.env.TARO_ENV === 'weapp' && (appConfig.tabBar = {
   custom: true,
-  backgroundColor:'#000',
-  color:'#ffffff66',
-  selectedColor:'#ffffff',
-  borderStyle:'black',
+  backgroundColor: '#000',
+  color: '#ffffff66',
+  selectedColor: '#ffffff',
+  borderStyle: 'black',
   list: [
     {
       pagePath: 'pages/clock/Clock',

+ 2 - 1
src/components/input/LimitPickers.tsx

@@ -193,9 +193,10 @@ const Component = forwardRef((props: {
 
         if (!props.isRealTime) {
             date = new Date(global.set_time);
+            date.setDate(today.getDate() - ((props.limitDay ? props.limitDay - 1 : 6) - values[0]));
         }
 
-        // date.setDate(today.getDate() - ((props.limitDay ? props.limitDay - 1 : 6) - values[0]));
+        // 
         date.setHours(values[1])
         date.setMinutes(values[2])
         props.onChange(date.getTime())

+ 0 - 2
src/components/input/PickerViews.tsx

@@ -15,8 +15,6 @@ const Component = forwardRef((props: {
     var color = props.themeColor ? props.themeColor : '#ff0000'
     var alpha = alphaToHex(0.4)
 
-    console.log('apple')
-
     useEffect(() => {
         setV(props.value)
     }, [props.value])

+ 20 - 2
src/features/food/FoodJournal.tsx

@@ -90,6 +90,24 @@ export default function Component() {
         setCount(count + 1)
     }
 
+    function removeIndex(index) {
+        list.map(item => {
+            item.showDate = false
+        })
+
+        var selDate = ''
+        for (var i = 0; i < list.length; i++) {
+            var obj = list[i]
+            if (obj.start.date != selDate) {
+                obj.showDate = true
+                selDate = obj.start.date
+            }
+        }
+        list.splice(index, 1)
+        setList(list)
+        setCount(count + 1)
+    }
+
     function getConfigs() {
         getFoodTags({
             type: 'meal_tag'
@@ -194,12 +212,12 @@ export default function Component() {
             tempFirst = null
         }
         return <View style={{ position: 'relative', marginTop: rpxToPx(52) }}>
-            <Timer />
+            {/* <Timer /> */}
             {
                 (loaded || !user.isLogin) && <FoodConsole addItem={addItem} firstItem={tempFirst} />
             }
             {
-                user.isLogin && list && <FoodTimeline array={list} refresh={() => refreshData()} forceRefresh={() => getList(1)} />
+                user.isLogin && list && <FoodTimeline array={list} refresh={() => refreshData()} forceRefresh={() => getList(1)} removeIndex={removeIndex}/>
             }
             {
                 user.isLogin && showError && <NoData refresh={() => { getList(1) }} />

+ 5 - 4
src/features/food/FoodTimeline.tsx

@@ -5,7 +5,7 @@ import { useEffect, useState } from 'react'
 import { delFoodJournal } from '@/services/foodJournal'
 import Taro from '@tarojs/taro'
 
-export default function Component(props: { array: any, refresh: Function, forceRefresh: Function }) {
+export default function Component(props: { array: any, refresh: Function, forceRefresh: Function,removeIndex:Function }) {
     const [list, setList] = useState(props.array)
 
     useEffect(() => {
@@ -14,9 +14,10 @@ export default function Component(props: { array: any, refresh: Function, forceR
 
     function del(index) {
         delFoodJournal(list[index].id).then(res => {
-            var temps = list.splice(index, 1)
-            setList(temps)
-            props.refresh()
+            props.removeIndex(index)
+            // var temps = list.splice(index, 1)
+            // setList(temps)
+            // props.refresh()
         }).catch(e => {
 
         })

+ 8 - 3
src/features/trackSomething/components/Activity.tsx

@@ -429,7 +429,9 @@ export default function Component(props: any) {
                 btnText={'计时训练'}
                 isDisabled={false}
                 themeColor={ColorType.workout}
-                onClickDetail={() => { }}
+                onClickDetail={() => { Taro.navigateTo({
+                    url:'/pages/workout/History'
+                }) }}
                 showBadge={showErrorBadge && checkResult.type == 'idle'}
                 showDetail={false}
                 onClick={() => {
@@ -453,10 +455,13 @@ export default function Component(props: any) {
                 setShowModal(false)
             }} confirm={() => { }} modalType={ModalType.center}>
                 {
-                    !isStart && <SetGoal start={(count) => { setTargetTime(count); setIsStart(true) }} />
+                    !isStart && <SetGoal start={(count) => { setTargetTime(count); setShowModal(false);Taro.navigateTo({url:'/pages/workout/Working?count='+count}) }} />
                 }
                 {
-                    isStart && <Working targetCount={targetTime} type={WorkoutType.multi}/>
+                    isStart && <Working targetCount={targetTime} type={WorkoutType.multi} end={() => {
+                        setIsStart(false)
+                        setShowModal(false)
+                    }}/>
                 }
             </Modal>
         }

+ 2 - 0
src/features/workout/Result.tsx

@@ -1,3 +1,4 @@
+import { ColorType } from "@/context/themes/color";
 import { View,Text } from "@tarojs/components";
 import { useRouter } from "@tarojs/taro";
 import { useEffect, useState } from "react";
@@ -46,6 +47,7 @@ export default function Component(){
                 }
                 return <View key={index} style={{ display: 'flex', flexDirection: 'row', justifyContent: 'space-between', width: '100%', color: '#fff' }}>
                     <Text>{item.type == 'end' ? `第${item.index}组` : '组间休息'}</Text>
+                    {item.type == 'end'  && <Text style={{ color: ColorType.workout }}>{item.value}x{item.value2}个</Text>}
                     <Text>{twoTimeDuration(histories[index - 1].time, item.time)}</Text>
                 </View>
             })

+ 33 - 4
src/features/workout/Working.tsx

@@ -10,7 +10,7 @@ import PickerViews from "@/components/input/PickerViews";
 
 var timer
 var lastStrTime
-export default function Component(props: { targetCount: number, type: WorkoutType }) {
+export default function Component(props: { targetCount: any, type: WorkoutType,end:Function }) {
     const [index, setIndex] = useState(1)
     const [count, setCount] = useState(0)
     const [startTime, setStartTime] = useState(new Date().getTime())
@@ -19,6 +19,7 @@ export default function Component(props: { targetCount: number, type: WorkoutTyp
     const [groups, setGroups] = useState<any[]>([])
     const [isDoing, setIsDoing] = useState(true)
     const [showModal, setShowModal] = useState(false)
+    const [needTerminal, setNeedTerminal] = useState(false)
 
     const items = [[1, 2, 3, 4, 5, 6]]
     const [selIndex, setSelIndex] = useState([1])
@@ -107,12 +108,29 @@ export default function Component(props: { targetCount: number, type: WorkoutTyp
         setGroups(array)
     }
 
+    function checkEnd() {
+        if (groups[groups.length - 1].type == 'end') {
+            Taro.redirectTo({
+                url: '/pages/workout/WorkoutDetail?detail=' + JSON.stringify(groups)
+            })
+            props.end()
+            return
+        }
+        setNeedTerminal(true)
+        setShowModal(true)
+    }
+
     function terminal() {
+        clearInterval(timer)
         Taro.showModal({
             title: '提示',
             content: '确认结束?',
             success: function (res) {
                 if (res.confirm) {
+                    if (props.type != WorkoutType.normal) {
+                        checkEnd()
+                        return;
+                    }
                     var array = groups;
                     var time = new Date().getTime()
                     array.push({
@@ -123,10 +141,12 @@ export default function Component(props: { targetCount: number, type: WorkoutTyp
                     setIsDoing(false)
                     setGroups(array)
 
-                    Taro.navigateTo({
+                    Taro.redirectTo({
                         url: '/pages/workout/WorkoutDetail?detail=' + JSON.stringify(array)
                     })
+                    props.end()
                 } else if (res.cancel) {
+                    resume()
                     console.log('用户点击取消')
                 }
             }
@@ -141,11 +161,20 @@ export default function Component(props: { targetCount: number, type: WorkoutTyp
         array.push({
             index: index,
             time: tempTime,
-            value: e.length>0?multiItems[0][e[0]]:items[e[0]],
-            value2:e.length>0?multiItems[1][e[1]]:null,
+            value: e.length > 0 ? multiItems[0][e[0]] : items[e[0]],
+            value2: e.length > 0 ? multiItems[1][e[1]] : null,
             type: 'end'
         })
         setIsDoing(false)
+        if (needTerminal) {
+            Taro.redirectTo({
+                url: '/pages/workout/WorkoutDetail?detail=' + JSON.stringify(groups)
+            })
+            props.end()
+            return;
+        }
+
+
         setStartTime(tempTime)
         setGroups(array)
         resume()

+ 0 - 2
src/pages/account/Auth.tsx

@@ -5,8 +5,6 @@ import { View } from "@tarojs/components";
 
 
 export default function Page(props) {
-    
-    console.log('apple')
     const router = useRouter();
 
     var type = router.params.type

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

@@ -35,7 +35,7 @@ export default function Page() {
 
     return <View style={{ color: '#fff',display:'flex',flexDirection:'column' }}>
         <View style={{height:20}}/>
-        <TableCell title={t('page.setting.version')} ><Text style={{ opacity: 0.8 }}>1.2.7</Text></TableCell>
+        <TableCell title={t('page.setting.version')} ><Text style={{ opacity: 0.8 }}>1.2.9</Text></TableCell>
         {/* <Text style={{color:'#9E9E9E',textAlign:'center',fontSize:14}}>v1.2.2</Text> */}
         
         <Footer>

+ 0 - 0
src/pages/workout/History.scss


+ 37 - 0
src/pages/workout/History.tsx

@@ -0,0 +1,37 @@
+import { View, Text } from "@tarojs/components";
+import './History.scss'
+import Box from "@/components/layout/Box";
+
+export default function Page() {
+    return <View style={{color:'#fff'}}>
+        <Text>平板支撑</Text>
+        <View>
+            <View>
+                <Text>累积训练总量</Text>
+                <Text>200 分钟</Text>
+            </View>
+            <View>
+                <Text>累积次数</Text>
+                <Text>5次</Text>
+            </View>
+        </View>
+        <Text>全部训练</Text>
+        <Box onClick={()=>{}}>
+            <View>
+                <Text>第1次</Text>
+                <View>
+                    <View>
+                        <Text>训练总量</Text>
+                        <Text>50分钟</Text>
+                    </View>
+                    <View>
+                        <Text>训练用时</Text>
+                        <Text>50分钟</Text>
+                    </View>
+                </View>
+                <Text>今天11:11</Text>
+            </View>
+        </Box>
+
+    </View>
+}

+ 11 - 0
src/pages/workout/Working.tsx

@@ -0,0 +1,11 @@
+import Working from "@/features/workout/Working";
+import { WorkoutType } from "@/utils/types";
+import { View } from "@tarojs/components";
+import { useRouter } from "@tarojs/taro";
+
+export default function Page(){
+    const router = useRouter();
+    return <View>
+        <Working targetCount={router.params.count} type={WorkoutType.multi} end={(e)=>{}}/>
+    </View>
+}