余额额度流水加导出
This commit is contained in:
@@ -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 }
|
||||
}
|
||||
Reference in New Issue
Block a user