管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-02-15 343e6c2730ffb99db591732ff5ef1494e233c6bc
src/views/userManage/roleManage.vue
@@ -5,7 +5,7 @@
        `${$t('userManage.roleManage')}`,
      ]"></My-bread>
    <el-divider />
    <div class="inquire">
    <div class="inquire subpage_Div">
      <el-form
        ref="ruleForm"
        :model="roleForm"
@@ -21,59 +21,119 @@
          :label="$t('userManage.RM.ownedSystem')"
          prop="ownedSystem"
        >
          <el-input
          <el-select
            :popper-append-to-body="false"
            v-model="roleForm.depValue"
            placeholder="请选择"
            style="width:93%"
          >
            <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>
          <el-button
            style="
              margin-left: 20px;
              background: #409eff;
              border: 1px solid #409eff;
              color: white;
            "
            size="small"
            type="primary"
            @click="showDepTree(1)"
          >{{ $t('common.choose') }}</el-button>
        </el-form-item>
        <br />
        <el-form-item>
        </el-form-item> -->
        <!-- <el-form-item style="float:right">
          <el-button
            type="success"
            @click="InsertFormdialog = true"
            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-form-item style="float:right">
          <el-button
            style="background: #409eff; border: 1px solid #409eff; color: white"
            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-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>
        <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="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">
    <div class="table_box subpage_Div">
      <el-table
        :data="tableData"
        style="width: 100%"
@@ -157,12 +217,13 @@
        >
          <template slot-scope="scope">
            <el-button
              plain
              v-if="menuStatus.update"
              type="warning"
              @click="handleEdit(scope.$index, scope.row)"
              size="small"
            >{{ $t('common.update') }}</el-button>
            <el-button
            <el-button plain
              @click="showDetail(scope.$index, scope.row)"
              size="small"
            >{{ $t('common.see') }}</el-button>
@@ -177,7 +238,7 @@
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="listData.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-sizes="[10, 20, 50, 100]"
          :page-size="listData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="count"
@@ -189,7 +250,7 @@
    <el-dialog
      :title="$t('userManage.RM.insertRole')"
      top="15vh"
      width="80vh"
      width="50vh"
      style="overflow: hidden"
      :visible.sync="InsertFormdialog"
    >
@@ -199,6 +260,7 @@
          :label-width="formLabelWidth"
        >
          <el-input
            style="width:95%"
            v-model="insertform.name"
            autocomplete="off"
          ></el-input>
