checkbox全选_vue+element 全选方法

a505ff06f8d79af3e9acd13264d24941.png

批量操作功能

html

 <table class="table-strip-ls">
          <thead>
            <tr>
              <td class="w40">
                <el-checkbox :indeterminate="isIndeterminate" v-model="multiOperationAll" @change="selectAll">
                </el-checkbox>
              </td>
              <td class="w120" v-if="navstate==-1">商品缩略图</td>
              <td class="w120" v-if="navstate==-1">商品ID</td>
              <td class="w120" v-if="navstate==-1">商品名称</td>
              <td class="w120" v-if="navstate==-1">品牌</td>
              <td class="w120" v-if="navstate==-1">所属类目</td>
              <td class="w120" v-if="navstate==-1">所属店铺</td>
              <td class="w120" v-if="navstate==-1">上架状态</td>
              <td class="w120" v-if="navstate==-1">活动状态</td>
              <td class="w120" v-if="navstate==-1">活动名称</td>
              <td class="w120" v-if="navstate==1">店铺名称</td>
              <td class="w120" v-if="navstate==1">企业名称</td>
              <td class="w120">预警值</td>
              <td class="w120">操作</td>
            </tr>
          </thead>
          <tbody>
            <tr v-for="(val,index) in dataList" :key="val.id" style="height:65px;">
              <td>
                <el-checkbox v-model="multiGoodsStatus[index]">
                </el-checkbox>
              </td>
              <td v-if="navstate==-1">
                <p class="orderImg">
                  <img :src="val.productImg" alt="" />
                </p>
                
              </td>
              <td v-if="navstate==-1">{{val.productId}}</td>
              <td v-if="navstate==-1">
                <p class="ellipsis2 w120" :title="val.productName">
                  {{val.productName}}
                </p>
              </td>
              <td v-if="navstate==-1"> {{val.brandName}}</td>
              <td v-if="navstate==-1"> {{val.categoryName}} </td>
              <td v-if="navstate==-1"> {{val.storeName}}</td>
              <td v-if="navstate==-1">{{val.productUpStatus==0?'未上架':'已上架'}}</td>
              <td v-if="navstate==-1">
                 <span v-if="val.activityStatus==1">活动报名中</span>
                 <span v-if="val.activityStatus==2">活动中</span>
              </td>
              <td v-if="navstate==-1">{{val.activityName}}</td>
              <td v-if="navstate==1">{{val.storeName}}</td>
              <td v-if="navstate==1">{{val.entName}}</td>
              <td>
                {{val.secondEarlyWarning}} <br>
                {{val.minuteEarlyWarning}} <br>
                {{val.hourEarlyWarning}}
              </td>
              <td v-if="navstate==-1">
                 <el-button type="text" class="btn-handle" @click="earlySetting(val.productId,val)" style="color:#4DA9E4;width:auto;">预警设置</el-button>
              </td>
              <td v-if="navstate==1">
                 <el-button type="text" class="btn-handle" @click="earlySetting(val.storeId,val)" style="color:#4DA9E4;width:auto;">预警设置</el-button>
              </td>
            </tr>
            <tr v-if="dataList.length===0 && navstate==-1">
              <td colspan="12" class="com-nodata">暂无数据</td>
            </tr>
            <tr v-if="dataList.length===0 && navstate==1">
              <td colspan="5" class="com-nodata">暂无数据</td>
            </tr>
          </tbody>
        </table>
        <div class="pagination" v-if="dataList.length!==0">
          <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40]"
            :page-size="10" layout="total, sizes, prev, pager, next, jumper" :total="totalRecord">
          </el-pagination>
        </div>

js

data(){
   return{
        dataList: [],
        currentPage: 1,
        pageSize: 10,
        totalRecord: 0,
        //全选
        multiOperationAll: false,
        isIndeterminate: false,
        multiGoodsStatus: getMultiStatus(10),
  }
},
watch: {
      multiGoodsStatus: function (val) {
        if (val.every(x => x === true)) {
          this.multiOperationAll = true;
          this.isIndeterminate = false;
        } else if (val.every(x => x === false)) {
          this.multiOperationAll = false;
          this.isIndeterminate = false;
        } else {
          this.isIndeterminate = true;
          this.multiOperationAll = false;
        }
      }
  },
methods: {
  //全选
  selectAll(val) {
     this.multiGoodsStatus = getMultiStatus(this.dataList.length, val);
  },
   
  handleSizeChange(val) {
        this.multiGoodsStatus = getMultiStatus(this.dataList.length, false);
        this.isIndeterminate = false;
        this.currentPage = 1;
        this.pageSize = val;
        this.getList();
      },
  handleCurrentChange(val) {
        this.multiGoodsStatus = getMultiStatus(this.dataList.length, false);
        this.isIndeterminate = false;
        this.currentPage = val;
        this.getList();
  },
  earlySetting(id,item){
          //获取选中的当前ID
          let selectedItems = []
          this.multiGoodsStatus.forEach((x, index) => {
            if (x) {
              selectedItems.push(this.dataList[index].productId);
            }
          });
          let ids = selectedItems.join(',');
           if (selectedItems.length === 0 ) {
            this.$message('请选择商品');
            return !1;
          }
          this.warningSettings = true
          this.ids = ids
  },
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值