Vue 配合eiement動態路由,許可權驗證

愛吃排骨發表於2018-07-19

1.要實現動態路由,只需要在main.js中將所有路由表先規定好,如下圖

const routes=[
  {path:'/login',component:login},/*登入*/

  {path:'/home',component:home},/*首頁*/
  {path:'/monitor',component:monitor},/*實時監控*/
  {path: "/orderQuery", component: orderQuery},/*電子圍欄*/
  {path: "/fenceSet", component: fenceSet},/*電子圍欄*/

  {path:'/orderCenter',component:orderCenter},/*訂單中心*/
  {path:'/carctlExamine',component:carctlExamine},/*車管員審批*/
  {path:'/partExamine',component:partExamine},/*部門領導審批*/
  {path:'/vpExamine',component:vpExamine},/*副總審批*/

  {path:'/distribute',component:distribute},/*排程派單*/
  {path:'/receipt',component:receipt},/*回執*/

  {path:'/trajectory',component:trajectory},/*軌跡回放*/
  {path:'/statistics',component:statistics },/*統計*/

  {path:'/car',component:car},/*車輛管理*/
  {path:'/user',component:user},/*使用者管理*/
  {path:'/equipment',component:equipment},/*裝置管理*/
  {path:'/group',component:group},/*小組維護*/
  {path:'/driver',component:driver},/*駕駛員管理*/

  {path: '/company', component: company},/*公司管理*/
  {path: '/adminManage', component: adminManage},/*公司員管理*/
  {path: '/roleManage', component: roleManage},/*角色管理*/
  {path:'/systemDaily',component:systemDaily },/*系統日誌*/



];

2.把前端路由表發給後臺和後臺協商返回的資料形式,在app.vue中,使用《el=menu》迴圈出來後臺返回的路由表如下圖,

    <el-menu
      :default-active="$route.path"
      class="el-menu-demo"
      mode="horizontal"
      @select="handleSelect"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#85ffca">

      <el-menu-item  :index="item.path"  v-for="item in pathList"
                     v-if="item.path!=null"  :key="item.id" >
        <router-link :to="item.path">{{item.name}}</router-link>
      </el-menu-item>/*一級導航*/

      <el-submenu  v-if="item.path==null" :key="item.id":index="item.name"  v-for="item in pathList">
        <template slot="title">{{item.name}}</template>

        <el-menu-item  v-for="child in item.children" :index="child.path"
          :key="child.id"  v-if="child.path!=null" >/*二級導航*/
          <router-link :to="child.path">{{child.name}}</router-link>

        </el-menu-item>
        <el-submenu v-if="child.children!=[]&&child.path==null" v-for="child in item.children":key="child.id":index="child.name" >
          <template slot="title">{{child.name}}</template>
          <el-menu-item v-for="three in child.children":index="three.path":key="three.id">/*若存在三級導航*/
            <router-link :to="three.path">{{three.name}}</router-link>
          </el-menu-item>
        </el-submenu>

      </el-submenu>

    </el-menu>

這樣就可以在登入的時候根據介面獲取到當前使用者所擁有的許可權以及路由表,這樣動態路由就做好了 。我們是根據頁面來確定許可權的,沒有頁面就代表沒有許可權無法檢視頁面

相關文章