进阶与排错

稳定

状态码与错误排查

稳定性:stable。下表以当前 errorMaps.ts 的 createError 映射为准。成功返回由具体方法和下游服务决定,不能用一个固定状态码概括。

错误码

状态码 当前含义 排查方向
401 缺少报表标识 检查 reportCode、reportVersion
402 报表模板解析失败 检查标识、版本和模板内容
404 报表 API 调用失败 检查方法入参和 Vue;注意 handler 缺 Vue 的部分路径会使用此码
405 报表数据获取失败 检查数据服务、认证和 serviceInputs
406 续打偏移错误 检查偏移配置和打印模板
501 未找到打印客户端 检查本机服务和版本
502 打印文件失败 查看打印客户端日志和驱动
503 打印服务调用失败 检查服务连通性和响应
601 挂载点不存在 确保 DOM 已创建并传入实际 HTMLElement;不要依赖缺失字符串选择器进入此映射
602 Vue 类未定义 传入 Vue 或加载 window.Vue
500100001 数据集行数超限 缩小查询范围或调整服务限制
500100002 数据集配置错误 检查数据集字段和查询配置
500100003 数据集查询超时 优化查询或检查数据源
31300013 数据连接不存在 检查数据连接配置和权限

返回值与异常

createError 对未知码返回 { code: -1 }。printAll 另有字符串类型错误,如 PARAM_ERROR、PRINT_ALL_BUSY、REPORT_GENERATE_FAILED;它们不是本表数字映射的一部分。

最小排查示例

try {
  const container = document.querySelector("#report-host");
  if (!container) throw new Error("Missing #report-host");
  await api.mount(
    {
      reportOptions: {
        reportCode: "sales-summary",
        reportVersion: "1.0.0",
      },
    },
    container,
    Vue,
  );
} catch (error) {
  if (error?.code === 601) console.error("Create #report-host before mount");
  else if (error?.code === 602) console.error("Pass the Vue 2 constructor");
  else console.error("BeeReport failed", error);
}

iframe 模式差异

iframe 的代理读取方法可能 reject 子页返回的数据,并不保证转换为 createError 数字码;同时检查父页错误和子页控制台/网络请求。

相关 API

mount 与 unmount、print 与 printAll。

常见错误

打印问题先在最终用户电脑访问 http://127.0.0.1:45111/bios-printer/;报表问题先保留首次 reject 和失败网络响应,不要用重复重试覆盖根因。