up ui
This commit is contained in:
14
index.html
14
index.html
@@ -28,15 +28,15 @@
|
||||
|
||||
<!-- 基础SEO信息 -->
|
||||
<title>
|
||||
全能查官网_综合风险排查工具_个人与企业背景核验平台
|
||||
全能查官网_个人婚姻状态报告_综合风险排查工具箱
|
||||
</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="全能查是您的掌上风控工具箱。平台基于合规数据,提供个人风险预警、职场入职自查及黑名单筛查服务。无需繁琐流程,客观中立,一键生成报告,助您快速识别生活中的潜在隐患。"
|
||||
content="全能查是您的掌上风控工具箱。平台基于合规数据,提供个人婚姻状态分析、职场背调及黑名单筛查服务。无需繁琐流程,客观中立,一键生成包含婚姻涉诉历史与家庭风险的综合报告,助您快速识别潜在隐患。"
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="大数据风险报告查询、大数据风险评估、大数据分析报告、个人大数据风险查询、小微企业风险、贷前风险背调、代理管理平台、免费开通代理、风险管控平台、信用风险分析、企业风险报告、贷前信用审核、失信人名单查询、被执行人信息、信用黑名单查询"
|
||||
content="全能查,婚姻状态核实,风险排查工具,个人风险预警,第三方背调,商业信用评估"
|
||||
/>
|
||||
<meta name="author" content="全能查" />
|
||||
<meta name="robots" content="index, follow" />
|
||||
@@ -48,11 +48,11 @@
|
||||
<meta property="og:url" content="https://www.zhinengcha.cn/" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="全能查官网_综合风险排查工具_个人与企业背景核验平台"
|
||||
content="全能查官网_个人婚姻状态报告_综合风险排查工具箱"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="全能查是您的掌上风控工具箱。平台基于合规数据,提供个人风险预警、职场入职自查及黑名单筛查服务。无需繁琐流程,客观中立,一键生成报告,助您快速识别生活中的潜在隐患。"
|
||||
content="全能查是您的掌上风控工具箱。平台基于合规数据,提供个人婚姻状态分析、职场背调及黑名单筛查服务。无需繁琐流程,客观中立,一键生成包含婚姻涉诉历史与家庭风险的综合报告,助您快速识别潜在隐患。"
|
||||
/>
|
||||
<meta property="og:site_name" content="全能查" />
|
||||
<meta property="og:locale" content="zh_CN" />
|
||||
@@ -62,11 +62,11 @@
|
||||
<meta property="twitter:url" content="https://www.zhinengcha.cn/" />
|
||||
<meta
|
||||
property="twitter:title"
|
||||
content="全能查官网_综合风险排查工具_个人与企业背景核验平台"
|
||||
content="全能查官网_个人婚姻状态报告_综合风险排查工具箱"
|
||||
/>
|
||||
<meta
|
||||
property="twitter:description"
|
||||
content="全能查是您的掌上风控工具箱。平台基于合规数据,提供个人风险预警、职场入职自查及黑名单筛查服务。无需繁琐流程,客观中立,一键生成报告,助您快速识别生活中的潜在隐患。"
|
||||
content="全能查是您的掌上风控工具箱。平台基于合规数据,提供个人婚姻状态分析、职场背调及黑名单筛查服务。无需繁琐流程,客观中立,一键生成包含婚姻涉诉历史与家庭风险的综合报告,助您快速识别潜在隐患。"
|
||||
/>
|
||||
|
||||
<!-- 其他重要meta标签 -->
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "全能查官网_综合风险排查工具_个人与企业背景核验平台",
|
||||
"name": "全能查官网_个人婚姻状态报告_综合风险排查工具箱",
|
||||
"short_name": "全能查",
|
||||
"description": "专业大数据风险报告查询与代理平台,支持个人信用查询、小微企业风控、贷前风险背调等多场景报告应用",
|
||||
"start_url": "/",
|
||||
|
||||
@@ -269,6 +269,12 @@ const featureMap = {
|
||||
name: "违约失信",
|
||||
component: defineAsyncComponent(() => import("@/ui/CFLXG3D56.vue")),
|
||||
},
|
||||
IVYZ0S0D:{
|
||||
name: "劳动仲裁信息查询(个人版)",
|
||||
component: defineAsyncComponent(() => import("@/ui/CIVYZ0S0D.vue")),
|
||||
remark: '劳动仲裁信息查询(个人版)用于查询个人在劳动仲裁方面的信息,包括劳动仲裁案件数量、劳动仲裁案件类型、劳动仲裁案件结果等。',
|
||||
},
|
||||
|
||||
|
||||
FLXG0V4B: {
|
||||
name: "司法涉诉",
|
||||
@@ -673,11 +679,14 @@ const featureRiskLevels = {
|
||||
'QCXG7A2B': 10, // 名下车辆
|
||||
'JRZQ09J8': 10, // 收入评估
|
||||
'JRZQ3C9R': 10, // 支付行为指数
|
||||
'IVYZ0S0D': 10, // 个人仲裁信息
|
||||
|
||||
|
||||
// 🔵 低风险类 - 权重 3-5
|
||||
'IVYZ5733': 4, // 婚姻状态
|
||||
'IVYZ9A2B': 4, // 学历信息
|
||||
'IVYZ3P9M': 4, // 学历信息查询(实时版)
|
||||
|
||||
|
||||
// 📊 复合报告类 - 按子模块动态计算
|
||||
'DWBG8B4D': 0, // 谛听多维报告(由子模块计算)
|
||||
|
||||
@@ -6,11 +6,11 @@ export function useSEO() {
|
||||
|
||||
// 默认SEO信息
|
||||
const defaultSEO = {
|
||||
title: "全能查官网_综合风险排查工具_个人与企业背景核验平台",
|
||||
title: "全能查官网_个人婚姻状态报告_综合风险排查工具箱",
|
||||
description:
|
||||
"全能查是您的掌上风控工具箱。平台基于合规数据,提供个人风险预警、职场入职自查及黑名单筛查服务。无需繁琐流程,客观中立,一键生成报告,助您快速识别生活中的潜在隐患。",
|
||||
"全能查是您的掌上风控工具箱。平台基于合规数据,提供个人婚姻状态分析、职场背调及黑名单筛查服务。无需繁琐流程,客观中立,一键生成包含婚姻涉诉历史与家庭风险的综合报告,助您快速识别潜在隐患。",
|
||||
keywords:
|
||||
"大数据风险报告查询、大数据风险评估、大数据分析报告、个人大数据风险查询、小微企业风险、贷前风险背调、代理管理平台、免费开通代理、风险管控平台、信用风险分析、企业风险报告、贷前信用审核、失信人名单查询、被执行人信息、信用黑名单查询",
|
||||
"全能查,婚姻状态核实,风险排查工具,个人风险预警,第三方背调,商业信用评估",
|
||||
url: "https://www.zhinengcha.cn",
|
||||
};
|
||||
|
||||
@@ -153,11 +153,59 @@ export function useSEO() {
|
||||
const updateSEOByRoute = () => {
|
||||
const routeConfigs = {
|
||||
"/": {
|
||||
title: "全能查官网_综合风险排查工具_个人与企业背景核验平台",
|
||||
title: "全能查官网_个人婚姻状态报告_综合风险排查工具箱",
|
||||
description:
|
||||
"全能查是您的掌上风控工具箱。平台基于合规数据,提供个人风险预警、职场入职自查及黑名单筛查服务。无需繁琐流程,客观中立,一键生成报告,助您快速识别生活中的潜在隐患。",
|
||||
"全能查是您的掌上风控工具箱。平台基于合规数据,提供个人婚姻状态分析、职场背调及黑名单筛查服务。无需繁琐流程,客观中立,一键生成包含婚姻涉诉历史与家庭风险的综合报告,助您快速识别潜在隐患。",
|
||||
keywords:
|
||||
"大数据风险报告查询、大数据风险评估、大数据分析报告、个人大数据风险查询、小微企业风险、贷前风险背调、代理管理平台、免费开通代理、风险管控平台、信用风险分析、企业风险报告、贷前信用审核、失信人名单查询、被执行人信息、信用黑名单查询",
|
||||
"全能查,婚姻状态核实,风险排查工具,个人风险预警,第三方背调,商业信用评估",
|
||||
},
|
||||
"/agent/system-guide": {
|
||||
title: "全能查合作政策指南_合作伙伴权益与结算说明_官方文档",
|
||||
description:
|
||||
"全能查官方合作体系说明文档。详细解读合作伙伴的等级权益、服务费结算标准及晋升机制。致力于构建公平、透明的商业合作生态,助力合作伙伴快速上手业务。",
|
||||
keywords: "合作伙伴政策,服务费结算,渠道等级说明,业务操作指南,代理系统后台",
|
||||
},
|
||||
|
||||
// 个人查询
|
||||
'/inquire/riskassessment': {
|
||||
title: '个人综合风险分析_履约能力画像_多维数据检测_全能查',
|
||||
description: '全能查个人风险报告为您提供全方位的信用健康度参考。基于公开数据深度解析综合风险指数、司法关联风险、历史履约趋势及潜在的负面标签。数据客观中立,帮助用户建立良好的个人履约记录管理意识。',
|
||||
keywords: '个人风险检测,履约能力分析,综合风险指数,信用健康度,个人数据画像'
|
||||
},
|
||||
// 企业查询
|
||||
'/inquire/companyinfo': {
|
||||
title: '企业工商信用画像_经营异常与商业风险透视_全能查',
|
||||
description: '全能查企业版深度透视商业真相。聚合工商、司法及税务公开数据,核验企业经营异常名录、行政处罚、法律诉讼及股权穿透信息。全方位评估合作伙伴的商业健康度,规避合同违约风险。',
|
||||
keywords: '企业信用评估,工商背景核验,商业风险评估,公司经营异常,合作方背景核实'
|
||||
},
|
||||
// 贷前风险
|
||||
'/inquire/preloanbackgroundcheck': {
|
||||
title: '综合履约评分检测_多平台履约记录分析_个人财务履约报告_天远助手',
|
||||
description: '天远助手提供专业的个人履约健康度体检服务。基于多维大数据分析,检测您的综合评分波动、历史履约记录及潜在的风险标签。本服务旨在帮助用户优化个人数据画像,提升信用管理意识,不提供任何信贷金融服务。',
|
||||
keywords: '综合评分检测,多重履约压力分析,履约能力评估,综合评分优化,个人数据画像'
|
||||
},
|
||||
// 婚恋风险
|
||||
'/inquire/marriage': {
|
||||
title: '婚前综合背景了解_情感安全风险评估_家庭履约分析_全能查',
|
||||
description: '全能查婚恋风险报告基于合法公开数据,辅助评估对象的婚前背景。核心核验司法涉诉记录、失信被执行历史、多重履约能力及不良社会标签。拒绝情感盲区,用数据守护您的家庭与财产安全。',
|
||||
keywords: '婚前背景报告,恋爱对象风险,情感安全评估,司法记录核验,家庭风险防范'
|
||||
},
|
||||
// 入职背调
|
||||
'/inquire/backgroundcheck': {
|
||||
title: '职场背景核验报告_候选人职业风险与竞业核验_全能查',
|
||||
description: '全能查为企业提供专业的入职背调服务。一键筛查候选人的学历背景、涉及的商业利益冲突、劳动仲裁记录及社会不良风险。数据实时合规,降低企业用工试错成本,提升招聘决策效率。',
|
||||
keywords: '员工入职背调,职业背景核实,竞业限制评估,职场信用报告,候选人风险筛查'
|
||||
},
|
||||
// 家政风险
|
||||
'/inquire/homeservice': {
|
||||
title: '家政人员背景核实_保姆月嫂司法安全评估_全能查',
|
||||
description: '全能查针对家庭用工场景,提供客观的家政人员背景核验服务。重点核验身份信息、司法涉诉记录及失信历史。辅助雇主识别高危人员,让居家养老育儿更安心。',
|
||||
keywords: '保姆背景核验,家政风险筛查,月嫂司法记录,雇佣安全评估,家政人员核验'
|
||||
},
|
||||
'/inquire/consumerFinanceReport': {
|
||||
title: '个人履约能力评估_经济风险与收支压力参考_全能查',
|
||||
description: '全能查履约报告基于大数据算法,提供个人经济稳定性的客观分析。多维度检测综合履约分、经济关联风险及潜在的资金压力指数。本服务仅提供大数据层面的风险参考,助您优化财务管理。',
|
||||
keywords: '履约能力评估,经济风险指数,综合评分波动,资金压力分析,财务健康度'
|
||||
},
|
||||
"/agent": {
|
||||
title: "全能查代理 - 免费开通代理权限 | 大数据风险报告代理",
|
||||
@@ -191,6 +239,11 @@ export function useSEO() {
|
||||
"全能查客服中心,提供在线客服支持、技术咨询、问题反馈等服务,确保用户获得及时有效的帮助。",
|
||||
keywords: "客服中心, 在线客服, 技术支持, 问题反馈, 全能查客服",
|
||||
},
|
||||
"/promote": {
|
||||
title: "全能查合伙人计划_风控平台系统招商_渠道合作平台_全能查",
|
||||
description:"全能查开放全国渠道合作,提供零门槛的风险评估系统接入服务。一键开通独立后台,支持婚恋、职场、家政及商业风控等多场景报告推广。正规项目,结算透明,赋能流量方实现合规商业价值。",
|
||||
keywords:"风控系统代理,风险评估平台招商,平台渠道合作,企业服务创业,全能查合伙人",
|
||||
},
|
||||
};
|
||||
|
||||
const currentPath = route?.path || "/";
|
||||
|
||||
481
src/ui/CIVYZ0S0D.vue
Normal file
481
src/ui/CIVYZ0S0D.vue
Normal file
@@ -0,0 +1,481 @@
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
|
||||
// 接收父组件传入的 props
|
||||
const props = defineProps({
|
||||
data: Object,
|
||||
params: Object,
|
||||
});
|
||||
|
||||
// 定义组件名称,用于在控制台输出调试信息
|
||||
const componentName = 'IVYZ0S0D';
|
||||
|
||||
// 将 props.data 赋值给 reportData 变量
|
||||
let reportData: any = props.data || {};
|
||||
|
||||
// 如果 reportData 不为空,则将其赋值给变量
|
||||
if (reportData) {
|
||||
console.log(`${componentName} 组件接收到的数据:`, reportData);
|
||||
} else {
|
||||
console.log(`${componentName} 组件未接收到数据`);
|
||||
}
|
||||
|
||||
// 获取状态描述文本
|
||||
const getStatusText = (value: number) => {
|
||||
if (value === 1) return '未命中';
|
||||
if (value === 2) return '命中';
|
||||
return '未知';
|
||||
};
|
||||
|
||||
// 获取通知函状态描述文本
|
||||
const getNoticeLetterStatusText = (value: number) => {
|
||||
if (value === 1) return '未命中';
|
||||
if (value === 2) return '命中';
|
||||
return '未知';
|
||||
};
|
||||
|
||||
// 获取通知函期间描述文本
|
||||
const getNoticeLetterPeriodText = (period: number) => {
|
||||
const periodMap: Record<number, string> = {
|
||||
0: '没有被发送通知函',
|
||||
1: '近2年内',
|
||||
2: '2-4年',
|
||||
3: '5年以上'
|
||||
};
|
||||
|
||||
return periodMap[period] || '未知期间';
|
||||
};
|
||||
|
||||
// 获取背景颜色
|
||||
const getBackgroundColor = (value: number) => {
|
||||
if (value === 1) return '#e8f5e8'; // 浅绿色
|
||||
if (value === 2) return '#ffe8e8'; // 浅红色
|
||||
return '#f5f5f5'; // 默认灰色
|
||||
};
|
||||
|
||||
// 获取边框颜色
|
||||
const getBorderColor = (value: number) => {
|
||||
if (value === 1) return '#4caf50'; // 绿色边框
|
||||
if (value === 2) return '#f44336'; // 红色边框
|
||||
return '#ccc'; // 默认灰色边框
|
||||
};
|
||||
|
||||
// 判断是否应该隐藏该条目(如果是带时间范围的"未命中")
|
||||
const shouldHideItem = (itemText: string) => {
|
||||
// 检查是否包含时间范围关键词并且结果是"未命中"
|
||||
const timeRangeKeywords = ['近2年', '近3年', '近4年', '近5年', '2-4年', '5年以上'];
|
||||
const isTimeRangeItem = timeRangeKeywords.some(keyword => itemText.includes(keyword));
|
||||
const isNoRisk = itemText.includes('未命中');
|
||||
|
||||
// 如果是时间范围项目且结果是"未命中",则隐藏
|
||||
return isTimeRangeItem && isNoRisk;
|
||||
};
|
||||
|
||||
// 获取风险类型数组 - 所有模块都显示
|
||||
const riskTypes = computed(() => {
|
||||
const risks: {title: string, value: number, details: string | string[], bgColor: string, borderColor: string}[] = [];
|
||||
|
||||
// 总体风险
|
||||
if (reportData.risk_flag !== undefined) {
|
||||
risks.push({
|
||||
title: '总体风险',
|
||||
value: reportData.risk_flag,
|
||||
details: getStatusText(reportData.risk_flag),
|
||||
bgColor: getBackgroundColor(reportData.risk_flag),
|
||||
borderColor: getBorderColor(reportData.risk_flag)
|
||||
});
|
||||
}
|
||||
|
||||
// 失信风险
|
||||
if (reportData.dishonesty && reportData.dishonesty.dishonesty !== undefined) {
|
||||
risks.push({
|
||||
title: '失信风险',
|
||||
value: reportData.dishonesty.dishonesty,
|
||||
details: getStatusText(reportData.dishonesty.dishonesty),
|
||||
bgColor: getBackgroundColor(reportData.dishonesty.dishonesty),
|
||||
borderColor: getBorderColor(reportData.dishonesty.dishonesty)
|
||||
});
|
||||
}
|
||||
|
||||
// 高消费限制风险
|
||||
if (reportData.high_consumption && reportData.high_consumption.high_consumption !== undefined) {
|
||||
risks.push({
|
||||
title: '高消费限制风险',
|
||||
value: reportData.high_consumption.high_consumption,
|
||||
details: getStatusText(reportData.high_consumption.high_consumption),
|
||||
bgColor: getBackgroundColor(reportData.high_consumption.high_consumption),
|
||||
borderColor: getBorderColor(reportData.high_consumption.high_consumption)
|
||||
});
|
||||
}
|
||||
|
||||
// 劳动争议风险
|
||||
if (reportData.labor_disputes) {
|
||||
let details: string[] = [];
|
||||
if (reportData.labor_disputes.labor_disputes !== undefined) {
|
||||
details.push(`当前: ${getStatusText(reportData.labor_disputes.labor_disputes)}`);
|
||||
}
|
||||
if (reportData.labor_disputes.labor_disputes_3y !== undefined) {
|
||||
const detail = `近3年: ${getStatusText(reportData.labor_disputes.labor_disputes_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.labor_disputes.labor_disputes_5y !== undefined) {
|
||||
const detail = `近5年: ${getStatusText(reportData.labor_disputes.labor_disputes_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.labor_disputes.labor_contract !== undefined) {
|
||||
details.push(`劳动合同: ${getStatusText(reportData.labor_disputes.labor_contract)}`);
|
||||
}
|
||||
if (reportData.labor_disputes.labor_relation !== undefined) {
|
||||
details.push(`劳动关系: ${getStatusText(reportData.labor_disputes.labor_relation)}`);
|
||||
}
|
||||
if (reportData.labor_disputes.labor_relation_3y !== undefined) {
|
||||
const detail = `近3年劳动关系: ${getStatusText(reportData.labor_disputes.labor_relation_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.labor_disputes.labor_relation_5y !== undefined) {
|
||||
const detail = `近5年劳动关系: ${getStatusText(reportData.labor_disputes.labor_relation_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
|
||||
if (details.length > 0) {
|
||||
risks.push({
|
||||
title: '劳动争议风险',
|
||||
value: Math.max(...Object.values(reportData.labor_disputes).filter(v => typeof v === 'number')),
|
||||
details: details,
|
||||
bgColor: getBackgroundColor(Math.max(...Object.values(reportData.labor_disputes).filter(v => typeof v === 'number'))),
|
||||
borderColor: getBorderColor(Math.max(...Object.values(reportData.labor_disputes).filter(v => typeof v === 'number')))
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 社会保险纠纷风险
|
||||
if (reportData.social_insurance) {
|
||||
let details: string[] = [];
|
||||
if (reportData.social_insurance.social_insurance !== undefined) {
|
||||
details.push(`社保纠纷: ${getStatusText(reportData.social_insurance.social_insurance)}`);
|
||||
}
|
||||
if (reportData.social_insurance.pension !== undefined) {
|
||||
details.push(`养老纠纷: ${getStatusText(reportData.social_insurance.pension)}`);
|
||||
}
|
||||
if (reportData.social_insurance.pension_3y !== undefined) {
|
||||
const detail = `近3年养老: ${getStatusText(reportData.social_insurance.pension_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.social_insurance.pension_5y !== undefined) {
|
||||
const detail = `近5年养老: ${getStatusText(reportData.social_insurance.pension_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.social_insurance.injury_insurance !== undefined) {
|
||||
details.push(`工伤纠纷: ${getStatusText(reportData.social_insurance.injury_insurance)}`);
|
||||
}
|
||||
if (reportData.social_insurance.injury_insurance_3y !== undefined) {
|
||||
const detail = `近3年工伤: ${getStatusText(reportData.social_insurance.injury_insurance_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.social_insurance.injury_insurance_5y !== undefined) {
|
||||
const detail = `近5年工伤: ${getStatusText(reportData.social_insurance.injury_insurance_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.social_insurance.unemployment_insurance !== undefined) {
|
||||
details.push(`失业纠纷: ${getStatusText(reportData.social_insurance.unemployment_insurance)}`);
|
||||
}
|
||||
if (reportData.social_insurance.unemployment_insurance_3y !== undefined) {
|
||||
const detail = `近3年失业: ${getStatusText(reportData.social_insurance.unemployment_insurance_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.social_insurance.unemployment_insurance_5y !== undefined) {
|
||||
const detail = `近5年失业: ${getStatusText(reportData.social_insurance.unemployment_insurance_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.social_insurance.medical_insurance !== undefined) {
|
||||
details.push(`医疗纠纷: ${getStatusText(reportData.social_insurance.medical_insurance)}`);
|
||||
}
|
||||
if (reportData.social_insurance.medical_insurance_3y !== undefined) {
|
||||
const detail = `近3年医疗: ${getStatusText(reportData.social_insurance.medical_insurance_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.social_insurance.medical_insurance_5y !== undefined) {
|
||||
const detail = `近5年医疗: ${getStatusText(reportData.social_insurance.medical_insurance_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.social_insurance.maternity_insurance !== undefined) {
|
||||
details.push(`生育纠纷: ${getStatusText(reportData.social_insurance.maternity_insurance)}`);
|
||||
}
|
||||
if (reportData.social_insurance.maternity_insurance_3y !== undefined) {
|
||||
const detail = `近3年生育: ${getStatusText(reportData.social_insurance.maternity_insurance_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.social_insurance.maternity_insurance_5y !== undefined) {
|
||||
const detail = `近5年生育: ${getStatusText(reportData.social_insurance.maternity_insurance_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
|
||||
if (details.length > 0) {
|
||||
risks.push({
|
||||
title: '社会保险纠纷风险',
|
||||
value: Math.max(...Object.values(reportData.social_insurance).filter(v => typeof v === 'number')),
|
||||
details: details,
|
||||
bgColor: getBackgroundColor(Math.max(...Object.values(reportData.social_insurance).filter(v => typeof v === 'number'))),
|
||||
borderColor: getBorderColor(Math.max(...Object.values(reportData.social_insurance).filter(v => typeof v === 'number')))
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 福利待遇纠纷
|
||||
if (reportData.welfare_disputes && reportData.welfare_disputes.welfare !== undefined) {
|
||||
risks.push({
|
||||
title: '福利待遇纠纷',
|
||||
value: reportData.welfare_disputes.welfare,
|
||||
details: getStatusText(reportData.welfare_disputes.welfare),
|
||||
bgColor: getBackgroundColor(reportData.welfare_disputes.welfare),
|
||||
borderColor: getBorderColor(reportData.welfare_disputes.welfare)
|
||||
});
|
||||
}
|
||||
|
||||
// 人事争议类纠纷
|
||||
if (reportData.personnel_disputes) {
|
||||
let details: string[] = [];
|
||||
if (reportData.personnel_disputes.personnel_dispute !== undefined) {
|
||||
details.push(`人事争议: ${getStatusText(reportData.personnel_disputes.personnel_dispute)}`);
|
||||
}
|
||||
if (reportData.personnel_disputes.resignation_dispute !== undefined) {
|
||||
details.push(`辞职争议: ${getStatusText(reportData.personnel_disputes.resignation_dispute)}`);
|
||||
}
|
||||
if (reportData.personnel_disputes.resignation_dispute_3y !== undefined) {
|
||||
const detail = `近3年辞职: ${getStatusText(reportData.personnel_disputes.resignation_dispute_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.personnel_disputes.resignation_dispute_5y !== undefined) {
|
||||
const detail = `近5年辞职: ${getStatusText(reportData.personnel_disputes.resignation_dispute_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.personnel_disputes.dismissal_dispute !== undefined) {
|
||||
details.push(`辞退争议: ${getStatusText(reportData.personnel_disputes.dismissal_dispute)}`);
|
||||
}
|
||||
if (reportData.personnel_disputes.dismissal_dispute_3y !== undefined) {
|
||||
const detail = `近3年辞退: ${getStatusText(reportData.personnel_disputes.dismissal_dispute_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.personnel_disputes.dismissal_dispute_5y !== undefined) {
|
||||
const detail = `近5年辞退: ${getStatusText(reportData.personnel_disputes.dismissal_dispute_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
|
||||
if (details.length > 0) {
|
||||
risks.push({
|
||||
title: '人事争议类纠纷',
|
||||
value: Math.max(...Object.values(reportData.personnel_disputes).filter(v => typeof v === 'number')),
|
||||
details: details,
|
||||
bgColor: getBackgroundColor(Math.max(...Object.values(reportData.personnel_disputes).filter(v => typeof v === 'number'))),
|
||||
borderColor: getBorderColor(Math.max(...Object.values(reportData.personnel_disputes).filter(v => typeof v === 'number')))
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 仲裁相关案件
|
||||
if (reportData.arbitration) {
|
||||
let details: string[] = [];
|
||||
if (reportData.arbitration.arbitration_confirmation !== undefined) {
|
||||
details.push(`仲裁确认: ${getStatusText(reportData.arbitration.arbitration_confirmation)}`);
|
||||
}
|
||||
if (reportData.arbitration.arbitration_confirmation_3y !== undefined) {
|
||||
const detail = `近3年仲裁确认: ${getStatusText(reportData.arbitration.arbitration_confirmation_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.arbitration.arbitration_confirmation_5y !== undefined) {
|
||||
const detail = `近5年仲裁确认: ${getStatusText(reportData.arbitration.arbitration_confirmation_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.arbitration.arbitration_revocation !== undefined) {
|
||||
details.push(`仲裁撤销: ${getStatusText(reportData.arbitration.arbitration_revocation)}`);
|
||||
}
|
||||
if (reportData.arbitration.arbitration_revocation_3y !== undefined) {
|
||||
const detail = `近3年仲裁撤销: ${getStatusText(reportData.arbitration.arbitration_revocation_3y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
if (reportData.arbitration.arbitration_revocation_5y !== undefined) {
|
||||
const detail = `近5年仲裁撤销: ${getStatusText(reportData.arbitration.arbitration_revocation_5y)}`;
|
||||
if (!shouldHideItem(detail)) {
|
||||
details.push(detail);
|
||||
}
|
||||
}
|
||||
|
||||
if (details.length > 0) {
|
||||
risks.push({
|
||||
title: '仲裁相关案件',
|
||||
value: Math.max(...Object.values(reportData.arbitration).filter(v => typeof v === 'number')),
|
||||
details: details,
|
||||
bgColor: getBackgroundColor(Math.max(...Object.values(reportData.arbitration).filter(v => typeof v === 'number'))),
|
||||
borderColor: getBorderColor(Math.max(...Object.values(reportData.arbitration).filter(v => typeof v === 'number')))
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 通知函触达
|
||||
if (reportData.notice_letter && reportData.notice_letter.notice_letter !== undefined) {
|
||||
let statusText = getNoticeLetterStatusText(reportData.notice_letter.notice_letter);
|
||||
let periodText = '';
|
||||
|
||||
if (reportData.notice_letter.notice_letter_period !== undefined) {
|
||||
periodText = `期间: ${getNoticeLetterPeriodText(reportData.notice_letter.notice_letter_period)}`;
|
||||
}
|
||||
|
||||
const detailParts = [`状态: ${statusText}`];
|
||||
if (periodText) {
|
||||
detailParts.push(periodText);
|
||||
}
|
||||
|
||||
risks.push({
|
||||
title: '通知函触达',
|
||||
value: reportData.notice_letter.notice_letter,
|
||||
details: detailParts,
|
||||
bgColor: getBackgroundColor(reportData.notice_letter.notice_letter),
|
||||
borderColor: getBorderColor(reportData.notice_letter.notice_letter)
|
||||
});
|
||||
}
|
||||
|
||||
return risks;
|
||||
});
|
||||
|
||||
// 检查是否至少有一个数据类别有内容
|
||||
const hasAnyData = computed(() => {
|
||||
return riskTypes.value.length > 0;
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="ivyz0s0d-container">
|
||||
<!-- 风险卡片网格 -->
|
||||
<div v-if="hasAnyData" class="risk-cards-grid">
|
||||
<div
|
||||
v-for="(risk, index) in riskTypes"
|
||||
:key="index"
|
||||
class="risk-card"
|
||||
:style="{ backgroundColor: risk.bgColor, borderLeft: `4px solid ${risk.borderColor}` }"
|
||||
>
|
||||
<div class="risk-card__content">
|
||||
<h4 class="risk-card__title">{{ risk.title }}</h4>
|
||||
<div class="risk-card__status">
|
||||
<!-- 当 details 是字符串时显示单行 -->
|
||||
<p v-if="typeof risk.details === 'string'" class="risk-detail-item">{{ risk.details }}</p>
|
||||
<!-- 当 details 是数组时,每项占一行 -->
|
||||
<p
|
||||
v-else
|
||||
v-for="(detail, idx) in risk.details"
|
||||
:key="idx"
|
||||
class="risk-detail-item"
|
||||
>{{ detail }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 无数据提示 -->
|
||||
<div v-if="!hasAnyData" class="no-data">
|
||||
<p>暂无相关风险数据</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.ivyz0s0d-container {
|
||||
padding: 20px;
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
.risk-cards-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
|
||||
gap: 15px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.risk-card {
|
||||
border: 1px solid #e0e0e0;
|
||||
border-radius: 8px;
|
||||
padding: 15px;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
|
||||
.risk-card:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 8px rgba(0,0,0,0.15);
|
||||
}
|
||||
|
||||
.risk-card__content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.risk-card__title {
|
||||
margin: 0 0 8px 0;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.risk-card__status {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.risk-detail-item {
|
||||
margin: 0 0 4px 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.risk-detail-item:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.no-data {
|
||||
text-align: center;
|
||||
color: #999;
|
||||
font-style: italic;
|
||||
padding: 20px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user