Files
xk-doctor-wx/utils/publicAccountLock.js
2026-08-19 16:48:43 +08:00

78 lines
2.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 公账逾期锁店4101 写入本地并强制跳到分包锁店页
*/
const STORAGE_KEY = 'xk_public_account_lock'
export const PUBLIC_ACCOUNT_LOCK_PAGE = '/subPackages/sub_workbench/public_account_lock/index'
let jumping = false
export function setPublicAccountLock(payload) {
const data = payload && typeof payload === 'object' ? payload : {}
uni.setStorageSync(STORAGE_KEY, data)
uni.$emit('public-account-lock', data)
redirectToPublicAccountLockPage()
}
export function getPublicAccountLock() {
return uni.getStorageSync(STORAGE_KEY) || null
}
/**
* 是否已锁店:漏单未出日汇总时 daily_id=0要用 bill_date / locked
*/
export function isPublicAccountLocked(payload) {
if (!payload || typeof payload !== 'object') {
return false
}
if (payload.locked === true || payload.locked === 1) {
return true
}
return !!(payload.daily_id || payload.bill_date)
}
export function clearPublicAccountLock() {
uni.removeStorageSync(STORAGE_KEY)
uni.$emit('public-account-lock-clear')
}
export function isOnPublicAccountLockPage() {
const pages = getCurrentPages()
const cur = pages.length ? pages[pages.length - 1] : null
const route = cur && cur.route ? String(cur.route) : ''
return route.indexOf('public_account_lock') !== -1
}
/**
* 拦截器命中 4101 后跳分包锁店页;已在该页则不再跳,避免死循环
*/
export function redirectToPublicAccountLockPage() {
if (isOnPublicAccountLockPage() || jumping) {
return
}
jumping = true
// reLaunch 清掉上一页模拟器返回不能退回业务页tabBar 页也不能用 redirectTo
uni.reLaunch({
url: PUBLIC_ACCOUNT_LOCK_PAGE,
complete() {
jumping = false
},
})
}
/**
* 解锁后回各自工作台
*/
export function goHomeAfterPublicAccountUnlock() {
const mode = uni.getStorageSync('loginMode')
const identity = Number(uni.getStorageSync('identity') || 1)
if (mode === 'clinic_admin') {
uni.reLaunch({ url: '/subPackages/sub_clinic_admin/home/index' })
return
}
if (identity === 2) {
uni.switchTab({ url: '/pages/pharmacist/index' })
return
}
uni.switchTab({ url: '/pages/workbench/index' })
}