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

基于Payload长度的下载按钮条件触发逻辑实现问询

下载按钮逻辑修正方案

问题背景

固定位置的Download按钮通过Post API实现下载,需满足两个核心规则:

  • 当Payload长度大于0时,直接触发文件下载;
  • 当Payload长度等于0时,先打开模态框,用户点击「继续下载」后再触发下载。

原代码逻辑存在错误:当Payload长度为0时会直接发起下载请求,未按要求先弹出模态框等待用户确认。

修正后的代码

按钮与模态框HTML代码

<button
     id="download-data"
      title="download"
      (click)="exportToZip(false)"
      role="button">
        download
</button>

<ibm-modal [open]="isExportModalButtonEnabled">
        <ibm-modal-header (closeSelect)="closeModal()">
          <h4 id="modal-header" ibmModalHeaderHeading>
            {{ 'Download' | translate }}
          </h4>
        </ibm-modal-header>
        <ibm-modal-footer id="modal-footer">
          <ng-container>
            <button class="cancel-button" (click)="closeModal()">
              {{ 'cancelButton' | translate }}
            </button>
            <button (click)="exportToZip(true)">
              {{ continueToDownload | translate }}
            </button>
          </ng-container>
        </ibm-modal-footer>
      </ibm-modal>

TypeScript逻辑代码

exportToZip(shouldProceedWithDownload: boolean) {
  const { technicalServiceFilterList } = this.getQueryParams();
  const exportParams = {
    technicalServiceFilterList,
    period: "latest",
  };
  const payload = technicalServiceFilterList.length ? technicalServiceFilterList.split(',') : [];

  // Payload为空且未触发模态框确认:仅打开模态框
  if (payload.length === 0 && !shouldProceedWithDownload) {
    this.isExportModalButtonEnabled = true;
    return;
  }

  // 以下两种情况直接执行下载:
  // 1. Payload长度大于0
  // 2. 用户已在模态框点击继续下载
  this.isExportModalButtonEnabled = false;
  this.ManagementService.downloadDetails(exportParams, payload).subscribe((response) => {
    this.downloadZip(response, selectedRow);
  });
}

closeModal() {
  this.isExportModalButtonEnabled = false;
}

逻辑说明

  • 点击页面主下载按钮时传入false:
    • 若Payload为空,仅打开模态框等待用户确认;
    • 若Payload有内容,直接发起下载请求。
  • 用户点击模态框「继续下载」按钮时传入true:
    • 直接触发下载请求,同时关闭模态框。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:50:32