无人机管理后台前端(已迁走)
chenyao
2025-10-17 5ef9ca8300c8c2ec868e6c36792f396d921cf73e
Merge branch 'feature/v7.0/7.0.1' of http://139.196.74.78:10010/r/drone/drone-web-manage into feature/v7.0/7.0.1
6 files modified
50 ■■■■ changed files
src/api/system/menu.js 6 ●●●●● patch | view | raw | blame | history
src/api/system/role.js 3 ●●●● patch | view | raw | blame | history
src/api/user.js 3 ●●●● patch | view | raw | blame | history
src/store/modules/user.js 4 ●●●● patch | view | raw | blame | history
src/views/authority/role.vue 23 ●●●● patch | view | raw | blame | history
src/views/system/menu.vue 11 ●●●● patch | view | raw | blame | history
src/api/system/menu.js
@@ -98,11 +98,9 @@
    method: 'get',
  });
export const getRoutes = topMenuId =>
export const getRoutes = params =>
  request({
    url: '/blade-system/menu/routes',
    method: 'get',
    params: {
      topMenuId,
    },
    params
  });
src/api/system/role.js
@@ -20,10 +20,11 @@
  });
};
export const grantTree = () => {
export const grantTree = (params) => {
  return request({
    url: '/blade-system/menu/grant-tree',
    method: 'get',
    params
  });
};
src/api/user.js
@@ -122,10 +122,11 @@
    },
  });
export const getButtons = () =>
export const getButtons = (params) =>
  request({
    url: '/blade-system/menu/buttons',
    method: 'get',
    params
  });
export const getCaptcha = () =>
src/store/modules/user.js
@@ -280,7 +280,7 @@
        })
      }
      return new Promise(resolve => {
        getRoutes(tenantId).then(res => {
        getRoutes({tenantId,sysType: 1}).then(res => {
          const data = res.data.data;
          let menu = deepClone(data);
          if (!res.data?.data?.length){
@@ -299,7 +299,7 @@
    },
    GetButtons({ commit }) {
      return new Promise(resolve => {
        getButtons().then(res => {
        getButtons({sysType: 1}).then(res => {
          const data = res.data.data;
          commit('SET_PERMISSION', data);
          resolve();
src/views/authority/role.vue
@@ -14,9 +14,14 @@
    </avue-crud>
    <el-dialog title="角色权限配置" append-to-body v-model="box" width="345px">
      <el-tabs type="border-card">
        <el-tab-pane label="菜单权限">
        <el-tab-pane label="后台管理">
          <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-tab-pane>
        <!-- <el-tab-pane label="数据权限">
@@ -76,10 +81,12 @@
        value: 'key',
      },
      menuGrantList: [],
      menuGrantListApp: [],
      dataScopeGrantList: [],
      apiScopeGrantList: [],
      apiGrantList: [],
      menuTreeObj: [],
      menuTreeObjApp: [],
      dataScopeTreeObj: [],
      apiScopeTreeObj: [],
      selectionList: [],
@@ -230,11 +237,12 @@
    },
    submit () {
      const menuList = this.$refs.treeMenu.getCheckedKeys()
      const menuListApp = this.$refs.treeMenuApp.getCheckedKeys()
      // const dataScopeList = this.$refs.treeDataScope.getCheckedKeys();
      const dataScopeList = []
      // const apiScopeList = this.$refs.treeApiScope.getCheckedKeys();
      const apiScopeList = []
      grant(this.idsArray, menuList, dataScopeList, apiScopeList).then(() => {
      grant(this.idsArray, [...menuList,...menuListApp], dataScopeList, apiScopeList).then(() => {
        this.box = false
        this.$message({
          type: 'success',
@@ -324,7 +332,7 @@
      this.menuTreeObj = []
      this.dataScopeTreeObj = []
      this.apiScopeTreeObj = []
      grantTree().then(res => {
      grantTree({sysType: 1}).then(res => {
        this.menuGrantList = res.data.data.menu
        this.dataScopeGrantList = res.data.data.dataScope
        this.apiScopeGrantList = res.data.data.apiScope
@@ -332,6 +340,13 @@
          this.menuTreeObj = res.data.data.menu
          this.dataScopeTreeObj = res.data.data.dataScope
          this.apiScopeTreeObj = res.data.data.apiScope
          this.box = true
        })
      })
      grantTree({sysType: 3}).then(res => {
        this.menuGrantListApp = res.data.data.menu
        getRole(this.ids).then(res => {
          this.menuTreeObjApp = res.data.data.menu
          this.box = true
        })
      })
@@ -378,4 +393,4 @@
  },
}
</script>
<style scoped lang="scss"></style>
<style scoped lang="scss"></style>
src/views/system/menu.vue
@@ -38,7 +38,8 @@
  data () {
    return {
      form: {},
      query: {},
      query: {
      },
      loading: true,
      selectionList: [],
      parentId: 0,
@@ -180,6 +181,8 @@
            prop: 'sysType',
            type: 'radio',
            value: 1,
            search: true,
            searchSpan: 4,
            dicData: [
              {
                label: '后台管理',
@@ -188,6 +191,10 @@
              {
                label: '大屏',
                value: 2,
              },
              {
                label: '移动app',
                value: 3,
              },
            ],
            hide: true,
@@ -468,4 +475,4 @@
.namei {
  margin-right: 5px;
}
</style>
</style>