lxl
2022-10-19 cfcd9a35c74ce88da3647a0be3f1459fe5086ed1
控制
已添加3个文件
已修改14个文件
2096 ■■■■■ 文件已修改
public/config/config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/api.js 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/en.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/zh.js 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapsdk.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/AuthorizationManagement/menuRoleAuthorization.vue 446 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/AuthorizationManagement/roleMenuAuthorization.vue 576 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/AuthorizationManagement/roleResAuthorization.vue 541 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/AuthorizationManagement/userRoleAuthorization.vue 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/analyse.vue 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/viewport.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/blackwhiteList.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/databaseMonitoring.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/systemMonitoring.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/tokentool.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userManage/roleManage.vue 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/config/config.js
@@ -1,4 +1,4 @@
// const BASE_URL = 'http://192.168.20.55:12316';
//const BASE_URL = 'http://192.168.20.55:12316';
const BASE_URL = 'http://192.168.20.39:12316';
var gisUrl = 'http://183.162.245.49:3301';
var ifreamUrl = 'http://192.168.20.39:12306/';
src/api/api.js
@@ -132,6 +132,12 @@
  //请求地址
  return request.get('/auth/selectByPageAndCount', { params: params });
}
//权限管理列表根据菜单
export function select_AuthMenu_ByPageAndCount(params) {
  //请求地址
  return request.get('/auth/selectByPageForMenu', { params: params });
}
//权限管理添加
export function insertAuth(params) {
  return request.post('/auth/insertAuth', params);
@@ -184,7 +190,10 @@
export function queryMenuTree() {
  return request.get('/menu/selectMenuAll');
}
//菜单递归查询数据
export function selectMenuRecursive(params) {
  return request.get('/menu/selectMenuRecursive', { params: params });
}
//新增单条菜单
export function insertMenu(params) {
  return request.post('/menu/insertMenu', params);
@@ -201,8 +210,6 @@
export function updateMenuTrees(params) {
  return request.post('/menu/updateMenus', params);
}
//请求目录树数据
export function queryDirTree() {
@@ -272,8 +279,6 @@
  return request.get('/user/selectByUid', { params: params });
}
//根据角色查询用户
export function roleUserselectByPageForRole(params) {
  //请求地址
@@ -303,3 +308,68 @@
export function update_args(params) {
  return request.post('/args/update', params);
}
//菜单权限请求列表
export function select_menuAuth_ByPageAndCount(params) {
  return request.get('/menuAuth/selectByPageAndCount', { params: params });
}
//菜单权限添加多条数据
export function menuAuthinserts(params) {
  return request.post('/menuAuth/inserts', params);
}
//菜单权限删除多条
export function menuAuthDeletes(params) {
  return request.get('/menuAuth/deletes', { params: params });
}
//角色资源列表
export function roleReselectByPageAndCount(params) {
  return request.get('/roleRes/selectByPageAndCount', { params: params });
}
//角色资源新增
export function roleResInserts(params) {
  return request.post('/roleRes/inserts', params);
}
//角色资源删除
export function roleResDeletes(params) {
  return request.get('/roleRes/deletes', { params: params });
}
//资源管理-根据角色分页查询并返回记录数
export function resSelectCountForRole(params) {
  return request.get('/res/selectByPageForRole', { params: params });
}
//角色菜单-根据角色ID+菜单ID分页查询并返回记录数
export function roleMenuAuthelectByPageForRole(params) {
  return request.get('/roleMenuAuth/selectByPageForRole', { params: params });
}
//角色菜单-插入多條
export function roleMenuAuthInserts(params) {
  return request.post('/roleMenuAuth/inserts', params);
}
//角色菜单-删除多条
export function roleMenuAuthDeletes(params) {
  return request.get('/roleMenuAuth/deletes', { params: params });
}
//菜单权限-根据角色ID+菜单ID分页查询并返回记录数
export function menuAuthSelectByPageForRole(params) {
  return request.get('/menuAuth/selectByPageForRole', { params: params });
}
//令牌管理列表获取
export function select_Token_ByPageAndCount(params) {
  return request.get('/token/selectByPageAndCount', { params: params });
}
//令牌管理新增
export function insertToken(params) {
  return request.post('/token/insertToken', params);
}
//令牌管理删除
export function deleteTokens(params) {
  return request.get(' /token/deleteTokens', { params: params });
}
//令牌管理修改
export function updateToken(params) {
  return request.post('/token/updateToken', params);
}
//黑白名单列表获取
export function blacklistSelectByPageAndCount(params) {
  return request.get('/blacklist/selectByPageAndCount', { params: params });
}
src/assets/lang/en.js
@@ -105,6 +105,9 @@
    operatManage: 'Operat Manage',
    ResourceLog: 'Resource Log',
    UserRoleAuthorization: 'User Role Authorization',
    MenuRoleAuthorization: 'Menu Permission Authorization',
    RoleResAuthorization: 'Role Resource Authorization',
    RoleMenuAuthorization: 'Role Menu Authorization',
    UserRoleAuthorizationObj: {
      RoleTable: 'Role Table',
      userTable: 'user Table',
@@ -112,6 +115,9 @@
      delete: 'delete',
      serialNumber: 'serial Number',
      name: 'name',
      PermissionTable: 'Permission table',
      server: 'Service Address',
      ResTable: 'Resource table',
    },
    ELM: {
      username: 'username',
@@ -556,6 +562,8 @@
      updateontime: 'Update Time',
      updateonuser: 'Update Personnel',
      insertRole: 'Add role information',
      updateRole: 'Update role information',
      isAdmin: 'isAdmin',
    },
    groupManage: 'groupManage',
    GM: {
src/assets/lang/zh.js
@@ -106,6 +106,9 @@
    operatManage: '运维管理',
    ResourceLog: '资源日志',
    UserRoleAuthorization: '用户角色授权',
    MenuRoleAuthorization: '菜单权限授权',
    RoleResAuthorization: '角色资源授权',
    RoleMenuAuthorization: '角色菜单授权',
    UserRoleAuthorizationObj: {
      RoleTable: '角色表',
      userTable: '用户表',
@@ -113,6 +116,9 @@
      delete: '删除',
      serialNumber: '编号',
      name: '名称',
      PermissionTable: '权限表',
      server: '服务地址',
      ResTable: '资源表',
    },
    ELM: {
      username: '用户名称',
@@ -401,21 +407,21 @@
      rejection: '拒批',
      userexport: 'Excel用户导出',
      userinput: 'Excel用户导入',
      userStatus: "用户状态",
      uname: "用户名称",
      pwd: "密码",
      sex: "性别",
      natives: "籍贯",
      userStatus: '用户状态',
      uname: '用户名',
      pwd: '密码',
      sex: '性别',
      natives: '籍贯',
      depName: '单位名称',
      idcard: "证件号",
      job: "工作",
      edu: "教育",
      addr: "地址",
      email: "电子邮件",
      contact: "联系方式",
      status: "状态",
      bak: "备注",
      depid: "所属部门",
      idcard: '证件号',
      job: '工作',
      edu: '教育',
      addr: '地址',
      email: '电子邮件',
      contact: '联系方式',
      status: '状态',
      bak: '备注',
      depid: '所属部门',
      chineseName: '中文名[用户名]',
      affiliatedUnit: '所属单位[在职]',
      mobileNumber: '手机号[接收短信]',
@@ -558,6 +564,8 @@
      updateontime: '修改时间',
      updateonuser: '修改人员',
      insertRole: '添加角色信息',
      updateRole: '修改角色信息',
      isAdmin: '是否为管理员',
    },
    groupManage: '群组管理',
    GM: {
src/components/mapsdk.vue
@@ -4,7 +4,7 @@
<script>
export default {
  name: "",
  name: '',
  data() {
    return {};
  },
@@ -13,9 +13,9 @@
  },
  methods: {
    init3DMap() {
      window.sgworld = new SmartEarth.SGWorld("mapdiv", {
        url: "/SmartEarthSDK/Workers/image/earth.jpg",
        licenseServer: "http://192.168.20.39/LFServer",
      window.sgworld = new SmartEarth.SGWorld('mapdiv', {
        url: '/SmartEarthSDK/Workers/image/earth.jpg',
        licenseServer: 'http://192.168.20.39/LFServer',
      });
      window.Viewer = sgworld._Viewer;
      sgworld.Navigate.Stop(); //取消飞行状态
@@ -25,8 +25,19 @@
      });
      //显示fps
      sgworld._Viewer.scene.debugShowFramesPerSecond = false;
      sgworld.navControl("enableCompass", false);
      //mpt添加
      var option = {
        url: 'http://183.162.245.49:82/SG/Elevation',
        layerName: 'zhufeng.397336.mpt',
        requestVertexNormals: true,
      };
      sgworld.Creator.sfsterrainprovider('', option, '', true, '');
      //导航控件
      document.getElementById('distanceLegendDiv').style.display = 'none';
      //比例尺
      sgworld.navControl('enableCompass', false);
      //sgworld.navControl("enableDistanceLegend", false);
      setTimeout(() => {}, 10000);
    },
  },
};
src/router/index.js
@@ -37,14 +37,17 @@
import groupManage from '../views/userManage/groupManage.vue'; // ç”¨æˆ·ç®¡ç†æ¨¡å—
import authorityManage from '@/views/userManage/authorityManage.vue'; //用户管理-权限管理
import resourceManage from '@/views/userManage/resourceManage.vue'; //用户管理-资源管理
import userRoleAuthorization from '@/views/AuthorizationManagement/userRoleAuthorization.vue'; //系统管理-
const originalPush = VueRouter.prototype.push
import userRoleAuthorization from '@/views/AuthorizationManagement/userRoleAuthorization.vue'; //系统管理-用户角色授权
import menuRoleAuthorization from '@/views/AuthorizationManagement/menuRoleAuthorization.vue'; //系统管理-菜单权限授权
import roleResAuthorization from '@/views/AuthorizationManagement/roleResAuthorization.vue'; //系统管理-角色资源授权
import roleMenuAuthorization from '@/views/AuthorizationManagement/roleMenuAuthorization.vue'; //系统管理-角色菜单授权
const originalPush = VueRouter.prototype.push;
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}
  return originalPush.call(this, location).catch((err) => err);
};
// ç¾¤ç»„管理
Vue.use(VueRouter);
@@ -355,7 +358,33 @@
          requireAuth: true, // æ ‡è¯†è¯¥è·¯ç”±æ˜¯å¦éœ€è¦ç™»å½•
        },
      },
      {
        path: '/menuRoleAuthorization',
        component: menuRoleAuthorization,
        name: 'menuRoleAuthorization',
        meta: {
          title: '菜单权限授权',
          requireAuth: true, // æ ‡è¯†è¯¥è·¯ç”±æ˜¯å¦éœ€è¦ç™»å½•
        },
      },
      {
        path: '/roleResAuthorization',
        component: roleResAuthorization,
        name: 'roleResAuthorization',
        meta: {
          title: '菜单权限授权',
          requireAuth: true, // æ ‡è¯†è¯¥è·¯ç”±æ˜¯å¦éœ€è¦ç™»å½•
        },
      },
      {
        path: '/roleMenuAuthorization',
        component: roleMenuAuthorization,
        name: 'roleMenuAuthorization',
        meta: {
          title: '菜单权限授权',
          requireAuth: true, // æ ‡è¯†è¯¥è·¯ç”±æ˜¯å¦éœ€è¦ç™»å½•
        },
      },
    ],
  },
];
src/views/AuthorizationManagement/menuRoleAuthorization.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,446 @@
<template>
  <div class="menuSettings_box">
    <div class="menuSettings_tree">
      <My-bread
        :list="[
          `${$t('operatManage.operatManage')}`,
          `${$t('operatManage.MenuRoleAuthorization')}`,
        ]"
      ></My-bread>
      <el-divider />
      <div class="menuTreeBox">
        <el-tree
          :data="depList"
          :props="defaultProps"
          :show-checkbox="true"
          :check-on-click-node="true"
          :check-strictly="true"
          node-key="id"
          @check="treeCheck"
          ref="treeForm"
        >
        </el-tree>
      </div>
    </div>
    <div class="menuSettings">
      <!-- <div class="title_box">
        <h4>详细信息</h4>
      </div> -->
      <div
        style="
          font-size: 14px;
          color: #606266;
          line-height: 1;
          cursor: text;
          position: relative;
          top: 5px;
          margin-left: 10px;
          display: flex;
          align-items: center;
        "
      >
        <span>
          {{
            $t('operatManage.UserRoleAuthorizationObj.PermissionTable')
          }}</span
        >
        <div class="btn" style="margin-left: auto">
          <el-button
            type="primary"
            icon="el-icon-circle-plus-outline"
            size="small"
            :disabled="roleid == null ? true : false"
            @click="adduser"
            >{{ $t('operatManage.UserRoleAuthorizationObj.Added') }}</el-button
          >
          <el-button
            type="danger"
            icon="el-icon-delete"
            size="small"
            @click="deletesUser"
            :disabled="roleid == null ? true : false"
            >{{ $t('operatManage.UserRoleAuthorizationObj.delete') }}</el-button
          >
        </div>
      </div>
      <el-divider class="divider" />
      <el-table
        :data="tableData"
        stripe
        style="width: 100%"
        height="85%"
        @selection-change="handleSelectionChange"
        :header-cell-style="{
          background: 'transparent',
        }"
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="authName"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
        >
        </el-table-column>
      </el-table>
      <div style="margin-top: 20px; text-align: center" class="pagination_box">
        <el-pagination
          @size-change="userhandleSizeChange"
          @current-change="userhandleCurrentChange"
          :current-page="userlistData.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="userlistData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="usercount"
        >
        </el-pagination>
      </div>
    </div>
    <el-dialog
      :title="$t('operatManage.UserRoleAuthorizationObj.Added')"
      :visible.sync="dialogTableVisible"
    >
      <el-table
        :data="gridData"
        height="40vh"
        @selection-change="addhandleSelectionChange"
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="name"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
        >
        </el-table-column>
      </el-table>
      <div style="margin-top: 20px; text-align: center" class="pagination_box">
        <el-pagination
          @size-change="addhandleSizeChange"
          @current-change="addhandleCurrentChange"
          :current-page="addlistData.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="addlistData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="addcount"
        >
        </el-pagination>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogTableVisible = false">{{
          $t('dataManage.dictionaryManageObj.cancel')
        }}</el-button>
        <el-button type="primary" @click="addConfirm">{{
          $t('dataManage.dictionaryManageObj.confirm')
        }}</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import MyBread from '../../components/MyBread.vue';
