管道基础大数据平台系统开发-【前端】-新系統界面
584911253@qq.com
2023-03-02 8bb00665765e8348aeb3a6e799069287e503e1ab
src/views/maintenance/operationLog.vue
@@ -7,100 +7,122 @@
      ]"
    ></My-bread>
    <el-divider />
    <div class="inquire">
      <div class="herder_box">
        {{ $t('operatManage.operationLogObj.queryRegion') }}
      </div>
      <el-form ref="formData3" :model="form" :inline="true">
        <el-form-item
          :label="$t('operatManage.operationLogObj.username')"
          prop="uname"
        >
          <el-input
            v-model="form.uname"
            :placeholder="$t('operatManage.operationLogObj.pleaseInput')"
          />
        </el-form-item>
        <el-form-item
          :label="$t('operatManage.operationLogObj.operationType')"
          prop="type"
        >
          <el-select
            clearable
            v-model="form.type"
            :placeholder="$t('operatManage.operationLogObj.pleaseSelect')"
          >
            <el-option
              :label="$t('operatManage.operationLogObj.check')"
              value="1"
            />
            <el-option
              :label="$t('operatManage.operationLogObj.added')"
              value="2"
            />
            <el-option
              :label="$t('operatManage.operationLogObj.modification')"
              value="3"
            />
            <el-option
              :label="$t('operatManage.operationLogObj.delete')"
              value="4"
            />
            <el-option
              :label="$t('operatManage.operationLogObj.uploading')"
              value="5"
            />
            <el-option
              :label="$t('operatManage.operationLogObj.download')"
              value="6"
            />
            <el-option
              :label="$t('operatManage.operationLogObj.otherOne')"
              value="0"
            />
          </el-select>
        </el-form-item>
        <el-form-item
          prop="start"
          :label="$t('operatManage.operationLogObj.startTime')"
        >
          <el-date-picker
            format="yyyy-MM-dd HH:mm:ss"
            value-format="yyyy-MM-dd HH:mm:ss"
            v-model="form.start"
            style="width: 100%"
            type="datetime"
            :placeholder="$t('operatManage.operationLogObj.optionDate')"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item
          prop="end"
          :label="$t('operatManage.operationLogObj.endTime')"
        >
          <el-date-picker
            format="yyyy-MM-dd HH:mm:ss"
            value-format="yyyy-MM-dd HH:mm:ss"
            v-model="form.end"
            style="width: 100%"
            type="datetime"
            :placeholder="$t('operatManage.operationLogObj.optionDate')"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item>
          <el-button @click="onSubmit" icon="el-icon-search">{{
            $t('operatManage.operationLogObj.inquire')
          }}</el-button>
          <el-button @click="onEmpty('formData3')" icon="el-icon-delete">{{
            $t('operatManage.operationLogObj.empty')
          }}</el-button>
        </el-form-item>
    <div class="inquire subpage_Div" ref="container">
      <el-form :inline="true" ref="sizeForm" :model="sizeForm">
        <div class="flex_box">
          <div style="margin-right: auto">
            <el-form-item
              prop="uname"
              :label="$t('operatManage.operationLogObj.username')"
            >
              <el-input
                style="width: 200px"
                size="small"
                v-model="sizeForm.uname"
                :placeholder="$t('operatManage.operationLogObj.pleaseInput')"
              />
            </el-form-item>
            <el-form-item
              prop="type"
              :label="$t('operatManage.operationLogObj.operationType')"
            >
              <el-select
                style="width: 200px"
                size="small"
                :popper-append-to-body="false"
                clearable
                v-model="sizeForm.type"
                :placeholder="$t('operatManage.operationLogObj.operationTypeHolder')"
              >
                <el-option
                  :label="$t('operatManage.operationLogObj.check')"
                  value="1"
                />
                <el-option
                  :label="$t('operatManage.operationLogObj.added')"
                  value="2"
                />
                <el-option
                  :label="$t('operatManage.operationLogObj.modification')"
                  value="3"
                />
                <el-option
                  :label="$t('operatManage.operationLogObj.delete')"
                  value="4"
                />
                <el-option
                  :label="$t('operatManage.operationLogObj.uploading')"
                  value="5"
                />
                <el-option
                  :label="$t('operatManage.operationLogObj.download')"
                  value="6"
                />
                <el-option
                  :label="$t('operatManage.operationLogObj.otherOne')"
                  value="0"
                />
              </el-select>
            </el-form-item>
            <el-form-item
              prop="start"
              :label="$t('operatManage.operationLogObj.startTime')"
            >
              <el-date-picker
                  size="small"
                format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"
                v-model="sizeForm.start"
                style="width: 200px"
                type="datetime"
                :placeholder="$t('operatManage.operationLogObj.startTimeHolder')"
              ></el-date-picker>
            </el-form-item>
            <el-form-item
              prop="end"
              :label="$t('operatManage.operationLogObj.endTime')"
            >
              <el-date-picker
                  size="small"
                format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"
                v-model="sizeForm.end"
                style="width: 200px"
                type="datetime"
                :placeholder="$t('operatManage.operationLogObj.endTimeHolder')"
              >
              </el-date-picker>
            </el-form-item>
          </div>
          <div>
            <el-form-item>
              <el-button
                @click="onSubmit"
                icon="el-icon-search"
                size="small"
                type="primary"
                >{{ $t("operatManage.operationLogObj.inquire") }}</el-button
              >
              <el-button
                @click="onEmpty('sizeForm')"
                icon="el-icon-delete"
                type="info"
                size="small"
                >{{ $t("operatManage.operationLogObj.empty") }}</el-button
              >
            </el-form-item>
          </div>
        </div>
      </el-form>
    </div>
    <div class="table_box">
      <el-table :data="tableData" style="width: 100%" height="85%">
    <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)"
      >
        <!-- <el-table-column type="selection" width="55" /> -->
        <el-table-column
          :label="$t('operatManage.operationLogObj.num')"
