管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2022-11-16 e955e0e34f52d3a8f66354f2a75b762791f918b1
頁面更改
已修改19个文件
2099 ■■■■ 文件已修改
src/api/api.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/en.js 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/zh.js 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MyBread.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/customElMenu.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/login.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/blackwhiteList.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/logLog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/menuSettings.vue 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/mochaitmo.vue 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/parameterConfiguration.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/safetyManagement.vue 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/systemMonitoring.vue 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/tokentool.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/userManagement.vue 1251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userManage/authorityManage.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userManage/orgManage.vue 136 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userManage/resourceManage.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userManage/roleManage.vue 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/api.js
@@ -287,6 +287,11 @@
export function updatePwd(params) {
  return request.post('/user/updateUsersPwd', params);
}
//判断用户是否为管理员
export function userSelectForIsAdmin(params) {
  return request.get('/user/selectForIsAdmin', { params: params });
}
// 查询用户名占用
export function selectByUserid(params) {
  return request.get('/user/selectByUid', { params: params });
@@ -457,6 +462,10 @@
export function inquiry_SelectTabs(params) {
  return request.get('/inquiry/selectTabs', { params: params });
}
//运维管理=>用户管理=>获取列表
export function userSelectByPageAndCount(params) {
  return request.get('/user/selectByPageAndCount', { params: params });
}
//请求站场点内容
export function querySitePoint(size, index, name) {
src/assets/lang/en.js
@@ -20,6 +20,10 @@
    see: 'See',
    index: 'index',
    download: 'download',
    cancel: 'cancel',
    changepassWord: 'Batch password modification',
    reset: 'Reset',
    submit: 'Submit',
  },
  dataManage: {
    dataManage: 'Data Manage',
@@ -79,15 +83,15 @@
      tipsUp: 'Are you sure to save the changes?',
    },
    domainManage: {
      index:'index',
      bak: "bak",
      bsm: "bsm",
      codeDesc: "codeDesc",
      domCode: "domCode",
      domDesc: "domDesc",
      domName: "domName",
      level: "level",
      orderid: "orderid",
      index: 'index',
      bak: 'bak',
      bsm: 'bsm',
      codeDesc: 'codeDesc',
      domCode: 'domCode',
      domDesc: 'domDesc',
      domName: 'domName',
      level: 'level',
      orderid: 'orderid',
    },
    styleManage: 'Style Manage',
    styleObj: {
@@ -114,6 +118,7 @@
    },
  },
  operatManage: {
    organizationManage: 'Organizational management',
    operatManage: 'Operat Manage',
    ResourceLog: 'Resource Log',
    UserRoleAuthorization: 'User Role Authorization',
@@ -167,7 +172,17 @@
      descr: 'Describe',
      editSysLayOut: 'Modify system configuration',
    },
    menuSettings: 'Menu Settings',
    menuSettings: 'Menu Management',
    menuSetObj: {
      enName: 'CnName',
      cnName: 'EnName',
      icon: 'Icon',
      isShow: 'DisPlay',
      menuUrl: 'Menu Url',
      type: 'Type',
      bak: 'Remarks',
      authorize: 'Authorize',
    },
    parameterConfiguration: 'parameterConfiguration',
    rests: 'Rests',
    authorityManagement: 'Authority Management',
@@ -186,6 +201,16 @@
      serviceAarm: 'serviceAarm',
      serviceResourceAlarm: 'serviceResourceAlarm',
      serviceResourceStatus: 'serviceResourceStatus',
      remainingMemory: 'Remaining memory',
      userloginStatus: 'User login status',
      resourceOperationStatus: 'Resource operation status',
      memoryMonitoring: 'Memory monitoring',
      cpuMonitoring: 'CPU monitoring',
      heteroconstant: 'Heteroconstant',
      numberOfExceptions: 'Number of exceptions',
      userOperationBehavior: 'userOperationBehavior',
      resourceInvocationStatus: 'resourceInvocationStatus',
      resourceCallStatistics: 'resourceCallStatistics',
@@ -441,6 +466,9 @@
      job: 'job',
      natives: 'natives',
      pwd: 'password',
      confirmPassword: 'Confirm Password',
      origpassword: 'Original password',
      available: 'Account available',
      sex: 'gender',
      status: 'status',
      uname: 'username',
@@ -506,6 +534,9 @@
    },
    orgManage: 'Org Manage',
    orgManageObj: {
      WebsiteAddress: 'Website address',
      continformation: 'contact information',
      remarks: 'remarks',
      companyName: 'companyName',
      flatType: 'flatType',
      inquire: 'inquire',
@@ -533,8 +564,8 @@
      immediatelyCreate: 'immediatelyCreate',
      pinyinInitials: 'pinyinInitials',
      abbreviation: 'abbreviation',
      unitCode: 'unitCode',
      organizationCode: 'organizationCode',
      unitCode: 'Code',
      organizationCode: 'Organization code',
      companyAdministrator: 'companyAdministrator',
      picture: 'picture',
      division: 'division',
@@ -542,7 +573,7 @@
      fax: 'fax',
      postalCode: 'postalCode',
      website: 'website',
      cmpanyAddress: 'cmpanyAddress',
      cmpanyAddress: 'Address',
      companyIntroduction: 'companyIntroduction',
    },
    userAuditing: 'User Auditing',
src/assets/lang/zh.js
@@ -20,6 +20,10 @@
    see: '查看',
    index: '序号',
    download: '下载',
    cancel: '取消',
    changepassWord: '批量修改密码',
    reset: '重置',
    submit: '提交',
  },
  dataManage: {
    dataManage: '数据管理',
@@ -80,15 +84,14 @@
    },
    domainManage: {
      index: '序号',
      bak: "备注",
      bsm: "标识码",
      codeDesc: "编码描述",
      domCode: "编码",
      domDesc: "值域表描述",
      domName: "值域名称",
      level: "层级",
      orderid: "序号",
      bak: '备注',
      bsm: '标识码',
      codeDesc: '编码描述',
      domCode: '编码',
      domDesc: '值域表描述',
      domName: '值域名称',
      level: '层级',
      orderid: '序号',
    },
    styleManage: '样式管理',
    styleObj: {
@@ -118,6 +121,8 @@
  operatManage: {
    operatManage: '运维管理',
    ResourceLog: '资源日志',
    organizationManage: '单位管理',
    UserRoleAuthorization: '用户角色授权',
    MenuRoleAuthorization: '菜单权限授权',
    RoleResAuthorization: '角色资源授权',
@@ -168,7 +173,17 @@
      descr: '描述',
      editSysLayOut: '修改系统配置',
    },
    menuSettings: '菜单设置',
    menuSettings: '菜单管理',
    menuSetObj: {
      enName: '英文名称',
      cnName: '中文名称',
      icon: '图标',
      isShow: '是否显示',
      menuUrl: '菜单Url',
      type: '类型',
      bak: '备注',
      authorize: '授权',
    },
    parameterConfiguration: '参数配置',
    rests: '其他',
    authorityManagement: '权限管理',
@@ -187,7 +202,16 @@
      serviceAarm: '服务告警',
      serviceResourceAlarm: '服务资源告警',
      serviceResourceStatus: '服务资源状态',
      userOperationBehavior: '用户操作行为',
      remainingMemory: '剩余内存',
      userloginStatus: '用户登录状态',
      resourceOperationStatus: '资源操作状态',
      memoryMonitoring: '内存监控',
      cpuMonitoring: 'CPU监控',
      heteroconstant: '异常数',
      numberOfExceptions: '异常个数',
      resourceInvocationStatus: '资源调用状态',
      resourceCallStatistics: '资源调用统计',
      inquire: '查询',
@@ -434,6 +458,9 @@
      userStatus: '用户状态',
      uname: '用户名',
      pwd: '密码',
      confirmPassword: '确认密码',
      origpassword: '原密码',
      available: '账号可用',
      sex: '性别',
      natives: '籍贯',
      depName: '单位名称',
@@ -506,6 +533,9 @@
    },
    orgManage: '组织机构管理',
    orgManageObj: {
      remarks: '备注',
      continformation: '联系方式',
      WebsiteAddress: '网站地址',
      companyName: '单位名称',
      flatType: '单位类型',
      inquire: '查询',
@@ -524,7 +554,7 @@
      confirm: '确定',
      close: '关闭',
      administrativeDvisionsList: '行政区划-列表',
      name: '区域名称',
      name: '名称',
      coding: '编码',
      codeOfAdministrativeDivision: '行政区划代码',
      LevelForExaminationAndApproval: '审批级别',
@@ -532,9 +562,9 @@
      reset: '重置',
      immediatelyCreate: '立即创建',
      pinyinInitials: '拼音首字母',
      abbreviation: '单位简称',
      unitCode: '单位编码',
      organizationCode: '单位组织机构代码',
      abbreviation: '简称',
      unitCode: '编码',
      organizationCode: '机构代码',
      companyAdministrator: '单位管理员',
      picture: '图片',
      division: '所属区划',
@@ -542,7 +572,7 @@
      fax: '传真',
      postalCode: '邮政编码',
      website: '网址',
      cmpanyAddress: '单位地址',
      cmpanyAddress: '地址',
      companyIntroduction: '单位介绍',
    },
    userAuditing: '用户审核',
src/components/MyBread.vue
@@ -27,6 +27,7 @@
  position: relative;
  top: 10px;
  // margin-top: 24px;
  width: 500px;
  margin-left: 10px;
}
</style>
src/components/customElMenu.vue
@@ -7,7 +7,7 @@
        :index="item.id + ''"
      >
        <template slot="title">{{
          $store.state.lang == "zh" ? item.cnName : item.enName
          $store.state.lang == 'zh' ? item.cnName : item.enName
        }}</template>
        <MenuTree :menuData="item.children"></MenuTree>
      </el-submenu>
@@ -18,7 +18,7 @@
        :index="item.url == null ? item.id.toString() : item.url + ''"
      >
        <span slot="title">{{
          $store.state.lang == "zh" ? item.cnName : item.enName
          $store.state.lang == 'zh' ? item.cnName : item.enName
        }}</span>
      </el-menu-item>
    </template>
@@ -27,11 +27,11 @@
<script>
export default {
  props: ["menuData"],
  name: "MenuTree",
  props: ['menuData'],
  name: 'MenuTree',
  data() {
    return {
      name: "",
      name: '',
    };
  },
};
@@ -42,5 +42,8 @@
    background-color: transparent !important;
    color: #fff;
  }
  /deep/.el-menu {
    border: transparent !important;
  }
}
</style>
</style>
src/components/login.vue
@@ -206,7 +206,6 @@
    //   获取vuex中Actions里的方法
    ...mapActions(['login', 'getpublickey']),
    getCode(data) {
      console.log(data);
      this.validCode = data; //在data中定义一个 validCode:'',用来记录验证码。
    },
    submitForm(formName) {
src/views/maintenance/blackwhiteList.vue
@@ -291,19 +291,19 @@
      width="30%"
    >
      <el-form ref="insertform" :model="insertform">
        <el-form-item :label-width="formLabelWidth" label="IP地址">
        <el-form-item :label-width="formLabelWidth"     :label="$t('operatManage.tokentoolObj.ip')">
          <el-input
            v-model="insertform.ip"
            :placeholder="$t('common.pleaseInput')"
          />
        </el-form-item>
        <el-form-item :label-width="formLabelWidth" label="访问次数">
        <el-form-item :label-width="formLabelWidth" :label="$t('operatManage.BWL.PageView')">
          <el-input
            v-model="insertform.visit"
            :placeholder="$t('common.pleaseInput')"
          />
        </el-form-item>
        <el-form-item :label-width="formLabelWidth" label="描述">
        <el-form-item :label-width="formLabelWidth" :label="$t('operatManage.BWL.description')">
          <el-input
            v-model="insertform.descr"
            :placeholder="$t('common.pleaseInput')"
src/views/maintenance/logLog.vue
@@ -76,7 +76,7 @@
    </div>
    <!-- 表格显示 -->
    <div class="table_box">
      <el-table :data="tableData" stripe style="width: 100%" height="80%">
      <el-table :data="tableData" style="width: 100%" height="80%">
        <el-table-column
          width="150"
          type="index"
src/views/maintenance/menuSettings.vue
@@ -1,7 +1,12 @@
<template>
  <div class="menuSettings_box">
    <div class="menuSettings_tree">
      <My-bread :list="['系统管理', '菜单设置']"></My-bread>
      <My-bread
        :list="[
          `${$t('operatManage.operatManage')}`,
          `${$t('operatManage.menuSettings')}`,
        ]"
      ></My-bread>
      <el-divider />
    </div>
    <div class="left_Tree">
@@ -48,14 +53,16 @@
    <div class="right_menu">
      <el-card class="el-card-define">
        <el-breadcrumb separator="/">
          <el-breadcrumb-item :to="{ path: '/' }">详细信息</el-breadcrumb-item>
          <el-breadcrumb-item :to="{ path: '/' }">{{
            $t('dataManage.dictionaryManageObj.particulars')
          }}</el-breadcrumb-item>
        </el-breadcrumb>
        <el-divider />
        <div class="form_box">
          <el-form :model="itemdetail" ref="itemdetail" :rules="rules">
            <el-form-item
              prop="enName"
              label="英文名称"
              :label="$t('operatManage.menuSetObj.enName')"
              :label-width="formLabelWidth"
            >
              <el-input
@@ -66,7 +73,7 @@
            </el-form-item>
            <el-form-item
              prop="cnName"
              label="中文名称"
              :label="$t('operatManage.menuSetObj.cnName')"
              :label-width="formLabelWidth"
            >
              <el-input
@@ -74,12 +81,15 @@
                autocomplete="off"
              ></el-input>
            </el-form-item>
            <el-form-item label="图标" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('operatManage.menuSetObj.icon')"
              :label-width="formLabelWidth"
            >
              <el-input v-model="itemdetail.icon" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item
              prop="isShow"
              label="是否显示"
              :label="$t('operatManage.menuSetObj.isShow')"
              :label-width="formLabelWidth"
            >
              <el-select
@@ -96,24 +106,30 @@
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="菜单Url" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('operatManage.menuSetObj.menuUrl')"
              :label-width="formLabelWidth"
            >
              <el-input v-model="itemdetail.url" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="授权" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('operatManage.menuSetObj.authorize')"
              :label-width="formLabelWidth"
            >
              <el-input
                v-model="itemdetail.perms"
                autocomplete="off"
              ></el-input>
            </el-form-item>
            <el-form-item
              label="类型"
              :label="$t('operatManage.menuSetObj.type')"
              prop="type"
              :label-width="formLabelWidth"
            >
              <el-select
                style="width: 400px"
                v-model="itemdetail.type"
                placeholder="请选择类型"
                :placeholder="$t('common.choose')"
              >
                <el-option
                  v-for="item in options2"
@@ -124,7 +140,10 @@
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="备注" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('operatManage.menuSetObj.bak')"
              :label-width="formLabelWidth"
            >
              <el-input v-model="itemdetail.bak" autocomplete="off"></el-input>
            </el-form-item>
            <div class="btnBox" v-if="menuStatus.update">
@@ -132,41 +151,44 @@
                class="el-button-sure"
                type="primary"
                @click="updMenu('itemdetail')"
                >保存</el-button
                >{{ $t('common.confirm') }}</el-button
              >
              <el-button
                class="el-button-remove"
                type="primary"
                @click="reset('itemdetail')"
                >取消</el-button
                >{{ $t('common.cancel') }}</el-button
              >
            </div>
          </el-form>
        </div>
      </el-card>
    </div>
    <el-dialog title="新增子菜单" :visible.sync="dialogFormVisible">
    <el-dialog :title="$t('common.append')" :visible.sync="dialogFormVisible">
      <el-form :model="ruleForm" ref="ruleForm" :rules="rules">
        <el-form-item
          prop="enName"
          label="英文名称"
          :label="$t('operatManage.menuSetObj.enName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.enName" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item
          prop="cnName"
          label="中文名称"
          :label="$t('operatManage.menuSetObj.cnName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.cnName" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="图标" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('operatManage.menuSetObj.icon')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.icon" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item
          prop="isShow"
          label="是否显示"
          :label="$t('operatManage.menuSetObj.isShow')"
          :label-width="formLabelWidth"
        >
          <el-select v-model="ruleForm.isShow" placeholder="">
@@ -179,14 +201,24 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="菜单Url" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('operatManage.menuSetObj.menuUrl')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.url" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="授权" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('operatManage.menuSetObj.authorize')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.perms" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="类型" prop="type" :label-width="formLabelWidth">
          <el-select v-model="ruleForm.type" placeholder="请选择类型">
        <el-form-item
          :label="$t('operatManage.menuSetObj.type')"
          prop="type"
          :label-width="formLabelWidth"
        >
          <el-select v-model="ruleForm.type" :placeholder="$t('common.choose')">
            <el-option
              v-for="item in options2"
              :key="item.value"
@@ -196,20 +228,23 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="备注" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('operatManage.menuSetObj.bak')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.bak" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button class="el-button-sure" @click="resetForm('ruleForm')"
          >取消</el-button
        >
        <el-button class="el-button-sure" @click="resetForm('ruleForm')">{{
          $t('common.cancel')
        }}</el-button>
        <el-button
          class="el-button-remove"
          type="primary"
          @click="submitForm('ruleForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
          >提交</el-button
          >{{ $t('common.confirm') }}</el-button
        >
      </div>
    </el-dialog>
