feat: three nuxt frontends, demo seed, rounding + money-exponent + rate-cast fixes, archived specs

This commit is contained in:
Chengdong Zhang
2026-09-17 13:34:38 +08:00
parent dc9fd31c5e
commit 653f13161a
85 changed files with 4327 additions and 106 deletions
+32
View File
@@ -0,0 +1,32 @@
<script setup lang="ts">
const props = defineProps<{
amountMinor: number;
currency: string;
}>();
const { formatPrice, currency } = usePrice();
const display = ref("");
const failed = ref(false);
async function refresh(): Promise<void> {
if (import.meta.server) return;
failed.value = false;
try {
display.value = await formatPrice(props.amountMinor, props.currency, currency.value);
} catch {
failed.value = true;
display.value = "";
}
}
watch(
[() => props.amountMinor, () => props.currency, currency],
() => void refresh(),
{ immediate: true },
);
</script>
<template>
<span v-if="failed" class="muted">{{ $t("mall.notAvailable") }}</span>
<span v-else>{{ display || $t("common.loading") }}</span>
</template>