From b0d20bcff6d062f815e59007f333145da59a40b8 Mon Sep 17 00:00:00 2001 From: fengchenchen Date: Sun, 7 Apr 2024 13:36:47 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90update=E3=80=91=E5=A4=9A=E9=80=89?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=BB=84=E4=BB=B6=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E5=88=A0=E9=99=A4=E7=9A=84=E6=96=B9=E6=B3=95?= =?UTF-8?q?-=E6=B5=8B=E8=AF=951?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/JMultipleDatePicker.vue | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/components/JMultipleDatePicker.vue b/src/components/JMultipleDatePicker.vue index 0733499b..70f100fd 100644 --- a/src/components/JMultipleDatePicker.vue +++ b/src/components/JMultipleDatePicker.vue @@ -6,6 +6,7 @@ :ref="fieldName" :dropdownClassName="'j-multiple-date-picker ' + fieldName + '-drop'" @openChange="handleOpenChange" + @change="handleChange" style="width: 100%" v-bind="$attrs" > @@ -35,6 +36,7 @@ export default { }, watch: { value (val) { + console.log(val, '----watch--value-------') if (!val) { this.checkedValue = [] document.getElementById(this.fieldName).children[0].children[0].value = '' @@ -79,12 +81,32 @@ export default { }, 100) }) } else { + const newVal = document.getElementsByClassName(this.fieldName + '-drop')[0].children[0].children[0].children[0].children[0].children[0].value + const oldVal = this.checkedValue.join(',') + if (newVal !== oldVal) { + if (newVal) { + this.checkedValue = newVal.split(',') + } else { + this.checkedValue = [] + } + this.$emit('change', this.checkedValue.join(',')) + } + this.$refs[this.fieldName].blur() this.open = open this.$nextTick(() => { + // console.log('------this.checkedValue.join(\',\')----------', this.checkedValue.join(',')) + // this.$emit('change', lastCheckedValue.join(',')) document.getElementById(this.fieldName).children[0].children[0].value = this.checkedValue.join(',') }) } }, + handleChange (val) { + console.log('-handleChange-----', val) + if (!val) { + this.checkedValue = [] + this.$emit('change', this.checkedValue.join(',')) + } + }, getCurrentStyle (current) { const currentStr = current.format('YYYY-MM-DD') if (this.checkedValue.includes(currentStr)) {