@@ -225,6 +260,7 @@
  queryMaxId,
  insertMenu,
  deleteMenu,
  getPerms,
} from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
@@ -599,9 +635,17 @@
  },
  created() {
    var val = this.$store.state.currentPerms;
    if (!val) {
      val = '/menu';
    }
    var permsEntity = this.$store.state.permsEntity;
    if (permsEntity.length == 0) {
      getPerms().then((res) => {
        if (res.code == 200) {
          permsEntity = res.result;
        }
      });
    }
    for (var i = 0; i < permsEntity.length; i++) {
      if (permsEntity[i].perms == val) {
        this.showPermsMenu(permsEntity[i]);
src/views/maintenance/mochaitmo.vue
@@ -3,46 +3,64 @@
    <div class="left_tree">
      <el-card class="el-card-define">
        <div class="card_tree">
          <el-tree
            :data="treeList"
            :props="defaultProps"
            node-key="id"
            @node-click="handleNodeClick"
            :default-expanded-keys="[23]"
            :default-checked-keys="[24]"
          ></el-tree>
          <el-menu
            active-text-color="#ffd04b"
            class="el-menu-vertical-demo"
            :default-active="activeIndex"
            background-color="transparent"
            text-color="#fff"
            @select="handleselect"
          >
            <customElMenu :menuData="menuList"></customElMenu>
          </el-menu>
        </div>
      </el-card>
    </div>
    <div class="right_page">
      <el-card class="el-card-define">
        <div>
          <menu-settings v-if="setMenuFlag == '1'"></menu-settings>
          <user-management v-if="setMenuFlag == '2'"></user-management>
          <org-manage v-if="setMenuFlag == '3'"></org-manage>
          <resource-manage v-if="setMenuFlag == '4'"></resource-manage>
          <role-manage v-if="setMenuFlag == '5'"></role-manage>
          <authority-manage v-if="setMenuFlag == '6'"></authority-manage>
          <menu-settings v-if="setMenuFlag == 'menuSettings'"></menu-settings>
          <user-management
            v-if="setMenuFlag == 'userInfoManage'"
          ></user-management>
          <org-manage v-if="setMenuFlag == 'orgManage'"></org-manage>
          <resource-manage
            v-if="setMenuFlag == 'resourceManage'"
          ></resource-manage>
          <role-manage v-if="setMenuFlag == 'roleManage'"></role-manage>
          <authority-manage
            v-if="setMenuFlag == 'authorityManage'"
          ></authority-manage>
          <user-role-authorization
            v-if="setMenuFlag == '7'"
            v-if="setMenuFlag == 'userRoleAuthorization'"
          ></user-role-authorization>
          <menu-role-authorization
            v-if="setMenuFlag == '8'"
            v-if="setMenuFlag == 'menuRoleAuthorization'"
          ></menu-role-authorization>
          <role-menu-authorization v-if="setMenuFlag == '9'">
          <role-menu-authorization
            v-if="setMenuFlag == 'roleMenuAuthorization'"
          >
          </role-menu-authorization>
          <role-res-authorization
            v-if="setMenuFlag == '10'"
            v-if="setMenuFlag == 'roleResAuthorization'"
          ></role-res-authorization>
          <log-log v-if="setMenuFlag == '11'"> </log-log>
          <operation-log v-if="setMenuFlag == '12'"></operation-log>
          <eventlog-manage v-if="setMenuFlag == '13'"></eventlog-manage>
          <tokentool v-if="setMenuFlag == '14'"></tokentool>
          <blackwhite-list v-if="setMenuFlag == '15'"></blackwhite-list>
          <database-monitoring v-if="setMenuFlag == '16'"></database-monitoring>
          <system-monitoring v-if="setMenuFlag == '17'"></system-monitoring>
          <log-log v-if="setMenuFlag == 'logLog'"> </log-log>
          <operation-log v-if="setMenuFlag == 'operationLog'"></operation-log>
          <eventlog-manage
            v-if="setMenuFlag == 'eventlogManage'"
          ></eventlog-manage>
          <tokentool v-if="setMenuFlag == 'tokentool'"></tokentool>
          <blackwhite-list
            v-if="setMenuFlag == 'blackwhiteList'"
          ></blackwhite-list>
          <database-monitoring
            v-if="setMenuFlag == 'dataIfream'"
          ></database-monitoring>
          <system-monitoring
            v-if="setMenuFlag == 'systemMonitoring'"
          ></system-monitoring>
          <parameter-configuration
            v-if="setMenuFlag == '18'"
            v-if="setMenuFlag == 'parameterConfiguration'"
          ></parameter-configuration>
        </div>
      </el-card>
@@ -70,7 +88,7 @@
import systemMonitoring from '@/views/maintenance/systemMonitoring.vue'; //系统监控
import parameterConfiguration from '@/views/maintenance/parameterConfiguration.vue'; //系统配置
import { selectMenuRecursive } from '../../api/api';
import customElMenu from '../../components/customElMenu.vue';
export default {
  components: {
    menuSettings,
@@ -91,34 +109,80 @@
    databaseMonitoring,
    systemMonitoring,
    parameterConfiguration,
    customElMenu,
  },
  data() {
    return {
      setMenuFlag: '1',
      treeList: [],
      defaultProps: {
        children: 'children',
        label: 'cnName',
      },
      setMenuFlag: 'menuSettings',
      oriData: [], //原始树数据
      dirData: [], //el树数据
      newData: [], //拖动后数据
      lang: 'zh',
      activeIndex: 'menuSettings',
      menuList: [],
      editTitle: '',
      showPopover: false,
      showEditInfoWrapper: false,
      showEdit: false,
      editMenu: false,
      editCatalogue: false,
      editUnit: false,
      itemdetail: {},
      formLabelWidth: '70px',
    };
  },
  mounted() {
    this.getTreeData();
  },
  methods: {
    //获取树
    async getTreeData() {
      const data = await selectMenuRecursive({ name: '运维管理' });
      this.treeList = this.treeData(data.result);
      const res = await selectMenuRecursive({ name: '运维管理' });
      if (res.code == 200) {
        if (res.result.length != 0) {
          let menuList = res.result.filter((value) => {
            return value.type == 1;
          });
          this.menuList = this.treeData(menuList);
        } else {
          alert('暂无菜单栏数据');
        }
      } else {
        console.log('接口报错');
      }
      // this.treeList = 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 > 1 ? (father.children = branchArr) : ''; // 给父级添加一个children属性,并赋值
        return father.pid == 1; // 返回一级菜单
      });
      // console.log(cloneData);
      if (cloneData.length != 0) {
        return cloneData.filter((father) => {
          // 循环所有项
          let branchArr = cloneData.filter((child) => father.id == child.pid); // 对比ID,分别上下级菜单,并返回数据
          branchArr.length > 0 ? (father.children = branchArr) : ''; // 给父级添加一个children属性,并赋值
          // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2;
          // 由此循环多次后,就能形成相应的树形数据结构
          return father.pid == 1; // 返回一级菜单
        });
      } else {
        alert('暂无菜单栏数据');
      }
    },
    handleselect(index, indexPath, e) {
      var data = e.$attrs.perms;
      this.$store.state.currentPerms = data.perms;
      var index = data.url;
      if (index != null) {
        if (index.indexOf('http') != -1) {
          this.$store.commit('getIframe', data.url);
          index = 'dataIfream';
        }
      }
      this.setMenuFlag = index;
    },
    //树点击
    handleNodeClick(data) {
@@ -215,22 +279,8 @@
    background-color: transparent;
  }
  .card_tree {
    /deep/ .el-tree .el-icon-caret-right:before {
      color: white; /** 这里是要修改图标的颜色 **/
    }
    /deep/ .el-tree {
      color: white; /** 这里是要修改图标的颜色 **/
      background: transparent;
    }
    /deep/.el-tree-node__content {
      &:hover {
        background-color: rgba(255, 255, 255, 0.3) !important;
      }
    }
    /deep/.el-tree-node.is-current > .el-tree-node__content {
      background-color: rgba(255, 255, 255, 0.3) !important;
      color: #409eff;
    }
    height: 730px;
    overflow-y: auto;
  }
  .el-card__body,
  .el-main {
@@ -243,5 +293,14 @@
    position: relative;
    float: right;
  }
  /deep/.el-menu {
    border: transparent !important;
  }
  /deep/.el-submenu__title:hover {
    background: rgba(255, 255, 255, 0.3) !important;
  }
  /deep/ .el-submenu .el-menu-item:hover {
    background: rgba(255, 255, 255, 0.3) !important;
  }
}
</style>
src/views/maintenance/parameterConfiguration.vue
@@ -147,7 +147,7 @@
        insert: false,
        update: false,
      },
      formLabelWidth: '100px',
      formLabelWidth: '120px',
      upform: {},
      EditFormdialog: false,
      tableData: [],
@@ -357,5 +357,27 @@
      background: transparent;
    }
  }
  /deep/ .el-input__inner {
    background-color: transparent !important;
    border: 1px solid;
    color: white;
  }
  /deep/ .el-dialog {
    background: #303030;
  }
  /deep/.el-range-editor.is-active,
  .el-range-editor.is-active:hover,
  .el-select .el-input.is-focus .el-input__inner {
    border: 1px solid;
  }
  /deep/.el-dialog__title {
    color: white;
  }
  /deep/.el-form-item__label {
    color: white;
  }
  .boxlabel {
    color: white;
  }
}
</style>
src/views/maintenance/safetyManagement.vue
@@ -64,7 +64,7 @@
</template>
<script>
import MyBread from "../../components/MyBread.vue";
import MyBread from '../../components/MyBread.vue';
export default {
  //import引入的组件需要注入到对象中才能使用
@@ -76,58 +76,58 @@
    return {
      currentPage4: 1,
      form: {
        name: "",
        region: "",
        jurisdiction: "",
        name: '',
        region: '',
        jurisdiction: '',
      },
      tableData: [
        {
          number: "1",
          name: "dads",
          ip: "192.168.11.1",
          effectivedate: "2020-08-10",
          applicant: "admin",
          status: "开发部分权限",
          number: '1',
          name: 'dads',
          ip: '192.168.11.1',
          effectivedate: '2020-08-10',
          applicant: 'admin',
          status: '开发部分权限',
        },
        {
          number: "1",
          name: "dads",
          ip: "192.168.11.1",
          effectivedate: "2020-08-10",
          applicant: "admin",
          status: "开发部分权限",
          number: '1',
          name: 'dads',
          ip: '192.168.11.1',
          effectivedate: '2020-08-10',
          applicant: 'admin',
          status: '开发部分权限',
        },
        {
          number: "2",
          name: "dads",
          ip: "192.168.11.1",
          effectivedate: "2020-08-10",
          applicant: "admin",
          status: "部分拉黑",
          number: '2',
          name: 'dads',
          ip: '192.168.11.1',
          effectivedate: '2020-08-10',
          applicant: 'admin',
          status: '部分拉黑',
        },
        {
          number: "3",
          name: "dads",
          ip: "192.168.11.1",
          effectivedate: "2020-08-10",
          applicant: "admin",
          status: "开发部分权限",
          number: '3',
          name: 'dads',
          ip: '192.168.11.1',
          effectivedate: '2020-08-10',
          applicant: 'admin',
          status: '开发部分权限',
        },
        {
          number: "4",
          name: "dads",
          ip: "192.168.11.1",
          effectivedate: "2020-08-10",
          applicant: "admin",
          status: "开发部分权限",
          number: '4',
          name: 'dads',
          ip: '192.168.11.1',
          effectivedate: '2020-08-10',
          applicant: 'admin',
          status: '开发部分权限',
        },
        {
          number: "5",
          name: "dads",
          ip: "192.168.11.1",
          effectivedate: "2020-08-10",
          applicant: "admin",
          status: "开发部分权限",
          number: '5',
          name: 'dads',
          ip: '192.168.11.1',
          effectivedate: '2020-08-10',
          applicant: 'admin',
          status: '开发部分权限',
        },
      ],
    };
@@ -140,7 +140,7 @@
      console.log(`当前页: ${val}`);
    },
    onSubmit() {
      console.log("submit!");
      console.log('submit!');
    },
    resetForm() {},
  },
