leon 1 年之前
父节点
当前提交
47ccbdad90
共有 54 个文件被更改,包括 252 次插入121 次删除
  1. 二进制
      ios/assets/src/assets/_health/album.png
  2. 二进制
      ios/assets/src/assets/_health/calendar.png
  3. 二进制
      ios/assets/src/assets/_health/camera.png
  4. 二进制
      ios/assets/src/assets/_health/cell_arrow.png
  5. 二进制
      ios/assets/src/assets/_health/checked.png
  6. 二进制
      ios/assets/src/assets/_health/drag.png
  7. 二进制
      ios/assets/src/assets/_health/guide_en.png
  8. 二进制
      ios/assets/src/assets/_health/guide_zh.png
  9. 二进制
      ios/assets/src/assets/_health/home.png
  10. 二进制
      ios/assets/src/assets/_health/home_sel.png
  11. 二进制
      ios/assets/src/assets/_health/loading.png
  12. 二进制
      ios/assets/src/assets/_health/main_logo.png
  13. 二进制
      ios/assets/src/assets/_health/navi_back.png
  14. 二进制
      ios/assets/src/assets/_health/next.png
  15. 二进制
      ios/assets/src/assets/_health/no_more.png
  16. 二进制
      ios/assets/src/assets/_health/pre.png
  17. 二进制
      ios/assets/src/assets/_health/setting_album.png
  18. 二进制
      ios/assets/src/assets/_health/setting_calendar.png
  19. 二进制
      ios/assets/src/assets/_health/setting_journal.png
  20. 二进制
      ios/assets/src/assets/_health/setting_more.png
  21. 二进制
      ios/assets/src/assets/_health/setting_streak.png
  22. 二进制
      ios/assets/src/assets/_health/sleep2.png
  23. 二进制
      ios/assets/src/assets/_health/social.png
  24. 二进制
      ios/assets/src/assets/_health/social2.png
  25. 二进制
      ios/assets/src/assets/_health/social_sel.png
  26. 二进制
      ios/assets/src/assets/_health/tag_polar.png
  27. 二进制
      ios/assets/src/assets/_health/tag_polar_day.png
  28. 二进制
      ios/assets/src/assets/_health/tag_polar_night.png
  29. 二进制
      ios/assets/src/assets/_health/tip_check.png
  30. 二进制
      ios/assets/src/assets/_health/tip_error.png
  31. 二进制
      ios/assets/src/assets/_health/user.png
  32. 二进制
      ios/assets/src/assets/_health/user_sel.png
  33. 二进制
      ios/assets/src/assets/_health/wechat.png
  34. 二进制
      ios/assets/src/assets/images/add.png
  35. 二进制
      ios/assets/src/assets/images/add2.png
  36. 二进制
      ios/assets/src/assets/images/center_arrow.png
  37. 二进制
      ios/assets/src/assets/images/pointer.png
  38. 二进制
      ios/assets/src/assets/images/scale_center2.png
  39. 二进制
      ios/assets/src/assets/images/user.png
  40. 2 2
      ios/hola.xcodeproj/project.pbxproj
  41. 0 1
      ios/main.jsbundle
  42. 3 0
      src/_account/pages/ProfileSetting.tsx
  43. 13 8
      src/_moment/pages/home.tsx
  44. 3 1
      src/_record/components/picker_card.tsx
  45. 6 1
      src/_record/pages/log_record.scss
  46. 29 12
      src/_record/pages/log_record.tsx
  47. 13 8
      src/_record/pages/time_record.scss
  48. 41 6
      src/_record/pages/time_record.tsx
  49. 5 3
      src/pages/clock/components/choose_actions.tsx
  50. 3 1
      src/pages/moment/moment_item.scss
  51. 27 3
      src/pages/moment/moment_item.tsx
  52. 99 72
      src/pages/moment/moment_main.tsx
  53. 8 0
      src/pages/rn/RNMain.tsx
  54. 0 3
      src/services/http/request.ts

二进制
ios/assets/src/assets/_health/album.png


二进制
ios/assets/src/assets/_health/calendar.png


二进制
ios/assets/src/assets/_health/camera.png


二进制
ios/assets/src/assets/_health/cell_arrow.png


二进制
ios/assets/src/assets/_health/checked.png


二进制
ios/assets/src/assets/_health/drag.png


二进制
ios/assets/src/assets/_health/guide_en.png


二进制
ios/assets/src/assets/_health/guide_zh.png


二进制
ios/assets/src/assets/_health/home.png


二进制
ios/assets/src/assets/_health/home_sel.png


二进制
ios/assets/src/assets/_health/loading.png


