From b6ba282917f82da5021ed46e5bec8dbdb5847391 Mon Sep 17 00:00:00 2001 From: betavs Date: Thu, 25 Jan 2024 10:12:00 +0800 Subject: [PATCH] perf(color-picker): change event only shows old color value --- components/lib/colorpicker/ColorPicker.vue | 25 ++++++++++------------ 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/components/lib/colorpicker/ColorPicker.vue b/components/lib/colorpicker/ColorPicker.vue index 76f30f4c8..42d6bc420 100755 --- a/components/lib/colorpicker/ColorPicker.vue +++ b/components/lib/colorpicker/ColorPicker.vue @@ -96,11 +96,7 @@ export default { this.selfUpdate = true; this.updateColorHandle(); this.updateInput(); - this.updateModel(); - - this.$nextTick(() => { - this.$emit('change', { event: event, value: this.modelValue }); - }); + this.updateModel(event); }, pickHue(event) { let top = this.hueView.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0); @@ -114,31 +110,32 @@ export default { this.selfUpdate = true; this.updateColorSelector(); this.updateHue(); - this.updateModel(); + this.updateModel(event); this.updateInput(); - - this.$nextTick(() => { - this.$emit('change', { event: event, value: this.modelValue }); - }); }, - updateModel() { + updateModel(event) { + let value = this.modelValue; + switch (this.format) { case 'hex': - this.$emit('update:modelValue', this.HSBtoHEX(this.hsbValue)); + value = this.HSBtoHEX(this.hsbValue); break; case 'rgb': - this.$emit('update:modelValue', this.HSBtoRGB(this.hsbValue)); + value = this.HSBtoRGB(this.hsbValue); break; case 'hsb': - this.$emit('update:modelValue', this.hsbValue); + value = this.hsbValue; break; default: //NoOp break; } + + this.$emit('update:modelValue', value); + this.$emit('change', { event, value }); }, updateColorSelector() { if (this.colorSelector) {