zoukankan      html  css  js  c++  java
  • 筛选表格数据

    <template>
      <div class="ces-search searchContent">
        <el-form :size="size" :inline="true" :label-width="labelWidth">
          <el-form-item v-for='item in searchForm' :label="item.label" :key='item.prop' style="float: left">
            <!-- 输入框 -->
            <el-input v-if="item.type==='Input'" v-model="searchData[item.prop]" size="mini" :placeholder="item.placeholder" clearable class="input40" ></el-input>
            <!-- 下拉框 -->
            <!--<el-select v-if="item.type==='Select'" v-model="searchData[item.prop]" size="mini" @change="item.change(searchData[item.prop])" :placeholder="item.placeholder" clearable>
                <el-option v-for="op in item.options" :label="op.label" :value="op.value" :key="op.value"></el-option>
            </el-select>-->
            <el-select v-if="item.type==='Select'" v-model="searchData[item.prop]" size="mini" :placeholder="item.placeholder" clearable>
              <el-option v-for="op in item.options" :label="op.label" :value="op.value" :key="op.value"></el-option>
            </el-select>
            <!-- 单选 -->
            <el-radio-group v-if="item.type==='Radio'" v-model="searchData[item.prop]">
              <el-radio v-for="ra in item.radios" :label="ra.value" :key="ra.value">{{ra.label}}</el-radio>
            </el-radio-group>
            <!-- 单选按钮 -->
            <el-radio-group v-if="item.type==='RadioButton'" v-model="searchData[item.prop]" @change="item.change && item.change(searchData[item.prop])">
              <el-radio-button v-for="ra in item.radios" :label="ra.value" :key="ra.value">{{ra.label}}</el-radio-button>
            </el-radio-group>
            <!-- 复选框 -->
            <el-checkbox-group v-if="item.type==='Checkbox'" v-model="searchData[item.prop]" >
              <el-checkbox v-for="ch in item.checkboxs" :label="ch.value" :key="ch.value">{{ch.label}}</el-checkbox>
            </el-checkbox-group>
            <!-- 日期 -->
            <el-date-picker v-if="item.type==='Date'" v-model="searchData[item.prop]" :placeholder="item.placeholder" clearable ></el-date-picker>
            <!-- 时间 -->
            <el-time-select v-if="item.type==='Time'" v-model="searchData[item.prop]" type=''></el-time-select>
            <!-- 日期时间 -->
            <el-date-picker v-if="item.type==='DateTime'" type='datetime' v-model="searchData[item.prop]" :disabled="item.disable && item.disable(searchData[item.prop])"></el-date-picker>
            <!-- 滑块 -->
            <!-- <el-slider v-if="item.type==='Slider'" v-model="searchData[item.prop]"></el-slider> -->
            <!-- 开关 -->
            <el-switch v-if="item.type==='Switch'" v-model="searchData[item.prop]" ></el-switch>
          </el-form-item>
          <el-form-item v-for='item in searchHandle' :key="item.label" style="float: left">
            <el-button :type="item.type" :size="item.size || size" @click='item.handle()' :icon="item.icon" style="background: #009688;margin-left:15px;height: 40px;" >{{item.label}}</el-button>
          </el-form-item>
        </el-form>
        <!--<el-form inline v-if='isHandle'>
            <el-form-item v-for='item in searchHandle' :key="item.label">
                <el-button :type="item.type" :size="item.size || size" @click='item.handle()' :icon="item.icon" style="background: #009688;margin-left:15px;" >{{item.label}}</el-button>
            </el-form-item>
        </el-form>-->
      </div>
    </template>
    
    <script>
        export default {
          name: "searchForm",
          props:{
            isHandle:{
              type:Boolean,
              default:true
            },
            labelWidth:{
              type:String,
              default:'100px'
            },
            size:{
              type:String,
              default:'medium'
            },
            searchForm:{
              type:Array,
              default:[]
            },
            searchHandle:{
              type:Array,
              default:()=>[]
            },
            searchData:{
              type:Object,
              default:{}
            }
          },
          data () {
            return {
            };
          },
        }
    </script>
    
    <style>
      .searchContent {
        margin: 10px 0 20px 0;
        display: flex;
        flex-direction: row;
      }
      .el-input--suffix {
        width: 200px;
        margin-right: 20px;
      }
      .input40 input {
        height: 40px !important;
      }
    </style>

    使用:

    <template>
      <div class="ces-main">
        <search-com
          size='medium '
          labelWidth = '80px'
          :searchData = "searchData"
          :searchForm = "searchForm"
          :searchHandle="searchHandle"
        ></search-com>
        <table-com
          :that='that'
          size='small '
          :isSelection='true'
          :isIndex='true'
          :isHandle='true'
          :tableData='tableData'
          :tableCols='tableCols'
          :newBtnList="newBtnList"
          :isPagination='true'
          :tablePage='pagination'
          :longDatas="longDatas"
        >
        </table-com>
    
      </div>
    </template>
    
    <script>
      import tableCom from '../../components/tableCompnment/tableForm'
      import searchCom from '../../components/tableCompnment/searchForm'
      export default {
        components : {
          tableCom,searchCom
        },
        data () {
          return {
            that : this,
            // 查询表单
            searchData:{
              carNumber:null,
            },
            searchForm:[//搜索栏
              {type:'Input',prop:'carNumber','180px',placeholder:'请输入车牌'},
            ],
            searchHandle:[//搜索按钮
              {label:'查询',icon:"el-icon-search",type:'primary',handle:()=>this.searchNews()},
            ],
            tableData : [
              {id:1,carNumber:'粤B555'},
              {id:2,carNumber:'粤B555'},
              {id:3,carNumber:'粤B555'},],// 表格数据
            tableCols:[// 表头
              {label:'车牌',prop:'carNumber'},
              {label:'车辆信息',type:'longData'},
              {label:'下单时间',prop:'inputTime'},
              {label:'业务类型',prop:'checkType'},
              {label:'故障描述',prop:'note'},
              {label:'发动机缸数量',prop:'carCylinder'},
              {label:'当前操作人',prop:'operatorName'},
              {label:'操作',type:'button',},
              {label:'冻结',type:'Button',btnList:[
                  {type:'danger',label:'冻结工单',handle:(row,that)=>this.showRecord(row,that)},
                ]},
            ],
            newBtnList:[
              {id : 1,btnList:[
                  {type:'primary',label:'上传照片',isShow:true, handle:(row,that)=>this.showEditTest(row,that)},
                  {type:'success',label:'完成',isShow:false, handle:row=>''}
                ]
              },
              {id : 2,btnList:[
                  {type:'primary',label:'上传照片',isShow:true, handle:(row,that)=>this.showEditTest(row,that)},
                  {type:'success',label:'完成',isShow:true, handle:row=>''}
                ]
              },
              {id : 3,btnList:[
                  {type:'primary',label:'上传照片',isShow:true, handle:(row,that)=>this.showEditTest(row,that)},
                  {type:'success',label:'完成',isShow:true, handle:row=>''}
                ]
              }
            ],
    
    
            longDatas : [],
            pagination:{//页数...
              pageSize:10,
              pageNum:1,
              total:0
            },
            orderPageShowOrgName: false,
          }
        },
      }
    </script>
    
    <style>
    </style>

    效果:

  • 相关阅读:
    利用Powerdesigner16.5(64位)连接64位oracle 配置系统odbc驱动
    Commons BeanUtils 中对Map的操作
    java内存模型与线程
    类加载器详解
    虚拟机性能监控与故障处理工具
    ENode框架Conference案例分析系列之
    ENode框架Conference案例分析系列之
    225.优化路径选择
    224.CAD相关操作
    223.概率统计
  • 原文地址:https://www.cnblogs.com/weiweiyeyu/p/12124454.html
Copyright © 2011-2022 走看看