详细阐述if (obj.event == 'send'){ if (checkStatus.data.length < 1) { layer.msg("请选择要发货的记录!", {icon: 2}); return false; } layer.confirm('确定要发货?', { btn: ['确定', '取消'] //按钮 }, function () { var orderIds = []; console.log(checkStatus.data.length); for (var i = 0; i < checkStatus.data.length; i++) { orderIds.push(checkStatus.data[i].id); if (checkStatus.data[i].status==2){ alert("货单中已收货的订单,不可更改状态信息,请重新选择订单!") return false }else if (checkStatus.data[i].status==1){ alert("该订单已发货,请勿重复操作!") return false } else { orderIds.push(checkStatus.data[i].id); } } console.log(orderIds); var index = layer.load(2); $.ajax({ url: web.rootPath() + "orderinfo/send", type: "post", contentType: "application/json;charset=utf-8", data: JSON.stringify(orderIds), dataType: 'json', success: function (data) { layer.msg("操作成功", { icon: 1, success: function () { $('#SearchBtn').trigger("click"); } }); }, error: function (e) { layer.msg(e.responseJSON.message, {icon: 2}); }, complete: function () { layer.close(index); } }) }, function () { }); }
时间: 2024-04-06 21:33:38 浏览: 12
这段代码主要实现了一个发货操作的功能。当 obj.event 等于 'send' 时,会判断 checkStatus.data 是否为空,如果为空则会弹出“请选择要发货的记录”的提示框并返回 false。如果不为空,则会弹出一个确认框,询问用户是否确定要发货,如果点击确定,则会遍历 checkStatus.data 数组,将其 id 存入 orderIds 数组中,并且会判断当前订单的状态,如果状态为 2(已收货)则会弹出“货单中已收货的订单,不可更改状态信息,请重新选择订单!”的提示框并返回 false,如果状态为 1(已发货)则会弹出“该订单已发货,请勿重复操作!”的提示框并返回 false。如果订单状态不为 1 或 2,则将其 id 存入 orderIds 数组中。最后,使用 ajax 发送一个 post 请求,将 orderIds 数组作为请求体发送给后端的 /orderinfo/send 接口,并在请求成功后弹出“操作成功”的提示框,并触发一个名为 'SearchBtn' 的点击事件,以便刷新页面。如果请求失败,则会弹出请求失败的提示框。无论请求成功或失败,都会关闭加载中动画。
相关问题
obj.value.status = data.status!=null ||data.status!=undefined ? data.status :true; y优化
在优化 `obj.value.status = data.status!=null ||data.status!=undefined ? data.status :true;` 这段代码时,可以通过使用逻辑或的短路运算符来简化代码。当逻辑或的左侧表达式为真时,整个表达式就不需要再计算右侧表达式,因为不管右侧表达式的值是什么,整个表达式的结果都已经确定为真了。因此,可以将代码简化为:
```
obj.value.status = data.status != null || data.status != undefined || true;
```
这样,当 `data.status` 的值为 `null` 或 `undefined` 时,整个表达式的结果就会是 `true`,否则整个表达式的结果就会是 `data.status` 的值。
res.data.map((obj) => { if(obj.name == '商机') { data.push('/lic/opp') } else if(obj.name == '系统权限') { data.push('/lic/permission') } return obj }) 转成一个通用函数
可以将上述代码转化为一个通用函数如下:
```
function mapData(dataArr) {
const data = [];
dataArr.map((obj) => {
if(obj.name === '商机') {
data.push('/lic/opp');
} else if(obj.name === '系统权限') {
data.push('/lic/permission');
}
return obj;
});
return data;
}
```
这个函数接收一个数据数组 `dataArr`,并返回一个处理后的新数组 `data`。其中,通过 `map` 方法遍历数据数组中的每一个元素 `obj`,根据 `obj.name` 的值判断是添加 `/lic/opp` 还是 `/lic/permission` 到 `data` 数组中。最后返回 `data` 数组。