@@ -154,7 +154,7 @@
  border-radius: 10px;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
  .inquire {
    padding: 10px;
    margin-top: 20px;
@@ -168,6 +168,9 @@
        margin-left: auto;
      }
    }
    /deep/.el-form-item__label {
      color: white;
    }
  }
  .table_box {
    padding: 10px;
src/views/maintenance/systemMonitoring.vue
@@ -12,7 +12,9 @@
        <div class="flex_Box">
          <div style="width: 100%; height: 20px">
            <div class="image1"></div>
            <div class="imageTitle">内存监控</div>
            <div class="imageTitle">
              {{ $t('operatManage.systemMonitoringObj.memoryMonitoring') }}
            </div>
          </div>
          <div class="top_Box1">
            <div class="top_box_left">
@@ -26,7 +28,11 @@
                  <p>{{ memInfo.use }}</p>
                </div>
                <div class="height_title">
                  <label>使用率</label>
                  <label>
                    {{
                      $t('operatManage.systemMonitoringObj.usageRate')
                    }}</label
                  >
                  <p>{{ memInfo.usage }}</p>
                </div>
              </div>
@@ -40,7 +46,11 @@
                  <p>{{ memInfo.totalMem }}</p>
                </div>
                <div class="height_title">
                  <label>剩余内存</label>
                  <label>
                    {{
                      $t('operatManage.systemMonitoringObj.remainingMemory')
                    }}</label
                  >
                  <p>{{ memInfo.remainMem }}</p>
                </div>
              </div>
@@ -53,7 +63,9 @@
        <div class="flex_Box">
          <div>
            <div class="image2"></div>
            <div style="line-height: 32px" class="imageTitle">CPU监控</div>
            <div style="line-height: 32px" class="imageTitle">
              {{ $t('operatManage.systemMonitoringObj.cpuMonitoring') }}
            </div>
          </div>
          <div
            id="Sys_cpu_chart"
@@ -63,24 +75,14 @@
        <div class="flex_Box">
          <div style="width: 100%; height: 34px">
            <div class="image3"></div>
            <div style="line-height: 32px" class="imageTitle">异常数</div>
            <div style="line-height: 32px" class="imageTitle">
              {{ $t('operatManage.systemMonitoringObj.heteroconstant') }}
            </div>
          </div>
          <div class="ycsBox">
            <div class="ycTltle">{{ resInfoCount }}</div>
            <div
              style="
                width: 110px;
                height: 16px;
                font-size: 16px;
                font-family: Microsoft YaHei;
                font-weight: 300;
                color: #ffffff;
                line-height: 49px;
                margin-left: 51px;
                margin-top: 20px;
              "
            >
              系统异常个数
            <div class="heteroTitle">
              {{ $t('operatManage.systemMonitoringObj.numberOfExceptions') }}
            </div>
          </div>
        </div>
@@ -114,16 +116,28 @@
                >
                </el-table-column> </el-table
            ></el-tab-pane>
            <el-tab-pane label="服务资源状态" name="second">
            <el-tab-pane
              :label="
                $t('operatManage.systemMonitoringObj.serviceResourceStatus')
              "
              name="second"
            >
              <div id="resUseChart" style="width: 995px; height: 310px"></div>
            </el-tab-pane>
            <el-tab-pane label="用户登录状态" name="third">
            <el-tab-pane
              :label="$t('operatManage.systemMonitoringObj.userloginStatus')"
              name="third"
            >
              <div
                id="userLoginChart"
                style="width: 995px; height: 310px"
              ></div>
            </el-tab-pane>
            <el-tab-pane label="资源操作状态" name="fourth"
            <el-tab-pane
              :label="
                $t('operatManage.systemMonitoringObj.resourceOperationStatus')
              "
              name="fourth"
              ><div
                id="operateCountChart"
                style="width: 995px; height: 310px"
@@ -133,7 +147,9 @@
        </div>
        <div class="flex_Box">
          <div>
            <div style="line-height: 32px" class="imageTitle">在线人员</div>
            <div style="line-height: 32px" class="imageTitle">
              {{ $t('operatManage.systemMonitoringObj.onlinePersonnel') }}
            </div>
          </div>
          <el-table :data="tableData" style="width: 100%" height="90%">
            <el-table-column
@@ -855,6 +871,19 @@
        margin-top: 61px;
        margin-left: 88px;
      }
      .heteroTitle {
        width: 100%;
        height: 16px;
        font-size: 16px;
        font-family: Microsoft YaHei;
        font-weight: 300;
        color: #ffffff;
        line-height: 49px;
        margin-top: 20px;
        text-align: center;
      }
    }
    .imageTitle {
      float: left;
src/views/maintenance/tokentool.vue
@@ -701,5 +701,24 @@
      background: transparent;
    }
  }
  /deep/ .el-input__inner {
    background-color: transparent !important;
    border: 1px solid;
    color: white;
  }
  /deep/ .el-dialog {
    background: #303030;
  }
  /deep/.el-range-editor.is-active,
  .el-range-editor.is-active:hover,
  .el-select .el-input.is-focus .el-input__inner {
    border: 1px solid;
  }
  /deep/.el-dialog__title {
    color: white;
  }
  /deep/.el-form-item__label {
    color: white;
  }
}
</style>
src/views/maintenance/userManagement.vue
@@ -1,190 +1,1130 @@
<template>
  <div class="userManagement_box">
    <My-bread :list="['运维管理', '用户管理']"></My-bread>
  <div class="userInfo_box">
    <My-bread
      :list="[
        `${$t('operatManage.operatManage')}`,
        `${$t('userManage.userManage')}`,
      ]"
    ></My-bread>
    <el-divider />
    <div class="inquire">
      <el-form ref="formData1" :model="form" :inline="true">
        <el-form-item label="角色名称" prop="name">
          <el-input v-model="form.name" placeholder="请输入" />
      <el-form ref="queryForm" :model="queryForm" :inline="true">
        <el-form-item prop="uname" :label="$t('userManage.userInfoObj.uname')">
          <el-input v-model="queryForm.uname" />
        </el-form-item>
        <el-form-item label="权限字符" prop="jurisdiction">
          <el-input v-model="form.jurisdiction" placeholder="请输入" />
        <el-form-item
          prop="depid"
          :label="$t('userManage.userInfoObj.depName')"
        >
          <el-cascader
            v-model="queryForm.depid"
            :options="treeOptions"
            filterable
            @change="handleChange"
            :show-all-levels="false"
            :props="{
              label: 'name',
              value: 'id',
              children: 'children',
              checkStrictly: true,
              emitPath: false,
            }"
          >
          </el-cascader>
        </el-form-item>
        <el-form-item label="角色状态" prop="region">
          <el-select v-model="form.region" placeholder="请选择">
            <el-option label="Zone one" value="shanghai" />
            <el-option label="Zone two" value="beijing" />
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="onSubmit">查询</el-button>
          <el-button @click="resetForm()">重置</el-button>
          <el-button
            size="small"
            type="primary"
            @click="queryInfo()"
            icon="el-icon-search"
            style="background: #1890ff"
            >{{ $t('operatManage.ELM.search') }}
          </el-button>
        </el-form-item>
        <el-form-item>
          <el-button
            size="small"
            @click="resetInfo('queryForm')"
            icon="el-icon-refresh"
          >
            {{ $t('operatManage.ELM.reset') }}
          </el-button>
        </el-form-item>
        <br />
        <el-form-item>
          <el-button
            type="success"
            size="small"
            @click="showAddDialog"
            icon="el-icon-plus"
          >
            {{ $t('common.append') }}
          </el-button>
        </el-form-item>
        <el-form-item>
          <el-button
            type="danger"
            size="small"
            @click="deleteUserInfo"
            icon="el-icon-delete"
          >
            {{ $t('common.delete') }}
          </el-button>
        </el-form-item>
        <el-form-item v-show="setbatchFlag">
          <el-button
            type="primary"
            size="small"
            @click="editPwd"
            style="background: #1890ff"
            icon="el-icon-unlock"
            >{{ $t('common.changepassWord') }}
          </el-button>
        </el-form-item>
      </el-form>
      <div class="btn_box">
        <el-button>添加</el-button>
        <el-button>修改</el-button>
        <el-button>导出</el-button>
        <el-button>删除</el-button>
      </div>
    </div>
    <div class="table_box">
      <el-table :data="tableData" style="width: 100%">
      <el-table
        :data="tableData"
        border
        style="width: 100%"
        height="99%"
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55" />
        <el-table-column prop="user" label="用户名" />
        <el-table-column prop="name" label="姓名" />
        <el-table-column prop="email" label="邮箱" />
        <el-table-column prop="phone" label="联系方式" />
        <el-table-column fixed="right" prop="permission" label="权限" />
        <!-- <el-table-column label="操作" width="280">
          <template #default>
        <el-table-column
          align="center"
          type="index"
          :label="$t('common.index')"
          width="70px"
          fixed
        />
            <el-button type="primary" size="small">删除</el-button>
        <el-table-column
          align="center"
          prop="uname"
          width="150px"
          :label="$t('userManage.userInfoObj.uname')"
          fixed
        />
        <el-table-column
          align="center"
          prop="uid"
          width="150px"
          :label="$t('userManage.userInfoObj.uid')"
        />
        <el-table-column
          align="center"
          prop="sex"
          width="80px"
          :label="$t('userManage.userInfoObj.sex')"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.sex == 1"> 男 </span>
            <span v-else-if="scope.row.sex == 0">女</span>
            <span v-else>未知</span>
          </template>
        </el-table-column> -->
        </el-table-column>
        <el-table-column
          align="center"
          prop="natives"
          width="100px"
          :label="$t('userManage.userInfoObj.natives')"
        />
        <el-table-column
          align="center"
          prop="depName"
          width="200px"
          :label="$t('userManage.userInfoObj.depName')"
        />
        <el-table-column
          align="center"
          prop="idcard"
          width="200px"
          :label="$t('userManage.userInfoObj.idcard')"
        /><el-table-column
          align="center"
          prop="job"
          width="200px"
          :label="$t('userManage.userInfoObj.job')"
        />
        <el-table-column
          align="center"
          prop="edu"
          width="200px"
          :label="$t('userManage.userInfoObj.edu')"
        />
        <el-table-column
          align="center"
          prop="addr"
          width="200px"
          :label="$t('userManage.userInfoObj.addr')"
        />
        <el-table-column
          align="center"
          prop="email"
          width="200px"
          :label="$t('userManage.userInfoObj.email')"
        />
        <el-table-column
          align="center"
          prop="contact"
          width="200px"
          :label="$t('userManage.userInfoObj.contact')"
        />
        <el-table-column
          align="center"
          prop="largeModuleName"
          :label="$t('userManage.userInfoObj.status')"
        >
          <template slot-scope="scope">
            <el-tag v-if="scope.row.status == 0" type="success">正常</el-tag>
            <el-tag v-if="scope.row.status == 1" type="info">禁用</el-tag>
            <el-tag v-if="scope.row.status == 2" type="warning">删除</el-tag>
            <el-tag v-if="scope.row.status == 3">申请</el-tag>
            <el-tag v-if="scope.row.status == 4" type="danger">拒批</el-tag>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          prop="bak"
          width="200px"
          :label="$t('userManage.userInfoObj.bak')"
        />
        <el-table-column
          :label="$t('common.operate')"
          width="80px"
          fixed="right"
          v-if="menuStatus.update"
        >
          <template slot-scope="scope">
            <!-- <el-button type="primary" size="small">修改</el-button> -->
            <el-button
              type="warning"
              @click="editInfo(scope.row)"
              size="mini"
              >{{ $t('common.edit') }}</el-button
            >
          </template>
        </el-table-column>
      </el-table>
      <div style="margin-top: 40px" class="pagination_box">
      <div style="margin-top: 25px" class="pagination_box">
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="currentPage4"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="10"
          :current-page="currentPage"
          :page-sizes="[1, 2, 5, 10]"
          :page-size="pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="5"
          :total="count"
        >
        </el-pagination>
      </div>
    </div>
    <el-dialog
      width="910px"
      top="15vh"
      :title="behavior"
      :visible.sync="dialogFormVisible"
      :before-close="handleClose"
    >
      <el-form
        :model="editForm"
        ref="editForm"
        :rules="rules"
        style="display: flex"
      >
        <div>
          <el-form-item
            prop="uid"
            :label="$t('userManage.userInfoObj.uid')"
            v-if="behavior == '新增用户'"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.uid" autocomplete="off"></el-input>
            <div class="isNewUser" v-if="isNewUser">
              <img src="../../assets/img/success.png" />
              {{ $t('userManage.userInfoObj.uid') }}
            </div>
          </el-form-item>
          <el-form-item
            v-if="behavior == '修改信息'"
            :label="$t('userManage.userInfoObj.uid')"
            :label-width="formLabelWidth"
          >
            <el-input
              v-model="editForm.uid"
              autocomplete="off"
              disabled
            ></el-input>
          </el-form-item>
          <el-form-item
            v-if="behavior == '修改信息'"
            prop="oldPwd"
            :label="$t('userManage.userInfoObj.origpassword')"
            :label-width="formLabelWidth"
          >
            <el-input
              type="password"
              v-model="editForm.oldPwd"
              autocomplete="off"
              show-password
            ></el-input>
          </el-form-item>
          <el-form-item
            prop="pwd"
            :label="$t('userManage.userInfoObj.pwd')"
            :label-width="formLabelWidth"
          >
            <el-input
              type="password"
              v-model="editForm.pwd"
              autocomplete="off"
              show-password
            ></el-input>
          </el-form-item>
          <el-form-item
            prop="checkPass"
            :label="$t('userManage.userInfoObj.confirmPassword')"
            :label-width="formLabelWidth"
          >
            <el-input
              type="password"
              show-password
              v-model="editForm.checkPass"
              autocomplete="off"
            ></el-input>
          </el-form-item>
          <el-form-item
            prop="uname"
            :label="$t('userManage.userInfoObj.username')"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.uname" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item
            prop="sex"
            :label="$t('userManage.userInfoObj.sex')"
            :label-width="formLabelWidth"
          >
            <el-select
              v-model="editForm.sex"
              clearable
              :placeholder="$t('userManage.userInfoObj.pleaseSelect')"
            >
              <el-option
                v-for="item in sexOpt"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item
            prop="natives"
            :label="$t('userManage.userInfoObj.nativePlace')"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.natives" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item
            prop="depid"
            :label-width="formLabelWidth"
            :label="$t('userManage.userInfoObj.depName')"
          >
            <el-cascader
              v-model="editForm.depid"
              :options="treeOptions"
              filterable
              clearable
              @change="editChange"
              :show-all-levels="false"
              :props="{
                label: 'name',
                value: 'id',
                children: 'children',
                checkStrictly: true,
                emitPath: false,
              }"
            >
            </el-cascader>
          </el-form-item>
          <el-form-item
            prop="idcard"
            :label="$t('userManage.userInfoObj.identityCard')"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.idcard" autocomplete="off"></el-input>
          </el-form-item>
        </div>
        <div style="width: 45%">
          <el-form-item
            prop="job"
            :label="$t('userManage.userInfoObj.job')"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.job" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item
            prop="edu"
            :label="$t('userManage.userInfoObj.edu')"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.edu" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item
            prop="addr"
            :label="$t('userManage.userInfoObj.addr')"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.addr" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item
            prop="email"
            :label="$t('userManage.userInfoObj.email')"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.email" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item
            prop="contact"
            :label="$t('userManage.userInfoObj.contact')"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.contact" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item
            prop="status"
            :label="$t('userManage.userInfoObj.status')"
            :label-width="formLabelWidth"
          >
            <el-select
              v-model="editForm.status"
              clearable
              :placeholder="$t('userManage.userInfoObj.pleaseSelect')"
            >
              <el-option
                v-for="item in statusOpt"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item
            prop="bak"
            :label="$t('userManage.userInfoObj.remarks')"
            :label-width="formLabelWidth"
          >
            <el-input v-model="editForm.bak" autocomplete="off"></el-input>
          </el-form-item>
        </div>
      </el-form>
      <div v-if="behavior == '修改信息'" slot="footer" class="dialog-footer">
        <el-button size="medium" @click="cancelEdit()">{{
          $t('common.reset')
        }}</el-button>
        <el-button
          size="medium"
          type="primary"
          @click="sendEdit('editForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
          >{{ $t('common.submit') }}</el-button
        >
      </div>
      <div v-else slot="footer" class="dialog-footer">
        <el-button size="medium" @click="cancelAdd('editForm')">{{
          $t('common.reset')
        }}</el-button>
        <el-button
          size="medium"
          type="primary"
          @click="sendAdd('editForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
          >{{ $t('common.submit') }}</el-button
        >
      </div>
    </el-dialog>
    <el-dialog
      width="520px"
      top="30vh"
      title="批量重置密码"
      :visible.sync="resetPwd"
      :before-close="handleClose"
    >
      <el-form :model="pwdForm" ref="pwdForm" :rules="rules">
        <el-form-item prop="adminPwd" label="管理员密码" label-width="140px">
          <el-input
            type="password"
            v-model="pwdForm.adminPwd"
            autocomplete="off"
            show-password
          ></el-input>
        </el-form-item>
        <el-form-item prop="newPwd" label="新密码" label-width="140px">
          <el-input
            type="password"
            v-model="pwdForm.newPwd"
            autocomplete="off"
            show-password
          ></el-input>
        </el-form-item>
        <el-form-item prop="checkPwd" label="确认密码" label-width="140px">
          <el-input
            type="password"
            v-model="pwdForm.checkPwd"
            autocomplete="off"
            show-password
          ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button size="medium" @click="cancelReset - 'pwdForm'"
          >重置</el-button
        >
        <el-button
          size="medium"
          type="primary"
          @click="sendReset('pwdForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
          >提交</el-button
        >
      </div>
    </el-dialog>
  </div>