import {
  selectMenuRecursive,
  select_menuAuth_ByPageAndCount,
  menuAuthDeletes,
  select_AuthMenu_ByPageAndCount,
  menuAuthinserts,
} from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
    MyBread,
  },
  data() {
    return {
      addcount: 0,
      gridData: [],
      addlistData: {
        pageIndex: 1,
        pageSize: 10,
      },
      dialogTableVisible: false,
      usertableData: [],
      userlistData: {
        pageIndex: 1,
        pageSize: 10,
      },
      usercount: 0,
      tableData: [],
      //   å½“前选择的行的id
      templateSelection: '',
      //   å½“前选择的行的数据
      checkList: [],
      defaultProps: {
        children: 'children',
        label: 'cnName',
      },
      oriData: [], //原始树数据
      depList: [], //el树数据
      backUpData: {},
      formLabelWidth: '170px',
      listData: {
        pageIndex: 1,
        pageSize: 10,
      },
      count: 0,
      usermultipleSelection: [],
      debid: null,
      roleid: null,
      addmultipleSelection: [],
    };
  },
  methods: {
    /**
     * sws
     */
    // éƒ¨é—¨è¯·æ±‚
    async getMenuTree() {
      //获取目录树最大ID,新建节点使用
      const data = await selectMenuRecursive({ name: '管道基础大数据平台' });
      if (data.code !== 200) {
        return this.$message.error('请求单位报错');
      }
      this.depList = this.treeData(data.result);
    },
    treeData(source) {
      let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ•°æ®æ·±åº¦å…‹éš†
      return cloneData.filter((father) => {
        // å¾ªçŽ¯æ‰€æœ‰é¡¹
        let branchArr = cloneData.filter((child) => father.id == child.pid); // å¯¹æ¯”ID,分别上下级菜单,并返回数据
        branchArr.length > 0 ? (father.children = branchArr) : ''; // ç»™çˆ¶çº§æ·»åŠ ä¸€ä¸ªchildren属性,并赋值
        return father.pid == 0; // è¿”回一级菜单
      });
    },
    // éƒ¨é—¨æ ‘单选
    treeCheck(node, list) {
      //node è¯¥èŠ‚ç‚¹æ‰€å¯¹åº”çš„å¯¹è±¡ã€list æ ‘目前的选中状态对象
      //选中事件在选中后执行,当lis中有两个选中时,使用setCheckedKeys方法,选中一个节点
      if (list.checkedNodes.length > 0) {
        this.listData.menuid = node.id;
        this.debid = node.id;
        this.roleid = node.id;
        this.getRole();
        if (list.checkedKeys.length == 2) {
          //单选实现
          this.$refs.treeForm.setCheckedKeys([node.id]);
        }
      } else {
        this.debid = null;
        this.roleid = null;
        this.tableData = [];
        this.usertableData = [];
      }
    },
    addConfirm() {
      this.$confirm('确定是否新增', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(async () => {
          let arr = [];
          this.addmultipleSelection.forEach((e) => {
            arr.push({ menuid: this.roleid, authid: e.id });
          });
          const data = await menuAuthinserts(arr);
          if (data.code !== 200) {
            return this.$message.error('新增失败');
          }
          this.$message({
            type: 'success',
            message: '新增成功!',
          });
          this.dialogTableVisible = false;
          this.getRole();
        })
        .catch(() => {});
    },
    adduser() {
      this.dialogTableVisible = true;
      this.getadduserList();
    },
    //用户删除
    async deletesUser() {
      let arr = [];
      this.usermultipleSelection.forEach((e) => {
        arr.push(e.id);
      });
      const data = await menuAuthDeletes({ ids: arr.toString() });
      if (data.code !== 200) {
        return this.$message.error('删除失败');
      }
      this.$message({
        message: '删除成功',
        type: 'success',
      });
      this.getRole();
    },
    async getadduserList() {
      this.addlistData.menuid = this.roleid;
      const data = await select_AuthMenu_ByPageAndCount(this.addlistData);
      if (data.code !== 200) {
        return this.$message.error('新增用户列表请求错误');
      }
      this.gridData = data.result;
      this.addcount = data.count;
    },
    //用户表多选
    handleSelectionChange(val) {
      this.usermultipleSelection = val;
    },
    //新增用户表多选
    addhandleSelectionChange(val) {
      this.addmultipleSelection = val;
    },
    // æ–°å¢žç”¨æˆ·è¡¨åˆ†é¡µ
    addhandleSizeChange(val) {
      this.addlistData.pageSize = val;
      this.getadduserList();
    },
    // æ–°å¢žç”¨æˆ·è¡¨åˆ†é¡µ
    addhandleCurrentChange(val) {
      this.addlistData.pageIndex = val;
      this.getadduserList();
    },
    // ç”¨æˆ·è¡¨åˆ†é¡µ
    userhandleSizeChange(val) {
      this.userlistData.pageSize = val;
      this.getRole();
    },
    // ç”¨æˆ·è¡¨åˆ†é¡µ
    userhandleCurrentChange(val) {
      this.userlistData.pageIndex = val;
      this.getRole();
    },
    // è§’色表请求
    async getRole() {
      const data = await select_menuAuth_ByPageAndCount(this.listData);
      if (data.code !== 200) {
        return this.$message.error('用户角色请求错误');
      }
      this.tableData = data.result;
      this.usercount = data.count;
    },
  },
  created() {
    this.getMenuTree();
  },
};
</script>
<style lang="less" scoped>
//@import url(); å¼•入公共cssç±»
.menuSettings_box {
  //   background: rgb(240, 242, 245);
  border-radius: 10px;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
  display: flex;
  .menuSettings_tree {
    position: relative;
    width: 30%;
    height: 100%;
    background: rgb(240, 242, 245);
    padding: 20px;
    border-radius: 10px;
    box-sizing: border-box;
    overflow: auto;
    .saveBtn {
      position: absolute;
      left: 250px;
      top: 23px;
    }
    .menuTreeBox {
      height: 90%;
      overflow: auto;
      .el-tree {
        background: transparent;
        font-size: 15px;
        font-family: Microsoft YaHei;
        font-weight: 400;
        color: #000000;
        // /deep/ .el-tree-node__label {
        //   font-size: 18px;
        // }
        /deep/ .el-tree-node {
          padding-top: 10px;
          // padding-bottom: 10px;
        }
        /deep/ .el-tree-node:focus > .el-tree-node__content {
          background-color: #b9b9b9;
        }
        /deep/ .el-tree-node__content:hover {
          background-color: rgb(153, 153, 153);
        }
        .btnBox {
          margin-left: 5px;
          .el-button + .el-button {
            margin-left: 5px;
          }
        }
      }
    }
  }
  .menuSettings {
    width: 70%;
    border-radius: 10px;
    background: rgb(240, 242, 245);
    margin-left: 10px;
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
    .title_box {
      background: #fff;
      padding: 10px;
      margin-bottom: 24px;
      display: flex;
      border-radius: 10px;
      border: 1px solid rgb(202, 201, 204);
      box-sizing: border-box;
    }
  }
  .table_box {
    padding: 10px;
    background: #fff;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    overflow: auto;
    height: 85%;
  }
  .divider {
    margin-top: 8px;
  }
}
.el-table,
.el-table /deep/ .el-table__expanded-cell {
  background-color: transparent;
}
.el-table /deep/ th,
.el-table /deep/ tr {
  background-color: transparent;
}
</style>
src/views/AuthorizationManagement/roleMenuAuthorization.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,576 @@
<template>
  <div class="menuSettings_box">
    <!-- è§’色,单位 -->
    <div
      class="menuSettings_tree"
      style="margin-left: 10px; width: calc(50% - 172px)"
    >
      <My-bread
        :list="[
          `${$t('operatManage.operatManage')}`,
          `${$t('operatManage.RoleMenuAuthorization')}`,
        ]"
      ></My-bread>
      <el-divider />
      <el-form ref="form" :model="selFrom">
        <el-form-item label="单位">
          <el-select
            ref="multiSelect"
            style="width: 300px"
            v-model="selFrom.name"
            placeholder="请选择单位名称..."
            @change="chooseCustom"
          >
            <el-option
              :value="selectTree"
              class="setstyle"
              style="overflow: auto; height: 200px"
              disabled
            >
              <el-tree
                :data="depList"
                :props="defaultProps"
                :check-on-click-node="true"
                :check-strictly="true"
                node-key="id"
                ref="treeForm"
                @node-click="addAdminHandleNodeClick"
              >
              </el-tree>
            </el-option>
          </el-select>
        </el-form-item>
      </el-form>
      <div style="height: 75%">
        <el-table
          :data="tableData"
          style="width: 100%"
          @row-click="singleElection"
          highlight-current-row
          height="85%"
          :header-cell-style="{
            background: 'transparent',
          }"
        >
          <el-table-column align="center" width="55">
            <template slot-scope="scope">
              <!-- å¯ä»¥æ‰‹åŠ¨çš„ä¿®æ”¹label的值,从而控制选择哪一项 -->
              <el-radio
                class="radio"
                v-model="templateSelection"
                :label="scope.row.id"
                >&nbsp;</el-radio
              >
            </template>
          </el-table-column>
          <el-table-column
            align="center"
            type="index"
            :label="$t('dataManage.styleObj.index')"
          />
          <el-table-column
            prop="name"
            :label="$t('operatManage.UserRoleAuthorizationObj.name')"
          >
          </el-table-column>
        </el-table>
      </div>
      <div style="margin-top: 20px; text-align: center" class="pagination_box">
        <el-pagination
          @size-change="dephandleSizeChange"
          @current-change="dephandleCurrentChange"
          :current-page="roleDepListData.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="roleDepListData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="roleDepCount"
        >
        </el-pagination>
      </div>
    </div>
    <!-- èœå•表 -->
    <div
      class="menuSettings_tree"
      style="margin-left: 10px; width: calc(50% - 172px)"
    >
      <div
        style="
          font-size: 14px;
          color: #606266;
          line-height: 1;
          cursor: text;
          position: relative;
          top: 5px;
          margin-left: 10px;
          display: flex;
          align-items: center;
        "
      >
        <span>
          {{
            $t('operatManage.UserRoleAuthorizationObj.PermissionTable')
          }}</span
        >
      </div>
      <el-divider />
      <div class="menuTreeBox">
        <el-tree
          :data="menuList"
          :props="defaultMenuProps"
          :show-checkbox="true"
          :check-on-click-node="true"
          :check-strictly="true"
          node-key="id"
          @check="menuTreeCheck"
          ref="treeForm"
        >
        </el-tree>
      </div>
    </div>
    <div class="menuSettings">
      <!-- <div class="title_box">
        <h4>详细信息</h4>
      </div> -->
      <div
        style="
          font-size: 14px;
          color: #606266;
          line-height: 1;
          cursor: text;
          position: relative;
          top: 5px;
          margin-left: 10px;
          display: flex;
          align-items: center;
        "
      >
        <span>
          {{
            $t('operatManage.UserRoleAuthorizationObj.PermissionTable')
          }}</span
        >
        <div class="btn" style="margin-left: auto">
          <el-button
            type="primary"
            icon="el-icon-circle-plus-outline"
            size="small"
            @click="adduser"
            :disabled="menuid == null ? true : false"
            >{{ $t('operatManage.UserRoleAuthorizationObj.Added') }}</el-button
          >
          <el-button
            type="danger"
            icon="el-icon-delete"
            size="small"
            @click="deletesUser"
            :disabled="menuid == null ? true : false"
            >{{ $t('operatManage.UserRoleAuthorizationObj.delete') }}</el-button
          >
        </div>
      </div>
      <el-divider class="divider" />
      <el-table
        :data="menuTableData"
        stripe
        style="width: 100%"
        height="85%"
        @selection-change="handleSelectionChange"
        :header-cell-style="{
          background: 'transparent',
        }"
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="name"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
        >
        </el-table-column>
      </el-table>
      <div style="margin-top: 20px; text-align: center" class="pagination_box">
        <el-pagination
          @size-change="authhandleSizeChange"
          @current-change="authhandleCurrentChange"
          :current-page="rolMenuListData.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="rolMenuListData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="roleMenuCount"
        >
        </el-pagination>
      </div>
    </div>
    <el-dialog
      :title="$t('operatManage.UserRoleAuthorizationObj.Added')"
      :visible.sync="dialogTableVisible"
    >
      <el-table
        :data="gridData"
        height="40vh"
        @selection-change="addhandleSelectionChange"
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="name"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
        >
        </el-table-column>
      </el-table>
      <div style="margin-top: 20px; text-align: center" class="pagination_box">
        <el-pagination
          @size-change="addhandleSizeChange"
          @current-change="addhandleCurrentChange"
          :current-page="addlistData.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="addlistData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="addcount"
        >
        </el-pagination>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogTableVisible = false">{{
          $t('dataManage.dictionaryManageObj.cancel')
        }}</el-button>
        <el-button type="primary" @click="addConfirm">{{
          $t('dataManage.dictionaryManageObj.confirm')
        }}</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import MyBread from '../../components/MyBread.vue';
