Browse Source
fix: builtin color change throttled in preference drawer (#5924)
修复偏好设置中的自定义主题色拖动选择颜色时页面会明显卡顿的问题
pull/5925/head
Netfan
10 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with
12 additions and
1 deletions
-
packages/effects/layouts/src/widgets/preferences/blocks/theme/builtin.vue
|
|
|
@ -9,6 +9,8 @@ import { $t } from '@vben/locales'; |
|
|
|
import { BUILT_IN_THEME_PRESETS } from '@vben/preferences'; |
|
|
|
import { convertToHsl, TinyColor } from '@vben/utils'; |
|
|
|
|
|
|
|
import { useThrottleFn } from '@vueuse/core'; |
|
|
|
|
|
|
|
defineOptions({ |
|
|
|
name: 'PreferenceBuiltinTheme', |
|
|
|
}); |
|
|
|
@ -19,6 +21,15 @@ const colorInput = ref(); |
|
|
|
const modelValue = defineModel<BuiltinThemeType>({ default: 'default' }); |
|
|
|
const themeColorPrimary = defineModel<string>('themeColorPrimary'); |
|
|
|
|
|
|
|
const updateThemeColorPrimary = useThrottleFn( |
|
|
|
(value: string) => { |
|
|
|
themeColorPrimary.value = value; |
|
|
|
}, |
|
|
|
300, |
|
|
|
true, |
|
|
|
true, |
|
|
|
); |
|
|
|
|
|
|
|
const inputValue = computed(() => { |
|
|
|
return new TinyColor(themeColorPrimary.value || '').toHexString(); |
|
|
|
}); |
|
|
|
@ -84,7 +95,7 @@ function handleSelect(theme: BuiltinThemePreset) { |
|
|
|
|
|
|
|
function handleInputChange(e: Event) { |
|
|
|
const target = e.target as HTMLInputElement; |
|
|
|
themeColorPrimary.value = convertToHsl(target.value); |
|
|
|
updateThemeColorPrimary(convertToHsl(target.value)); |
|
|
|
} |
|
|
|
|
|
|
|
function selectColor() { |
|
|
|
|