</template>
<script>
var encrypt = new JSEncrypt();
import { mapActions } from 'vuex';
import MyBread from '../../components/MyBread.vue';
import {
  queryDepTree,
  queryPageUser,
  insertUser,
  deleteUser,
  updateUser,
  updatePwd,
  selectByUserid,
  userSelectForIsAdmin,
} from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
    MyBread,
  },
  data() {
    let validName = (rule, value, callback) => {
      if (value === '' || value === null || value === undefined) {
        return callback(new Error('请输入密码'));
      } else {
        callback();
      }
    };
    let validatePass = (rule, value, callback) => {
      if (value === '' || value === undefined) {
        callback(new Error('请再次输入密码'));
      } else if (value !== this.editForm.pwd) {
        callback(new Error('两次输入密码不一致!'));
      } else {
        callback();
      }
    };
    let resetPass = (rule, value, callback) => {
      if (value === '' || value === undefined) {
        callback(new Error('请再次输入密码'));
      } else if (value !== this.pwdForm.newPwd) {
        callback(new Error('两次输入密码不一致!'));
      } else {
        callback();
      }
    };
    return {
      currentPage4: 1,
      form: {
        name: '',
        region: '',
        jurisdiction: '',
      setbatchFlag: false,
      menuStatus: {
        delete: false,
        insert: false,
        update: false,
      },
      tableData: [
      isNewUser: false,
      currentPage: 1,
      pageSize: 10,
      pageIndex: 1,
      defaultProps: {
        children: 'children',
        label: 'name',
      },
      queryForm: {
        uname: '',
        depid: null,
        depName: '',
      },
      tableData: [],
      fullscreenLoading: false,
      count: 0,
      formLabelWidth: '100px',
      dialogFormVisible: false,
      initialForm: '',
      behavior: '',
      multipleSelection: [],
      resetPwd: false,
      editForm: {
        uid: '',
        uname: '',
        oldPwd: '',
        pwd: '',
        checkPass: '',
        sex: null,
        natives: '',
        depid: null,
        idcard: '',
        job: '',
        edu: '',
        addr: '',
        email: '',
        contact: '',
        status: null,
        bak: '',
        salt: '',
      },
      pwdForm: {
        adminPwd: '',
        newPwd: '',
        checkPwd: '',
        ids: [],
      },
      treeOptions: [],
      statusOpt: [
        {
          name: '张三',
          user: 'admin',
          email: 'admin@daa.com',
          phone: '182111199328',
          permission: '管理员',
          value: 0,
          label: '正常',
        },
        {
          name: '李四',
          user: 'admin',
          email: 'admin@daa.com',
          phone: '182111199328',
          permission: '管理员',
          value: 1,
          label: '禁用',
        },
        {
          name: '王五',
          user: 'admin',
          email: 'admin@daa.com',
          phone: '182111199328',
          permission: '管理员',
          value: 2,
          label: '删除',
        },
        {
          name: '赵氏',
          user: 'admin',
          email: 'admin@daa.com',
          phone: '182111199328',
          permission: '管理员',
          value: 3,
          label: '申请',
        },
        {
          name: '张三',
          user: 'admin',
          email: 'admin@daa.com',
          phone: '182111199328',
          permission: '管理员',
          value: 4,
          label: '拒批',
        },
      ],
      depList: [],
      sexOpt: [
        {
          value: 0,
          label: '女',
        },
        {
          value: 1,
          label: '男',
        },
        {
          value: -1,
          label: '未知',
        },
      ],
      rules: {
        uid: [
          { required: true, validator: validName, trigger: 'blur' },
          {
            trigger: 'blur',
            validator: (rule, value, callback) => {
              var reg = new RegExp(/^[a-zA-Z0-9_]{0,15}$/); //字符串正则表达式 4到14位(字母,数字,下划线,减号)
              if (!reg.test(value)) {
                callback(
                  new Error('账号必须由字母,数字或下划线,长度不得超过16位')
                );
              } else {
                selectByUserid({ uid: value }).then((res) => {
                  if (res.result != null) {
                    this.isNewUser = false;
                    callback(new Error('账号已存在'));
                  } else {
                    this.isNewUser = true;
                    callback();
                  }
                });
              }
            },
          },
        ],
        pwd: [
          {
            required: true,
            message: '请输入密码',
            transform: (value) => value,
            trigger: 'blur',
          },
          {
            type: 'string',
            message: '请输入不包含空格的字符',
            trigger: 'blur',
            transform(value) {
              if (value && value.indexOf(' ') === -1) {
                return value;
              } else {
                return false;
              }
            },
          },
          {
            trigger: 'blur',
            validator: (rule, value, callback) => {
              var regex = new RegExp('');
              var passwordreg =
                /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{8,20}$/;
              if (!passwordreg.test(value)) {
                callback(
                  new Error('密码必须由数字、字母、特殊字符组合,请输入8-20位')
                );
              } else {
                callback();
              }
            },
          },
        ],
        checkPass: [
          { required: true, validator: validatePass, trigger: 'blur' },
        ],
        adminPwd: [{ validator: validName, trigger: 'blur' }],
        newPwd: [
          {
            message: '请输入密码',
            transform: (value) => value,
            trigger: 'blur',
          },
          {
            type: 'string',
            message: '请输入不包含空格的字符',
            trigger: 'blur',
            transform(value) {
              if (value && value.indexOf(' ') === -1) {
                return value;
              } else {
                return false;
              }
            },
          },
          {
            trigger: 'blur',
            validator: (rule, value, callback) => {
              var regex = new RegExp('');
              var passwordreg =
                /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{8,20}$/;
              if (!passwordreg.test(value)) {
                callback(
                  new Error('密码必须由数字、字母、特殊字符组合,请输入8-20位')
                );
              } else {
                callback();
              }
            },
          },
        ],
        checkPwd: [{ validator: resetPass, trigger: 'blur' }],
      },
    };
  },
  methods: {
    ...mapActions(['login', 'getpublickey']),
    getUserInfo() {
      queryDepTree()
        .then((res) => {
          if (res.code == 200) {
            this.depList = this.treeData(res.result);
            this.treeOptions = this.treeData(res.result);
          } else {
            this.$notify.error({
              title: res.code,
              message: res.result,
            });
          }
        })
        .catch((res) => {});
      queryPageUser({
        pageIndex: 1,
        pageSize: 10,
      })
        .then((res) => {
          if (res.code == 200) {
            this.tableData = res.result;
            this.count = res.count;
          } else {
            this.$notify.error({
              title: res.code,
              message: res.result,
            });
          }
        })
        .catch((res) => {});
    },
    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; // 返回一级菜单
      });
    },
    //查询选择单位
    handleChange(value) {
      this.queryForm.depid = value;
    },
    //搜索按钮
    queryInfo() {
      let searchData = {
        uname: this.queryForm.uname.trim(),
        depid: this.queryForm.depid,
        pageIndex: this.pageIndex,
        pageSize: this.pageSize,
      };
      queryPageUser(searchData).then((res) => {
        if (res.code == 200) {
          this.tableData = res.result;
          this.count = res.count;
        } else {
          console.log('查询接口报错');
          this.$notify.error({
            title: res.code,
            message: res.result,
          });
        }
      });
    },
    //重置按钮
    resetInfo(formName) {
      this.$refs[formName].resetFields();
    },
    //新增按钮
    showAddDialog() {
      this.behavior = '新增用户';
      this.editForm = {};
      this.dialogFormVisible = true;
    },
    cancelAdd(formName) {
      this.editForm = {};
      this.isNewUser = false;
      this.$refs[formName].resetFields();
    },
    sendAdd(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          // console.log(this.$store.state.key);
          encrypt.setPublicKey(this.$store.state.key);
          this.editForm.uid = encrypt.encrypt(this.editForm.uid);
          this.editForm.pwd = encrypt.encrypt(this.editForm.pwd);
          this.fullscreenLoading = true;
          delete this.editForm.checkPass;
          delete this.editForm.oldPwd;
          insertUser(this.editForm)
            .then((res) => {
              setTimeout(() => {
                this.fullscreenLoading = false;
                if (res.code == 200) {
                  this.getUserInfo();
                  this.$message({
                    message: '添加成功',
                    type: 'success',
                  });
                  this.editForm = {};
                  this.dialogFormVisible = false;
                }
              }, 500);
            })
            .catch((res) => {
              alert('修改失败,请重试!');
              this.fullscreenLoading = false;
            });
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    },
    //多选
    handleSelectionChange(val) {
      this.multipleSelection = val;
    },
    //删除按钮
    deleteUserInfo() {
      this.$confirm('此操作将删除已选中的用户, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(() => {
          var std = [];
          for (var i in this.multipleSelection) {
            std.push(this.multipleSelection[i].id);
          }
          deleteUser({ ids: std.toString() })
            .then((res) => {
              if (res.code == 200) {
                this.$message({
                  type: 'success',
                  message: '删除成功!',
                });
                this.multipleSelection = [];
                this.getUserInfo();
              } else {
                this.$message.error('删除失败');
              }
            })
            .catch(() => {
              this.$message.error('删除失败');
              this.multipleSelection = [];
            });
        })
        .catch(() => {
          this.$message('已取消删除');
        });
    },
    //重置密码
    editPwd() {
      var std = [];
      for (var i in this.multipleSelection) {
        std.push(this.multipleSelection[i].id);
      }
      if (std.length == 0) {
        alert('请先选择用户');
        return;
      }
      this.pwdForm.ids = std;
      this.resetPwd = true;
    },
    cancelReset(formName) {
      this.$refs[formName].resetFields();
      this.pwdForm.ids = [];
    },
    sendReset(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          encrypt.setPublicKey(this.$store.state.key);
          var data = {
            adminPwd: encrypt.encrypt(this.pwdForm.adminPwd),
            newPwd: encrypt.encrypt(this.pwdForm.newPwd),
            ids: this.pwdForm.ids,
          };
          this.fullscreenLoading = true;
          updatePwd(data)
            .then((res) => {
              setTimeout(() => {
                this.fullscreenLoading = false;
                if (res.code == 200) {
                  this.getUserInfo();
                  this.$message({
                    message: '修改成功',
                    type: 'success',
                  });
                  this.pwdForm = {
                    adminPwd: '',
                    newPwd: '',
                    checkPwd: '',
                    ids: [],
                  };
                  this.multipleSelection = [];
                  this.resetPwd = false;
                }
              }, 500);
            })
            .catch((res) => {
              alert('修改失败,请重试!');
              this.fullscreenLoading = false;
            });
        } else {
          return false;
        }
      });
    },
    //编辑按钮
    editInfo(row) {
      delete row.updateTime;
      delete row.updateUser;
      row.pwd = '';
      this.initialForm = JSON.stringify(row);
      this.behavior = '修改信息';
      this.editForm = JSON.parse(JSON.stringify(row));
      this.dialogFormVisible = true;
    },
    //编辑选择单位
    editChange(value) {
      this.editForm.depid = value;
    },
    //关闭弹出框
    handleClose(done) {
      this.$confirm('确认关闭?')
        .then((_) => {
          this.editForm = {
            uid: '',
            uname: '',
            oldPwd: '',
            pwd: '',
            checkPass: '',
            sex: null,
            natives: '',
            depid: null,
            idcard: '',
            job: '',
            edu: '',
            addr: '',
            email: '',
            contact: '',
            status: null,
            bak: '',
            salt: '',
          };
          this.pwdForm = {
            adminPwd: '',
            newPwd: '',
            checkPwd: '',
            ids: [],
          };
          done();
        })
        .catch((_) => {});
    },
    //提交编辑
    sendEdit(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          encrypt.setPublicKey(this.$store.state.key);
          this.editForm.uid = encrypt.encrypt(this.editForm.uid);
          this.editForm.salt = encrypt.encrypt(this.editForm.pwd);
          this.editForm.pwd = encrypt.encrypt(this.editForm.oldPwd);
          this.fullscreenLoading = true;
          delete this.editForm.checkPass;
          delete this.editForm.oldPwd;
          updateUser(this.editForm)
            .then((res) => {
              setTimeout(() => {
                this.fullscreenLoading = false;
                if (res.code == 200) {
                  this.getUserInfo();
                  this.$message({
                    message: '修改成功',
                    type: 'success',
                  });
                  this.editForm = {};
                  this.dialogFormVisible = false;
                }
              }, 500);
            })
            .catch((res) => {
              alert('修改失败,请重试!');
              this.fullscreenLoading = false;
            });
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    },
    cancelEdit() {
      this.$nextTick(() => {
        this.editForm = JSON.parse(this.initialForm);
      });
    },
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`);
      // console.log(`每页 ${val} 条`);
      this.pageSize = val;
      this.queryInfo();
    },
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`);
      // console.log(`当前页: ${val}`);
      this.pageIndex = val;
      this.currentPage = val;
      this.queryInfo();
    },
    onSubmit() {
      console.log('submit!');
    showPermsMenu(res) {
      switch (res.tag) {
        case '/delete':
          this.menuStatus.delete = true;
          break;
        case '/insert':
          this.menuStatus.insert = true;
          break;
        case '/update':
          this.menuStatus.update = true;
          break;
      }
    },
    resetForm() {},
    async getIsAdmin() {
      const data = await userSelectForIsAdmin();
      if (data.code != 200) {
        this.setbatchFlag = false;
        return;
      }
      this.setbatchFlag = data.result;
    },
  },
  created() {},
  mounted() {
    this.getIsAdmin();
    this.getUserInfo();
    this.getpublickey();
  },
  created() {
    var val = this.$store.state.currentPerms;
    var permsEntity = this.$store.state.permsEntity;
    for (var i = 0; i < permsEntity.length; i++) {
      if (permsEntity[i].perms == val) {
        this.showPermsMenu(permsEntity[i]);
      }
    }
  },
};
</script>
<style>
/deep/ .el-table__fixed-right {
  height: 100% !important;
}
</style>
<style lang="less" scoped>
//@import url(); 引入公共css类
.userManagement_box {
.userInfo_box {
  border-radius: 10px;
  height: 100%;
  box-sizing: border-box;
  .el-input {
    width: 300px;
  }
  .inquire {
    padding: 10px;
    position: relative;
    height: 110px;
    overflow: auto;
    padding: 8px;
    margin-top: 20px;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    margin-bottom: 20px;
    /deep/ .el-input__inner {
      background-color: transparent !important;
      border: 1px solid;
      color: white;
    }
    /deep/ .el-button {
      background: linear-gradient(180deg, #002992, #080472);
      border: 1px solid #000000;
      border-radius: 3px;
      color: white;
    }
    /deep/.el-form-item__label {
      color: white;
    .el-form-item {
      margin: 5px;
    }
  }
  .table_box {
    height: 470px;
    padding: 10px;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    /deep/.el-input__inner {
      background-color: transparent !important;
      border: 1px solid;
      color: white;
    }
    /deep/.el-pagination__total {
      color: white;
    }
    /deep/.el-pagination__jump {
      color: white;
    }
    /deep/.el-pager li.active {
      color: #1890ff;
    }
    /deep/.el-pager li {
      color: white;
      background: transparent;
    }
    /deep/.el-pager li {
      color: white;
    }
    /deep/.btn-prev {
      background: transparent;
    }
    /deep/.btn-next {
      background: transparent;
    }
    /*修改table 表体的背景颜色和文字颜色*/
    /deep/ .el-table {
      background-color: transparent;
@@ -226,7 +1166,7 @@
      .el-table__body-wrapper::-webkit-scrollbar {
        width: 5px;
        /*滚动条宽度*/
        height: 10px;
        height: 5px;
        /*滚动条高度*/
      }
      /*定义滚动条轨道 内阴影+圆角*/
@@ -244,6 +1184,79 @@
      }
    }
  }
  .el-dialog {
    .el-form-item {
      margin-bottom: 20px;
      // width: 48%;
      /deep/.el-form-item__error {
        width: 300px;
      }
      .isNewUser {
        display: inline-block;
        width: 75px;
        margin-left: 5px;
        img {
          width: 1em;
        }
      }
      .el-cascader,
      .el-select {
        width: 300px;
      }
    }
  }
  /deep/.el-form-item__label {
    color: white;
  }
  /deep/.el-input__inner {
    background-color: transparent !important;
    border: 1px solid;
    color: white;
  }
  /deep/ .el-dialog {
    background: #303030;
  }
  /deep/.el-range-editor.is-active,
  .el-range-editor.is-active:hover,
  .el-select .el-input.is-focus .el-input__inner {
    border: 1px solid;
  }
  /deep/.el-dialog__title {
    color: white;
  }
  /deep/ .el-dialog__body {
    padding: 10px 0 0 0;
  }
  .pagination_box {
    margin-top: 20px;
    /deep/.el-input__inner {
      background-color: transparent !important;
      border: 1px solid;
      color: white;
    }
    /deep/.el-pagination__total {
      color: white;
    }
    /deep/.el-pagination__jump {
      color: white;
    }
    /deep/.el-pager li.active {
      color: #1890ff;
    }
    /deep/.el-pager li {
      color: white;
      background: transparent;
    }
    /deep/.el-pager li {
      color: white;
    }
    /deep/.btn-prev {
      background: transparent;
    }
    /deep/.btn-next {
      background: transparent;
    }
  }
}
</style>
<style>
src/views/userManage/authorityManage.vue
@@ -2,7 +2,7 @@
  <div class="power_box">
    <My-bread
      :list="[
        `${$t('userManage.userManage')}`,
  `${$t('operatManage.operatManage')}`,
        `${$t('userManage.authorityManage')}`,
      ]"
    ></My-bread>
@@ -634,6 +634,25 @@
      background: #ededed;
    }
  }
    /deep/ .el-input__inner {
    background-color: transparent !important;
    border: 1px solid;
    color: white;
  }
  /deep/ .el-dialog {
    background: #303030;
  }
  /deep/.el-range-editor.is-active,
  .el-range-editor.is-active:hover,
  .el-select .el-input.is-focus .el-input__inner {
    border: 1px solid;
  }
  /deep/.el-dialog__title {
    color: white;
  }
  /deep/.el-form-item__label {
    color: white;
  }
}
</style>
<style>
src/views/userManage/orgManage.vue
@@ -1,6 +1,11 @@
<template>
  <div class="menuSettings_box">
    <My-bread :list="['系统管理', '单位管理']"></My-bread>
    <My-bread
      :list="[
        `${$t('operatManage.operatManage')}`,
        `${$t('operatManage.organizationManage')}`,
      ]"
    ></My-bread>
    <el-divider />
    <div class="left_Tree">
      <el-card class="el-card-define">
