管道基础大数据平台系统开发-【前端】-新系統界面
surprise
2023-12-11 9d5fc70530330177bd2a67e568d67b8883694685
src/views/userManage/roleManage.vue
@@ -1,53 +1,64 @@
<template>
  <div class="logLog_box">
    <My-bread :list="[
        `${$t('operatManage.operatManage')}`,
        `${$t('userManage.roleManage')}`,
      ]"></My-bread>
      `${$t('operatManage.operatManage')}`,
      `${$t('userManage.roleManage')}`,
    ]"></My-bread>
    <el-divider />
    <div class="inquire subpage_Div">
      <el-form
        ref="ruleForm"
        :model="roleForm"
        :inline="true"
      >
        <el-form-item
          :label="$t('userManage.RM.roleName')"
          prop="username"
        >
          <el-input v-model="roleForm.username" style="width:200px"/>
        </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.ownedSystem')"
          prop="ownedSystem"
        >
          <el-select
            :popper-append-to-body="false"
            v-model="roleForm.depValue"
            placeholder="请选择"
            style="width:200px"
          >
            <el-option
              :value="roleForm.depid"
              :label="roleForm.depValue"
              style=" height:auto"
            >
              <el-tree
                ref="tree"
                :data="depList"
                node-key="id"
                :props="props"
                @node-click="handleRouleDepList"
              />
            </el-option>
          </el-select>
          <!-- <el-input
    <div class="inquire subpage_Div" ref="container">
      <el-form ref="ruleForm" :model="roleForm" :inline="true">
        <div class="flex_box">
          <div style="margin-right: auto">
            <el-form-item :label="$t('userManage.RM.ownedSystem')" prop="ownedSystem">
              <el-select :popper-append-to-body="false" size="small" v-model="roleForm.depValue"
                :placeholder="$t('userManage.RM.ownedSystemHolder')" style="width: 200px" ref="treeSelect">
                <el-option :value="roleForm.depid" :label="roleForm.depValue" style="height: auto">
                  <el-tree ref="tree" :data="depList" node-key="id" :props="props" @node-click="handleRouleDepList" />
                </el-option>
              </el-select>
              <!-- <el-input
            v-model="roleForm.value"
            :disabled="true"
            :placeholder="$t('common.pleaseInput')"
          /> -->
            </el-form-item>
            <el-form-item :label="$t('userManage.RM.roleName')" prop="username">
              <el-input v-model="roleForm.username" :placeholder="$t('userManage.RM.roleNameHolder')" size="small"
                style="width: 200px">
                <i slot="suffix" class="el-icon-search" @click="onSubmit"></i>
              </el-input>
            </el-form-item>
          </div>
          <div>
            <!--            <el-form-item>-->
            <!--              <el-button-->
            <!--                size="small"-->
            <!--                type="primary"-->
            <!--                @click="onSubmit('ruleForm')"-->
            <!--              ><i class="el-icon-search"></i> &nbsp;{{-->
            <!--                  $t("userManage.RM.query")-->
            <!--                }}</el-button>-->
            <!--            </el-form-item>-->
            <el-form-item>
              <el-button type="success" size="small" @click="setInsertFormdialog" v-if="menuStatus.insert"><i
                  class="el-icon-circle-plus-outline"></i> &nbsp;{{
                    $t("userManage.RM.add")
                  }}</el-button>
            </el-form-item>
            <el-form-item>
              <el-button type="danger" size="small" @click="handleDelete()" v-if="menuStatus.delete"><i
                  class="el-icon-delete"></i>&nbsp;{{
                    $t("common.delete")
                  }}</el-button>
            </el-form-item>
            <el-form-item>
              <el-button type="info" size="small" @click="resetForm('ruleForm')"><i class="el-icon-delete"></i>&nbsp;{{
                $t("userManage.RM.reset")
              }}</el-button>
            </el-form-item>
          </div>
        </div>
        </el-form-item>
        <!-- <el-form-item>
          <el-button
            size="small"
