From 7c99fc6db647338c2b06975392688ab367a02025 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 28 Apr 2025 15:49:07 +0800 Subject: [PATCH] refactor(votesActivity): 优化订单核销功能 --- src/main/resources/templates/febs/views/modules/votesActivity/orderList.html | 92 ++++++++++++++++++++++++++++++--------------- 1 files changed, 61 insertions(+), 31 deletions(-) diff --git a/src/main/resources/templates/febs/views/modules/votesActivity/orderList.html b/src/main/resources/templates/febs/views/modules/votesActivity/orderList.html index a53230f..b40c268 100644 --- a/src/main/resources/templates/febs/views/modules/votesActivity/orderList.html +++ b/src/main/resources/templates/febs/views/modules/votesActivity/orderList.html @@ -174,49 +174,79 @@ // 初始化表格操作栏各个按钮功能 table.on('toolbar(orderActivityTable)', function (obj) { - console.log("触发事件:", obj.event); // 调试信息 let event = obj.event; let id = obj.config.id; let checkStatus = table.checkStatus(id); - if(event === 'checkOrder'){ + + if (event === 'checkOrder') { let data = checkStatus.data; - let ids = []; - for(let i = 0;i < data.length;i++){ - if(data[i].state != 2){ - febs.alert.warn('请选择待使用的订单'); - return; - }else{ - ids.push(data[i].id); - } - } - console.log(ids); - if(ids == null || ids == ""){ + + // 校验 data 是否为空或未定义 + if (!Array.isArray(data) || data.length === 0) { febs.alert.warn('请选择需要核销的订单'); return; } - $.ajax({ - 'url':ctx + 'admin/happyActivity/checkOrder', - 'type':'post', - 'dataType':'json', - 'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, //接口json格式 - 'traditional': true,//ajax传递数组必须添加属性 - 'data':ids, - 'success':function (data) { - if(data.code==200){ - febs.alert.success('操作成功'); - $query.click(); - }else{ - febs.alert.warn(data.message); - } - }, - 'error':function () { - febs.alert.warn('服务器繁忙'); + + let ids = []; + let hasInvalidOrder = false; + + // 遍历数据,筛选符合条件的订单 + for (let i = 0; i < data.length; i++) { + if (data[i].state !== 2) { + hasInvalidOrder = true; + break; // 提前中断循环,避免无意义的继续遍历 + } else { + ids.push(data[i].id); } - }) + } + + if (hasInvalidOrder) { + febs.alert.warn('请选择待使用的订单'); + return; + } + + if (ids.length === 0) { // 正确判断数组是否为空 + febs.alert.warn('请选择需要核销的订单'); + return; + } + + // 封装 AJAX 请求为独立函数 + function sendCheckOrderRequest(ids, successCallback, errorCallback) { + $.ajax({ + url: ctx + 'admin/happyActivity/checkOrder', // 硬编码路径建议提取为配置项 + type: 'post', + dataType: 'json', + headers: { 'Content-Type': 'application/json;charset=utf-8' }, + traditional: true, + data: JSON.stringify(ids), // 确保传递的是 JSON 格式 + success: function (response) { + if (response.code === 200) { + successCallback(response); + } else { + errorCallback(response.message); + } + }, + error: function (xhr, status, error) { + errorCallback(`服务器繁忙: ${error}`); // 捕获具体错误信息 + } + }); + } + + // 调用封装的请求函数 + sendCheckOrderRequest(ids, + function onSuccess(response) { + febs.alert.success('操作成功'); + $query.click(); + }, + function onError(message) { + febs.alert.warn(message); + } + ); } }); + function initorderActivityTable() { tableIns = febs.table.init({ elem: $view.find('table'), -- Gitblit v1.9.1