@@ -45,58 +50,93 @@
    <div class="right_menu">
      <el-card class="el-card-define">
        <el-breadcrumb separator="/">
          <el-breadcrumb-item :to="{ path: '/' }">详细信息</el-breadcrumb-item>
          <el-breadcrumb-item :to="{ path: '/' }">{{
            $t('dataManage.dictionaryManageObj.particulars')
          }}</el-breadcrumb-item>
        </el-breadcrumb>
        <el-divider />
        <div class="form_box">
          <el-form :model="itemdetail" ref="itemdetail" :rules="rules">
            <el-form-item label="名称" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.name')"
              :label-width="formLabelWidth"
            >
              <el-input v-model="itemdetail.name" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="简称" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.abbreviation')"
              :label-width="formLabelWidth"
            >
              <el-input
                v-model="itemdetail.sname"
                autocomplete="off"
              ></el-input>
            </el-form-item>
            <el-form-item label="编码" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.unitCode')"
              :label-width="formLabelWidth"
            >
              <el-input v-model="itemdetail.code" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="机构代码" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.organizationCode')"
              :label-width="formLabelWidth"
            >
              <el-input
                v-model="itemdetail.uncode"
                autocomplete="off"
              ></el-input>
            </el-form-item>
            <el-form-item label="地址" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.cmpanyAddress')"
              :label-width="formLabelWidth"
            >
              <el-input v-model="itemdetail.addr" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="联系方式" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.continformation')"
              :label-width="formLabelWidth"
            >
              <el-input
                v-model="itemdetail.contact"
                autocomplete="off"
              ></el-input>
            </el-form-item>
            <el-form-item label="传真" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.fax')"
              :label-width="formLabelWidth"
            >
              <el-input v-model="itemdetail.fax" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="电子邮件" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.EMail')"
              :label-width="formLabelWidth"
            >
              <el-input
                v-model="itemdetail.email"
                autocomplete="off"
              ></el-input>
            </el-form-item>
            <el-form-item label="邮政编码" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.postalCode')"
              :label-width="formLabelWidth"
            >
              <el-input v-model="itemdetail.post" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="网站地址" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.WebsiteAddress')"
              :label-width="formLabelWidth"
            >
              <el-input
                v-model="itemdetail.website"
                autocomplete="off"
              ></el-input>
            </el-form-item>
            <el-form-item label="备注" :label-width="formLabelWidth">
            <el-form-item
              :label="$t('userManage.orgManageObj.remarks')"
              :label-width="formLabelWidth"
            >
              <el-input v-model="itemdetail.bak" autocomplete="off"></el-input>
            </el-form-item>
            <div class="btnBox" v-if="menuStatus.update">
