From 73d4022530530be074c48a978ff6d489134bc8e4 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Fri, 02 Apr 2021 11:00:01 +0800 Subject: [PATCH] 完善筛选组件与无限滚动组件 --- plugins/filter/CFilter.vue | 33 ++++++++++++++++++++++----------- 1 files changed, 22 insertions(+), 11 deletions(-) diff --git a/plugins/filter/CFilter.vue b/plugins/filter/CFilter.vue index 51b0e7c..b02de13 100644 --- a/plugins/filter/CFilter.vue +++ b/plugins/filter/CFilter.vue @@ -20,7 +20,7 @@ </view> <view class="c-filter-more" - :class="itemsChanged?'on':''" + :class="itemsFilled?'on':''" v-if="items && items.length > 0" @tap="evt => handleOpen()" > @@ -105,6 +105,9 @@ return { filterRes: {}, drawerShow: false, + // 面板项有已选 + itemsFilled: false, + // 本次打开是否有改变 itemsChanged: false, }; }, @@ -117,32 +120,40 @@ this.onChange(this.filterRes); }, handleItemChange(name, value) { - this.handleBarChange(name, value); - if (value || typeof value !== 'undefined') { - this.itemsChanged = true; - } else { + console.log(name, value); + this.$set(this.filterRes, name, value); + this.itemsChanged = true; + // 如果变化值不为空 + if (typeof value !== 'undefined') { + this.itemsFilled = true; + } + // 为空是检查所有面板值是否为空 + else { let valuehas = false; - for (let item of items) { - if ( - this.filterRes[item.name] || - typeof this.filterRes[item.name] !== 'undefined' - ) { + for (let item of this.items) { + if (typeof this.filterRes[item.name] !== 'undefined') { valuehas = true; break; } } - this.itemsChanged = valuehas; + this.itemsFilled = valuehas; } }, handleClean() { Object.keys(this.filterRes).forEach(key => { this.filterRes[key] = [][0]; }); + this.itemsFilled = false; this.itemsChanged = false; this.onChange(this.filterRes); }, handleFinish() { this.drawerShow = false; + // 有项目改变时,发送变化 + if (this.itemsChanged) { + this.itemsChanged = false; + this.onChange(this.filterRes); + } }, }, }; -- Gitblit v1.9.1