c545fa3d by lihua

等级为1.2时提示

1 parent 99d1c01a
<template>
<div style="display: flex;justify-content: center;width: 100%;">
<div v-show="!isWordStyle" class="analysis-result-main">
<div class="reject">
<div class="header_title" v-show="analysisResultInfo.rating <= 2">
<span class="title_text">{{ `匿名化评测结果不符合评测要求,等级为${analysisResultInfo.rating}级包含直接标识符,请重新进行匿名化处理` }}</span>
</div>
</div>
<div v-if="showTitle" class="result-title">匿名结果分析</div>
<div class="kpi-content" v-show="Object.keys(analysisResultInfo).length > 0">
<div class="border-content">
......@@ -191,11 +196,20 @@
</div>
<div v-show="isWordStyle" class="analysis-result-main report-main" ref="report">
<div
style="font-family: simsun;height: 40px;display: block;line-height: 32px;font-size: 18px;color: #212121;font-weight: 700;text-align: center;margin-top: 10px;margin-bottom: 10px;">匿名化效果评估指标</div>
<p style="font-family: simsun;margin: 0px;font-size: 14px;line-height: 21px;white-space: pre-wrap;color: #212121;">{{ ' 依据GB/T 42460-2023《信息安全技术个人信息去标识化效果评估指南》附录D,对去标识化以后的数据集基于K匿名模型进行去标识化效果的评估。' }}</p>
<p style="font-family: simsun;margin: 0px;font-size: 14px;line-height: 21px;white-space: pre-wrap;color: #212121;">
{{ ` 总体方案为先计算数据集每行记录、整体数据集的重标识风险,进而计算环境重标识攻击概率,最后再结合环境重标识攻击概率计算整个数据集的重标识整体风险。去标识化效果评估结果为${analysisResultInfo.rating + '级'}。具体指标如下:` }}</p>
<div style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;font-weight: 700;margin: 8px 0px;">匿名化结果分析</div>
style="font-family: simsun;height: 40px;display: block;line-height: 32px;font-size: 18px;color: #212121;font-weight: 700;text-align: center;margin-top: 10px;margin-bottom: 10px;">
匿名化效果评估指标</div>
<p
style="font-family: simsun;margin: 0px;font-size: 14px;line-height: 21px;white-space: pre-wrap;color: #212121;">
{{
' 依据GB/T 42460-2023《信息安全技术个人信息去标识化效果评估指南》附录D,对去标识化以后的数据集基于K匿名模型进行去标识化效果的评估。' }}</p>
<p
style="font-family: simsun;margin: 0px;font-size: 14px;line-height: 21px;white-space: pre-wrap;color: #212121;">
{{ `
总体方案为先计算数据集每行记录、整体数据集的重标识风险,进而计算环境重标识攻击概率,最后再结合环境重标识攻击概率计算整个数据集的重标识整体风险。去标识化效果评估结果为${analysisResultInfo.rating
+ '级'}。具体指标如下:` }}</p>
<div
style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;font-weight: 700;margin: 8px 0px;">
匿名化结果分析</div>
<div class="kpi-content" v-show="Object.keys(analysisResultInfo).length > 0">
<div class="border-content">
<div class="text" style="color: #212121;">去标识化效果评估结果</div>
......@@ -233,8 +247,12 @@
(oldAnonTaskValueInfo.anonPrivacyMode?.riskThreshold || 0) }}</span>
</div>
</div>
<div style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;font-weight: 700;margin: 8px 0px 4px;">重标识风险表</div>
<div style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;margin-bottom: 4px;white-space: pre-wrap;">{{ ' 门限阈值的取值:完全公开共享数据发布,取值 1/20;受控公开共享数据发布,取值 1/5;领地公开共享数据发布,取值 1/3。' }}</div>
<div
style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;font-weight: 700;margin: 8px 0px 4px;">
重标识风险表</div>
<div
style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;margin-bottom: 4px;white-space: pre-wrap;">
{{ ' 门限阈值的取值:完全公开共享数据发布,取值 1/20;受控公开共享数据发布,取值 1/5;领地公开共享数据发布,取值 1/3。' }}</div>
<table border="0" cellspacing="0"
style="width:100%;word-break: break-all;margin: 0 auto;text-align: center;border-collapse: collapse;color: #212121">
<thead>
......@@ -247,7 +265,7 @@
<tbody>
<tr v-for="(recordItem, j) in fullResultData" :key="j">
<td v-for="(columnItem, i) in resultTableFields" :key="i"
:style="{border: '0.5px solid #d9d9d9', 'text-align': <any>(getTextAlign(columnItem) ?? 'left') }">
:style="{ border: '0.5px solid #d9d9d9', 'text-align': <any>(getTextAlign(columnItem) ?? 'left') }">
<span :style="{ 'word-break': 'break-all' }">
{{ columnItem.enName == 'index' ? (j + 1) : formatterPreviewDate(recordItem, columnItem) }}
</span>
......@@ -256,9 +274,11 @@
</tbody>
</table>
<div v-show="oldAnonTaskValueInfo.dataSharingTypeCode != '01'"
style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;font-weight: 700;margin: 8px 0px 4px;">内部故意攻击概率</div>
style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;font-weight: 700;margin: 8px 0px 4px;">
内部故意攻击概率</div>
<div v-show="oldAnonTaskValueInfo.dataSharingTypeCode != '01'"
style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;margin-bottom: 4px;white-space: pre-wrap;">{{ ' 重标识数据的动机和能力为低,从重标识攻击可能性分析表可得出在内部攻击方面,重标识攻击概率的取值为0.05。'}}</div>
style="font-family: simsun;display: block;line-height: 21px;font-size: 14px;color: #212121;margin-bottom: 4px;white-space: pre-wrap;">
{{ ' 重标识数据的动机和能力为低,从重标识攻击可能性分析表可得出在内部攻击方面,重标识攻击概率的取值为0.05。' }}</div>
<table v-show="oldAnonTaskValueInfo.dataSharingTypeCode != '01'" border="0" cellspacing="0"
style="width:100%;word-break: break-all;margin: 0 auto;text-align: center;border-collapse: collapse;color: #212121;">
<thead>
......@@ -324,19 +344,22 @@
<td v-for="(columnItem, i) in adversarialTestFields" :key="i"
:style="{ border: '0.5px solid #d9d9d9', 'text-align': <any>(columnItem.align ?? 'left') }">
<span :style="{ 'word-break': 'break-all' }">
{{ columnItem.field == 'index' ? (j + 1) : recordItem[columnItem.field] === 0 ? 0 : (recordItem[columnItem.field] || '--') }}
{{ columnItem.field == 'index' ? (j + 1) : recordItem[columnItem.field] === 0 ? 0 :
(recordItem[columnItem.field] || '--') }}
</span>
</td>
</tr>
</tbody>
</table>
<p v-show="analysisResultInfo.rating >= 3" style="font-family: simsun;margin: 4px 0px 0px;font-size: 14px;line-height: 21px;color: #212121;white-space: pre-wrap;">{{ ' 通过识别关键变量,选择标识度高于0.5的属性作为攻击测试的关键变量,在攻击测试中,涉及到的攻击场景,其重标识概率均远小于所接受的风险水平0.05。另外,未发现任何其它可能的安全性问题。' }}</p>
<p v-show="analysisResultInfo.rating >= 3"
style="font-family: simsun;margin: 4px 0px 0px;font-size: 14px;line-height: 21px;color: #212121;white-space: pre-wrap;">
{{ ' 通过识别关键变量,选择标识度高于0.5的属性作为攻击测试的关键变量,在攻击测试中,涉及到的攻击场景,其重标识概率均远小于所接受的风险水平0.05。另外,未发现任何其它可能的安全性问题。' }}</p>
</div>
</div>
</template>
<script lang="ts" setup name="anonResultAnalysis">
import { TableColumnWidth } from '@/utils/enum';
import { QuestionFilled } from "@element-plus/icons-vue";
import { QuestionFilled, CircleCloseFilled } from "@element-plus/icons-vue";
import Moment from 'moment';
const props = defineProps({
......@@ -708,4 +731,43 @@ defineExpose({
}
}
}
.reject {
background-color: #FDF2F4;
box-shadow: 0 0 0 1px #E63E33;
margin-bottom: 8px;
.header_title {
.el-icon {
color: #E63E33;
}
}
}
.header_title {
height: 40px;
padding: 0 16px;
display: flex;
align-items: center;
.title_text {
line-height: 22px;
font-size: 14px;
color: var(--el-color-regular);
font-weight: 600;
display: flex;
align-items: center;
.title_icon {
width: 26px;
height: 21px;
margin-right: 4px;
cursor: pointer;
&.active {
transform: rotate(90deg);
}
}
}
}
</style>
\ No newline at end of file
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!