@@ -104,13 +144,13 @@
                class="el-button-sure"
                type="primary"
                @click="updDep('itemdetail')"
                >保存</el-button
                >{{ $t('common.submit') }}</el-button
              >
              <el-button
                class="el-button-sure"
                type="primary"
                @click="reset('itemdetail')"
                >取消</el-button
                >{{ $t('common.cancel') }}</el-button
              >
            </div>
          </el-form>
@@ -120,54 +160,88 @@
    <el-dialog
      width="30%"
      top="5vh"
      title="新增子目录"
      :title="$t('common.append')"
      :visible.sync="dialogFormVisible"
    >
      <el-form :model="ruleForm" ref="ruleForm" :rules="rules">
        <el-form-item prop="name" label="名称" :label-width="formLabelWidth">
        <el-form-item
          prop="name"
          :label="$t('userManage.orgManageObj.name')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.name" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="简称" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.abbreviation')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.sname" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="编码" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.unitCode')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.code" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="机构代码" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.organizationCode')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.uncode" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="地址" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.cmpanyAddress')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.addr" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="联系方式" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.continformation')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.contact" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="传真" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.fax')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.fax" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="电子邮件" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.EMail')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.email" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="邮政编码" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.postalCode')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.post" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="网站地址" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.WebsiteAddress')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.website" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="备注" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('userManage.orgManageObj.remarks')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="ruleForm.bak" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button class="el-button-sure" @click="resetForm('ruleForm')"
          >取消</el-button
        >
        <el-button class="el-button-sure" @click="resetForm('ruleForm')">{{
          $t('common.cancel')
        }}</el-button>
        <el-button
          class="el-button-remove"
          type="primary"
          @click="submitForm('ruleForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
          >提交</el-button
          >{{ $t('common.submit') }}</el-button
        >
      </div>
    </el-dialog>
