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.

1758 lines
52 KiB

2 years ago
<!--
* @Version: 1.0
* @Author: kery.chen
* @Description: 总体概览左侧
* @Date: 2021-11-30 11:08:50
2 years ago
* @LastEditTime: 2023-08-21 16:01:49
2 years ago
* @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>
<div class="section-inventory">
<module-title>三份清单</module-title>
<div
class="three-inventory"
@mouseover="inventoryMouseOver"
@mouseleave="inventoryLeave"
>
<div
:class="threeStatus === 1 ? 'checked' : 'unchecked'"
@click="inventoryBtn(1, '重点企业名录清单')"
>
<div>重点企业名录清单</div>
<img
v-if="threeStatus === 1"
src="@/assets/ecosphere/icon-指挥手册-act.png"
alt=""
/>
<img
v-if="threeStatus != 1"
src="@/assets/ecosphere/icon-指挥手册-nor.png"
alt=""
/>
</div>
<div
:class="threeStatus === 2 ? 'checked' : 'unchecked'"
@click="inventoryBtn(2, '重点领域监管清单')"
>
<div>重点领域监管清单</div>
<img
v-if="threeStatus === 2"
src="@/assets/ecosphere/icon-责任清单-act.png"
alt=""
/>
<img
v-if="threeStatus != 2"
src="@/assets/ecosphere/icon-责任清单-nor.png"
alt=""
/>
</div>
<div
:class="threeStatus === 3 ? 'checked' : 'unchecked'"
@click="inventoryBtn(3, '重点工作项目清单')"
>
<div>重点工作项目清单</div>
<img
v-if="threeStatus === 3"
src="@/assets/ecosphere/icon-负面清单-act.png"
alt=""
/>
<img
v-if="threeStatus != 3"
src="@/assets/ecosphere/icon-负面清单-nor.png"
alt=""
/>
</div>
</div>
</div>
2 years ago
<div class="section-dynamic">
2 years ago
<module-title>工作动态</module-title>
<vue-seamless-scroll
:data="dynamicList"
:class-option="classOption"
class="scroll_box"
>
<div
v-for="(item, idx) in dynamicList"
:key="idx"
class="scroll_item"
2 years ago
@click.stop="dynamicClick(item)"
2 years ago
>
<div class="item_txt">
2 years ago
<!-- materialsName -->
<span :data-obj="item.name">
{{ item.name }}
2 years ago
</span>
</div>
<div class="item_bottom">
<div class="bottom_icon"></div>
2 years ago
<div class="bottom_name">{{ item.type }}</div>
2 years ago
</div>
</div>
</vue-seamless-scroll>
</div>
<div class="section-ecosphere">
<module-title>
<div class="title-main">
网络平台
<div
v-show="iconIndex === 2"
class="title-back"
@click="
iconIndex = 1;
zoologyIconData = zoologyIconList.slice(0, 4);
"
>
返回
</div>
<div
v-show="iconIndex === 1"
class="title-right"
@click="
iconIndex = 2;
zoologyIconData = zoologyIconList.slice(4, 8);
"
>
其他
</div>
</div>
</module-title>
<div class="zoology-box">
<div
v-for="(item, idx) in zoologyIconData"
:key="idx"
class="zoology-icon"
:class="{ active: currentIndex === idx }"
@mouseover="zoologyMouseOver(idx)"
@mouseleave="zoologyMouseLeave"
@click="
2 years ago
networkPlatformClick(item.name,item.type);
2 years ago
currentIndex = idx;
"
>
<div class="icon-bk">
<img :src="item.url" style="width: 66px; height: 66px" 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"
2 years ago
:before-close="beForeClose"
2 years ago
>
<div style="height: 765px">
2 years ago
<MyTable
:height="750"
:table-list="currentPageData"
:table-key="tableKey"
/>
2 years ago
<div style="text-align: right">
2 years ago
<paginations
v-show="total > 0"
2 years ago
:total="total"
2 years ago
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="inventoryBtn"
/>
2 years ago
</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"
>
2 years ago
<!-- <el-table-column
2 years ago
label="序号"
type="index"
:index="
(index) => {
return index + 1 + (currentPage - 1) * pageSize;
}
"
width="80"
align="center"
2 years ago
/> -->
2 years ago
<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="file"
class="file-content"
></div>
<div v-if="fileExtension === 'pdf'" class="file-content">
<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="handleSizeChange"
@current-change="handleCurrentChange"
>
</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'
2 years ago
import { listEnterprise, listDomain, listWork, listDongtai, listPlatform } from '@/api/zongzhi/st.js'
2 years ago
import {
getBilibiliData,
getRedBookData,
getToDayHeadlineData,
getQuickData,
getWechat,
getWebsite,
getWeibo,
getTikTok
} from '@/api/common'
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 {
2 years ago
currentIndex: 0,
// 总条数
total: 0,
queryParams: {
pageNum: 1,
pageSize: 10
},
dtTotal: 0,
dtParams: {
pageNum: 1,
pageSize: 10
},
currentPageData: [], // 当前页显示内容
tableKey: [],
2 years ago
threeTimer: null,
dialogImg: false,
imgSrc: '',
zoologyTimer: null,
currentIndex: 0,
href: null,
threeStatus: 1,
pageDetails: false,
2 years ago
dynamicList: [],
2 years ago
zoologyIconList: [
{
name: '网站',
num: 0,
subList: [],
2 years ago
type:1,
2 years ago
url: require('@/assets/ecosphere/icon-网站.png')
},
{
name: '抖音',
num: 0,
subList: [],
2 years ago
type:2,
2 years ago
url: require('@/assets/ecosphere/icon-抖音.png')
},
{
name: '微信',
num: 0,
subList: [],
2 years ago
type:3,
2 years ago
url: require('@/assets/ecosphere/icon-微信.png')
},
{
name: '微博',
num: 0,
subList: [],
2 years ago
type:4,
2 years ago
url: require('@/assets/ecosphere/icon微博.png')
},
{
name: '今日头条',
num: 0,
subList: [],
2 years ago
type:5,
2 years ago
url: require('@/assets/ecosphere/icon-头条.png')
},
{
name: '快手',
num: 0,
subList: [],
2 years ago
type:6,
2 years ago
url: require('@/assets/ecosphere/icon-快手.png')
},
{
name: 'B站',
num: 0,
subList: [],
2 years ago
type:7,
2 years ago
url: require('@/assets/ecosphere/icon-b站.png')
},
{
name: '小红书',
num: 0,
subList: [],
2 years ago
type:8,
2 years ago
url: require('@/assets/ecosphere/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, // 每页显示数量
2 years ago
2 years ago
tableHeader: [],
tableData: [],
dialogTitle: '',
zoologyWidth: '',
fileExtension: '',
pdfUrl: '',
numPages: ''
}
},
computed: {
classOption() {
return {
step: 0.4, // 数值越大速度滚动越快
2 years ago
limitMoveNum: 5, // 开始无缝滚动的数据量 this.dataList.length
2 years ago
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)
},
mounted() {
this.zoologyIconData = this.zoologyIconList.slice(0, 4)
this.getDynamicData() // 工作动态信息获取
// this.getZoologyData() // 网络平台信息获取
this.getZoologyChange() // 网络平台按钮切换
this.inventoryChange() // 三份清单自动切换
},
methods: {
// 工作动态信息获取
getDynamicData() {
2 years ago
listDongtai().then(res => {
console.log(res)
this.dynamicList = res.data
// this.dtTotal = res.total
2 years ago
})
// const tableObject = require('./data.json')
// this.dynamicList = tableObject['工作动态']
2 years ago
},
// 网络平台信息获取
2 years ago
async networkPlatformClick(val,type) {
2 years ago
this.currentPage = 1
this.pageSize = 10
this.dialogTitle = val
this.zoologyIconStatus = true
if (val === 'B站') {
// getBilibiliData().then((res) => {
this.tableHeader = ['账号ID', 'URL']
this.zoologyWidth = '1000px'
this.tableData = []
2 years ago
// this.tableData = [
// { 账号ID: 1, URL: 'https://www.bilibili.com/' }
// ]
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['URL'] = item.dns
this.tableData.push(obj)
})
2 years ago
// res['T_DATA_BILIBILI[]'].forEach((item) => {
// this.tableData.push({ 账号ID: item.account_id, URL: item.url })
// })
this.networkPlatformData()
// })
} else if (val === '小红书') {
// getRedBookData().then((res) => {
this.tableHeader = ['账号ID', 'URL']
this.zoologyWidth = '1000px'
this.tableData = []
2 years ago
// this.tableData = [
// { 账号ID: 1, URL: 'https://www.xiaohongshu.com/explore' }
// ]
2 years ago
// res['T_DATA_RED_BOOK[]'].forEach((item) => {
// this.tableData.push({ 账号ID: item.account_id, URL: item.url })
// })
2 years ago
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['URL'] = item.dns
this.tableData.push(obj)
})
2 years ago
this.networkPlatformData()
// })
} else if (val === '今日头条') {
// getToDayHeadlineData().then((res) => {
this.tableHeader = ['账号ID', '简介']
this.zoologyWidth = '1200px'
this.tableData = []
2 years ago
// this.tableData = [
// { 账号ID: 1, 简介: '今日头条是北京字节跳动科技有限公司开发的一款基于数据挖掘的推荐引擎产品为用户推荐信息、提供连接人与信息的服务的产品。由张一鸣于2012年3月创建2012年8月发布第一个版本。' }
// ]
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['简介'] = item.intro
this.tableData.push(obj)
})
2 years ago
// res['T_DATA_TODAY_HEADLINE[]'].forEach((item) => {
// this.tableData.push({
// 账号ID: item.account_id,
// 简介: item.introduction
// })
// })
this.networkPlatformData()
// })
} else if (val === '快手') {
// getQuickData().then((res) => {
this.tableHeader = ['账号ID', '简介']
this.zoologyWidth = '1000px'
this.tableData = []
2 years ago
// this.tableData = [
// { 账号ID: 1, 简介: '快手是北京快手科技有限公司旗下的产品。快手 [1-2]的前身叫“GIF快手”诞生于2011年3月最初是一款用来制作、分享GIF图片的手机应用。2012年11月快手从纯粹的工具应用转型为短视频社区用于用户记录和分享生产、生活的平台。后来随着智能手机、平板电脑的普及和移动流量成本的下降快手在2015年以后迎来市场' }
// ]
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['简介'] = item.intro
this.tableData.push(obj)
})
2 years ago
// res['T_DATA_QUICK_WORKER[]'].forEach((item) => {
// this.tableData.push({
// 账号ID: item.account_id,
// 简介: item.introduction
// })
// })
this.networkPlatformData()
// })
} else if (val === '微信') {
// getWechat().then((res) => {
this.tableHeader = ['账号ID', '行业属性']
this.zoologyWidth = '1000px'
this.tableData = []
2 years ago
// this.tableData = [
// { 账号ID: 1, 行业属性: '自媒体' }
// ]
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['行业属性'] = this.getProps(item.props)
this.tableData.push(obj)
})
2 years ago
// res['T_DATA_WECHAT[]'].forEach((item) => {
// this.tableData.push({
// 账号ID: item.account_id,
// 行业属性: item.introduction
// })
// })
this.networkPlatformData()
// })
} else if (val === '网站') {
// getWebsite().then((res) => {
this.tableHeader = ['网站名称', '真实IP', '网站域名', '备案许可证号']
this.zoologyWidth = '2000px'
this.tableData = []
2 years ago
// this.tableData.push({
// 网站名称: '百度',
// 真实IP: '220.181.111.188',
// 网站域名: 'https://www.xiaohongshu.com/explore',
// 备案许可证号: '京ICP证030173号',
// numOrder: 1
// })
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['网站名称'] = item.name
obj['真实IP'] = item.ipAddress
obj['网站域名'] = item.dns
obj['备案许可证号'] = item.licenceNum
this.tableData.push(obj)
2 years ago
})
// res['T_big_screen_website_data[]'].forEach((item) => {
// const startIndex = item.licence_num.indexOf('备')
// const endIndex = item.licence_num.lastIndexOf('号')
// this.tableData.push({
// 网站名称: item.website_name,
// 真实IP: item.acturally_ip,
// 网站域名: item.website_domain,
// 备案许可证号: item.licence_num,
// numOrder: item.licence_num.substring(startIndex + 1, endIndex)
// })
// })
this.tableData.sort((a, b) => a.numOrder - b.numOrder)
this.networkPlatformData()
// })
} else if (val === '微博') {
// getWeibo().then((res) => {
this.tableHeader = ['账号名称', '认证', '地区']
this.zoologyWidth = '1000px'
this.tableData = []
// res['T_big_screen_weibo_data[]'].forEach((item) => {
2 years ago
// this.tableData.push({
// 账号名称: '大红矛',
// 认证: '微博原创视频博主',
// 地区: '北京'
// })
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号名称'] = item.name
obj['认证'] = item.authentication
obj['地区'] = item.area
this.tableData.push(obj)
2 years ago
})
// })
this.networkPlatformData()
// })
} else if (val === '抖音') {
// getTikTok().then((res) => {
this.tableHeader = ['账号', '简介', '粉丝数']
this.zoologyWidth = '1500px'
this.tableData = []
// res['T_big_screen_tik_tok[]'].forEach((item) => {
2 years ago
// this.tableData.push({
// 账号: '1124693722',
// 简介: '无',
// 粉丝数: 25
2 years ago
// })
2 years ago
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {};
obj['账号'] = item.name;
obj['简介'] = item.intro;
obj['粉丝数'] = item.fansNum;
this.tableData.push(obj)
})
2 years ago
this.tableData.sort((a, b) => b.粉丝数 - a.粉丝数)
2 years ago
2 years ago
// })
}
2 years ago
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;
}
2 years ago
},
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()
},
2 years ago
/**
* 重置
*/
reset() {
this.total = 0
this.queryParams = {
pageNum: 1,
pageSize: 10
}
this.currentPageData = [] // 当前页显示内容
this.tableKey = []
},
/**
* 关闭dialog弹出前的回调
*/
beForeClose(done) {
this.reset()
done()
},
2 years ago
// 三份清单按钮切换
inventoryBtn(status, val) {
2 years ago
this.currentIndex = status
if (this.currentIndex == 1) {
listEnterprise(this.queryParams).then(res => {
this.currentPageData = res.rows
this.tableKey = [
{ name: '企业名称', value: 'enterpriseName' },
{ name: '企业类型', value: 'enterpriseType', dictType: 'tc_enter_type' },
{ name: '互联网业务', value: 'networkYewu', dictType: 'tc_inlet_yewu' },
{ name: '监管部门', value: 'jianguanBumen' },
{ name: '单位地址', value: 'address' },
{ name: '联系人', value: 'linkMan' },
{ name: '联系电话', value: 'phoneNum' },
{ name: '网址或平台名称', value: 'productName' },
{ name: '域名', value: 'dns' }
]
this.total = res.total
})
} else if (this.currentIndex == 2) {
listDomain(this.queryParams).then(res => {
this.currentPageData = res.rows
this.tableKey = [
{ name: '企业类型', value: 'enterpriseType', dictType: 'tc_enter_type' },
{ name: '重点监管监管对象', value: 'zdjgContent' },
{ name: '法律法规令禁止的有关行为', value: 'weifaXingwei' },
{ name: '主要监管部门', value: 'dep' },
{ name: '主要依据', value: 'zhuyaoYiju' }
]
this.total = res.total
})
} else if (this.currentIndex == 3) {
listWork(this.queryParams).then(res => {
this.currentPageData = res.rows
this.tableKey = [
{ name: '推进单位', value: 'unitName' },
{ name: '项目名称', value: 'projectName' },
{ name: '项目内容', value: 'projectContent' },
{ name: '项目类型', value: 'projectType', dictType: 'tc_item_type' },
{ name: '项目联系人', value: 'projectLinkMan' }
]
this.total = res.total
})
2 years ago
}
2 years ago
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
2 years ago
},
// 三份清单自动切换
inventoryChange() {
this.threeTimer = setInterval(() => {
this.threeStatus++
if (this.threeStatus > 3) {
this.threeStatus = 1
}
}, 6000)
},
iconClick(row) {
console.log(row)
if (row.URL) {
this.href = row.URL
this.pageDetails = true
} else if (row.网站域名) {
if (row.网站域名.substring(0, 4) === 'http') {
this.href = row.网站域名
this.pageDetails = true
} else {
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()
},
2 years ago
dynamicClick(item) {
console.log('数据', item)
this.tableHeader.push({ name: '材料路径', value: 'name' })
const fileName = item.materialsFileName.split(',')
const fileUrl = item.materialsFileUrl.split(',')
if (fileName.length > 0) {
fileName.forEach((item, index) => {
this.tableData.push({ name: item, url: fileUrl[index] })
})
} else {
this.tableData = []
2 years ago
}
this.dynamicStatus = true
2 years ago
// 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
2 years ago
},
rowClick(row) {
console.log(row)
2 years ago
this.dialogDetails = true
// console.log(row)
// this.fileExtension = row['材料路径'].substring(
// row['材料路径'].lastIndexOf('.') + 1
// )
// console.log('fileExtension', this.fileExtension)
// 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']
// : '/fileApi'
// }${row['材料路径']}`
// }).then(({ data }) => {
// if (data) {
// this.dialogDetails = true
// this.$nextTick(() => {
// docx.renderAsync(data, this.$refs.file) // 渲染到页面预览
// })
// }
// })
// } else if (this.fileExtension === 'pdf') {
// this.getNumPages(`${process.env.NODE_ENV === 'production' ? window._CONFIG['fileNginxUrl'] : '/fileApi'}${row['材料路径']}`)
// }
2 years ago
},
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) => {
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() {
2 years ago
this.reset()
2 years ago
this.dialogStatus = false
this.dynamicStatus = false
this.pageSize = 20
this.currentPage = 1
},
processDetails(val) {
this.fileExtension = 'docx'
2 years ago
2 years ago
if (
['生成整改通知书送达回执', '生成约谈通知书', '登记约谈'].includes(val)
) {
2 years ago
this.dialogDetails = true
// axios({
// method: 'get',
// responseType: 'blob', // 设置响应文件格式
// url: `${
// process.env.NODE_ENV === 'production'
// ? window._CONFIG['fileNginxUrl']
// : '/fileApi'
// }/网信办大屏内容文档/网络管理/约谈流程/${val}.docx`
// }).then(({ data }) => {
// if (data) {
// this.dialogDetails = true
// this.$nextTick(() => {
// docx.renderAsync(data, this.$refs.file) // 渲染到页面预览
// })
// }
// })
2 years ago
this.dialogTitle = val
}
}
}
}
</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: 1603px;
height: 950px;
margin: 130px 0 0 50px;
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
align-content: space-between;
.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: 520px;
height: 462px;
.three-inventory {
width: 483px;
height: 382px;
margin-left: 23px;
margin-top: 19px;
:hover {
cursor: pointer;
}
> div {
width: 483px;
height: 120px;
margin-bottom: 11px;
background: url("~@/assets/ecosphere/first/bg-三份清单-nor.png");
position: relative;
div:nth-child(1) {
position: absolute;
top: 35px;
left: 139px;
}
div:nth-child(2) {
position: absolute;
top: 59px;
left: 139px;
}
img {
position: absolute;
top: 12px;
left: 36px;
}
}
.checked {
background: url("~@/assets/ecosphere/first/bg-三份清单-act.png");
font-family: FZZDHJW--GB1-0;
font-size: 36px;
line-height: 32px;
letter-spacing: 2px;
color: #fbe84f;
}
.unchecked {
background: url("~@/assets/ecosphere/first/bg-三份清单-nor.png");
font-family: FZZDHJW--GB1-0;
font-size: 36px;
line-height: 32px;
letter-spacing: 2px;
color: #ffffff;
}
}
}
.section-dynamic {
width: 719px;
height: 484px;
margin-right: 22px;
padding-top: 40px;
.scroll_box {
width: 722px;
height: 412px;
margin-top: 30px;
overflow: hidden;
.scroll_item {
cursor: pointer;
width: 719px;
height: 165px;
display: flex;
flex-direction: column;
margin-bottom: 20px;
border: 1px solid #193859;
.item_txt {
width: 100%;
padding-left: 20px;
height: 115px;
line-height: 115px;
span {
display: inline-block;
width:695px;
color: #ffffff;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin: 0 auto;
font-family: SourceHanSansCN-Medium;
font-size: 28px;
}
}
.item_bottom {
width: 719px;
height: 50px;
background-image: linear-gradient(
312deg,
rgb(99 202 250 / 0%) 0%,
rgba(103, 193, 253, 0.2) 0%,
rgb(106 184 255 / 0%) 0%,
#6ab7ff42 100%
),
linear-gradient(#6ab8ff00, #6ab8ff00);
display: flex;
align-items: center;
.bottom_icon {
margin-left: 20px;
width: 29px;
height: 31px;
background: url("~@/assets/ecosphere/first/icon-部门.png");
}
.bottom_name {
margin-left: 12px;
font-family: SourceHanSansCN-Regular;
font-size: 28px;
color: #68cff9;
}
.bottom_time {
flex: 1;
text-align: right;
margin-right: 20px;
font-family: SourceHanSansCN-Regular;
font-size: 28px;
color: #68cff9;
}
}
}
}
}
.section-ecosphere {
width: 720px;
height: 484px;
padding-top: 40px;
.title-main {
width: 420px;
display: flex;
.title-right {
display: flex;
align-items: center;
text-indent: 30px;
cursor: pointer;
width: 130px;
height: 50px;
font-family: SourceHanSansCN-Medium, sans-serif;
font-size: 25px;
color: #ffffff;
background: url("~@/assets/ecosphere/btn-其他.png") no-repeat;
position: absolute;
right: 180px;
bottom: 470px;
}
.title-back {
display: flex;
align-items: center;
text-indent: 30px;
cursor: pointer;
width: 130px;
height: 50px;
font-family: SourceHanSansCN-Medium, sans-serif;
font-size: 25px;
color: #ffffff;
background: url("~@/assets/ecosphere/btn-返回.png") no-repeat;
position: absolute;
right: 180px;
bottom: 470px;
}
}
.zoology-box {
width: 700px;
display: flex;
flex-wrap: wrap;
}
.zoology-icon {
text-align: center;
width: 336px;
height: 170px;
line-height: 170px;
margin-top: 34px;
margin-left: 7px;
display: flex;
align-items: center;
box-sizing: border-box;
border: 1px solid #132d56;
border-radius: 3px;
div {
font-family: SourceHanSansCN-Regular;
font-size: 28px;
font-weight: normal;
font-stretch: normal;
letter-spacing: 1px;
color: #ffffff;
}
.icon-bk {
position: relative;
left: 46px;
width: 110px;
height: 110px;
background: url("~@/assets/ecosphere/icon-bg-默认.png") no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
justify-content: center;
}
.zoology-icon-name {
width: 170px;
text-align: center;
position: relative;
top: 0px;
left: 54px;
font-family: SourceHanSansCN-Regular, sans-serif;
font-size: 33px;
letter-spacing: 1px;
color: #68cff9;
}
&:hover {
cursor: pointer;
}
}
.active {
background: url("~@/assets/ecosphere/bg-选中.png") no-repeat;
div {
opacity: 1;
}
.zoology-icon-name {
font-family: SourceHanSansCN-Regular, sans-serif;
font-size: 33px;
font-weight: normal;
font-stretch: normal;
letter-spacing: 1px;
color: #fffffe;
}
.arrow {
background: url("~@/assets/ecosphere/箭头-选中.png") no-repeat;
}
.icon-bk {
background: url("~@/assets/ecosphere/icon-bg-选中.png") no-repeat;
background-size: 100% 100%;
}
}
}
}
}
.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;
}
</style>
<style lang="scss">
.file-content .docx-wrapper {
background: transparent !important;
padding: 0;
}
.file-content .docx {
width: 90% !important;
}
.file-content .docx p {
text-align: center !important;
}
</style>