gaoshp
2024-06-03 6f1ac1da6b6cba5c74f2fb6be82f7e472c4116ee
src/views/console/authority/role/permission.vue
@@ -1,15 +1,50 @@
<template>
   <el-dialog title="角色权限设置" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')">
      <el-tabs tab-position="top">
         <el-tab-pane label="菜单">
         <el-tab-pane label="菜单权限">
            <div class="treeMain">
               <el-tree ref="menu" node-key="name" :data="menu.list" :props="menu.props" show-checkbox></el-tree>
            </div>
         </el-tab-pane>
         <el-tab-pane label="卡片">
         <el-tab-pane label="数据权限">
            <el-form label-width="100px" label-position="left">
               <el-form-item label="规则类型">
                  <el-select v-model="data.dataType" placeholder="请选择">
                     <el-option label="全部可见" value="1"></el-option>
                     <el-option label="本人可见" value="2"></el-option>
                     <el-option label="所在部门可见" value="3"></el-option>
                     <el-option label="所在部门及子级可见" value="4"></el-option>
                     <el-option label="选择的部门可见" value="5"></el-option>
                     <el-option label="自定义" value="6"></el-option>
                  </el-select>
               </el-form-item>
               <el-form-item label="选择部门" v-show="data.dataType=='5'">
                  <div class="treeMain" style="width: 100%;">
                     <el-tree ref="dept" node-key="id" :data="data.list" :props="data.props" show-checkbox></el-tree>
                  </div>
               </el-form-item>
               <el-form-item label="规则值" v-show="data.dataType=='6'">
                  <el-input v-model="data.rule" clearable type="textarea" :rows="6" placeholder="请输入自定义规则代码"></el-input>
               </el-form-item>
            </el-form>
         </el-tab-pane>
         <el-tab-pane label="控制台模块">
            <div class="treeMain">
               <el-tree ref="grid" node-key="key" :data="grid.list" :props="grid.props" :default-checked-keys="grid.checked" show-checkbox></el-tree>
            </div>
         </el-tab-pane>
         <el-tab-pane label="控制台">
            <el-form label-width="100px" label-position="left">
               <el-form-item label="控制台视图">
                  <el-select v-model="dashboard" placeholder="请选择">
                     <el-option v-for="item in dashboardOptions" :key="item.value" :label="item.label" :value="item.value">
                        <span style="float: left">{{ item.label }}</span>
                        <span style="float: right; color: #8492a6; font-size: 12px">{{ item.views }}</span>
                     </el-option>
                  </el-select>
                  <div class="el-form-item-msg">用于控制角色登录后控制台的视图</div>
               </el-form-item>
            </el-form>
         </el-tab-pane>
      </el-tabs>
      <template #footer>
@@ -71,9 +106,9 @@
         }
      },
      mounted() {
         // this.getMenu()
         // this.getDept()
         // this.getGrid()
         this.getMenu()
         this.getDept()
         this.getGrid()
      },
      methods: {
         open(){
@@ -120,25 +155,29 @@
            this.grid.list = [
               {
                  key: "welcome",
                  title: "主数据",
                  title: "欢迎",
                  isFixed: true
               },
               {
                  key: "ver",
                  title: "采集分析",
                  title: "版本信息",
                  isFixed: true
               },
               {
                  key: "time",
                  title: "生产工艺"
                  title: "时钟"
               },
               {
                  key: "progress",
                  title: "数字看板"
                  title: "进度环"
               },
               {
                  key: "echarts",
                  title: "配置中心"
                  title: "实时收入"
               },
               {
                  key: "about",
                  title: "关于项目"
               }
            ]
         }