src/views/userManage/resourceManage.vue
@@ -2,7 +2,7 @@
  <div class="power_box">
    <My-bread
      :list="[
        `${$t('userManage.userManage')}`,
       `${$t('operatManage.operatManage')}`,
        `${$t('userManage.resManage')}`,
      ]"
    ></My-bread>
@@ -982,6 +982,28 @@
      background: #ededed;
    }
  }
   /deep/.el-form-item__label {
    color: white;
  }
  /deep/.el-input__inner {
    background-color: transparent !important;
    border: 1px solid;
    color: white;
  }
  /deep/ .el-dialog {
    background: #303030;
  }
  /deep/.el-range-editor.is-active,
  .el-range-editor.is-active:hover,
  .el-select .el-input.is-focus .el-input__inner {
    border: 1px solid;
  }
  /deep/.el-dialog__title {
    color: white;
  }
  /deep/ .el-dialog__body {
    padding: 10px 0 0 0;
  }
}
</style>
<style  >
src/views/userManage/roleManage.vue
@@ -2,7 +2,7 @@
  <div class="logLog_box">
    <My-bread
      :list="[
        `${$t('userManage.userManage')}`,
        `${$t('operatManage.operatManage')}`,
        `${$t('userManage.roleManage')}`,
      ]"
    ></My-bread>
@@ -638,9 +638,9 @@
    left: 37%;
    width: 400px;
    height: 600px;
    background: white;
    background: #303030;
    border: 1px solid #000;
    color: white;
    color: black;
    .treeBox {
      height: 550px;
      overflow: auto;
@@ -823,5 +823,33 @@
      background: #ededed;
    }
  }
  /deep/.el-form-item__label {
    color: white;
  }
  /deep/.el-input__inner {
    background-color: transparent !important;
    border: 1px solid;
    color: white;
  }
  /deep/ .el-dialog {
    background: #303030;
  }
  /deep/.el-range-editor.is-active,
  .el-range-editor.is-active:hover,
  .el-select .el-input.is-focus .el-input__inner {
    border: 1px solid;
  }
  /deep/.el-dialog__title {
    color: white;
  }
  /deep/ .el-dialog__body {
    padding: 10px 0 0 0;
  }
  /deep/ .el-radio {
    color: white;
  }
  /deep/.el-radio__input.is-checked + .el-radio__label {
    color: #1890ff;
  }
}
</style>