fix: settings numeric error
This commit is contained in:
@@ -100,3 +100,4 @@
|
|||||||
- Избыточные технические описания
|
- Избыточные технические описания
|
||||||
- Маркетинговые лозунги и призывы
|
- Маркетинговые лозунги и призывы
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,11 @@
|
|||||||
<SettingsItem :label="label">
|
<SettingsItem :label="label">
|
||||||
<template #default>
|
<template #default>
|
||||||
<select class="form-control" v-model="model">
|
<select class="form-control" v-model="model">
|
||||||
<option v-for="(value, key) in items" :value="key" :key="key">
|
<option
|
||||||
|
v-for="(value, key) in items"
|
||||||
|
:value="normalizeOptionValue(key)"
|
||||||
|
:key="key"
|
||||||
|
>
|
||||||
{{ value }}
|
{{ value }}
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
@@ -27,6 +31,16 @@ const props = defineProps({
|
|||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Преобразуем числовые ключи обратно в Number, чтобы v-model не получал строки
|
||||||
|
const normalizeOptionValue = (key) => {
|
||||||
|
if (typeof key === 'number') {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
const parsed = Number(key);
|
||||||
|
return Number.isNaN(parsed) ? key : parsed;
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ class SettingsSerializerService
|
|||||||
throw new InvalidArgumentException('app.language_id is required');
|
throw new InvalidArgumentException('app.language_id is required');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_int($data['language_id'])) {
|
if (! is_numeric($data['language_id'])) {
|
||||||
throw new InvalidArgumentException('app.language_id must be an integer');
|
throw new InvalidArgumentException('app.language_id must be an integer');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ class SettingsSerializerService
|
|||||||
throw new InvalidArgumentException('store.oc_store_id is required');
|
throw new InvalidArgumentException('store.oc_store_id is required');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_int($data['oc_store_id'])) {
|
if (! is_numeric($data['oc_store_id'])) {
|
||||||
throw new InvalidArgumentException('store.oc_store_id must be an integer');
|
throw new InvalidArgumentException('store.oc_store_id must be an integer');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +153,7 @@ class SettingsSerializerService
|
|||||||
throw new InvalidArgumentException('orders.oc_customer_group_id is required');
|
throw new InvalidArgumentException('orders.oc_customer_group_id is required');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_int($data['oc_customer_group_id'])) {
|
if (! is_numeric($data['oc_customer_group_id'])) {
|
||||||
throw new InvalidArgumentException('orders.oc_customer_group_id must be an integer');
|
throw new InvalidArgumentException('orders.oc_customer_group_id must be an integer');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ class SettingsSerializerService
|
|||||||
throw new InvalidArgumentException('app.language_id is required');
|
throw new InvalidArgumentException('app.language_id is required');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_int($data['language_id'])) {
|
if (! is_numeric($data['language_id'])) {
|
||||||
throw new InvalidArgumentException('app.language_id must be an integer');
|
throw new InvalidArgumentException('app.language_id must be an integer');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -301,7 +301,7 @@ class SettingsSerializerService
|
|||||||
throw new InvalidArgumentException('store.oc_store_id is required');
|
throw new InvalidArgumentException('store.oc_store_id is required');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_int($data['oc_store_id'])) {
|
if (! is_numeric($data['oc_store_id'])) {
|
||||||
throw new InvalidArgumentException('store.oc_store_id must be an integer');
|
throw new InvalidArgumentException('store.oc_store_id must be an integer');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -313,7 +313,7 @@ class SettingsSerializerService
|
|||||||
private function validateOrders(array $data): void
|
private function validateOrders(array $data): void
|
||||||
{
|
{
|
||||||
if (isset($data['order_default_status_id'])) {
|
if (isset($data['order_default_status_id'])) {
|
||||||
if (! is_int($data['order_default_status_id'])) {
|
if (! is_numeric($data['order_default_status_id'])) {
|
||||||
throw new InvalidArgumentException('orders.order_default_status_id must be an integer');
|
throw new InvalidArgumentException('orders.order_default_status_id must be an integer');
|
||||||
}
|
}
|
||||||
if ($data['order_default_status_id'] <= 0) {
|
if ($data['order_default_status_id'] <= 0) {
|
||||||
@@ -325,7 +325,7 @@ class SettingsSerializerService
|
|||||||
throw new InvalidArgumentException('orders.oc_customer_group_id is required');
|
throw new InvalidArgumentException('orders.oc_customer_group_id is required');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_int($data['oc_customer_group_id'])) {
|
if (! is_numeric($data['oc_customer_group_id'])) {
|
||||||
throw new InvalidArgumentException('orders.oc_customer_group_id must be an integer');
|
throw new InvalidArgumentException('orders.oc_customer_group_id must be an integer');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -395,7 +395,7 @@ class SettingsSerializerService
|
|||||||
$data['port'] = (int) $data['port'];
|
$data['port'] = (int) $data['port'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_int($data['port'])) {
|
if (! is_numeric($data['port'])) {
|
||||||
throw new InvalidArgumentException('database.port must be an integer');
|
throw new InvalidArgumentException('database.port must be an integer');
|
||||||
}
|
}
|
||||||
if ($data['port'] <= 0 || $data['port'] > 65535) {
|
if ($data['port'] <= 0 || $data['port'] > 65535) {
|
||||||
|
|||||||
Reference in New Issue
Block a user