fix(admin): keep manual price input and stop false server-unavailable overlay

Manual mode no longer keeps formula/reference UI, and 500 messages containing "server" no longer lock the whole panel.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-25 20:49:53 +03:30
co-authored by Cursor
parent b313b66d48
commit 1c26ec3eaf
2 changed files with 14 additions and 13 deletions
+5 -2
View File
@@ -88,12 +88,15 @@ _axios.interceptors.response.use(
showServerUnavailableOverlay('خطا در برقراری ارتباط با سرور')
return Promise.reject(error)
}
// PHP fatal / memory (گاهی به‌جای 503 تمیز) — پنل را باز نگه ندار
// PHP fatal / memory — فقط پیام‌های واقعاً مهلک؛ «server» خام ممنوع
// (هر 500 با URI مثل …/server/… یا مسیر /opt/.../server قبلاً کل پنل را قفل می‌کرد)
if (
error.response &&
error.response.status >= 500 &&
typeof error.response.data?.message === 'string' &&
/Allowed memory size|Fatal error|server/i.test(error.response.data.message)
/Allowed memory size|Fatal error|Out of memory|Maximum execution time/i.test(
error.response.data.message,
)
) {
showServerUnavailableOverlay('خطا در برقراری ارتباط با سرور')
return Promise.reject(error)
@@ -159,7 +159,7 @@
</a-radio-group>
</div>
<div v-if="methodOption === '1'" class="grid items-start gap-4 md:grid-cols-4">
<a-form-item v-if="!form.price_formula_enabled" name="price" class="!mb-0 md:col-span-2">
<a-form-item name="price" class="!mb-0 md:col-span-2">
<template #label>
<DashboardLabelWithHelp label="قیمت وسط" :help="manualPriceHelp" size="sm" />
</template>
@@ -173,16 +173,8 @@
</AButton>
</div>
</a-form-item>
<FormulaPriceSection
:class="form.price_formula_enabled ? 'md:col-span-4' : 'md:col-span-2'"
:model-value="form"
:reference-middle-price="formulaReferenceMiddlePrice"
:product-amount="Number(form.amount) || 0"
@update:model-value="onFormulaFormPatch"
@enabled-change="onFormulaEnabledChange"
/>
</div>
<div v-if="methodOption === '2' || form.price_formula_enabled" class="grid gap-4 md:grid-cols-4">
<div v-if="methodOption === '2'" class="grid gap-4 md:grid-cols-4">
<a-form-item name="reading_method" class="!mb-0 md:col-span-2">
<template #label>
<DashboardLabelWithHelp label="مرجع قیمت" :help="priceReferenceHelp" size="sm" />
@@ -900,7 +892,13 @@ watch(
if (usesMeltedPricing.value) {
return
}
if (option === '3') {
if (option === '1') {
// دستی: فقط قیمت وسط — فرمول/مرجع را نگه ندار تا اینپوت دستی قایم نشود
props.form.app_price = false
props.form.price_formula_enabled = false
props.form.reading_method = null
props.form.price_offset_percent = 0
} else if (option === '3') {
// قیمت اپ: مرجع خارجی ندارد، متغیر (هر گرم × وزن)
props.form.reading_method = null
props.form.direct_price = 0