feat(guest): 支持游客态浏览示例衣物与搭配
游客可点开示例衣物详情与搭配抽屉,不再在浏览路径上要求登录。
This commit is contained in:
@@ -8,7 +8,7 @@ import { OutfitStatusPill, isPendingSave, outfitStatusPill } from '../../utils/o
|
||||
import { setTabBarSelected } from '../../utils/tabbar'
|
||||
import { formatRelativeTime } from '../../utils/format'
|
||||
import { navScroll } from '../../utils/nav'
|
||||
import { GUEST_OUTFITS, goLogin } from '../../utils/guest'
|
||||
import { GUEST_OUTFIT, goLogin } from '../../utils/guest'
|
||||
import { logger } from '../../utils/logger'
|
||||
|
||||
// 日志模块名
|
||||
@@ -45,9 +45,11 @@ Page({
|
||||
pendingCount: 0,
|
||||
// 滚动收缩:由 utils/nav.ts 的共享 handler 驱动
|
||||
navScrolled: false,
|
||||
// 游客态(未登录):展示本地示例穿搭,不发需要授权的请求
|
||||
// 游客态(未登录):只展示本地示例穿搭,不发需要授权的请求
|
||||
guest: false,
|
||||
guestList: GUEST_OUTFITS,
|
||||
guestOutfit: GUEST_OUTFIT,
|
||||
// 游客态示例搭配抽屉:可完整浏览示例单品,浏览路径上不要求登录
|
||||
guestSheetVisible: false,
|
||||
},
|
||||
|
||||
// scroll-view 滚动 → 导航收缩为玻璃小标题
|
||||
@@ -72,7 +74,7 @@ Page({
|
||||
if (this.data.guest) {
|
||||
logger.info(LOG, '检测到登录态,从游客态切换为真实穿搭列表')
|
||||
;(this as any).firstShown = true
|
||||
this.setData({ guest: false, guestList: [], list: [], loading: true })
|
||||
this.setData({ guest: false, guestSheetVisible: false, list: [], loading: true })
|
||||
this.refresh()
|
||||
this.fetchPendingCount()
|
||||
return
|
||||
@@ -116,12 +118,32 @@ Page({
|
||||
this.refresh()
|
||||
},
|
||||
|
||||
// 游客态点击示例穿搭 / 受限入口:统一进入登录页,由用户自行选择是否登录
|
||||
// 游客态点击受限入口:进入登录页,由用户自行选择是否登录
|
||||
onGuestLogin() {
|
||||
logger.debug(LOG, '游客态点击受限入口,引导登录')
|
||||
goLogin()
|
||||
},
|
||||
|
||||
// 抽屉内容点击不穿透到遮罩
|
||||
noop() {},
|
||||
|
||||
// 游客态点击示例搭配:打开只读示例抽屉(浏览路径上不要求登录)
|
||||
onGuestOutfitTap() {
|
||||
logger.debug(LOG, '游客态打开示例搭配抽屉')
|
||||
this.setData({ guestSheetVisible: true })
|
||||
},
|
||||
|
||||
onGuestSheetClose() {
|
||||
this.setData({ guestSheetVisible: false })
|
||||
},
|
||||
|
||||
// 抽屉底部入口:用户主动选择登录时才进入登录页
|
||||
onGuestSheetLogin() {
|
||||
logger.info(LOG, '示例搭配抽屉内主动登录')
|
||||
this.setData({ guestSheetVisible: false })
|
||||
goLogin()
|
||||
},
|
||||
|
||||
refresh() {
|
||||
this.setData({ page: 1, hasMore: true, loading: this.data.list.length === 0 })
|
||||
this.fetchList(1)
|
||||
|
||||
Reference in New Issue
Block a user