猎羽广告

menu.ts 3.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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":3,"title":"广告管理","route":null,"icon":"icon-a-biaoqing2x","level":1,
  41. "sub":[
  42. {"id":17,"title":"广点通","route":"gdtList","icon":null,"level":2,"sub":[]},
  43. {"id":18,"title":"任务中心","route":"adTask","icon":null,"level":2,"sub":[]},
  44. ]},
  45. {"id":2,"title":"素材管理","route":null,"icon":"icon-a-sucai2x","level":1,
  46. "sub":[{"id":8,"title":"文案库","route":"textLibrary","icon":null,"level":2,"sub":[]},
  47. {"id":15,"title":"本地素材","route":"materialLibrary","icon":null,"level":2,"sub":[]},
  48. {"id":16,"title":"收藏夹","route":"collectClip","icon":null,"level":2,"sub":[]},
  49. ]},
  50. {"id":1,"title":"系统管理","route":null,"icon":"icon-a-xitongshezhi2x","level":1,
  51. "sub":[
  52. {"id":5,"title":"adq授权","route":"adqManage","icon":null,"level":2,"sub":[]},
  53. {"id":9,"title":"微信小程序","route":"miniprogram","icon":null,"level":2,"sub":[]},
  54. {"id":6,"title":"账号管理","route":"accountManage","icon":null,"level":2,"sub":[]},
  55. {"id":7,"title":"任务列表","route":"taskList","icon":null,"level":2,"sub":[]},
  56. ]}
  57. ]
  58. setLocal('menuList',this.menuList,1)
  59. resolve(this.menuList)
  60. cb?cb():''
  61. // const params_self:any = {
  62. // params:{
  63. // admin_id: getCookie("admin_id"),
  64. // ttl: Number(getCookie("ttl")),
  65. // sign: getCookie("sign"),
  66. // }
  67. // }
  68. // axios.get(Api.premission_asideList,params_self).then((res:any)=>{
  69. // let res_new = res.data
  70. // if (res_new && res_new.code == '0') {
  71. // this.menuList = res_new.data
  72. // setLocal('menuList',this.menuList,1)
  73. // resolve(this.menuList)
  74. // cb?cb():''
  75. // }else{
  76. // console.log('侧边栏请求错误')
  77. // reject()
  78. // }
  79. // }).catch((err:any)=>{
  80. // console.log('侧边栏请求错误')
  81. // reject(err)
  82. // })
  83. })
  84. }
  85. },
  86. })