import {
  queryDepTree,
  select_Role_ByPageAndCount,
  selectMenuRecursive,
  roleMenuAuthelectByPageForRole,
  menuAuthSelectByPageForRole,
  roleMenuAuthInserts,
  roleMenuAuthDeletes,
} from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
    MyBread,
  },
  data() {
    return {
      dialogTableVisible: false,
      selFrom: { name: '' },
      selectTree: '',
      depList: [], //el树数据
      defaultProps: {
        children: 'children',
        label: 'name',
      }, //树绑定对象
      defaultMenuProps: {
        children: 'children',
        label: 'cnName',
      }, //菜单表绑定权限
      depid: null, //单位ID
      roleDepListData: {
        pageIndex: 1,
        pageSize: 10,
      },
      rolMenuListData: {
        pageIndex: 1,
        pageSize: 10,
      },
      addlistData: { pageIndex: 1, pageSize: 10 },
      addcount: 0,
      roleDepCount: 0,
      roleMenuCount: 0,
      roleDepCheckList: [],
      tableData: [], //角色列表
      templateSelection: '',
      menuList: [],
      roleid: null,
      menuid: null,
      menuTableData: [],
      gridData: [],
      addmultipleSelection: [],
      usermultipleSelection: [],
    };
  },
  methods: {
    async getDepTree() {
      //获取目录树最大ID,新建节点使用
      const data = await queryDepTree();
      if (data.code !== 200) {
        return this.$message.error('请求单位报错');
      }
      this.depList = this.treeData(data.result);
    },
    async getMenuTree() {
      const data = await selectMenuRecursive({ name: '管道基础大数据平台' });
      if (data.code !== 200) {
        return this.$message.error('请求单位报错');
      }
      this.menuList = this.treeData(data.result);
    },
    treeData(source) {
      let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ•°æ®æ·±åº¦å…‹éš†
      return cloneData.filter((father) => {
        // å¾ªçŽ¯æ‰€æœ‰é¡¹
        let branchArr = cloneData.filter((child) => father.id == child.pid); // å¯¹æ¯”ID,分别上下级菜单,并返回数据
        branchArr.length > 0 ? (father.children = branchArr) : ''; // ç»™çˆ¶çº§æ·»åŠ ä¸€ä¸ªchildren属性,并赋值
        return father.pid == 0; // è¿”回一级菜单
      });
    },
    //树选中节点
    addAdminHandleNodeClick(e) {
      this.roleDepCheckList = [];
      this.templateSelection = '';
      this.depid = e.id;
      this.selFrom.name = e.name;
      this.selectTree = e.name;
      this.getRoleDep();
      this.getMenuTree();
    },
    menuTreeCheck(node, list) {
      if (list.checkedNodes.length > 0) {
        this.rolMenuListData.menuid = node.id;
        this.menuid = node.id;
        this.rolMenuListData.roleid = this.roleid;
        this.getRoleMenu();
      } else {
        this.menuid = null;
      }
    },
    async getRoleMenu() {
      const data = await roleMenuAuthelectByPageForRole(this.rolMenuListData);
      if (data.code !== 200) {
        return this.$message.error('角色菜单请求错误');
      }
      this.menuTableData = data.result;
      this.roleMenuCount = data.count;
    },
    async getRoleDep() {
      this.roleDepListData.depid = this.depid;
      const data = await select_Role_ByPageAndCount(this.roleDepListData);
      if (data.code !== 200) {
        return this.$message.error('用户角色请求错误');
      }
      this.tableData = data.result;
      this.roleDepCount = data.count;
    },
    async getadduserList() {
      this.addlistData.roleid = this.roleid;
      this.addlistData.menuid = this.menuid;
      const data = await menuAuthSelectByPageForRole(this.addlistData);
      if (data.code !== 200) {
        return this.$message.error('菜单权限列表请求错误');
      }
      this.gridData = data.result;
      this.addcount = data.count;
    },
    singleElection(row) {
      this.templateSelection = row.id;
      this.roleid = row.id;
      this.roleDepCheckList = this.tableData.filter(
        (item) => item.id === row.id
      );
    },
    //下拉框选中后自动关闭
    chooseCustom() {
      setTimeout(() => {
        this.$refs.multiSelect.blur();
      }, 50);
    },
    dephandleSizeChange() {
      this.roleDepListData.pageSize = val;
      this.getDepTree();
    },
    dephandleCurrentChange() {
      this.roleDepListData.pageIndex = val;
      this.getDepTree();
    },
    authhandleSizeChange() {
      this.roleDepListData.pageSize = val;
      this.getRoleMenu();
    },
    authhandleCurrentChange() {
      this.roleDepListData.pageIndex = val;
      this.getRoleMenu();
    },
    // æ–°å¢žç”¨æˆ·è¡¨åˆ†é¡µ
    addhandleSizeChange(val) {
      this.addlistData.pageSize = val;
      this.getadduserList();
    },
    // æ–°å¢žç”¨æˆ·è¡¨åˆ†é¡µ
    addhandleCurrentChange(val) {
      this.addlistData.pageIndex = val;
      this.getadduserList();
    },
    addhandleSelectionChange(val) {
      this.addmultipleSelection = val;
    },
    handleSelectionChange(val) {
      this.usermultipleSelection = val;
    },
    adduser() {
      this.dialogTableVisible = true;
      this.getadduserList();
    },
    async deletesUser() {
      let arr = [];
      this.usermultipleSelection.forEach((e) => {
        arr.push(e.id);
      });
      const data = await roleMenuAuthDeletes({ ids: arr.toString() });
      if (data.code !== 200) {
        return this.$message.error('删除失败');
      }
      this.$message({
        message: '删除成功',
        type: 'success',
      });
      this.getRoleMenu();
    },
    addConfirm() {
      this.$confirm('确定是否新增', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(async () => {
          let arr = [];
          this.addmultipleSelection.forEach((e) => {
            arr.push({ menuAuthId: e.id, roleid: this.roleid });
          });
          const data = await roleMenuAuthInserts(arr);
          if (data.code !== 200) {
            return this.$message.error('新增失败');
          }
          this.$message({
            type: 'success',
            message: '新增成功!',
          });
          this.dialogTableVisible = false;
          this.getRoleMenu();
        })
        .catch(() => {});
    },
  },
  created() {
    this.getDepTree();
    this.getMenuTree();
  },
};
</script>
<style lang="less" scoped>
//@import url(); å¼•入公共cssç±»
.menuSettings_box {
  //   background: rgb(240, 242, 245);
  border-radius: 10px;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
  display: flex;
  .menuSettings_tree {
    position: relative;
    width: 344px;
    height: 100%;
    background: rgb(240, 242, 245);
    padding: 20px;
    border-radius: 10px;
    box-sizing: border-box;
    overflow: auto;
    .saveBtn {
      position: absolute;
      left: 250px;
      top: 23px;
    }
    .menuTreeBox {
      height: 90%;
      overflow: auto;
      .el-tree {
        background: transparent;
        font-size: 15px;
        font-family: Microsoft YaHei;
        font-weight: 400;
        color: #000000;
        // /deep/ .el-tree-node__label {
        //   font-size: 18px;
        // }
        /deep/ .el-tree-node {
          padding-top: 10px;
          // padding-bottom: 10px;
        }
        /deep/ .el-tree-node:focus > .el-tree-node__content {
          background-color: #b9b9b9;
        }
        /deep/ .el-tree-node__content:hover {
          background-color: rgb(153, 153, 153);
        }
        .btnBox {
          margin-left: 5px;
          .el-button + .el-button {
            margin-left: 5px;
          }
        }
      }
    }
  }
  .menuSettings {
    width: calc(50% - 172px);
    border-radius: 10px;
    background: rgb(240, 242, 245);
    margin-left: 10px;
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
    .title_box {
      background: #fff;
      padding: 10px;
      margin-bottom: 24px;
      display: flex;
      border-radius: 10px;
      border: 1px solid rgb(202, 201, 204);
      box-sizing: border-box;
    }
  }
  .table_box {
    padding: 10px;
    background: #fff;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    overflow: auto;
    height: 85%;
  }
  .divider {
    margin-top: 8px;
  }
}
.el-table,
.el-table /deep/ .el-table__expanded-cell {
  background-color: transparent;
}
.el-table /deep/ th,
.el-table /deep/ tr {
  background-color: transparent;
}
</style>
src/views/AuthorizationManagement/roleResAuthorization.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,541 @@
<template>
  <div class="menuSettings_box">
    <div class="menuSettings_tree">
      <My-bread
        :list="[
          `${$t('operatManage.operatManage')}`,
          `${$t('operatManage.RoleResAuthorization')}`,
        ]"
      ></My-bread>
      <el-divider />
      <div class="menuTreeBox">
        <el-tree
          :data="depList"
          :props="defaultProps"
          :show-checkbox="true"
          :check-on-click-node="true"
          :check-strictly="true"
          node-key="id"
          @check="treeCheck"
          ref="treeForm"
        >
        </el-tree>
      </div>
    </div>
    <div
      class="menuSettings_tree"
      style="margin-left: 10px; width: calc(50% - 172px)"
    >
      <div
        style="
          font-size: 14px;
          color: #606266;
          line-height: 1;
          cursor: text;
          position: relative;
          top: 10px;
          margin-left: 10px;
        "
      >
        {{ $t('operatManage.UserRoleAuthorizationObj.RoleTable') }}
      </div>
      <el-divider />
      <el-table
        :data="tableData"
        style="width: 100%"
        @row-click="singleElection"
        highlight-current-row
        height="85%"
        :header-cell-style="{
          background: 'transparent',
        }"
      >
        <el-table-column align="center" width="55">
          <template slot-scope="scope">
            <!-- å¯ä»¥æ‰‹åŠ¨çš„ä¿®æ”¹label的值,从而控制选择哪一项 -->
            <el-radio
              class="radio"
              v-model="templateSelection"
              :label="scope.row.id"
              >&nbsp;</el-radio
            >
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="name"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
        >
        </el-table-column>
      </el-table>
      <div style="text-align: center; margin-top: 20px">
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="listData.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="userlistData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="count"
        >
        </el-pagination>
      </div>
    </div>
    <div class="menuSettings">
      <!-- <div class="title_box">
        <h4>详细信息</h4>
      </div> -->
      <div
        style="
          font-size: 14px;
          color: #606266;
          line-height: 1;
          cursor: text;
          position: relative;
          top: 5px;
          margin-left: 10px;
          display: flex;
          align-items: center;
        "
      >
        <span>
          {{ $t('operatManage.UserRoleAuthorizationObj.userTable') }}</span
        >
        <div class="btn" style="margin-left: auto">
          <el-button
            type="primary"
            icon="el-icon-circle-plus-outline"
            size="small"
            :disabled="roleid == null ? true : false"
            @click="adduser"
            >{{ $t('operatManage.UserRoleAuthorizationObj.Added') }}</el-button
          >
          <el-button
            type="danger"
            icon="el-icon-delete"
            size="small"
            @click="deletesUser"
            :disabled="roleid == null ? true : false"
            >{{ $t('operatManage.UserRoleAuthorizationObj.delete') }}</el-button
          >
        </div>
      </div>
      <el-divider class="divider" />
      <el-table
        :data="usertableData"
        stripe
        style="width: 100%"
        height="85%"
        @selection-change="handleSelectionChange"
        :header-cell-style="{
          background: 'transparent',
        }"
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="resName"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
        >
        </el-table-column>
        <el-table-column
          prop="server"
          :label="$t('operatManage.UserRoleAuthorizationObj.server')"
        >
        </el-table-column>
      </el-table>
      <div style="margin-top: 20px; text-align: center" class="pagination_box">
        <el-pagination
          @size-change="userhandleSizeChange"
          @current-change="userhandleCurrentChange"
          :current-page="userlistData.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="userlistData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="usercount"
        >
        </el-pagination>
      </div>
    </div>
    <el-dialog
      :title="$t('operatManage.UserRoleAuthorizationObj.Added')"
      :visible.sync="dialogTableVisible"
    >
      <el-table
        :data="gridData"
        height="40vh"
        @selection-change="addhandleSelectionChange"
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="name"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
        >
        </el-table-column>
        <el-table-column
          prop="server"
          :label="$t('operatManage.UserRoleAuthorizationObj.server')"
        >
        </el-table-column>
      </el-table>
      <div style="margin-top: 20px; text-align: center" class="pagination_box">
        <el-pagination
          @size-change="addhandleSizeChange"
          @current-change="addhandleCurrentChange"
          :current-page="addlistData.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="addlistData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="addcount"
        >
        </el-pagination>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogTableVisible = false">{{
          $t('dataManage.dictionaryManageObj.cancel')
        }}</el-button>
        <el-button type="primary" @click="addConfirm">{{
          $t('dataManage.dictionaryManageObj.confirm')
        }}</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import MyBread from '../../components/MyBread.vue';
