keyData.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { unLock } from "@/api/lock/lock"
  2. //进入详情页时,保存id和其他参数
  3. export function inDetailsKey(key, obj) {
  4. let list = []
  5. list = getDetailsKey() ? getDetailsKey() : []
  6. if (list.find(e => e.key == key)) {
  7. list.fill({
  8. key: key,
  9. ...obj
  10. }, list.findIndex(item => item.key == key), list.findIndex(item => item.key == key) + 1)
  11. sessionStorage.setItem('detailsKeyData', JSON.stringify(list))
  12. } else {
  13. list.push({
  14. key: key,
  15. ...obj
  16. })
  17. sessionStorage.setItem('detailsKeyData', JSON.stringify(list))
  18. }
  19. }
  20. //离开详情页时,清除对应key的id和其他参数
  21. export function leaveDetailsKey(key) {
  22. let list = []
  23. list = getDetailsKey() ? getDetailsKey() : []
  24. list.splice(list.findIndex(item => item.key == key), 1)
  25. sessionStorage.setItem('detailsKeyData', JSON.stringify(list))
  26. }
  27. export function getDetailsKey() {
  28. return JSON.parse(sessionStorage.getItem("detailsKeyData"))
  29. }
  30. //关闭当前tabs,清除key并执行解锁接口
  31. export function delTabsKey(key) {
  32. let list = []
  33. list = getDetailsKey() ? getDetailsKey() : []
  34. let data = list.find(e => e.key == key)
  35. if (data) {
  36. //执行解锁接口
  37. unLock(data)
  38. //执行完接口清除key
  39. leaveDetailsKey(key)
  40. }
  41. }
  42. //关闭其他或者全部tabs,清除key并执行解锁接口
  43. export function delAllTabsKey(key) {
  44. let list = []
  45. list = getDetailsKey() ? getDetailsKey() : []
  46. if (key == 'ALL') {
  47. //关闭所有或者当前为首页的其他tab
  48. list.forEach(e => {
  49. //执行解锁
  50. unLock(e)
  51. //执行完接口清除key
  52. leaveDetailsKey(e.key)
  53. });
  54. } else {
  55. //其他tab
  56. list.forEach(e => {
  57. if (e.key != key) {
  58. //执行解锁
  59. unLock(e)
  60. //执行完接口清除key
  61. leaveDetailsKey(e.key)
  62. }
  63. });
  64. }
  65. }