猎羽广告

menu.ts 3.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { defineStore } from 'pinia'
  2. import { Api } from "@/api/api"
  3. import axios from 'axios'
  4. import {setLocal,getCookie} from "@/common/common";
  5. import {ElMessage} from "element-plus";
  6. //定义state类型
  7. export type MenuState = {
  8. menuList: any; //侧边栏
  9. }
  10. //定义store
  11. export const menuStore = defineStore('menuStore', {
  12. state: (): MenuState => {
  13. return {
  14. menuList:[],
  15. }
  16. },
  17. persist: {
  18. enabled: true, //开启存储
  19. // storage:sessionStorage/localStorage,还可以自定义存入对应的如下
  20. //不写以下也可以 默认是sessionStorage
  21. strategies: [
  22. // { storage: cookiesStorage, paths: ['info'] }
  23. //{ storage: sessionStorage, paths: ['info'] }
  24. // { storage: localStorage, paths: ['accountInfo'] },
  25. ],
  26. },
  27. getters: {
  28. // 类似组件的computed,用来封装计算属性,用缓存功能
  29. // 若使用this,则必须手动指定返回类型,否则类型推导不出
  30. // 函数接受一个可选对象state
  31. },
  32. actions: {
  33. // 分装业务逻辑 ,修改state
  34. // 不能使用箭头函数定义action,因为箭头函数绑定外部this
  35. getMenuList(cb:any) {
  36. return new Promise( (resolve, reject) => {
  37. this.menuList =
  38. [
  39. {"id":16,"title":"首页","route":"home","icon":"icon-shouye","level":1,"sub":[]},
  40. {"id":2,"title":"素材管理","route":null,"icon":"icon-a-sucai2x","level":1,
  41. "sub":[{"id":8,"title":"文案库","route":"textLibrary","icon":null,"level":2,"sub":[]},
  42. {"id":15,"title":"本地素材","route":"materialLibrary","icon":null,"level":2,"sub":[]},
  43. {"id":16,"title":"收藏夹","route":"collectClip","icon":null,"level":2,"sub":[]},
  44. // {"id":17,"title":"广点通","route":"gdtList","icon":null,"level":2,"sub":[]},
  45. ]},
  46. {"id":1,"title":"系统管理","route":null,"icon":"icon-a-xitongshezhi2x","level":1,
  47. "sub":[
  48. {"id":5,"title":"adq授权","route":"adqManage","icon":null,"level":2,"sub":[]},
  49. {"id":6,"title":"账号管理","route":"accountManage","icon":null,"level":2,"sub":[]},
  50. {"id":7,"title":"任务列表","route":"taskList","icon":null,"level":2,"sub":[]},
  51. ]}
  52. ]
  53. setLocal('menuList',this.menuList,1)
  54. resolve(this.menuList)
  55. cb?cb():''
  56. // const params_self:any = {
  57. // params:{
  58. // admin_id: getCookie("admin_id"),
  59. // ttl: Number(getCookie("ttl")),
  60. // sign: getCookie("sign"),
  61. // }
  62. // }
  63. // axios.get(Api.premission_asideList,params_self).then((res:any)=>{
  64. // let res_new = res.data
  65. // if (res_new && res_new.code == '0') {
  66. // this.menuList = res_new.data
  67. // setLocal('menuList',this.menuList,1)
  68. // resolve(this.menuList)
  69. // cb?cb():''
  70. // }else{
  71. // console.log('侧边栏请求错误')
  72. // reject()
  73. // }
  74. // }).catch((err:any)=>{
  75. // console.log('侧边栏请求错误')
  76. // reject(err)
  77. // })
  78. })
  79. }
  80. },
  81. })