| | |
| | | type="bar" |
| | | :label="bar.label" |
| | | :options="selectOptions[bar.name]" |
| | | :value="filterRes[bar.name]" |
| | | :onChange="evt=>handleChange(bar.name, evt)" |
| | | /> |
| | | </view> |
| | |
| | | type="item" |
| | | :label="item.label" |
| | | :options="selectOptions[item.name]" |
| | | :value="filterRes[item.name]" |
| | | :onChange="evt=>handleChange(item.name, evt)" |
| | | /> |
| | | </view> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | filters: {}, |
| | | filterRes: {}, |
| | | drawerShow: false, |
| | | }; |
| | | }, |
| | | methods: { |
| | | handleChange(name, value) { |
| | | if (typeof value === 'undefined') { |
| | | delete this.filters[name]; |
| | | } else { |
| | | this.filters[name] = value; |
| | | } |
| | | this.onChange(this.filters); |
| | | this.$set(this.filterRes, name, value); |
| | | this.onChange(this.filterRes); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | {{label}}: |
| | | </view> |
| | | <view :class="selected ? 'value':'empty'"> |
| | | {{selected ? options2[selectIndex].name : ('请选择' + label)}} |
| | | {{selected ? options2[current].name : ('请选择' + label)}} |
| | | </view> |
| | | <view class='at-icon at-icon-chevron-down' /> |
| | | </view> |
| | |
| | | type: String, |
| | | label: String, |
| | | options: Array, |
| | | value: null, |
| | | onChange: Function, |
| | | }, |
| | | data() { |
| | | return { |
| | | selectIndex: 0, |
| | | selected: false, |
| | | }; |
| | | return {}; |
| | | }, |
| | | computed: { |
| | | options2() { |
| | | return [{ name: '- 取消选择 -' }, ...this.options]; |
| | | }, |
| | | current() { |
| | | for (let i = 0, item; (item = this.options2[i]); i++) { |
| | | if (this.value === item.value) { |
| | | return i; |
| | | } |
| | | } |
| | | return -1; |
| | | }, |
| | | selected() { |
| | | for (let item of this.options) { |
| | | if (this.value === item.value) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | }, |
| | | }, |
| | | methods: { |
| | | handleChange(index) { |
| | | this.selectIndex = Number(index); |
| | | if (this.selectIndex > 0) { |
| | | this.selected = true; |
| | | this.onChange(this.options2[this.selectIndex].value); |
| | | const selectIndex = Number(index); |
| | | if (selectIndex > 0) { |
| | | this.onChange(this.options2[selectIndex].value); |
| | | } else { |
| | | this.selected = false; |
| | | this.onChange(); |
| | | } |
| | | }, |