@@ -93,95 +104,26 @@
              $t('common.delete')
            }}</el-button>
        </el-form-item> -->
        <el-form-item style="float:right">
          <el-button
            type="info"
            size="small"
            @click="resetForm('ruleForm')"
          ><i class="el-icon-delete"></i>&nbsp;{{
              $t('userManage.RM.reset')
            }}</el-button>
        </el-form-item>
        <el-form-item style="float:right">
          <el-button
            size="small"
            type="primary"
            @click="onSubmit('ruleForm')"
          ><i class="el-icon-search"></i> &nbsp;{{
              $t('userManage.RM.query')
            }}</el-button>
        </el-form-item>
        <el-form-item style="float:right">
          <el-button
            type="danger"
            size="small"
            @click="handleDelete()"
            v-if="menuStatus.delete"
          ><i class="el-icon-delete"></i>&nbsp;{{
              $t('common.delete')
            }}</el-button>
        </el-form-item>
        <el-form-item style="float:right">
          <el-button
            type="success"
            size="small"
            @click="setInsertFormdialog "
            v-if="menuStatus.insert"
          ><i class="el-icon-circle-plus-outline"></i> &nbsp;{{
              $t('userManage.RM.add')
            }}</el-button>
        </el-form-item>
      </el-form>
    </div>
    <div class="table_box subpage_Div">
      <el-table
        :data="tableData"
        style="width: 100%"
        height="85%"
        @selection-change="handleSelectionChange"
      >
        <el-table-column
          type="selection"
          width="55"
        />
        <el-table-column
          align="center"
          type="index"
          :label="$t('userManage.RM.index')"
          width="70px"
        />
        <el-table-column
          align="center"
          prop="id"
          v-if="false"
        />
        <el-table-column
          align="center"
          prop="name"
          :label="$t('userManage.RM.roleName')"
        />
    <div class="dividing-line"></div>
    <div class="table_box subpage_Div" :style="styleVar">
      <el-table :data="tableData" style="width: 100%" border height="calc(100% - 45px)"
        @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" />
        <el-table-column align="center" type="index" :label="$t('userManage.RM.index')" width="70px" />
        <el-table-column align="center" prop="id" v-if="false" />
        <el-table-column align="center" prop="name" :label="$t('userManage.RM.roleName')" />
        <el-table-column
          align="center"
          prop="depName"
          :label="$t('userManage.RM.ownedSystem')"
        />
        <el-table-column align="center" prop="depName" :label="$t('userManage.RM.ownedSystem')" />
        <el-table-column
          align="center"
          prop="isAdmin"
          :label="$t('userManage.RM.isAdmin')"
        >
          <template slot-scope="scope">
        <el-table-column align="center" prop="isAdmin" :label="$t('userManage.RM.isAdmin')" :formatter="formateIsAdmin">
          <!-- <template slot-scope="scope">
            <span v-if="scope.row.isAdmin == 1">是 </span>
            <span v-else-if="scope.row.isAdmin == 0">否</span>
          </template>
            <span v-else>否</span>
          </template> -->
        </el-table-column>
        <el-table-column
          align="center"
          prop="descr"
          :label="$t('userManage.RM.describe')"
        />
        <el-table-column align="center" prop="descr" :label="$t('userManage.RM.describe')" />
        <!-- <el-table-column
          align="center"