import {
  queryDepTree,
  select_Role_ByPageAndCount,
  roleReselectByPageAndCount,
  roleResDeletes,
  resSelectCountForRole,
  roleResInserts,
} from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
    MyBread,
  },
  data() {
    return {
      addcount: 0,
      gridData: [],
      addlistData: {
        pageIndex: 1,
        pageSize: 10,
      },
      dialogTableVisible: false,
      usertableData: [],
      userlistData: {
        pageIndex: 1,
        pageSize: 10,
      },
      usercount: 0,
      tableData: [],
      //   å½“前选择的行的id
      templateSelection: '',
      //   å½“前选择的行的数据
      checkList: [],
      defaultProps: {
        children: 'children',
        label: 'name',
      },
      oriData: [], //原始树数据
      depList: [], //el树数据
      backUpData: {},
      formLabelWidth: '170px',
      listData: {
        pageIndex: 1,
        pageSize: 10,
      },
      count: 0,
      usermultipleSelection: [],
      debid: null,
      roleid: null,
      addmultipleSelection: [],
    };
  },
  methods: {
    addConfirm() {
      this.$confirm('确定是否新增', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(async () => {
          let arr = [];
          this.addmultipleSelection.forEach((e) => {
            arr.push({ resid: e.id, roleid: this.roleid });
          });
          const data = await roleResInserts(arr);
          if (data.code !== 200) {
            return this.$message.error('新增失败');
          }
          this.$message({
            type: 'success',
            message: '新增成功!',
          });
          this.dialogTableVisible = false;
          this.getuserList();
        })
        .catch(() => {});
    },
    adduser() {
      this.dialogTableVisible = true;
      this.getadduserList();
    },
    //用户删除
    async deletesUser() {
      let arr = [];
      this.usermultipleSelection.forEach((e) => {
        arr.push(e.id);
      });
      const data = await roleResDeletes({ ids: arr.toString() });
      if (data.code !== 200) {
        return this.$message.error('删除失败');
      }
      this.$message({
        message: '删除成功',
        type: 'success',
      });
      this.getuserList();
    },
    //用户表多选
    handleSelectionChange(val) {
      this.usermultipleSelection = val;
    },
    //新增用户表多选
    addhandleSelectionChange(val) {
      this.addmultipleSelection = val;
    },
    // æ–°å¢žç”¨æˆ·è¡¨åˆ†é¡µ
    addhandleSizeChange(val) {
      this.addlistData.pageSize = val;
      this.getadduserList();
    },
    // æ–°å¢žç”¨æˆ·è¡¨åˆ†é¡µ
    addhandleCurrentChange(val) {
      this.addlistData.pageIndex = val;
      this.getadduserList();
    },
    // ç”¨æˆ·è¡¨åˆ†é¡µ
    userhandleSizeChange(val) {
      this.userlistData.pageSize = val;
      this.getuserList();
    },
    // ç”¨æˆ·è¡¨åˆ†é¡µ
    userhandleCurrentChange(val) {
      this.userlistData.pageIndex = val;
      this.getuserList();
    },
    // è§’色表分页
    handleSizeChange(val) {
      this.listData.pageSize = val;
      this.getRole();
    },
    // è§’色表分页
    handleCurrentChange(val) {
      this.listData.pageIndex = val;
      this.getRole();
    },
    // è§’色单选
    singleElection(row) {
      this.templateSelection = row.id;
      this.checkList = this.tableData.filter((item) => item.id === row.id);
      this.userlistData.roleid = row.id;
      this.roleid = row.id;
      this.getuserList();
    },
    // éƒ¨é—¨è¯·æ±‚
    async getMenuTree() {
      //获取目录树最大ID,新建节点使用
      const data = await queryDepTree();
      if (data.code !== 200) {
        return this.$message.error('请求单位报错');
      }
      this.depList = this.treeData(data.result);
    },
    treeData(source) {
      let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ•°æ®æ·±åº¦å…‹éš†
      return cloneData.filter((father) => {
        // å¾ªçŽ¯æ‰€æœ‰é¡¹
        let branchArr = cloneData.filter((child) => father.id == child.pid); // å¯¹æ¯”ID,分别上下级菜单,并返回数据
        branchArr.length > 0 ? (father.children = branchArr) : ''; // ç»™çˆ¶çº§æ·»åŠ ä¸€ä¸ªchildren属性,并赋值
        return father.pid == 0; // è¿”回一级菜单
      });
    },
    // éƒ¨é—¨æ ‘单选
    treeCheck(node, list) {
      //node è¯¥èŠ‚ç‚¹æ‰€å¯¹åº”çš„å¯¹è±¡ã€list æ ‘目前的选中状态对象
      //选中事件在选中后执行,当lis中有两个选中时,使用setCheckedKeys方法,选中一个节点
      if (list.checkedNodes.length > 0) {
        this.listData.depid = node.id;
        this.debid = node.id;
        this.getRole();
        if (list.checkedKeys.length == 2) {
          //单选实现
          this.$refs.treeForm.setCheckedKeys([node.id]);
        }
      } else {
        this.debid = null;
        this.roleid = null;
        this.tableData = [];
        this.usertableData = [];
      }
    },
    async getadduserList() {
      this.addlistData.roleid = this.roleid;
      // this.addlistData.debid = this.debid;
      const data = await resSelectCountForRole(this.addlistData);
      if (data.code !== 200) {
        return this.$message.error('新增资源列表请求错误');
      }
      this.gridData = data.result;
      this.addcount = data.count;
    },
    // ç”¨æˆ·è¡¨è¯·æ±‚
    async getuserList() {
      const data = await roleReselectByPageAndCount(this.userlistData);
      if (data.code !== 200) {
        return this.$message.error('用户资源列表请求错误');
      }
      this.usertableData = data.result;
      this.usercount = data.count;
    },
    // è§’色表请求
    async getRole() {
      const data = await select_Role_ByPageAndCount(this.listData);
      if (data.code !== 200) {
        return this.$message.error('用户角色请求错误');
      }
      this.tableData = data.result;
      this.count = data.count;
      if (data.result == null) {
        this.usertableData = [];
        this.usercount = 0;
      }
    },
  },
  created() {
    this.getMenuTree();
  },
};
</script>
<style lang="less" scoped>
//@import url(); å¼•入公共cssç±»
.menuSettings_box {
  //   background: rgb(240, 242, 245);
  border-radius: 10px;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
  display: flex;
  .menuSettings_tree {
    position: relative;
    width: 344px;
    height: 100%;
    background: rgb(240, 242, 245);
    padding: 20px;
    border-radius: 10px;
    box-sizing: border-box;
    overflow: auto;
    .saveBtn {
      position: absolute;
      left: 250px;
      top: 23px;
    }
    .menuTreeBox {
      height: 90%;
      overflow: auto;
      .el-tree {
        background: transparent;
        font-size: 15px;
        font-family: Microsoft YaHei;
        font-weight: 400;
        color: #000000;
        // /deep/ .el-tree-node__label {
        //   font-size: 18px;
        // }
        /deep/ .el-tree-node {
          padding-top: 10px;
          // padding-bottom: 10px;
        }
        /deep/ .el-tree-node:focus > .el-tree-node__content {
          background-color: #b9b9b9;
        }
        /deep/ .el-tree-node__content:hover {
          background-color: rgb(153, 153, 153);
        }
        .btnBox {
          margin-left: 5px;
          .el-button + .el-button {
            margin-left: 5px;
          }
        }
      }
    }
  }
  .menuSettings {
    width: calc(50% - 172px);
    border-radius: 10px;
    background: rgb(240, 242, 245);
    margin-left: 10px;
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
    .title_box {
      background: #fff;
      padding: 10px;
      margin-bottom: 24px;
      display: flex;
      border-radius: 10px;
      border: 1px solid rgb(202, 201, 204);
      box-sizing: border-box;
    }
  }
  .table_box {
    padding: 10px;
    background: #fff;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    overflow: auto;
    height: 85%;
  }
  .divider {
    margin-top: 8px;
  }
}
.el-table,
.el-table /deep/ .el-table__expanded-cell {
  background-color: transparent;
}
.el-table /deep/ th,
.el-table /deep/ tr {
  background-color: transparent;
}
</style>
src/views/AuthorizationManagement/userRoleAuthorization.vue
@@ -38,7 +38,7 @@
          margin-left: 10px;
        "
      >
        {{ $t("operatManage.UserRoleAuthorizationObj.RoleTable") }}
        {{ $t('operatManage.UserRoleAuthorizationObj.RoleTable') }}
      </div>
      <el-divider />
      <el-table
