import { unLock } from "@/api/lock/lock" //进入详情页时,保存id和其他参数 export function inDetailsKey(key, obj) { let list = [] list = getDetailsKey() ? getDetailsKey() : [] if (list.find(e => e.key == key)) { list.fill({ key: key, ...obj }, list.findIndex(item => item.key == key), list.findIndex(item => item.key == key) + 1) sessionStorage.setItem('detailsKeyData', JSON.stringify(list)) } else { list.push({ key: key, ...obj }) sessionStorage.setItem('detailsKeyData', JSON.stringify(list)) } } //离开详情页时,清除对应key的id和其他参数 export function leaveDetailsKey(key) { let list = [] list = getDetailsKey() ? getDetailsKey() : [] list.splice(list.findIndex(item => item.key == key), 1) sessionStorage.setItem('detailsKeyData', JSON.stringify(list)) } export function getDetailsKey() { return JSON.parse(sessionStorage.getItem("detailsKeyData")) } //关闭当前tabs,清除key并执行解锁接口 export function delTabsKey(key) { let list = [] list = getDetailsKey() ? getDetailsKey() : [] let data = list.find(e => e.key == key) if (data) { //执行解锁接口 unLock(data) //执行完接口清除key leaveDetailsKey(key) } } //关闭其他或者全部tabs,清除key并执行解锁接口 export function delAllTabsKey(key) { let list = [] list = getDetailsKey() ? getDetailsKey() : [] if (key == 'ALL') { //关闭所有或者当前为首页的其他tab list.forEach(e => { //执行解锁 unLock(e) //执行完接口清除key leaveDetailsKey(e.key) }); } else { //其他tab list.forEach(e => { if (e.key != key) { //执行解锁 unLock(e) //执行完接口清除key leaveDetailsKey(e.key) } }); } }