Commit 10f1e3fc authored by 王炽's avatar 王炽

Merge branch 'xingmaLab20250820' of http://gitlab2.dui88.com/fh/20250528_FHQ1...

Merge branch 'xingmaLab20250820' of http://gitlab2.dui88.com/fh/20250528_FHQ1 into xingmaLab20250820
parents 90d08aac f14c93a9
......@@ -184,7 +184,8 @@
"path": "pages/XingmaLabDetailPage/XingmaLabDetailPage",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
"navigationStyle": "custom",
"enableShare": true
}
},
{
......
......@@ -52,9 +52,7 @@
<button open-type="getPhoneNumber" @getphonenumber="(e) => onGetPhoneNumber(e, 'like')"
class="auth-like-btn phone-auth-btn-cover"></button>
<!-- 分享按钮授权覆盖 -->
<button open-type="getPhoneNumber" @getphonenumber="(e) => onGetPhoneNumber(e, 'share')"
class="auth-share-btn phone-auth-btn-cover"></button>
<!-- 分享按钮授权覆盖 - 移除这个,让分享按钮正常工作 -->
</div>
</div>
</view>
......@@ -62,7 +60,6 @@
<script setup>
import { ref, onMounted, computed } from 'vue'
import { onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app'
import { xingmaLabDetailConfig, getImageUrl } from './config.js'
import { fetchRecordDetail, fetchFavoriteAdd, fetchFavoriteRemove } from '@/api/xingmaLab.js'
import { useHomeStore } from '@/stores/home.js'
......@@ -75,6 +72,7 @@ defineOptions({
// 响应式数据
const collectionNumber = ref('123456789')
const recordId = ref('') // 添加记录ID的响应式变量
const detailData = ref({
content: '',
gmtCreate: '',
......@@ -113,6 +111,7 @@ const fetchDetailData = async (id) => {
if (result.success) {
detailData.value = result.data
recordId.value = id // 保存记录ID
console.log('✅ 详情数据获取成功:', detailData.value)
} else {
throw new Error(result.message || '获取详情失败')
......@@ -204,6 +203,12 @@ const handleShareClick = () => {
// 使用 open-type="share" 时,点击事件可以为空
// 分享内容通过页面配置自动设置
console.log('分享按钮被点击')
// 手动触发分享(如果需要的话)
// uni.showShareMenu({
// withShareTicket: true,
// menus: ['shareAppMessage', 'shareTimeline']
// })
}
// 返回上一页
......@@ -235,6 +240,7 @@ onMounted(async () => {
if (id) {
console.log('🔍 获取到页面参数 id:', id)
recordId.value = id // 立即保存ID,确保分享时能获取到
await fetchDetailData(id)
} else {
console.warn('⚠️ 未获取到页面参数 id')
......@@ -243,36 +249,19 @@ onMounted(async () => {
icon: 'none'
})
}
})
// 页面分享配置
onShareAppMessage(() => {
const shareImage = detailData.value.imgUrl || ''
const shareContent = detailData.value.content || ''
// 截取分享文案,超出字数显示省略号
const maxLength = 50
const truncatedContent = shareContent.length > maxLength
? shareContent.substring(0, maxLength) + '...'
: shareContent
console.log('分享参数:', {
title: truncatedContent,
imageUrl: shareImage,
path: `/pages/XingmaLabDetailPage/XingmaLabDetailPage?id=${detailData.value.id}`
// 启用分享菜单
uni.showShareMenu({
withShareTicket: true,
menus: ['shareAppMessage', 'shareTimeline']
})
return {
title: truncatedContent,
imageUrl: shareImage,
path: `/pages/XingmaLabDetailPage/XingmaLabDetailPage?id=${detailData.value.id}`
}
})
onShareTimeline(() => {
// 定义分享函数
const getShareData = () => {
const shareImage = detailData.value.imgUrl || ''
const shareContent = detailData.value.content || ''
const currentRecordId = recordId.value || detailData.value.id || ''
// 截取分享文案,超出字数显示省略号
const maxLength = 50
......@@ -280,21 +269,78 @@ onShareTimeline(() => {
? shareContent.substring(0, maxLength) + '...'
: shareContent
console.log('朋友圈分享参数:', {
console.log('分享参数:', {
title: truncatedContent,
imageUrl: shareImage,
path: `/pages/XingmaLabDetailPage/XingmaLabDetailPage?id=${detailData.value.id}`
path: `/pages/XingmaLabDetailPage/XingmaLabDetailPage?id=${currentRecordId}`,
recordId: currentRecordId,
detailDataId: detailData.value.id
})
return {
title: truncatedContent,
imageUrl: shareImage,
path: `/pages/XingmaLabDetailPage/XingmaLabDetailPage?id=${detailData.value.id}`
path: `/pages/XingmaLabDetailPage/XingmaLabDetailPage?id=${currentRecordId}`
}
})
}
// 暴露给 Options API 使用
defineExpose({
getShareData
})
</script>
<script>
// 微信小程序分享配置 - 使用 Options API
export default {
// 自定义分享内容
onShareAppMessage() {
console.log('onShareAppMessage 被调用')
// 获取当前页面的数据
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
const options = currentPage.options || {}
const id = options.id || ''
// 获取页面实例
const pageInstance = currentPage.$vm
if (pageInstance && pageInstance.getShareData) {
return pageInstance.getShareData()
}
// 如果无法获取页面实例,返回默认分享内容
return {
title: '星妈实验室详情',
path: `/pages/XingmaLabDetailPage/XingmaLabDetailPage?id=${id}`,
imageUrl: ''
}
},
onShareTimeline() {
console.log('onShareTimeline 被调用')
// 获取当前页面的数据
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
const options = currentPage.options || {}
const id = options.id || ''
// 获取页面实例
const pageInstance = currentPage.$vm
if (pageInstance && pageInstance.getShareData) {
return pageInstance.getShareData()
}
// 如果无法获取页面实例,返回默认分享内容
return {
title: '星妈实验室详情',
path: `/pages/XingmaLabDetailPage/XingmaLabDetailPage?id=${id}`,
imageUrl: ''
}
}
}
</script>
<style lang="less" scoped>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment