mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-15 09:14:08 +00:00
Create BaseCustomTag (dynamic tag render), BaseFormatMoney, BaseHeading, BaseScrollPane, BaseDescriptionList/Item, BaseLabel, BaseCustomerSelectInput, BaseSpinner, BaseRating, and status label components. Register all renamed v2 components under their old Base* names (BaseInputGroup->FormGroup, BasePage->Page, BaseTable->DataTable, etc.) so templates resolve correctly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
52 lines
1.2 KiB
Vue
52 lines
1.2 KiB
Vue
<script setup lang="ts">
|
|
import { computed } from 'vue'
|
|
import { useI18n } from 'vue-i18n'
|
|
import { InvoiceStatus, InvoicePaidStatus } from '@v2/types/domain'
|
|
|
|
interface Props {
|
|
status?: string
|
|
}
|
|
|
|
const props = withDefaults(defineProps<Props>(), {
|
|
status: '',
|
|
})
|
|
|
|
const { t } = useI18n()
|
|
|
|
const labelStatus = computed<string>(() => {
|
|
switch (props.status) {
|
|
case InvoiceStatus.DRAFT:
|
|
case 'DRAFT':
|
|
return t('general.draft')
|
|
case InvoiceStatus.SENT:
|
|
case 'SENT':
|
|
return t('general.sent')
|
|
case InvoiceStatus.VIEWED:
|
|
case 'VIEWED':
|
|
return t('invoices.viewed')
|
|
case InvoiceStatus.COMPLETED:
|
|
case 'COMPLETED':
|
|
return t('invoices.completed')
|
|
case 'DUE':
|
|
return t('general.due')
|
|
case 'OVERDUE':
|
|
return t('invoices.overdue')
|
|
case InvoicePaidStatus.UNPAID:
|
|
case 'UNPAID':
|
|
return t('invoices.unpaid')
|
|
case InvoicePaidStatus.PARTIALLY_PAID:
|
|
case 'PARTIALLY_PAID':
|
|
return t('invoices.partially_paid')
|
|
case InvoicePaidStatus.PAID:
|
|
case 'PAID':
|
|
return t('invoices.paid')
|
|
default:
|
|
return props.status
|
|
}
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
{{ labelStatus }}
|
|
</template>
|