|
|
|
@ -107,24 +107,27 @@
|
|
|
|
|
<span>等级</span>
|
|
|
|
|
<span>隐患来源</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div @click="rowDetails($event)">
|
|
|
|
|
<vue-seamless-scroll
|
|
|
|
|
:data="dangerList"
|
|
|
|
|
:class-option="classOption"
|
|
|
|
|
class="dangerBox"
|
|
|
|
|
>
|
|
|
|
|
<div
|
|
|
|
|
v-for="(item, idx) in dangerList"
|
|
|
|
|
:key="idx"
|
|
|
|
|
class="dangerText"
|
|
|
|
|
|
|
|
|
|
<div @click="rowDetails($event)">
|
|
|
|
|
<vue-seamless-scroll
|
|
|
|
|
:data="dangerList"
|
|
|
|
|
:class-option="classOption"
|
|
|
|
|
class="dangerBox"
|
|
|
|
|
>
|
|
|
|
|
<span :data-url="item.fileUrl">{{ item.unitName }}</span>
|
|
|
|
|
<span :data-url="item.fileUrl">{{ item.riskName }}</span>
|
|
|
|
|
<span :data-url="item.fileUrl">{{ $filterDict("tc_yh_level", item.level) }}</span>
|
|
|
|
|
<span :data-url="item.fileUrl"> {{ $filterDict("tc_yh_source", item.riskSource) }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</vue-seamless-scroll>
|
|
|
|
|
<div
|
|
|
|
|
v-for="(item, idx) in dangerList"
|
|
|
|
|
:key="idx"
|
|
|
|
|
class="dangerText"
|
|
|
|
|
>
|
|
|
|
|
<span :data-url="item.fileUrl">{{ item.unitName }}</span>
|
|
|
|
|
<span :data-url="item.fileUrl">{{ item.riskName }}</span>
|
|
|
|
|
<span :data-url="item.fileUrl">{{
|
|
|
|
|
$filterDict("tc_yh_level", item.level)
|
|
|
|
|
}}</span>
|
|
|
|
|
<span :data-url="item.fileUrl">
|
|
|
|
|
{{ $filterDict("tc_yh_source", item.riskSource) }}</span
|
|
|
|
|
>
|
|
|
|
|
</div>
|
|
|
|
|
</vue-seamless-scroll>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 通报处置 -->
|
|
|
|
@ -136,28 +139,27 @@
|
|
|
|
|
<span class="title_three">处置情况</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div @click="rowDetails($event)">
|
|
|
|
|
<vue-seamless-scroll
|
|
|
|
|
:data="informList"
|
|
|
|
|
:class-option="classOption"
|
|
|
|
|
class="table_ctn"
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
<div
|
|
|
|
|
v-for="(item, index) in informList"
|
|
|
|
|
:key="index"
|
|
|
|
|
class="ctn_item"
|
|
|
|
|
<vue-seamless-scroll
|
|
|
|
|
:data="informList"
|
|
|
|
|
:class-option="classOption"
|
|
|
|
|
class="table_ctn"
|
|
|
|
|
>
|
|
|
|
|
<div class="item_name" :data-url="item.fileUrl">
|
|
|
|
|
{{ item.depName }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="item_ip" :data-url="item.fileUrl">
|
|
|
|
|
{{ item.ip }}
|
|
|
|
|
<div
|
|
|
|
|
v-for="(item, index) in informList"
|
|
|
|
|
:key="index"
|
|
|
|
|
class="ctn_item"
|
|
|
|
|
>
|
|
|
|
|
<div class="item_name" :data-url="item.fileUrl">
|
|
|
|
|
{{ item.depName }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="item_ip" :data-url="item.fileUrl">
|
|
|
|
|
{{ item.ip }}
|
|
|
|
|
</div>
|
|
|
|
|
<span class="item_num" :data-url="item.fileUrl">{{
|
|
|
|
|
$filterDict("tc_steam_state", item.state)
|
|
|
|
|
}}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<span class="item_num" :data-url="item.fileUrl">{{
|
|
|
|
|
$filterDict("tc_steam_state", item.state)
|
|
|
|
|
}}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</vue-seamless-scroll>
|
|
|
|
|
</vue-seamless-scroll>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@ -230,7 +232,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import {safeRisks} from '@/api/wlSafe'
|
|
|
|
|
import { safeRisks } from "@/api/wlSafe";
|
|
|
|
|
import { listDanger, getDanger, listTb, getTb } from "@/api/zongzhi/st.js";
|
|
|
|
|
import vueSeamlessScroll from "vue-seamless-scroll";
|
|
|
|
|
import ModuleTitle from "../../common/ModuleTitle.vue";
|
|
|
|
@ -289,31 +291,31 @@ export default {
|
|
|
|
|
{
|
|
|
|
|
title: "敏感信息泄露漏洞",
|
|
|
|
|
value: 0,
|
|
|
|
|
type:1,
|
|
|
|
|
type: 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "权限许可和访问控制",
|
|
|
|
|
type:2,
|
|
|
|
|
type: 2,
|
|
|
|
|
value: 0,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "未加密登录请求",
|
|
|
|
|
value: 0,
|
|
|
|
|
type:3,
|
|
|
|
|
type: 3,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "其他",
|
|
|
|
|
type:6,
|
|
|
|
|
type: 6,
|
|
|
|
|
value: 0,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "应用程序测试脚本漏洞",
|
|
|
|
|
type:4,
|
|
|
|
|
type: 4,
|
|
|
|
|
value: 0,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "文件上传漏洞",
|
|
|
|
|
type:5,
|
|
|
|
|
type: 5,
|
|
|
|
|
value: 0,
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
@ -449,15 +451,15 @@ export default {
|
|
|
|
|
* 安全隐患大屏数据
|
|
|
|
|
*/
|
|
|
|
|
safeListDP() {
|
|
|
|
|
safeRisks().then(res=>{
|
|
|
|
|
res.data.forEach((value,index)=>{
|
|
|
|
|
this.safetyList.forEach((value1,index1)=>{
|
|
|
|
|
if(value.type == value1.type){
|
|
|
|
|
this.safetyList[index1].value = value.count
|
|
|
|
|
safeRisks().then((res) => {
|
|
|
|
|
res.data.forEach((value, index) => {
|
|
|
|
|
this.safetyList.forEach((value1, index1) => {
|
|
|
|
|
if (value.type == value1.type) {
|
|
|
|
|
this.safetyList[index1].value = value.count;
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -534,13 +536,19 @@ export default {
|
|
|
|
|
this.dialogStatus = true;
|
|
|
|
|
},
|
|
|
|
|
rowDetails(e) {
|
|
|
|
|
if(!e.target.dataset.url) return
|
|
|
|
|
if (!e.target.dataset.url) {
|
|
|
|
|
this.$message({
|
|
|
|
|
message: "该记录暂无文件!",
|
|
|
|
|
type: "warning",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.fileExtension = e.target.dataset.url.substring(
|
|
|
|
|
e.target.dataset.url.lastIndexOf(".") + 1
|
|
|
|
|
);
|
|
|
|
|
if (this.fileExtension == "pdf") {
|
|
|
|
|
this.pdfUrl = process.env.VUE_APP_BASE_API2 +e.target.dataset.url;
|
|
|
|
|
this.dialogDetails = true;
|
|
|
|
|
this.pdfUrl = process.env.VUE_APP_BASE_API2 + e.target.dataset.url;
|
|
|
|
|
this.dialogDetails = true;
|
|
|
|
|
} else if (
|
|
|
|
|
this.fileExtension === "docx" ||
|
|
|
|
|
this.fileExtension === "doc"
|
|
|
|
@ -549,14 +557,19 @@ export default {
|
|
|
|
|
method: "get",
|
|
|
|
|
responseType: "blob", // 设置响应文件格式
|
|
|
|
|
url: process.env.VUE_APP_BASE_API2 + e.target.dataset.url,
|
|
|
|
|
}).then(({ data }) => {
|
|
|
|
|
if (data) {
|
|
|
|
|
this.dialogDetails = true;
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
docx.renderAsync(data, this.$refs.file1); // 渲染到页面预览
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
.then(({ data }) => {
|
|
|
|
|
if (data) {
|
|
|
|
|
|
|
|
|
|
this.dialogDetails = true;
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
docx.renderAsync(data, this.$refs.file1); // 渲染到页面预览
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
this.$message.error(error);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// const row = JSON.parse(e.target.dataset.obj)
|
|
|
|
@ -1254,7 +1267,7 @@ export default {
|
|
|
|
|
.file-content .docx p {
|
|
|
|
|
text-align: center !important;
|
|
|
|
|
}
|
|
|
|
|
.docx{
|
|
|
|
|
.docx {
|
|
|
|
|
padding: 104pt 90pt !important;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|