refactor: handle title i18n
This commit is contained in:
parent
036f8c2891
commit
850782a44d
2 changed files with 48 additions and 9 deletions
33
src/components/05_quotation/TableQuotation.vue
Normal file
33
src/components/05_quotation/TableQuotation.vue
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { QuotationPayload } from 'src/stores/quotations/types';
|
||||||
|
import { QTableProps } from 'quasar';
|
||||||
|
|
||||||
|
const props = withDefaults(
|
||||||
|
defineProps<{
|
||||||
|
rows: QTableProps['rows'];
|
||||||
|
columns: QTableProps['columns'];
|
||||||
|
grid?: boolean;
|
||||||
|
fieldSelected?: string[];
|
||||||
|
}>(),
|
||||||
|
{
|
||||||
|
row: () => [],
|
||||||
|
column: () => [],
|
||||||
|
grid: false,
|
||||||
|
fieldSelected: () => [],
|
||||||
|
},
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<q-table v-bind="props">
|
||||||
|
<template v-slot:header="props">
|
||||||
|
<q-tr style="background-color: #f0fff1" :props="props">
|
||||||
|
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||||
|
{{ col.label }}
|
||||||
|
</q-th>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
</q-table>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped></style>
|
||||||
|
|
@ -288,19 +288,19 @@ const productService = computed(() => {
|
||||||
async function fetchStatus() {
|
async function fetchStatus() {
|
||||||
statusQuotationForm.value = [
|
statusQuotationForm.value = [
|
||||||
{
|
{
|
||||||
title: 'ใบเสนอราคา',
|
title: 'Issued',
|
||||||
status: getStatus(quotationFormData.value.quotationStatus, 0, -1),
|
status: getStatus(quotationFormData.value.quotationStatus, 0, -1),
|
||||||
active: () => view.value === View.Quotation,
|
active: () => view.value === View.Quotation,
|
||||||
handler: () => (view.value = View.Quotation),
|
handler: () => (view.value = View.Quotation),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'ลูกค้าตอบรับ',
|
title: 'Accepted',
|
||||||
status: getStatus(quotationFormData.value.quotationStatus, 1, 0),
|
status: getStatus(quotationFormData.value.quotationStatus, 1, 0),
|
||||||
active: () => view.value === View.Accepted,
|
active: () => view.value === View.Accepted,
|
||||||
handler: () => (view.value = View.Accepted),
|
handler: () => (view.value = View.Accepted),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'ใบแจ้งหนี้',
|
title: 'Invoice',
|
||||||
status:
|
status:
|
||||||
quotationFormData.value.payCondition === 'Full'
|
quotationFormData.value.payCondition === 'Full'
|
||||||
? getStatus(quotationFormData.value.quotationStatus, 3, 1)
|
? getStatus(quotationFormData.value.quotationStatus, 3, 1)
|
||||||
|
|
@ -316,7 +316,7 @@ async function fetchStatus() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'ชำระเงิน',
|
title: 'PaymentInProcess',
|
||||||
status: getStatus(quotationFormData.value.quotationStatus, 4, 1),
|
status: getStatus(quotationFormData.value.quotationStatus, 4, 1),
|
||||||
active: () =>
|
active: () =>
|
||||||
view.value === View.Payment || view.value === View.PaymentPre,
|
view.value === View.Payment || view.value === View.PaymentPre,
|
||||||
|
|
@ -329,7 +329,7 @@ async function fetchStatus() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'ใบเสร็จรับเงิน',
|
title: 'Receipt',
|
||||||
status: getStatus(quotationFormData.value.quotationStatus, 4, 1),
|
status: getStatus(quotationFormData.value.quotationStatus, 4, 1),
|
||||||
active: () => view.value === View.Receipt,
|
active: () => view.value === View.Receipt,
|
||||||
handler: () => {
|
handler: () => {
|
||||||
|
|
@ -338,7 +338,7 @@ async function fetchStatus() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'เสร็จสิ้น',
|
title: 'ProcessComplete',
|
||||||
status: getStatus(quotationFormData.value.quotationStatus, 5, 4),
|
status: getStatus(quotationFormData.value.quotationStatus, 5, 4),
|
||||||
active: () => view.value === View.Complete,
|
active: () => view.value === View.Complete,
|
||||||
handler: () => {
|
handler: () => {
|
||||||
|
|
@ -1050,8 +1050,12 @@ const view = ref<View>(View.Quotation);
|
||||||
<q-img src="/icons/favicon-512x512.png" width="3rem" />
|
<q-img src="/icons/favicon-512x512.png" width="3rem" />
|
||||||
</a>
|
</a>
|
||||||
<span class="column text-h6 text-bold q-ml-md">
|
<span class="column text-h6 text-bold q-ml-md">
|
||||||
<!-- TODO: change by current view -->
|
|
||||||
{{ $t('quotation.title') }}
|
{{
|
||||||
|
$t(
|
||||||
|
`quotation.status.${view === View.InvoicePre || view === View.Invoice ? 'Invoice' : view === View.Payment ? 'PaymentInProcess' : view === View.Receipt ? 'Receipt' : 'Issued'}`,
|
||||||
|
)
|
||||||
|
}}
|
||||||
<span class="text-caption text-regular app-text-muted">
|
<span class="text-caption text-regular app-text-muted">
|
||||||
{{
|
{{
|
||||||
$t('quotation.processOn', {
|
$t('quotation.processOn', {
|
||||||
|
|
@ -1148,7 +1152,9 @@ const view = ref<View>(View.Quotation);
|
||||||
:name="`${value.status === 'done' ? 'mdi-check-circle' : 'mdi-checkbox-blank-circle-outline'}`"
|
:name="`${value.status === 'done' ? 'mdi-check-circle' : 'mdi-checkbox-blank-circle-outline'}`"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col text-left">{{ value.title }}</div>
|
<div class="col text-left">
|
||||||
|
{{ $t(`quotation.status.${value.title}`) }}
|
||||||
|
</div>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue