status: apply created: 2026-05-11 complexity: 🟡中等
forge-report-ui 动态数据配置在选择外部接口时全量加载接口列表,接口数量大时会卡顿。内部接口与外部接口的请求参数也缺少统一、可视化的动态参数机制。
目标:
forge-report-ui/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue:动态数据请求配置面板,当前外部接口下拉在 onMounted 和 focus 时调用 getExternalApiListApi()。forge-report-ui/src/api/http.ts:customizeHttp() 统一执行动态请求;内部接口组装 Params/Header/Body,外部接口进入 externalProxyRequest()。forge-report-ui/src/store/modules/chartEditStore/chartEditStore.d.ts:RequestConfigType 已包含 requestSource、externalApiId、externalRequestParams。forge-report-ui/src/api/external/api.ts 仅封装 /forge-report-api/external/api/list,会返回全量可用接口。ExternalApiController.list(systemId) 支持按系统列接口,但仍可能返回系统下全量接口。ExternalApiController.page(ExternalApiQuery) 已支持 systemId/apiName/apiCode/apiStatus/pageNum/pageSize,可直接用于远程搜索。useChartInteract() 修改目标接口参数,但组件当前值不稳定回写到组件配置,无法作为统一动态参数源可靠读取。javascript: 参数能力。/forge-report-api/auth/userInfo 获取并缓存,避免每次请求重复拉取。dynamicRequestParams。| 操作 | 表名 | 字段/索引 | 说明 |
|---|---|---|---|
| 无 | - | - | 本次仅扩展前端保存的报表 JSON 配置 |
| 操作 | 接口 | 方法 | 变更内容 |
|---|---|---|---|
| 复用 | /forge-report-api/external/system/list |
GET | 获取外部系统 |
| 复用 | /forge-report-api/external/api/page |
GET | 按系统与关键字分页查询接口 |
| 复用 | /forge-report-api/auth/userInfo |
GET | 获取当前登录人上下文 |
forge-report-ui 动态数据配置面板dynamicRequestParams 时按空数组兼容。externalApiId、没有 externalSystemId 时,下拉不会主动全量回显,仍可按原 ID 请求。external/api/page 做接口选择远程搜索。| Task | 状态 | 实际改动文件 | 备注 |
|---|---|---|---|
| Task 1 | done | forge-report-ui/src/api/external/api.ts, RequestTargetConfig/index.vue |
外部系统/接口两级联动与分页搜索 |
| Task 2 | done | chartEditStore.d.ts, publicConfig.ts, requestDynamicParams.ts, http.ts |
动态参数类型、默认值、解析与请求合并 |
| Task 3 | done | InputsInput/InputsSelect/InputsDate/InputsTab/InputsPagination |
筛选组件当前值回写 |
| Task 4 | done | - | pnpm build 通过;变更文件 ESLint 无错误 |
通过构建与变更文件 ESLint 检查,未发现阻塞问题。Vite 输出的 Rollup 循环依赖、CSS :deep()、lottie eval 均为既有项目警告。