<template>
  <div class="gamma-card risk-assessment">
    <div class="gamma-grid-2" style="grid-template-columns: 1fr 2fr; gap: 24px;">
      <div class="risk-card">
        <div class="gamma-title"><span>🛡️</span> 风险评估</div>
        <div class="risk-desc">
          说明:<br>
          <span v-for="item in RISK_LEVEL_DESC" :key="item.level">
            {{ item.level }}（{{ item.label }}）: {{ item.desc }}<br>
          </span>
        </div>
        <div class="risk-level-circle">
          <div class="circle" :style="{ borderTopColor: levelColor }">
            <div class="circle-text">{{ riskLevel }}</div>
          </div>
          <div class="risk-level-text">风险等级</div>
          <div class="risk-stars">{{ riskStars }}</div>
        </div>
      </div>
      <div class="risk-card index-group">
        <div class="index-item">
          <div class="index-title">信用风险指数</div>
          <div class="index-circle">
            <div class="index-status">{{ riskScoreDisplay }}</div>
            <div class="gamma-small">{{ riskScoreUnit }}</div>
          </div>
          <div class="index-desc">信用风险评分，0-1000分，分数越高用户信用越高</div>
        </div>
        <div class="index-item">
          <div class="index-title">履约金额综合指数</div>
          <div class="index-circle">
            <div class="index-status">{{ amountIndexDisplay.value }}</div>
            <div class="gamma-small">{{ amountIndexDisplay.unit }}</div>
          </div>
          <div class="index-desc">履约金额综合指数，0-1000分，指数越大用户逾期可能性越低</div>
        </div>
        <div class="index-item">
          <div class="index-title">履约笔数综合指数</div>
          <div class="index-circle">
            <div class="index-status">{{ countIndexDisplay.value }}</div>
            <div class="gamma-small">{{ countIndexDisplay.unit }}</div>
          </div>
          <div class="index-desc">履约笔数综合指数，0-1000分，指数越大用户逾期可能性越低</div>
        </div>
      </div>
    </div>
  </div>
</template>

<script setup>
import { computed } from 'vue';
import { RISK_LEVEL_DESC, riskLevelColor, formatComplianceIndex, riskLevelStars } from '../reportHelper';

const props = defineProps({
  riskLevel: { type: String, default: '—' },
  riskScore: { type: [String, Number], default: '—' },
  amountIndex: { type: [String, Number], default: '' },
  countIndex: { type: [String, Number], default: '' },
});

const levelColor = computed(() => riskLevelColor(props.riskLevel));
const riskStars = computed(() => riskLevelStars(props.riskLevel));

const riskScoreDisplay = computed(() => {
  if (props.riskScore === null || props.riskScore === undefined || props.riskScore === '') {
    return '未命中';
  }
  return String(props.riskScore);
});

const riskScoreUnit = computed(() => (riskScoreDisplay.value === '未命中' ? '未命中' : '分'));

const amountIndexDisplay = computed(() => formatComplianceIndex(props.amountIndex));
const countIndexDisplay = computed(() => formatComplianceIndex(props.countIndex));
</script>

<style lang="scss" scoped>
.risk-assessment .risk-card {
  background: #fff;
  border-radius: 8px;
  padding: 20px;
}

.risk-desc {
  font-size: 13px;
  color: #555;
  line-height: 1.6;
}

.risk-level-circle {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 16px;
}

.circle {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 4px solid #eee;
  border-top-color: #ff3333;
  display: flex;
  align-items: center;
  justify-content: center;
}

.circle-text {
  font-size: 48px;
  font-weight: bold;
}

.risk-level-text {
  font-size: 14px;
  color: #666;
  margin-top: 8px;
}

.risk-stars {
  margin-top: 4px;
  letter-spacing: 2px;
  color: #d4af37;
}

.index-group {
  display: flex;
  justify-content: space-around;
  align-items: center;
}

.index-item { text-align: center; }

.index-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: 3px solid #eee;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 auto 8px;
}

.index-title { font-size: 14px; margin-bottom: 4px; }
.index-status { font-size: 18px; font-weight: 600; }
.index-desc { font-size: 12px; color: #666; margin-top: 4px; line-height: 1.4; max-width: 180px; }
</style>
