setting better performance
This commit is contained in:
@@ -96,6 +96,20 @@
|
||||
<a-form-item label="زمان پایان فعال سازی" name="auto_close_at">
|
||||
<TimePicker v-model:value="form.auto_close_at" :locale="customLocale" placeholder="انتخاب زمان" :defaultValue="dayjs('00:00:00', 'HH:mm:ss')" />
|
||||
</a-form-item>
|
||||
<a-form-item label="محدودیت مبلغ سفارش" name="order_limit_enabled">
|
||||
<a-switch v-model:checked="form.order_limit_enabled" @change="onOrderLimitChange" />
|
||||
</a-form-item>
|
||||
<template v-if="form.order_limit_enabled">
|
||||
<div class="col-span-2 text-xs text-gray-500 -mt-2 mb-1">
|
||||
حداقل یکی از «حداقل» یا «حداکثر» الزامی است؛ میتوانید فقط یکی را پر کنید.
|
||||
</div>
|
||||
<a-form-item label="حداقل مبلغ سفارش (ریال)" name="min_order_cash">
|
||||
<BasicInput v-model:value="form.min_order_cash" addon-before="ریال" type="price" />
|
||||
</a-form-item>
|
||||
<a-form-item label="حداکثر مبلغ سفارش (ریال)" name="max_order_cash">
|
||||
<BasicInput v-model:value="form.max_order_cash" addon-before="ریال" type="price" />
|
||||
</a-form-item>
|
||||
</template>
|
||||
</div>
|
||||
</a-form>
|
||||
</template>
|
||||
@@ -124,7 +138,7 @@ import IndexImageUploader from '@/components/ProductUploader/IndexImageUploader.
|
||||
import { getConfigApp } from '@/utils/config'
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
defineProps<{
|
||||
const props = defineProps<{
|
||||
form: any
|
||||
formRef: any
|
||||
methodOption: string
|
||||
@@ -142,6 +156,13 @@ defineProps<{
|
||||
editId?: number
|
||||
}>()
|
||||
|
||||
function onOrderLimitChange(checked: boolean) {
|
||||
if (!checked) {
|
||||
props.form.min_order_cash = undefined
|
||||
props.form.max_order_cash = undefined
|
||||
}
|
||||
}
|
||||
|
||||
defineEmits<{
|
||||
(e: 'addPrice'): void
|
||||
(e: 'minusPrice'): void
|
||||
|
||||
@@ -72,6 +72,7 @@ import {
|
||||
resolveProductImageSrc,
|
||||
unwrapApiRecord
|
||||
} from '@/utils/file'
|
||||
import { normalizeProductOrderLimitForm, validateProductOrderLimitForm } from '@/utils/productOrderLimit'
|
||||
|
||||
dayjs.extend(customParseFormat)
|
||||
|
||||
@@ -241,13 +242,13 @@ async function edit(record: Product) {
|
||||
? dayjs(productData.auto_close_at, 'HH:mm:ss')
|
||||
: dayjs('00:00:00', 'HH:mm:ss')
|
||||
|
||||
form.value = {
|
||||
form.value = normalizeProductOrderLimitForm({
|
||||
...productData,
|
||||
price_offset_percent: productData.price_offset_percent ?? 0,
|
||||
direct_price: productData.direct_price ?? 0,
|
||||
auto_open_at: start.isValid() ? start : dayjs('00:00:00', 'HH:mm:ss'),
|
||||
auto_close_at: close.isValid() ? close : dayjs('00:00:00', 'HH:mm:ss')
|
||||
}
|
||||
})
|
||||
|
||||
await setProductIndexImage(productData, record.id)
|
||||
}
|
||||
@@ -281,6 +282,9 @@ function resetData() {
|
||||
direct_price: 0,
|
||||
file_id: undefined,
|
||||
file: undefined,
|
||||
order_limit_enabled: false,
|
||||
min_order_cash: undefined,
|
||||
max_order_cash: undefined,
|
||||
auto_open_at: dayjs('00:00:00', 'HH:mm:ss'),
|
||||
auto_close_at: dayjs('00:00:00', 'HH:mm:ss')
|
||||
}
|
||||
@@ -296,6 +300,12 @@ async function ok() {
|
||||
loading.value = true
|
||||
try {
|
||||
const payload = cloneDeep(form.value)
|
||||
const limitError = validateProductOrderLimitForm(payload)
|
||||
if (limitError) {
|
||||
message.error(limitError)
|
||||
loading.value = false
|
||||
return
|
||||
}
|
||||
if (methodOption.value === '1') {
|
||||
delete payload.reading_method
|
||||
payload.price_offset_percent = 0
|
||||
@@ -322,6 +332,8 @@ async function ok() {
|
||||
delete payload.file
|
||||
}
|
||||
|
||||
normalizeProductOrderLimitForm(payload)
|
||||
|
||||
if (editId) {
|
||||
await updateCustomer(editId, payload)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user