完善生产查询与登录权限配置
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
const DEFAULT_SCAN_REGION = {
|
||||
width: 0.96,
|
||||
height: 0.24,
|
||||
centerX: 0.5,
|
||||
centerY: 0.5
|
||||
}
|
||||
|
||||
const clamp = (value, min, max, fallback) => {
|
||||
const number = Number(value)
|
||||
return Number.isFinite(number) ? Math.max(min, Math.min(max, number)) : fallback
|
||||
}
|
||||
|
||||
export function getScanappUserCodes() {
|
||||
const user = uni.getStorageSync('scanapp_user') || {}
|
||||
const codes = [user.username, user.nickname, user.id, user.userId, user.uid, 'U001']
|
||||
return codes.filter((code, index) => code !== undefined && code !== null && code !== '' && codes.indexOf(code) === index).map(String)
|
||||
}
|
||||
|
||||
export function getScanappUserCode() {
|
||||
return getScanappUserCodes()[0]
|
||||
}
|
||||
|
||||
export function getScanappSettingsStorageKey() {
|
||||
return `scanapp_settings_${getScanappUserCode()}`
|
||||
}
|
||||
|
||||
export function getScanappSettings() {
|
||||
for (const userCode of getScanappUserCodes()) {
|
||||
const userSettings = uni.getStorageSync(`scanapp_settings_${userCode}`)
|
||||
if (userSettings && typeof userSettings === 'object') return userSettings
|
||||
}
|
||||
const legacySettings = uni.getStorageSync('scanapp_settings')
|
||||
return legacySettings && typeof legacySettings === 'object' ? legacySettings : {}
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取当前用户的有效识别区域设置,供所有业务扫码入口统一使用。
|
||||
*/
|
||||
export function getScanRegionSetting() {
|
||||
const settings = getScanappSettings()
|
||||
if (!settings.scanRegionPreset && !settings.scanRegion) return {}
|
||||
if (settings.scanRegionPreset === 'fullscreen' || (!settings.scanRegionPreset && settings.scanRegion?.fullScreen === true)) {
|
||||
return { fullScreen: true }
|
||||
}
|
||||
|
||||
const region = settings.scanRegion || {}
|
||||
const width = clamp(region.width, 0.1, 1, DEFAULT_SCAN_REGION.width)
|
||||
const height = clamp(region.height, 0.1, 1, DEFAULT_SCAN_REGION.height)
|
||||
const centerX = clamp(region.centerX, 0, 1, DEFAULT_SCAN_REGION.centerX)
|
||||
const minCenterY = Math.min(0.5, height / 2)
|
||||
const centerY = clamp(region.centerY, minCenterY, 1 - minCenterY, DEFAULT_SCAN_REGION.centerY)
|
||||
return { width, height, centerX, centerY }
|
||||
}
|
||||
Reference in New Issue
Block a user