@@ -210,87 +152,42 @@
          prop="bak"
          :label="$t('userManage.RM.remarks')"
        /> -->
        <el-table-column
          fixed="right"
          :label="$t('common.operate')"
          width="200"
        >
        <el-table-column fixed="right" :label="$t('common.operate')" width="200">
          <template slot-scope="scope">
            <el-button
              v-if="menuStatus.update"
              type="warning"
              @click="handleEdit(scope.$index, scope.row)"
              size="small"
            >{{ $t('common.update') }}</el-button>
            <el-button
              @click="showDetail(scope.$index, scope.row)"
              size="small"
            >{{ $t('common.see') }}</el-button>
            <el-button type="primary" @click="showDetail(scope.$index, scope.row)" size="small" plain>{{ $t("common.see")
            }}</el-button>
            <el-button v-if="menuStatus.update" type="warning" @click="handleEdit(scope.$index, scope.row)" size="small"
              plain>{{ $t("common.update") }}</el-button>
          </template>
        </el-table-column>
      </el-table>
      <div
        style="margin-top: 25px"
        class="pagination_box"
      >
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="listData.pageIndex"
          :page-sizes="[10, 20, 50, 100]"
          :page-size="listData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="count"
        >
      <div style="margin-top: 10px" class="pagination_box">
        <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
          :current-page="listData.pageIndex" :page-sizes="[10, 20, 50, 100]" :page-size="listData.pageSize"
          layout="total, sizes, prev, pager, next, jumper" :total="count">
        </el-pagination>
      </div>
    </div>
    <el-dialog
      :title="$t('userManage.RM.insertRole')"
      top="15vh"
      width="50vh"
      style="overflow: hidden"
      :visible.sync="InsertFormdialog"
    >
      <el-form :model="insertform">
        <el-form-item
          :label="$t('userManage.RM.roleName')"
          :label-width="formLabelWidth"
        >
          <el-input
            style="width:95%"
            v-model="insertform.name"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.ownedSystem')"
          :label-width="formLabelWidth"
          :prop="insertform.depValue"
          :rules="[{ required: true, message: '不能为空' }]"
        >
          <el-select
            :popper-append-to-body="false"
            v-model="insertform.depValue"
            placeholder="请选择"
            style="width:95%"
          >
            <el-option
              :value="insertform.depid"
              :label="insertform.depValue"
              style=" height:auto"
            >
              <el-tree
                ref="tree"
                :data="depList"
                node-key="id"
                :props="props"
                @node-click="handleDepList"
              />
            </el-option>
          </el-select>
          <!-- <el-input
    <el-dialog :title="$t('userManage.RM.insertRole')" :before-close="handleClose" style="overflow: hidden"
      :visible.sync="InsertFormdialog">
      <div style="height: 500px; overflow: auto">
        <el-form :model="insertform" label-position="top">
          <el-form-item :label="$t('userManage.RM.roleName')" :label-width="formLabelWidth">
            <el-input style="width: 85%" v-model="insertform.name" autocomplete="off" :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo') +
              $t('userManage.RM.roleName')
              "></el-input>
          </el-form-item>
          <el-form-item :label="$t('userManage.RM.ownedSystem')" :label-width="formLabelWidth" :prop="insertform.depValue"
            :rules="[{ required: true, message: '不能为空' }]">
            <el-select :popper-append-to-body="false" v-model="insertform.depValue" :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetree') +
              $t('userManage.RM.ownedSystem')
              " style="width: 85%">
              <el-option :value="insertform.depid" :label="insertform.depValue" style="height: auto">
                <el-tree ref="tree" :data="depList" node-key="id" :props="props" @node-click="handleDepList" />
              </el-option>
            </el-select>
            <!-- <el-input
            v-model="insertform.depValue"
            :disabled="true"
            :placeholder="$t('common.pleaseInput')"
@@ -301,101 +198,59 @@
            style="margin-left:10px"
            @click="showDepTree(2)"
          >{{ $t('common.choose') }}</el-button> -->
        </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.describe')"
          :label-width="formLabelWidth"
        >
          <el-input
            style="width:95%"
            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"
        >
          <el-input
            style="width:95%"
            v-model="insertform.bak"
            autocomplete="off"
          ></el-input>
        </el-form-item>
      </el-form>
      <div
        slot="footer"
        class="dialog-footer"
      >
        <el-button
          size="small"
          @click="insertFromClose"
        >{{ $t('common.close') }}</el-button>
        <el-button
          type="primary"
          size="small"
          @click="insertFromData"
        >{{ $t('common.confirm') }}</el-button>
          </el-form-item>
          <el-form-item :label="$t('userManage.RM.describe')" :label-width="formLabelWidth">
            <el-input style="width: 85%" v-model="insertform.descr" autocomplete="off" :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo') +
              $t('userManage.RM.describe')
              "></el-input>
          </el-form-item>
          <el-form-item :label="$t('userManage.RM.isAdmin')" :label-width="formLabelWidth">
            <!-- <el-radio
              label="1"
            >是</el-radio>
            <el-radio
              v-model="insertform.isAdmin"
              label="0"
            >否</el-radio> -->
            <el-select style="width: 85%" v-model="insertform.isAdmin" :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetree') +
              $t('userManage.RM.isAdmin')
              ">
              <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item :label="$t('userManage.RM.remarks')" :label-width="formLabelWidth">
            <el-input style="width: 85%" v-model="insertform.bak" autocomplete="off" :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo') +
              $t('userManage.RM.remarks')
              "></el-input>
          </el-form-item>
        </el-form>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button size="small" @click="insertFromClose">{{
          $t("common.close")
        }}</el-button>
        <el-button type="primary" size="small" @click="insertFromData">{{
          $t("common.confirm")
        }}</el-button>
      </div>
    </el-dialog>
    <el-dialog
      :title="$t('userManage.RM.updateRole')"
      top="15vh"
      width="50vh"
      style="overflow: hidden"
      :visible.sync="UpdateFormdialog"
    >
      <el-form :model="updateform">
        <el-form-item
          :label="$t('userManage.RM.roleName')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="updateform.name"
            autocomplete="off"
          ></el-input>
        </el-form-item>
    <el-dialog :title="$t('userManage.RM.updateRole')" :visible.sync="UpdateFormdialog" :before-close="handleCloseEdit">
      <div style="height: 500px; overflow: auto">
        <el-form :model="updateform" label-position="top">
          <el-form-item :label="$t('userManage.RM.roleName')" :label-width="formLabelWidth">
            <el-input v-model="updateform.name" autocomplete="off" style="width: 85%"></el-input>
          </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.ownedSystem')"
          :label-width="formLabelWidth"
          :prop="updateform.depValue"
        >
          <el-select
            :popper-append-to-body="false"
            v-model="updateform.depValue"
            placeholder="请选择"
            style="width:95%"
          >
            <el-option
              :value="updateform.depid"
              :label="updateform.depValue"
              style=" height:auto"
            >
              <el-tree
                ref="tree"
                :data="depList"
                node-key="id"
                :props="props"
                @node-click="handleUpdataDepList"
              />
            </el-option>
          </el-select>
          <el-form-item :label="$t('userManage.RM.ownedSystem')" :label-width="formLabelWidth"
            :prop="updateform.depValue">
            <el-select :popper-append-to-body="false" v-model="updateform.depValue" placeholder="请选择" style="width: 85%">
              <el-option :value="updateform.depid" :label="updateform.depValue" style="height: auto">
                <el-tree ref="tree" :data="depList" node-key="id" :props="props" @node-click="handleUpdataDepList" />
              </el-option>
            </el-select>
          <!-- <el-input
            <!-- <el-input
            v-model="updateform.depValue"
            :disabled="true"
            :placeholder="$t('common.pleaseInput')"
