diff --git a/core/frontend/src/components/widget/deWidget/DeDate.vue b/core/frontend/src/components/widget/deWidget/DeDate.vue index 86082f1363..ff355563cc 100644 --- a/core/frontend/src/components/widget/deWidget/DeDate.vue +++ b/core/frontend/src/components/widget/deWidget/DeDate.vue @@ -226,7 +226,11 @@ export default { }, watch: { - + 'values': function(val, old) { + if (!this.inDraw) { + this.$emit('widget-value-changed', val) + } + }, 'viewIds': function(value, old) { if (typeof value === 'undefined' || value === old) return this.setCondition() diff --git a/core/frontend/src/components/widget/deWidget/DeInputSearch.vue b/core/frontend/src/components/widget/deWidget/DeInputSearch.vue index e54b9e554e..f2becf0ad6 100644 --- a/core/frontend/src/components/widget/deWidget/DeInputSearch.vue +++ b/core/frontend/src/components/widget/deWidget/DeInputSearch.vue @@ -66,6 +66,11 @@ export default { } }, watch: { + 'value': function(val, old) { + if (!this.inDraw) { + this.$emit('widget-value-changed', val) + } + }, 'viewIds': function(value, old) { if (typeof value === 'undefined' || value === old) return this.setCondition() diff --git a/core/frontend/src/components/widget/deWidget/DeNumberRange.vue b/core/frontend/src/components/widget/deWidget/DeNumberRange.vue index c4ef17d931..beb9410fdf 100644 --- a/core/frontend/src/components/widget/deWidget/DeNumberRange.vue +++ b/core/frontend/src/components/widget/deWidget/DeNumberRange.vue @@ -105,6 +105,16 @@ export default { } }, watch: { + 'form.min': function(val, old) { + if (!this.inDraw) { + this.$emit('widget-value-changed', val) + } + }, + 'form.max': function(val, old) { + if (!this.inDraw) { + this.$emit('widget-value-changed', val) + } + }, 'viewIds': function(value, old) { if (typeof value === 'undefined' || value === old) return this.setCondition() diff --git a/core/frontend/src/components/widget/deWidget/DeSelectGrid.vue b/core/frontend/src/components/widget/deWidget/DeSelectGrid.vue index 46023bfe7d..892719dfee 100644 --- a/core/frontend/src/components/widget/deWidget/DeSelectGrid.vue +++ b/core/frontend/src/components/widget/deWidget/DeSelectGrid.vue @@ -148,6 +148,11 @@ export default { } }, watch: { + 'value': function(val, old) { + if (!this.inDraw) { + this.$emit('widget-value-changed', val) + } + }, 'viewIds': function(value, old) { if (typeof value === 'undefined' || value === old) return this.setCondition() diff --git a/core/frontend/src/components/widget/deWidget/DeSelectTree.vue b/core/frontend/src/components/widget/deWidget/DeSelectTree.vue index f9f2d3eea3..23ef17f385 100644 --- a/core/frontend/src/components/widget/deWidget/DeSelectTree.vue +++ b/core/frontend/src/components/widget/deWidget/DeSelectTree.vue @@ -122,6 +122,11 @@ export default { }, watch: { + 'value': function(val, old) { + if (!this.inDraw) { + this.$emit('widget-value-changed', val) + } + }, 'viewIds': function(value, old) { if (typeof value === 'undefined' || value === old) return this.setCondition() diff --git a/core/frontend/src/views/panel/filter/FilterDialog.vue b/core/frontend/src/views/panel/filter/FilterDialog.vue index fec2a6bc83..cd40d9f742 100644 --- a/core/frontend/src/views/panel/filter/FilterDialog.vue +++ b/core/frontend/src/views/panel/filter/FilterDialog.vue @@ -477,7 +477,11 @@ export default { }, methods: { widgetValChange(val) { - this.widgetValue = val + if (val === null) { + this.widgetValue = null + return + } + this.widgetValue = val.toString() }, requiredChange(val) { this.required = val diff --git a/core/frontend/src/views/panel/filter/defaultValue/DeDateDefault.vue b/core/frontend/src/views/panel/filter/defaultValue/DeDateDefault.vue index feb598b706..44136cb275 100644 --- a/core/frontend/src/views/panel/filter/defaultValue/DeDateDefault.vue +++ b/core/frontend/src/views/panel/filter/defaultValue/DeDateDefault.vue @@ -138,6 +138,7 @@ :style="element.style" :element="element" :in-draw="false" + @widget-value-changed="widgetValChanged" /> @@ -195,11 +196,26 @@ export default { return 2 } }, + watch: { + 'dval': function(val, old) { + if (this.element.options.attrs.default.isDynamic) { + this.$emit('widget-value-changed', val) + } + } + }, created() { this.setDval() }, methods: { + widgetValChanged(val) { + if (!this.element.options.attrs.default.isDynamic) { + this.$emit('widget-value-changed', val) + } + }, dynamicChange(value) { + if (!value) { + this.$emit('widget-value-changed', this.element.options.value) + } this.setDval() }, dkeyChange(value) { diff --git a/core/frontend/src/views/panel/filter/defaultValue/DeDateRangeDefault.vue b/core/frontend/src/views/panel/filter/defaultValue/DeDateRangeDefault.vue index a11971d4c0..53933b9f23 100644 --- a/core/frontend/src/views/panel/filter/defaultValue/DeDateRangeDefault.vue +++ b/core/frontend/src/views/panel/filter/defaultValue/DeDateRangeDefault.vue @@ -275,6 +275,7 @@ :element="element" class="relative-time" :in-draw="false" + @widget-value-changed="widgetValChanged" /> @@ -334,12 +335,27 @@ export default { return result } }, + watch: { + 'dval': function(val, old) { + if (this.element.options.attrs.default.isDynamic) { + this.$emit('widget-value-changed', val) + } + } + }, created() { this.fillEmptySuffixTime() this.setDval() }, methods: { + widgetValChanged(val) { + if (!this.element.options.attrs.default.isDynamic) { + this.$emit('widget-value-changed', val) + } + }, dynamicChange(value) { + if (!value) { + this.$emit('widget-value-changed', this.element.options.value) + } this.setDval() }, dkeyChange(value) {