<!--
 * @Version: 1.0
 * @Author: kery.chen
 * @Description: 总体概览左侧
 * @Date: 2021-11-30 11:08:50
 * @LastEditTime: 2024-10-12 15:30:55
 * @FilePath     : \\tcingiocpro\\src\\views\\privateOrder\\ecosphere\\components\\componentLeft.vue
-->
<template>
  <div class="container">
    <div class="module-container">
      <!-- <div class="section-process">
        <module-title>网络生态</module-title> -->
      <!-- <div class="section-process-outline">
          <div class="column">
            <div class="top_column">
              <div class="top_column1" @click="processDetails('登记约谈')">
                <img
                  class="process-img"
                  src="@/assets/ecosphere/first/icon-登记约谈.png"
                  alt=""
                />
                <div class="process-font">登记约谈</div>
              </div>
              <div class="top_column2" @click="processDetails('审核通过')">
                <img
                  class="process-img"
                  src="@/assets/ecosphere/first/icon-审核通过.png"
                  alt=""
                />
                <div class="process-font">审核通过</div>
              </div>
            </div>
            <div class="center_column">
              <div class="center_column1" @click="processDetails('约谈笔录')">
                <img
                  class="process-img"
                  src="@/assets/ecosphere/first/icon-约谈笔录.png"
                  alt=""
                />
                <div class="process-font">约谈笔录</div>
              </div>
              <div class="center_column2" @click="processDetails('送达通知书')">
                <img
                  class="process-img"
                  src="@/assets/ecosphere/first/icon-送达通知书.png"
                  alt=""
                />
                <div class="process-font">送达通知书</div>
              </div>
              <div
                class="center_column3"
                @click="processDetails('生成约谈通知书')"
              >
                <img
                  class="process-img"
                  src="@/assets/ecosphere/first/icon-生成约谈通知书.png"
                  alt=""
                />
                <div class="process-font">生成约谈通知书</div>
              </div>
            </div>
            <div class="bottom_column">
              <div
                class="bottom_column1"
                @click="processDetails('生成整改通知书送达回执')"
              >
                <img
                  class="process-img"
                  src="@/assets/ecosphere/first/icon-生成整改.png"
                  alt=""
                />
                <div class="process-font">生成整改通知 书送达回执</div>
              </div>
              <div class="bottom_column2" @click="processDetails('扫描归档')">
                <img
                  class="process-img"
                  src="@/assets/ecosphere/first/icon-扫描归档.png"
                  alt=""
                />
                <div class="process-font">扫描归档</div>
              </div>
            </div>
          </div>
        </div> -->
      <div class="section-superviseObject">
        <module-title>网路生态</module-title>
        <div class="section-object">
          <div class="section-bg">
            <div
              v-for="(item, idx) in superviseObject"
              :key="idx"
              :class="['section-object-item', item.className]"
              @click="showAttack(item.title, item.type)"
              class="item"
            >
              <div class="item-content">
                {{ item.title }}
              </div>
              <div class="circle-platform">
                <div class="user-icon">
                  <img :src="item.url" alt="" />
                </div>
                <div class="platform-glow"></div>
              </div>
            </div>
            <!-- <div class="section-center" /> -->
          </div>
        </div>
      </div>
      <!-- </div> -->
      <div class="section-inventory">
        <module-title>三份清单</module-title>
        <div
          class="three-inventory"
          @mouseover="inventoryMouseOver"
          @mouseleave="inventoryLeave"
        >
          <div
            v-for="(item, index) in inventoryList"
            :key="index"
            :class="threeStatus === item.id ? 'checked' : 'unchecked'"
            class="three-inventory-item"
          >
            <!-- @click="inventoryBtn(item.id, item.title)" -->
            <div class="icon-container">
              <img
                class="hex-icon"
                :src="require(`@/assets/sentimeent/${item.url}`)"
                alt=""
              />
              <div class="arrow-down"></div>
            </div>
            <div class="inventory-title">{{ item.title }}</div>
          </div>
        </div>
      </div>
      <div class="section-dynamic">
        <module-title>翻墙管理</module-title>
        <div class="firewall-container">
          <!-- 顶部卡片区域 -->
          <div class="firewall-stats">
            <div
              class="stat-card"
              v-for="(item, index) in firewallStats"
              :key="index"
            >
              <div class="stat-icon">
                <img :src="item.url" alt="" class="cube-icon" />
              </div>
              <div class="stat-content">
                <div class="stat-number">
                  {{ item.number }}<span class="stat-unit">起</span>
                </div>
                <div class="stat-dept">xxxx局</div>
              </div>
            </div>
          </div>

          <!-- 表格区域 -->
          <div class="firewall-table">
            <div class="table-header">
              <div class="header-cell" style="width: 330px">时间</div>
              <div class="header-cell" style="width: 150px">部门</div>
              <div class="header-cell" style="width: 170px">地址</div>
              <div class="header-cell" style="flex: 1">事件</div>
            </div>
            <vue-seamless-scroll
              :data="firewallData"
              :class-option="tableScrollOption"
              class="scroll-container"
            >
              <div class="table-body">
                <div
                  class="table-row"
                  v-for="(item, index) in firewallData"
                  :key="index"
                  :class="{ 'odd-row': index % 2 === 0 }"
                >
                  <div class="cell" style="width: 330px">{{ item.time }}</div>
                  <div class="cell" style="width: 150px">
                    {{ item.department }}
                  </div>
                  <div class="cell" style="width: 170px">
                    {{ item.address }}
                  </div>
                  <div class="cell violation-text" style="flex: 1">
                    {{ item.event }}
                  </div>
                </div>
              </div>
            </vue-seamless-scroll>
          </div>
        </div>
      </div>
      <div class="section-ecosphere">
        <module-title>
          <div class="title-main">网络平台</div>
        </module-title>
        <div class="zoology-box">
          <div
            v-for="(item, idx) in zoologyIconList"
            :key="idx"
            class="zoology-icon"
          >
            <!-- @click="networkPlatformClick(item.name, item.type)" -->
            <div class="icon-bk">
              <img :src="item.url" alt="" />
            </div>
            <div class="zoology-icon-name">{{ item.name }}</div>
          </div>
        </div>
      </div>
    </div>
    <!-- <div class="bcLeft"></div> -->
    <!-- 三份清单 -->
    <el-dialog
      v-if="dialogStatus"
      :title="dialogTitle"
      class="screen-dialog"
      :visible.sync="dialogStatus"
      width="2720px"
      :modal-append-to-body="false"
      center
      :modal="false"
      :before-close="beForeClose"
    >
      <div style="height: 765px">
        <MyTable
          :height="750"
          :table-list="currentPageData"
          :table-key="tableKey"
        />
        <div style="text-align: right">
          <paginations
            v-show="total > 0"
            :total="total"
            :page.sync="queryParams.pageNum"
            :limit.sync="queryParams.pageSize"
            @pagination="inventoryBtnTwo"
          />
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <span>
          <el-button class="dialog-btn" @click="dialogClose">关 闭</el-button>
        </span>
      </span>
    </el-dialog>
    <el-dialog
      v-if="dynamicStatus"
      :title="dialogTitle"
      class="screen-dialog"
      :visible.sync="dynamicStatus"
      width="1000px"
      :modal-append-to-body="false"
      center
      :modal="false"
    >
      <div style="height: 765px">
        <el-table
          :data="currentPageData"
          height="740"
          highlight-current-row
          @row-click="rowClick"
        >
          <el-table-column
            label="序号"
            type="index"
            :index="
              (index) => {
                return index + 1 + (currentPage - 1) * pageSize;
              }
            "
            width="80"
            align="center"
          />
          <template v-for="item in tableHeader">
            <el-table-column
              v-if="item !== '序号'"
              :key="item"
              :prop="item"
              show-overflow-tooltip
              :label="item"
            >
            </el-table-column>
          </template>
        </el-table>
        <div style="text-align: right">
          <el-pagination
            :current-page="currentPage"
            :page-sizes="[10, 20, 30, 50, 100]"
            :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total"
            popper-class="select_bottom"
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
          >
          </el-pagination>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <span>
          <el-button class="dialog-btn" @click="dialogClose">关 闭</el-button>
        </span>
      </span>
    </el-dialog>
    <el-dialog
      v-if="dialogDetails"
      :title="dialogTitle"
      class="screen-dialog"
      :visible.sync="dialogDetails"
      width="1460px"
      :modal-append-to-body="true"
      center
      :modal="false"
    >
      <div
        style="
          height: 730px;
          overflow: auto;
          text-align: center;
          display: flex;
          justify-content: center;
        "
      >
        <div
          v-if="fileExtension === 'docx' || fileExtension === 'doc'"
          ref="fileDoc"
          class="file-content"
        >
          <!-- <iframe style="height: 200%; width: 100%" :src="`https://api.idocv.com/view/url?url=${docxUrl}`" v-if="!isdevelopment"></iframe> -->
        </div>
        <div
          v-if="fileExtension === 'pdf'"
          class="file-content file-content-pdf"
        >
          <!-- <iframe style="height: 100%; width: 100%" :src="pdfUrl" v-if="!isdevelopment"></iframe> -->
          <div v-for="i in numPages" :key="i">
            <pdf ref="pdf" :key="i" :src="pdfUrl" :page="i"></pdf>
          </div>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <span>
          <el-button class="dialog-btn" @click="dialogDetails = false"
            >关 闭</el-button
          >
        </span>
      </span>
    </el-dialog>
    <!-- 网络平台小图标 -->
    <el-dialog
      v-if="zoologyIconStatus"
      :title="dialogTitle"
      class="screen-dialog"
      :visible.sync="zoologyIconStatus"
      :modal-append-to-body="false"
      center
      :width="zoologyWidth"
      :modal="false"
    >
      <div style="height: 765px">
        <el-table
          :data="currentPageData"
          height="740"
          highlight-current-row
          @row-click="iconClick"
        >
          <el-table-column
            label="序号"
            type="index"
            :index="
              (index) => {
                return index + 1 + (currentPage - 1) * pageSize;
              }
            "
            width="80"
            align="center"
          />
          <template v-for="item in tableHeader">
            <el-table-column
              v-if="item !== '序号'"
              :key="item"
              :prop="item"
              show-overflow-tooltip
              :label="item"
            >
            </el-table-column>
          </template>
        </el-table>
        <div style="text-align: right">
          <el-pagination
            :current-page="currentPage"
            :page-sizes="[10, 20, 30, 50, 100]"
            :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total"
            popper-class="select_bottom"
            @size-change="handleSizeChangeZoo"
            @current-change="handleCurrentChangeZoo"
          >
          </el-pagination>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <span>
          <el-button class="dialog-btn" @click="zoologyIconStatus = false"
            >关 闭</el-button
          >
        </span>
      </span>
    </el-dialog>
    <!-- 网络平台图标点击url跳转 -->
    <el-dialog
      v-if="pageDetails"
      class="screen-dialog"
      :visible.sync="pageDetails"
      width="2250px"
      :modal-append-to-body="true"
      center
      :modal="false"
    >
      <div
        style="
          width: 2200px;
          height: 765px;
          display: flex;
          justify-content: center;
        "
      >
        <iframe
          id="ifraRight"
          style="
            background: #fff;
            margin-top: 200px;
            width: 1080px;
            height: 385px;
            transform: scale(2);
          "
          name="ifraRight"
          :src="href"
          frameborder="0"
          scrolling="yes"
        ></iframe>
      </div>
      <span slot="footer" class="dialog-footer">
        <span>
          <el-button class="dialog-btn" @click="pageDetails = false"
            >关 闭</el-button
          >
        </span>
      </span>
    </el-dialog>
    <!-- 图片 -->
    <el-dialog
      v-if="dialogImg"
      :title="dialogTitle"
      class="screen-dialog"
      style="overflow: aoto"
      :visible.sync="dialogImg"
      width="1460px"
      :modal-append-to-body="true"
      center
      :modal="false"
    >
      <div style="height: 762px; overflow: auto">
        <img :src="imgSrc" alt="" style="width: 100%" />
      </div>
      <span slot="footer" class="dialog-footer">
        <span>
          <el-button class="dialog-btn" @click="dialogImg = false"
            >关 闭</el-button
          >
        </span>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import vueSeamlessScroll from "vue-seamless-scroll";