二进制
ios/assets/src/assets/_health/main_logo.png


二进制
ios/assets/src/assets/_health/navi_back.png


二进制
ios/assets/src/assets/_health/next.png


二进制
ios/assets/src/assets/_health/no_more.png


二进制
ios/assets/src/assets/_health/pre.png


二进制
ios/assets/src/assets/_health/setting_album.png


二进制
ios/assets/src/assets/_health/setting_calendar.png


二进制
ios/assets/src/assets/_health/setting_journal.png


二进制
ios/assets/src/assets/_health/setting_more.png


二进制
ios/assets/src/assets/_health/setting_streak.png


二进制
ios/assets/src/assets/_health/sleep2.png


二进制
ios/assets/src/assets/_health/social.png


二进制
ios/assets/src/assets/_health/social2.png


二进制
ios/assets/src/assets/_health/social_sel.png


二进制
ios/assets/src/assets/_health/tag_polar.png


二进制
ios/assets/src/assets/_health/tag_polar_day.png


二进制
ios/assets/src/assets/_health/tag_polar_night.png


二进制
ios/assets/src/assets/_health/tip_check.png


二进制
ios/assets/src/assets/_health/tip_error.png


二进制
ios/assets/src/assets/_health/user.png


二进制
ios/assets/src/assets/_health/user_sel.png


二进制
ios/assets/src/assets/_health/wechat.png


二进制
ios/assets/src/assets/images/add.png


二进制
ios/assets/src/assets/images/add2.png


二进制
ios/assets/src/assets/images/center_arrow.png


二进制
ios/assets/src/assets/images/pointer.png


二进制
ios/assets/src/assets/images/scale_center2.png


二进制
ios/assets/src/assets/images/user.png


+ 2 - 2
ios/hola.xcodeproj/project.pbxproj

@@ -580,7 +580,7 @@
 				CODE_SIGN_ENTITLEMENTS = hola/hola.entitlements;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 135;
+				CURRENT_PROJECT_VERSION = 136;
 				DEVELOPMENT_TEAM = GPMXAZ9G5N;
 				ENABLE_BITCODE = NO;
 				INFOPLIST_FILE = hola/Info.plist;
@@ -613,7 +613,7 @@
 				CODE_SIGN_ENTITLEMENTS = hola/hola.entitlements;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 135;
+				CURRENT_PROJECT_VERSION = 136;
 				DEVELOPMENT_TEAM = GPMXAZ9G5N;
 				INFOPLIST_FILE = hola/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = (

文件差异内容过多而无法显示
+ 0 - 1
ios/main.jsbundle


+ 3 - 0
src/_account/pages/ProfileSetting.tsx

@@ -101,17 +101,20 @@ export default function Page() {
                 file_ext: fileExt
             },
             success: (rsp) => {
+                debugger
                 Taro.uploadFile({
                     url: rsp.data.upload_url,
                     filePath: avatarUrl,
                     name: 'file',
                     formData: rsp.data.fields,
                     success: rlt => {
+                        debugger
                         console.log(rlt)
                         uploadAvatar(rsp.data.view_url)
                         // _this.changeAvatar(rsp.data.view_url);
                     },
                     fail: rlt => {
+                        debugger
                         Taro.showModal({
                             content: rlt.errMsg
                         })

+ 13 - 8
src/_moment/pages/home.tsx

@@ -30,7 +30,7 @@ export default function UserHome() {
     const systemInfo: any = Taro.getWindowInfo ? Taro.getWindowInfo() : Taro.getSystemInfoSync();
     const navigationBarHeight = systemInfo.statusBarHeight + 44;
 
-    const observerObjBottom = Taro.createIntersectionObserver().relativeToViewport({ bottom: 100 })
+
 
     const [loading, setLoading] = useState(false)
     const [noMore, setNoMore] = useState(false)
@@ -81,12 +81,16 @@ export default function UserHome() {
             measureItemLayouts()
         }, 300)
 
-        observerObjBottom.observe('#footer', (res) => {
-            setEndSignal(endSignal => endSignal + 1)
-            // console.log(moments.length)
-            // if (moments.length==0) return
-            // loadMore()
-        })
+        if (process.env.TARO_ENV == 'weapp') {
+            const observerObjBottom = Taro.createIntersectionObserver().relativeToViewport({ bottom: 100 })
+            observerObjBottom.observe('#footer', (res) => {
+                setEndSignal(endSignal => endSignal + 1)
+                // console.log(moments.length)
+                // if (moments.length==0) return
+                // loadMore()
+            })
+        }
+
     }, [list])
 
     useEffect(() => {
@@ -140,6 +144,7 @@ export default function UserHome() {
     }
 
     function measureItemLayouts() {
+        if (process.env.TARO_ENV == 'rn') return
         if (list.length <= 10) {
             list.forEach((item, index) => {
                 query.select(`#history3-${index}`).boundingClientRect()
@@ -245,7 +250,7 @@ export default function UserHome() {
                 <Image className="home_avatar" src={profile.avatar} />
                 <View className="home_nickname bold">{profile.nickname}</View>
                 <View style={{
-                    position: 'fixed',
+                    position: process.env.TARO_ENV=='rn'?'absolute':'fixed',
                     top: 0,
                     left: 0,
                     zIndex: 10,

+ 3 - 1
src/_record/components/picker_card.tsx

@@ -15,6 +15,8 @@ export default function PickerCard(props: { onClose: any, onConfirm: any, title:
     const [value, setValue] = useState(props.value)
     const [pickerError, setPickerError] = useState('')
     const { t } = useTranslation()
+
+
     return <View className="picker_card_bg_1">
         <View className="picker_card">
             <View className="picker_card_close" onClick={props.onClose}>
@@ -26,7 +28,7 @@ export default function PickerCard(props: { onClose: any, onConfirm: any, title:
                 marginBottom: rpxToPx(8),
                 color: MainColorType.error
             }}>{props.error ? props.error : pickerError}</View>
-            <View style={{ height: rpxToPx(360) }}>
+            <View style={{ height: rpxToPx(360),width:'100%',display:'flex',alignItems:'center',flexDirection:'column' }}>
                 {
                     props.type == 'duration' && <NewDurationPicker color={MainColorType.black} type={DurationPickerType.normal} value={value} onChange={(e) => {
                         setValue(e)

+ 6 - 1
src/_record/pages/log_record.scss

@@ -107,7 +107,7 @@
     margin-bottom: 48px;
 }
 
-.cover {
+.cover1 {
     width: 155px;
     height: 155px;
     background-color: rgba($color: #000, $alpha: 0.05);
@@ -122,6 +122,11 @@
     border-radius: 28px;
 }
 
+.cover2 {
+    width: 155px;
+    height: 155px;
+}
+
 .cover_del {
     position: absolute;
     right: 0;

+ 29 - 12
src/_record/pages/log_record.tsx

@@ -1,4 +1,4 @@
-import { View, Image, PageMeta, NavigationBar, Input, Textarea, ScrollView, Snapshot } from "@tarojs/components";
+import { View, Image, PageMeta, NavigationBar, Input, Textarea, ScrollView, Snapshot, PickerView, PickerViewColumn,Text } from "@tarojs/components";
 import './log_record.scss'
 import { useEffect, useState } from "react";
 import Taro, { useRouter, useShareAppMessage } from "@tarojs/taro";
@@ -23,6 +23,7 @@ import PickerCard from "../components/picker_card";
 import { IconCamera, IconClock } from "../components/record_icon";
 // import QuickLog from "../components/quick_log";
 import FollowInfo from "@/_moment/components/follow_info";
+import NewDateTimePicker from "@/_health/base/new_date_time_picker";
 
 let useRoute;
 let useNavigation;
@@ -32,9 +33,14 @@ if (process.env.TARO_ENV == 'rn') {
     useNavigation = require("@react-navigation/native").useNavigation
     LinearGradient = require('react-native-linear-gradient').default
 }
+let useActionSheet;
+if (process.env.TARO_ENV == 'rn') {
+    useActionSheet = require('@expo/react-native-action-sheet').useActionSheet
+}
+
 export default function LogRecord({ route }) {
     const systemInfo: any = Taro.getWindowInfo ? Taro.getWindowInfo() : Taro.getSystemInfoSync();
-    const navigationBarHeight = systemInfo.statusBarHeight + 44 ;
+    const navigationBarHeight = systemInfo.statusBarHeight + 44;
     const screenHeight = systemInfo.screenHeight
 
     const scale = '?x-oss-process=image/format,jpg/resize,w_400'
@@ -65,7 +71,10 @@ export default function LogRecord({ route }) {
     const [loading, setLoading] = useState(false)
 
 
-
+    let showActionSheetWithOptions;
+    if (process.env.TARO_ENV == 'rn') {
+        showActionSheetWithOptions = useActionSheet()
+    }
 
     let router
     let navigation;
@@ -204,9 +213,12 @@ export default function LogRecord({ route }) {
 
     function tapPic() {
         //, t('health.delete')
+        var list = process.env.TARO_ENV == 'weapp' ? [t('health.add_photos'), t('health.camera2'), t('health.import_chat')] :
+            [t('health.add_photos'), t('health.camera2')]
         showActionSheet({
             title: '',
-            itemList: [t('health.add_photos'), t('health.camera2'), t('health.import_chat')],
+            showActionSheetWithOptions: showActionSheetWithOptions,
+            itemList: list,
             success: function (res) {
                 switch (res) {
                     case 0:
@@ -237,10 +249,10 @@ export default function LogRecord({ route }) {
 
     function addImage(isCamera) {
         var source: any = isCamera ? ['camera'] : ['album']
-        Taro.chooseMedia({
+        Taro.chooseImage({
             count: 9 - pics.length,
             sizeType: ['compressed'],
-            mediaType: ['image'],
+            // mediaType: ['image'],
             sourceType: source,
             success: async function (res) {
                 const results = await Promise.all(res.tempFiles.map(getImageInfo));
@@ -279,6 +291,7 @@ export default function LogRecord({ route }) {
             const fileExt = dot > 0 ? path.substring(dot) : ''
             Taro.request({
                 method: 'GET',
+                timeout: 30000,
                 url: `${baseUrl}/api/thirdparty/aliyun/oss-form-upload`,
                 header: {
                     'Authorization': 'bearer ' + global.token
@@ -293,6 +306,7 @@ export default function LogRecord({ route }) {
                         return
                     }
                     Taro.uploadFile({
+                        timeout: 30000,
                         url: rsp.data.upload_url,
                         filePath: path,
                         name: 'file',
@@ -629,7 +643,7 @@ export default function LogRecord({ route }) {
         </View>
         <View style={{ height: navigationBarHeight }} />
         {
-            step == 0 && <ScrollView style={{  position: 'relative', zIndex: 1000, height: screenHeight - navigationBarHeight }} scrollY>
+            step == 0 && <ScrollView style={{ position: 'relative', zIndex: 1000, height: screenHeight - navigationBarHeight }} scrollY>
                 {/* <Snapshot id="temp"> */}
                 <View className="cardShowAni" style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', marginTop: rpxToPx(26) }}>
                     <Image src={BASE_IMG_URL + 'tag.svg'} style={{ width: rpxToPx(96), height: rpxToPx(96), marginBottom: rpxToPx(24) }} />
@@ -759,12 +773,12 @@ export default function LogRecord({ route }) {
                                 setDesc(e.detail.value)
                             }} />
                         <View className="form2">
+                            
+                            
                             {
                                 pics.map((item, index) => {
-                                    return <View className="cover" key={index}>
-                                        <Image src={item.url + scale} mode="aspectFill" className="cover" style={{
-                                            margin: 0,
-                                        }} key={index} onClick={() => {
+                                    return <View className="cover1" key={index}>
+                                        <Image src={item.url + scale} mode="aspectFill" className="cover2" key={index} onClick={() => {
                                             Taro.previewImage({
                                                 current: pics[index].url,
                                                 urls: pics.map(file => file.url)
@@ -795,7 +809,7 @@ export default function LogRecord({ route }) {
                                 pics.length < 9 && <NewButton
                                     type={NewButtonType.custom}
                                     onClick={tapPic}>
-                                    <View className="cover" style={{}}><IconCamera color="#000" width={rpxToPx(48)} /></View>
+                                    <View className="cover1" style={{}}><IconCamera color="#000" width={rpxToPx(48)} /></View>
                                 </NewButton>
                             }
                         </View>
@@ -825,6 +839,9 @@ export default function LogRecord({ route }) {
 
 
                 </View>
+                <View style={{width:300}}>
+                </View>
+                
             </ScrollView>
         }
         {

+ 13 - 8
src/_record/pages/time_record.scss

@@ -1,9 +1,4 @@
-.navi_bar {
-    position: fixed;
-    left: 0;
-    right: 0;
-    top: 0;
-}
+
 
 .time_card_bg {
     display: flex;
@@ -169,7 +164,12 @@
     align-items: center;
     justify-content: center;
 }
-
+.navi_bar {
+    position: fixed;
+    left: 0;
+    right: 0;
+    top: 0;
+}
 /* #endif */
 
 /* #ifdef rn */
@@ -185,7 +185,12 @@
     align-items: center;
     justify-content: center;
 }
-
+.navi_bar {
+    position: absolute;
+    left: 0;
+    right: 0;
+    top: 0;
+}
 /* #endif */
 
 .share_card {

+ 41 - 6
src/_record/pages/time_record.tsx

@@ -1,4 +1,4 @@
-import { View, Image } from "@tarojs/components";
+import { View, Image, PickerView, PickerViewColumn, Text } from "@tarojs/components";
 import './time_record.scss'
 import Taro, { useRouter, useShareAppMessage } from "@tarojs/taro";
 import { rpxToPx } from "@/utils/tools";
@@ -26,15 +26,18 @@ import MomentDetailShare from "@/pages/moment/moment_detail_share";
 
 let timer
 let useRoute;
-let useNavigation;
+let useNavigation, LinearGradient;
 if (process.env.TARO_ENV == 'rn') {
     useRoute = require("@react-navigation/native").useRoute
     useNavigation = require("@react-navigation/native").useNavigation
+    LinearGradient = require('react-native-linear-gradient').default
 }
 
 export default function TimeRecord() {
     const systemInfo: any = Taro.getWindowInfo ? Taro.getWindowInfo() : Taro.getSystemInfoSync();
     const navigationBarHeight = systemInfo.statusBarHeight + 44;
+    const screenHeight = systemInfo.screenHeight
+
     const record = useSelector((state: any) => state.record);
     const long = useSelector((state: any) => state.long);
     const user = useSelector((state: any) => state.user);
@@ -407,7 +410,7 @@ export default function TimeRecord() {
                             top: 22 - rpxToPx(32)
                         }}
                             onClick={() => {
-                                Taro.navigateBack()
+                                process.env.TARO_ENV == 'weapp' ? Taro.navigateBack() : navigation.goBack()
                             }}>
                             <IconClose color="#fff" width={rpxToPx(64)} height={rpxToPx(64)} />
                         </View>
@@ -539,10 +542,41 @@ export default function TimeRecord() {
         }
     }
 
+    function bgView() {
+        if (process.env.TARO_ENV == 'weapp') {
+            return <View className="main_bg" style={{ background: getBackground() }} />
+        }
+        var time = record.time
+        if (!time) return <View />
+        const { background_colors } = time
+        if (!background_colors) {
+            return <View />
+        }
+        else if (background_colors.length == 1) {
+            return <View />
+        }
+        return <LinearGradient style={{
+            position: 'absolute',
+            left: 0,
+            top: 0,
+
+            width: rpxToPx(750),
+            height: screenHeight,
+            zIndex: 0,
+            pointerEvents: 'none'
+        }}
+            colors={[background_colors[0], background_colors[1]]}
+            start={{ x: 0, y: 0 }}
+            end={{ x: 0, y: 1 }} pointerEvents="none" />
+    }
+
     function render() {
 
         return <View style={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}>
-            <View className="main_bg" style={{ background: getBackground() }} />
+            {/* <View className="main_bg" style={{ background: getBackground() }} /> */}
+            {
+                bgView()
+            }
             <View className="navi_bar" style={{ height: navigationBarHeight }}>
                 <View style={{
                     position: 'absolute',
@@ -562,7 +596,7 @@ export default function TimeRecord() {
                         top: 22 - rpxToPx(32)
                     }}
                         onClick={() => {
-                            Taro.navigateBack()
+                            process.env.TARO_ENV == 'weapp' ? Taro.navigateBack() : navigation.goBack()
                         }}
                     />
                     <View className="h36 bold">{naviTitle()}</View>
@@ -597,6 +631,7 @@ export default function TimeRecord() {
                         extra={ringExtra()}
                     />
                 </View>
+               
                 {
                     status == 'OG' && <View className="operate_content" style={{ marginTop: -rpxToPx(20) }}>
                         <NewButton type={NewButtonType.custom} onClick={() => {
@@ -688,7 +723,7 @@ export default function TimeRecord() {
             } */}
 
             {
-                router.params.join_id && <FollowInfo user={long.follow} timeMode={true}/>
+                router.params.join_id && <FollowInfo user={long.follow} timeMode={true} />
             }
 
             {/* {

+ 5 - 3
src/pages/clock/components/choose_actions.tsx

@@ -55,10 +55,10 @@ export default function ChooseActions(props: { close: any, quick: any, chooseTex
     function addImage(isCamera) {
         var source: any = isCamera ? ['camera'] : ['album']
         console.log(source)
-        Taro.chooseMedia({
+        Taro.chooseImage({
             count: 9,
             sizeType: ['compressed'],
-            mediaType: ['image'],
+            // mediaType: ['image'],
             sourceType: source,
             success: async function (res) {
                 setHideContent(true)
@@ -101,6 +101,7 @@ export default function ChooseActions(props: { close: any, quick: any, chooseTex
             const fileExt = dot > 0 ? path.substring(dot) : ''
             Taro.request({
                 method: 'GET',
+                timeout:30000,
                 url: `${baseUrl}/api/thirdparty/aliyun/oss-form-upload`,
                 header: {
                     'Authorization': 'bearer ' + global.token
@@ -114,7 +115,9 @@ export default function ChooseActions(props: { close: any, quick: any, chooseTex
                         reject(new Error(t('health.networkError')))
                         return
                     }
+
                     Taro.uploadFile({
+                        timeout:30000,
                         url: rsp.data.upload_url,
                         filePath: path,
                         name: 'file',
@@ -126,7 +129,6 @@ export default function ChooseActions(props: { close: any, quick: any, chooseTex
                             resolve(temp)
                         },
                         fail: (error) => {
-
                             reject(error)
                         }
                     })

+ 3 - 1
src/pages/moment/moment_item.scss

@@ -9,10 +9,11 @@
 }
 
 .moment_avatar {
+    display: flex;
     width: 74px;
     height: 74px;
     border-radius: 37px;
-    margin-right: 24px;
+    
     flex-shrink: 0;
 }
 
@@ -20,6 +21,7 @@
     flex: 1;
     display: flex;
     flex-direction: column;
+    margin-left: 24px;
 }
 
 .item_share_bg{

+ 27 - 3
src/pages/moment/moment_item.tsx

@@ -28,7 +28,16 @@ dayjs.extend(isToday);
 dayjs.extend(isTomorrow);
 dayjs.extend(isYesterday);
 
+let useActionSheet;
+if (process.env.TARO_ENV == 'rn') {
+    useActionSheet = require('@expo/react-native-action-sheet').useActionSheet
+}
 
+let useNavigation, LinearGradient;
+if (process.env.TARO_ENV == 'rn') {
+    useNavigation = require("@react-navigation/native").useNavigation
+    LinearGradient = require('react-native-linear-gradient').default
+}
 
 export default function MomentItem(props: { data: any, del?: any }) {
     const scale = '?x-oss-process=image/format,jpg/resize,w_400'
@@ -37,6 +46,16 @@ export default function MomentItem(props: { data: any, del?: any }) {
     const { t } = useTranslation()
     const dispatch = useDispatch()
 
+    let showActionSheetWithOptions;
+    if (process.env.TARO_ENV == 'rn') {
+        showActionSheetWithOptions = useActionSheet()
+    }
+
+    let navigation;
+    if (useNavigation) {
+        navigation = useNavigation()
+    }
+
     const formatImages = (list) => {
         return list.map(obj => obj.url);
     }
@@ -45,7 +64,9 @@ export default function MomentItem(props: { data: any, del?: any }) {
         if (process.env.TARO_ENV == 'weapp') {
             e.stopPropagation()
         }
-        jumpPage(`/_moment/pages/home?uid=${user.id}`)
+        jumpPage(`/_moment/pages/home?uid=${user.id}`, 'UserHome', navigation, {
+            uid: user.id
+        })
     }
 
     function goDetail() {
@@ -101,7 +122,7 @@ export default function MomentItem(props: { data: any, del?: any }) {
             list = [t('health.edit'), t('health.delete')]
         }
         showActionSheet({
-            // showActionSheetWithOptions: showActionSheetWithOptions,
+            showActionSheetWithOptions: showActionSheetWithOptions,
             title: t('health.more_actions'),
             itemList: list,
             success: (res) => {
@@ -152,7 +173,10 @@ export default function MomentItem(props: { data: any, del?: any }) {
                 moment.title && <View className="h26 g02">{moment.title}</View>
             }
             {
-                moment.description && <View style={{ marginTop: rpxToPx(6) }}><TimeTitleDesc time="" title='' desc={moment.description} /></View>
+                moment.description && <View style={{ marginTop: rpxToPx(6) }}>
+                    {/* <TimeTitleDesc time="" title='' desc={moment.description} /> */}
+                    <View className="h32">{moment.description}</View>
+                </View>
             }
 
             {

+ 99 - 72
src/pages/moment/moment_main.tsx

@@ -33,9 +33,11 @@ import shareTitle from "./moment_unit";
 
 let useRoute;
 let useNavigation;
+let FlatList;
 if (process.env.TARO_ENV == 'rn') {
     useRoute = require("@react-navigation/native").useRoute
     useNavigation = require("@react-navigation/native").useNavigation
+    FlatList = require('react-native').FlatList
 }
 
 let timer;
@@ -87,7 +89,7 @@ export default function MomentMain() {
     const [showGuide, setShowGuide] = useState(false)
     const [showShareGuide, setShowShareGuide] = useState(false)
     const [shareInfo, setShareInfo] = useState<any>(null)
-    const query = Taro.createSelectorQuery()
+    const query: any = process.env.TARO_ENV == 'weapp' ? Taro.createSelectorQuery() : null
 
     const dispatch = useDispatch()
     const { t } = useTranslation()
@@ -213,6 +215,7 @@ export default function MomentMain() {
     }, [endSignal])
 
     function measureItemLayouts() {
+        if (process.env.TARO_ENV == 'rn') return
         if (moments.length <= 10) {
             moments.forEach((item, index) => {
                 query.select(`#history2-${index}`).boundingClientRect()
@@ -468,6 +471,98 @@ export default function MomentMain() {
         </Block>
     }
 
+    function wxList() {
+        return <ScrollView style={{
+            marginTop: navigationBarHeight,
+            height: '90vh'
+        }}
+            enableBackToTop
+            ref={scrollRef}
+            id="myscrollview"
+            scrollY={showShareGuide ? false : true}
+            refresherEnabled={true}
+            upperThreshold={70}
+            // scrollTop={showShareGuide ? pageTop : undefined}
+            // lowerThreshold={140}
+            refresherBackground={MainColorType.g05}
+            onRefresherRefresh={onRefresh}
+            refresherTriggered={isPulling}
+            onScroll={onScroll}
+            onScrollToUpper={() => {
+                // setPage(1)
+                // if (moments.length > 10) {
+                //     setMoments(moments.slice(0, 10))
+                //     setItemHeights(itemHeights.slice(0, 10))
+                //     setItemLayouts(itemLayouts.slice(0, 10))
+                // }
+
+            }}
+        // onScrollToLower={props.loadMore}
+        >
+            <View style={{ backgroundColor: '#fff', minHeight: '100vh', paddingTop: rpxToPx(30), paddingBottom: 100 }}>
+                {
+                    dashBoard && dashBoard.new_message && <View className="new_message_bg">
+
+                        <View className="new_message" onClick={() => {
+                            jumpPage('/_moment/pages/message')
+                        }}>
+                            {
+                                dashBoard.new_message.avatars.map((item, index) => {
+                                    return <Image className="message_avatar" src={item} key={index} style={{ zIndex: 9 - index, marginLeft: index == 0 ? rpxToPx(8) : -15 }} />
+                                })
+                            }
+                            <View className="h26 bold" style={{ color: '#fff', minWidth: rpxToPx(260), textAlign: 'center' }}>{dashBoard.new_message.message_tip}</View>
+                        </View>
+                    </View>
+                }
+                {
+                    moments.map((item, index) => {
+                        if (itemLayouts.length >= index + 1 && pageTop > 0 && index > 5) {
+                            if (Math.abs(itemLayouts[index] - pageTop) > 2500) {
+                                return <View style={{ height: itemHeights[index] }} id={`history—temp-${index}`}>
+                                </View>
+                            }
+
+                        }
+                        return <View key={index} id={`history2-${index}`}>
+                            <MomentItem data={item} del={
+                                () => {
+                                    var list = JSON.parse(JSON.stringify(moments))
+                                    list.splice(index, 1)
+                                    setMoments(list)
+                                }
+                            } />
+                        </View>
+                    })
+                }
+                {
+                    moments.length == 0 && <NoRecord style={{ marginTop: rpxToPx(160) }} />
+                }
+
+                <ListFooter noMore={noMore} loading={loading} />
+                <View id="footer" style={{ width: 1, height: 1 }}></View>
+            </View>
+        </ScrollView>
+    }
+
+    function rnList() {
+        return <FlatList
+            style={{
+                marginTop: navigationBarHeight,
+                height: screenHeight-navigationBarHeight
+            }}
+            data={moments}
+            keyExtractor={item => item.link.event_id}
+            renderItem={({ item, index }) => <MomentItem data={item} del={
+                () => {
+                    var list = JSON.parse(JSON.stringify(moments))
+                    list.splice(index, 1)
+                    setMoments(list)
+                }
+            } />}
+        />
+    }
+
     function listDetail() {
         return <View >
             <View style={{
@@ -491,77 +586,9 @@ export default function MomentMain() {
                     </View>
                 </View>
             </View>
-            <ScrollView style={{
-                marginTop: navigationBarHeight,
-                height: '90vh'
-            }}
-                enableBackToTop
-                ref={scrollRef}
-                id="myscrollview"
-                scrollY={showShareGuide ? false : true}
-                refresherEnabled={true}
-                upperThreshold={70}
-                // scrollTop={showShareGuide ? pageTop : undefined}
-                // lowerThreshold={140}
-                refresherBackground={MainColorType.g05}
-                onRefresherRefresh={onRefresh}
-                refresherTriggered={isPulling}
-                onScroll={onScroll}
-                onScrollToUpper={() => {
-                    // setPage(1)
-                    // if (moments.length > 10) {
-                    //     setMoments(moments.slice(0, 10))
-                    //     setItemHeights(itemHeights.slice(0, 10))
-                    //     setItemLayouts(itemLayouts.slice(0, 10))
-                    // }
-
-                }}
-            // onScrollToLower={props.loadMore}
-            >
-                <View style={{ backgroundColor: '#fff', minHeight: '100vh', paddingTop: rpxToPx(30), paddingBottom: 100 }}>
-                    {
-                        dashBoard && dashBoard.new_message && <View className="new_message_bg">
-
-                            <View className="new_message" onClick={() => {
-                                jumpPage('/_moment/pages/message')
-                            }}>
-                                {
-                                    dashBoard.new_message.avatars.map((item, index) => {
-                                        return <Image className="message_avatar" src={item} key={index} style={{ zIndex: 9 - index, marginLeft: index == 0 ? rpxToPx(8) : -15 }} />
-                                    })
-                                }
-                                <View className="h26 bold" style={{ color: '#fff', minWidth: rpxToPx(260), textAlign: 'center' }}>{dashBoard.new_message.message_tip}</View>
-                            </View>
-                        </View>
-                    }
-                    {
-                        moments.map((item, index) => {
-                            if (itemLayouts.length >= index + 1 && pageTop > 0 && index > 5) {
-                                if (Math.abs(itemLayouts[index] - pageTop) > 2500) {
-                                    return <View style={{ height: itemHeights[index] }} id={`history—temp-${index}`}>
-                                    </View>
-                                }
-
-                            }
-                            return <View key={index} id={`history2-${index}`}>
-                                <MomentItem data={item} del={
-                                    () => {
-                                        var list = JSON.parse(JSON.stringify(moments))
-                                        list.splice(index, 1)
-                                        setMoments(list)
-                                    }
-                                } />
-                            </View>
-                        })
-                    }
-                    {
-                        moments.length == 0 && <NoRecord style={{ marginTop: rpxToPx(160) }} />
-                    }
-
-                    <ListFooter noMore={noMore} loading={loading} />
-                    <View id="footer" style={{ width: 1, height: 1 }}></View>
-                </View>
-            </ScrollView>
+            {
+                process.env.TARO_ENV == 'weapp' ? wxList() : rnList()
+            }
             <Block>
                 {
                     showShareGuide && <MomentDetailShare user={shareInfo.join.user} btnColor={getThemeColor(shareInfo.join.window)}

+ 8 - 0
src/pages/rn/RNMain.tsx

@@ -34,6 +34,8 @@ import MomentDetail from '@/_health/pages/moment_detail';
 import TimeRecord from '@/_record/pages/time_record';
 import LogRecord from '@/_record/pages/log_record';
 import Taro from '@tarojs/taro';
+import UserHome from '@/_moment/pages/home';
+import TimelineDetail from '@/_health/pages/timeline_detail';
 
 // import { View,Image } from '@tarojs/components';
 
@@ -259,6 +261,12 @@ export default function RNMain() {
         <Stack.Screen name='MomentDetail' component={MomentDetail} options={{
           headerBackTitle: ' '
         }} />
+        <Stack.Screen name='UserHome' component={UserHome} options={{
+          headerShown: false
+        }} />
+        <Stack.Screen name='TimelineDetail' component={TimelineDetail} options={{
+          headerBackTitle: ' '
+        }} />
 
         {/* <Stack.Screen name='NotificationSetting' component={NotificationSetting} options={{
           headerBackTitle: ' '

+ 0 - 3
src/services/http/request.ts

@@ -136,7 +136,6 @@ export async function request<T>(param: RequestParam): Promise<T> {
         //     requestData.remove('showAlert')
         // }
 
-        debugger
         requestTask = Taro.request({
             url: url,
             method: method,
@@ -144,7 +143,6 @@ export async function request<T>(param: RequestParam): Promise<T> {
             timeout: kTimeout,
             data: data || {},
             success: (response: Resp | { [key: string]: any }) => {
-                debugger
                 clearTimeout(timer);
                 const { statusCode, data } = response;
 
@@ -225,7 +223,6 @@ export async function request<T>(param: RequestParam): Promise<T> {
                 }
             },
             fail: err => {
-                debugger
                 if ((err as any).statusCode >= 200 && (err as any).statusCode < 300) {
                     clearTimeout(timer);
                     resolve()

部分文件因为文件数量过多而无法显示