You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击‘重新安排已预约服务’按钮后Spinner持续旋转,无法完成服务重约

问题分析与解决方案

核心问题定位

加载Spinner持续旋转,本质是前端未正确处理后端响应(包括成功/失败场景),或后端逻辑执行中断导致无响应返回,最终Spinner未被触发关闭。


前端代码(Creatfurniturecontroller.js)排查与修复

  1. Spinner控制逻辑补全
    检查按钮点击事件中,是否仅在Apex调用成功分支关闭Spinner,遗漏了失败/异常分支。错误示例:

    // 错误写法:仅成功时关闭Spinner
    showSpinner();
    rescheduleService({caseId: currentCaseId}).then(result => {
        hideSpinner();
        // 后续成功逻辑
    });
    

    修正为所有分支都关闭Spinner:

    showSpinner();
    rescheduleService({caseId: currentCaseId})
        .then(result => {
            hideSpinner();
            // 处理重约成功:比如弹出提示、刷新页面数据
        })
        .catch(error => {
            hideSpinner();
            // 处理错误:比如打印错误日志、弹出Toast提示用户
            console.error('重约失败:', error.body.message);
        });
    
  2. 参数传递校验
    在调用Apex方法前,打印传递的参数(如Case ID),确认参数有效且未丢失:

    console.log('当前传入的Case ID:', currentCaseId);
    

后端代码(CreateFurnitureServicesCtrl)排查与修复

  1. Case记录查询完整性
    确认获取Case的SOQL包含重约所需的全部字段(如关联的服务预约ID、状态字段),避免因字段缺失导致逻辑中断:

    // 错误写法:未查询服务预约关联字段
    Case targetCase = [SELECT Id, Status FROM Case WHERE Id = :caseId];
    // 修正写法:查询重约必需字段
    Case targetCase = [SELECT Id, Status, Service_Appointment__c FROM Case WHERE Id = :caseId];
    
  2. 异常捕获与响应返回
    为重约逻辑添加try-catch块,捕获异常并抛出AuraHandledException,确保前端能收到错误响应:

    @AuraEnabled
    public static String rescheduleCaseService(String caseId) {
        try {
            // 重约核心逻辑:更新服务预约时间、同步Case状态等
            ServiceAppointment sa = [SELECT Id, StartDateTime FROM ServiceAppointment WHERE Id = :[SELECT Service_Appointment__c FROM Case WHERE Id = :caseId].Service_Appointment__c];
            sa.StartDateTime = System.now().addDays(2); // 示例重约操作
            update sa;
            return '服务重约成功';
        } catch (Exception e) {
            // 将异常信息返回给前端
            throw new AuraHandledException('重约失败:' + e.getMessage());
        }
    }
    
  3. 注解校验
    确认重约相关的Apex方法已添加@AuraEnabled注解,否则前端无法调用该方法。


快速排查辅助手段

  • 浏览器控制台:按F12打开开发者工具,切换到Console标签,查看是否有JS语法错误或Apex调用的报错信息。
  • Salesforce Apex日志:在Setup中开启Apex日志,过滤CreateFurnitureServicesCtrl类,查看后端逻辑执行时是否有异常抛出或执行中断。

内容的提问来源于stack exchange,提问作者parker_1947

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 21:45:47