余额额度流水加导出

This commit is contained in:
luojiaquan
2026-09-21 17:35:20 +08:00
parent bbb312f49b
commit 8c650e7ef2
12 changed files with 743 additions and 47 deletions
+50
View File
@@ -0,0 +1,50 @@
/**
* 表格列显隐偏好(localStorage 持久化)。
*
* @param {string} storageKey 存储键(页面级唯一,如 'customer-list')
* @param {Array<{key:string,label:string,fixed?:boolean,defaultVisible?:boolean}>} columns 列定义
* @returns {{colVisible: object, isColVisible: Function, resetColumns: Function}}
* colVisible 响应式显隐映射,模板中 v-if="isColVisible('xxx')"
* resetColumns 恢复默认(供列设置弹窗调用)
*/
const PREFIX = 'bms:columnSettings:'
export function useColumnSettings(storageKey, columns) {
const defaults = {}
columns.forEach(c => {
defaults[c.key] = c.defaultVisible !== false
})
let saved = {}
try {
saved = JSON.parse(localStorage.getItem(PREFIX + storageKey) || '{}') || {}
} catch (e) {
saved = {}
}
// 仅接受当前列定义中存在的 key(兼容历史存储与列增减)
const colVisible = reactive({ ...defaults })
columns.forEach(c => {
if (Object.prototype.hasOwnProperty.call(saved, c.key)) {
colVisible[c.key] = !!saved[c.key]
}
// 固定列强制可见
if (c.fixed) colVisible[c.key] = true
})
watch(colVisible, val => {
localStorage.setItem(PREFIX + storageKey, JSON.stringify(val))
}, { deep: true })
function isColVisible(key) {
return colVisible[key] !== false
}
function resetColumns() {
columns.forEach(c => {
colVisible[c.key] = c.fixed ? true : c.defaultVisible !== false
})
}
return { colVisible, isColVisible, resetColumns }
}