管理系统二级权限管理代码

<template>
  <div class="secondaryPermission">
    <!-- 标题 -->
    <page-title title="二级权限管理">
      您可以在此处进行二级权限的管理
    </page-title>

    <!-- 新增二级权限按钮 -->
    <el-row class="addSecondary">
      <el-col>
        <el-button type="primary" @click="dialogShow('insert')">新增二级权限</el-button>
      </el-col>
    </el-row>

    <!-- 弹出对话框 -->
    <el-dialog :visible.sync="isShow" :close-on-click-modal="false" @close="dialogClose">
      <template slot="title"><i :class="dialogData.icon" class=title></i>{{dialogData.text}}</template>
      <el-row>
        <el-col>
          <el-form :model="dialogFormData" ref="dialog" :rules="dialogRules">
            <el-formItem label="选择所属一级分类" prop="parentId">
              <el-select v-model="dialogFormData.parentId">
                <el-option
                    v-for="item in fatherNameData"
                    :value="item.permissionId"
                    :label="item.permissionName"
                >
                </el-option>
              </el-select>
            </el-formItem>
            <el-formItem label="新增二级权限名称" prop="permissionName">
              <el-input v-model="dialogFormData.permissionName" :disabled="!dialogFormData.parentId"></el-input>
            </el-formItem>
            <el-formItem label='路由地址' prop="path">
              <el-input v-model="dialogFormData.path" :disabled="!dialogFormData.parentId"></el-input>
            </el-formItem>
            <el-formItem label="路由路径" prop="pathUrl">
              <el-input v-model="dialogFormData.pathUrl" :disabled="!dialogFormData.parentId"></el-input>
            </el-formItem>
          </el-form>
        </el-col>
      </el-row>
      <template slot="footer">
        <el-button type="info" @click="isShow=false">取消</el-button>
        <el-button type="primary" @click="addOrModify">{{dialogData.buttonText}}</el-button>
      </template>
    </el-dialog>
    <!-- 表格 -->
    <el-table :data="tableData">
      <el-table-column label="序号" type="index" align="center"></el-table-column>
      <el-table-column label="权限名称" prop="permissionName" align="center"></el-table-column>
      <el-table-column label="路由地址" prop="path" align="center"></el-table-column>
      <el-table-column label="路由路径" prop="pathUrl" align="center"></el-table-column>
      <el-table-column label="父权限" prop="parentName" align="center"></el-table-column>
      <el-table-column label="操作" width="150px" align="center">
        <template slot-scope="sc">
          <el-button type="warning" size="mini" @click="dialogShow('modify',sc)">修改</el-button>
          <el-button type="danger" size="mini" @click="delBunClick(sc)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  name: "secondaryPermission",
  data(){
    let nameValidate=(rule,value,callback)=>{
      if (value!==this.currentName){
        let url='/api/admin/permissionSecondaryCheck.jsp'
        let data={
          params:{
            parentId:this.dialogFormData.parentId,
            permissionName:value
          }
        }
        this.$axios.get(url,data).then(res=>{
          if(res.data.code===201){
            callback(new Error(res.data.msg))
          }
          callback()
        })
      }
    }

    return {
    //  对话框是否显示
      isShow:false,
    //  对话框绑定的标题图标按钮文本
      dialogData:{
        text:'',
        icon:'',
        buttonText:''
      },
    //  对话框图标绑定的数据
      dialogFormData:{
        parentId:'',
        permissionName:'',
        path:'',
        pathUrl:''
      },
    //  在mounted里赋值一个对话框绑定的元数据
      tempData:{},
    //  获取当前点击的那个的二级权限的名称
      currentName:'',
    //  获取当前的索引值
      currentIndex:'',
    //  获取表格数据(二级权限)
      tableData:[],
    //  找父权限
      fatherNameData:[],
    //  对话框表单验证
      dialogRules:{
        parentId:[{required:true,message:'请选择从属的一级权限',trigger:'blur'}],
        permissionName:[
          {required:true,message:'二级权限名称不得为空',trigger:'blur'},
          {validator:nameValidate,trigger:'blur'}
        ],
        path:[{required:true,message:'路由地址不得为空',trigger:'blur'}],
        pathUrl:[{required:true,message:'路由权限不得为空',trigger:'blur'}]
      }

    }
  },
  mounted(){
  //  获取一级权限
    let url='/api/admin/permissionPrimary.jsp'
    this.$axios.get(url).then(res=>{
      if (res.data.code===200){
        this.fatherNameData=res.data.data.permission
      }
    })
  //  获二级权限
    let url1='/api/admin/permissionSecondary.jsp'
    this.$axios.get(url1).then(res=>{
      if (res.data.code===200){
        this.tableData=res.data.data.permission
      }
    })
    this.tempData=Object.assign({},this.dialogFormData)
    console.log(this.tempData)
  },
  methods:{
    //点击新增或修改对话框出来
    dialogShow(status,sc){
      if (status==='insert'){
      //  点的新增
        this.dialogData.icon='el-icon-folder-add'
        this.dialogData.text='新增二级权限'
        this.dialogData.buttonText='新增'
      }else{
      //点的修改
        this.dialogData.icon='el-icon-edit'
        this.dialogData.text='修改一级权限'
        this.dialogData.buttonText='修改'
        this.currentName=sc.row.permissionName
        this.currentIndex=sc.$index
        this.dialogFormData=Object.assign({},sc.row)
      }
      this.isShow=true
    },
  //  删除的单击事件
    delBunClick(sc){
      this.$confirm('您确定删除此二级权限吗?').then(()=>{
        let url='/api/admin/permissionSecondaryDelete.jsp'
        let data={
          params:{
            permissionId:sc.row.permissionId
          }
        }
        this.$axios.get(url,data).then(res=>{
          if (res.data.code===200){
            this.tableData.splice(sc.$index,1)
            this.$message.success(res.data.msg)
          }
        })
      }).catch(()=>{})
    },
  //  对话框的关闭事件
    dialogClose(){
      this.dialogFormData=Object.assign({},this.tempData)
      this.$refs.dialog.resetFields()
    },
    //  对话框底部的新增或者修改按钮
    addOrModify(){
      if (this.dialogData.buttonText==='新增'){
      //  新增
        let url='/api/admin/permissionSecondaryInsert.jsp'
        let data={
          params:{
            permissionName:this.dialogFormData.permissionName,
            path:this.dialogFormData.path,
            pathUrl:this.dialogFormData.pathUrl,
            parentId:this.dialogFormData.parentId
          }
        }
        this.$axios.get(url,data).then(res=>{
          if (res.data.code===200){
            this.$message.success(res.data.msg)
            this.tableData.push(res.data.data)
            console.log(res.data.data)
          }
        })
      }else{
      //  修改
        let url='/api/admin/permissionSecondaryModify.jsp'
        console.log()
        let data={
          params:Object.assign({},this.dialogFormData)
        }
        this.$axios.get(url,data).then(res=>{
          if (res.data.code===200){
            this.$message.success(res.data.msg)
            this.$set(this.tableData,this.currentIndex,data.params)
          }
        })
      }
      this.isShow=false
    }
  }
}
</script>

<style scoped>
.addSecondary{
  margin:20px 0;
}
.title{
  margin-right: 10px;
}
</style>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值