无人机管理后台前端(已迁走)
linwe
2024-10-09 567237ee79f59c79c9126bbbebca7387f8612274
大屏跳转后台管理系统权限按钮没有展示
3 files modified
205 ■■■■ changed files
src/main.js 11 ●●●● patch | view | raw | blame | history
src/page/index/top/index.vue 14 ●●●●● patch | view | raw | blame | history
src/views/system/user.vue 180 ●●●● patch | view | raw | blame | history
src/main.js
@@ -12,7 +12,7 @@
import '@smallwei/avue/lib/index.css';
import crudCommon from '@/mixins/crud.js';
import { getScreen } from './utils/util';
import { getUrlParams } from './utils/validate'
import { getUrlParams, validatenull } from './utils/validate'
import { setToken, setRefreshToken } from './utils/auth';
import { setStore } from './utils/store';
import './permission';
@@ -36,7 +36,14 @@
  // 设置cookie和localStorage
  setStore('saber-token', urlParams.token)
  setToken(urlParams.token)
  setRefreshToken(urlParams.token)
  setRefreshToken(urlParams.token)
  // 设置用户信息,把大屏用户信息保存到localStorage
  let obj = {};
  obj = window.sessionStorage.getItem("bs_userInfo");
  if (validatenull(obj)) {
    obj = window.localStorage.getItem("bs_userInfo")
    setStore({ name: 'userInfo', content: obj });
  }
}
src/page/index/top/index.vue
@@ -1,11 +1,8 @@
<template>
  <div class="avue-top">
    <div class="top-bar__left">
      <div
        class="avue-breadcrumb"
        :class="[{ 'avue-breadcrumb--active': isCollapse }]"
        v-if="setting.collapse && !isHorizontal"
      >
      <div class="avue-breadcrumb" :class="[{ 'avue-breadcrumb--active': isCollapse }]"
        v-if="setting.collapse && !isHorizontal">
        <i class="icon-navicon" @click="setCollapse"></i>
      </div>
    </div>
@@ -36,7 +33,7 @@
        <img class="top-bar__img" :src="userInfo.avatar" />
        <el-dropdown>
          <span class="el-dropdown-link">
            {{ userInfo.real_name }}
            {{ userInfo.user_name }}
            <el-icon class="el-icon--right">
              <arrow-down />
            </el-icon>
@@ -49,8 +46,7 @@
              <el-dropdown-item>
                <router-link to="/info/index">{{ $t('navbar.userinfo') }}</router-link>
              </el-dropdown-item>
              <el-dropdown-item @click="logout" divided
                >{{ $t('navbar.logOut') }}
              <el-dropdown-item @click="logout" divided>{{ $t('navbar.logOut') }}
              </el-dropdown-item>
            </el-dropdown-menu>
          </template>
