管道基础大数据平台系统开发-【前端】-新系統界面
王旭
2023-05-10 86cdd4e6eece0ee4679e62ae347ec003db7d7425
src/views/userManage/authorityManage.vue
@@ -5,50 +5,78 @@
        `${$t('userManage.authorityManage')}`,
      ]"></My-bread>
    <el-divider />
    <div class="power_quire">
    <div
      class="power_quire subpage_Div"
      ref="container"
    >
      <el-form
        ref="form"
        :model="ruleForm"
        label-width="100px"
        :inline="true"
      >
        <el-form-item :label="$t('common.username')">
          <el-input v-model="ruleForm.name"></el-input>
        </el-form-item>
        <el-form-item>
          <el-button
            @click="submitForm('ruleForm')"
            icon="el-icon-search"
            style="background: #409eff; border: 1px solid #409eff; color: white"
          >{{
            $t('common.iquery')
          }}</el-button>
          <el-button
            @click="resetForm('ruleForm')"
            icon="el-icon-refresh"
            type="info"
          >{{ $t('common.empty') }}</el-button>
          <el-button
            v-if="menuStatus.insert"
            @click="InsertFormdialog = true"
            icon="el-icon-edit"
            type="success"
          >{{ $t('common.append') }}</el-button>
          <el-button
            v-if="menuStatus.delete"
            @click="DelFromData"
            icon="el-icon-delete"
            type="danger"
          >{{ $t('common.delete') }}</el-button>
        </el-form-item>
        <div class="flex_box">
          <div style="margin-right: auto">
            <el-form-item :label="$t('userManage.authorityM.name')">
              <el-input
                v-model="ruleForm.name"
                style="width:200px"
                size="small"
                :placeholder="$t('userManage.authorityM.nameHolder')"
              >
                <i
                  slot="suffix"
                  class="el-icon-search"
                  @click="submitForm"
                ></i>
              </el-input>
            </el-form-item>
          </div>
          <div>
            <el-form-item>
              <el-button
                v-if="menuStatus.insert"
                @click="InsertFormdialog = true"
                icon="el-icon-edit"
                type="success"
                size="small"
              >{{ $t('common.append') }}</el-button>
              <el-button
                v-if="menuStatus.delete"
                @click="DelFromData"
                icon="el-icon-delete"
                type="danger"
                size="small"
              >{{ $t('common.delete') }}</el-button>
              <!--          <el-button-->
              <!--            @click="submitForm('ruleForm')"-->
              <!--            icon="el-icon-search" size="small"-->
              <!--            type="primary"-->
              <!--          >{{-->
              <!--            $t('common.iquery')-->
              <!--          }}</el-button>-->
              <el-button
                @click="resetForm('ruleForm')"
                icon="el-icon-refresh"
                type="info"
                size="small"
              >{{ $t('common.empty') }}</el-button>
            </el-form-item>
          </div>
        </div>
      </el-form>
    </div>
    <div class="table_box">
    <div class="dividing-line"></div>
    <div
      class="table_box subpage_Div"
      :style="styleVar"
    >
      <el-table
        :data="tableData"
        style="width: 100%"
        fit
        height="85%"
        border
        height="calc(100% - 45px)"
        @selection-change="handleSelectionChange"
      >
        <el-table-column
@@ -74,7 +102,7 @@
        >
        </el-table-column>
        <el-table-column
          prop="createUser"
          prop="createName"
          align="center"
          :label="$t('userManage.userInfoObj.createUser')"
        >
@@ -87,7 +115,7 @@
        >
        </el-table-column>
        <el-table-column
          prop="updateUser"
          prop="updateName"
          align="center"
          :label="$t('userManage.userInfoObj.updateUser')"
        >
@@ -106,7 +134,6 @@
        >
        </el-table-column>
        <el-table-column
          fixed="right"
          :label="$t('common.operate')"
          width="170px"
        >
@@ -127,12 +154,15 @@
          </template>
        </el-table-column>
      </el-table>
      <div class="pagination_box">
      <div
        class="pagination_box"
        style="margin-top: 10px"
      >
        <el-pagination
          @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"
