tab切换搜索
当tab切换变成一个搜索条件的时候,tab为全部的时候,所有状态的数据都有,当为待处理时,下面只有发货的数据,当为待送达时,下面只有待确认送达的数据:
html:
要把三个tab写到前面,然后所有的内容写到他们下面
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="全部" name="first"></el-tab-pane>
<el-tab-pane label="待处理" name="second"></el-tab-pane>
<el-tab-pane label="待送达" name="third"></el-tab-pane>
</el-tabs>
<div>
<el-row class="views_box" :gutter="20">
<el-col :span="3">
<div>兑换编号:</div>
<el-input
v-model="dataForm.convertNo"
placeholder="输入兑换编号"
@keydown.enter.native="seachEnterFun"
></el-input>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple-dark">下单时间:</div>
<el-row class="user-input">
<el-date-picker
v-model="dataForm.startingTime"
type="datetime"
value-format="timestamp"
:picker-options="pickerOptionsStart"
placeholder="开始日期时间"
style="width: 240px"
@keydown.enter.native="seachEnterFun"
></el-date-picker>
<div class="text bg-purple-light" style="width: 20px">至</div>
<el-date-picker
v-model="dataForm.endTime"
type="datetime"
value-format="timestamp"
:picker-options="pickerOptionsEnd"
placeholder="结束日期时间"
style="width: 240px"
@keydown.enter.native="seachEnterFun"
></el-date-picker>
</el-row>
</el-col>
<el-col :span="3">
<div>收货人姓名:</div>
<el-input
v-model="dataForm.name"
placeholder="输入收货人姓名"
@keydown.enter.native="seachEnterFun"
></el-input>
</el-col>
<el-col :span="3">
<div>收货人手机号码:</div>
<el-input
v-model="dataForm.mobile"
placeholder="输入手机号码"
@keydown.enter.native="seachEnterFun"
></el-input>
</el-col>
<!-- <el-col :span="3">
<div>状态:</div>
<el-select
placeholder="请选择"
v-model="dataForm.state"
clearable
@keydown.enter.native="seachEnterFun"
>
<el-option
v-for="item in state"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-col>-->
<el-col :span="1.2">
<el-button type="primary" size="small" @click="search">搜索</el-button>
</el-col>
<el-col :span="1.6">
<el-button size="small" @click="resetting">重置</el-button>
</el-col>
<el-col :span="1.2">
<el-button type="primary" size="small" id="export" @click="exportTable">导出</el-button>
</el-col>
</el-row>
<el-table
:data="tableData"
ref="tableDatas"
class="view_table"
style="width: 100%"
id="tableExcel"
v-loading="loading"
>
<el-table-column prop="convertTime" label="兑换申请时间" align="center" min-width="140"></el-table-column>
<el-table-column prop="convertNo" label="兑换编号" align="center" min-width="120"></el-table-column>
<el-table-column prop="name" label="收货人姓名" align="center" min-width="90"></el-table-column>
<el-table-column prop="mobile" label="收货人手机号" align="center" min-width="100"></el-table-column>
<el-table-column prop="address" label="收货地址" align="center" min-width="210"></el-table-column>
<el-table-column prop="goodsName" label="商品名称" align="center" min-width="90"></el-table-column>
<el-table-column prop="goodsSku" label="规格" align="center" min-width="90"></el-table-column>
<el-table-column prop="cost" label="成本" align="center" min-width="90"></el-table-column>
<el-table-column prop="remark" label="备注" align="center" min-width="90"></el-table-column>
<el-table-column prop="channel" label="任务" align="center" min-width="90">
<template slot-scope="scope">
<div>
<div v-if="scope.row.channel == 1">连续签到</div>
<div v-if="scope.row.channel == 2">.积分抽奖</div>
</div>
</template>
</el-table-column>
<el-table-column prop="trackingCompany" label="快递公司" align="center" min-width="90"></el-table-column>
<el-table-column prop="trackingNumber" label="快递单号" align="center" min-width="90"></el-table-column>
<el-table-column fixed="right" align="center" label="操作" min-width="120">
<template slot-scope="scope">
<el-button
type="primary"
size="small"
v-if="scope.row.state == 2"
@click="confirmSend('3',scope.row)"
>发货</el-button>
<el-button
type="primary"
size="small"
v-if="scope.row.state == 3"
@click="confirService('4',scope.row)"
>确认送达</el-button>
<el-button
type="text"
size="small"
v-if="scope.row.state == 4"
>已送达</el-button>
</template>
</el-table-column>
</el-table>
<div class="view_block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="dataForm.pageNum"
:page-sizes="[10, 20, 50, 100, 500]"
:page-size="dataForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
</div>
</div>
----------
数据模型:
dataForm.state就是tab切换的搜索条件:
data() {
return {
activeName: "first",
total: 0,
dataForm: {
state: "", //平台2.待处理 3.待送达 4.已送达
convertNo: "", //编号
startingTime: "",
endTime: "",
name: "", //姓名
mobile: "", //手机号
pageNum: this.$store.state.page, //查询页数
pageSize: this.$store.state.size //每页多少条
},
tableData: [],
// 平台
state: [
{
value: "2",
label: "待处理"
},
{
value: "3",
label: "待送达"
},
{
value: "4",
label: "已送达"
}
],
loading: false,
pickerOptionsStart: {
disabledDate: time => {
const endDateVal = new Date(this.dataForm.endTime).getTime();
if (endDateVal) {
return time.getTime() > endDateVal + 1;
}
}
},
pickerOptionsEnd: {
disabledDate: time => {
const beginDateVal = new Date(this.dataForm.startingTime).getTime();
if (beginDateVal) {
return time.getTime() < beginDateVal + 1;
}
}
}
}
}
methods:
获取列表,查询等都不一一写了
handleClick(tab, event) {
console.log(tab, event);
this.$store.commit("pageChange", 1);
this.dataForm.pageNum = 1;
if (tab.name == "first") {
this.dataForm.state = "";
}else if(tab.name == "second") {
this.dataForm.state = "2";
} else if (tab.name == "third") {
this.dataForm.state = "3";
}
this.getData();
},