|
@@ -42,6 +42,13 @@
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
<view class="salon-foot">
|
|
<view class="salon-foot">
|
|
|
|
|
+ <button
|
|
|
|
|
+ class="share-btn"
|
|
|
|
|
+ open-type="share"
|
|
|
|
|
+ @click="setShareTarget(item)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 分享
|
|
|
|
|
+ </button>
|
|
|
<button
|
|
<button
|
|
|
v-if="canMemberFree"
|
|
v-if="canMemberFree"
|
|
|
class="member-btn"
|
|
class="member-btn"
|
|
@@ -68,6 +75,7 @@
|
|
|
import { getSalonList, getMyMember } from '@/utils/api.js'
|
|
import { getSalonList, getMyMember } from '@/utils/api.js'
|
|
|
import { fenToYuan, formatDateTime } from '@/utils/format.js'
|
|
import { fenToYuan, formatDateTime } from '@/utils/format.js'
|
|
|
import { guardPage } from '@/utils/guard.js'
|
|
import { guardPage } from '@/utils/guard.js'
|
|
|
|
|
+import { loadInviteCode, getInviteCode, buildSharePath } from '@/utils/share.js'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
data() {
|
|
data() {
|
|
@@ -75,6 +83,7 @@ export default {
|
|
|
salons: [],
|
|
salons: [],
|
|
|
loading: false,
|
|
loading: false,
|
|
|
member: {},
|
|
member: {},
|
|
|
|
|
+ shareTarget: null,
|
|
|
themeMap: {
|
|
themeMap: {
|
|
|
ai_basic: 'AI 认知基础',
|
|
ai_basic: 'AI 认知基础',
|
|
|
wealth: '家庭财富管理',
|
|
wealth: '家庭财富管理',
|
|
@@ -91,11 +100,41 @@ export default {
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
onShow() {
|
|
onShow() {
|
|
|
|
|
+ loadInviteCode()
|
|
|
if (!guardPage()) return
|
|
if (!guardPage()) return
|
|
|
this.loadSalons()
|
|
this.loadSalons()
|
|
|
this.loadMember()
|
|
this.loadMember()
|
|
|
},
|
|
},
|
|
|
|
|
+ // 分享给好友:带 salonId 的沙龙分享(沙龙门未设详情页,跳转列表页)
|
|
|
|
|
+ onShareAppMessage() {
|
|
|
|
|
+ var t = this.shareTarget
|
|
|
|
|
+ if (t && t.id) {
|
|
|
|
|
+ return {
|
|
|
|
|
+ title: t.title,
|
|
|
|
|
+ path: buildSharePath('/pages/salon/list?salonId=' + t.id)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return {
|
|
|
|
|
+ title: '沙龙活动|爱伴·AI之旅',
|
|
|
|
|
+ path: buildSharePath('/pages/salon/list')
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ // 分享到朋友圈
|
|
|
|
|
+ onShareTimeline() {
|
|
|
|
|
+ var t = this.shareTarget
|
|
|
|
|
+ var query = t && t.id ? 'salonId=' + t.id : ''
|
|
|
|
|
+ var code = getInviteCode()
|
|
|
|
|
+ if (code) query += (query ? '&' : '') + 'inviteCode=' + code
|
|
|
|
|
+ return {
|
|
|
|
|
+ title: (t && t.title) ? t.title : '沙龙活动|爱伴·AI之旅',
|
|
|
|
|
+ query: query
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ setShareTarget(item) {
|
|
|
|
|
+ // open-type="share" 按钮:先记录当前要分享的沙龙,再触发 onShareAppMessage
|
|
|
|
|
+ this.shareTarget = item || null
|
|
|
|
|
+ },
|
|
|
fenToYuan: fenToYuan,
|
|
fenToYuan: fenToYuan,
|
|
|
formatDateTime: formatDateTime,
|
|
formatDateTime: formatDateTime,
|
|
|
mapTheme(theme) {
|
|
mapTheme(theme) {
|
|
@@ -169,6 +208,8 @@ export default {
|
|
|
.salon-price-free { font-size: 28rpx; color: #22C55E; font-weight: 600; }
|
|
.salon-price-free { font-size: 28rpx; color: #22C55E; font-weight: 600; }
|
|
|
.member-price { font-size: 24rpx; color: #5A4F4B; }
|
|
.member-price { font-size: 24rpx; color: #5A4F4B; }
|
|
|
.salon-foot { display: flex; align-items: center; justify-content: flex-end; }
|
|
.salon-foot { display: flex; align-items: center; justify-content: flex-end; }
|
|
|
|
|
+.share-btn { width: 140rpx; height: 64rpx; line-height: 64rpx; font-size: 26rpx; background: #FFF; color: #FC7A57; border-radius: 32rpx; border: 2rpx solid #FED7AA; margin: 0 16rpx 0 0; padding: 0; }
|
|
|
|
|
+.share-btn:active { opacity: 0.85; }
|
|
|
.member-btn { width: 180rpx; height: 64rpx; line-height: 64rpx; font-size: 26rpx; background: #FFF0E8; color: #FC7A57; border-radius: 32rpx; border: 2rpx solid #FED7AA; margin: 0 16rpx 0 0; }
|
|
.member-btn { width: 180rpx; height: 64rpx; line-height: 64rpx; font-size: 26rpx; background: #FFF0E8; color: #FC7A57; border-radius: 32rpx; border: 2rpx solid #FED7AA; margin: 0 16rpx 0 0; }
|
|
|
.member-btn:active { opacity: 0.85; }
|
|
.member-btn:active { opacity: 0.85; }
|
|
|
.member-btn:disabled { background: #CBD5E1; color: #FFF; border-color: #CBD5E1; }
|
|
.member-btn:disabled { background: #CBD5E1; color: #FFF; border-color: #CBD5E1; }
|