Browse Source

feat(homepage): 优化页面加载逻辑和分享功能

EvilDragon 3 months ago
parent
commit
6906c87c2f
2 changed files with 23 additions and 17 deletions
  1. 10 10
      packages/app/src/pages/home/index.vue
  2. 13 7
      packages/app/src/pages/mine/homepage/index.vue

+ 10 - 10
packages/app/src/pages/home/index.vue

@@ -49,16 +49,6 @@ const { data: studyTours, run: setStudyTours } = useRequest(() => getMyStudyTour
 const swiperData = ref<{ data: any }[]>()
 const swiperCurrent = ref(0)
 
-onShow(async () => {
-  pageHelperRef.value?.refresh()
-})
-onLoad(async () => {
-  await setIndexConfigsData()
-  await setStudyTours()
-  swiperData.value = indexConfigsData.value.list.map((it) => ({
-    data: it,
-  }))
-})
 const toAbout = () => {
   uni.navigateTo({ url: '/pages/home/about/index' })
 }
@@ -73,6 +63,16 @@ const handleLike = async (options) => {
   })
   pageHelperRef.value?.refresh()
 }
+onShow(async () => {
+  await setStudyTours()
+  pageHelperRef.value?.refresh()
+})
+onLoad(async () => {
+  await setIndexConfigsData()
+  swiperData.value = indexConfigsData.value.list.map((it) => ({
+    data: it,
+  }))
+})
 onShareAppMessage(async ({ from, target }) => {
   console.log('from', from)
   console.log('target', target)

+ 13 - 7
packages/app/src/pages/mine/homepage/index.vue

@@ -157,13 +157,19 @@ onUnload(async () => {
 onShareAppMessage(async ({ from, target }) => {
   const res: Page.CustomShareContent = {}
   if (from === 'button') {
-    if (!features.value.shareMoment) {
-      return handleShareClick()
+    if (target.dataset.type === 'homepage') {
+      res.title = `${userInfo.value.nickname}: “${designerInfo.value.designDesc}”`
+      res.imageUrl = designerInfo.value?.sharePageUrl
+      res.path = `/pages/mine/homepage/index?id=${id.value}&isShared=true`
+    } else {
+      if (!features.value.shareMoment) {
+        return handleShareClick()
+      }
+      await shareCircle(target.dataset.options.id)
+      res.path = `/pages/home/moment/index?id=${target.dataset.options.id}&isShared=true`
+      res.imageUrl = target.dataset.options.bannerUrls[0]
+      res.title = `${target.dataset.options.stylistName}: ${target.dataset.options.circleDesc}`
     }
-    await shareCircle(target.id)
-    res.path = `/pages/home/moment/index?id=${target.id}&isShared=true`
-    res.imageUrl = target.dataset.options.bannerUrls[0]
-    res.title = `${target.dataset.options.stylistName}: ${target.dataset.options.circleDesc}`
   }
   if (from === 'menu') {
     res.title = `${userInfo.value.nickname}: “${designerInfo.value.designDesc}”`
@@ -334,7 +340,7 @@ defineExpose({
           </wd-button>
         </div>
         <div class="flex-1" v-if="userInfo.userId === Number(id)">
-          <wd-button block :round="false" open-type="share">分享</wd-button>
+          <wd-button block :round="false" open-type="share" data-type="homepage">分享</wd-button>
         </div>
         <div class="flex-1" v-if="userInfo.userId !== Number(id)">
           <wd-button