import { defineStore } from 'pinia' import { Api } from "@/api/api" import axios from 'axios' import {setLocal,getCookie} from "@/common/common"; import {ElMessage} from "element-plus"; //定义state类型 export type MenuState = { menuList: any; //侧边栏 } //定义store export const menuStore = defineStore('menuStore', { state: (): MenuState => { return { menuList:[], } }, persist: { enabled: true, //开启存储 // storage:sessionStorage/localStorage,还可以自定义存入对应的如下 //不写以下也可以 默认是sessionStorage strategies: [ // { storage: cookiesStorage, paths: ['info'] } //{ storage: sessionStorage, paths: ['info'] } // { storage: localStorage, paths: ['accountInfo'] }, ], }, getters: { // 类似组件的computed,用来封装计算属性,用缓存功能 // 若使用this,则必须手动指定返回类型,否则类型推导不出 // 函数接受一个可选对象state }, actions: { // 分装业务逻辑 ,修改state // 不能使用箭头函数定义action,因为箭头函数绑定外部this getMenuList(cb:any) { return new Promise( (resolve, reject) => { this.menuList = [ {"id":16,"title":"首页","route":"home","icon":"icon-shouye","level":1,"sub":[]}, {"id":3,"title":"广告管理","route":null,"icon":"icon-a-biaoqing2x","level":1, "sub":[ {"id":17,"title":"广点通","route":"gdtList","icon":null,"level":2,"sub":[]}, {"id":18,"title":"任务中心","route":"adTask","icon":null,"level":2,"sub":[]}, ]}, {"id":2,"title":"素材管理","route":null,"icon":"icon-a-sucai2x","level":1, "sub":[{"id":8,"title":"文案库","route":"textLibrary","icon":null,"level":2,"sub":[]}, {"id":15,"title":"本地素材","route":"materialLibrary","icon":null,"level":2,"sub":[]}, {"id":16,"title":"收藏夹","route":"collectClip","icon":null,"level":2,"sub":[]}, ]}, {"id":1,"title":"系统管理","route":null,"icon":"icon-a-xitongshezhi2x","level":1, "sub":[ {"id":5,"title":"adq授权","route":"adqManage","icon":null,"level":2,"sub":[]}, {"id":9,"title":"微信小程序","route":"miniprogram","icon":null,"level":2,"sub":[]}, {"id":6,"title":"账号管理","route":"accountManage","icon":null,"level":2,"sub":[]}, {"id":7,"title":"任务列表","route":"taskList","icon":null,"level":2,"sub":[]}, ]} ] setLocal('menuList',this.menuList,1) resolve(this.menuList) cb?cb():'' // const params_self:any = { // params:{ // admin_id: getCookie("admin_id"), // ttl: Number(getCookie("ttl")), // sign: getCookie("sign"), // } // } // axios.get(Api.premission_asideList,params_self).then((res:any)=>{ // let res_new = res.data // if (res_new && res_new.code == '0') { // this.menuList = res_new.data // setLocal('menuList',this.menuList,1) // resolve(this.menuList) // cb?cb():'' // }else{ // console.log('侧边栏请求错误') // reject() // } // }).catch((err:any)=>{ // console.log('侧边栏请求错误') // reject(err) // }) }) } }, })