@@ -158,12 +180,12 @@
          </template>
        </el-table-column> -->
      </el-table>
      <div style="margin-top: 40px" 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"
@@ -175,8 +197,8 @@
</template>
<script>
import MyBread from '../../components/MyBread.vue';
import { operateSelectByPageAndCount } from '../../api/api';
import MyBread from "../../components/MyBread.vue";
import { operateSelectByPageAndCount } from "../../api/api";
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
@@ -186,19 +208,42 @@
  data() {
    return {
      currentPage4: 1,
      form: {},
      sizeForm: {
        uname: "",
        start: null,
        end: null,
        type: [],
      },
      tableData: [],
      listData: {
        pageIndex: 1,
        pageSize: 10,
      },
      count: 0,
      tableHeight: 0,
      timer: 0,
      styleVar: {
        height: "calc(100% - 109px)",
      },
    };
  },
  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 + 30}px)`;
      });
    },
    //格式化时间
    add0(m) {
      return m < 10 ? '0' + m : m;
      return m < 10 ? "0" + m : m;
    },
    //格式化时间
    format(shijianchuo) {
@@ -211,7 +256,7 @@
      var mm = time.getMinutes();
      var s = time.getSeconds();
      return (
        y + '-' + this.add0(m) + '-' + this.add0(d)
        y + "-" + this.add0(m) + "-" + this.add0(d)
        // " " +
        // this.add0(h) +
        // ":" +
@@ -233,25 +278,25 @@
      let data;
      switch (row[column.property]) {
        case 0:
          data = '其它';
          data = "其它";
          break;
        case 1:
          data = '查看';
          data = "查看";
          break;
        case 2:
          data = '新增';
          data = "新增";
          break;
        case 3:
          data = '修改';
          data = "修改";
          break;
        case 4:
          data = '删除';
          data = "删除";
          break;
        case 5:
          data = '上传';
          data = "上传";
          break;
        case 6:
          data = '下载';
          data = "下载";
          break;
      }
      return data;
@@ -264,26 +309,32 @@
      this.listData.pageIndex = val;
      this.getList();
    },
    onEmpty(formData1) {
      this.$refs[formData1].resetFields(); //重置表单数据
      // this.form = {}
      this.form.start = null;
      this.form.end = null;
    },
    onSubmit() {
      this.listData = { ...this.listData, ...this.form };
      this.listData = { ...this.listData, ...this.sizeForm };
      //  console.log(this.listData)
      this.getList();
    },
    onEmpty(formData1) {
      this.$refs[formData1].resetFields(); //重置表单数据
    },
    async getList() {
      const data = await operateSelectByPageAndCount(this.listData);
      if (data.code != 200) {
        return this.$message.error('列表调用失败');
        return this.$message.error("列表调用失败");
      }
      this.tableData = data.result;
      this.count = data.count;
    },
  },
  beforeDestroy() {
    this.timer && clearTimeout(this.timer);
    window.removeEventListener("resize", this.onResize);
  },
  mounted() {
    window.addEventListener("resize", this.onResize);
    this.calHeight();
  },
  created() {
    this.getList();
@@ -293,126 +344,22 @@
<style lang="less" scoped>
//@import url(); 引入公共css类
.operationLog_box {
  border-radius: 10px;
  height: 100%;
  box-sizing: border-box;
  height: 98%;
  width: 98%;
  padding: 0.5% 1%;
  .inquire {
    padding: 10px;
    margin-top: 20px;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    margin-bottom: 20px;
    .herder_box {
      padding: 10px;
      border-bottom: 1px solid #ccc;
      margin-bottom: 20px;
      font-size: 14px;
    }
    /deep/.el-form-item__label {
      color: white;
    }
    /deep/ .el-input__inner {
      background-color: transparent !important;
      border: 1px solid;
      color: white;
    }
  }
  .table_box {
    padding: 10px;
    padding: 0 8px;
    //margin-top: 20px;
    border-radius: 5px;
    overflow: auto;
    height: 480px;
    /*修改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;
      }
    }
    .pagination_box {
      /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;
      }
    //margin-bottom: 20px;
    .el-form-item {
      margin: 5px;
    }
  }
  .text-center {
    text-align: center;
  }