All files / src/components/feature StatementDetail.vue

0% Statements 0/25
100% Branches 0/0
0% Functions 0/1
0% Lines 0/24

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65                                                                                                                                 
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
import { formatDetailMoney, formatHkd } from '@/utils/money'
import type { StatementDetail as StatementDetailType } from '@/api/types'
 
defineProps<{
  detail: StatementDetailType
}>()
 
const { t } = useI18n()
</script>
 
<template>
  <div class="space-y-4">
    <section class="rounded-2xl border border-silver-200 bg-white p-4 shadow-card">
      <div class="grid grid-cols-2 gap-3 text-sm">
        <div>
          <div class="text-xs text-silver-500">{{ t('statement.gross') }}</div>
          <div class="tnum mt-1 font-medium">{{ formatHkd(detail.grossAmount) }}</div>
        </div>
        <div>
          <div class="text-xs text-silver-500">{{ t('statement.mpf') }}</div>
          <div class="tnum mt-1 font-medium">{{ formatHkd(detail.mpfAmount) }}</div>
        </div>
        <div>
          <div class="text-xs text-silver-500">{{ t('statement.adjustment') }}</div>
          <div class="tnum mt-1 font-medium">{{ formatHkd(detail.adjustmentAmount) }}</div>
        </div>
        <div>
          <div class="text-xs text-silver-500">{{ t('statement.net') }}</div>
          <div class="tnum mt-1 font-semibold text-brand-700">{{ formatHkd(detail.netAmount) }}</div>
        </div>
        <div>
          <div class="text-xs text-silver-500">{{ t('statement.payDate') }}</div>
          <div class="mt-1">{{ detail.payDate }}</div>
        </div>
        <div>
          <div class="text-xs text-silver-500">{{ t('statement.bankTail') }}</div>
          <div class="mt-1">{{ detail.bankTail }}</div>
        </div>
      </div>
    </section>
 
    <section class="rounded-2xl border border-silver-200 bg-white p-4 shadow-card">
      <div class="mb-3 text-sm font-medium">{{ t('statement.amount') }}</div>
      <div v-for="item in detail.items" :key="item.id" class="border-b border-silver-100 py-3 last:border-0">
        <div class="flex items-center justify-between text-sm">
          <span>{{ item.customerName }}</span>
          <span class="tnum font-medium">{{ formatDetailMoney(item.originalAmount, item.originalCurrency) }}</span>
        </div>
        <div class="mt-1 flex flex-wrap gap-x-4 gap-y-1 text-xs text-slate-500">
          <span>{{ t('statement.policy') }} {{ item.policyNo }}</span>
          <span>{{ item.companyName }}</span>
          <span>{{ item.productName }}</span>
        </div>
        <div class="mt-1 flex flex-wrap gap-x-4 gap-y-1 text-xs text-slate-400">
          <span>{{ item.commissionYearType }}</span>
          <span>{{ t('statement.ratio') }} {{ item.myRatio }}</span>
          <span>@{{ item.exchangeRate }}</span>
          <span class="tnum">{{ formatHkd(item.hkdAmount) }}</span>
        </div>
      </div>
    </section>
  </div>
</template>