// 统一配置:禁止在业务代码中硬编码 // 优先级:环境变量(Vite/HBuilderX 构建注入) > 本地存储 > 默认值 const envBaseUrl = (typeof process !== 'undefined' && process.env && (process.env.VITE_APP_API_BASE_URL || process.env.API_BASE_URL)) || ''; const storageBaseUrl = typeof uni !== 'undefined' ? (uni.getStorageSync('API_BASE_URL') || '') : ''; const fallbackBaseUrl = 'http://127.0.0.1:8080'; export const API_BASE_URL = (envBaseUrl || storageBaseUrl || fallbackBaseUrl).replace(/\/$/, ''); // 多地址候选(按优先级顺序,自动去重与去尾斜杠) const candidateBases = [envBaseUrl, storageBaseUrl, fallbackBaseUrl, 'http://127.0.0.1:8080', 'http://localhost:8080']; export const API_BASE_URL_CANDIDATES = Array.from(new Set(candidateBases.filter(Boolean))).map(u => String(u).replace(/\/$/, '')); const envShopId = (typeof process !== 'undefined' && process.env && (process.env.VITE_APP_SHOP_ID || process.env.SHOP_ID)) || ''; const storageShopId = typeof uni !== 'undefined' ? (uni.getStorageSync('SHOP_ID') || '') : ''; export const SHOP_ID = Number(envShopId || storageShopId || 1); // 默认用户(可移除): // - 用途:开发/演示环境,自动将用户固定为“张老板”(id=2) // - 开关优先级:环境变量 > 本地存储 > 默认值 // - 生产默认关闭(false);开发可通过本地存储或环境变量开启 const envEnableDefaultUser = (typeof process !== 'undefined' && process.env && (process.env.VITE_APP_ENABLE_DEFAULT_USER || process.env.ENABLE_DEFAULT_USER)) || ''; const storageEnableDefaultUser = typeof uni !== 'undefined' ? (uni.getStorageSync('ENABLE_DEFAULT_USER') || '') : ''; export const ENABLE_DEFAULT_USER = String(envEnableDefaultUser || storageEnableDefaultUser || 'false').toLowerCase() === 'true'; const envDefaultUserId = (typeof process !== 'undefined' && process.env && (process.env.VITE_APP_DEFAULT_USER_ID || process.env.DEFAULT_USER_ID)) || ''; const storageDefaultUserId = typeof uni !== 'undefined' ? (uni.getStorageSync('DEFAULT_USER_ID') || '') : ''; export const DEFAULT_USER_ID = Number(envDefaultUserId || storageDefaultUserId || 0); // 会员价格(单位:元/月):环境 > 本地存储 > 默认值 const envVipPrice = (typeof process !== 'undefined' && process.env && (process.env.VITE_APP_VIP_PRICE || process.env.VIP_PRICE)) || ''; const storageVipPrice = typeof uni !== 'undefined' ? (uni.getStorageSync('VIP_PRICE') || '') : ''; export const VIP_PRICE_PER_MONTH = Number(envVipPrice || storageVipPrice || 15); // 首页横幅图片(公告上方),避免硬编码 // 优先级:环境变量 > 本地存储 > 默认值(放置于 /static/icons/ 下) const envHomeBanner = (typeof process !== 'undefined' && process.env && (process.env.VITE_APP_HOME_BANNER_IMG || process.env.HOME_BANNER_IMG)) || ''; const storageHomeBanner = typeof uni !== 'undefined' ? (uni.getStorageSync('HOME_BANNER_IMG') || '') : ''; export const HOME_BANNER_IMG = String(envHomeBanner || storageHomeBanner || '/static/icons/home-banner.png'); // KPI 图标(可按需覆盖),避免在页面里硬编码 export const KPI_ICONS = { todaySales: '/static/icons/sale.png', monthSales: '/static/icons/report.png', monthProfit: '/static/icons/report.png', stockCount: '/static/icons/product.png' }