@@ -140,64 +170,65 @@
        </el-pagination>
      </div>
    </div>
    <div
      class="infoBox"
      class="infoBox_box"
      v-show="showinfoBox"
    >
      <el-card class="box-card">
        <div
          slot="header"
          class="clearfix"
        >
          <span>{{ $t('dataManage.styleObj.deInformation') }}</span>
      <div class="infoBox subpage_Div box_div">
        <el-card class="box-card">
          <div
            style="float: right; cursor: pointer"
            @click="closeDetial"
            slot="header"
            class="clearfix"
          >
            <i class="el-icon-close"></i>
            <span>{{ $t('dataManage.styleObj.deInformation') }}</span>
            <div
              style="float: right; cursor: pointer"
              @click="closeDetial"
            >
              <i class="el-icon-close"></i>
            </div>
          </div>
        </div>
        <div class="contentBox">
          <p>
            <label> {{ $t('userManage.userInfoObj.name') }}:</label>
            <label class="boxlabel">{{ itemdetail.name }}</label>
          </p>
          <el-divider></el-divider>
          <p>
          <p>
            <label> {{ $t('userManage.userInfoObj.tag') }}:</label>
            <label class="boxlabel">{{ itemdetail.tag }}</label>
          </p>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t('userManage.userInfoObj.createUser') }}:</label>
            <label class="boxlabel">{{ itemdetail.createUser }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t('userManage.userInfoObj.createTime') }}:</label>
            <label class="boxlabel">{{ itemdetail.createTime }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t('userManage.userInfoObj.updateUser') }}:</label>
            <label class="boxlabel">{{ itemdetail.updateUser }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t('userManage.userInfoObj.updateTime') }}:</label>
            <label class="boxlabel">{{ itemdetail.updateTime }}</label>
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t('userManage.userInfoObj.bak') }}:</label>
            <label class="boxlabel">{{ itemdetail.bak }}</label>
          </p>
          <el-divider></el-divider>
        </div>
      </el-card>
          <div class="contentBox">
            <p>
              <label> {{ $t('userManage.userInfoObj.name') }}:</label>
              <label class="boxlabel">{{ itemdetail.name }}</label>
            </p>
            <el-divider></el-divider>
            <p>
            <p>
              <label> {{ $t('userManage.userInfoObj.tag') }}:</label>
              <label class="boxlabel">{{ itemdetail.tag }}</label>
            </p>
            </p>
            <el-divider></el-divider>
            <p>
              <label> {{ $t('userManage.userInfoObj.createUser') }}:</label>
              <label class="boxlabel">{{ itemdetail.createName }}</label>
            </p>
            <el-divider></el-divider>
            <p>
              <label> {{ $t('userManage.userInfoObj.createTime') }}:</label>
              <label class="boxlabel">{{ itemdetail.createTime }}</label>
            </p>
            <el-divider></el-divider>
            <p>
              <label> {{ $t('userManage.userInfoObj.updateUser') }}:</label>
              <label class="boxlabel">{{ itemdetail.updateName }}</label>
            </p>
            <el-divider></el-divider>
            <p>
              <label> {{ $t('userManage.userInfoObj.updateTime') }}:</label>
              <label class="boxlabel">{{ itemdetail.updateTime }}</label>
            </p>
            <el-divider></el-divider>
            <p>
              <label> {{ $t('userManage.userInfoObj.bak') }}:</label>
              <label class="boxlabel">{{ itemdetail.bak }}</label>
            </p>
            <el-divider></el-divider>
          </div>
        </el-card>
      </div>
    </div>
    <el-dialog
      :title="dialogTitle"
@@ -229,9 +260,13 @@
      :title="$t('userManage.userInfoObj.addPermission')"
      style="overflow: hidden"
      :visible.sync="InsertFormdialog"
      width="30%"
      :before-close="handleClose"
    >
      <el-form :model="insertform">
      <el-form
        :model="insertform"
        label-position="top"
      >
        <el-form-item
          :label="$t('userManage.userInfoObj.name')"
          :label-width="formLabelWidth"