@@ -89,7 +85,7 @@
    return {};
  },
  filters: {},
  created() {},
  created() { },
  computed: {
    ...mapGetters([
      'setting',
src/views/system/user.vue
@@ -11,122 +11,47 @@
    </el-col>
    <el-col :span="19">
      <basic-container>
        <avue-crud
          :option="option"
          v-model:search="search"
          :table-loading="loading"
          :data="data"
          ref="crud"
          v-model="form"
          :permission="permissionList"
          @row-del="rowDel"
          @row-update="rowUpdate"
          @row-save="rowSave"
          :before-open="beforeOpen"
          v-model:page="page"
          @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" v-model:search="search" :table-loading="loading" :data="data" ref="crud"
          v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave"
          :before-open="beforeOpen" v-model:page="page" @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
              v-if="permission.user_add && !auditMode"
              type="primary"
              icon="el-icon-plus"
              @click="$refs.crud.rowAdd()"
              >新 增
            <el-button v-if="permission.user_add && !auditMode" type="primary" icon="el-icon-plus"
              @click="$refs.crud.rowAdd()">新 增
            </el-button>
            <el-button
              type="danger"
              plain
              icon="el-icon-delete"
              v-if="permission.user_delete && !auditMode"
              @click="handleDelete"
              >删 除
            <el-button type="danger" plain icon="el-icon-delete" v-if="permission.user_delete && !auditMode"
              @click="handleDelete">删 除
            </el-button>
            <el-button
              type="primary"
              plain
              icon="el-icon-operation"
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              @click="handleAudit"
              >审 核
            <el-button type="primary" plain icon="el-icon-operation"
              v-if="userInfo.role_name.includes('admin') && !auditMode" @click="handleAudit">审 核
            </el-button>
            <el-button
              type="success"
              plain
              icon="el-icon-check"
              v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditPass"
              >通 过
            <el-button type="success" plain icon="el-icon-check" v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditPass">通 过
            </el-button>
            <el-button
              type="danger"
              plain
              icon="el-icon-close"
              v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditRefuse"
              >拒 绝
            <el-button type="danger" plain icon="el-icon-close" v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditRefuse">拒 绝
            </el-button>
            <el-button
              type="primary"
              plain
              icon="el-icon-refresh-left"
              v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditBack"
              >返 回
            <el-button type="primary" plain icon="el-icon-refresh-left"
              v-if="userInfo.role_name.includes('admin') && auditMode" @click="handleAuditBack">返 回
            </el-button>
            <el-button
              type="info"
              plain
              v-if="permission.user_role && !auditMode"
              icon="el-icon-user"
              @click="handleGrant"
              >角色配置
            <el-button type="info" plain v-if="permission.user_role && !auditMode" icon="el-icon-user"
              @click="handleGrant">角色配置
            </el-button>
            <el-button
              type="info"
              plain
              v-if="permission.user_reset && !auditMode"
              icon="el-icon-refresh"
              @click="handleReset"
              >密码重置
            <el-button type="info" plain v-if="permission.user_reset && !auditMode" icon="el-icon-refresh"
              @click="handleReset">密码重置
            </el-button>
            <el-button
              type="info"
              plain
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-setting"
              @click="handlePlatform"
              >平台配置
            <el-button type="info" plain v-if="userInfo.role_name.includes('admin') && !auditMode" icon="el-icon-setting"
              @click="handlePlatform">平台配置
            </el-button>
            <el-button
              type="info"
              plain
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-coordinate"
              @click="handleLock"
              >账号解封
            <el-button type="info" plain v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-coordinate" @click="handleLock">账号解封
            </el-button>
            <el-button
              type="success"
              plain
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-upload"
              @click="handleImport"
              >导入
            <el-button type="success" plain v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-upload" @click="handleImport">导入
            </el-button>
            <el-button
              type="warning"
              plain
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-download"
              @click="handleExport"
              >导出
            <el-button type="warning" plain v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-download" @click="handleExport">导出
            </el-button>
          </template>
          <template #tenantName="{ row }">
@@ -143,16 +68,8 @@
          </template>
        </avue-crud>
        <el-dialog title="用户角色配置" append-to-body v-model="roleBox" width="345px">
          <el-tree
            :data="roleGrantList"
            show-checkbox
            check-strictly
            default-expand-all
            node-key="id"
            ref="treeRole"
            :default-checked-keys="roleTreeObj"
            :props="props"
          >
          <el-tree :data="roleGrantList" show-checkbox check-strictly default-expand-all node-key="id" ref="treeRole"
            :default-checked-keys="roleTreeObj" :props="props">
          </el-tree>
          <template #footer>
            <span class="dialog-footer">
@@ -171,24 +88,12 @@
          </avue-form>
        </el-dialog>
        <el-dialog title="用户平台配置" append-to-body v-model="platformBox">
          <avue-crud
            :option="platformOption"
            :table-loading="platformLoading"
            :data="platformData"
            ref="platformCrud"
            v-model="platformForm"
            :before-open="platformBeforeOpen"
            v-model:page="platformPage"
            :permission="platformPermissionList"
            @row-update="platformRowUpdate"
            @search-change="platformSearchChange"
            @search-reset="platformSearchReset"
            @selection-change="platformSelectionChange"
            @current-change="platformCurrentChange"
            @size-change="platformSizeChange"
            @refresh-change="platformRefreshChange"
            @on-load="platformOnLoad"
          >
          <avue-crud :option="platformOption" :table-loading="platformLoading" :data="platformData" ref="platformCrud"
            v-model="platformForm" :before-open="platformBeforeOpen" v-model:page="platformPage"
            :permission="platformPermissionList" @row-update="platformRowUpdate" @search-change="platformSearchChange"
            @search-reset="platformSearchReset" @selection-change="platformSelectionChange"
            @current-change="platformCurrentChange" @size-change="platformSizeChange"
            @refresh-change="platformRefreshChange" @on-load="platformOnLoad">
            <template #tenantName="{ row }">
              <el-tag>{{ row.tenantName }}</el-tag>
            </template>
@@ -798,10 +703,10 @@
        const column = this.findObject(this.option.group, 'deptId');
        column.dicData = res.data.data;
      });
      getPostList(tenantId).then(res => {
        const column = this.findObject(this.option.group, 'postId');
        column.dicData = res.data.data;
      });
      // getPostList(tenantId).then(res => {
      //   const column = this.findObject(this.option.group, 'postId');
      //   column.dicData = res.data.data;
      // });
    },
    submitRole() {
      const roleList = this.$refs.treeRole.getCheckedKeys().join(',');
@@ -1040,8 +945,7 @@
      }).then(() => {
        NProgress.start();
        exportBlob(
          `/blade-system/user/export-user?${
            this.website.tokenHeader
          `/blade-system/user/export-user?${this.website.tokenHeader
          }=${getToken()}&account=${account}&realName=${realName}`
        ).then(res => {
          downloadXls(res.data, `用户数据表${this.$dayjs().format('YYYY-MM-DD')}.xlsx`);