liufan9527
2024-11-27 f841f45e41dee0ecd167e23f260e33005bfe1e77
页面搭建
已添加7个文件
已修改3个文件
576 ■■■■■ 文件已修改
se-index/src/assets/img/interactive/call_icon.png 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/assets/img/interactive/details.png 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/assets/img/interactive/left_bg.png 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/assets/img/interactive/left_btn.png 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/assets/img/interactive/left_btn_height.png 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/assets/img/interactive/refresh_icon.png 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/assets/img/interactive/yes.png 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/components/door.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/components/home.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/components/interactive.vue 570 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-index/src/assets/img/interactive/call_icon.png
se-index/src/assets/img/interactive/details.png
se-index/src/assets/img/interactive/left_bg.png
se-index/src/assets/img/interactive/left_btn.png
se-index/src/assets/img/interactive/left_btn_height.png
se-index/src/assets/img/interactive/refresh_icon.png
se-index/src/assets/img/interactive/yes.png
se-index/src/components/door.vue
@@ -90,10 +90,12 @@
  padding: 0 60px;
  display: flex;
  justify-content: space-between;
  height: 100%;
  .item {
    width: 554px;
    height: 830px;
    height: 90%;
    background: url("../assets/img/home/door_bg.png");
    background-size: 100% 100%;
    .title {
      position: relative;
      font-family: Source Han Sans SC;
se-index/src/components/home.vue
@@ -117,7 +117,7 @@
  }
  .content {
    width: 100%;
    height:calc(100vh - 183px);
    height:calc(100vh - 147px);
    margin-top: 60px;
  }
}
se-index/src/components/interactive.vue
@@ -1,11 +1,575 @@
<template>
  <div class="interactive">
    <h1>1111111111</h1>
    <div class="left">
      <div
        :class="leftBtnName == item ? 'btn-height' : 'btn'"
        v-for="(item, index) in leftBtnList"
        :key="index"
        @click="leftBtnClick(item, index)"
      >
        {{ item }}
      </div>
    </div>
    <div class="right">
      <div class="select">
        <div class="log">
          <div class="name">通道异常日志</div>
          <div class="sum">1</div>
        </div>
        <div class="from">
          <el-form style="margin-bottom: 20px" label-width="120px">
            <el-row style="height: 50px">
              <el-form-item style="float: left" label="信源:">
                <el-select
                  :popper-append-to-body="false"
                  v-model="source.value"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in source.options"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item style="float: left" label="信宿:">
                <el-select
                  :popper-append-to-body="false"
                  v-model="destination.value"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in destination.options"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item style="float: left" label="传输方式:">
                <el-select
                  :popper-append-to-body="false"
                  v-model="transmission.value"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in transmission.options"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-row>
          </el-form>
        </div>
        <div class="refresh">
          <img src="../assets/img/interactive/refresh_icon.png" alt="" />
          <div class="name">刷新</div>
        </div>
        <div class="call">
          <img src="../assets/img/interactive/call_icon.png" alt="" />
          <div class="name">全部报警</div>
        </div>
      </div>
      <el-table :data="table.data" height="85%">
        <el-table-column label="信源" width="150px">
          <template slot-scope="scope">
            <div>
              {{ scope.row.source }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="信宿">
          <template slot-scope="scope">
            <div>
              {{ scope.row.destination }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="传输方式">
          <template slot-scope="scope">
            <div>
              {{ scope.row.transmission }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="状态">
          <template>
            <img src="../assets/img/interactive/yes.png" alt="" />
          </template>
        </el-table-column>
        <el-table-column label="描述">
          <template slot-scope="scope">
            <div>
              {{ scope.row.describe }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="传输数据">
          <template slot-scope="scope">
            <div>
              {{ scope.row.transfer }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="故障报警">
          <template slot-scope="scope">
            <el-switch v-model="scope.row.call"> </el-switch>
          </template>
        </el-table-column>
        <el-table-column label="异常处理">
          <template slot-scope="scope">
            <div>
              {{ scope.row.abnormal }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="更新时间">
          <template slot-scope="scope">
            <div>
              {{ scope.row.time }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="健康">
          <template>
            <img src="../assets/img/interactive/yes.png" alt="" />
          </template>
        </el-table-column>
        <el-table-column label="可用">
          <template>
            <img src="../assets/img/interactive/yes.png" alt="" />
          </template>
        </el-table-column>
        <el-table-column label="详情">
          <template>
            <img
              src="../assets/img/interactive/details.png"
              alt=""
              @click="detailsClick"
            />
          </template>
        </el-table-column>
      </el-table>
      <div class="block">
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="currentPage"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="10"
          layout="total, sizes, prev, pager, next, jumper"
          :total="40"
        >
        </el-pagination>
      </div>
    </div>
  </div>
</template>
<script>
export default {};
export default {
  data() {
    return {
      leftBtnList: ["交互通道管理", "交互过程监控"],
      leftBtnName: "交互通道管理",
      source: {
        options: [
          {
            value: "qx102stect1",
            label: "qx102stect1"
          },
          {
            value: "qx102stect2",
            label: "qx102stect2"
          }
        ],
        value: ""
      },
      destination: {
        options: [
          {
            value: "qx102stect1",
            label: "qx102stect1"
          },
          {
            value: "qx102stect2",
            label: "qx102stect2"
          }
        ],
        value: ""
      },
      transmission: {
        options: [
          {
            value: "qx102stect1",
            label: "qx102stect1"
          },
          {
            value: "qx102stect2",
            label: "qx102stect2"
          }
        ],
        value: ""
      },
      table: {
        data: [
          {
            source: "数据管理分系统",
            destination: "分系统",
            transmission: "消息中间件",
            state: "",
            describe: "系统管理服务数裾",
            transfer: "",
            call: "",
            abnormal: "通道断开",
            time: "2024-11-05 09:51:34",
            healthy: "是",
            available: "是",
            details: ""
          },
          {
            source: "数据管理分系统",
            destination: "分系统",
            transmission: "消息中间件",
            state: "是",
            describe: "网关服务",
            transfer: "",
            call: "",
            abnormal: "传输超时",
            time: "2024-11-05 18:20:04",
            healthy: "是",
            available: "是",
            details: ""
          }
        ],
        tableTh: [
          {
            label: "信源",
            prop: "source"
          },
          {
            label: "信宿",
            prop: "destination"
          },
          {
            label: "传输方式",
            prop: "transmission"
          },
          {
            label: "状态",
            prop: "state"
          },
          {
            label: "描述",
            prop: "describe"
          },
          {
            label: "传输数据",
            prop: "transfer"
          },
          {
            label: "故障报警",
            prop: "call"
          },
          {
            label: "异常处理",
            prop: "abnormal"
          },
          {
            label: "更新时间",
            prop: "time"
          },
          {
            label: "健康",
            prop: "healthy"
          },
          {
            label: "可用",
            prop: "available"
          },
          {
            label: "详情",
            prop: "details"
          }
        ]
      },
      currentPage: 4
    };
  },
  methods: {
    leftBtnClick(item, index) {
      this.leftBtnName = item;
    },
    detailsClick() {},
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`);
    },
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`);
    }
  }
};
</script>
<style lang="less" scope></style>
<style lang="less" scoped>
.interactive {
  padding: 20px 30px;
  display: flex;
  height: 100%;
  .left {
    padding-top: 20px;
    width: 320px;
    height: 90%;
    background: url("../assets/img/interactive/left_bg.png") no-repeat;
    background-size: 100% 100%;
    font-family: Source Han Sans SC;
    font-weight: 400;
    font-size: 18px;
    color: #ffffff;
    .btn {
      margin: 20px auto;
      width: 268px;
      height: 43px;
      line-height: 43px;
      text-align: center;
      background: url("../assets/img/interactive/left_btn.png");
    }
    .btn-height {
      margin: 20px auto;
      width: 268px;
      height: 43px;
      line-height: 43px;
      text-align: center;
      background: url("../assets/img/interactive/left_btn_height.png");
    }
  }
  .right {
    position: relative;
    margin-left: 30px;
    padding-top: 20px;
    height: 90%;
    .select {
      display: flex;
      .log {
        position: relative;
        width: 128px;
        height: 48px;
        background: radial-gradient(circle, #00c0fa 0%, #015eea 100%);
        border-radius: 6px;
        .name {
          width: 100%;
          height: 100%;
          text-align: center;
          line-height: 48px;
          font-family: Source Han Sans SC;
          font-weight: 400;
          font-size: 18px;
          color: #ffffff;
        }
        .sum {
          position: absolute;
          right: -10px;
          top: -10px;
          width: 25px;
          height: 25px;
          text-align: center;
          line-height: 25px;
          background: #10ad40;
          border-radius: 50%;
          border: 1px solid #ffffff;
          font-size: 14px;
          color: #ffffff;
        }
      }
      .from {
        margin-left: 300px;
      }
      .refresh {
        margin-left: 10px;
        display: flex;
        align-items: center;
        width: 76px;
        height: 50px;
        line-height: 50px;
        background: #015eea;
        border-radius: 6px;
        font-size: 18px;
        color: #ffffff;
        img {
          margin-left: 5px;
          width: 23px;
          height: 23px;
        }
        .name {
          margin-left: 5px;
        }
      }
      .call {
        margin-left: 10px;
        display: flex;
        align-items: center;
        width: 115px;
        height: 49px;
        line-height: 49px;
        background: #083d62;
        border-radius: 6px;
        border: 1px solid #4b96dd;
        font-size: 18px;
        color: #ffffff;
        img {
          margin-left: 5px;
          width: 23px;
          height: 23px;
        }
        .name {
          margin-left: 5px;
        }
      }
    }
    .block {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      /deep/.el-pagination__total {
        margin-top: 8px;
        font-size: 18px;
        color: #ffffff;
      }
      /deep/.el-input__inner {
        width: 110px;
        height: 40px;
        font-size: 18px;
      }
      /deep/.btn-prev {
        margin-top: 6px;
        color: #fff;
        background: rgba(0, 0, 0, 0);
      }
      /deep/.btn-next {
        margin-top: 6px;
        color: #fff;
        background: rgba(0, 0, 0, 0);
      }
      /deep/.el-pager {
        margin-top: 6px;
        .number {
          background: rgba(0, 0, 0, 0);
          font-size: 18px;
          color: #fff;
        }
        .active {
          color: #0cb8ff;
        }
      }
      /deep/.el-icon {
        font-size: 16px;
      }
      /deep/.el-pagination__jump {
        font-size: 18px;
        color: #fff;
      }
      /deep/.el-pagination__editor {
        width: 100px;
        margin-left: 10px;
        .el-input__inner {
          width: 60px;
          background: rgba(0, 0, 0, 0);
          border: 1px solid #409eff;
          color: #fff;
          font-size: 18px;
        }
      }
    }
  }
}
/deep/ .el-form-item__label {
  margin-top: 5px;
  color: #fff;
  font-size: 16px;
}
/deep/ .el-select {
  input {
    border: 1px solid #4b96dd;
    background-color: rgba(0, 0, 0, 0);
    color: #ddd;
    height: 50px;
    width: 160px;
    font-size: 16px;
  }
}
/deep/ .el-select-dropdown {
  border: 1px solid #4b96dd;
  background-color: #091631;
  .el-select-dropdown__item.hover,
  .el-select-dropdown__item:hover {
    background-color: #2d4c9e;
    color: #fff;
  }
  .el-select-dropdown__item {
    color: #bbb;
  }
}
/deep/ .el-table {
  background-color: rgba(0, 0, 0, 0);
  thead {
    tr {
      th {
        background-color: #2d4c9e;
        border-bottom: 0px;
        .cell {
          font-weight: 400;
          font-size: 20px;
          color: #fff;
          text-shadow: 0px 0px 2px #00fbff;
        }
      }
    }
  }
  tbody {
    font-size: 16px;
    color: #fff;
    tr {
      background-color: rgba(0, 0, 0, 0);
      td {
        background-color: rgba(0, 0, 0, 0);
        border-bottom: 0px;
      }
    }
    tr:hover {
      border: 2px solid #4b96dd;
      td {
        background-color: #2d4c9e;
      }
    }
  }
}
/deep/ .el-table::before {
  height: 0px;
}
</style>
<style>
.el-select-dropdown {
  border: 1px solid #4b96dd;
  background-color: #091631;
}
.el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {
  background-color: #2d4c9e;
  color: #fff;
}
.el-select-dropdown__item {
  color: #bbb;
}
</style>