判断按钮是否可以点击逻辑
总体逻辑: 判断这个按钮是否可以点击。
1.定义数组接受所有选中行共同拥有的状态,如果所有选中行共同拥有的状态没有当前状态,
换句话说只要有一个没有。该按钮就可以点击this.availableBatchBtn()
2.具体进行判断 定义一个数组,循环当前选中行。将每一行的状态进行格式化后加入新数组,
返回一个_.intersection()的交集。返回一个共同拥有的状态
3.定义格式化函数。getBtnByStatus,对应的state,为对应的状态(为一个数组)。返回对应的
状态
原理:交集状态不存在即可点击
ex:
<el-button :disabled=“isShowBatchSend”
icon=“iconfont hy-delivery-o”
size=“mini”
title=“送审”
@click=“batchSend”>

一------------------------------------
判断送审按钮是否可以点击----isShowBatchSend函数
arr 为一个数组,这个数组中的内容是当前所有选中行都包含的状态
根据返回的数组交集部分。也就是arr是返回的所有状态的交际。查询是否包括当前按钮状态
如果这个按钮要变成的状态不包括在当前数组中。就可以点击 返回true
isShowBatchSend() {
let arr = this.availableBatchBtn();
return !arr.includes(STATUS.SEND);
}

二-------------------------------------
--------availableBatchBtn函数返回一个数组
1.定义空数组
2.循环当前选中的行。在循环中为这个加进每一行的状态判断。
3.返回每一行中都包含的值
4.格式化后的每一个state都加入了result这个数组,且每一个state格式化后也为一个数组,
解构数组,最终返回多个状态(数组)相同的交集状态部分。
availableBatchBtn() {
let result = [];
for (const item of this.selection) {
result.push(this.getBtnByStatus(item.status));
}
return _.intersection(…result);
}

Logo

前往低代码交流专区

更多推荐