@@ -209,26 +271,44 @@
          :prop="insertform.depValue"
          :rules="[{ required: true, message: '不能为空' }]"
        >
          <el-input
          <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
            v-model="insertform.depValue"
            :disabled="true"
            :placeholder="$t('common.pleaseInput')"
          />
          <el-button
            style="
              margin-left: 20px;
              background: #409eff;
              border: 1px solid #409eff;
              color: white;
            "
            size="small"
            type="primary"
            style="margin-left:10px"
            @click="showDepTree(2)"
          >{{ $t('common.choose') }}</el-button>
          >{{ $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>
@@ -251,6 +331,7 @@
          :label-width="formLabelWidth"
        >
          <el-input
            style="width:95%"
            v-model="insertform.bak"
            autocomplete="off"
          ></el-input>
@@ -260,9 +341,13 @@
        slot="footer"
        class="dialog-footer"
      >
        <el-button @click="insertFromClose">{{ $t('common.close') }}</el-button>
        <el-button
          style="background: #409eff; border: 1px solid #409eff; color: white"
          size="small"
          @click="insertFromClose"
        >{{ $t('common.close') }}</el-button>
        <el-button
          type="primary"
          size="small"
          @click="insertFromData"
        >{{ $t('common.confirm') }}</el-button>
      </div>
@@ -270,7 +355,7 @@
    <el-dialog
      :title="$t('userManage.RM.updateRole')"
      top="15vh"
      width="80vh"
      width="50vh"
      style="overflow: hidden"
      :visible.sync="UpdateFormdialog"
    >
@@ -290,20 +375,38 @@
          :label-width="formLabelWidth"
          :prop="updateform.depValue"
        >
          <el-input
          <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-input
            v-model="updateform.depValue"
            :disabled="true"
            :placeholder="$t('common.pleaseInput')"
          />
          <el-button
            style="
              margin-left: 20px;
              background: #409eff;
              border: 1px solid #409eff;
              color: white;
            "
            size="small"
            type="primary"
            style="margin-left:10px"
            @click="showDepTree(3)"
          >{{ $t('common.choose') }}</el-button>
          >{{ $t('common.choose') }}</el-button> -->
        </el-form-item>
        <el-form-item
          :label="$t('userManage.RM.isAdmin')"
@@ -341,15 +444,19 @@
        slot="footer"
        class="dialog-footer"
      >
        <el-button @click="updateFromClose">{{ $t('common.close') }}</el-button>
        <el-button
          style="background: #409eff; border: 1px solid #409eff; color: white"
          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"
      class="leftTree subpage_Div box_div"
      v-if="showCata"
    >
      <div class="treeBox">
@@ -357,7 +464,7 @@
      </div>
      <div class="btnBox">
        <el-button
          style="background: #409eff; border: 1px solid #409eff; color: white"
          type="primary"
          size="small"
          @click="selectCataName"
        >确定</el-button>
@@ -370,73 +477,74 @@
    </div>
    <div
      class="infoBox"
      class="infoBox box_div subpage_Div"
      v-show="showinfoBox"
    >
      <el-card>
      <div
        slot="header"
        class="clearfix"
      >
        <span>{{ $t('dataManage.styleObj.deInformation') }}</span>
        <div
          slot="header"
          class="clearfix"
          style="float: right; cursor: pointer"
          @click="closeDetial"
        >
          <span>{{ $t('dataManage.styleObj.deInformation') }}</span>
          <div
            style="float: right; cursor: pointer"
            @click="closeDetial"
          >
            <i class="el-icon-close"></i>
          </div>
          <i class="el-icon-close"></i>
        </div>
        <div class="contentBox">
          <p>
            <label> {{ $t('userManage.RM.roleName') }}:</label>
            <label class="boxlabel">{{ itemdetail.name }}</label>
          </p>
          <el-divider></el-divider>
      </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.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.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>
      </el-card>
        <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>
@@ -452,6 +560,7 @@
  deleteRoles,
  selectDep,
  updateRole,
} from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
@@ -461,18 +570,32 @@
  },
  data() {
    return {
      props: {
        label: 'name',
        value: 'id',
        children: 'children',
        checkStrictly: true,
        emitPath: false,
      },
      depList: [],
      showinfoBox: false,
      showCata: false,
      formLabelWidth: '120px',
      InsertFormdialog: false,
      UpdateFormdialog: false,
      roleForm: {},
      roleForm: {
        depid: '',
        depValue: '',
      },
      cataName: '',
      depValue: '',
      elTreeFlag: 0,
      path_id: '',
      tableData: [],
      insertform: {},
      insertform: {
        depValue: '',
        depid: ''
      },
      updateform: {},
      count: 0,
      selData: [],
@@ -493,6 +616,40 @@
    };
  },
  methods: {
    handleRouleDepList(data, node, nodeData) {
      this.roleForm.depid = data.id
      this.roleForm.depValue = data.name;
    },
    handleDepList(data, node, nodeData) {
      this.insertform.depid = data.id
      this.insertform.depValue = data.name;
    },
    handleUpdataDepList(data, node, nodeData) {
      this.updateform.depid = data.id
      this.updateform.depValue = data.name;
    },
    setInsertFormdialog() {
      this.InsertFormdialog = true;
    },
    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属性,并赋值
        // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2;
        // 由此循环多次后,就能形成相应的树形数据结构
        return father.pid == 0; // 返回一级菜单
      });
    },
    async getDepList() {
      const data = await selectdepTab();
      if (data.code != 200) {
        return this.$message.error('单位列表调用失败');
      }
      this.depList = this.treeData(data.result)
    },
    closeDetial() {
      this.showinfoBox = false;
      this.itemdetail = {};
@@ -559,7 +716,7 @@
        delete this.listData.tab;
      }
      this.listData.name = this.roleForm.username;
      this.listData.depName = this.roleForm.value;
      this.listData.depid = this.roleForm.depid;
      const data = await select_Role_ByPageAndCount(this.listData);
      if (data.code != 200) {
        this.$message.error('列表调用失败');
@@ -640,26 +797,37 @@
        });
      }
    },
    async handleDelete() {
    handleDelete() {
      var std = [];
      for (var i in this.multipleSelection) {
        std.push(this.multipleSelection[i].id);
      }
      const data = await deleteRoles({ ids: std.toString() });
      this.$confirm('此操作将永久删除该角色, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(async () => {
        const data = await deleteRoles({ ids: std.toString() });
      if (data.code == 200) {
        this.InsertFormdialog = false;
        if (data.code == 200) {
          this.InsertFormdialog = false;
          this.$message({
            message: '删除成功!',
            type: 'success',
          });
          this.getRoleTabelData();
        } else {
          this.$message({
            message: '删除失败!',
            type: 'warning',
          });
        }
      }).catch(() => {
        this.$message({
          message: '删除成功!',
          type: 'success',
          type: 'info',
          message: '已取消删除'
        });
        this.getRoleTabelData();
      } else {
        this.$message({
          message: '删除失败!',
          type: 'warning',
        });
      }
      });
    },
    handleSizeChange(val) {
      this.listData.pageSize = val;
@@ -707,7 +875,7 @@
      }
    }
    this.getRoleTabelData();
    this.getSelectDepTab();
    this.getDepList();
  },
};
</script>
@@ -717,7 +885,6 @@
  height: 98%;
  width: 98%;
  padding: 1%;
  position: absolute;
  overflow: auto;
  .el-input {
    width: 300px;
@@ -729,15 +896,10 @@
    left: 37%;
    width: 400px;
    height: 600px;
    background: #303030;
    border: 1px solid #000;
    color: black;
    .treeBox {
      height: 550px;
      overflow: auto;
      /deep/ .el-tree-node__content:hover {
        background-color: rgb(153, 153, 153);
      }
    }
    .btnBox {
      width: 123px;
@@ -747,24 +909,15 @@
  }
  .inquire {
    height: auto;
    overflow: auto;
    padding: 10px;
    margin-top: 10px;
    margin-top: 10px;
    width: calc(100% - 22px);
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    .el-form-item {
      margin: 7px;
    }
    /deep/ .el-input__inner {
      background-color: transparent !important;
      border: 1px solid;
      color: white;
    }
    /deep/.el-form-item__label {
      color: white;
    }
  }
  .table_box {
@@ -774,181 +927,9 @@
    margin-bottom: 10px;
    margin-top: 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;
      th,
      td {
        background-color: transparent;
      }
      .el-table__expanded-cell {
        background-color: transparent !important;
      }
      // 表头背景色
      th.el-table__cell {
        background-color: #303030;
        color: #fff;
      }
      tr > td {
        background-color: #303030;
        color: #fff;
      }
      // hover效果
      tr:hover > td {
        background-color: rgba(255, 255, 255, 0.3) !important;
      }
      tbody tr:hover {
        background-color: rgba(255, 255, 255, 0.3) !important;
        // text-align: center;
      }
      // 滚动条宽高
      .el-table__body-wrapper::-webkit-scrollbar {
        width: 5px;
        height: 5px;
      }
      .el-table__body-wrapper::-webkit-scrollbar {
        width: 5px;
        /*滚动条宽度*/
        height: 10px;
        /*滚动条高度*/
      }
      /*定义滚动条轨道 内阴影+圆角*/
      .el-table__body-wrapper::-webkit-scrollbar-track {
        box-shadow: 0px 1px 3px #216fe6 inset;
        /*滚动条的背景区域的内阴影*/
        border-radius: 10px;
      }
      /*定义滑块 内阴影+圆角*/
      .el-table__body-wrapper::-webkit-scrollbar-thumb {
        box-shadow: 0px 1px 3px #216fe6 inset;
        border-radius: 6px;
        background-color: #216fe6;
      }
    }
  }
  .text-center {
    text-align: center;
  }
  .infoBox {
    width: 500px;
    position: absolute;
    z-index: 100;
    top: 15%;
    right: 12%;
    background-color: #303030;
    .el-icon-close {
      color: white;
    }
    .el-card {
      background-color: transparent;
      span {
        font-size: 16px;
        font-weight: 600;
        color: white;
      }
    }
    .contentBox {
      margin: 0 aotu 10px;
      height: 485px;
      overflow: auto;
      p {
        // background-color: #bfa;
        // margin-bottom: 10px;
        font-size: 14px;
        color: white;
      }
      .boxlabel {
        margin-left: 10px;
      }
    }
    /* 整体样式 */
    .contentBox::-webkit-scrollbar {
      width: 6px;
      height: 6px;
    }
    /* 滚动条 */
    .contentBox::-webkit-scrollbar-thumb {
      background-color: #b3d8ff;
      border-radius: 6px;
    }
    /* 滚动条鼠标经过样式 */
    .contentBox::-webkit-scrollbar-thumb:hover {
      background-color: #b3d8ff;
      border-radius: 6px;
    }
    /* 滚动条轨道 */
    .contentBox::-webkit-scrollbar-track-piece {
      -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
      border-radius: 10px;
      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>