<template>
  <div id="con">
    <Notice v-show="isNotice" :noticeName="noticeName"></Notice>
    <div v-show="!isNotice">
      <div class="flex">
        <div class="left box">
          <video :src="videoSrc" controls class="video" />
        </div>
        <!-- 新闻会议tab -->
        <div class="right box tabbox videoboxs">
          <el-tabs v-model="curTab" @tab-click="handleClick">
            <el-tab-pane
              v-for="(e, index) in tabList"
              :key="index"
              :label="e.title"
              :name="index + 1 + ''"
            >
              <ul
                class="tabslist videoTabList"
                :style="{ height: videoHeight }"
              >
                <li
                  v-for="(item, index) in noticeList"
                  :key="index"
                  title="点击查看pdf文件"
                  @click="setPdf(item)"
                >
                  <div class="left">
                    <div class="circle"></div>
                    <span class="isTop" v-if="item.isTop">置顶</span>
                    {{ item.articleTitle }}
                  </div>
                  <div class="right">{{ item.createTime }}</div>
                </li>
              </ul>
            </el-tab-pane>
          </el-tabs>
        </div>
      </div>
      <!-- 联盟地图 -->
      <div class="dataAnalysis map_box">
        <div class="flex">
          <div class="left box cenbox">
            <div class="box_title text-center">联盟地图</div>
            <!-- <img class="map" src="~@/assets/img/Home/map.png" alt="" /> -->
            <Map></Map>
          </div>
          <div class="right box tabbox" style="height: 458px">
            <el-tabs v-model="exTab">
              <el-tab-pane
                v-for="(e, index) in example"
                :key="index"
                :label="e.title"
                :name="e.title"
              >
                <ul
                  class="tabslist"
                  style="height: 380px"
                  :loading="listLoading"
                >
                  <li
                    v-for="(item, index) in exampleList"
                    :key="index"
                    title="点击查看pdf文件"
                    @click="setPdf(item)"
                  >
                    <div class="left">
                      <div class="circle"></div>
                      {{ item.articleTitle }}
                    </div>
                    <div class="right">
                      {{ item.createTime }}
                    </div>
                  </li>
                </ul>
              </el-tab-pane>
            </el-tabs>
          </div>
        </div>
      </div>
      <!-- 机构排名 -->
      <div class="dataAnalysis" style="background: #fff">
        <div class="flex" style="margin-bottom: 0px">
          <div class="box cenbox cenboxs">
            <div class="range left_range">
              <div class="text-center">
                <span class="range_title text-center">
                  累计上报合格病例数机构排名
                </span>
              </div>
              <div class="rangecontent">
                <div class="top20"></div>
                <ul class="rangeList">
                  <li
                    v-for="(item, index) in rangeList"
                    :key="index"
                    :style="{
                      color: index < 3 ? '#4E68FF' : '#333333',
                      alignSelf: index > 9 ? 'flex-end' : '',
                    }"
                  >
                    <div>{{ index + 1 }}</div>
                    <div>{{ item.unionName }}</div>
                    <div>{{ item.nums }}</div>
                  </li>
                </ul>
              </div>
            </div>
            <div class="range">
              <div class="text-center">
                <span class="range_title text-center"
                  >近90天上报量机构排名</span
                >
              </div>

              <div class="rangecontent">
                <div class="top10"></div>
                <ul class="rangeList">
                  <li
                    v-for="(item, index) in curQuarterList"
                    :key="index"
                    :style="{
                      color: index < 3 ? '#4E68FF' : '#333333',
                    }"
                  >
                    <div>{{ index + 1 }}</div>
                    <div>{{ item.unionName }}</div>
                    <div>{{ item.nums }}</div>
                  </li>
                </ul>
              </div>
            </div>
          </div>
        </div>
      </div>

      <!-- 健康科普 -->
      <!-- <div class="healthPopularization">
        <div class="title_box">
          <div class="title">健康科普</div>
          <div class="empty"></div>
        </div>
        <ul class="typeList">
          <li
            v-for="(item, index) in typeList"
            :key="index"
            :style="{ backgroundImage: 'url(' + item.src + ')' }"
            @click="
              $router.push({
                path: '/healthpopularization',
                query: { tabIndex: index },
              })
            "
          >
            {{ item.name }}
          </li>
        </ul>
      </div> -->

      <!--  科学研究 -->
      <div class="scientificresearch">
        <div class="title_box">
          <div class="title">科学研究</div>
          <div class="empty"></div>
        </div>
        <ul class="researchList">
          <li
            v-for="(item, index) in researchList"
            :key="index"
            @click="
              $router.push({
                path: '/scientificresearch',
                query: { tabIndex: index },
              })
            "
          >
            {{ item }}
          </li>
        </ul>
      </div>
      <!-- 粘性定位 -->
      <div v-show="showFixed" class="fixed_box">
        <ul class="f_list">
          <el-popover
            v-for="(item, index) in rigBarList"
            :key="index"
            popper-class="poperbackground"
            placement="left-start"
            title=""
            width="200"
            trigger="hover"
            :content="item.content"
          >
            <li
              slot="reference"
              :style="{ background: fixIndex == index ? '#4e68ff' : '#fff' }"
              @mouseenter="fixIndex = index"
              @mouseleave="fixIndex = -1"
            >
              <template v-if="fixIndex == index">
                <img :src="item.src2" alt="" /><span style="color: #fff">{{
                  item.name
                }}</span>
              </template>
              <template v-else>
                <img :src="item.src1" alt="" /><span>{{ item.name }}</span>
              </template>
            </li>
          </el-popover>
        </ul>
      </div>
    </div>

    <!-- 弹窗 -->
    <pdf-dialog
      ref="pdfDialog"
      :cur-pdf="curPdf"
      :pdf-src="pdfSrc"
    ></pdf-dialog>
  </div>
