# 显示查询条件


注意

使用此组件必须:@wocwin/t-ui最新版本(v1.3.0以上)。且查询条件的配置需要满足存在下拉框的组件(如:el-select、el-date-picker)在展开的后面,否则会出现内层下拉框关闭导致外层el-select也跟着关闭。

在组件中需配置:
table 数据源及表头信息
keywords 选项中的value(选项的值),label(选项的标签)
@radioChange 选中事件,传出当前选中对象
isShowQuery 是否开启查询条件配置,其配置继承查询条件组件(TQueryCondition组件)的所有属性、事件、插槽

<template>
  <t-layout-page>
    <t-layout-page-item>
      <t-select-table
        :table="table"
        :columns="table.columns"
        :max-height="400"
        :keywords="{label:'name',value:'id'}"
        @radioChange="radioChange"
        :tableWidth="1000"
        isShowQuery
        multiple
        :opts="opts"
        @submit="conditionEnter"
      ></t-select-table>
    </t-layout-page-item>
  </t-layout-page>
</template>

<script>
import selectData from './selectData.json'
const ADDRESS_TYPES = [
  {
    label: '前纺一车间',
    key: 'W1'
  },
  {
    label: '前纺二车间',
    key: 'W2'
  },
  {
    label: '前纺三车间',
    key: 'W3'
  }
]
export default {
  data() {
    return {
      table: {
        data: [
          { id: 1, code: 1, name: '物料名称1', spec: '物料规格1', unitName: '吨' },
          { id: 2, code: 2, name: '物料名称2', spec: '物料规格2', unitName: '吨' },
          { id: 3, code: 3, name: '物料名称3', spec: '物料规格3', unitName: '吨' },
          { id: 4, code: 4, name: '物料名称4', spec: '物料规格4', unitName: '吨' },
          { id: 5, code: 5, name: '物料名称5', spec: '物料规格5', unitName: '吨' },
          { id: 6, code: 6, name: '物料名称6', spec: '物料规格6', unitName: '吨' },
          { id: 7, code: 7, name: '物料名称7', spec: '物料规格7', unitName: '吨' },
          { id: 8, code: 8, name: '物料名称8', spec: '物料规格8', unitName: '吨' },
          { id: 9, code: 9, name: '物料名称9', spec: '物料规格9', unitName: '吨' },
          { id: 10, code: 10, name: '物料名称10', spec: '物料规格10', unitName: '吨' },
          { id: 11, code: 11, name: '物料名称11', spec: '物料规格11', unitName: '吨' },
          { id: 12, code: 12, name: '物料名称12', spec: '物料规格12', unitName: '吨' },
          { id: 13, code: 13, name: '物料名称13', spec: '物料规格13', unitName: '吨' },
        ],
        columns: [
          { label: '物料编号', width: '100px', prop: 'code' },
          { label: '物料名称', width: '149px', prop: 'name' },
          { label: '规格', width: '149px', prop: 'spec' },
          { label: '单位', width: '110px', prop: 'unitName' },
          { label: '物料编号1', width: '149px', prop: 'code' },
          { label: '物料名称1', width: '149px', prop: 'name' },
          { label: '规格1', width: '149px', prop: 'spec' },
          { label: '单位1', width: '110px', prop: 'unitName' },
          { label: '物料编号11', width: '149px', prop: 'code' },
          { label: '物料名称11', width: '149px', prop: 'name' },
          { label: '规格11', width: '149px', prop: 'spec' },
          { label: '单位11', width: '110px', prop: 'unitName' },
          { label: '物料编号111', width: '149px', prop: 'code' },
          { label: '物料名称111', width: '149px', prop: 'name' },
          { label: '规格111', width: '149px', prop: 'spec' },
          { label: '单位111', width: '110px', prop: 'unitName' },
        ],
      },
      workshopNumList: [],
      queryData: {
        likeCargoNo: null,
        likeBookNo: null,
        likeTransportNo: null,
        workshopNum: null,
        workshopNum1: null,
        date: null,
        date1: null,
        date2: null,
        likeCargoName: null
      }
    }
  },
  computed: {
    opts() {
      return {
        likeTransportNo: {
          label: '运单编号',
          comp: 'el-input',
          span: 2
        },
        likeCargoName: {
          label: '货品名称',
          comp: 'el-input',
          span: 2
        },
        likeCargoNo: {
          label: '货源编号',
          comp: 't-select',
          bind: {
            optionSource: ADDRESS_TYPES,
          },
          span: 2
        },
        date: {
          label: '日期时间范围',
          comp: 't-date-picker',
          span: 2,
          bind: {
            type: 'datetimerange',
            'default-time': ['00:00:00', '23:59:59']
          }
        },
        date2: {
          label: '日期',
          comp: 't-date-picker',
          span: 2,
          bind: {
            type: 'date',
          }
        },
        workshopNum: {
          label: "t-select单选",
          comp: "t-select",
          span: 2,
          bind: {
            optionSource: this.workshopNumList,
            valueKey: "materialCode",
            labelKey: "materialName",
          },
          event: {
            change: (val) => {
              console.log('change---车间-单选', val)
            }
          }
        },
        workshopNum1: {
          label: "t-select多选",
          comp: "t-select",
          span: 2,
          bind: {
            multiple: true,
            optionSource: this.workshopNumList,
            valueKey: "materialCode",
            labelKey: "materialName",
          },
          event: {
            change: (val) => {
              console.log('change---车间-多选', val)
            }
          }
        },
        likeBookNo: {
          labelRender: () => {
            return (
              <el-tooltip content={'自定义label'} placement="top">
                <div>订单编号</div>
              </el-tooltip>
            )
          },
          placeholder: '自定义label',
          comp: 'el-input',
          span: 2
        },
        date1: {
          label: '日期范围1',
          comp: 't-date-picker',
          span: 2,
          bind: {
            type: 'daterange',
          }
        },

      }
    },
  },
  mounted() {
    this.getData()
  },
  methods: {
    async getData() {
      const res = await selectData
      if (res.success) {
        // console.log('获取品名下拉数据', res.data)
        this.workshopNumList = res.data
      }
    },
    // 单选
    radioChange(row) {
      console.log('传给后台的值', row)
    },
    conditionEnter(data) {
      console.log('点击搜索查询', data)
    },
    // 车间编号
    change(formData) {
      console.log('车间编号--change事件触发', formData)
    }
  }
}
</script>

<style>
</style>
显示代码