1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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)
- }
- });
- }
- }
|