From b1b301306ef3d77f1853f162261e3e441076c27e Mon Sep 17 00:00:00 2001 From: Mrx <18278715334@163.com> Date: Tue, 24 Feb 2026 11:10:28 +0800 Subject: [PATCH] f --- public/example.json | 147 ++++----- src/ui/IVYZ0S0D.vue | 774 +++++++++++++++++++++++++++++++------------- 2 files changed, 626 insertions(+), 295 deletions(-) diff --git a/public/example.json b/public/example.json index d8bfc34..7950829 100644 --- a/public/example.json +++ b/public/example.json @@ -10282,88 +10282,89 @@ "data": { "apiID": "IVYZ0S0D", "data": { - "basic_info" : { - "risk_flag" : 1 + "basic_info": { + "risk_flag": 2 }, - "dishonesty" : { - "dishonesty" : 1 + "dishonesty": { + "dishonesty": 2 }, - "high_consumption" : { - "high_consumption" : 1 + "high_consumption": { + "high_consumption": 2 }, - "labor_disputes" : { - "labor_contract" : 1, - "labor_disputes" : 1, - "labor_disputes_3y" : 1, - "labor_disputes_5y" : 1, - "labor_relation" : 1, - "labor_relation_3y" : 1, - "labor_relation_5y" : 1, - "wage_claim" : 1, - "wage_claim_3y" : 1, - "wage_claim_5y" : 1, - "compensation" : 1, - "compensation_3y" : 1, - "compensation_5y" : 1, - "collective_contract" : 1, - "collective_contract_3y" : 1, - "collective_contract_5y" : 1, - "dispatch_contract" : 1, - "dispatch_contract_3y" : 1, - "dispatch_contract_5y" : 1, - "part_time" : 1, - "part_time_3y" : 1, - "part_time_5y" : 1, - "non_compete" : 1, - "non_compete_3y" : 1, - "non_compete_5y" : 1 + "labor_disputes": { + "labor_contract": 2, + "labor_disputes": 2, + "labor_disputes_3y": 2, + "labor_disputes_5y": 2, + "labor_relation": 2, + "labor_relation_3y": 2, + "labor_relation_5y": 2, + "wage_claim": 2, + "wage_claim_3y": 2, + "wage_claim_5y": 2, + "compensation": 2, + "compensation_3y": 2, + "compensation_5y": 2, + "collective_contract": 2, + "collective_contract_3y": 2, + "collective_contract_5y": 2, + "dispatch_contract": 2, + "dispatch_contract_3y": 2, + "dispatch_contract_5y": 2, + "part_time": 2, + "part_time_3y": 2, + "part_time_5y": 2, + "non_compete": 2, + "non_compete_3y": 2, + "non_compete_5y": 2 }, - "social_insurance" : { - "social_insurance" : 1, - "pension" : 1, - "pension_3y" : 1, - "pension_5y" : 1, - "injury_insurance" :2, - "injury_insurance_3y" : 1, - "injury_insurance_5y" : 2, - "medical_insurance" : 1, - "medical_insurance_3y" : 1, - "medical_insurance_5y" : 1, - "maternity_insurance" : 1, - "maternity_insurance_3y" : 1, - "maternity_insurance_5y" : 1, - "commercial_insurance" : 1, - "commercial_insurance_3y" : 1, - "commercial_insurance_5y" : 1 + "social_insurance": { + "social_insurance": 2, + "pension": 2, + "pension_3y": 2, + "pension_5y": 2, + "injury_insurance": 2, + "injury_insurance_3y": 2, + "injury_insurance_5y": 2, + "medical_insurance": 2, + "medical_insurance_3y": 2, + "medical_insurance_5y": 2, + "maternity_insurance": 2, + "maternity_insurance_3y": 2, + "maternity_insurance_5y": 2, + "commercial_insurance": 2, + "commercial_insurance_3y": 2, + "commercial_insurance_5y": 2 }, - "welfare_disputes" : { - "welfare" : 1 + "welfare_disputes": { + "welfare": 2 }, - "personnel_disputes" : { - "personnel_dispute" : 2, - "resignation_dispute" : 1, - "resignation_dispute_3y" : 1, - "resignation_dispute_5y" : 1, - "dismissal_dispute" : 1, - "dismissal_dispute_3y" : 1, - "dismissal_dispute_5y" : 1, - "employment_contract" : 1, - "employment_contract_3y" : 1, - "employment_contract_5y" : 1 + "personnel_disputes": { + "personnel_dispute": 2, + "resignation_dispute": 2, + "resignation_dispute_3y": 2, + "resignation_dispute_5y": 2, + "dismissal_dispute": 2, + "dismissal_dispute_3y": 2, + "dismissal_dispute_5y": 2, + "employment_contract": 2, + "employment_contract_3y": 2, + "employment_contract_5y": 2 }, - "arbitration" : { - "arbitration_confirmation" : 2, - "arbitration_confirmation_3y" : 2, - "arbitration_confirmation_5y" : 1, - "arbitration_revocation" : 1, - "arbitration_revocation_3y" : 1, - "arbitration_revocation_5y" : 1 + "arbitration": { + "arbitration_confirmation": 2, + "arbitration_confirmation_3y": 2, + "arbitration_confirmation_5y": 2, + "arbitration_revocation": 2, + "arbitration_revocation_3y": 2, + "arbitration_revocation_5y": 2 }, - "notice_letter" : { - "notice_letter" : 1, - "notice_letter_period" : "0" + "notice_letter": { + "notice_letter": 2, + "notice_letter_period": "2" } - } + } + } } diff --git a/src/ui/IVYZ0S0D.vue b/src/ui/IVYZ0S0D.vue index 58d112d..5ac5e3f 100644 --- a/src/ui/IVYZ0S0D.vue +++ b/src/ui/IVYZ0S0D.vue @@ -1,5 +1,5 @@ @@ -423,21 +641,92 @@ const hasAnyData = computed(() => { .ivyz0s0d-container { padding: 20px; font-family: Arial, sans-serif; + background-color: #f8fafc; + min-height: 100vh; } -.risk-cards-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); - gap: 15px; - margin-bottom: 20px; +.card { + background-color: white; + border-radius: 0.75rem; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + padding: 1.25rem; + transition: all 0.3s ease; +} + +.tabs-nav { + display: flex; + width: 100%; + border-bottom: 2px solid #e5e7eb; + margin-bottom: 1.25rem; +} + +.tab-button { + flex: 1; + padding: 0.75rem 1rem; + text-align: center; + cursor: pointer; + font-weight: 500; + font-size: 0.875rem; + color: #6b7280; + background: transparent; + border: none; + border-bottom: 2px solid transparent; + transition: all 0.3s ease; + position: relative; +} + +.tab-button:hover { + color: #4b5563; + background-color: #f9fafb; +} + +.tab-button.active { + color: #3b82f6; + border-bottom-color: #3b82f6; + background-color: #eff6ff; +} + +.tab-content { + min-height: 300px; +} + +.tab-header { + margin-bottom: 1rem; + padding-bottom: 0.75rem; + border-bottom: 1px solid #e5e7eb; +} + +.tab-title { + margin: 0 0 0.25rem 0; + font-size: 1.25rem; + font-weight: bold; + color: #1f2937; +} + +.tab-subtitle { + margin: 0; + font-size: 0.875rem; + color: #6b7280; +} + +.risk-cards-container { + display: flex; + flex-direction: column; + gap: 0.75rem; } .risk-card { - border: 1px solid #e0e0e0; - border-radius: 8px; - padding: 15px; - box-shadow: 0 2px 4px rgba(0,0,0,0.1); + border: 1px solid #e5e7eb; + border-radius: 0.5rem; + padding: 1rem; + box-shadow: 0 1px 3px rgba(0,0,0,0.1); transition: transform 0.2s ease, box-shadow 0.2s ease; + background-color: white; +} + +.risk-card.hit-risk { + border-left: 4px solid #f44336 !important; /* 命中风险的红色边框 */ + background-color: #ffe8e8 !important; /* 命中风险的浅红色背景 */ } .risk-card:hover { @@ -451,20 +740,20 @@ const hasAnyData = computed(() => { } .risk-card__title { - margin: 0 0 8px 0; - font-size: 16px; + margin: 0 0 0.5rem 0; + font-size: 1rem; font-weight: bold; color: #333; } .risk-card__status { margin: 0; - font-size: 14px; + font-size: 0.875rem; color: #666; } .risk-detail-item { - margin: 0 0 4px 0; + margin: 0 0 0.25rem 0; line-height: 1.4; } @@ -476,6 +765,47 @@ const hasAnyData = computed(() => { text-align: center; color: #999; font-style: italic; - padding: 20px; + padding: 2.5rem 1.25rem; + background-color: white; + border-radius: 0.75rem; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); +} + +.no-data-tab { + text-align: center; + color: #9ca3af; + font-style: italic; + padding: 1.5rem 1rem; + background-color: #f9fafb; + border-radius: 0.5rem; + border: 1px dashed #e5e7eb; +} + +/* 响应式设计 */ +@media (max-width: 768px) { + .ivyz0s0d-container { + padding: 0.75rem; + } + + .card { + padding: 1rem; + } + + .tab-button { + font-size: 0.8rem; + padding: 0.5rem; + } + + .tab-title { + font-size: 1.125rem; + } + + .risk-card__title { + font-size: 0.95rem; + } + + .risk-card__status { + font-size: 0.8rem; + } } \ No newline at end of file