zoukankan      html  css  js  c++  java
  • el-mentUI el-table自定义表头

    一、自定义el-select

    1.dom

    <el-table
      :data="tableData"
      style="min-height:700px; margin-left:10px;98%;"
    >
      <el-table-column
        label="AA"
        min-width="230"
        :prop="aStr"
        :render-header="renderCustomAttributionHeader"
        align="center"
      ></el-table-column>
      <el-table-column
        label="BB"
        min-width="230"
        :prop="ctr"
        :render-header="renderCustomAttributionHeader"
        align="center"
      ></el-table-column>
      <el-table-column
        label="CC"
        min-width="230"
        :prop="cStr"
        :render-header="renderCustomAttributionHeader"
        align="center"
      ></el-table-column>
    </el-table>

    2. data数据

      data () {
        return {
          joinStr: '&-&', // 拼接字符串
          lastSelectParams: '', // 最后一次下拉选择
          aStr: 'aStr', // a
          aList: [],
          aValue: '', // a状态绑定值
          bStr: 'bStr', // b
          bValue: '', // b绑定值
          bList: [],
          cStr: 'cStr', // c
          cValue: '', // c绑定值
          cList: [],
          queryParams: {aType: '', bType: '', cType: ''}
        }
      },

    3.实现方法

      methods: {
        // 根据类型返回list
        listToRenderHeaderType (str) {
          let list = []
          if (str === this.aStr) {
            // a
            list = this.aList
          } else if (str === this.bStr) {
            // b
            list = this.bList
          } else if (str === this.cStr) {
            // c
            list = this.cList
          } 
          return list
        },
        // 绑定value的值
        valueToRenderHeaderType (str) {
          let value = ''
          if (str === this.aStr) {
            // a
            value = this.aValue
          } else if (str === this.bStr) {
            // b
            value = this.bValue
          } else if (str === this.cStr) {
            // c
            value = this.cValue
          }
          return value
        },
        // 自定义条线归属表头JSX
        renderCustomAttributionHeader (h, { column, $index }) {
          let list = this.listToRenderHeaderType(column.property)
          let value = this.valueToRenderHeaderType(column.property)
          return (
            <div>
              <span style="display:block">{column.label}</span>
              <el-select
                filterable
                value={value}
                onChange={this.handleAttributionCommand}
                placeholder={`请选择${column.label}`}>
                {list.map(item => {
                  return (
                    <el-option
                      key={item.code}
                      label={item.descStr}
                      value={`${item.code}${this.joinStr}${item.descStr}${this.joinStr}${column.property}`}>
                    </el-option>
                  )
                })}
              </el-select>
            </div>
          )
        },
    
        handleAttributionCommand (val) {
          let list = val && val.split(this.joinStr)
          let value = ''
          if (list && list.length > 2) {
            let type = list[0]
            value = list[1]
            let str = list[2]
            let params = {}
            if (this.lastSelectParams) {
              params = {
                ...this.lastSelectParams
              }
            } else {
              params = { //
                ...this.queryParams
              }
            }
            if (str === this.aStr) {
              // 条件归属
              params.aType = type
              this.aValue = value
            } else if (str === this.bStr) {
              // 业务类型
              params.bType = type
              this.bValue = value
            } else if (str === this.cStr) {
              // 外呼平台
              params.cType = type
              this.cValue = value
            }
            // 调用请求方法
            // xxxxxxxxxxxx
            this.lastSelectParams = params
          }
        },
      }

    二、自定义el-dropdown

    3.实现方法,1,2类似上面

  • 相关阅读:
    JVM虚拟机
    antd Table排序问题
    关于element-ui中el-container布满全局的问题!
    vue 安装css预处理器LESS
    mybatis官网
    Lombok安装及使用介绍
    thymeleaf中th:each的使用,遍历数组
    thymeleaf中th:text和th:utext的使用与区别
    SprongBoot项目的打包与启动
    SpringBoot简单学习
  • 原文地址:https://www.cnblogs.com/TheYouth/p/14190707.html
Copyright © 2011-2022 走看看