@@ -406,152 +261,114 @@
            style="margin-left:10px"
            @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')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="updateform.descr"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.remarks')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="updateform.bak"
            autocomplete="off"
          ></el-input>
        </el-form-item>
      </el-form>
      <div
        slot="footer"
        class="dialog-footer"
      >
        <el-button
          size="small"
          @click="updateFromClose"
        >{{ $t('common.close') }}</el-button>
        <el-button
          type="primary"
          size="small"
          @click="updateFromData"
        >{{ $t('common.confirm') }}</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-select style="width: 85%" v-model="updateform.isAdmin">
              <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item :label="$t('userManage.RM.describe')" :label-width="formLabelWidth">
            <el-input v-model="updateform.descr" autocomplete="off" style="width: 85%"></el-input>
          </el-form-item>
          <el-form-item :label="$t('userManage.RM.remarks')" :label-width="formLabelWidth">
            <el-input v-model="updateform.bak" autocomplete="off" style="width: 85%"></el-input>
          </el-form-item>
        </el-form>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button size="small" @click="updateFromClose">{{
          $t("common.close")
        }}</el-button>
        <el-button type="primary" size="small" @click="updateFromData">{{
          $t("common.confirm")
        }}</el-button>
      </div>
    </el-dialog>
    <div
      class="leftTree subpage_Div box_div"
      v-if="showCata"
    >
    <div class="leftTree subpage_Div box_div" v-if="showCata">
      <div class="treeBox">
        <role-dep-tree></role-dep-tree>
      </div>
      <div class="btnBox">
        <el-button
          type="primary"
          size="small"
          @click="selectCataName"
        >确定</el-button>
        <el-button
          type="info"
          size="small"
          @click="showCata = false"
        >取消</el-button>
        <el-button type="primary" size="small" @click="selectCataName">确定</el-button>
        <el-button type="info" size="small" @click="showCata = false">取消</el-button>
      </div>
    </div>
    <div class="infoBox_box" v-show="showinfoBox">
      <div class="infoBox box_div subpage_Div">
        <div slot="header" class="clearfix">
          <span>{{ $t("dataManage.styleObj.deInformation") }}</span>
          <div style="float: right; cursor: pointer" @click="closeDetial">
            <i class="el-icon-close"></i>
          </div>
        </div>
        <el-divider></el-divider>
        <div class="contentBox">
          <p>
            <label> {{ $t("userManage.RM.roleName") }}:</label>
            <label class="boxlabel">{{ itemdetail.name }}</label>
          </p>
          <el-divider></el-divider>
    <div
      class="infoBox box_div subpage_Div"
      v-show="showinfoBox"
    >
          <p>
            <label> {{ $t("userManage.RM.ownedSystem") }}:</label>
            <label class="boxlabel">{{ itemdetail.depName }}</label>
          </p>
          <el-divider></el-divider>
      <div
        slot="header"
        class="clearfix"
      >
        <span>{{ $t('dataManage.styleObj.deInformation') }}</span>
        <div
          style="float: right; cursor: pointer"
          @click="closeDetial"
        >
          <i class="el-icon-close"></i>
          <p>
            <label> {{ $t("userManage.RM.isAdmin") }}:</label>
            <label class="boxlabel">{{ itemdetail.admin }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t("userManage.RM.describe") }}:</label>
            <label class="boxlabel">{{ itemdetail.descr }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t("userManage.RM.creationuser") }}:</label>
            <label class="boxlabel">{{ itemdetail.createUser }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t("userManage.RM.creationtime") }}:</label>
            <label class="boxlabel">{{ itemdetail.createTime }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t("userManage.RM.updateonuser") }}:</label>
            <label class="boxlabel">{{ itemdetail.updateUser }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t("userManage.RM.updateontime") }}:</label>
            <label class="boxlabel">{{ itemdetail.updateTime }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t("userManage.RM.remarks") }}:</label>
            <label class="boxlabel">{{ itemdetail.bak }}</label>
          </p>
          <el-divider></el-divider>
        </div>
      </div>
      <el-divider></el-divider>
      <div class="contentBox">
        <p>
          <label> {{ $t('userManage.RM.roleName') }}:</label>
          <label class="boxlabel">{{ itemdetail.name }}</label>
        </p>
        <el-divider></el-divider>
        <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>
          <label> {{ $t('userManage.RM.describe') }}:</label>
          <label class="boxlabel">{{ itemdetail.descr }}</label>
        </p>
        <el-divider></el-divider>
        <p>
          <label> {{ $t('userManage.RM.creationuser') }}:</label>
          <label class="boxlabel">{{ itemdetail.createUser }}</label>
        </p>
        <el-divider></el-divider>
        <p>
          <label> {{ $t('userManage.RM.creationtime') }}:</label>
          <label class="boxlabel">{{ itemdetail.createTime }}</label>
        </p>
        <el-divider></el-divider>
        <p>
          <label> {{ $t('userManage.RM.updateonuser') }}:</label>
          <label class="boxlabel">{{ itemdetail.UpdateUser }}</label>
        </p>
        <el-divider></el-divider>
        <p>
          <label> {{ $t('userManage.RM.updateontime') }}:</label>
          <label class="boxlabel">{{ itemdetail.updateTime }}</label>
        </p>
        <el-divider></el-divider>
        <p>
          <label> {{ $t('userManage.RM.remarks') }}:</label>
          <label class="boxlabel">{{ itemdetail.bak }}</label>
        </p>
        <el-divider></el-divider>
      </div>
    </div>
  </div>
