# ant 筛选器布局组件


请输入
请输入
请选择
-
-
-
请选择
<template>
  <p-ant-layout-conditional :opts="conditionParams" @submit="conditionEnter" />
</template>
<script>
import moment from 'moment'
const startTime = moment(moment().subtract("days", 15).startOf("day").valueOf())
const endTime = moment().endOf("day")
export default {
  name: 'dh-layout-conditional-demo',
  data () {
    return {
      defaultFurnaceNoLst: [],
      // 处理状态数据
      statusData: [
        { value: '0', label: "没有异常" },
        { value: 10, label: "原始炉号格式错误" },
        { value: 11, label: "原始炉号重复" },
        { value: 20, label: "处理失败" },
        { value: 30, label: "处理成功" },
        { value: 40, label: "作废" }
      ],
      // 原编号数据
      originNumber: [
        { value: '0', label: "原编号1" },
        { value: 10, label: "原编号2" },
        { value: 11, label: "原编号3" },
        { value: 20, label: "原编号4" },
        { value: 30, label: "原编号5" },
        { value: 40, label: "原编号6" }
      ],
      // 目标编号数据
      dealedNumber: [
        { value: '0', label: "目标编号1" },
        { value: 10, label: "目标编号2" },
        { value: 11, label: "目标编号3" },
        { value: 20, label: "目标编号4" },
        { value: 30, label: "目标编号5" },
        { value: 40, label: "目标编号6" }
      ]
    }
  },
  computed: {
    conditionParams () {
      return {
        originFurnaceNumber: {
          label: "源编号",
          comp: 'a-select',
          span: 4,
          changeEvent: "change",
          bind: {
            allowClear: true,
            showSearch: true,
            placeholder: "请输入",
          },
          event: {
            search: this.originCearch,
          },
          child: this.originNumber.reduce((acc, cur) => {
            acc.push({
              comp: 'a-select-option',
              text: cur.label,
              value: cur.value
            });
            return acc;
          }, []),
        },
        dealedFurnaceNumber: {
          label: "目标编号",
          comp: 'a-select',
          changeEvent: "change",
          bind: {
            allowClear: true,
            showSearch: true,
            placeholder: "请输入",
          },
          event: {
            search: this.dealedCearch
          },
          child: this.dealedNumber.reduce((acc, cur) => {
            acc.push({
              comp: 'a-select-option',
              text: cur.label,
              value: cur.value
            });
            return acc;
          }, []),
        },
        dealedStatusLst: {
          label: "处理状态",
          comp: 'a-select',
          changeEvent: "change",
          defaultVal: this.defaultStatus,
          span: 2,
          bind: {
            mode: "multiple",
            allowClear: true,
            showSearch: true,
            placeholder: "请选择",
            filterOption: this.filterOption,
          },
          child: this.statusData.reduce((acc, cur) => {
            acc.push({
              comp: 'a-select-option',
              text: cur.label,
              value: cur.value,
            });
            return acc;
          }, []),
        },
        ManualDealedTime: {
          label: "处理时间",
          comp: "PAntRangePicker",
          changeEvent: "change",
          event: {},
          span: 2,
          type: "day",
          defaultVal: [null, null],
          bind: {
            showTime: {
              format: "HH:mm:ss"
            },
            showSearch: false
          }
        },
        SamplingTime: {
          label: "化验时间",
          comp: "PAntRangePicker",
          changeEvent: "change",
          event: {},
          span: 2,
          type: "day",
          defaultVal: [null, null],
          bind: {
            showTime: {
              format: "HH:mm:ss",
            },
            showSearch: false,
          },
        },
        ReceiveTime: {
          label: "采集发送时间",
          comp: "PAntRangePicker",
          changeEvent: "change",
          event: {},
          span: 2,
          type: "day",
          defaultVal: [startTime, endTime],
          bind: {
            showTime: {
              format: "HH:mm:ss",
            },
            showSearch: false,
            format: "YYYY-MM-DD HH:mm:ss",
            disabledRange: [moment("2020-1-1"), moment(endTime)],
          },
        },
        furnaceNoLst: {
          label: "炉号",
          comp: 'a-select',
          changeEvent: "change",
          defaultVal: this.defaultFurnaceNoLst,
          span: 1,
          bind: {
            mode: "multiple",
            allowClear: true,
            showSearch: true,
            placeholder: "请选择",
            filterOption: this.filterOption,
          },
          child: [1, 2, 3, 5].reduce((acc, cur) => {
            acc.push({
              comp: 'a-select-option',
              text: cur,
              value: cur,
            });
            return acc;
          }, []),
        }
      }
    }
  },
  // 方法
  methods: {
    // 原编号筛选事件———传回输入的值
    originCearch (val) {
      console.log('原编号', val)
    },
    // 目标编号筛选事件———传回输入的值
    dealedCearch (val) {
      console.log('目标编号', val)
    },
    // 查询
    conditionEnter (obj) {
      console.log('查询', obj)
    },
    filterOption (input, option) {
      return (
        option.componentOptions.children[0].text
          .toLowerCase()
          .indexOf(input.toLowerCase()) >= 0
      )
    }
  }
}
</script>
显示代码