import {getUserInfo} from "@/util/user"; // 「自主填报」(create.vue) 与「销量填写」(sales.vue) 两个页面之间的数据交接。 // 本工程没有全局状态管理,页面间只能靠 storage 传递。 // // 这里只负责一次性的交接,不是草稿: // - 进销量页前,create 页写入连锁名与当前明细作为上下文; // - 销量页返回时写回明细(action='submit' 表示用户点了销量页自己的 // 「提交销量」,'merge' 表示按返回键离开时同步明细); // - create 页消费后即清。两者都不代表整单已提交,整单提交是 // create 页「提交填报」按钮的职责。 // // 持久化草稿统一由 create 页的整单草稿负责(含 salesItems/打卡/小票/小结), // 销量页不再单独存草稿,避免两份状态互相覆盖。 const normalizeUid = () => { const user = getUserInfo() || {} const uid = user.uid || user.id || user.userId || 'guest' return String(uid) } const readObject = key => { const value = uni.getStorageSync(key) return value && typeof value === 'object' ? value : null } export const cloneSalesItems = (items = []) => { try { return JSON.parse(JSON.stringify(Array.isArray(items) ? items : [])) } catch (error) { return [] } } export const getSalesHandoffKey = () => `yxe_self_report_sales_handoff_${normalizeUid()}` export const setSalesHandoff = (payload = {}) => { uni.setStorageSync(getSalesHandoffKey(), Object.assign({savedAt: Date.now()}, payload)) } export const getSalesHandoff = () => readObject(getSalesHandoffKey()) export const clearSalesHandoff = () => { uni.removeStorageSync(getSalesHandoffKey()) }