| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- <template>
- <el-main>
- <el-card shadow="never" header="过滤器">
- <scFilterBar filterName="filterName" :options="options" @filterChange="change">
- <template #default="{filterLength, openFilter}">
- <el-badge :value="filterLength" type="danger" :hidden="filterLength<=0">
- <el-button icon="el-icon-filter" @click="openFilter"></el-button>
- </el-badge>
- </template>
- </scFilterBar>
- </el-card>
- <el-alert title="SCUI 独创的过滤条Filterbar,可配置不同类型的过滤字段,以及异步获取数据,在@/config/filterBar.js中可以更改运算符以及其他配置,操作上方过滤条查看下方change事件的回调,在表格查询的场景下非常合适" type="success" style="margin:20px 0;"></el-alert>
- <el-card shadow="never" header="返回值">
- <pre>{{ filterData }}</pre>
- </el-card>
- </el-main>
- </template>
- <script>
- import scFilterBar from '@/components/scFilterBar';
- export default {
- name: 'filterBar',
- components: {
- scFilterBar
- },
- data() {
- return {
- filterData : {},
- defaultFilter : [],
- options: [
- {
- label: '订单号',
- value: 'id',
- type: 'text',
- selected: true,
- placeholder: '请输入订单号'
- },
- {
- label: '类型',
- value: 'type',
- type: 'select',
- operator: '=',
- selected: true,
- placeholder: '请选择类型',
- extend: {
- data:[
- {
- label: "选项1",
- value: "1"
- },
- {
- label: "选项2",
- value: "2"
- }
- ]
- }
- },
- {
- label: '类型(多选)',
- value: 'type2',
- type: 'select',
- operator: '=',
- placeholder: '请选择类型',
- extend: {
- multiple: true,
- data:[
- {
- label: "选项1",
- value: "1"
- },
- {
- label: "选项2",
- value: "2"
- }
- ]
- }
- },
- {
- label: '通知(异步)',
- value: 'noticeType',
- type: 'select',
- operator: '=',
- placeholder: '请选择通知类型',
- extend: {
- request: async () => {
- var list = await this.$API.system.dic.get.get()
- return list.data.map(item => {
- return {
- label: item.label,
- value: item.value
- }
- })
- }
- }
- },
- {
- label: '通知(远程搜索)',
- value: 'noticeType2',
- type: 'select',
- operator: '=',
- placeholder: '请输入关键词后检索',
- extend: {
- remote: true,
- request: async (query) => {
- var data = {
- keyword: query,
- }
- var list = await this.$API.system.dic.get.get(data)
- return list.data.map(item => {
- return {
- label: item.label,
- value: item.value
- }
- })
- }
- }
- },
- {
- label: '关键词(标签)',
- value: 'tags',
- type: 'tags',
- operator: 'include',
- operators: [
- {
- label: '包含',
- value: 'include',
- },
- {
- label: '不包含',
- value: 'notinclude',
- }
- ]
- },
- {
- label: '开关(可重复)',
- value: 'switch',
- type: 'switch',
- repeat: true,
- operator: '='
- },
- {
- label: '日期单选',
- value: 'date',
- type: 'date',
- operator: '=',
- operators: [
- {
- label: '等于',
- value: '=',
- },
- {
- label: '不等于',
- value: '!=',
- }
- ]
- },
- {
- label: '日期范围',
- value: 'date2',
- type: 'daterange'
- },
- {
- label: '自定义日期',
- value: 'date3',
- type: 'customDate',
- placeholder: '请选择月份',
- extend: {
- dateType: 'month',
- valueFormat: 'YYYY-MM'
- }
- }
- ]
- }
- },
- methods: {
- change(data){
- this.filterData = data;
- }
- }
- }
- </script>
- <style>
- </style>
|