|
|
|
@ -25,27 +25,35 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 通报 -->
|
|
|
|
|
<div v-show="announceCurrentIndex === 1">
|
|
|
|
|
<div v-if="announceCurrentIndex === 1">
|
|
|
|
|
<div class="table_outside">
|
|
|
|
|
<div class="table_title">
|
|
|
|
|
<span class="title_one">部门名称</span>
|
|
|
|
|
<span class="title_two">通报次数</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="table_ctn">
|
|
|
|
|
<div
|
|
|
|
|
v-for="(item, index) in notificationList"
|
|
|
|
|
:key="index"
|
|
|
|
|
class="ctn_item"
|
|
|
|
|
@click="clickTop4(item)"
|
|
|
|
|
<div>
|
|
|
|
|
<vue-seamless-scroll
|
|
|
|
|
:data="notificationList"
|
|
|
|
|
:class-option="classOption"
|
|
|
|
|
class="monitorScroll"
|
|
|
|
|
>
|
|
|
|
|
<div class="item_icon">
|
|
|
|
|
{{ index + 1 }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="item_name" :title="item.depName">
|
|
|
|
|
{{ item.depName }}
|
|
|
|
|
<!-- <div class="table_ctn"> -->
|
|
|
|
|
<div
|
|
|
|
|
v-for="(item, index) in notificationList"
|
|
|
|
|
:key="index"
|
|
|
|
|
class="ctn_item"
|
|
|
|
|
@click="clickTop4(item)"
|
|
|
|
|
>
|
|
|
|
|
<div class="item_icon">
|
|
|
|
|
{{ index + 1 }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="item_name" :title="item.depName">
|
|
|
|
|
{{ item.depName }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="item_num">{{ item.count }}</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="item_num">{{ item.count }}</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- </div> -->
|
|
|
|
|
</vue-seamless-scroll>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@ -134,9 +142,8 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
//这里只有部门通报,有问题
|
|
|
|
|
import { listBmtb } from "@/api/networkSecurity";
|
|
|
|
|
|
|
|
|
|
import { listBmtb, listSdtb, dataSdtb, dataBmtb } from "@/api/networkSecurity";
|
|
|
|
|
import vueSeamlessScroll from "vue-seamless-scroll";
|
|
|
|
|
import qs from "qs";
|
|
|
|
|
const docx = require("docx-preview");
|
|
|
|
|
import axios from "axios";
|
|
|
|
@ -148,6 +155,7 @@ import { departmentList, territorialTB, departmentTB } from "@/api/wlSafe";
|
|
|
|
|
export default {
|
|
|
|
|
components: {
|
|
|
|
|
pdf,
|
|
|
|
|
vueSeamlessScroll,
|
|
|
|
|
},
|
|
|
|
|
props: {
|
|
|
|
|
announceCurrentIndex: {
|
|
|
|
@ -155,6 +163,7 @@ export default {
|
|
|
|
|
default: 0,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
dialogTitle: "",
|
|
|
|
@ -177,6 +186,20 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
classOption() {
|
|
|
|
|
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)
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
this.getBMData();
|
|
|
|
|
this.getSDData();
|
|
|
|
@ -254,11 +277,10 @@ export default {
|
|
|
|
|
echartsJump(myChartPieFirst, optionFirst);
|
|
|
|
|
},
|
|
|
|
|
clickFunc(val) {
|
|
|
|
|
// this.queryData.areaId = val.area || val.data.area;
|
|
|
|
|
// console.log(this.queryData);
|
|
|
|
|
this.queryData.area = val.area || val.data.area;
|
|
|
|
|
//点击之后弹出框显示列表
|
|
|
|
|
this.dangerList = [];
|
|
|
|
|
departmentList(this.queryData).then((res) => {
|
|
|
|
|
listSdtb(this.queryData).then((res) => {
|
|
|
|
|
res.rows.forEach((value) => {
|
|
|
|
|
//看看是每条数据的所有文件都拉出来
|
|
|
|
|
//还是只取一条
|
|
|
|
@ -271,12 +293,6 @@ export default {
|
|
|
|
|
fileUrl: arr2[0],
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
// if (value.fileName && value.fileUrl) {
|
|
|
|
|
// this.dangerList.push({
|
|
|
|
|
// fileName: value.fileName,
|
|
|
|
|
// fileUrl: value.fileUrl,
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
});
|
|
|
|
|
this.dialogStatus = true;
|
|
|
|
|
});
|
|
|
|
@ -286,7 +302,7 @@ export default {
|
|
|
|
|
let str1 = str[0].split(".");
|
|
|
|
|
this.fileExtension = str1[1];
|
|
|
|
|
if (this.fileExtension == "pdf") {
|
|
|
|
|
this.getNumPages(process.env.VUE_APP_BASE_API2 + str[0]);
|
|
|
|
|
this.getNumPages(str[0]);
|
|
|
|
|
this.dialogStatus2 = true;
|
|
|
|
|
} else if (
|
|
|
|
|
this.fileExtension === "docx" ||
|
|
|
|
@ -295,7 +311,7 @@ export default {
|
|
|
|
|
axios({
|
|
|
|
|
method: "get",
|
|
|
|
|
responseType: "blob", // 设置响应文件格式
|
|
|
|
|
url: process.env.VUE_APP_BASE_API2 + str[0],
|
|
|
|
|
url: str[0],
|
|
|
|
|
}).then(({ data }) => {
|
|
|
|
|
if (data) {
|
|
|
|
|
this.dialogStatus2 = true;
|
|
|
|
@ -356,32 +372,32 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
// 部门通报
|
|
|
|
|
getBMData() {
|
|
|
|
|
listBmtb({ isStatus: 1 }).then((res) => {
|
|
|
|
|
this.notificationList = res.rows;
|
|
|
|
|
dataBmtb().then((res) => {
|
|
|
|
|
this.notificationList = res.data;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
//属地通报
|
|
|
|
|
// getSDData() {
|
|
|
|
|
// territorialTB().then((res) => {
|
|
|
|
|
// res.data.forEach((value, index) => {
|
|
|
|
|
// this.piedata.push({
|
|
|
|
|
// name: this.$filterDict("1", `[${value.areaId}]`, true),
|
|
|
|
|
// value: value.count,
|
|
|
|
|
// percent: value.pt,
|
|
|
|
|
// area: value.area,
|
|
|
|
|
// img: require(`@/assets/privateOrder/general/${
|
|
|
|
|
// index + 1 > 8 ? 1 : index + 1
|
|
|
|
|
// }.png`),
|
|
|
|
|
// });
|
|
|
|
|
// });
|
|
|
|
|
// this.inItPie();
|
|
|
|
|
// });
|
|
|
|
|
// },
|
|
|
|
|
getSDData() {
|
|
|
|
|
dataSdtb().then((res) => {
|
|
|
|
|
res.data.forEach((value, index) => {
|
|
|
|
|
this.piedata.push({
|
|
|
|
|
name: this.$filterDict("tc_sdtbmc", value.area),
|
|
|
|
|
value: value.count,
|
|
|
|
|
percent: value.percentage,
|
|
|
|
|
area: value.area,
|
|
|
|
|
img: require(`@/assets/privateOrder/general/${
|
|
|
|
|
index + 1 > 8 ? 1 : index + 1
|
|
|
|
|
}.png`),
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
this.inItPie();
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
// top4部门点击
|
|
|
|
|
clickTop4(val) {
|
|
|
|
|
this.dialogTitle = val.depName + "通报文件";
|
|
|
|
|
this.dangerList = [];
|
|
|
|
|
listBmtb({ depName: val.depName,isStatus: 1 }).then((res) => {
|
|
|
|
|
listBmtb({ depName: val.depName, isStatus: 1 }).then((res) => {
|
|
|
|
|
res.rows.forEach((value) => {
|
|
|
|
|
if (value.fileName) {
|
|
|
|
|
let arr1 = value.fileName.split(",");
|
|
|
|
@ -401,6 +417,12 @@ export default {
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.monitorScroll {
|
|
|
|
|
height: 280px;
|
|
|
|
|
width: 100%;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
margin-top: 15px;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-dialog__header {
|
|
|
|
|
background: rgba(255, 255, 255, 0);
|
|
|
|
|
text-align: left;
|
|
|
|
@ -490,48 +512,48 @@ export default {
|
|
|
|
|
margin-right: 25px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.table_ctn {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 280px;
|
|
|
|
|
margin-top: 15px;
|
|
|
|
|
.ctn_item {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
width: 720px;
|
|
|
|
|
height: 60px;
|
|
|
|
|
margin-bottom: 15px;
|
|
|
|
|
background: url("~@/assets/privateOrder/general/first/部门通报tr-bg.png");
|
|
|
|
|
.item_icon {
|
|
|
|
|
width: 38px;
|
|
|
|
|
height: 38px;
|
|
|
|
|
margin-left: 18px;
|
|
|
|
|
font-size: 26px;
|
|
|
|
|
color: #fff;
|
|
|
|
|
line-height: 38px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
.item_name {
|
|
|
|
|
width: 500px;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
font-family: SourceHanSansCN-Medium;
|
|
|
|
|
font-size: 28px;
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
.item_num {
|
|
|
|
|
font-family: PangMenZhengDao-3;
|
|
|
|
|
font-size: 32px;
|
|
|
|
|
font-style: italic;
|
|
|
|
|
line-height: 72px;
|
|
|
|
|
letter-spacing: 2px;
|
|
|
|
|
color: #ffec5c;
|
|
|
|
|
flex: 1;
|
|
|
|
|
margin-right: 60px;
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// .table_ctn {
|
|
|
|
|
// width: 100%;
|
|
|
|
|
// height: 280px;
|
|
|
|
|
.ctn_item {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
width: 720px;
|
|
|
|
|
height: 60px;
|
|
|
|
|
margin-bottom: 15px;
|
|
|
|
|
background: url("~@/assets/privateOrder/general/first/部门通报tr-bg.png");
|
|
|
|
|
.item_icon {
|
|
|
|
|
width: 38px;
|
|
|
|
|
height: 38px;
|
|
|
|
|
margin-left: 18px;
|
|
|
|
|
font-size: 26px;
|
|
|
|
|
color: #fff;
|
|
|
|
|
line-height: 38px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
.item_name {
|
|
|
|
|
width: 500px;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
font-family: SourceHanSansCN-Medium;
|
|
|
|
|
font-size: 28px;
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
.item_num {
|
|
|
|
|
font-family: PangMenZhengDao-3;
|
|
|
|
|
font-size: 32px;
|
|
|
|
|
font-style: italic;
|
|
|
|
|
line-height: 72px;
|
|
|
|
|
letter-spacing: 2px;
|
|
|
|
|
color: #ffec5c;
|
|
|
|
|
flex: 1;
|
|
|
|
|
margin-right: 60px;
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.screen-dialog {
|
|
|
|
|