From d6fe6da831b3217630782c139e6b041419367023 Mon Sep 17 00:00:00 2001 From: erio Date: Mon, 13 Apr 2026 18:18:29 +0800 Subject: [PATCH] fix(plans): frontend validation for price > 0 and validity_days >= 1 --- backend/cmd/server/VERSION | 2 +- frontend/src/i18n/locales/en.ts | 2 ++ frontend/src/i18n/locales/zh.ts | 2 ++ frontend/src/views/admin/orders/AdminPaymentPlansView.vue | 8 ++++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/backend/cmd/server/VERSION b/backend/cmd/server/VERSION index 19c2cd29ab..079406d085 100644 --- a/backend/cmd/server/VERSION +++ b/backend/cmd/server/VERSION @@ -1 +1 @@ -0.1.110.36 +0.1.110.37 diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index 9986c42260..c32dff8883 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -5413,6 +5413,8 @@ export default { tabUserSubs: 'User Subscriptions', selectGroup: 'Select a group', groupRequired: 'Please select a subscription group', + priceRequired: 'Price must be greater than 0', + validityDaysRequired: 'Validity days must be greater than 0', groupMissing: 'Missing', groupInfo: 'Group Info', platform: 'Platform', diff --git a/frontend/src/i18n/locales/zh.ts b/frontend/src/i18n/locales/zh.ts index 60bc6b1dc1..d463f89028 100644 --- a/frontend/src/i18n/locales/zh.ts +++ b/frontend/src/i18n/locales/zh.ts @@ -5608,6 +5608,8 @@ export default { tabUserSubs: '用户订阅', selectGroup: '请选择分组', groupRequired: '请选择订阅分组', + priceRequired: '价格必须大于 0', + validityDaysRequired: '有效期天数必须大于 0', groupMissing: '缺失', groupInfo: '分组信息', platform: '平台', diff --git a/frontend/src/views/admin/orders/AdminPaymentPlansView.vue b/frontend/src/views/admin/orders/AdminPaymentPlansView.vue index 95311d70ae..ad806e0787 100644 --- a/frontend/src/views/admin/orders/AdminPaymentPlansView.vue +++ b/frontend/src/views/admin/orders/AdminPaymentPlansView.vue @@ -281,6 +281,14 @@ async function handleSavePlan() { appStore.showError(t('payment.admin.groupRequired')) return } + if (!planForm.price || planForm.price <= 0) { + appStore.showError(t('payment.admin.priceRequired')) + return + } + if (!planForm.validity_days || planForm.validity_days < 1) { + appStore.showError(t('payment.admin.validityDaysRequired')) + return + } planSaving.value = true try { const data = buildPlanPayload()