</template>
<script>
import moment from 'moment';
import MyBread from '../../components/MyBread.vue';
import roleDepTree from './roleDepTree.vue';
import moment from "moment";
import MyBread from "../../components/MyBread.vue";
import roleDepTree from "./roleDepTree.vue";
import {
  select_Role_ByPageAndCount,
  selectdepTab,
@@ -559,8 +376,7 @@
  deleteRoles,
  selectDep,
  updateRole,
} from '../../api/api';
} from "../../api/api";
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
@@ -570,30 +386,30 @@
  data() {
    return {
      props: {
        label: 'name',
        value: 'id',
        children: 'children',
        label: "name",
        value: "id",
        children: "children",
        checkStrictly: true,
        emitPath: false,
      },
      depList: [],
      showinfoBox: false,
      showCata: false,
      formLabelWidth: '120px',
      formLabelWidth: "120px",
      InsertFormdialog: false,
      UpdateFormdialog: false,
      roleForm: {
        depid: '',
        depValue: '',
        depid: "",
        depValue: "",
      },
      cataName: '',
      depValue: '',
      cataName: "",
      depValue: "",
      elTreeFlag: 0,
      path_id: '',
      path_id: "",
      tableData: [],
      insertform: {
        depValue: '',
        depid: ''
        depValue: "",
        depid: "",
      },
      updateform: {},
      count: 0,
@@ -612,20 +428,61 @@
        insert: false,
        update: false,
      },
      tableHeight: 0,
      timer: 0,
      styleVar: {
        height: "calc(100% - 109px)",
      },
      options: [
        {
          value: 0,
          label: "普通用户",
        },
        {
          value: 1,
          label: "超级管理员",
        },
        {
          value: 2,
          label: "数据管理员",
        },
        {
          value: 3,
          label: "领导",
        },
      ],
    };
  },
  watch: {
    "roleForm.depValue"() {
      this.$refs.treeSelect.visible = false;
    },
  },
  methods: {
    onResize() {
      this.timer && clearTimeout(this.timer);
      this.timer = setTimeout(() => {
        this.calHeight();
      }, 500);
    },
    calHeight() {
      this.$nextTick(() => {
        const rect = this.$refs.container.getBoundingClientRect();
        this.tableHeight = `${rect.height + 97}px`;
        // this.styleVar["height"] = `calc(100% - ${rect.height + 97}px)`;
        this.styleVar["height"] = `calc(100% - ${rect.height + 30}px)`;
      });
    },
    handleRouleDepList(data, node, nodeData) {
      this.roleForm.depid = data.id
      this.roleForm.depid = data.id;
      this.roleForm.depValue = data.name;
    },
    handleDepList(data, node, nodeData) {
      this.insertform.depid = data.id
      this.insertform.depid = data.id;
      this.insertform.depValue = data.name;
    },
    handleUpdataDepList(data, node, nodeData) {
      this.updateform.depid = data.id
      this.updateform.depid = data.id;
      this.updateform.depValue = data.name;
    },
    setInsertFormdialog() {
@@ -636,7 +493,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属性,并赋值
        // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2;
        // 由此循环多次后,就能形成相应的树形数据结构
        return father.pid == 0; // 返回一级菜单
@@ -645,9 +502,9 @@
    async getDepList() {
      const data = await selectdepTab();
      if (data.code != 200) {
        return this.$message.error('单位列表调用失败');
        return this.$message.error("单位列表调用失败");
      }
      this.depList = this.treeData(data.result)
      this.depList = this.treeData(data.result);
    },
    closeDetial() {
      this.showinfoBox = false;
@@ -662,8 +519,11 @@
      this.itemdetail.updateTime = this.formomentTime(
        this.itemdetail.updateTime
      );
      this.itemdetail.admin =
        parseInt(this.itemdetail.isAdmin) === 0 ? '否' : '是';
      this.itemdetail.createUser = this.itemdetail.createName;
      this.itemdetail.updateUser = this.itemdetail.updateName;
      this.itemdetail.admin =this.formateIsAdmin(this.itemdetail)
    },
    handleSelectionChange(val) {
      this.multipleSelection = val;
@@ -672,210 +532,270 @@
      let date = row[column.property];
      return this.formomentTime(date);
    },
    formomentTime(date) {
      if (date === undefined || date === null) {
        return;
      }
      return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss');
    },
    showDepTree(res) {
      this.showCata = true;
      this.elTreeFlag = res;
    },
    selectCataName() {
      this.cataName = this.$store.state.catalogueName;
      this.path_id = this.$store.state.cataNode.id;
      var value;
      if (this.cataName.indexOf('>') != -1) {
        var data = this.$store.state.catalogueName.split('>');
        value = data[data.length - 1];
      } else {
        value = this.$store.state.catalogueName;
      }
      this.$store.commit('changeCata', ''); //清空state的面包屑
      this.$store.commit('changeNode', ''); //清空state的节点对象
      this.showCata = false;
      switch (this.elTreeFlag) {
    formateIsAdmin(row, column) {
      switch (row.isAdmin) {
        case 0:
          return "普通用户";
          break;
        case 1:
          this.roleForm.value = value;
          this.roleForm.depid = this.path_id;
          return "超级管理员";
          break;
        case 2:
          this.insertform.depid = this.path_id;
          this.insertform.depValue = value;
          return "数据管理员";
          break;
        case 3:
          this.updateform.depid = this.path_id;
          this.updateform.depValue = value;
          return "领导";
          break;
      }
    },
formomentTime(date) {
  if (date === undefined || date === null) {
    return;
  }
  return moment(parseInt(date)).format("YYYY-MM-DD HH:mm:ss");
},
showDepTree(res) {
  this.showCata = true;
  this.elTreeFlag = res;
},
selectCataName() {
  this.cataName = this.$store.state.catalogueName;
  this.path_id = this.$store.state.cataNode.id;
  var value;
  if (this.cataName.indexOf(">") != -1) {
    var data = this.$store.state.catalogueName.split(">");
    value = data[data.length - 1];
  } else {
    value = this.$store.state.catalogueName;
  }
  this.$store.commit("changeCata", ""); //清空state的面包屑
  this.$store.commit("changeNode", ""); //清空state的节点对象
  this.showCata = false;
  switch (this.elTreeFlag) {
    case 1:
      this.roleForm.value = value;
      this.roleForm.depid = this.path_id;
      break;
    case 2:
      this.insertform.depid = this.path_id;
      this.insertform.depValue = value;
      break;
    case 3:
      this.updateform.depid = this.path_id;
      this.updateform.depValue = value;
      break;
  }
},
    async getRoleTabelData() {
      if (this.listData.tab == '') {
        delete this.listData.tab;
      }
      this.listData.name = this.roleForm.username;
      this.listData.depid = this.roleForm.depid;
      const data = await select_Role_ByPageAndCount(this.listData);
      if (data.code != 200) {
        this.$message.error('列表调用失败');
      }
      console.log(data);
      this.tableData = data.result;
      this.count = data.count;
    },
  if (this.listData.tab == "") {
    delete this.listData.tab;
  }
  this.listData.name = this.roleForm.username;
  this.listData.depid = this.roleForm.depid;
  const data = await select_Role_ByPageAndCount(this.listData);
  if (data.code != 200) {
    this.$message.error("列表调用失败");
  }
  this.tableData = data.result;
  this.count = data.count;
},
    async getSelectDepTab() {
      this.selectData = [];
      const data = await selectdepTab();
      if (data.code != 200) {
        this.$message.error('下拉调用失败');
      }
      data.result.forEach((e) => {
        if (e) {
          this.selData.push({
            label: e.name,
            value: e.id,
          });
        }
  this.selectData = [];
  const data = await selectdepTab();
  if (data.code != 200) {
    this.$message.error("下拉调用失败");
  }
  data.result.forEach((e) => {
    if (e) {
      this.selData.push({
        label: e.name,
        value: e.id,
      });
    },
    insertFromClose() {
    }
  });
},
insertFromClose() {
  this.$confirm("关闭后无法保存,是否关闭?")
    .then((_) => {
      this.InsertFormdialog = false;
      this.insertform = {};
    },
    })
    .catch((_) => { });
},
    async insertFromData() {
      if (this.insertform.depValue == null) {
        this.$message({
          message: '请选择角色所属单位',
          type: 'warning',
        });
        return;
      }
      const data = await insertRole(this.insertform);
      if (data.code == 200) {
        this.InsertFormdialog = false;
        this.insertform = {};
        this.$message({
          message: '添加成功!',
          type: 'success',
        });
        this.getRoleTabelData();
      } else {
        this.$message({
          message: '添加失败!',
          type: 'warning',
        });
      }
    },
    updateFromClose() {
  if (this.insertform.depValue == null) {
    this.$message({
      message: "请选择角色所属单位",
      type: "warning",
    });
    return;
  }
  const data = await insertRole(this.insertform);
  if (data.code == 200) {
    this.InsertFormdialog = false;
    this.insertform = {};
    this.$message({
      message: "添加成功!",
      type: "success",
    });
    this.getRoleTabelData();
  } else {
    this.$message({
      message: "添加失败!",
      type: "warning",
    });
  }
},
updateFromClose() {
  this.$confirm("关闭后无法保存,是否关闭?")
    .then((_) => {
      this.UpdateFormdialog = false;
      this.updateform = {};
    },
      this.getRoleTabelData();
    })
    .catch((_) => { });
},
    async updateFromData() {
      if (this.updateform.depValue == null) {
        this.$message({
          message: '请选择角色所属单位',
          type: 'warning',
        });
        return;
      }
      console.log(this.updateform);
      const data = await updateRole(this.updateform);
  if (this.updateform.depValue == null) {
    this.$message({
      message: "请选择角色所属单位",
      type: "warning",
    });
    return;
  }
  console.log(this.updateform);
  const data = await updateRole(this.updateform);
  if (data.code == 200) {
    this.UpdateFormdialog = false;
    this.updateform = {};
    this.$message({
      message: "修改成功!",
      type: "success",
    });
    this.getRoleTabelData();
  } else {
    this.$message({
      message: "修改失败!",
      type: "warning",
    });
  }
},
handleDelete() {
  var std = [];
  for (var i in this.multipleSelection) {
    std.push(this.multipleSelection[i].id);
  }
  this.$confirm("此操作将永久删除该角色, 是否继续?", "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
    .then(async () => {
      const data = await deleteRoles({ ids: std.toString() });
      if (data.code == 200) {
        this.UpdateFormdialog = false;
        this.updateform = {};
        this.InsertFormdialog = false;
        this.$message({
          message: '修改成功!',
          type: 'success',
          message: "删除成功!",
          type: "success",
        });
        this.getRoleTabelData();
      } else {
        this.$message({
          message: '修改失败!',
          type: 'warning',
          message: "删除失败!",
          type: "warning",
        });
      }
    },
    handleDelete() {
      var std = [];
      for (var i in this.multipleSelection) {
        std.push(this.multipleSelection[i].id);
      }
      this.$confirm('此操作将永久删除该角色, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(async () => {
        const data = await deleteRoles({ ids: std.toString() });
        if (data.code == 200) {
          this.InsertFormdialog = false;
          this.$message({
            message: '删除成功!',
            type: 'success',
          });
          this.getRoleTabelData();
        } else {
          this.$message({
            message: '删除失败!',
            type: 'warning',
          });
        }
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除'
        });
    })
    .catch(() => {
      this.$message({
        type: "info",
        message: "已取消删除",
      });
    },
    handleSizeChange(val) {
      this.listData.pageSize = val;
      this.getRoleTabelData();
    },
    handleCurrentChange(val) {
      this.listData.pageIndex = val;
      this.getRoleTabelData();
    },
    });
},
handleSizeChange(val) {
  this.listData.pageSize = val;
  this.getRoleTabelData();
},
handleCurrentChange(val) {
  this.listData.pageIndex = val;
  this.getRoleTabelData();
},
    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;
    },
    onSubmit() {
  this.updateform = row;
  // this.updateform.isAdmin = row.isAdmin.toString();
  const data = await selectDep({ id: row.depid });
  if (data.result == null) {
    this.updateform.depValue = null;
  } else {
    this.updateform.depValue = data.result.name;
  }
  this.UpdateFormdialog = true;
},
onSubmit() {
  this.getRoleTabelData();
},
resetForm(formName) {
  this.$refs[formName].resetFields();
  this.roleForm = {};
  this.getRoleTabelData();
},
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;
  }
},
handleClose() {
  this.$confirm("关闭后无法保存,是否关闭?")
    .then((_) => {
      this.InsertFormdialog = false;
    })
    .catch((_) => { });
},
handleCloseEdit() {
  this.$confirm("关闭后无法保存,是否关闭?")
    .then((_) => {
      this.UpdateFormdialog = false;
      this.getRoleTabelData();
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
      this.roleForm = {};
      this.getRoleTabelData();
    },
    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;
      }
    },
    })
    .catch((_) => { });
},
  },
  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]);
      }
