Skip to content

Commit 6261300

Browse files
committed
fix: improve number input UX in config renderer
1 parent 9896b48 commit 6261300

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

dashboard/src/components/shared/ConfigItemRenderer.vue

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@
146146
>
147147
<v-slider
148148
v-if="itemMeta?.slider"
149-
:model-value="toNumber(modelValue)"
150-
@update:model-value="val => emitUpdate(toNumber(val))"
149+
:model-value="toNumber(numericTemp ?? modelValue)"
150+
@update:model-value="val => { numericTemp = val; emitUpdate(toNumber(val)) }"
151151
:min="itemMeta?.slider?.min ?? 0"
152152
:max="itemMeta?.slider?.max ?? 100"
153153
:step="itemMeta?.slider?.step ?? 1"
@@ -157,8 +157,9 @@
157157
style="flex: 1"
158158
></v-slider>
159159
<v-text-field
160-
:model-value="modelValue"
161-
@update:model-value="val => emitUpdate(toNumber(val))"
160+
:model-value="numericTemp ?? modelValue"
161+
@update:model-value="val => (numericTemp = val)"
162+
@blur="e => { emitUpdate(toNumber(e.target.value)); numericTemp = null }"
162163
density="compact"
163164
variant="outlined"
164165
class="config-field"
@@ -235,8 +236,11 @@ import PersonaSelector from './PersonaSelector.vue'
235236
import KnowledgeBaseSelector from './KnowledgeBaseSelector.vue'
236237
import PluginSetSelector from './PluginSetSelector.vue'
237238
import T2ITemplateEditor from './T2ITemplateEditor.vue'
239+
import { ref } from 'vue'
238240
import { useI18n, useModuleI18n } from '@/i18n/composables'
239241
242+
const numericTemp = ref(null)
243+
240244
const props = defineProps({
241245
modelValue: {
242246
type: [String, Number, Boolean, Array, Object],
@@ -358,4 +362,13 @@ function getSpecialSubtype(value) {
358362
:deep(.v-field__input) {
359363
font-size: 14px;
360364
}
365+
366+
:deep(input[type='number']::-webkit-inner-spin-button),
367+
:deep(input[type='number']::-webkit-outer-spin-button) {
368+
-webkit-appearance: none;
369+
}
370+
371+
:deep(input[type='number']) {
372+
-moz-appearance: textfield;
373+
}
361374
</style>

0 commit comments

Comments
 (0)