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:
@@ -88,12 +88,15 @@ _axios.interceptors.response.use(
|
|||||||
showServerUnavailableOverlay('خطا در برقراری ارتباط با سرور')
|
showServerUnavailableOverlay('خطا در برقراری ارتباط با سرور')
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
}
|
}
|
||||||
// PHP fatal / memory (گاهی بهجای 503 تمیز) — پنل را باز نگه ندار
|
// PHP fatal / memory — فقط پیامهای واقعاً مهلک؛ «server» خام ممنوع
|
||||||
|
// (هر 500 با URI مثل …/server/… یا مسیر /opt/.../server قبلاً کل پنل را قفل میکرد)
|
||||||
if (
|
if (
|
||||||
error.response &&
|
error.response &&
|
||||||
error.response.status >= 500 &&
|
error.response.status >= 500 &&
|
||||||
typeof error.response.data?.message === 'string' &&
|
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('خطا در برقراری ارتباط با سرور')
|
showServerUnavailableOverlay('خطا در برقراری ارتباط با سرور')
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
|
|||||||
@@ -159,7 +159,7 @@
|
|||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="methodOption === '1'" class="grid items-start gap-4 md:grid-cols-4">
|
<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>
|
<template #label>
|
||||||
<DashboardLabelWithHelp label="قیمت وسط" :help="manualPriceHelp" size="sm" />
|
<DashboardLabelWithHelp label="قیمت وسط" :help="manualPriceHelp" size="sm" />
|
||||||
</template>
|
</template>
|
||||||
@@ -173,16 +173,8 @@
|
|||||||
</AButton>
|
</AButton>
|
||||||
</div>
|
</div>
|
||||||
</a-form-item>
|
</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>
|
||||||
<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">
|
<a-form-item name="reading_method" class="!mb-0 md:col-span-2">
|
||||||
<template #label>
|
<template #label>
|
||||||
<DashboardLabelWithHelp label="مرجع قیمت" :help="priceReferenceHelp" size="sm" />
|
<DashboardLabelWithHelp label="مرجع قیمت" :help="priceReferenceHelp" size="sm" />
|
||||||
@@ -900,7 +892,13 @@ watch(
|
|||||||
if (usesMeltedPricing.value) {
|
if (usesMeltedPricing.value) {
|
||||||
return
|
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.reading_method = null
|
||||||
props.form.direct_price = 0
|
props.form.direct_price = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user