feat: 添加自定义返回按钮组件并替换现有页面中的返回按钮

This commit is contained in:
2025-12-27 20:38:55 +07:00
parent b355519671
commit 03c923e9d2
24 changed files with 49 additions and 22 deletions

View File

@@ -0,0 +1,26 @@
<script lang='ts' setup>
import { chevronBackOutline } from "ionicons/icons";
const { text = "返回" } = defineProps<{
text?: string;
}>();
const router = useRouter();
function onBack() {
if (window.history.length > 1) {
router.back();
}
else {
router.replace("/");
}
}
</script>
<template>
<button class="z-1 flex items-center" @click="onBack">
<ion-icon :icon="chevronBackOutline" class="text-2xl" />
<span v-if="text" class="text-base">{{ text }}</span>
</button>
</template>
<style lang='css' scoped></style>

View File

@@ -35,5 +35,6 @@ declare module "vue" {
UiTabs: typeof import("./tabs/index.vue")["default"]; UiTabs: typeof import("./tabs/index.vue")["default"];
UiTag: typeof import("./tag/index.vue")["default"]; UiTag: typeof import("./tag/index.vue")["default"];
UiTextareaLabel: typeof import("./textarea-label/index.vue")["default"]; UiTextareaLabel: typeof import("./textarea-label/index.vue")["default"];
UiBackButton: typeof import("./back-button/index.vue")["default"];
} }
} }

View File

@@ -6,7 +6,7 @@ import { Field, Form } from "vee-validate";
<IonPage> <IonPage>
<IonHeader class="ion-no-border"> <IonHeader class="ion-no-border">
<IonToolbar class="ui-toolbar"> <IonToolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
</IonToolbar> </IonToolbar>
</IonHeader> </IonHeader>
<IonContent :fullscreen="true" class="ion-padding"> <IonContent :fullscreen="true" class="ion-padding">

View File

@@ -55,7 +55,7 @@ async function onSubmit() {
<IonHeader> <IonHeader>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-buttons slot="start"> <ion-buttons slot="start">
<ion-back-button /> <ui-back-button />
</ion-buttons> </ion-buttons>
<ion-title>{{ t("recharge.fiat.title") }}</ion-title> <ion-title>{{ t("recharge.fiat.title") }}</ion-title>
</ion-toolbar> </ion-toolbar>

View File

@@ -36,7 +36,7 @@ onMounted(() => {
<ion-page> <ion-page>
<ion-header class="ion-no-border"> <ion-header class="ion-no-border">
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title>{{ t("income.title") }}</ion-title> <ion-title>{{ t("income.title") }}</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -56,7 +56,7 @@ async function handleSubmit(editions: RwaIssuanceProductBody["editions"]) {
<IonPage> <IonPage>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title>{{ t('asset.issue.apply.title') }}</ion-title> <ion-title>{{ t('asset.issue.apply.title') }}</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -22,7 +22,7 @@ const qrcode = useQRCode(url, {
<IonHeader> <IonHeader>
<IonToolbar class="ui-toolbar"> <IonToolbar class="ui-toolbar">
<ion-buttons slot="start"> <ion-buttons slot="start">
<ion-back-button /> <ui-back-button />
</ion-buttons> </ion-buttons>
<ion-title>我的二维码</ion-title> <ion-title>我的二维码</ion-title>
</IonToolbar> </IonToolbar>

View File

@@ -80,7 +80,7 @@ onMounted(() => {
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -20,7 +20,7 @@ function handleLanguageChange(event: CustomEvent) {
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title>{{ t("settings.languageTitle") }}</ion-title> <ion-title>{{ t("settings.languageTitle") }}</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -4,7 +4,7 @@
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -20,7 +20,7 @@ function handleThemeChange(event: CustomEvent) {
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -10,7 +10,7 @@ defineProps<{
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" text="" /> <ui-back-button slot="start" text="" />
<ion-title /> <ion-title />
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -40,7 +40,7 @@ function gotoEdit() {
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" text="" /> <ui-back-button slot="start" text="" />
<ion-title> <ion-title>
{{ data?.product.code }} {{ data?.product.code }}
</ion-title> </ion-title>

View File

@@ -12,7 +12,7 @@ const { data } = safeClient(client.api.rwa.subscription.available_editions({ edi
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title> <ion-title>
{{ data?.product.code }} {{ data?.product.code }}
</ion-title> </ion-title>

View File

@@ -64,7 +64,7 @@ function formatCardNumber(value: string) {
<IonPage> <IonPage>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title>{{ t('bankCard.add') }}</ion-title> <ion-title>{{ t('bankCard.add') }}</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -107,7 +107,7 @@ onUpdated(() => {
<IonPage> <IonPage>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title>{{ t('bankCard.management') }}</ion-title> <ion-title>{{ t('bankCard.management') }}</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -41,7 +41,7 @@ function gotoEdit() {
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" text="" /> <ui-back-button slot="start" text="" />
<ion-title> <ion-title>
{{ data?.code }} {{ data?.code }}
</ion-title> </ion-title>

View File

@@ -6,7 +6,7 @@ const { t } = useI18n();
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title>{{ t('myIssues.title') }}</ion-title> <ion-title>{{ t('myIssues.title') }}</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -34,7 +34,7 @@ async function handleSubscribe(val: number) {
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title> <ion-title>
{{ data?.edition.product.code }} {{ data?.edition.product.code }}
</ion-title> </ion-title>

View File

@@ -60,7 +60,7 @@ onBeforeMount(() => {
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title>我的申购</ion-title> <ion-title>我的申购</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -4,7 +4,7 @@
<ion-page> <ion-page>
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" /> <ui-back-button slot="start" />
<ion-title>用户设置</ion-title> <ion-title>用户设置</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>

View File

@@ -9,7 +9,7 @@ const activeTab = ref("deposit");
<ion-page> <ion-page>
<ion-header class="ion-no-border"> <ion-header class="ion-no-border">
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" text="" /> <ui-back-button slot="start" text="" />
<ion-title>账单</ion-title> <ion-title>账单</ion-title>
</ion-toolbar> </ion-toolbar>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">

View File

@@ -122,7 +122,7 @@ function getAccountTypeName(type: AccountType) {
<ion-header> <ion-header>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-buttons slot="start"> <ion-buttons slot="start">
<ion-back-button default-href="/wallet/index" /> <ui-back-button default-href="/wallet/index" />
</ion-buttons> </ion-buttons>
<ion-title>{{ t("transfer.title") }}</ion-title> <ion-title>{{ t("transfer.title") }}</ion-title>
</ion-toolbar> </ion-toolbar>

View File

@@ -54,7 +54,7 @@ async function onSubmit(values: GenericObject) {
<IonHeader> <IonHeader>
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-buttons slot="start"> <ion-buttons slot="start">
<ion-back-button /> <ui-back-button />
</ion-buttons> </ion-buttons>
<ion-title>{{ t("withdraw.title") }}</ion-title> <ion-title>{{ t("withdraw.title") }}</ion-title>
</ion-toolbar> </ion-toolbar>