import ModuleTitle from "../../common/ModuleTitle.vue";
// import {
//   listWz,
//   listDy,
//   listVx,
//   listWb,
//   listTtsum,
//   listBzhan,
//   listGzdt,
//   getGzdt,
//   listZdqyml,
//   listZdlyjg,
//   listZdgzxm,
//   listYtlc,
// } from "@/api/netManage/index.js";
import { downloadTwo } from "@/utils/safesoft";
const docx = require("docx-preview");
import pdf from "vue-pdf";
import axios from "axios";
import qs from "qs";
window.JSZip = require("jszip");
export default {
  components: {
    ModuleTitle,
    vueSeamlessScroll,
    pdf,
  },
  data() {
    return {
      currentIndex: 0,
      // 总条数
      total: 0,
      queryParams: {
        pageNum: 1,
        pageSize: 10,
      },
      dtTotal: 0,
      dtParams: {
        pageNum: 1,
        pageSize: 10,
      },
      zooParams: {
        pageNum: 1,
        pageSize: 10,
        type: 1,
      },
      currentPageData: [], // 当前页显示内容
      tableKey: [],
      threeTimer: null,
      dialogImg: false,
      imgSrc: "",
      zoologyTimer: null,
      currentIndex: 0,
      href: null,
      threeStatus: 1,
      pageDetails: false,
      dynamicList: [],
      superviseObject: [
        {
          title: "核心网评员",
          num: 0,
          className: "item1",
          url: require("@/assets/sentimeent/核心网评员.png"),
        },
        {
          title: "网络大V",
          num: 0,
          className: "item2",
          url: require("@/assets/sentimeent/网络 (2).png"),
          type: 1,
        },
        {
          title: "骨干网评员",
          num: 0,
          className: "item3",
          url: require("@/assets/sentimeent/骨干网评员.png"),
          type: 2,
        },
        {
          title: "网络文明志愿者",
          num: 0,
          className: "item4",
          url: require("@/assets/sentimeent/网络文明志愿者.png"),
        },
        {
          title: "普通网评员",
          num: 0,
          className: "item5",
          url: require("@/assets/sentimeent/普通网评员.png"),
        },
        {
          title: "网络民情责任人",
          num: 0,
          className: "item6",
          url: require("@/assets/sentimeent/网络民情责任人.png"),
        },
        {
          title: "网络安全官",
          num: 0,
          className: "item7",
          url: require("@/assets/sentimeent/网络安全官.png"),
        },
        {
          title: "网络安全支撑单位",
          num: 0,
          className: "item8",
          url: require("@/assets/sentimeent/网络安全支撑单位.png"),
        },
      ],
      zoologyIconList: [
        {
          name: "微博",
          type: 1,
          url: require("@/assets/sentimeent/icon-微博.png"),
        },
        {
          name: "头条",
          type: 2,
          url: require("@/assets/sentimeent/icon-头条.png"),
        },
        {
          name: "抖音",
          type: 3,
          url: require("@/assets/sentimeent/icon-抖音.png"),
        },
        {
          name: "微信",
          type: 4,
          url: require("@/assets/sentimeent/icon-微信.png"),
        },
        {
          name: "知乎",
          type: 5,
          url: require("@/assets/sentimeent/icon-知乎.png"),
        },
        {
          name: "网站",
          type: 6,
          url: require("@/assets/sentimeent/icon-网站.png"),
        },
      ],
      zoologyIconData: [],
      dialogDetails: false,
      fileUrlData: {
        登记约谈:
          "/网信办大屏内容文档/网络管理/工作动态/10.15约谈太仓论坛/约谈材料.docx",
      },
      iconIndex: 1,
      dialogStatus: false,
      dynamicStatus: false,
      zoologyIconStatus: false,
      totalPage: 1, // 统共页数，默认为1
      total: 1, // 统共页数，默认为1
      currentPage: 1, // 当前页数 ，默认为1
      pageSize: 10, // 每页显示数量

      tableHeader: [],
      tableData: [],
      dialogTitle: "",
      zoologyWidth: "",
      fileExtension: "",
      pdfUrl: "",
      docxUrl: "",
      numPages: "",
      dongtaiTotal: 0,
      isdevelopment: false,
      firewallStats: [
        {
          number: 4,
          unit: "起",
          department: "xxxx局",
          url: require("@/assets/sentimeent/icon-翻墙管理.png"),
        },
        {
          number: 4,
          unit: "起",
          department: "xxxx局",
          url: require("@/assets/sentimeent/icon-翻墙管理.png"),
        },
        {
          number: 4,
          unit: "起",
          department: "xxxx局",
          url: require("@/assets/sentimeent/icon-翻墙管理.png"),
        },
      ],
      firewallData: [
        {
          time: "2025-01-08 12:30:34",
          department: "xx局",
          address: "172.16.32.14",
          event: "违规外联",
        },
        {
          time: "2025-01-13 11:23:12",
          department: "xx局",
          address: "172.16.31.23",
          event: "违规外联",
        },
        {
          time: "2025-01-18 15:42:54",
          department: "xx局",
          address: "172.17.43.36",
          event: "违规外联",
        },
        {
          time: "2025-01-23 10:20:32",
          department: "xx局",
          address: "172.16.24.66",
          event: "违规外联",
        },
        {
          time: "2025-01-25 16:43:21",
          department: "xx局",
          address: "172.16.24.148",
          event: "违规外联",
        },
        {
          time: "2025-01-28 14:15:50",
          department: "xx局",
          address: "172.16.27.195",
          event: "违规外联",
        },
        {
          time: "2025-02-08 14:40:26",
          department: "xx局",
          address: "172.16.26.212",
          event: "违规外联",
        },
        {
          time: "2025-02-12 09:35:42",
          department: "xx局",
          address: "172.16.33.75",
          event: "违规外联",
        },
        {
          time: "2025-02-15 13:22:18",
          department: "xx局",
          address: "172.16.29.201",
          event: "违规外联",
        },
        {
          time: "2025-02-20 16:14:53",
          department: "xx局",
          address: "172.16.30.89",
          event: "违规外联",
        },
        {
          time: "2025-02-25 11:05:37",
          department: "xx局",
          address: "172.17.45.112",
          event: "违规外联",
        },
        {
          time: "2025-03-03 15:47:29",
          department: "xx局",
          address: "172.16.28.165",
          event: "违规外联",
        },
      ],
      inventoryList: [
        {
          id: 1,
          title: "重点企业名录清单",
          iconActive: "icon-指挥手册-act.png",
          url: "重点企业名录清单.png",
        },
        {
          id: 2,
          title: "重点领域监管清单",
          iconActive: "icon-责任清单-act.png",
          url: "重点领域监管清单.png",
        },
        {
          id: 3,
          title: "重点工作项目清单",
          iconActive: "icon-负面清单-act.png",
          url: "重点领域项目清单.png",
        },
      ],
    };
  },
  computed: {
    classOption() {
      return {
        step: 0.4, // 数值越大速度滚动越快
        limitMoveNum: 5, // 开始无缝滚动的数据量 this.dataList.length
        hoverStop: true, // 是否开启鼠标悬停stop
        direction: 1, // 0向下 1向上 2向左 3向右
        openWatch: true, // 开启数据实时监控刷新dom
        singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
        singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
        waitTime: 1000, // 单步运动停止的时间(默认值1000ms)
      };
    },
    tableScrollOption() {
      return {
        step: 0.4, // 数值越大速度滚动越快
        limitMoveNum: 3, // 开始无缝滚动的数据量 this.dataList.length
        hoverStop: true, // 是否开启鼠标悬停stop
        direction: 1, // 0向下 1向上 2向左 3向右
        openWatch: true, // 开启数据实时监控刷新dom
        singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
        singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
        waitTime: 1000, // 单步运动停止的时间(默认值1000ms)
      };
    },
  },
  watch: {},
  created() {},
  destroyed() {
    clearInterval(this.threeTimer);
    clearInterval(this.zoologyTimer);
    clearInterval(this.time2);
  },
  mounted() {
    // No need to slice anymore, use the full list
    this.zoologyIconData = this.zoologyIconList;

    // this.getZoologyData() // 网络平台信息获取
    this.getZoologyChange(); // 网络平台按钮切换
    this.inventoryChange(); // 三份清单自动切换
    this.getDynamicData(); // 工作动态信息获取
  },
  methods: {
    // 工作动态信息获取
    getDynamicData() {
      listGzdt({ isStatus: 1 }).then((res) => {
        this.dongtaiTotal = res.total;
        this.dynamicList = [...this.dynamicList, ...res.rows];
      });
    },

    // 网络平台信息获取
    async networkPlatformClick(val, type) {
      this.zooParams.type = type;
      this.currentPage = 1;
      this.pageSize = 10;
      this.dialogTitle = val;
      this.zoologyIconStatus = true;
      // let res = await listPlatform({ pageNum: 1, pageSize: 10, type: type });
      if (val === "B站") {
        this.tableHeader = ["账号ID", "URL"];
        this.zoologyWidth = "1000px";
        this.tableData = [];
        listBzhan({ pageNum: 1, pageSize: 10, type: 1, isStatus: 1 }).then(
          (res) => {
            res.rows.map((item) => {
              let obj = {};
              obj["账号ID"] = item.zhId;
              obj["URL"] = item.url;
              this.tableData.push(obj);
            });
            this.total = res.total;
          }
        );
      } else if (val === "小红书") {
        this.tableHeader = ["账号ID", "URL"];
        this.zoologyWidth = "1000px";
        this.tableData = [];
        listBzhan({ pageNum: 1, pageSize: 10, type: 2, isStatus: 1 }).then(
          (res) => {
            res.rows.map((item) => {
              let obj = {};
              obj["账号ID"] = item.zhId;
              obj["URL"] = item.url;
              this.tableData.push(obj);
            });
            this.total = res.total;
          }
        );
      } else if (val === "今日头条") {
        this.tableHeader = ["账号ID", "简介"];
        this.zoologyWidth = "1200px";
        this.tableData = [];
        listTtsum({ pageNum: 1, pageSize: 10, type: 1, isStatus: 1 }).then(
          (res) => {
            res.rows.map((item) => {
              let obj = {};
              obj["账号ID"] = item.zhId;
              obj["简介"] = item.intro;
              this.tableData.push(obj);
            });
            this.total = res.total;
          }
        );
      } else if (val === "快手") {
        this.tableHeader = ["账号ID", "简介"];
        this.zoologyWidth = "1000px";
        this.tableData = [];
        listTtsum({ pageNum: 1, pageSize: 10, type: 2, isStatus: 1 }).then(
          (res) => {
            res.rows.map((item) => {
              let obj = {};
              obj["账号ID"] = item.zhId;
              obj["简介"] = item.intro;
              this.tableData.push(obj);
            });
            this.total = res.total;
          }
        );
      } else if (val === "微信") {
        this.tableHeader = ["账号ID", "行业属性"];
        this.zoologyWidth = "1000px";
        this.tableData = [];
        listVx({ pageNum: 1, pageSize: 10, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["账号ID"] = item.zhId;
            // obj["行业属性"] = this.getProps(item.props);
            obj["行业属性"] = item.tmt;
            this.tableData.push(obj);
          });
          this.total = res.total;
        });
      } else if (val === "网站") {
        this.tableHeader = ["网站名称", "真实IP", "网站域名", "备案许可证号"];
        this.zoologyWidth = "2000px";
        this.tableData = [];
        listWz({ pageNum: 1, pageSize: 10, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["网站名称"] = item.webName;
            obj["真实IP"] = item.trueIp;
            obj["网站域名"] = item.webDns;
            obj["备案许可证号"] = item.icp;
            this.tableData.push(obj);
          });
          this.total = res.total;
        });
      } else if (val === "微博") {
        // this.tableHeader = ["账号名称", "认证", "地区"];
        // 2024/10/12让去掉地区显示
        this.tableHeader = ["账号名称", "认证"];
        this.zoologyWidth = "1000px";
        this.tableData = [];
        listWb({ pageNum: 1, pageSize: 10, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["账号名称"] = item.zhName;
            obj["认证"] = item.approve;
            // obj["地区"] = item.areaId;
            this.tableData.push(obj);
          });
          this.total = res.total;
        });
      } else if (val === "抖音") {
        this.tableHeader = ["账号", "简介", "粉丝数"];
        this.zoologyWidth = "1500px";
        this.tableData = [];
        listDy({ pageNum: 1, pageSize: 10, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["账号"] = item.userName;
            obj["简介"] = item.intro;
            obj["粉丝数"] = item.fsCount;
            this.tableData.push(obj);
          });
          this.total = res.total;
          this.tableData.sort((a, b) => b.粉丝数 - a.粉丝数);
        });
      }
      this.currentPageData = this.tableData;
      this.zoologyIconStatus = true;
      // this.networkPlatformData()
    },
    getProps(props) {
      switch (props) {
        case 1:
          return "房产";
        case 2:
          return "汽车";
        case 3:
          return "自媒体";
        case 4:
          return "餐饮";
        case 5:
          return "电子竞技";
        case 6:
          return "财务";
        default:
          break;
      }
    },
    networkPlatformData() {
      this.total = this.tableData.length;
      this.totalPage = Math.ceil(this.tableData.length / this.pageSize);
      this.totalPage = this.totalPage === 0 ? 1 : this.totalPage;
      this.setCurrentPageData();
      this.zoologyIconStatus = true;
    },
    // 网络平台按钮切换
    getZoologyChange() {
      this.zoologyTimer = setInterval(() => {
        this.currentIndex++;
        if (this.currentIndex > 3) {
          this.currentIndex = 0;
        }
      }, 4000);
    },
    // 网络平台悬停
    zoologyMouseOver(index) {
      this.currentIndex = index;
      clearInterval(this.zoologyTimer);
    },
    // 网络平台离开
    zoologyMouseLeave() {
      this.getZoologyChange();
    },
    /**
     * 重置
     */
    reset() {
      this.total = 0;
      this.queryParams = {
        pageNum: 1,
        pageSize: 10,
      };
      this.currentPageData = []; // 当前页显示内容
      this.tableKey = [];
    },
    /**
     * 关闭dialog弹出前的回调
     */
    beForeClose(done) {
      this.reset();
      done();
    },

    // 三份清单按钮切换
    inventoryBtn(status, val) {
      this.currentIndex = status;
      if (this.currentIndex == 1) {
        // listEnterprise(this.queryParams).then((res) => {
        listZdqyml({ ...this.queryParams, isStatus: 1 }).then((res) => {
          this.currentPageData = res.rows;
          this.tableKey = [
            { name: "企业名称", value: "enterpriseName" },
            {
              name: "企业类型",
              value: "enterpriseType",
              // dictType: "tc_enter_type",
            },
            {
              name: "互联网业务",
              // value: "networkYewu",
              value: "netYw",
              // dictType: "tc_inlet_yewu",
            },
            { name: "监管部门", value: "depJg" },
            { name: "单位地址", value: "unitAddress" },
            { name: "联系人", value: "linkMan" },
            { name: "联系电话", value: "linkTel" },
            { name: "网址或平台名称", value: "url" },
            { name: "域名", value: "dns" },
          ];
          this.total = res.total;
        });
      } else if (this.currentIndex == 2) {
        // listDomain(this.queryParams).then((res) => {
        listZdlyjg({ ...this.queryParams, isStatus: 1 }).then((res) => {
          this.currentPageData = res.rows;
          this.tableKey = [
            {
              name: "企业类型",
              value: "enterpriseType",
              // dictType: "tc_enter_type",
            },
            { name: "重点监管内容", value: "jgObgj" },
            { name: "法律法规令禁止的有关行为", value: "jzxw" },
            { name: "主要监管部门", value: "jgDep" },
            { name: "主要依据", value: "zyyj" },
          ];
          this.total = res.total;
        });
      } else if (this.currentIndex == 3) {
        // listWork(this.queryParams).then((res) => {
        listZdgzxm({ ...this.queryParams, isStatus: 1 }).then((res) => {
          this.currentPageData = res.rows;
          this.tableKey = [
            { name: "推进单位", value: "tjUnit" },
            { name: "项目名称", value: "itemName" },
            { name: "项目内容", value: "itemContent" },
            {
              name: "项目类型",
              value: "itemType",
              // dictType: "tc_item_type",
            },
            { name: "项目联系人", value: "itemLinkMan" },
          ];
          this.total = res.total;
        });
      }

      this.$nextTick(() => {
        this.dialogTitle = val;
        this.dialogStatus = true;
      });
      // this.currentPage = 1
      // this.pageSize = 10
      // const tableObject = require('./data.json')
      // this.threeStatus = status
      // this.dialogTitle = val
      // this.tableData = tableObject[val]
      // this.tableHeader = []
      // for (const item in tableObject[val][0]) {
      //   this.tableHeader.push(item)
      // }
      // this.total = this.tableData.length
      // this.totalPage = Math.ceil(this.tableData.length / this.pageSize)
      // this.totalPage = this.totalPage === 0 ? 1 : this.totalPage
      // this.setCurrentPageData()
      // this.dialogStatus = true
    },
    inventoryBtnTwo(status) {
      // console.log(this.dialogTitle);
      const { page, limit } = status;
      this.queryParams.pageNum = page;
      this.queryParams.pageSize = limit;
      if (this.dialogTitle == "重点企业名录清单") {
        this.inventoryBtn(1, "重点企业名录清单");
      } else if (this.dialogTitle == "重点领域监管清单") {
        this.inventoryBtn(2, "重点领域监管清单");
      } else if (this.dialogTitle == "重点工作项目清单") {
        this.inventoryBtn(3, "重点工作项目清单");
      }
    },
    // 三份清单自动切换
    inventoryChange() {
      this.threeTimer = setInterval(() => {
        this.threeStatus++;
        if (this.threeStatus > 3) {
          this.threeStatus = 1;
        }
      }, 6000);
    },
    iconClick(row) {
      console.log(row, "row");
      if (row.URL) {
        this.href = row.URL;
        this.pageDetails = true;
      } else if (row.网站域名) {
        if (row.网站域名.substring(0, 4) === "http") {
          console.log(row.网站域名, "row.网站域名");
          this.href = row.网站域名;
          this.pageDetails = true;
        } else {
          console.log(row.网站域名, "row.网站域名");
          this.href = "http://" + row.网站域名;
          this.pageDetails = true;
        }
      }
    },
    // 三分清单悬停
    inventoryMouseOver() {
      clearInterval(this.threeTimer);
    },
    // 三分清单离开
    inventoryLeave() {
      this.inventoryChange();
    },
    setCurrentPageData() {
      const begin = (this.currentPage - 1) * this.pageSize;
      const end = this.currentPage * this.pageSize;
      this.currentPageData = this.tableData.slice(begin, end);
    },
    handleSizeChange(val) {
      this.pageSize = val;
      this.setCurrentPageData();
    },
    handleCurrentChange(val) {
      this.currentPage = val;
      this.setCurrentPageData();
    },
    handleSizeChangeZoo(val) {
      this.zooParams.pageSize = val;
      this.networkPlatformClickTwo(this.zooParams);
    },
    handleCurrentChangeZoo(val) {
      this.zooParams.pageNum = val;
      this.networkPlatformClickTwo(this.zooParams);
    },
    async networkPlatformClickTwo(params) {
      // console.log(params, "====");
      this.tableData = [];
      // let res = await listPlatform(params);
      if (params.type == 1) {
        listWz({ ...params, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["网站名称"] = item.webName;
            obj["真实IP"] = item.trueIp;
            obj["网站域名"] = item.webDns;
            obj["备案许可证号"] = item.icp;
            this.tableData.push(obj);
          });
        });
      } else if (params.type == 2) {
        listDy({ ...params, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["账号"] = item.userName;
            obj["简介"] = item.intro;
            obj["粉丝数"] = item.fsCount;
            this.tableData.push(obj);
          });
          this.tableData.sort((a, b) => b.粉丝数 - a.粉丝数);
        });
      } else if (params.type == 3) {
        listVx({ ...params, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["账号ID"] = item.zhId;
            // obj["行业属性"] = this.getProps(item.props);
            obj["行业属性"] = item.tmt;
            this.tableData.push(obj);
          });
        });
      } else if (params.type == 4) {
        listWb({ ...params, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["账号名称"] = item.zhName;
            obj["认证"] = item.approve;
            obj["地区"] = item.areaId;
            this.tableData.push(obj);
          });
        });
      } else if (params.type == 5) {
        listTtsum({ ...params, type: 1, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["账号ID"] = item.zhId;
            obj["简介"] = item.intro;
            this.tableData.push(obj);
          });
        });
      } else if (params.type == 6) {
        listTtsum({ ...params, pageSize: 10, type: 2, isStatus: 1 }).then(
          (res) => {
            res.rows.map((item) => {
              let obj = {};
              obj["账号ID"] = item.zhId;
              obj["简介"] = item.intro;
              this.tableData.push(obj);
            });
          }
        );
      } else if (params.type == 7) {
        listBzhan({ ...params, type: 1, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["账号ID"] = item.zhId;
            obj["URL"] = item.url;
            this.tableData.push(obj);
          });
        });
      } else if (params.type == 8) {
        listBzhan({ ...params, type: 2, isStatus: 1 }).then((res) => {
          res.rows.map((item) => {
            let obj = {};
            obj["账号ID"] = item.zhId;
            obj["URL"] = item.url;
            this.tableData.push(obj);
          });
        });
      }
      this.currentPageData = this.tableData;
    },
    async dynamicClick(e) {
      this.tableData = [];
      this.currentPage = 1;
      this.pageSize = 10;
      this.tableHeader = ["材料名称"];
      getGzdt(e.target.dataset.id).then((data) => {
        this.dialogTitle = data.data.title;
        const fileName = data.data.fileName.split(",");
        const fileUrl = data.data.fileUrl.split(",");
        // console.log(fileName,'fileName')
        // console.log(fileUrl,'fileUrl')
        if (
          fileUrl.length < 1 ||
          fileName.length < 1 ||
          fileName == "" ||
          fileUrl == ""
        )
          return;
        if (fileName.length > 0) {
          fileName.forEach((item, index) => {
            this.tableData.push({
              材料名称: item,
              材料路径: fileUrl[index],
            });
          });
          this.networkPlatformDataTwo();
        } else {
          this.tableData = [];
        }
        this.dynamicStatus = true;
      });

      // this.dialogTitle = val.dynamicName
      // this.tableData = val.fileList
      // this.tableHeader = []
      // for (const item in val.fileList[0]) {
      //   if (item !== '材料路径') {
      //     this.tableHeader.push(item)
      //   }
      // }
      // this.total = this.tableData.length
      // this.totalPage = Math.ceil(this.tableData.length / this.pageSize)
      // this.totalPage = this.totalPage === 0 ? 1 : this.totalPage
      // this.setCurrentPageData()
      // this.dynamicStatus = true
    },
    networkPlatformDataTwo() {
      this.total = this.tableData.length;
      this.totalPage = Math.ceil(this.tableData.length / this.pageSize);
      this.totalPage = this.totalPage === 0 ? 1 : this.totalPage;
      this.setCurrentPageData();
    },
    rowClick(row) {
      this.isdevelopment = false;
      // this.dialogDetails = true
      // console.log(process.env.VUE_APP_BASE_API2 + row['材料路径'])
      this.fileExtension = row["材料路径"].substring(
        row["材料路径"].lastIndexOf(".") + 1
      );
      // let newarr = row["材料路径"].split("/");
      // let lastArr = newarr.slice(newarr.indexOf("demo") + 1, newarr.length);
      // console.log(row['材料路径'],'process.env.VUE_APP_BASE_API2')
      if (this.fileExtension == "pdf") {
        // this.pdfUrl = row['材料路径'];
        // this.dialogDetails = true;
        // console.log(this.pdfUrl,'this.pdfUrl')
        this.getNumPages(row["材料路径"]);
        // this.getNumPages("/demo" + "/" + lastArr.join("/"));
      } else if (
        this.fileExtension === "docx" ||
        this.fileExtension === "doc"
      ) {
        // const blob = new Blob([row["材料路径"]]);
        // console.log(blob,'blob')
        // this.dialogDetails = true;
        // docx.renderAsync(blob, this.$refs.fileDoc);

        axios({
          method: "get",
          responseType: "blob", // 设置响应文件格式
          url: row["材料路径"],
        }).then(({ data }) => {
          if (data) {
            console.log(data, "data");
            this.dialogDetails = true;
            this.$nextTick(() => {
              docx.renderAsync(data, this.$refs.fileDoc); // 渲染到页面预览
            });
          }
        });

        this.docxUrl = row["材料路径"];
        this.dialogDetails = true;
      }
      // if (['png', 'jpg', 'jpeg'].includes(row.材料路径.substring(row.材料路径.lastIndexOf('.') + 1))) {
      //   this.imgSrc = `${process.env.NODE_ENV === 'production' ? window._CONFIG['fileNginxUrl'] : '/fileApi'}${row['材料路径']}`
      //   this.dialogImg = true
      // } else if (this.fileExtension === 'docx' || this.fileExtension === 'doc') {
      //   axios({
      //     method: 'get',
      //     responseType: 'blob', // 设置响应文件格式
      //     url: `${
      //       process.env.NODE_ENV === 'production'
      //         ? window._CONFIG['fileNginxUrl']
      //         : process.env.VUE_APP_BASE_API2
      //     }${row['材料路径']}`
      //   }).then(({ data }) => {
      //     if (data) {
      //       this.dialogDetails = true
      //       this.$nextTick(() => {
      //         docx.renderAsync(data, this.$refs.file) // 渲染到页面预览
      //       })
      //     }
      //   })
      // } else if (this.fileExtension === 'pdf') {
      //   console.log('window._CONFIG[fileNginxUrl]',window._CONFIG['fileNginxUrl'])
      //   this.getNumPages(`${process.env.NODE_ENV === 'production' ? window._CONFIG['fileNginxUrl'] : '/fileApi'}${row['材料路径']}`)
      // }
    },
    getNumPages(url) {
      axios({
        method: "GET",
        url: url, // 后台接口
        paramsSerializer: function (params) {
          return qs.stringify(params, { arrayFormat: "brackets" });
        },
        headers: {
          "Content-Type":
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        },
        responseType: "blob",
      })
        .then((response) => {
          // console.log(response,'response')
          this.pdfUrl = this.getObjectURL(response.data);
          const loadingTask = pdf.createLoadingTask(this.pdfUrl);
          loadingTask.promise
            .then((pdf) => {
              this.numPages = 1;
              setInterval(() => {
                if (pdf.numPages > this.numPages) {
                  this.numPages++;
                  this.$forceUpdate();
                } else {
                  clearInterval();
                }
              }, 2000);
              this.dialogDetails = true;
            })
            .catch((err) => {
              console.error("pdf 加载失败", err);
            });
        })
        .catch((error) => {
          this.$message.error("" + error);
        });
    },
    getObjectURL(file) {
      let url = null;
      if (window.createObjectURL !== undefined) {
        // basic
        url = window.createObjectURL(file);
      } else if (window.webkitURL !== undefined) {
        // webkit or chrome
        try {
          url = window.webkitURL.createObjectURL(file);
        } catch (error) {
          console.log(error);
        }
      } else if (window.URL !== undefined) {
        // mozilla(firefox)
        try {
          url = window.URL.createObjectURL(file);
        } catch (error) {
          console.log(error);
        }
      }
      return url;
    },
    dialogClose() {
      this.reset();
      this.dialogStatus = false;
      this.dynamicStatus = false;
      this.pageSize = 20;
      this.currentPage = 1;
    },
    processDetails(val) {
      // this.fileExtension = "docx";
      this.isdevelopment = true;
      if (
        ["生成整改通知书送达回执", "生成约谈通知书", "登记约谈"].includes(val)
      ) {
        listYtlc({ name: val }).then((res) => {
          this.dialogDetails = true;
          this.dialogTitle = val;
          this.fileExtension = res.rows[0].fileUrl.substring(
            res.rows[0].fileUrl.lastIndexOf(".") + 1
          );
          // console.log(this.fileExtension,'this.fileExtension')
          if (this.fileExtension == "pdf") {
            // this.pdfUrl = row['材料路径'];
            this.getNumPages(res.rows[0].fileUrl);
            this.dialogDetails = true;
          } else if (
            this.fileExtension === "docx" ||
            this.fileExtension === "doc"
          ) {
            axios({
              method: "get",
              responseType: "blob", // 设置响应文件格式
              url: res.rows[0].fileUrl,
            }).then(({ data }) => {
              if (data) {
                this.$nextTick(() => {
                  docx.renderAsync(data, this.$refs.fileDoc); // 渲染到页面预览
                });
              }
            });
          }
        });
        // axios({
        //   method: "get",
        //   responseType: "blob", // 设置响应文件格式
        //   url: `${
        //     process.env.NODE_ENV === "production"
        //       ? window._CONFIG["fileNginxUrl"] : process.env.VUE_APP_BASE_API2
        //       // : "/fileApi"
        //   }/网信办大屏内容文档/网络管理/约谈流程/${val}.docx`,
        // }).then(({ data }) => {
        //   if (data) {
        //     this.dialogDetails = true;
        //     this.$nextTick(() => {
        //       docx.renderAsync(data, this.$refs.file); // 渲染到页面预览
        //     });
        //   }
        // });
      }
    },
  },
};
</script>