beforeDestroy() {
  this.timer && clearTimeout(this.timer);
  window.removeEventListener("resize", this.onResize);
},
mounted() {
  window.addEventListener("resize", this.onResize);
  this.calHeight();
},
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]);
    }
    this.getRoleTabelData();
    this.getDepList();
  },
  }
  this.getRoleTabelData();
  this.getDepList();
},
};
</script>
<style lang="less" scoped>
@@ -883,11 +803,12 @@
.logLog_box {
  height: 98%;
  width: 98%;
  padding: 1%;
  overflow: auto;
  padding: 0.5%;
  .el-input {
    width: 300px;
  }
  .leftTree {
    position: absolute;
    z-index: 9999;
@@ -900,33 +821,30 @@
      height: 550px;
      overflow: auto;
    }
    .btnBox {
      width: 123px;
      margin: 10px auto 0;
      // background-color: red;
    }
  }
  .inquire {
    height: auto;
    padding: 10px;
    margin-top: 10px;
    margin-top: 10px;
    width: calc(100% - 22px);
    //padding: 8px;
    //margin-top: 20px;
    border-radius: 5px;
    //margin-bottom: 20px;
    // width: calc(100% - 22px);
    .el-form-item {
      margin: 7px;
      margin: 5px;
    }
  }
  .table_box {
    width: calc(100% - 22px);
    height: calc(60% - 6px);
    padding: 10px;
    margin-bottom: 10px;
    margin-top: 10px;
    border-radius: 5px;
  }
  .text-center {
    text-align: center;
  }