吉安感知网项目-前端
shuishen
2026-01-17 194db7300a3e50d7bd0bb61f8ff6d34d22b72f55
Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web
2 files modified
161 ■■■■ changed files
applications/drone-command/src/views/authority/role.vue 131 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue 30 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/authority/role.vue
@@ -1,13 +1,30 @@
<template>
  <basic-container>
    <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
      :permission="permissionList" :before-open="beforeOpen" @row-del="rowDel" @row-update="rowUpdate"
      @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
        <avue-crud
            :option="option"
            :table-loading="loading"
            :data="data"
            ref="crud"
            v-model="form"
            :permission="permissionList"
            :before-open="beforeOpen"
            @row-del="rowDel"
            @row-update="rowUpdate"
            @row-save="rowSave"
            @search-change="searchChange"
            @search-reset="searchReset"
            @selection-change="selectionChange"
            @current-change="currentChange"
            @size-change="sizeChange"
            @refresh-change="refreshChange"
            @on-load="onLoad"
        >
      <template #menu-left>
        <el-button type="danger" icon="el-icon-delete" v-if="permission.role_delete" plain @click="handleDelete">删 除
                <el-button type="danger" icon="el-icon-delete" v-if="permission.role_delete" plain @click="handleDelete">
                    删 除
        </el-button>
        <el-button icon="el-icon-setting" v-if="userInfo.role_name.includes('admin')" @click="handleRole" plain>权限设置
                <el-button icon="el-icon-setting" v-if="userInfo.role_name.includes('admin')" @click="handleRole" plain>
                    权限设置
        </el-button>
        <!--  -->
      </template>
@@ -15,32 +32,68 @@
    <el-dialog title="角色权限配置" append-to-body v-model="box" width="620px">
      <el-tabs type="border-card">
        <el-tab-pane label="后台管理">
          <el-tree :data="menuGrantList" show-checkbox node-key="id" ref="treeMenu" :default-checked-keys="menuTreeObj"
            :props="props">
          </el-tree>
                    <el-tree
                        :data="menuGrantList"
                        show-checkbox
                        node-key="id"
                        ref="treeMenu"
                        :default-checked-keys="menuTreeObj"
                        :props="props"
                    ></el-tree>
        </el-tab-pane>
        <el-tab-pane label="移动app">
          <el-tree :data="menuGrantListApp" show-checkbox node-key="id" ref="treeMenuApp" :default-checked-keys="menuTreeObjApp"
                   :props="props">
          </el-tree>
                    <el-tree
                        :data="menuGrantListApp"
                        show-checkbox
                        node-key="id"
                        ref="treeMenuApp"
                        :default-checked-keys="menuTreeObjApp"
                        :props="props"
                    ></el-tree>
        </el-tab-pane>
        <el-tab-pane label="新大屏菜单">
          <el-tree :data="menuGrantListNew" show-checkbox node-key="id" ref="treeMenuWebNew" :default-checked-keys="menuTreeObjNew"
                   :props="props">
          </el-tree>
                    <el-tree
                        :data="menuGrantListNew"
                        show-checkbox
                        node-key="id"
                        ref="treeMenuWebNew"
                        :default-checked-keys="menuTreeObjNew"
                        :props="props"
                    ></el-tree>
        </el-tab-pane>
        <el-tab-pane label="无人机管控">
          <el-tree :data="menuGrantListDroneControl" show-checkbox node-key="id" ref="droneControl" :default-checked-keys="droneControlMenuTreeObj"
                   :props="props">
          </el-tree>
                    <el-tree
                        :data="menuGrantListDroneControl"
                        show-checkbox
                        node-key="id"
                        ref="droneControl"
                        :default-checked-keys="droneControlMenuTreeObj"
                        :props="props"
                    ></el-tree>
                </el-tab-pane>
                <el-tab-pane label="任务工单">
                    <el-tree
                        :data="menuGrantListWork"
                        show-checkbox
                        node-key="id"
                        ref="workRef"
                        :default-checked-keys="workTreeObj"
                        :props="props"
                    ></el-tree>
        </el-tab-pane>
        <el-tab-pane label="大屏菜单">
          <el-tree :data="menuGrantListOld" show-checkbox node-key="id" ref="treeMenuWebOld" :default-checked-keys="menuTreeObjOld"
                   :props="props">
          </el-tree>
                    <el-tree
                        :data="menuGrantListOld"
                        show-checkbox
                        node-key="id"
                        ref="treeMenuWebOld"
                        :default-checked-keys="menuTreeObjOld"
                        :props="props"
                    ></el-tree>
        </el-tab-pane>
        <!-- <el-tab-pane label="数据权限">
          <el-tree
@@ -76,16 +129,7 @@
</template>
<script>
import {
  add,
  getList,
  getRole,
  getRoleTreeById,
  grant,
  grantTree,
  remove,
  update,
} from '@/api/system/role'
import { add, getList, getRole, getRoleTreeById, grant, grantTree, remove, update } from '@/api/system/role'
import { mapGetters } from 'vuex'
import website from '@/config/website'
@@ -103,6 +147,7 @@
      menuGrantListOld: [],
      menuGrantListNew: [],
      menuGrantListDroneControl: [],
            menuGrantListWork: [],
      dataScopeGrantList: [],
      apiScopeGrantList: [],
      apiGrantList: [],