@@ -63,10 +63,11 @@
          </template>
        </el-table-column>
        <el-table-column
          prop="id"
          :label="$t('operatManage.UserRoleAuthorizationObj.serialNumber')"
        >
        </el-table-column>
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
          width="70px"
        />
        <el-table-column
          prop="name"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
@@ -104,7 +105,7 @@
        "
      >
        <span>
          {{ $t("operatManage.UserRoleAuthorizationObj.userTable") }}</span
          {{ $t('operatManage.UserRoleAuthorizationObj.userTable') }}</span
        >
        <div class="btn" style="margin-left: auto">
          <el-button
@@ -113,7 +114,7 @@
            size="small"
            :disabled="roleid == null ? true : false"
            @click="adduser"
            >{{ $t("operatManage.UserRoleAuthorizationObj.Added") }}</el-button
            >{{ $t('operatManage.UserRoleAuthorizationObj.Added') }}</el-button
          >
          <el-button
            type="danger"
@@ -121,7 +122,7 @@
            size="small"
            @click="deletesUser"
            :disabled="roleid == null ? true : false"
            >{{ $t("operatManage.UserRoleAuthorizationObj.delete") }}</el-button
            >{{ $t('operatManage.UserRoleAuthorizationObj.delete') }}</el-button
          >
        </div>
      </div>
