quasar官网quasar-admin项目介绍使用quasar搭建后台管理系统#角色菜单权限:登录成功后,根据用户信息,获取菜单#按钮权限控制:返回权限,命令控制#菜单数据结构[{图标:'feedback',label:'StoreManagement',path:'/storeInfo',btns:['btn-add','btn-delete']#按钮权限与下面的模拟信息不一致,思路是同}]开发代码片段说明看官方文档推荐使用yarnsodoitready~~#Node.js>=10isrequired.#globalinstallationyarnnpminstall-gyarn#quasarglobalinstallation见底注yarnglobaladd@quasar/cli#项目启动执行文件quasar.config.jsboot:[//要执行的文件的boot文件夹中的文件名为'axios','permission']build:{port:8083,//下面是8083端口env:{API:ctx.dev?'http://localhost:8080/backend'//后缀与以下代理一致:'http://www.xxxxx.cn/'},}devServer:{proxy:{'/backend':{target:'http://testapi',changeOrigin:true,pathRewrite:{'^/backend':'/'}}},}//启动文件夹axios.js//请求设置importVuefrom'vue'从“axios”导入axios*asauthServicefrom'../utils/auth'import{Loading}from'quasar'//添加请求拦截器process.env.API'/backend'constaxiosInstance=axios.create({baseURL:process.env.API,timeout:10000,withCredentials:true})axiosInstance.defaults.headers.post['Content-Type']='application/json;charset=UTF-8'//请求拦截axiosInstance.interceptors.request.use(config=>{Loading.show({//spinner:QSpinnerGears,delay:500,//msmessage:'Somemessage',messageColor:'blue',spinnerSize:250,//像素spinnerColor:'white',customClass:'bg-primary'})console.log('inforequesttoken:'+authService.getToken())if(authService.getToken()){config.headers.Authorization='Bearer'+authService.getToken()}else{config.headers.Authorization=''}returnconfig},error=>{returnPromise.reject(error)})//响应拦截axiosInstance.interceptors.response.use(response=>{Loading.hide()returnresponse.data},error=>{returnPromise.reject(error)})Vue.prototype.$axios=axiosInstanceexport{axiosInstance}permission.js//点击权限控制exportdefault({app,router,store,Vue})=>{Vue.directive('permission',{bind:function(el,binding,vnode){//localStorage.setItem('isAdmin',0)//localStorage.setItem('permission',['function_edit','function_add'])//console.log(localStorage.permission,el,binding,vnode)constneedPermissions=binding.valueconstpermissions=JSON.parse(localStorage.getItem('permission'))//constpermissions=['function_edit','function_add']constisAdmin=localStorage.getItem('isAdmin')consthasPermission=permissions.some(s=>{returnneedPermissions.indexOf(s)>-1})console.log(hasPermission,isAdmin)if(!hasPermission){el.style.display='none'}}})}//点击使用control