<style lang="scss" scoped>
.bcLeft {
  width: 210px;
  height: 924px;
  position: absolute;
  top: 156px;
  right: -128px;
  background: url("~@/assets/ecosphere/左.png") no-repeat;
  background-size: 100% 100%;
}
.container {
  width: 100%;
  height: 100%;
  .module-container {
    width: 100%;
    height: 100%;
    margin: 204px 0 0 0px;
    display: flex;
    flex-wrap: wrap;
    // justify-content: space-between;
    // align-content: space-between;
    .section-superviseObject {
      width: 50%;
      height: 50%;
      padding: 50px 50px 0px 0px;
    }
    .section-process {
      width: 920px;
      height: 445px;
      margin-right: 22px;

      .section-process-outline {
        background: url("~@/assets/ecosphere/动图-箭头.png") no-repeat;
        background-position-x: 48%;
        background-position-y: 51%;
        margin-left: 16px;
        margin-top: 45px;
        width: 900px;
        height: 345px;
        .column {
          .top_column {
            width: 100%;
            height: 115px;
            display: flex;
            /* align-items: center; */
            .top_column1 {
              cursor: pointer;
              width: 254px;
              height: 80px;
              background: url("~@/assets/ecosphere/first/bg-约谈流程.png");
              display: flex;
              align-items: center;
              margin-left: 93px;
              .process-img {
                margin-left: 30px;
              }
              .process-font {
                margin-left: 10px;
                font-family: SourceHanSansCN-Medium;
                font-size: 28px;
                color: #ffffff;
              }
            }
            .top_column2 {
              width: 254px;
              height: 80px;
              cursor: pointer;
              background: url("~@/assets/ecosphere/first/bg-约谈流程.png");
              display: flex;
              align-items: center;
              margin-left: 76px;
              .process-img {
                margin-left: 30px;
              }
              .process-font {
                margin-left: 10px;
                font-family: SourceHanSansCN-Medium;
                font-size: 28px;
                color: #ffffff;
              }
            }
          }
          .center_column {
            width: 100%;
            height: 115px;
            display: flex;
            align-items: center;
            .center_column1 {
              width: 254px;
              height: 80px;
              cursor: pointer;
              background: url("~@/assets/ecosphere/first/bg-约谈流程.png");
              display: flex;
              align-items: center;
              margin-left: -5px;
              .process-img {
                margin-left: 30px;
              }
              .process-font {
                margin-left: 10px;
                font-family: SourceHanSansCN-Medium;
                font-size: 28px;
                color: #ffffff;
              }
            }
            .center_column2 {
              cursor: pointer;
              width: 254px;
              height: 80px;
              background: url("~@/assets/ecosphere/first/bg-约谈流程.png");
              display: flex;
              align-items: center;
              margin-left: 76px;
              .process-img {
                margin-left: 30px;
              }
              .process-font {
                margin-left: 10px;
                font-family: SourceHanSansCN-Medium;
                font-size: 28px;
                color: #ffffff;
              }
            }
            .center_column3 {
              width: 254px;
              height: 80px;
              cursor: pointer;
              background: url("~@/assets/ecosphere/first/bg-约谈流程.png");
              display: flex;
              align-items: center;
              margin-left: 76px;
              .process-img {
                margin-left: 30px;
              }
              .process-font {
                margin-left: 10px;
                font-family: SourceHanSansCN-Medium;
                font-size: 28px;
                color: #ffffff;
              }
            }
          }
          .bottom_column {
            width: 100%;
            height: 115px;
            display: flex;
            align-items: flex-end;
            .bottom_column1 {
              width: 274px;
              height: 80px;
              cursor: pointer;
              background: url("~@/assets/ecosphere/first/bg-约谈流程-长.png");
              display: flex;
              align-items: center;
              margin-left: 194px;
              .process-img {
                margin-left: 30px;
              }
              .process-font {
                margin-left: 10px;
                font-family: SourceHanSansCN-Medium;
                font-size: 28px;
                color: #ffffff;
              }
            }
            .bottom_column2 {
              width: 274px;
              height: 80px;
              cursor: pointer;
              background: url("~@/assets/ecosphere/first/bg-约谈流程-长.png");
              display: flex;
              align-items: center;
              margin-left: 67px;
              .process-img {
                margin-left: 30px;
              }
              .process-font {
                margin-left: 15px;
                font-family: SourceHanSansCN-Medium;
                font-size: 28px;
                color: #ffffff;
              }
            }
          }
        }
      }
    }
    .section-inventory {
      width: 50%;
      height: 50%;
      padding: 50px 50px 50px 0px;
      .three-inventory {
        padding: 80px 0 20px 0;
        width: 100%;
        height: calc(100% - 76px);
        // margin-top: 30px;
        display: flex;
        justify-content: space-around;
        .three-inventory-item {
          width: 30%;
          margin: 0 10px;
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: space-around;
          background: url("~@/assets/sentimeent/三份清单(背景图).png");
          background-size: 100% 100%;
          padding: 20px;
          .inventory-title {
            background: url("~@/assets/sentimeent/三份清单(文字背景图).png");
            background-size: 100% 100%;
            padding: 20px 40px 20px 40px;
            text-align: center;
            // width: 118px;
            // height: 70px;
            font-family: AlibabaPuHuiTiB;
            font-weight: bold;
            font-size: 28px;
            color: #b9ccdf;
            line-height: 42px;
            text-align: justifyLeft;
            font-style: normal;
            text-transform: none;
          }
          .icon-container {
            position: relative;
            margin-bottom: 10px;

            .hex-icon {
              width: 115px;
              height: 170px;
            }

            .arrow-down {
              position: absolute;
              bottom: -15px;
              left: 50%;
              transform: translateX(-50%);
              width: 0;
              height: 0;
              border-left: 12px solid transparent;
              border-right: 12px solid transparent;
              border-top: 15px solid #68cff9;
            }
          }

          // div:last-child {
          //   margin-top: 15px;
          //   text-align: center;
          //   font-family: FZZDHJW--GB1-0;
          //   font-size: 22px;
          //   line-height: 28px;
          //   width: 100%;
          // }
        }
        // :hover {
        //   cursor: pointer;
        // }
        // .checked {
        //   .arrow-down {
        //     border-top-color: #fbe84f;
        //   }
        //   div:last-child {
        //     color: #fbe84f;
        //   }
        // }
        // .unchecked {
        //   .arrow-down {
        //     border-top-color: #68cff9;
        //   }
        //   div:last-child {
        //     color: #ffffff;
        //   }
        // }
      }
    }
    .section-dynamic {
      width: 50%;
      height: 50%;
      // margin-right: 22px;
      padding: 0px 50px 80px 0px;
      .firewall-container {
        height: calc(100% - 76px);
        width: 100%;
        // margin-top: 20px;

        // 顶部卡片区域
        .firewall-stats {
          display: flex;
          justify-content: space-around;
          margin: 20px 0px;
          .stat-card {
            width: 230px;
            height: 90px;
            // background-color: rgba(18, 40, 69, 0.7);
            // border: 1px solid #193859;
            // border-radius: 4px;
            display: flex;
            align-items: center;
            // padding: 10px;
            // box-shadow: 0 0 10px rgba(0, 110, 255, 0.2);
            padding-left: 10px;
            justify-content: space-between;
            .stat-icon {
              width: 55%;
              height: 124px;
              margin-right: -10px;
              position: relative;

              .cube-icon {
                width: 100%;
                height: 100%;
                // background: url("~@/assets/ecosphere/icon-cube.png") no-repeat center;
                background-size: contain;
              }
            }

            .stat-content {
              background: url("~@/assets/sentimeent/icon-翻墙管理(头背景).png")
                no-repeat;
              background-size: 100% 100%;
              width: calc(100% - 88px);
              height: 100%;
              display: flex;
              flex-direction: column;
              justify-content: center;
              align-items: center;
              .stat-number {
                font-size: 42px;
                font-weight: bold;
                color: #09f0ff;
                display: flex;
                align-items: baseline;

                .stat-unit {
                  font-size: 24px;
                  font-weight: normal;
                  margin-left: 5px;
                }
              }

              .stat-dept {
                font-size: 26px;
                color: #9bb8d5;
                margin-top: 5px;
              }
            }
          }
        }

        // 表格区域
        .firewall-table {
          width: 100%;
          border-radius: 4px;
          overflow: hidden;
          height: calc(100% - 110px);
          padding: 20px 0;
          .table-header {
            display: flex;
            // background-color: #1a3b6e;
            background: url("~@/assets/sentimeent/背景表格.png") no-repeat
              center;
            background-size: 100% 100%;
            height: 60px;
            text-align: center;
            vertical-align: center;
            .header-cell {
              padding: 10px;
              font-family: AlibabaPuHuiTiM;
              font-size: 28px;
              color: #e4f0ff;
              line-height: 22px;
              text-align: justifyLeft;
              display: flex;
              justify-content: center;
              align-items: center;
              // color: #ffffff;
              // font-size: 28px;
              // font-weight: normal;
              // flex: 1;
              // text-align: center;
            }
          }

          .scroll-container {
            height: 100%;

            overflow: hidden;
          }

          .table-body {
            width: 100%;

            .table-row {
              display: flex;
              background-color: black;
              border-bottom: 1px solid #193859;

              &:hover {
                background-color: rgba(33, 150, 243, 0.1) !important;
              }

              &.odd-row {
                background: url("~@/assets/privateOrder/general/背景表格斑马纹.png") !important;
              }

              .cell {
                padding: 10px;
                font-family: AlibabaPuHuiTiR;
                font-size: 26px;
                // color: #b9ccdf;
                line-height: 60px;
                text-align: justifyLeft;
                color: #9bb8d5;
                // font-size: 16px;
                // flex: 1;
                text-align: center;
              }

              // .violation-text {
              //   color: #09f0ff;
              // }
            }
          }
        }
      }
    }
    .section-ecosphere {
      width: 50%;
      height: 50%;
      padding: 0px 50px 50px 0px;

      .zoology-box {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        width: 100%;
        height: calc(100% - 72px);
        padding: 0px 10px;
        align-content: flex-end;
        .zoology-icon {
          width: 32%;
          height: 45%;
          display: flex;
          flex-direction: column;
          align-items: center;
          margin-bottom: 10px;
          padding: 50px 20px;
          .icon-bk {
            width: 100%;
            height: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
            margin-bottom: 10px;
            position: 20px;
            img {
              width: 100%;
              height: 100%;
            }
          }

          .zoology-icon-name {
            width: 100%;
            height: 40px;
            font-family: AlibabaPuHuiTiB;
            font-size: 28px;
            font-weight: bold;
            color: #b9ccdf;
            text-align: center;
            font-style: normal;
            text-transform: none;
            line-height: 40px;
            background: url("~@/assets/sentimeent/网络平台(字体背景).png")
              no-repeat center;
            background-size: 100% 100%;
          }

          // &:hover {
          //   cursor: pointer;
          //   .zoology-icon-name {
          //     color: #ffffff;
          //   }
          // }
        }
      }
    }
  }
}
.screen-dialog {
  .dialog-btn {
    background: url("~@/assets/dialog/btn-bg.png") no-repeat;
    background-size: 100% 100%;
    width: 160px;
    height: 50px;
    font-family: SourceHanSansCN-Regular;
    font-size: 24px;
    font-weight: normal;
    font-stretch: normal;
    line-height: 10px;
    letter-spacing: 2px;
    color: #ffffff;
  }
  ::v-deep .el-button {
    border: none;
  }
  .dialog-footer :hover {
    .dialog-btn {
      background: url("~@/assets/dialog/btn-bg-act.png") no-repeat;
      background-size: 100% 100%;
    }
  }
  ::v-deep .el-dialog__header {
    background: rgba(255, 255, 255, 0);
    text-align: left;
    padding-left: 40px;
    .el-dialog__title {
      font-family: SourceHanSansCN-Bold, san-serif;
      font-size: 24px;
      font-weight: normal;
      font-stretch: normal;
      line-height: 38px;
      letter-spacing: 0px;
      color: #ffffff;
    }
  }
  ::v-deep .el-dialog {
    background: url("../../../../assets/dialog/弹窗背景-一般.png") no-repeat;
    width: 1820px;
    height: 950px;
    background-size: 100% 100%;
  }
  ::v-deep .el-dialog__headerbtn {
    top: 0;
  }
  ::v-deep .el-dialog__footer {
    background: rgba(255, 255, 255, 0);
  }
  ::v-deep .el-table th.el-table__cell {
    background-color: rgba(0, 0, 0, 0);
  }
  ::v-deep .el-table {
    background-color: rgba(0, 0, 0, 0);
    color: #fff;
    border: none;
  }
  ::v-deep .el-table .cell {
    font-size: 26px;
    height: 40px;
    line-height: 40px;
  }
  ::v-deep.el-table::before {
    display: none;
  }
  ::v-deep .el-table tr {
    background-color: rgba(0, 0, 0, 0);
  }
  ::v-deep .el-table__header {
    background-color: rgba(76, 162, 248, 0.2);
    color: #fff;
  }
  ::v-deep .el-table__row {
    font-family: SourceHanSansCN-Regular, sans-serif;
    font-size: 26px;
    font-weight: normal;
    font-stretch: normal;
    letter-spacing: 0px;
    color: #b7dfff;
    background-color: rgba(106, 184, 255, 0.2);
    border: solid 1px #6ab8ff;
  }
  ::v-deep .el-table {
    tbody tr {
      &:hover {
        td {
          background-color: rgba(228, 223, 223, 0.3) !important;
        }
      }
    }
  }
  ::v-deep .el-table td.el-table__cell {
    border: none;
  }
  ::v-deep .el-table th.el-table__cell {
    border: none;
  }
}
.screen-dialog ::-webkit-scrollbar {
  width: 10px;
  height: 10px;
  background-color: rgba(#1fb6e5, 0.06);
}
::v-deep .el-pagination__total {
  color: #fff;
}
::v-deep .el-input .el-input--mini .el-input--suffix {
  background: transparent;
}
::v-deep .el-pagination .el-select .el-input .el-input__inner {
  background: transparent;
  border: none;
  color: #fff;
}
::v-deep .el-select-dropdown__list {
  background: #000;
}
::v-deep .el-pagination button:disabled {
  background-color: transparent;
}
::v-deep .el-pagination .btn-next {
  background-color: transparent;
  color: #fff;
}
::v-deep .el-pager {
  color: #fff !important;
}
::v-deep .el-pager li {
  background-color: transparent;
}
::v-deep .el-pagination__editor.el-input .el-input__inner {
  background-color: transparent;
  border: none;
  color: #fff;
}
::v-deep .el-pagination__jump {
  color: #fff;
}
::v-deep .el-select-dropdown .el-popper {
  background-color: #132d56 !important;
}
.file-content {
  width: 860px;
  transform: scale(1.5);
  height: 440px;
}
.file-content-pdf {
  height: 580px;
}
.file-content .docx-wrapper {
  background: transparent !important;
  padding: 0;
}
.file-content .docx {
  width: 90% !important;
}
.file-content .docx p {
  text-align: center !important;
}
.section-object {
  height: calc(100% - 72px);
  width: 100%;
  display: flex;
  // flex-direction: column;
  justify-content: center;
  .section-bg {
    position: relative;
    // top: 54px;
    width: 100%;
    height: 100%;
    background: url("~@/assets/sentimeent/上.png") no-repeat,
      url("~@/assets/sentimeent/底.png") no-repeat center;
    // background-position:calc(auto - 30px) auto,auto auto;
    background-position: 50% 40%, center;
    // background-size: 100% 100%;
    .section-object-item {
      position: absolute;
      width: 250px;
      height: 100px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      &:hover {
        cursor: pointer;
        transform: scale(1.1);
        transition: 0.2s;
      }

      .circle-platform {
        position: relative;
        width: 120px;
        height: 120px;
        display: flex;
        justify-content: center;
        align-items: center;

        .user-icon {
          position: absolute;
          width: 49px;
          height: 38px;
          border-radius: 50%;
          background-color: #0e86d4;
          display: flex;
          justify-content: center;
          align-items: center;
          z-index: 2;

          i {
            font-size: 40px;
            color: #ffffff;
          }
        }

        .platform-glow {
          position: absolute;
          width: 120px;
          height: 30px;
          background-color: rgba(14, 134, 212, 0.5);
          border-radius: 50%;
          filter: blur(5px);
          bottom: -5px;
          z-index: 1;
          box-shadow: 0 0 20px 10px rgba(14, 134, 212, 0.3);
        }
      }

      .item-content {
        width: 100%;
        margin-bottom: 15px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        width: 58px;
        height: 12px;
        font-family: AlibabaPuHuiTiB;
        font-size: 24px;
        color: #b9ccdf;
        line-height: 11px;
        white-space: nowrap;
      }
    }
    .section-center {
      position: absolute;
      top: 15%;
      left: 38%;
      width: 150px;
      height: 140px;
      background: url("~@/assets/sentimeent/上.png");
      background-size: 100% 100%;
      background-repeat: no-repeat;
    }
  }
}
.section-bg:hover {
  .item1 {
    animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -35.75s infinite alternate,
      animY 15s cubic-bezier(0.36, 0, 0.64, 1) -28.5s infinite alternate,
      scale 30s cubic-bezier(0.36, 0, 0.64, 1) 0s infinite alternate;
  }
  .item2 {
    animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -32.25s infinite alternate,
      animY 15s cubic-bezier(0.36, 0, 0.64, 1) -24.75s infinite alternate,
      scale 30s cubic-bezier(0.36, 0, 0.64, 1) -2.5s infinite alternate;
  }
  .item3 {
    animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -28.75s infinite alternate,
      animY 15s cubic-bezier(0.36, 0, 0.64, 1) -21.75s infinite alternate,
      scale 30s cubic-bezier(0.36, 0, 0.64, 1) 0s infinite alternate;
  }
  .item4 {
    animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -9.5s infinite alternate,
      animY 15s cubic-bezier(0.36, 0, 0.64, 1) -2s infinite alternate,
      scale 30s cubic-bezier(0.36, 0, 0.64, 1) -7.5s infinite alternate;
  }
  .item5 {
    animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -13.25s infinite alternate,
      animY 15s cubic-bezier(0.36, 0, 0.64, 1) -5.75s infinite alternate,
      scale 30s cubic-bezier(0.36, 0, 0.64, 1) -10s infinite alternate;
  }
  .item6 {
    animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -17s infinite alternate,
      animY 15s cubic-bezier(0.36, 0, 0.64, 1) -10s infinite alternate,
      scale 30s cubic-bezier(0.36, 0, 0.64, 1) -12.5s infinite alternate;
  }
  .item7 {
    animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -25s infinite alternate,
      animY 15s cubic-bezier(0.36, 0, 0.64, 1) -17.75s infinite alternate,
      scale 30s cubic-bezier(0.36, 0, 0.64, 1) -12.5s infinite alternate;
  }
  .item8 {
    animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -21.25s infinite alternate,
      animY 15s cubic-bezier(0.36, 0, 0.64, 1) -13.75s infinite alternate,
      scale 30s cubic-bezier(0.36, 0, 0.64, 1) -12.5s infinite alternate;
  }
}

.item1 {
  animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -35.75s infinite alternate,
    animY 15s cubic-bezier(0.36, 0, 0.64, 1) -28.5s infinite alternate,
    scale 30s cubic-bezier(0.36, 0, 0.64, 1) 0s infinite alternate;
}
.item2 {
  animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -32.25s infinite alternate,
    animY 15s cubic-bezier(0.36, 0, 0.64, 1) -24.75s infinite alternate,
    scale 30s cubic-bezier(0.36, 0, 0.64, 1) -2.5s infinite alternate;
}
.item3 {
  animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -28.75s infinite alternate,
    animY 15s cubic-bezier(0.36, 0, 0.64, 1) -21.75s infinite alternate,
    scale 30s cubic-bezier(0.36, 0, 0.64, 1) 0s infinite alternate;
}
.item4 {
  animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -9.5s infinite alternate,
    animY 15s cubic-bezier(0.36, 0, 0.64, 1) -2s infinite alternate,
    scale 30s cubic-bezier(0.36, 0, 0.64, 1) -7.5s infinite alternate;
}
.item5 {
  animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -13.25s infinite alternate,
    animY 15s cubic-bezier(0.36, 0, 0.64, 1) -5.75s infinite alternate,
    scale 30s cubic-bezier(0.36, 0, 0.64, 1) -10s infinite alternate;
}
.item6 {
  animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -17s infinite alternate,
    animY 15s cubic-bezier(0.36, 0, 0.64, 1) -10s infinite alternate,
    scale 30s cubic-bezier(0.36, 0, 0.64, 1) -12.5s infinite alternate;
}
.item7 {
  animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -25s infinite alternate,
    animY 15s cubic-bezier(0.36, 0, 0.64, 1) -17.75s infinite alternate,
    scale 30s cubic-bezier(0.36, 0, 0.64, 1) -12.5s infinite alternate;
}
.item8 {
  animation: animX 15s cubic-bezier(0.36, 0, 0.64, 1) -21.25s infinite alternate,
    animY 15s cubic-bezier(0.36, 0, 0.64, 1) -13.75s infinite alternate,
    scale 30s cubic-bezier(0.36, 0, 0.64, 1) -12.5s infinite alternate;
}
@keyframes animX {
  0% {
    left: -70px;
  }
  100% {
    left: 650px;
  }
}
@keyframes animY {
  0% {
    top: 70px;
  }
  100% {
    top: 400px;
  }
}
@keyframes scale {
}

::v-deep .el-pagination__total {
  color: #fff;
}
::v-deep .el-input .el-input--mini .el-input--suffix {
  background: transparent;
}
::v-deep .el-pagination .el-select .el-input .el-input__inner {
  background: transparent;
  border: none;
  color: #fff;
}
::v-deep .el-select-dropdown__list {
  background: #000;
}
::v-deep .el-pagination button:disabled {
  background-color: transparent;
}
::v-deep .el-pagination .btn-next {
  background-color: transparent;
  color: #fff;
}
::v-deep .el-pager {
  color: #fff !important;
}
::v-deep .el-pager li {
  background-color: transparent;
}
::v-deep .el-pagination__editor.el-input .el-input__inner {
  background-color: transparent;
  border: none;
  color: #fff;
}
::v-deep .el-pagination__jump {
  color: #fff;
}
::v-deep .el-select-dropdown .el-popper {
  background-color: #132d56 !important;
}
</style>