@@ -139,10 +140,10 @@
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column
          prop="id"
          :label="$t('operatManage.UserRoleAuthorizationObj.serialNumber')"
        >
        </el-table-column>
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="uname"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
@@ -174,10 +175,10 @@
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column
          prop="id"
          :label="$t('operatManage.UserRoleAuthorizationObj.serialNumber')"
        >
        </el-table-column>
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="uname"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
@@ -197,15 +198,19 @@
        </el-pagination>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogTableVisible = false">{{ $t("dataManage.dictionaryManageObj.cancel") }}</el-button>
        <el-button type="primary" @click="addConfirm">{{ $t("dataManage.dictionaryManageObj.confirm") }}</el-button>
        <el-button @click="dialogTableVisible = false">{{
          $t('dataManage.dictionaryManageObj.cancel')
        }}</el-button>
        <el-button type="primary" @click="addConfirm">{{
          $t('dataManage.dictionaryManageObj.confirm')
        }}</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import MyBread from "../../components/MyBread.vue";
import MyBread from '../../components/MyBread.vue';
import {
  queryDepTree,
  select_Role_ByPageAndCount,
@@ -213,7 +218,7 @@
  roleUserdeletes,
  userselectByPageForRole,
  roleUserinserts,
} from "../../api/api";
} from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
@@ -237,18 +242,18 @@
      usercount: 0,
      tableData: [],
      //   å½“前选择的行的id
      templateSelection: "",
      templateSelection: '',
      //   å½“前选择的行的数据
      checkList: [],
      defaultProps: {
        children: "children",
        label: "name",
        children: 'children',
        label: 'name',
      },
      oriData: [], //原始树数据
      depList: [], //el树数据
      backUpData: {},
      formLabelWidth: "170px",
      formLabelWidth: '170px',
      listData: {
        pageIndex: 1,
        pageSize: 10,
@@ -262,10 +267,10 @@
  },
  methods: {
    addConfirm() {
      this.$confirm("确定是否新增", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      this.$confirm('确定是否新增', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(async () => {
          let arr = [];
@@ -274,12 +279,14 @@
          });
          const data = await roleUserinserts(arr);
          if (data.code !== 200) {
            return this.$message.error("新增失败");
            return this.$message.error('新增失败');
          }
          this.$message({
            type: "success",
            message: "新增成功!",
            type: 'success',
            message: '新增成功!',
          });
          this.dialogTableVisible = false;
          this.getuserList();
        })
        .catch(() => {});
    },
@@ -295,11 +302,11 @@
      });
      const data = await roleUserdeletes({ ids: arr.toString() });
      if (data.code !== 200) {
        return this.$message.error("删除失败");
        return this.$message.error('删除失败');
      }
      this.$message({
        message: "删除成功",
        type: "success",
        message: '删除成功',
        type: 'success',
      });
      this.getuserList();
    },
@@ -355,7 +362,7 @@
      const data = await queryDepTree();
      if (data.code !== 200) {
        return this.$message.error("请求单位报错");
        return this.$message.error('请求单位报错');
      }
      this.depList = this.treeData(data.result);
    },
@@ -364,7 +371,7 @@
      return cloneData.filter((father) => {
        // å¾ªçŽ¯æ‰€æœ‰é¡¹
        let branchArr = cloneData.filter((child) => father.id == child.pid); // å¯¹æ¯”ID,分别上下级菜单,并返回数据
        branchArr.length > 0 ? (father.children = branchArr) : ""; // ç»™çˆ¶çº§æ·»åŠ ä¸€ä¸ªchildren属性,并赋值
        branchArr.length > 0 ? (father.children = branchArr) : ''; // ç»™çˆ¶çº§æ·»åŠ ä¸€ä¸ªchildren属性,并赋值
        return father.pid == 0; // è¿”回一级菜单
      });
    },
@@ -394,7 +401,7 @@
      this.addlistData.debid = this.debid;
      const data = await userselectByPageForRole(this.addlistData);
      if (data.code !== 200) {
        return this.$message.error("新增用户列表请求错误");
        return this.$message.error('新增用户列表请求错误');
      }
      this.gridData = data.result;
      this.addcount = data.count;
