<template>
  <div>
    <div class="warning-table">
      <div class="table">
        <div class="table-header">
          <div
            class="table-header-th"
            v-for="(item, index) in headerList"
            :key="item.title"
            :style="headerStyle[index]"
          >
            {{ item.title }}
          </div>
        </div>
        <div class="table-body">
          <div
            class="table-body-tr"
            v-for="(value, index) in tableData"
            :key="index"
          >
            <div
              class="td"
              v-for="(item, indexs) in value"
              :key="indexs"
              :style="tableContentStyle[indexs]"
            >
              <div v-if="item.type && item.type == 'btn'">
                <a @click="handleClickBtn(item)">{{ item.name }}</a>
              </div>
              <span v-else>{{ item }}</span>
            </div>
          </div>
          <screen-loading v-if="visibleLoading">加载中</screen-loading>
          <div class="no-data" v-if="tableData.length == 0 && !visibleLoading">
            暂无数据
          </div>
        </div>
      </div>
    </div>

    <people-list
      v-if="showedPeopleList && buildingId"
      :buildingId="buildingId"
      :configId="configId"
      :gridName="gridName"
      @close="showedPeopleList = false"
    />
  </div>
</template>

<script>
import ScreenLoading from "../screen-loading/index";
import Vue from "vue";
import peopleList from "./people-list";

export default {
  name: "warning-table",
  components: {
    ScreenLoading,
    peopleList,
  },
  props: {
    headerList: {
      type: Array,
      required: false,
      default: () => {
        return [
          { title: "序号" },
          { title: "所属网格" },
          { title: "所属小区" },
          { title: "楼号" },
          { title: "预警人数" },
          { title: "操作" },
        ];
      },
    },
    tableData: {
      type: Array,
      required: false,
      default: () => {
        return [
          // [
          //   1,
          //   "商丘路社区第一网格",
          //   "商丘路小区",
          //   "2号楼",
          //   "杨颖、王平、刘佳敏、丁辉、杨萍",
          // ],
          // [
          //   2,
          //   "商丘路社区第一网格",
          //   "商丘路小区",
          //   "2号楼",
          //   "杨颖、王平、刘佳敏、丁辉、杨萍",
          // ],
        ];
      },
    },
    // 单独给头部设置样式
    headerStyle: {
      type: Array,
      default: () => {
        return [
          // {
          //   width:'200px',
          //   border:'1px solid red'
          // },
          // {
          //   width:'200px'
          // }
        ];
      },
    },
    // 单独给内容设置样式
    tableContentStyle: {
      type: Array,
      default: () => {
        return [
          // {
          //   width:'200px',
          //   border:'1px solid red'
          // },
          // {
          //   width:'200px'
          // }
        ];
      },
    },
    visibleLoading: {
      type: Boolean,
      default: true,
    },
  },
  data() {
    return {
      // 显示人员详情
      showedPeopleList: false,
      buildingId: "",
      configId: "",
      gridName: "",
    };
  },
  watch: {},

  mounted() {},

  created() {},

  methods: {
    handleClickBtn(item) {
      this.showedPeopleList = true;
      this.buildingId = item.buildingId;
      this.configId = item.configId;
      this.gridName = item.gridName;
    },

    toUserInfo(uid) {
      this.$router.push({ path: `/main-shuju/visual-basicinfo-people/${uid}` });
    },
  },
};
</script>

<style lang="scss" scoped>
.warning-table {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  .table {
    width: 100%;
    height: 100%;
    border: 1px solid #dfdfdd;

    &-header {
      width: 100%;
      height: 50px;
      display: flex;
      justify-content: space-around;
      align-items: center;
      background: #2194fe;
      font-size: 16px;
      font-weight: 400;
      color: #ffffff;

      &-th {
        text-align: center;
        width: 20%;
        &:nth-child(1) {
          width: 5%;
        }
        &:nth-child(2) {
          width: 25%;
        }
        &:nth-child(3) {
          width: 25%;
        }
        &:nth-child(4) {
          width: 15%;
        }
        &:nth-child(5) {
          width: 15%;
        }
        &:nth-child(6) {
          width: 15%;
        }
      }
    }

    &-body {
      box-sizing: border-box;
      width: 100%;
      height: calc(100% - 50px);
      font-size: 16px;
      font-weight: 400;
      color: #333;
      &-tr {
        width: 100%;
        height: 50px;
        display: flex;
        justify-content: space-around;
        align-items: center;
        border-bottom: 1px dashed #dfdfdd;

        .td {
          text-align: center;
          width: 20%;
          border-left: 1px dashed #dfdfdd;
          height: 50px;
          display: flex;
          align-items: center;
          justify-content: center;

          &:nth-child(1) {
            width: 5%;
          }
          &:nth-child(2) {
            width: 25%;
          }
          &:nth-child(3) {
            width: 25%;
          }
          &:nth-child(4) {
            width: 15%;
          }
          &:nth-child(5) {
            width: 15%;
          }
          &:nth-child(6) {
            width: 15%;
          }
          a {
            cursor: pointer;
          }
          .more {
            margin: 0 10px;
            font-size: 16px;
            font-weight: 400;
            color: #e4dc00;
            position: relative;
            cursor: pointer;

            &-pop {
              box-sizing: border-box;
              display: block;
              box-sizing: border-box;
              width: 600px;
              max-height: 300px;
              height: auto;
              overflow-y: auto;
              line-height: 20px;
              border: 1px solid red;
              position: absolute;
              right: 0;
              bottom: 150%;
              background: #fff;
              box-shadow: 0 0 10px 0 #2194fe;
              border: 1px solid #42a4fe;
              border-radius: 5px;
              font-size: 16px;
              font-weight: 400;
              color: #333;
              padding: 16px 8px 10px 9px;
              z-index: 1;
              cursor: default;
            }
          }
        }

        &:last-child {
          border-bottom: none;
        }
      }

      &-tr:nth-child(2n) {
      }

      &-tr:hover {
        background: rgba(16, 75, 164, 0.1);
      }
      // 暂无数据
      .no-data {
        width: 100%;
        height: calc(100vh - 650px);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
        color: #999999;
        text-align: center;
      }
    }
  }
}
</style>
