Merge branch 'main' into rebuild/auth-identity-foundation

This commit is contained in:
IanShaw027
2026-04-22 00:35:34 +08:00
67 changed files with 1550 additions and 613 deletions

View File

@@ -4710,7 +4710,7 @@ import ProxySelector from "@/components/common/ProxySelector.vue";
import ImageUpload from "@/components/common/ImageUpload.vue";
import BackupSettings from "@/views/admin/BackupView.vue";
import { useClipboard } from "@/composables/useClipboard";
import { extractApiErrorMessage } from "@/utils/apiError";
import { extractApiErrorMessage, extractI18nErrorMessage } from "@/utils/apiError";
import { useAppStore } from "@/stores";
import { useAdminSettingsStore } from "@/stores/adminSettings";
import { normalizeVisibleMethod } from "@/components/payment/paymentFlow";
@@ -6431,11 +6431,6 @@ const cancelRateLimitModeOptions = computed(() => [
},
]);
const paymentErrorMap = computed(() => ({
PENDING_ORDERS: t("payment.errors.PENDING_ORDERS"),
PAYMENT_PROVIDER_CONFLICT: t("payment.errors.PAYMENT_PROVIDER_CONFLICT"),
}));
type ProviderEnablementCandidate = Pick<
ProviderInstance,
"id" | "provider_key" | "supported_types" | "enabled" | "name"
@@ -6531,7 +6526,7 @@ async function loadProviders() {
const res = await adminAPI.payment.getProviders();
providers.value = res.data || [];
} catch (err: unknown) {
appStore.showError(extractApiErrorMessage(err, t("common.error")));
appStore.showError(extractI18nErrorMessage(err, t, "payment.errors", t("common.error")));
} finally {
providersLoading.value = false;
}
@@ -6580,9 +6575,7 @@ async function handleSaveProvider(payload: Partial<ProviderInstance>) {
// Auto-save settings so provider changes take effect immediately
await saveSettings();
} catch (err: unknown) {
appStore.showError(
extractApiErrorMessage(err, t("common.error"), paymentErrorMap.value),
);
appStore.showError(extractI18nErrorMessage(err, t, "payment.errors", t("common.error")));
} finally {
providerSaving.value = false;
}
@@ -6620,9 +6613,7 @@ async function handleToggleField(
await adminAPI.payment.updateProvider(provider.id, payload);
await loadProviders();
} catch (err: unknown) {
appStore.showError(
extractApiErrorMessage(err, t("common.error"), paymentErrorMap.value),
);
appStore.showError(extractI18nErrorMessage(err, t, "payment.errors", t("common.error")));
}
}
@@ -6647,9 +6638,7 @@ async function handleToggleType(provider: ProviderInstance, type: string) {
} as any);
await loadProviders();
} catch (err: unknown) {
appStore.showError(
extractApiErrorMessage(err, t("common.error"), paymentErrorMap.value),
);
appStore.showError(extractI18nErrorMessage(err, t, "payment.errors", t("common.error")));
}
}
@@ -6671,7 +6660,7 @@ async function handleReorderProviders(
);
await loadProviders();
} catch (err: unknown) {
appStore.showError(extractApiErrorMessage(err, t("common.error")));
appStore.showError(extractI18nErrorMessage(err, t, "payment.errors", t("common.error")));
loadProviders();
}
}
@@ -6684,9 +6673,7 @@ async function handleDeleteProvider() {
showDeleteProviderDialog.value = false;
loadProviders();
} catch (err: unknown) {
appStore.showError(
extractApiErrorMessage(err, t("common.error"), paymentErrorMap.value),
);
appStore.showError(extractI18nErrorMessage(err, t, "payment.errors", t("common.error")));
}
}