@@ -239,6 +274,8 @@
          <el-input
            v-model="insertform.name"
            autocomplete="off"
            style="width:85%"
             :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.userInfoObj.name')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -248,6 +285,8 @@
          <el-input
            v-model="insertform.tag"
            autocomplete="off"
            style="width:85%"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.userInfoObj.tag')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -257,18 +296,25 @@
          <el-input
            v-model="insertform.bak"
            autocomplete="off"
            style="width:85%"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.userInfoObj.bak')"
          ></el-input>
        </el-form-item>
      </el-form>
      <div
        slot="footer"
        class="dialog-footer"
      >
        <el-button @click="insertFromDataClose">{{
        <el-button
          size="small"
          @click="insertFromDataClose"
        >{{
          $t('common.close')
        }}</el-button>
        <el-button
          style="background: #409eff; border: 1px solid #409eff; color: white"
          size="small"
          type="primary"
          @click="insertFromData"
        >{{
          $t('common.confirm')
@@ -277,41 +323,55 @@
    </el-dialog>
    <el-dialog
      :title="$t('userManage.userInfoObj.editPermission')"
      style="overflow: hidden"
      :visible.sync="EditFormdialog"
      :before-close="EditFromDataClose"
      width="30%"
    >
      <el-form :model="upform">
      <el-form
        :model="upform"
        label-position="top"
      >
        <el-form-item
          :label="$t('userManage.userInfoObj.name')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.name"></el-input>
          <el-input
            v-model="upform.name"
            style="width:85%"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('userManage.userInfoObj.tag')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.tag"></el-input>
          <el-input
            v-model="upform.tag"
            style="width:85%"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('userManage.userInfoObj.bak')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.bak"></el-input>
          <el-input
            v-model="upform.bak"
            style="width:85%"
          ></el-input>
        </el-form-item>
      </el-form>
      <div
        slot="footer"
        class="dialog-footer"
      >
        <el-button @click="EditFromDataClose">{{
        <el-button
          size="small"
          @click="EditFromDataClose"
        >{{
          $t('common.close')
        }}</el-button>
        <el-button
          @click="EditFromData"
          style="background: #409eff; border: 1px solid #409eff; color: white"
          size="small"
          type="primary"
        >{{
          $t('common.confirm')
        }}</el-button>
@@ -321,9 +381,14 @@
</template>
<script>
import moment from 'moment';
import MyBread from '../../components/MyBread.vue';
import { select_Auth_ByPageAndCount, insertAuth, updateAuth, deleteAuths } from '../../api/api.js';
import moment from "moment";
import MyBread from "../../components/MyBread.vue";
import {
  select_Auth_ByPageAndCount,
  insertAuth,
  updateAuth,
  deleteAuths,
} from "../../api/api.js";
export default {
  components: { MyBread },
  data() {
@@ -333,10 +398,10 @@
        insert: false,
        update: false,
      },
      formLabelWidth: '100px',
      formLabelWidth: "100px",
      ruleForm: {},
      isTransfer: false,
      dialogTitle: '',
      dialogTitle: "",
      data: [],
      InsertFormdialog: false,
      showinfoBox: false,
@@ -354,8 +419,13 @@
        pageSize: 10,
      },
      defaultProps: {
        children: 'children',
        label: 'label',
        children: "children",
        label: "label",
      },
      tableHeight: 0,
      timer: 0,
      styleVar: {
        height: "calc(100% - 109px)",
      },
    };
  },
@@ -366,21 +436,42 @@
    for (var i = 0; i < permsEntity.length; i++) {
      if (permsEntity[i].perms == val) {
        this.showPermsMenu(permsEntity[i]);
      }
    }
    this.getRoleTabelData();
  },
  mounted() {
    window.addEventListener("resize", this.onResize);
    this.calHeight();
  },
  beforeDestroy() {
    this.timer && clearTimeout(this.timer);
    window.removeEventListener("resize", this.onResize);
  },
  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)`;
      });
    },
    showPermsMenu(res) {
      switch (res.tag) {
        case '/delete':
        case "/delete":
          this.menuStatus.delete = true;
          break;
        case '/insert':
        case "/insert":
          this.menuStatus.insert = true;
          break;
        case '/update':
        case "/update":
          this.menuStatus.update = true;
          break;
      }
@@ -390,34 +481,66 @@
      for (var i in this.multipleSelection) {
        std.push(this.multipleSelection[i].id);
      }
      const data = await deleteAuths({ ids: std.toString() });
      if (data.code == 200) {
        this.$message({
          message: '删除成功!',
          type: 'success',
      this.$confirm("此操作将永久删除该权限, 是否继续?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(async () => {
          const data = await deleteAuths({ 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: "已取消删除",
          });
        });
        this.getRoleTabelData();
      } else {
        this.$message({
          message: '删除失败!',
          type: 'warning',
        });
      }
      // const data = await deleteAuths({ ids: std.toString() });
      // if (data.code == 200) {
      //   this.$message({
      //     message: '删除成功!',
      //     type: 'success',
      //   });
      //   this.getRoleTabelData();
      // } else {
      //   this.$message({
      //     message: '删除失败!',
      //     type: 'warning',
      //   });
      // }
    },
    handleSelectionChange(val) {
      this.multipleSelection = val;
    },
    submitForm(formName) {
      this.getRoleTabelData()
      this.getRoleTabelData();
    },
    resetForm(formName) {
      this.ruleForm = {}
      this.ruleForm = {};
      this.getRoleTabelData();
    },
    EditFromDataClose() {
      this.EditFormdialog = false;
      this.upform = {};
      this.$confirm("关闭后无法保存,是否关闭?")
        .then((_) => {
          this.EditFormdialog = false;
          this.upform = {};
          this.getRoleTabelData();
        })
        .catch((_) => { });
    },
    async EditFromData() {
      const data = await updateAuth(this.upform);
@@ -425,17 +548,16 @@
        this.EditFormdialog = false;
        this.upform = {};
        this.$message({
          message: '修改成功!',
          type: 'success',
          message: "修改成功!",
          type: "success",
        });
        this.getRoleTabelData();
      } else {
        this.$message({
          message: '修改失败!',
          type: 'warning',
          message: "修改失败!",
          type: "warning",
        });
      }
    },
    showDetail(index, row) {
      this.showinfoBox = true;
@@ -458,8 +580,12 @@
      this.getRoleTabelData();
    },
    insertFromDataClose() {
      this.InsertFormdialog = false;
      this.insertform = {};
      this.$confirm("关闭后无法保存,是否关闭?")
        .then((_) => {
          this.InsertFormdialog = false;
          this.insertform = {};
        })
        .catch((_) => { });
    },
    async insertFromData() {
      const data = await insertAuth(this.insertform);
@@ -467,27 +593,27 @@
        this.InsertFormdialog = false;
        this.insertform = {};
        this.$message({
          message: '添加成功!',
          type: 'success',
          message: "添加成功!",
          type: "success",
        });
        this.getRoleTabelData();
      } else {
        this.$message({
          message: '添加失败!',
          type: 'warning',
          message: "添加失败!",
          type: "warning",
        });
      }
    },
    async getRoleTabelData() {
      if (this.listData.tab == '') {
      if (this.listData.tab == "") {
        delete this.listData.tab;
      }
      this.listData.name = this.ruleForm.name;
      const data = await select_Auth_ByPageAndCount(this.listData);
      if (data.code != 200) {
        this.$message.error('列表调用失败');
        this.$message.error("列表调用失败");
      }
      console.log(data.result);
      this.tableData = data.result;
      this.count = data.count;
    },
@@ -499,11 +625,18 @@
      if (date === undefined || date === null) {
        return;
      }
      return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss');
      return moment(parseInt(date)).format("YYYY-MM-DD HH:mm:ss");
    },
    handleClick(row) {
      this.dialogTitle = row.name;
      this.isTransfer = true;
    },
    handleClose() {
      this.$confirm("关闭后无法保存,是否关闭?")
        .then((_) => {
          this.InsertFormdialog = false
        })
        .catch((_) => { });
    },
  },
};
@@ -513,214 +646,21 @@
.power_box {
  height: 98%;
  width: 98%;
  padding: 1%;
  position: absolute;
  padding: 0.5%;
  .el-input {
    width: 300px;
  }
  .power_quire {
    overflow: auto;
    padding: 8px;
    /deep/ .el-input__inner {
      background-color: transparent !important;
      border: 1px solid;
      color: white;
    }
    /deep/.el-form-item {
      margin-bottom: 0px;
    }
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    margin-bottom: 10px;
  }
  .table_box {
    height: 72%;
    padding: 10px;
    //padding: 10px;
    //margin-top: 20px;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    /*修改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;
      }
    //margin-bottom: 20px;
    .el-form-item {
      margin: 5px;
    }
  }
  .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;
    }
  }
  .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 {
        color: white;
        font-size: 14px;
      }
      .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-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>
.el-select-dropdown {
  background: #303030;
  border-color: 1px solid;
}
.el-scrollbar__wrap {
  margin-bottom: -20px !important;
  margin-right: -20px !important;
}
.el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {
  background: rgba(255, 255, 255, 0.3);
}
.el-select-dropdown__item {
  color: white !important;
}
</style>