You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2381 lines
71 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
* @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>