解决登录显示、首页显示bug
This commit is contained in:
@@ -66,6 +66,7 @@
|
||||
|
||||
<script lang="uts">
|
||||
import supa from '@/components/supadb/aksupainstance.uts'
|
||||
import { requireMerchantAuth } from '@/utils/merchantAuth.uts'
|
||||
import { USE_MOCK, MOCK_MERCHANT_ID, getMockReviews } from '@/pages/mall/merchant/mock/merchant-mock-data.uts'
|
||||
|
||||
type ReviewType = {
|
||||
@@ -106,19 +107,35 @@
|
||||
this.loadReviews()
|
||||
return
|
||||
}
|
||||
// 同步设置 merchantId,不用 async 包裹,避免 generator 内 this 绑定异常
|
||||
try {
|
||||
const session = supa.getSession()
|
||||
this.merchantId = session?.user?.getString('id') || uni.getStorageSync('user_id') || ''
|
||||
} catch (e) {}
|
||||
this.loadReviews()
|
||||
this.ensureMerchantAuth().then((passed: boolean) => {
|
||||
if (passed) {
|
||||
this.loadReviews()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onShow() {
|
||||
this.loadReviews()
|
||||
this.handlePageShow()
|
||||
},
|
||||
|
||||
methods: {
|
||||
async ensureMerchantAuth(): Promise<boolean> {
|
||||
if (USE_MOCK) return true
|
||||
const result = await requireMerchantAuth({ redirectOnFail: true, toastOnFail: true })
|
||||
if (!result.ok) {
|
||||
this.merchantId = ''
|
||||
return false
|
||||
}
|
||||
this.merchantId = result.userInfo != null && result.userInfo.id != null ? result.userInfo.id : ''
|
||||
return this.merchantId !== ''
|
||||
},
|
||||
|
||||
async handlePageShow() {
|
||||
const passed = await this.ensureMerchantAuth()
|
||||
if (!passed) return
|
||||
this.loadReviews()
|
||||
},
|
||||
|
||||
async loadReviews() {
|
||||
if (!this.merchantId || this.merchantId.split('-').length !== 5) return
|
||||
if (this.loading) return
|
||||
|
||||
Reference in New Issue
Block a user