</template>
<script>
import { getRankTotal, getCurrentQuarter } from "@/api/Home"
import { articleList } from "@/api/operation-management"
import Map from "./Map"
import PdfDialog from "./PdfDialog/index.vue"
import Notice from "./notice/index.vue"
export default {
  components: { Map, PdfDialog, Notice },
  data() {
    return {
      noticeName: "",
      isNotice: false,
      curPdf: {},
      pdfSrc: "",
      videoHeight: "0px",
      fixIndex: -1,
      videoSrc: require("../../../public/video.mp4"),
      // videoSrc: "",
      exTab: "浙江省典型案例",
      example: [
        {
          title: "浙江省典型案例",
        },
      ],
      exampleList: [],
      tabList: [
        {
          title: "新闻会议",
        },
        {
          title: "通知公告",
        },
        {
          title: "学术动态",
        },
        {
          title: "健康知识",
        },
      ],
      noticeTopList: [
        {
          articleTitle: "申请加入国家消化道早癌防治中心联盟",
          createTime: "2022-09-20",
          isTop: 1,
          name: "AllianceApply",
          moduleType: 99,
        },
        {
          name: "HospitalsList",
          articleTitle: "GECA联盟理事及医院名单",
          createTime: "2022-11-20",
          isTop: 1,
          moduleType: 99,
        },
      ],
      noticeList: [],
      curTab: "1",
      listLoading: false,
      rangeList: [], // 上报排名
      curQuarterList: [], //当前季度排名
      typeList: [
        {
          src: require("@/assets/img/Home/shaicha.png"),
          name: "筛查",
          route: "/healthpopularization",
        },
        {
          src: require("@/assets/img/Home/shenghuo.png"),
          name: "生活",
        },
        {
          src: require("@/assets/img/Home/yixuezhishi.png"),
          name: "医学知识",
        },
        {
          src: require("@/assets/img/Home/qita.png"),
          name: "其他",
        },
      ],
      rigBarList: [
        {
          src1: require("@/assets/img/Home/kefu.png"),
          src2: require("@/assets/img/Home/kefuwhite.png"),
          content: "021-31161236",
          name: "客服",
        },
        {
          src1: require("@/assets/img/Home/youxiang.png"),
          src2: require("@/assets/img/Home/youxiangwhite.png"),
          content: "service@gecachina.cn",
          name: "邮箱",
        },
        {
          src1: require("@/assets/img/Home/dizhi.png"),
          src2: require("@/assets/img/Home/dizhiwhite.png"),
          content: "上海市杨浦区长海路168号综合保障楼4楼",
          name: "地址",
        },
      ],
      researchList: ["筛查技术方案", "筛查指南", "学术成果", "项目进展与成果"],
      showFixed: false,
    }
  },
  created() {
    this.getArticleList("1")
    this.getArticleList("6")
  },
  mounted() {
    this.getRankTotal()
    this.getCurrentQuarter()
    // console.log(document.querySelector("#vue-admin-beautiful"))
    this.$nextTick(() => {
      document
        .querySelector("#vue-admin-beautiful")
        .addEventListener("scroll", () => {
          let scrollTop = document.querySelector("#vue-admin-beautiful")
            .scrollTop
          if (scrollTop >= 700) {
            this.showFixed = true
          } else {
            this.showFixed = false
          }
        })

      var video = document.querySelector("video")
      video.addEventListener("canplay", (e) => {
        console.log(e.target.clientHeight)
        this.videoHeight = e.target.clientHeight - 66 + "px"
      })
    })

    window.onresize = () =>
      (() => {
        this.$nextTick(() => {
          this.videoHeight =
            document.querySelector("video").clientHeight - 66 + "px"
        })
      })()
  },
  beforeDestroy() {
    window.onresize = () => {}
  },
  methods: {
    setPdf(item) {
      if (item.moduleType === 99) {
        this.noticeName = item.name
        this.isNotice = true
        return
      }
      this.$refs.pdfDialog.showPdf = true
      this.curPdf = item
      this.pdfSrc =
        "https://ds.cixincloud.com/geca-api/disease-data/file/info/" +
        item.filePath[0].bucketName +
        "/" +
        item.filePath[0].uuidName
    },
    handleClick() {
      // if (this.curTab == "4") {
      // } else {
      this.getArticleList(this.curTab)
      // }
    },
    // 获取新闻会议tab的数据
    getArticleList(moduleType) {
      this.listLoading = true
      let params = {
        size: 10,
        current: 1,
        moduleType: moduleType,
        status: 1,
      }
      articleList(params)
        .then((res) => {
          if (res.code == 1) {
            if (["1", "2", "3", "4"].includes(moduleType)) {
              const d = res.data.records
              if (moduleType === "2") {
                this.noticeList = [...this.noticeTopList, ...d]
              } else {
                this.noticeList = [...d]
              }
            }
            if (["6"].includes(moduleType)) {
              this.exampleList = [...res.data.records]
            }
          }
        })
        .catch((e) => {
          this.listLoading = false
        })
    },
    getRankTotal() {
      getRankTotal().then((res) => {
        if (res.code == 1) {
          this.rangeList = res.data
        }
      })
    },
    getCurrentQuarter() {
      getCurrentQuarter().then((res) => {
        if (res.code == 1) {
          this.curQuarterList = res.data
        }
      })
    },
  },
}
</script>
<style lang="scss" scoped>
#con {
  .flex {
    height: 100%;
    display: flex;
    justify-content: space-between;
    margin-bottom: 38px;
    .box {
      width: 48%;
      height: 100%;
      // background: blue;
      background: #fff;

      .video {
        width: 100%;
        border-radius: 5px;
        // height: 420px;
        object-fit: fill;
      }
    }
    .tabbox {
      padding: 8px 16px;
      border-radius: 8px;
      overflow: hidden;
      .tabslist {
        padding-right: 8px;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        // justify-content: space-between;
        // &:hover {
        // overflow: overlay;
        // }

        li {
          display: flex;
          align-items: center;
          justify-content: space-between;
          font-size: 14px;
          font-family: AlibabaPuHuiTiR;
          color: #666666;
          margin-bottom: 16px;
          cursor: pointer;
          .left {
            display: flex;
            align-items: center;
            .isTop {
              width: 40px;
              height: 20px;
              padding: 2px 5px;
              color: #7085fe;
              background: rgba(112, 133, 254, 0.1);
              border-radius: 1px;
            }
            .circle {
              width: 4px;
              height: 4px;
              background: #7085fe;
              border-radius: 50%;
              margin-right: 8px;
            }
          }
        }
      }
    }
    .videoboxs {
      // height: 100%;
    }
  }
  .dataAnalysis {
    margin-bottom: 32px;
    padding: 32px;
    .box_title {
      width: 180px;
      height: 36px;
      background: #4e68ff;
      border-radius: 0px 0px 4px 4px;
      font-size: 16px;
      font-family: AlibabaPuHuiTiM;
      color: #ffffff;
      margin: 0 auto;
      line-height: 36px;
    }
    .range_title {
      position: relative;
      font-size: 20px;
      font-family: AlibabaPuHuiTiB;
      color: #333333;
      font-weight: bold;
      &::after {
        content: "实时统计";
        font-size: 14px;
        font-family: AlibabaPuHuiTiR;
        color: #4e68ff;
        background: rgba(78, 104, 255, 0.1);
        border-radius: 2px;
        width: 62px;
        height: 20px;
        font-weight: normal;
        position: absolute;
        right: -74px;
        top: 4px;
      }
    }
    .cenbox {
      height: 458px;
      #map {
        width: 100%;
        height: 422px;
        object-fit: contain;
      }
    }
    .cenboxs {
      width: 100%;
      display: flex;
      justify-content: space-between;
      .range {
        width: 32%;
        background: #ffffff;
        border-radius: 4px;
        padding: 0 7px;
        .rangecontent {
          margin-top: 24px;
          height: 408px;
          background: rgba(78, 104, 255, 0.04);
          border-radius: 4px;
          padding: 24px 32px;
          font-size: 14px;
          font-family: AlibabaPuHuiTiM;
          // color: #4e68ff;
          .rangeList {
            li {
              margin-bottom: 15px;
              display: flex;
              justify-content: space-between;
              div:nth-child(1) {
                width: 20px;
              }
              div:nth-child(2) {
                flex: 1;
              }
              div:nth-child(3) {
                text-align: right;
              }
            }
          }
        }
        .top10 {
          height: 32px;
          background: url("~@/assets/img/Home/top10.png") no-repeat center
            center;
          background-size: contain;
          margin-bottom: 18px;
        }
        .top20 {
          height: 32px;
          background: url("~@/assets/img/Home/top20.png") no-repeat center
            center;
          background-size: contain;
          margin-bottom: 18px;
        }
      }
      .left_range {
        width: 60%;
        .rangecontent {
          .rangeList {
            height: 100%;
            display: flex;
            flex-direction: column;
            flex-wrap: wrap;
            li {
              width: 40%;
              margin-bottom: 15px;
              display: flex;
              justify-content: space-between;

              div:nth-child(1) {
                width: 20px;
              }
              div:nth-child(2) {
                flex: 1;
              }
              div:nth-child(3) {
                text-align: right;
              }
            }
          }
        }
      }
    }
  }
  .map_box {
    padding: 0;
  }
  .healthPopularization {
    .typeList {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      li {
        cursor: pointer;
        width: 23%;
        margin-bottom: 24px;
        height: 188px;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 24px;
        color: #ffffff;
        background-position: center center;
        background-repeat: no-repeat;
        background-size: cover;
      }
    }
  }
  .scientificresearch {
    .researchList {
      display: flex;
      margin-bottom: 20px;
      li {
        width: 188px;
        height: 64px;
        background: #ffffff;
        box-shadow: 0px 4px 1px 1px #3d58f9;
        text-align: center;
        line-height: 64px;
        border-radius: 4px;
        border: 1px solid rgba(78, 104, 255, 0.12);
        font-size: 16px;
        font-family: AlibabaPuHuiTiM;
        color: #333333;
        margin-right: 20px;
        cursor: pointer;
      }
    }
  }
  .title_box {
    display: flex;
    margin-bottom: 24px;
    .title {
      width: 64px;
      height: 30px;
      font-size: 16px;
      font-family: AlibabaPuHuiTiM;
      color: #4e68ff;
      line-height: 22px;
      border-bottom: 2px solid #4e68ff;
    }
    .empty {
      flex: 1;
      height: 30px;
      border-bottom: 2px solid #ffffff;
    }
  }
  .fixed_box {
    background: #fff;
    position: fixed;
    padding: 20px 0px;
    right: 30px;
    bottom: 300px;
    z-index: 1000;
    .f_list {
      li {
        display: flex;
        align-items: center;
        padding: 16px 14px;
        cursor: pointer;
        img {
          width: 20px;
          height: 20px;
          margin-right: 5px;
        }
        span {
          width: 28px;
          font-size: 14px;
          font-family: AlibabaPuHuiTiR;
          color: #333333;
        }
      }
    }
  }
}
</style>
<style lang="scss">
.poperbackground {
  background-color: #4e68ff !important;
  border-color: #4e68ff !important;
  color: #ffffff;
}
.poperbackground[x-placement^="left"] .popper__arrow::after {
  border-left-color: #4e68ff;
}
</style>
