wip(freight): migration 0017 + model/column-list groundwork for add-freight-templates

This commit is contained in:
Chengdong Zhang
2026-09-23 17:39:45 +08:00
parent a83e857bdf
commit 5b426486ac
105 changed files with 6193 additions and 1566 deletions
+16 -6
View File
@@ -48,11 +48,13 @@ onMounted(() => {
<template>
<VPage :title="$t('aftersale.title')">
<div class="mb-4 flex items-center gap-3">
<label for="aftersale-status" class="text-sm font-medium">{{ $t("shop.filterStatus") }}</label>
<label for="aftersale-status" class="text-sm font-medium">{{
$t("shop.filterStatus")
}}</label>
<select
id="aftersale-status"
v-model="status"
class="rounded-md border border-border bg-surface px-3 py-2 text-sm text-text focus:border-primary focus:outline-2 focus:outline-primary/30"
class="border-border bg-surface text-text focus:border-primary focus:outline-primary/30 rounded-md border px-3 py-2 text-sm focus:outline-2"
@change="loadAftersales"
>
<option value="">{{ $t("common.all") }}</option>
@@ -65,7 +67,7 @@ onMounted(() => {
<option value="cancelled">{{ $t("aftersale.status.cancelled") }}</option>
</select>
</div>
<div v-if="error" class="my-2 text-sm text-danger" role="alert">{{ error }}</div>
<div v-if="error" class="text-danger my-2 text-sm" role="alert">{{ error }}</div>
<p v-if="loading" class="text-muted">{{ $t("common.loading") }}</p>
<VCard v-else-if="!aftersales.length" class="text-muted">{{ $t("common.empty") }}</VCard>
<VTable v-else>
@@ -81,13 +83,21 @@ onMounted(() => {
</thead>
<tbody>
<tr v-for="aftersale in aftersales" :key="aftersale.id">
<td class="font-mono text-xs" :title="aftersale.user_id">{{ shortId(aftersale.user_id) }}</td>
<td class="font-mono text-xs" :title="aftersale.user_id">
{{ shortId(aftersale.user_id) }}
</td>
<td>{{ $t(`aftersale.kind.${aftersale.kind}`) }}</td>
<td>{{ fmt(aftersale.amount_minor, aftersale.currency) }}</td>
<td>{{ formatDate(aftersale.created_at) }}</td>
<td><VBadge :tone="statusClass(aftersale.status)">{{ $t(`aftersale.status.${aftersale.status}`) }}</VBadge></td>
<td>
<NuxtLink :to="`/aftersales/${aftersale.id}`" class="text-primary hover:underline">{{ $t("shop.details") }}</NuxtLink>
<VBadge :tone="statusClass(aftersale.status)">{{
$t(`aftersale.status.${aftersale.status}`)
}}</VBadge>
</td>
<td>
<NuxtLink :to="`/aftersales/${aftersale.id}`" class="text-primary hover:underline">{{
$t("shop.details")
}}</NuxtLink>
</td>
</tr>
</tbody>