| | |
| | | /** |
| | | * CFilter - 页面筛选 |
| | | * @author Tevin |
| | | */ |
| | | /** * CFilter - 页面筛选 * @author Tevin */ |
| | | |
| | | <template> |
| | | <view |
| | | class="c-filter" |
| | | ref="filter" |
| | | > |
| | | <view |
| | | class="c-filter-bar" |
| | | v-if="bar" |
| | | > |
| | | <view class="c-filter" ref="filter"> |
| | | <view class="c-filter-bar" v-if="bar"> |
| | | <CFilterSelect |
| | | v-if="bar.type==='select'" |
| | | v-if="bar.type === 'select'" |
| | | type="bar" |
| | | :label="bar.label" |
| | | :options="selectOptions[bar.name] || []" |
| | | :cancelable="bar.cancelable" |
| | | :value="filterRes[bar.name]" |
| | | :onChange="evt=>handleBarChange(bar.name, evt)" |
| | | :onChange="evt => handleBarChange(bar.name, evt)" |
| | | /> |
| | | <CFilterDateRange |
| | | v-if="bar.type==='dateRange'" |
| | | v-if="bar.type === 'dateRange'" |
| | | type="bar" |
| | | :label="bar.label" |
| | | :value="filterRes[bar.name]" |
| | | :onChange="evt=>handleBarChange(bar.name, evt)" |
| | | :onChange="evt => handleBarChange(bar.name, evt)" |
| | | /> |
| | | <CFilterInput |
| | | v-if="bar.type === 'input'" |
| | | type="bar" |
| | | :label="bar.label" |
| | | :value="filterRes[bar.name]" |
| | | :onChange="evt => handleItemChange(bar.name, evt)" |
| | | /> |
| | | </view> |
| | | <view |
| | | class="c-filter-more" |
| | | :class="itemsFilled?'on':''" |
| | | :class="itemsFilled ? 'on' : ''" |
| | | v-if="items && items.length > 0" |
| | | @tap="evt => handleOpen()" |
| | | > |
| | |
| | | :show="drawerShow" |
| | | :onClose="evt => handleFinish()" |
| | | > |
| | | <scroll-view |
| | | class="c-filter-drawer-list" |
| | | :scrollY="true" |
| | | > |
| | | <view |
| | | class="box" |
| | | v-for="(item,index) in items" |
| | | :key="index" |
| | | > |
| | | <scroll-view class="c-filter-drawer-list" :scrollY="true"> |
| | | <view class="box" v-for="(item, index) in items" :key="index"> |
| | | <CFilterSelect |
| | | v-if="item.type==='select'" |
| | | v-if="item.type === 'select'" |
| | | type="item" |
| | | :label="item.label" |
| | | :options="selectOptions[item.name] || []" |
| | | :value="filterRes[item.name]" |
| | | :onChange="evt=>handleItemChange(item.name, evt)" |
| | | :onChange="evt => handleItemChange(item.name, evt)" |
| | | /> |
| | | <CFilterDateRange |
| | | v-if="item.type==='dateRange'" |
| | | v-if="item.type === 'dateRange'" |
| | | type="item" |
| | | :label="item.label" |
| | | :value="filterRes[item.name]" |
| | | :onChange="evt=>handleItemChange(item.name, evt)" |
| | | :onChange="evt => handleItemChange(item.name, evt)" |
| | | /> |
| | | <CFilterRadio |
| | | v-if="item.type==='radio'" |
| | | v-if="item.type === 'radio'" |
| | | type="item" |
| | | :label="item.label" |
| | | :options="selectOptions[item.name] || []" |
| | | :value="filterRes[item.name]" |
| | | :onChange="evt=>handleItemChange(item.name, evt)" |
| | | :onChange="evt => handleItemChange(item.name, evt)" |
| | | /> |
| | | <CFilterInput |
| | | v-if="item.type==='input'" |
| | | v-if="item.type === 'input'" |
| | | type="item" |
| | | :label="item.label" |
| | | :value="filterRes[item.name]" |
| | | :onChange="evt=>handleItemChange(item.name, evt)" |
| | | :onChange="evt => handleItemChange(item.name, evt)" |
| | | /> |
| | | </view> |
| | | </scroll-view> |
| | | <view class="c-filter-drawer-btn"> |
| | | <AtButton |
| | | type="primary" |
| | | :circle="false" |
| | | :onClick="evt => handleClean()" |
| | | >重置</AtButton> |
| | | <AtButton |
| | | type="primary" |
| | | :circle="false" |
| | | :onClick="evt => handleFinish()" |
| | | >完成</AtButton> |
| | | <AtButton type="primary" :circle="false" :onClick="evt => handleClean()" |
| | | >重置</AtButton |
| | | > |
| | | <AtButton type="primary" :circle="false" :onClick="evt => handleFinish()" |
| | | >完成</AtButton |
| | | > |
| | | </view> |
| | | </CDrawer> |
| | | </view> |