页面认证需弹框
1.根据需规写界面,弹框内的内容样式编写;index.vue
2.弹框变成全局但后期变成局部组件单独在需要引用的组件使用
全局: 在main.js中引入
import bloMessaege from "@/components/BloMessaege"
vue.prototype.$bloMessaege =bloMessaege ;
this.$bloMessaege()
局部引用:
在permission.js(跳转路由权限跳转)
import BloMessaege from "@/components/BloMessaege"
BloMessaege ()//直接使用
3.写弹框的方法,message的源码,里面内容挂载
`options={ message:options //此处会引发前端获取不到useMap }
options={ ...options //解决方法 }`
4.弹框内给后端传参,将点击菜单处的参数传通过模态框传给index.vue
a:第一次尝试在菜单栏点击弹框,
(1).用split分割字符串;
(2).用includes判断返回布尔值(不要遍历,会影响效率);
(3).用store里面的公共方法组装userMap(前提是引入userMap会报错);
(4).传参前先封装好参数
(5).逻辑问题:全局判断所有需要认证的菜单,根据后端接口返回是否认证通过,如果有直接跳转,如果没有,就判断存不存在认证方式,如果线上就弹框提示语言,如果其他方式就弹框;
b:第二次尝试在路由跳转地方点击弹窗
(1).用router.beforeEach(to,from,next)里面的to是路由信息,next()方法 (2).页面背景置空,操作dom元素
const container=document.querySelector(".app-main").setAttribute("style","display:none");
注意:1.参数组装;2.逻辑判断3.操作添加样式添加importan不生效;4.写界面前写好字段及参数
5.点击页面授权弹框确认需要给后端参数,组合好参数,调接口提示语关闭弹窗移除菜单;
6.移除菜单使用之前写的方法全部移过来;