@@ -403,7 +410,7 @@
    async getuserList() {
      const data = await roleUserselectByPageForRole(this.userlistData);
      if (data.code !== 200) {
        return this.$message.error("用户列表请求错误");
        return this.$message.error('用户列表请求错误');
      }
      this.usertableData = data.result;
      this.usercount = data.count;
@@ -412,7 +419,7 @@
    async getRole() {
      const data = await select_Role_ByPageAndCount(this.listData);
      if (data.code !== 200) {
        return this.$message.error("用户角色请求错误");
        return this.$message.error('用户角色请求错误');
      }
      this.tableData = data.result;
      this.count = data.count;
src/views/Synthesis/analyse.vue
@@ -19,53 +19,69 @@
export default {
  data() {
    return {
      isoline: null,
      isolineFlag: false,
      itemsOne: [
        {
          id: "1",
          name: "synthesis.contouranalysis",
          class: "d1",
          id: '1',
          name: 'synthesis.contouranalysis',
          class: 'd1',
        },
        {
          id: "2",
          name: "synthesis.slopeanalysis",
          class: "d2",
          id: '2',
          name: 'synthesis.slopeanalysis',
          class: 'd2',
        },
        {
          id: "3",
          name: "synthesis.pathanalysis",
          class: "d3",
          id: '3',
          name: 'synthesis.pathanalysis',
          class: 'd3',
        },
        {
          id: "4",
          name: "synthesis.cuttinganalysis",
          class: "d4",
          id: '4',
          name: 'synthesis.cuttinganalysis',
          class: 'd4',
        },
        {
          id: "5",
          name: "synthesis.floodanalysis",
          class: "d5",
          id: '5',
          name: 'synthesis.floodanalysis',
          class: 'd5',
        },
        {
          id: "6",
          name: "synthesis.earthworkcalculation",
          class: "d6",
          id: '6',
          name: 'synthesis.earthworkcalculation',
          class: 'd6',
        },
        {
          id: "7",
          name: "synthesis.crosssectionanalysis",
          class: "d7",
          id: '7',
          name: 'synthesis.crosssectionanalysis',
          class: 'd7',
        },
        {
          id: "8",
          name: "synthesis.imagecontrast",
          class: "d8",
          id: '8',
          name: 'synthesis.imagecontrast',
          class: 'd8',
        },
      ],
    };
  },
  mounted() {
    if (this.isoline == null) {
      this.isoline = new SmartEarth.ElevationTool(sgworld);
    }
  },
  methods: {
    changeAnalsy(res) {
      switch (res.id) {
        case '1':
          this.isolineFlag = !this.isolineFlag;
          this.isoline.tf = this.isolineFlag;
          this.isoline.render();
          break;
        case '2':
          elevationTool.type = 'slope';
          elevationTool.render();
          break;
      }
    },
  },
@@ -92,33 +108,33 @@
  margin: 0px;
}
.d1 {
  background: url("../../assets/img/synthesis/椭圆 8 æ‹·è´ 8.png") no-repeat
  background: url('../../assets/img/synthesis/椭圆 8 æ‹·è´ 8.png') no-repeat
    center;
}
.d2 {
  background: url("../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 5.png") no-repeat
  background: url('../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 5.png') no-repeat
    center;
}
.d3 {
  background: url("../../assets/img/synthesis/圆角矩形 10 å‰¯æœ¬ 3.png") no-repeat
  background: url('../../assets/img/synthesis/圆角矩形 10 å‰¯æœ¬ 3.png') no-repeat
    center;
}
.d4 {
  background: url("../../assets/img/synthesis/图层 74 æ‹·è´ 3.png") no-repeat
  background: url('../../assets/img/synthesis/图层 74 æ‹·è´ 3.png') no-repeat
    center;
}
.d5 {
  background: url("../../assets/img/synthesis/图层 20.png") no-repeat center;
  background: url('../../assets/img/synthesis/图层 20.png') no-repeat center;
}
.d6 {
  background: url("../../assets/img/synthesis/图层 14 æ‹·è´ 3.png") no-repeat
  background: url('../../assets/img/synthesis/图层 14 æ‹·è´ 3.png') no-repeat
    center;
}
.d7 {
  background: url("../../assets/img/synthesis/图层 18.png") no-repeat center;
  background: url('../../assets/img/synthesis/图层 18.png') no-repeat center;
}
.d8 {
  background: url("../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 6.png") no-repeat
  background: url('../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 6.png') no-repeat
    center;
}
.backimge4 {
src/views/Synthesis/viewport.vue
@@ -20,6 +20,7 @@
  data() {
    return {
      isRuler: false,
      isNaviget: false,
      itemsOne: [
        {
          id: '1',
@@ -68,13 +69,13 @@
    changeview(res) {
      switch (res.id) {
        case '1':
          this.$bus.$emit('changemap', "分屏");
          this.$bus.$emit('changemap', '分屏');
          break;
        case '2':
          this.$bus.$emit('changemap', "二维");
          this.$bus.$emit('changemap', '二维');
          break;
        case '3':
          this.$bus.$emit('changemap', "三维");
          this.$bus.$emit('changemap', '三维');
          break;
        case '4':
          window.sgworld.Navigate.jumpTo({
@@ -91,6 +92,15 @@
        case '7':
          this.isRuler = !this.isRuler;
          window.sgworld.navControl('enableCompass', this.isRuler);
          break;
        case '8':
          this.isNaviget = !this.isNaviget;
          if (this.isNaviget == false) {
            document.getElementById('distanceLegendDiv').style.display = 'none';
          } else if (this.isNaviget == true) {
            document.getElementById('distanceLegendDiv').style.display =
              'block';
          }
          break;
      }
      // this.$bus.$emit("changetool", res_val);
@@ -119,35 +129,35 @@
  margin: 0px;
}
.b1 {
  background: url("../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 3.png") no-repeat
  background: url('../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 3.png') no-repeat
    center;
}
.b2 {
  background: url("../../assets/img/synthesis/图层 10 æ‹·è´.png") no-repeat
  background: url('../../assets/img/synthesis/图层 10 æ‹·è´.png') no-repeat
    center;
}
.b3 {
  background: url("../../assets/img/synthesis/图层 11 æ‹·è´.png") no-repeat
  background: url('../../assets/img/synthesis/图层 11 æ‹·è´.png') no-repeat
    center;
}
.b4 {
  background: url("../../assets/img/synthesis/图层 12 æ‹·è´ 2.png") no-repeat
  background: url('../../assets/img/synthesis/图层 12 æ‹·è´ 2.png') no-repeat
    center;
}
.b5 {
  background: url("../../assets/img/synthesis/圆角矩形 5 æ‹·è´ 2.png") no-repeat
  background: url('../../assets/img/synthesis/圆角矩形 5 æ‹·è´ 2.png') no-repeat
    center;
}
.b6 {
  background: url("../../assets/img/synthesis/圆角矩形 5 æ‹·è´ 3.png") no-repeat
  background: url('../../assets/img/synthesis/圆角矩形 5 æ‹·è´ 3.png') no-repeat
    center;
}
.b7 {
  background: url("../../assets/img/synthesis/矩形 9.png") no-repeat center;
  background: url('../../assets/img/synthesis/矩形 9.png') no-repeat center;
}
.b8 {
  background: url("../../assets/img/synthesis/椭圆 4.png") no-repeat center;
  background: url('../../assets/img/synthesis/椭圆 4.png') no-repeat center;
}
.backimge2 {
  width: 30px;
src/views/maintenance/blackwhiteList.vue
@@ -61,20 +61,20 @@
            </el-form-item>
            <el-form-item>
              <el-button @click="onSubmit">{{
                $t("operatManage.BWL.change")
                $t('operatManage.BWL.change')
              }}</el-button>
            </el-form-item>
            <el-form-item>
              <el-button @click="onSubmit"
                ><i class="el-icon-search"></i> &nbsp;{{
                  $t("operatManage.BWL.search")
                  $t('operatManage.BWL.search')
                }}</el-button
              >
            </el-form-item>
            <el-form-item>
              <el-button @click="onSubmit"
                ><i class="el-icon-delete"></i> &nbsp;{{
                  $t("operatManage.BWL.reset")
                  $t('operatManage.BWL.reset')
                }}</el-button
              >
            </el-form-item>
@@ -161,14 +161,14 @@
            <el-form-item>
              <el-button @click="onSubmit"
                ><i class="el-icon-search"></i> &nbsp;{{
                  $t("operatManage.BWL.search")
                  $t('operatManage.BWL.search')
                }}</el-button
              >
            </el-form-item>
            <el-form-item>
              <el-button @click="onSubmit"
                ><i class="el-icon-delete"></i> &nbsp;{{
                  $t("operatManage.BWL.reset")
                  $t('operatManage.BWL.reset')
                }}</el-button
              >
            </el-form-item>
@@ -229,10 +229,10 @@
    </el-tabs>
  </div>
</template>
  <script>
import MyBread from "../../components/MyBread.vue";
import { blacklistSelectByPageAndCount } from "../../api/api";
<script>
import MyBread from '../../components/MyBread.vue';
import { blacklistSelectByPageAndCount } from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
@@ -241,14 +241,14 @@
  data() {
    return {
      activeName: "first",
      activeName: 'first',
      currentPage: 1,
      form: {
        blackListIP: "",
        IPState: "",
        interceptionCycle: "",
        unit: "",
        interceptionNumber: "",
        blackListIP: '',
        IPState: '',
        interceptionCycle: '',
        unit: '',
        interceptionNumber: '',
      },
      BTableData: [],
      WTableData: [],
@@ -269,7 +269,7 @@
  methods: {
    //格式化时间
    add0(m) {
      return m < 10 ? "0" + m : m;
      return m < 10 ? '0' + m : m;
    },
    //格式化时间
    format(shijianchuo) {
@@ -282,7 +282,7 @@
      var mm = time.getMinutes();
      var s = time.getSeconds();
      return (
        y + "-" + this.add0(m) + "-" + this.add0(d)
        y + '-' + this.add0(m) + '-' + this.add0(d)
        // " " +
        // this.add0(h) +
        // ":" +
@@ -319,7 +319,7 @@
      this.getList();
    },
    onSubmit() {
      console.log("submit!");
      console.log('submit!');
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
@@ -328,16 +328,15 @@
      const data = await blacklistSelectByPageAndCount(this.WListData);
      if (data.code != 200) {
        return this.$message.error("列表调用失败");
        return this.$message.error('列表调用失败');
      }
      this.WTableData = data.result;
      this.Wcount = data.count;
    },
    async BGetList() {
      const data = await blacklistSelectByPageAndCount(this.BListData);
      console.log(data);
      if (data.code != 200) {
        return this.$message.error("列表调用失败");
        return this.$message.error('列表调用失败');
      }
      this.BTableData = data.result;
      this.Bcount = data.count;
@@ -349,7 +348,7 @@
  },
};
</script>
  <style lang="less" scoped>
<style lang="less" scoped>
//@import url(); å¼•入公共cssç±»
.logLog_box {
  background: rgb(240, 242, 245);
@@ -384,4 +383,3 @@
  }
}
</style>
src/views/maintenance/databaseMonitoring.vue
@@ -13,8 +13,8 @@
</template>
<script>
import MyBread from "../../components/MyBread.vue";
import { getToken } from "../../utils/auth.js";
import MyBread from '../../components/MyBread.vue';
import { getToken } from '../../utils/auth.js';
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
@@ -23,14 +23,14 @@
  data() {
    //这里存放数据
    return {
      sql_Url: "",
      sql_Url: '',
    };
  },
  //方法集合
  methods: {
    handleSelectionChange() {},
    getUrl() {
      if (this.$store.state.iframeMsg.indexOf("Token=") != -1) {
      if (this.$store.state.iframeMsg.indexOf('token=') != -1) {
        this.sql_Url = this.$store.state.iframeMsg + getToken();
      } else {
        this.sql_Url = this.$store.state.iframeMsg;
src/views/maintenance/systemMonitoring.vue
@@ -210,7 +210,7 @@
      }
      this.echartData.push(parseFloat(res.cpuInfo.cpuSysUsage));
      this.lineChart1();
      console.log(this.memInfo.usage);
      this.lineChart2(this.memInfo.usage);
    },
    SetTableData2(res) {
@@ -268,7 +268,7 @@
            fontSize: 15,
            fontFamily: 'Microsoft Yahei',
            fontWeight: 'normal',
            color: '#00FFFF',
            color: 'black',
            rich: {
              a: {
                fontSize: 15,
@@ -290,9 +290,10 @@
                left: '10',
                top: '50',
                style: {
                  fill: '#00FFFF',
                  fill: 'black',
                  text: '使用率',
                  font: '14px Microsoft YaHei',
                  font: '20px Microsoft YaHei',
                  fontWeight: '900',
                },
              },
            ],
@@ -315,15 +316,15 @@
                colorStops: [
                  {
                    offset: 1,
                    color: 'rgba(68, 145, 253, 0)',
                    color: 'rgba(126,147,211, 0)',
                  },
                  {
                    offset: 0.5,
                    color: 'rgba(68, 145, 253, .25)',
                    color: 'rgba(126,147,211, .25)',
                  },
                  {
                    offset: 0,
                    color: 'rgba(68, 145, 253, 1)',
                    color: 'rgba(126,147,211, 1)',
                  },
                ],
                globalCoord: false,
src/views/maintenance/tokentool.vue
@@ -490,8 +490,8 @@
      if (this.ruleForm.value != null) {
        this.listData.type = parseInt(this.ruleForm.value);
      }
      debugger;
      const data = await select_Token_ByPageAndCount(this.listData);
      console.log('Token获取', data);
      if (data.code != 200) {
        this.$message.error('列表调用失败');
      }
src/views/userManage/roleManage.vue
@@ -83,6 +83,17 @@
          prop="depName"
          :label="$t('userManage.RM.ownedSystem')"
        />
        <el-table-column
          align="center"
          prop="isAdmin"
          :label="$t('userManage.RM.isAdmin')"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.isAdmin == 1">是 </span>
            <span v-else-if="scope.row.isAdmin == 0">否</span>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          prop="descr"
@@ -128,9 +139,12 @@
              size="small"
              >{{ $t('common.update') }}</el-button
            >
            <el-button  @click="showDetail(scope.$index, scope.row)" type="primary" size="small">{{
              $t('common.see')
            }}</el-button>
            <el-button
              @click="showDetail(scope.$index, scope.row)"
              type="primary"
              size="small"
              >{{ $t('common.see') }}</el-button
            >
          </template>
        </el-table-column>
      </el-table>
@@ -184,6 +198,13 @@
          <el-input v-model="insertform.descr" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.isAdmin')"
          :label-width="formLabelWidth"
        >
          <el-radio v-model="insertform.isAdmin" label="1">是</el-radio>
          <el-radio v-model="insertform.isAdmin" label="0">否</el-radio>
        </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.remarks')"
          :label-width="formLabelWidth"
        >
@@ -198,7 +219,7 @@
      </div>
    </el-dialog>
    <el-dialog
      :title="$t('userManage.RM.insertRole')"
      :title="$t('userManage.RM.updateRole')"
      top="15vh"
      width="80vh"
      style="overflow: hidden"
@@ -225,6 +246,13 @@
          <el-button style="margin-left: 20px" @click="showDepTree(3)">{{
            $t('common.choose')
          }}</el-button>
        </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.isAdmin')"
          :label-width="formLabelWidth"
        >
          <el-radio v-model="updateform.isAdmin" label="1">是</el-radio>
          <el-radio v-model="updateform.isAdmin" label="0">否</el-radio>
        </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.describe')"
@@ -260,25 +288,30 @@
      </div>
    </div>
     <div class="infoBox" v-show="showinfoBox">
    <div class="infoBox" v-show="showinfoBox">
      <el-card>
        <div slot="header" class="clearfix">
          <span>{{ $t('dataManage.styleObj.deInformation') }}</span>
          <div style="float: right; cursor: pointer" @click="closeDetial"   >
          <div style="float: right; cursor: pointer" @click="closeDetial">
            <i class="el-icon-close"></i>
          </div>
        </div>
               <div class="contentBox">
        <div class="contentBox">
          <p>
            <label> {{ $t('userManage.RM.roleName') }}:</label>
            <label class="boxlabel">{{ itemdetail.name }}</label>
          </p>
          <el-divider></el-divider>
          <p>
           <p>
            <label> {{ $t('userManage.RM.ownedSystem') }}:</label>
            <label class="boxlabel">{{ itemdetail.depName }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t('userManage.RM.isAdmin') }}:</label>
            <label class="boxlabel">{{ itemdetail.admin }}</label>
          </p>
          <el-divider></el-divider>
          <p>
@@ -286,7 +319,7 @@
            <label class="boxlabel">{{ itemdetail.descr }}</label>
          </p>
          <el-divider></el-divider>
           <p>
          <p>
            <label> {{ $t('userManage.RM.creationuser') }}:</label>
            <label class="boxlabel">{{ itemdetail.createUser }}</label>
          </p>
@@ -302,16 +335,16 @@
          </p>
          <el-divider></el-divider>
             <p>
          <p>
            <label> {{ $t('userManage.RM.updateontime') }}:</label>
            <label class="boxlabel">{{ itemdetail.updateTime }}</label>
          </p>
           <el-divider></el-divider>
             <p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t('userManage.RM.remarks') }}:</label>
            <label class="boxlabel">{{ itemdetail.bak }}</label>
          </p>
           <el-divider></el-divider>
          <el-divider></el-divider>
        </div>
      </el-card>
    </div>
@@ -365,16 +398,21 @@
    };
  },
  methods: {
        closeDetial() {
    closeDetial() {
      this.showinfoBox = false;
      this.itemdetail = {};
    },
      showDetail(index, row) {
    showDetail(index, row) {
      this.showinfoBox = true;
      this.itemdetail = row;
      this.itemdetail.createTime = this.formomentTime(this.itemdetail.createTime);
      this.itemdetail.updateTime = this.formomentTime(this.itemdetail.updateTime);
      this.itemdetail.createTime = this.formomentTime(
        this.itemdetail.createTime
      );
      this.itemdetail.updateTime = this.formomentTime(
        this.itemdetail.updateTime
      );
      this.itemdetail.admin =
        parseInt(this.itemdetail.isAdmin) === 0 ? '否' : '是';
    },
    handleSelectionChange(val) {
      this.multipleSelection = val;
@@ -431,6 +469,7 @@
      if (data.code != 200) {
        this.$message.error('列表调用失败');
      }
      console.log(data);
      this.tableData = data.result;
      this.count = data.count;
    },
@@ -489,6 +528,7 @@
        });
        return;
      }
      console.log(this.updateform);
      const data = await updateRole(this.updateform);
      if (data.code == 200) {
        this.UpdateFormdialog = false;
@@ -536,6 +576,7 @@
    },
    async handleEdit(index, row) {
      this.updateform = row;
      this.updateform.isAdmin = row.isAdmin.toString();
      const data = await selectDep({ id: row.depid });
      this.updateform.depValue = data.result.name;
      this.UpdateFormdialog = true;