|
@@ -39,6 +39,8 @@ import { Activity, StudyTour } from '../../core/libs/models'
|
|
|
import PageHelperEvo from '@/components/page-helper-evo.vue'
|
|
|
import { useMessage } from 'wot-design-uni'
|
|
|
import { useHonorDialog } from '../../composables/honor-dialog'
|
|
|
+import ShareActionSheet from '@/pages/common/components/share-action-sheet.vue'
|
|
|
+import { useShare } from '@/composables/share'
|
|
|
|
|
|
defineOptions({
|
|
|
name: 'Home',
|
|
@@ -48,6 +50,7 @@ const { show } = useHonorDialog()
|
|
|
const userStore = useUserStore()
|
|
|
const { userInfo } = storeToRefs(userStore)
|
|
|
const { features, isLogined } = usePermissions()
|
|
|
+const { shareAppMessage } = useShare()
|
|
|
const pageHelperRef = ref<ComponentExposed<typeof PageHelperEvo>>()
|
|
|
const { data: indexConfigsData, run: setIndexConfigsData } = useRequest(
|
|
|
() => getSetIndexConfigs(),
|
|
@@ -62,6 +65,9 @@ const autoplay = ref(true)
|
|
|
const homeBannerRef = ref<ComponentExposed<typeof HomeBanner>[]>()
|
|
|
const hotActivities =
|
|
|
ref<{ type: 'studyTour' | 'activity'; data: StudyTour & Activity; startAt: string | number }[]>()
|
|
|
+const shareActionState = ref(false)
|
|
|
+// const shareRef = ref<Comp>()
|
|
|
+const shareOptions = ref()
|
|
|
const currentStudyTour = computed(() =>
|
|
|
studyTours.value.find(
|
|
|
(it) => dayjs(it.studyStartTime).isBefore(dayjs()) && dayjs(it.studyEndTime).isAfter(dayjs()),
|
|
@@ -103,6 +109,10 @@ const handlePlay = async (id) => {
|
|
|
autoplay.value = false
|
|
|
await updateSetIndexConfig(body)
|
|
|
}
|
|
|
+const handleShare = (options: any) => {
|
|
|
+ shareOptions.value = options
|
|
|
+ shareActionState.value = true
|
|
|
+}
|
|
|
onShow(async () => {
|
|
|
await pageHelperRef.value?.reload()
|
|
|
const reqs = [setHotActivities()]
|
|
@@ -122,21 +132,15 @@ onHide(() => {
|
|
|
// autoplay.value = true
|
|
|
homeBannerRef.value?.[swiperCurrent.value]?.videoContext.pause()
|
|
|
})
|
|
|
-onShareAppMessage(async ({ from, target }) => {
|
|
|
- console.log('from', from)
|
|
|
- console.log('target', target)
|
|
|
- const res: Page.CustomShareContent = {}
|
|
|
- if (from === 'button') {
|
|
|
- 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}`
|
|
|
- }
|
|
|
- if (from === 'menu') {
|
|
|
- res.title = messages.home.shareTitle
|
|
|
- }
|
|
|
- return res
|
|
|
-})
|
|
|
+onShareAppMessage(shareAppMessage)
|
|
|
+// onShareTimeline(async ({from, target}) => {
|
|
|
+// const res: Page.ShareTimelineContent = {}
|
|
|
+// if (from === 'button') {
|
|
|
+// // await shareCircle(target.dataset.options.id)
|
|
|
+// // res.path = `/pages/home/moment/index?id=${target.dataset.options.id}&isShared=true`
|
|
|
+// }
|
|
|
+// return res
|
|
|
+// })
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
@@ -208,13 +212,18 @@ onShareAppMessage(async ({ from, target }) => {
|
|
|
<template #default="{ source }">
|
|
|
<template v-for="it of source.list" :key="it.id">
|
|
|
<view class="my-3">
|
|
|
- <MomentItem :options="it" @like="handleLike"></MomentItem>
|
|
|
+ <MomentItem :options="it" @like="handleLike" @share="handleShare"></MomentItem>
|
|
|
</view>
|
|
|
</template>
|
|
|
</template>
|
|
|
</PageHelperEvo>
|
|
|
</view>
|
|
|
</view>
|
|
|
+ <ShareActionSheet
|
|
|
+ ref="shareRef"
|
|
|
+ v-model="shareActionState"
|
|
|
+ :options="shareOptions"
|
|
|
+ ></ShareActionSheet>
|
|
|
</view>
|
|
|
</template>
|
|
|
|