@@ -111,6 +156,7 @@
      menuTreeObjOld: [],
      menuTreeObjNew: [],
      droneControlMenuTreeObj: [],
            workTreeObj: [],
      dataScopeTreeObj: [],
      apiScopeTreeObj: [],
      selectionList: [],
@@ -265,22 +311,20 @@
      const menuList = this.$refs.treeMenu.getCheckedKeys()
      const menuListApp = this.$refs.treeMenuApp.getCheckedKeys()
      const menuListWebNew = this.$refs.treeMenuWebNew.getCheckedKeys()
            const menuListWork = this.$refs.workRef.getCheckedKeys()
      const menuListDroneControl = this.$refs.droneControl.getCheckedKeys()
      const menuListWebOld = this.$refs.treeMenuWebOld.getCheckedKeys()
      // const dataScopeList = this.$refs.treeDataScope.getCheckedKeys();
      const dataScopeList = []
      // const apiScopeList = this.$refs.treeApiScope.getCheckedKeys();
      const apiScopeList = []
      grant(this.idsArray, [
        ...menuList,
        ...menuListApp,
        ...menuListWebNew,
        ...menuListDroneControl,
        ...menuListWebOld,
      ], dataScopeList, apiScopeList).then(() => {
            grant(
                this.idsArray,
                [...menuList, ...menuListApp, ...menuListWebNew, ...menuListDroneControl, ...menuListWebOld, ...menuListWork],
                dataScopeList,
                apiScopeList
            ).then(() => {
        this.box = false
        this.$message({
          type: 'success',
@@ -411,6 +455,13 @@
          this.box = true
        })
      })
            grantTree({ sysType: 6 }).then(res => {
                this.menuGrantListWork = res.data.data.menu
                getRole(this.ids).then(res => {
                    this.workTreeObj = res.data.data.menu
                    this.box = true
                })
            })
    },
    handleDelete () {
      if (this.selectionList.length === 0) {
applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
@@ -48,6 +48,16 @@
                    :props="treeProps"
                />
            </el-tab-pane>
            <el-tab-pane label="任务工单">
                <el-tree
                    ref="workRef"
                    :data="menuGrantListWord"
                    show-checkbox
                    node-key="id"
                    :default-checked-keys="menuTreeObjWork"
                    :props="treeProps"
                />
            </el-tab-pane>
            <el-tab-pane label="大屏菜单">
                <el-tree
                    ref="treeMenuWebOld"
@@ -81,16 +91,19 @@
const menuGrantListOld = ref([])
const menuGrantListNew = ref([])
const menuGrantListDroneControl = ref([])
const menuGrantListWord = ref([])
const menuTreeObj = ref([])
const menuTreeObjApp = ref([])
const menuTreeObjOld = ref([])
const menuTreeObjNew = ref([])
const droneControlMenuTreeObj = ref([])
const menuTreeObjWork = ref([])
const treeMenu = ref(null)
const treeMenuApp = ref(null)
const treeMenuWebOld = ref(null)
const treeMenuWebNew = ref(null)
const workRef = ref(null)
const droneControl = ref(null)
const emit = defineEmits(['success'])
@@ -101,11 +114,13 @@
    menuGrantListOld.value = []
    menuGrantListNew.value = []
    menuGrantListDroneControl.value = []
    menuGrantListWord.value = []
    menuTreeObj.value = []
    menuTreeObjApp.value = []
    menuTreeObjOld.value = []
    menuTreeObjNew.value = []
    droneControlMenuTreeObj.value = []
    menuTreeObjWork.value = []
}
async function loadGrantTree(sysType, setter, keysSetter) {
@@ -124,6 +139,7 @@
        loadGrantTree(3, menuGrantListApp, menuTreeObjApp),
        loadGrantTree(4, menuGrantListNew, menuTreeObjNew),
        loadGrantTree(5, menuGrantListDroneControl, droneControlMenuTreeObj),
        loadGrantTree(6, menuGrantListWord, menuTreeObjWork),
        loadGrantTree(2, menuGrantListOld, menuTreeObjOld),
    ])
}
@@ -132,15 +148,15 @@
    const menuList = treeMenu.value?.getCheckedKeys?.() ?? []
    const menuListApp = treeMenuApp.value?.getCheckedKeys?.() ?? []
    const menuListWebNew = treeMenuWebNew.value?.getCheckedKeys?.() ?? []
    const menuListWebWork = workRef.value?.getCheckedKeys?.() ?? []
    const menuListDroneControl = droneControl.value?.getCheckedKeys?.() ?? []
    const menuListWebOld = treeMenuWebOld.value?.getCheckedKeys?.() ?? []
    grant([roleId.value], [
        ...menuList,
        ...menuListApp,
        ...menuListWebNew,
        ...menuListDroneControl,
        ...menuListWebOld,
    ], [], []).then(() => {
    grant(
        [roleId.value],
        [...menuList, ...menuListApp, ...menuListWebNew, ...menuListDroneControl, ...menuListWebOld, ...menuListWebWork],
        [],
        []
    ).then(() => {
        visible.value = false
        emit('success')
    })