@fses/workbench-app 0.2.16 → 0.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/WORKBENCH-CLOSURE.json +18 -12
  2. package/dist/Workspace-r8ayksVF.js +23176 -0
  3. package/dist/canvas/api/index.js +1 -1
  4. package/dist/{canvasFacade-B2EHgdqA.js → canvasFacade-B8jYm_aO.js} +748 -748
  5. package/dist/cardFactory-DmEBcCf4.js +1460 -0
  6. package/dist/extensions/index.js +1 -1
  7. package/dist/fses-workbench-app.js +5 -5
  8. package/dist/{index-CMM-5ObU.js → index-DEOR_GPc.js} +350 -346
  9. package/dist/internal/personal-workbench/fde-skill-cards/runtime/fdeSkillProtocolChartDisplayData.d.ts +0 -5
  10. package/dist/internal/personal-workbench/lib/assistantPersonaProfiles.d.ts +6 -6
  11. package/dist/internal/personal-workbench/lib/cardStyleConfig.d.ts +26 -26
  12. package/dist/internal/personal-workbench/lib/echartsOptionEditorBridge.d.ts +0 -5
  13. package/dist/internal/personal-workbench/lib/historyCardBindingRestore.fixture.d.ts +0 -5
  14. package/dist/internal/personal-workbench/lib/runtimePrimitiveRegistry.d.ts +1 -1
  15. package/dist/internal/personal-workbench/lib/vueRuntimeAdapters.d.ts +0 -5
  16. package/dist/internal/personal-workbench/lib/workbenchCanvasBusinessGapChecklist.d.ts +1 -1
  17. package/dist/internal/personal-workbench/lib/workbenchCardRecommendationFallback.d.ts +1 -1
  18. package/dist/internal/personal-workbench/lib/workbenchCardRecommendationReturnItemUpsert.d.ts +0 -5
  19. package/dist/internal/personal-workbench/lib/workbenchDataBindingBadge.d.ts +0 -5
  20. package/dist/internal/personal-workbench/lib/workbenchImageComposeEntry.d.ts +1 -1
  21. package/dist/internal/personal-workbench/lib/workbenchLayout.d.ts +0 -5
  22. package/dist/runtime/index.js +1 -1
  23. package/dist/style.css +1 -1
  24. package/dist/{useWorkbenchRuntime-DLf_FgC7.js → useWorkbenchRuntime-DDD22mdF.js} +7817 -7813
  25. package/dist/version.d.ts +1 -1
  26. package/dist/{workbenchCustomComponentRegistry-Bt94Lgko.js → workbenchCustomComponentRegistry-CWUPjCnJ.js} +74 -74
  27. package/node_modules/@byteluck-fe/locale-message/README.md +2 -0
  28. package/node_modules/@byteluck-fe/locale-message/dist/index.d.ts +37 -0
  29. package/node_modules/@byteluck-fe/locale-message/dist/locale-message.js +55 -0
  30. package/node_modules/@byteluck-fe/locale-message/package.json +37 -0
  31. package/node_modules/@fses/ai-chat/dist/components/ContextUsageRing.vue.d.ts +5 -0
  32. package/node_modules/@fses/ai-chat/dist/components/FsesAiChat.vue.d.ts +5 -0
  33. package/node_modules/@fses/ai-chat/dist/fses-ai-chat.js +5446 -5321
  34. package/node_modules/@fses/ai-chat/dist/fses-ai-chat.umd.cjs +16 -18
  35. package/node_modules/@fses/ai-chat/dist/style.css +1 -1
  36. package/node_modules/@fses/ai-chat/dist/utils/attachment-upload.d.ts +0 -5
  37. package/node_modules/@fses/ai-chat/package.json +6 -5
  38. package/node_modules/@fses/workbench-card/dist/fses-workbench-card-renderers.js +10144 -9914
  39. package/node_modules/@fses/workbench-card/dist/fses-workbench-card.js +1517 -1503
  40. package/node_modules/@fses/workbench-card/dist/fses-workbench-card.umd.cjs +1 -1
  41. package/node_modules/@fses/workbench-card/dist/renderers/chart/chartRendererRegistry.d.ts +97 -97
  42. package/node_modules/@fses/workbench-card/dist/renderers/style.css +1 -1
  43. package/node_modules/@fses/workbench-card/package.json +4 -1
  44. package/node_modules/@fses/workbench-card/src/registry/cardRegistry.ts +99 -98
  45. package/node_modules/@fses/workbench-card/src/registry/compositeCardPatterns.ts +31 -30
  46. package/node_modules/@fses/workbench-card/src/registry/echartsTemplateCategories.ts +24 -23
  47. package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.js +765 -764
  48. package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.ts +765 -764
  49. package/node_modules/@fses/workbench-card/src/renderers/WorkbenchBlockRenderer.vue +143 -129
  50. package/node_modules/@fses/workbench-card/src/renderers/chart/ChartRegistry.vue +4 -3
  51. package/node_modules/@fses/workbench-card/src/renderers/chart/EChartsProtocolRenderer.vue +2 -1
  52. package/node_modules/@fses/workbench-card/src/renderers/chart/chartRendererRegistry.ts +99 -98
  53. package/node_modules/@fses/workbench-card/src/renderers/chart/useEchart.ts +30 -29
  54. package/node_modules/@fses/workbench-card/src/renderers/native/nativeBindings.ts +11 -10
  55. package/node_modules/@fses/workbench-card/src/renderers/nested/nestedBlockBindings.ts +102 -101
  56. package/node_modules/@fses/workbench-card/src/renderers/reference-composite/referenceCompositeBindings.ts +364 -363
  57. package/node_modules/@fses/workbench-card/src/renderers/reference-composite/referenceRiskAndStrategyBindings.ts +90 -89
  58. package/node_modules/@fses/workbench-card/src/renderers/useWorkbenchBlockRendererBindings.ts +33 -32
  59. package/package.json +4 -3
  60. package/dist/Workspace-CfKvji6S.js +0 -22896
  61. package/dist/cardFactory-BK3CA-Gn.js +0 -1443
@@ -1,3 +1,4 @@
1
+ import { getLocaleText } from '@byteluck-fe/locale-message'
1
2
  /**
2
3
  * @fileoverview 工作台卡片能力注册表 - 定义可用卡片能力、分类和检索工具。
3
4
  * @author seadon
@@ -41,72 +42,72 @@ export interface CardCategoryDefinition {
41
42
  }
42
43
 
43
44
  export const CARD_CATEGORIES: CardCategoryDefinition[] = [
44
- { id: 'card.metric_cards', name: '指标卡', status: 'implemented', description: '数值、组合、对比、预警、目标达成等指标表达。' },
45
- { id: 'card.chart_cards', name: '图表卡', status: 'implemented', description: '柱状图、折线图、混合图、瀑布图、热力图、饼图、雷达图等图表。' },
45
+ { id: 'card.metric_cards', name: getLocaleText('FWC.30201787581440341'), status: 'implemented', description: getLocaleText('FWC.da011787579034088') },
46
+ { id: 'card.chart_cards', name: getLocaleText('FWC.d7811787581440818'), status: 'implemented', description: getLocaleText('FWC.214a1787578131066') },
46
47
  ...ECHARTS_MAIN_CATEGORIES.map((category) => ({
47
48
  id: category.categoryId,
48
49
  name: category.name,
49
50
  status: 'implemented' as const,
50
51
  description: category.description,
51
52
  })),
52
- { id: 'card.table_cards', name: '表格卡', status: 'implemented', description: '清单表、汇总表、对比表、矩阵表等表格。' },
53
- { id: 'card.analysis_report_cards', name: '分析报告卡', status: 'implemented', description: '洞察、摘要、根因、风险、建议、复盘。' },
54
- { id: 'card.dashboard_cards', name: '大屏卡', status: 'implemented', description: '多图看板和经营驾驶舱。' },
55
- { id: 'card.utility_cards', name: '普通能力卡', status: 'implemented', description: '天气、日历、快捷入口、公告、搜索、提醒、收藏。' },
56
- { id: 'card.embedded_form_cards', name: '内嵌表单卡', status: 'implemented', description: 'iframe 页面和表单卡。' },
57
- { id: 'card.fde_custom_cards', name: 'FDE 定制卡', status: 'implemented', description: 'FDE 定制组件卡。' },
58
- { id: 'card.custom_canvas_cards', name: '自定义画布卡', status: 'implemented', description: '空白画布和自定义容器。' },
59
- { id: 'card.composite_cards', name: '组合卡片', status: 'implemented', description: '图生工作台沉淀的多区域 customCanvas 组合卡片。' },
60
- { id: 'card.graph_cards', name: '关系图卡', status: 'implemented', description: '网络关系、组织关系、依赖关系。' },
61
- { id: 'card.geo_cards', name: '地理卡', status: 'implemented', description: '地图、区域分布、全球流向。' },
62
- { id: 'card.identity_cards', name: '身份卡', status: 'implemented', description: '客户、项目、员工、供应商等身份摘要。' },
63
- { id: 'card.workflow_cards', name: '流程卡', status: 'implemented', description: '审批流、任务流、时间线、状态板。' },
64
- { id: 'card.entity_cards', name: '业务对象详情卡', status: 'implemented', description: '客户、项目、合同、供应商、资产、工单详情。' },
65
- { id: 'card.lifecycle_mutation', name: '卡片生命周期改卡能力', status: 'lifecycle', description: '出卡后对卡片、对象和画布进行修改。' },
53
+ { id: 'card.table_cards', name: getLocaleText('FWC.78631787581441323'), status: 'implemented', description: getLocaleText('FWC.95b61787579144586') },
54
+ { id: 'card.analysis_report_cards', name: '分析报告卡', status: 'implemented', description: getLocaleText('FWC.8ff31787579157140') },
55
+ { id: 'card.dashboard_cards', name: getLocaleText('FWC.c9711787581441847'), status: 'implemented', description: getLocaleText('FWC.b8391787579524541') },
56
+ { id: 'card.utility_cards', name: '普通能力卡', status: 'implemented', description: getLocaleText('FWC.17e81787578905407') },
57
+ { id: 'card.embedded_form_cards', name: '内嵌表单卡', status: 'implemented', description: getLocaleText('FWC.f9ef1787579292966') },
58
+ { id: 'card.fde_custom_cards', name: getLocaleText('FWC.243f1787580026236'), status: 'implemented', description: getLocaleText('FWC.b8dd1787579597967') },
59
+ { id: 'card.custom_canvas_cards', name: getLocaleText('FWC.a6901787580427490'), status: 'implemented', description: getLocaleText('FWC.594a1787579525274') },
60
+ { id: 'card.composite_cards', name: getLocaleText('FWC.577a1787581112591'), status: 'implemented', description: getLocaleText('FWC.b1681787578131078') },
61
+ { id: 'card.graph_cards', name: getLocaleText('FWC.a7231787581113113'), status: 'implemented', description: getLocaleText('FWC.6dea1787579251906') },
62
+ { id: 'card.geo_cards', name: getLocaleText('FWC.fa0f1787581442078'), status: 'implemented', description: getLocaleText('FWC.0fa71787579338504') },
63
+ { id: 'card.identity_cards', name: getLocaleText('FWC.70661787581442596'), status: 'implemented', description: getLocaleText('FWC.11c61787579158095') },
64
+ { id: 'card.workflow_cards', name: getLocaleText('FWC.e2f51787581442959'), status: 'implemented', description: getLocaleText('FWC.025e1787579202688') },
65
+ { id: 'card.entity_cards', name: getLocaleText('FWC.153f1787580026760'), status: 'implemented', description: getLocaleText('FWC.c70b1787579106105') },
66
+ { id: 'card.lifecycle_mutation', name: getLocaleText('FWC.c7341787579598473'), status: 'lifecycle', description: getLocaleText('FWC.b7891787579181127') },
66
67
  ];
67
68
 
68
69
  const metricEntries = [
69
- ['numeric', '数值卡片'],
70
- ['combo', '组合卡片'],
71
- ['comparison', '对比卡片'],
72
- ['alert', '预警卡片'],
70
+ ['numeric', getLocaleText('FWC.35471787581113242')],
71
+ ['combo', getLocaleText('FWC.577a1787581112591')],
72
+ ['comparison', getLocaleText('FWC.482e1787581113655')],
73
+ ['alert', getLocaleText('FWC.37391787581114162')],
73
74
  ['targetAchievement', '目标达成卡'],
74
75
  ['yoyMom', '同比环比卡'],
75
76
  ['segmentedProgress', '分段进度卡'],
76
77
  ['abnormalMetric', '异常指标卡'],
77
- ['slaMetric', 'SLA 指标卡'],
78
+ ['slaMetric', getLocaleText('FWC.729f1787580027281')],
78
79
  ] as const;
79
80
 
80
81
  const chartEntries = [
81
- ['bar', '柱状图', 'bar', 'multiSeries'],
82
+ ['bar', getLocaleText('FWC.563c1787581443454'), 'bar', 'multiSeries'],
82
83
  ['customEcharts', '自定义图表', 'customEcharts', 'echartsOption'],
83
- ['line', '折线图', 'line', 'singleSeries'],
84
+ ['line', getLocaleText('FWC.f4d91787581443945'), 'line', 'singleSeries'],
84
85
  ['mixedBarLine', '柱线混合图', 'mixedBarLine', 'multiSeries'],
85
- ['waterfall', '瀑布图', 'waterfall', 'waterfallSteps'],
86
- ['heatmap', '热力图', 'heatmap', 'heatmapMatrix'],
87
- ['pie', '饼图', 'pie', 'pieSlices'],
88
- ['donut', '环形图', 'donut', 'pieSlices'],
89
- ['radar', '雷达图', 'radar', 'radarMetrics'],
90
- ['scatter', '散点图', 'scatter', 'scatterPoints'],
91
- ['bubble', '气泡图', 'bubble', 'scatterPoints'],
92
- ['funnel', '漏斗图', 'funnel', 'funnelStages'],
93
- ['gauge', '仪表盘', 'gauge', 'gaugeMetric'],
94
- ['map', '地图', 'map', 'mapRegions'],
95
- ['sankey', '桑基图', 'sankey', 'sankeyFlow'],
96
- ['tree', '树图', 'tree', 'treeHierarchy'],
97
- ['gantt', '甘特图', 'gantt', 'ganttTasks'],
98
- ['candlestick', 'K 线图', 'candlestick', 'candlestickSeries'],
99
- ['kline', 'K 线图别名', 'candlestick', 'candlestickSeries'],
100
- ['boxplot', '箱线图', 'boxplot', 'boxplotSeries'],
101
- ['area', '面积图', 'area', 'singleSeries'],
86
+ ['waterfall', getLocaleText('FWC.201c1787581444470'), 'waterfall', 'waterfallSteps'],
87
+ ['heatmap', getLocaleText('FWC.a9da1787581444994'), 'heatmap', 'heatmapMatrix'],
88
+ ['pie', getLocaleText('FWC.f07d1787581593894'), 'pie', 'pieSlices'],
89
+ ['donut', getLocaleText('FWC.ba481787581445517'), 'donut', 'pieSlices'],
90
+ ['radar', getLocaleText('FWC.50c11787581453541'), 'radar', 'radarMetrics'],
91
+ ['scatter', getLocaleText('FWC.fa0d1787581453650'), 'scatter', 'scatterPoints'],
92
+ ['bubble', getLocaleText('FWC.bb771787581453689'), 'bubble', 'scatterPoints'],
93
+ ['funnel', getLocaleText('FWC.689b1787581461784'), 'funnel', 'funnelStages'],
94
+ ['gauge', getLocaleText('FWC.b5761787581477625'), 'gauge', 'gaugeMetric'],
95
+ ['map', getLocaleText('FWC.52d81787581593945'), 'map', 'mapRegions'],
96
+ ['sankey', getLocaleText('FWC.f5361787581477673'), 'sankey', 'sankeyFlow'],
97
+ ['tree', getLocaleText('FWC.a5cc1787581594418'), 'tree', 'treeHierarchy'],
98
+ ['gantt', getLocaleText('FWC.32101787581477715'), 'gantt', 'ganttTasks'],
99
+ ['candlestick', getLocaleText('FWC.040e1787581114686'), 'candlestick', 'candlestickSeries'],
100
+ ['kline', getLocaleText('FWC.d56e1787580427981'), 'candlestick', 'candlestickSeries'],
101
+ ['boxplot', getLocaleText('FWC.5adf1787581477753'), 'boxplot', 'boxplotSeries'],
102
+ ['area', getLocaleText('FWC.9b681787581477790'), 'area', 'singleSeries'],
102
103
  ['stackedBar', '堆叠柱状图', 'stackedBar', 'multiSeries'],
103
- ['pareto', '帕累托图', 'pareto', 'paretoSeries'],
104
- ['drilldownTree', '下钻树图', 'drilldownTree', 'treeHierarchy'],
104
+ ['pareto', getLocaleText('FWC.c7241787581115211'), 'pareto', 'paretoSeries'],
105
+ ['drilldownTree', getLocaleText('FWC.20731787581115735'), 'drilldownTree', 'treeHierarchy'],
105
106
  ['network', '网络关系图', 'network', 'networkGraph'],
106
107
  ] as const;
107
108
 
108
109
  const tableEntries = [
109
- ['list', '清单表'],
110
+ ['list', getLocaleText('FWC.7cb21787581477829')],
110
111
  ] as const;
111
112
 
112
113
  const lifecycleOperations = [
@@ -159,7 +160,7 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
159
160
  category: 'card.metric_cards',
160
161
  type,
161
162
  title,
162
- description: `${title},展示核心指标和趋势变化。`,
163
+ description: getLocaleText('FWC.73631787579106116', {p0: title}),
163
164
  blockType: 'display',
164
165
  subType: 'metric',
165
166
  rendererKey: 'metricStrip',
@@ -172,7 +173,7 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
172
173
  category: 'card.chart_cards',
173
174
  type,
174
175
  title,
175
- description: `${title},用于企业经营数据可视化。`,
176
+ description: getLocaleText('FWC.59fe1787579106128', {p0: title}),
176
177
  blockType: 'display',
177
178
  subType: 'chart',
178
179
  rendererKey,
@@ -187,7 +188,7 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
187
188
  category: 'card.table_cards',
188
189
  type,
189
190
  title,
190
- description: `${title},按表头、行和备注展示业务数据。`,
191
+ description: getLocaleText('FWC.e0541787578636739', {p0: title}),
191
192
  blockType: 'display',
192
193
  subType: 'table',
193
194
  rendererKey: 'dataTable',
@@ -196,19 +197,19 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
196
197
  handlerClassName: `${upperFirst(type)}TableCardAbility`,
197
198
  })),
198
199
  ...[
199
- ['insight', '洞察卡', 'insightNarrative', 'insightNarrative'],
200
+ ['insight', getLocaleText('FWC.07341787581477847'), 'insightNarrative', 'insightNarrative'],
200
201
  ['reportSummary', '报告摘要卡', 'reportSummary', 'reportSummary'],
201
202
  ['rootCause', '根因分析卡', 'insightNarrative', 'insightNarrative'],
202
203
  ['riskInterpretation', '风险解读卡', 'insightNarrative', 'insightNarrative'],
203
204
  ['businessSuggestion', '经营建议卡', 'insightNarrative', 'insightNarrative'],
204
- ['weeklyReport', '周报卡', 'reportSummary', 'reportSummary'],
205
- ['retrospective', '复盘卡', 'insightNarrative', 'insightNarrative'],
205
+ ['weeklyReport', getLocaleText('FWC.ecd31787581477865'), 'reportSummary', 'reportSummary'],
206
+ ['retrospective', getLocaleText('FWC.38fa1787581477884'), 'insightNarrative', 'insightNarrative'],
206
207
  ].map(([type, title, rendererKey, dataShape]) => entry({
207
208
  capabilityId: `card.analysis.${type}`,
208
209
  category: 'card.analysis_report_cards',
209
210
  type,
210
211
  title,
211
- description: `${title},沉淀判断、解释、风险和建议。`,
212
+ description: getLocaleText('FWC.cb791787578905420', {p0: title}),
212
213
  blockType: 'display',
213
214
  subType: 'insight',
214
215
  rendererKey,
@@ -220,8 +221,8 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
220
221
  capabilityId: `card.dashboard.${type}`,
221
222
  category: 'card.dashboard_cards',
222
223
  type,
223
- title: type === 'multiPanel' ? '大屏卡/多图看板' : `${type} 驾驶舱`,
224
- description: '用一张大屏卡承载多个关键图表面板。',
224
+ title: type === 'multiPanel' ? getLocaleText('FWC.532d1787579908360') : getLocaleText('FWC.51bf1787579408154', {p0: type}),
225
+ description: getLocaleText('FWC.3eac1787579182173'),
225
226
  blockType: 'display',
226
227
  subType: 'customCanvas',
227
228
  rendererKey: 'dashboardGrid',
@@ -230,19 +231,19 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
230
231
  handlerClassName: `${upperFirst(type)}DashboardCardAbility`,
231
232
  })),
232
233
  ...[
233
- ['weather', '天气卡', 'weatherCard', 'weatherCurrent'],
234
- ['calendar', '日历卡', 'calendarCard', 'calendarCard'],
234
+ ['weather', getLocaleText('FWC.19cb1787581477902'), 'weatherCard', 'weatherCurrent'],
235
+ ['calendar', getLocaleText('FWC.5a201787581477921'), 'calendarCard', 'calendarCard'],
235
236
  ['quickLinks', '快捷入口卡', 'customCanvas', 'customCanvas'],
236
- ['announcement', '公告卡', 'customCanvas', 'customCanvas'],
237
- ['search', '搜索卡', 'customCanvas', 'customCanvas'],
238
- ['reminder', '提醒卡', 'customCanvas', 'customCanvas'],
239
- ['favorites', '收藏卡', 'customCanvas', 'customCanvas'],
237
+ ['announcement', getLocaleText('FWC.e1bf1787581477939'), 'customCanvas', 'customCanvas'],
238
+ ['search', getLocaleText('FWC.6dad1787581477958'), 'customCanvas', 'customCanvas'],
239
+ ['reminder', getLocaleText('FWC.b0021787581477977'), 'customCanvas', 'customCanvas'],
240
+ ['favorites', getLocaleText('FWC.b0741787581477997'), 'customCanvas', 'customCanvas'],
240
241
  ].map(([type, title, rendererKey, dataShape]) => entry({
241
242
  capabilityId: `card.utility.${type}`,
242
243
  category: 'card.utility_cards',
243
244
  type,
244
245
  title,
245
- description: `${title},提供轻量工作台能力。`,
246
+ description: getLocaleText('FWC.997f1787579145537', {p0: title}),
246
247
  blockType: 'display',
247
248
  subType: type === 'weather' ? 'weather' : type === 'calendar' ? 'calendar' : 'customCanvas',
248
249
  rendererKey,
@@ -254,8 +255,8 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
254
255
  capabilityId: 'card.embedded.iframe',
255
256
  category: 'card.embedded_form_cards',
256
257
  type: 'iframe',
257
- title: '内嵌表单/iframe 页面卡',
258
- description: '通过白名单 URL 嵌入页面。',
258
+ title: getLocaleText('FWC.09bc1787579252430'),
259
+ description: getLocaleText('FWC.18921787579253480'),
259
260
  blockType: 'display',
260
261
  subType: 'embed',
261
262
  rendererKey: 'embeddedFrame',
@@ -267,8 +268,8 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
267
268
  capabilityId: 'card.embedded.iframePage',
268
269
  category: 'card.embedded_form_cards',
269
270
  type: 'iframePage',
270
- title: '内嵌页面卡别名',
271
- description: 'card.embedded.iframe 的历史别名。',
271
+ title: getLocaleText('FWC.9c9e1787580027808'),
272
+ description: getLocaleText('FWC.4c9a1787578289671'),
272
273
  blockType: 'display',
273
274
  subType: 'embed',
274
275
  rendererKey: 'embeddedFrame',
@@ -281,8 +282,8 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
281
282
  capabilityId: 'card.fde.customComponent',
282
283
  category: 'card.fde_custom_cards',
283
284
  type: 'customComponent',
284
- title: 'FDE 定制组件卡',
285
- description: '挂载已注册的 FDE 组件。',
285
+ title: getLocaleText('FWC.1a131787579735969'),
286
+ description: getLocaleText('FWC.36ab1787579293849'),
286
287
  blockType: 'display',
287
288
  subType: 'fdeCustom',
288
289
  rendererKey: 'fdeCustomComponent',
@@ -294,8 +295,8 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
294
295
  capabilityId: 'card.fde.templateWeather',
295
296
  category: 'card.fde_custom_cards',
296
297
  type: 'templateWeather',
297
- title: '天气组件',
298
- description: '@byteluck-fe/workbench-template 提供的天气组件,按城市展示实时天气。',
298
+ title: getLocaleText('FWC.82b11787581116259'),
299
+ description: getLocaleText('FWC.28f61787577932241'),
299
300
  blockType: 'display',
300
301
  subType: 'fdeCustom',
301
302
  rendererKey: 'fdeCustomComponent',
@@ -309,7 +310,7 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
309
310
  category: 'card.custom_canvas_cards',
310
311
  type: 'blankCanvas',
311
312
  title: '空白画布卡',
312
- description: '自定义空白内容容器。',
313
+ description: getLocaleText('FWC.aeb11787579598995'),
313
314
  blockType: 'display',
314
315
  subType: 'customCanvas',
315
316
  rendererKey: 'customCanvas',
@@ -322,7 +323,7 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
322
323
  category: 'card.dashboard_cards',
323
324
  type: 'nestedContainer',
324
325
  title: '嵌套容器卡',
325
- description: '可承载其它工作台卡片的拖拽容器,子卡保留独立问数能力。',
326
+ description: getLocaleText('FWC.d5c71787578289681'),
326
327
  blockType: 'display',
327
328
  subType: 'customCanvas',
328
329
  rendererKey: 'customCanvas',
@@ -347,16 +348,16 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
347
348
  ['knowledge', '知识图谱卡'],
348
349
  ['ontology', '本体图谱卡'],
349
350
  ['relationship', '关系网络卡'],
350
- ['dataLineage', '数据血缘卡'],
351
- ['impactChain', '影响链路卡'],
352
- ['metricLineage', '指标血缘卡'],
353
- ['permissionRelation', '权限关系图卡'],
351
+ ['dataLineage', getLocaleText('FWC.2aa91787580629241')],
352
+ ['impactChain', getLocaleText('FWC.55d41787580629748')],
353
+ ['metricLineage', getLocaleText('FWC.7d7b1787580630237')],
354
+ ['permissionRelation', getLocaleText('FWC.fc5d1787580428611')],
354
355
  ].map(([type, title]) => entry({
355
356
  capabilityId: `card.graph.${type}`,
356
357
  category: 'card.graph_cards',
357
358
  type,
358
359
  title,
359
- description: '展示节点关系和连接强度。',
360
+ description: getLocaleText('FWC.0d551787579408164'),
360
361
  blockType: 'display',
361
362
  subType: 'chart',
362
363
  rendererKey: 'network',
@@ -365,17 +366,17 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
365
366
  handlerClassName: `${upperFirst(type)}GraphCardAbility`,
366
367
  })),
367
368
  ...[
368
- ['earth3d', '3D地球卡', 'geoGlobe', 'geoGlobe', 'large'],
369
- ['siteDistribution', '地理网点分布卡', 'map', 'mapRegions', 'medium'],
370
- ['regionalHeat', '区域热力卡', 'map', 'mapRegions', 'medium'],
371
- ['migrationFlow', '迁徙飞线卡', 'network', 'networkGraph', 'medium'],
372
- ['routeTrack', '路线轨迹卡', 'network', 'networkGraph', 'medium'],
369
+ ['earth3d', getLocaleText('FWC.74ab1787580630763'), 'geoGlobe', 'geoGlobe', 'large'],
370
+ ['siteDistribution', getLocaleText('FWC.a8951787580028331'), 'map', 'mapRegions', 'medium'],
371
+ ['regionalHeat', getLocaleText('FWC.f5251787580631286'), 'map', 'mapRegions', 'medium'],
372
+ ['migrationFlow', getLocaleText('FWC.a61e1787580631810'), 'network', 'networkGraph', 'medium'],
373
+ ['routeTrack', getLocaleText('FWC.29c31787580632333'), 'network', 'networkGraph', 'medium'],
373
374
  ].map(([type, title, rendererKey, dataShape, defaultSize]) => entry({
374
375
  capabilityId: `card.geo.${type}`,
375
376
  category: 'card.geo_cards',
376
377
  type,
377
378
  title,
378
- description: '展示区域分布和地理流向。',
379
+ description: getLocaleText('FWC.3aeb1787579408173'),
379
380
  blockType: 'display',
380
381
  subType: 'chart',
381
382
  rendererKey,
@@ -384,17 +385,17 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
384
385
  handlerClassName: `${upperFirst(type)}GeoCardAbility`,
385
386
  })),
386
387
  ...[
387
- ['directory', '企业通讯录卡', 'dataTable', 'rows'],
388
- ['orgChart', '组织架构卡', 'tree', 'treeHierarchy'],
389
- ['personProfile', '人员画像卡', 'customCanvas', 'customCanvas'],
390
- ['teamDistribution', '团队分布卡', 'bar', 'multiSeries'],
391
- ['permissionRelation', '权限关系卡', 'network', 'networkGraph'],
388
+ ['directory', getLocaleText('FWC.513e1787580429145'), 'dataTable', 'rows'],
389
+ ['orgChart', getLocaleText('FWC.45c31787580632860'), 'tree', 'treeHierarchy'],
390
+ ['personProfile', getLocaleText('FWC.200e1787580632986'), 'customCanvas', 'customCanvas'],
391
+ ['teamDistribution', getLocaleText('FWC.8ddb1787580633382'), 'bar', 'multiSeries'],
392
+ ['permissionRelation', getLocaleText('FWC.9d811787580633907'), 'network', 'networkGraph'],
392
393
  ].map(([type, title, rendererKey, dataShape]) => entry({
393
394
  capabilityId: `card.identity.${type}`,
394
395
  category: 'card.identity_cards',
395
396
  type,
396
397
  title,
397
- description: '展示业务对象身份摘要。',
398
+ description: getLocaleText('FWC.5b391787579526114'),
398
399
  blockType: 'display',
399
400
  subType: rendererKey === 'dataTable' ? 'table' : rendererKey === 'tree' || rendererKey === 'bar' || rendererKey === 'network' ? 'chart' : 'customCanvas',
400
401
  rendererKey,
@@ -403,19 +404,19 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
403
404
  handlerClassName: `${upperFirst(type)}IdentityCardAbility`,
404
405
  })),
405
406
  ...[
406
- ['todoList', '待办清单卡', 'taskSummary', 'taskSummary'],
407
- ['approvalList', '审批列表卡', 'dataTable', 'rows'],
408
- ['processStatus', '流程状态卡', 'gauge', 'gaugeMetric'],
409
- ['approvalChain', '审批链卡', 'tree', 'treeHierarchy'],
410
- ['sla', '流程 SLA 卡', 'metricStrip', 'metricSummary'],
411
- ['taskTimeline', '任务时间线卡', 'gantt', 'ganttTasks'],
412
- ['bottleneck', '流程瓶颈卡', 'bar', 'multiSeries'],
407
+ ['todoList', getLocaleText('FWC.49751787580633962'), 'taskSummary', 'taskSummary'],
408
+ ['approvalList', getLocaleText('FWC.5b2a1787580634431'), 'dataTable', 'rows'],
409
+ ['processStatus', getLocaleText('FWC.c94d1787580634660'), 'gauge', 'gaugeMetric'],
410
+ ['approvalChain', getLocaleText('FWC.c8451787581116784'), 'tree', 'treeHierarchy'],
411
+ ['sla', getLocaleText('FWC.f3e11787579908841'), 'metricStrip', 'metricSummary'],
412
+ ['taskTimeline', getLocaleText('FWC.ee6c1787580429606'), 'gantt', 'ganttTasks'],
413
+ ['bottleneck', getLocaleText('FWC.e4b21787580635054'), 'bar', 'multiSeries'],
413
414
  ].map(([type, title, rendererKey, dataShape]) => entry({
414
415
  capabilityId: `card.workflow.${type}`,
415
416
  category: 'card.workflow_cards',
416
417
  type,
417
418
  title,
418
- description: '展示流程、任务、时间线或状态板。',
419
+ description: getLocaleText('FWC.0f1c1787579203151'),
419
420
  blockType: 'workflow',
420
421
  subType: type,
421
422
  rendererKey,
@@ -427,8 +428,8 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
427
428
  capabilityId: `card.entity.${type}`,
428
429
  category: 'card.entity_cards',
429
430
  type,
430
- title: `${type} 详情卡`,
431
- description: '业务对象详情卡。',
431
+ title: getLocaleText('FWC.80071787579408184', {p0: type}),
432
+ description: getLocaleText('FWC.fe0a1787579909341'),
432
433
  blockType: 'display',
433
434
  subType: 'customCanvas',
434
435
  rendererKey: 'customCanvas',
@@ -440,8 +441,8 @@ export const CARD_REGISTRY: CardRegistryEntry[] = [
440
441
  capabilityId: `card.lifecycle.${operation}`,
441
442
  category: 'card.lifecycle_mutation',
442
443
  type: operation,
443
- title: `${operation} 改卡能力`,
444
- description: '卡片生命周期改卡能力。',
444
+ title: getLocaleText('FWC.bd551787579341036', {p0: operation}),
445
+ description: getLocaleText('FWC.00201787579526711'),
445
446
  blockType: 'display',
446
447
  subType: 'customCanvas',
447
448
  rendererKey: 'customCanvas',
@@ -1,3 +1,4 @@
1
+ import { getLocaleText } from '@byteluck-fe/locale-message'
1
2
  /**
2
3
  * @fileoverview 图生组合卡片模式库 - 公开复合卡片的布局、数据与问数契约。
3
4
  * @author seadon
@@ -64,8 +65,8 @@ const COMMON_QUERY_CONTRACT: CompositeCardQueryContract = {
64
65
  'nestedBlocks[].dataBinding.refreshApi',
65
66
  'nestedBlocks[].dataBinding.queryIntent',
66
67
  ],
67
- retryEntry: '宿主识别 business_input / error 后,在待补业务口径清单中执行“补口径并问数”。',
68
- readyBoundary: '只有宿主通过真实 dataBinding refreshApi/query 返回数据并完成 setData 合并后,才允许进入 ready/refreshed。',
68
+ retryEntry: getLocaleText('FWC.4c1b1787577923500'),
69
+ readyBoundary: getLocaleText('FWC.9aa21787577872466'),
69
70
  };
70
71
 
71
72
  /**
@@ -85,9 +86,9 @@ export const WORKBENCH_COMPOSITE_CARD_PATTERNS: CompositeCardPattern[] = [
85
86
  compositePattern({
86
87
  id: 'asset',
87
88
  capabilityId: 'card.composite.asset',
88
- title: '资产与成本组合卡片',
89
- scene: 'CIO / IT 资产、成本、License、预算执行看板。',
90
- description: '用于承载资产台账、成本分析、资产异常和成本优化等多区域信息。',
89
+ title: getLocaleText('FWC.41b61787579736885'),
90
+ scene: getLocaleText('FWC.eeac1787578131089'),
91
+ description: getLocaleText('FWC.90381787578132001'),
91
92
  rendererKey: 'customCanvas',
92
93
  dataShape: 'customCanvas',
93
94
  defaultSize: 'large',
@@ -95,15 +96,15 @@ export const WORKBENCH_COMPOSITE_CARD_PATTERNS: CompositeCardPattern[] = [
95
96
  requiredShape: 'customCanvas',
96
97
  requiredFields: [...COMMON_DATA_FIELDS],
97
98
  nestedBlockKinds: ['metric', 'donut', 'simpleList'],
98
- notes: ['nestedBlocks 保留每个子卡的 dataBinding 状态。', '成本/资产子区应填满父卡高度,避免底部大块空白。'],
99
+ notes: [getLocaleText('FWC.28b91787578016259'), getLocaleText('FWC.557e1787578636750')],
99
100
  },
100
101
  }),
101
102
  compositePattern({
102
103
  id: 'project',
103
104
  capabilityId: 'card.composite.project',
104
- title: '项目与效能组合卡片',
105
- scene: '数字化项目、研发效能、待办审批、快捷入口看板。',
106
- description: '用于还原重点项目进度、个人待办、研发运维效能和快捷入口的组合区域。',
105
+ title: getLocaleText('FWC.d6d41787579737409'),
106
+ scene: getLocaleText('FWC.dc791787578905434'),
107
+ description: getLocaleText('FWC.c4c71787578056077'),
107
108
  rendererKey: 'customCanvas',
108
109
  dataShape: 'customCanvas',
109
110
  defaultSize: 'large',
@@ -111,15 +112,15 @@ export const WORKBENCH_COMPOSITE_CARD_PATTERNS: CompositeCardPattern[] = [
111
112
  requiredShape: 'customCanvas',
112
113
  requiredFields: [...COMMON_DATA_FIELDS],
113
114
  nestedBlockKinds: ['progressList', 'todoGrid', 'quickLinks', 'simpleList'],
114
- notes: ['优先使用 stack/grid 子布局,不把密集项目面板压成绝对定位小条。', '短面板内按钮和待办入口保持可点击。'],
115
+ notes: [getLocaleText('FWC.d25c1787578007217'), getLocaleText('FWC.d8381787579183349')],
115
116
  },
116
117
  }),
117
118
  compositePattern({
118
119
  id: 'ops',
119
120
  capabilityId: 'card.composite.ops',
120
- title: '运维稳定组合卡片',
121
- scene: '基础设施、服务监控、资源负载、故障告警看板。',
122
- description: '用于还原服务状态、资源条、近七日趋势和故障告警中心。',
121
+ title: getLocaleText('FWC.3f8a1787579910024'),
122
+ scene: getLocaleText('FWC.34711787579034097'),
123
+ description: getLocaleText('FWC.5e671787578345765'),
123
124
  rendererKey: 'customCanvas',
124
125
  dataShape: 'customCanvas',
125
126
  defaultSize: 'large',
@@ -127,15 +128,15 @@ export const WORKBENCH_COMPOSITE_CARD_PATTERNS: CompositeCardPattern[] = [
127
128
  requiredShape: 'customCanvas',
128
129
  requiredFields: [...COMMON_DATA_FIELDS],
129
130
  nestedBlockKinds: ['statusList', 'resourceBars', 'incidentList', 'chart'],
130
- notes: ['资源条按父卡可用高度伸展。', '故障/告警列表用轻量状态行,避免遮挡其他区域。'],
131
+ notes: [getLocaleText('FWC.27a41787579342085'), getLocaleText('FWC.3b701787578905449')],
131
132
  },
132
133
  }),
133
134
  compositePattern({
134
135
  id: 'security',
135
136
  capabilityId: 'card.composite.security',
136
- title: '安全合规组合卡片',
137
- scene: '安全健康、账号权限、合规审计、风险项看板。',
138
- description: '用于还原安全评分、风险列表、账号权限和审计合规区域。',
137
+ title: getLocaleText('FWC.a8051787579910892'),
138
+ scene: getLocaleText('FWC.282b1787579106141'),
139
+ description: getLocaleText('FWC.6e001787578345773'),
139
140
  rendererKey: 'customCanvas',
140
141
  dataShape: 'customCanvas',
141
142
  defaultSize: 'large',
@@ -143,15 +144,15 @@ export const WORKBENCH_COMPOSITE_CARD_PATTERNS: CompositeCardPattern[] = [
143
144
  requiredShape: 'customCanvas',
144
145
  requiredFields: [...COMMON_DATA_FIELDS],
145
146
  nestedBlockKinds: ['securityScore', 'simpleList'],
146
- notes: ['安全评分可以是视觉预览,但 dataBinding 未成功前不能标记为 ready。', '风险项失败时保留可补口径状态。'],
147
+ notes: [getLocaleText('FWC.05131787577972713'), getLocaleText('FWC.5b2e1787579254527')],
147
148
  },
148
149
  }),
149
150
  compositePattern({
150
151
  id: 'bidCollaboration',
151
152
  capabilityId: 'card.composite.bidCollaboration',
152
- title: '标案协同角色工作台组合卡',
153
- scene: '销售、生产、采购、物流、仓储、财务等角色围绕目标标案协同判断的截图工作台。',
154
- description: '用于还原标案目标信息、供产采储运财关键表格、风险确认和角色结论建议等多区域组合卡。',
153
+ title: getLocaleText('FWC.8eef1787579408196'),
154
+ scene: getLocaleText('FWC.23801787578009313'),
155
+ description: getLocaleText('FWC.75ac1787577986806'),
155
156
  rendererKey: 'customCanvas',
156
157
  dataShape: 'customCanvas',
157
158
  defaultSize: 'large',
@@ -159,15 +160,15 @@ export const WORKBENCH_COMPOSITE_CARD_PATTERNS: CompositeCardPattern[] = [
159
160
  requiredShape: 'customCanvas',
160
161
  requiredFields: [...COMMON_DATA_FIELDS],
161
162
  nestedBlockKinds: ['metric', 'table', 'simpleList', 'summary'],
162
- notes: ['父 customCanvas 保留源图比例和 nestedBlocks 层级,避免把角色工作台拆成大量顶层卡。', '截图/OCR 行只作为视觉预览;子卡真实问数失败时继续保留 business_input/error 补口径入口。'],
163
+ notes: [getLocaleText('FWC.77911787577901535'), getLocaleText('FWC.cdbb1787577898681')],
163
164
  },
164
165
  }),
165
166
  compositePattern({
166
167
  id: 'threePanelAnalysis',
167
168
  capabilityId: 'card.composite.threePanelAnalysis',
168
- title: '三卡嵌套分析布局',
169
- scene: '用户问数指定左柱状图、右上折线图、右下指标卡的三卡嵌套分析布局。',
170
- description: '用于一张 customCanvas 父卡承载三张可独立问数和拖拽的子卡,左侧柱状图占满高度,右侧上下分别为折线图和指标卡。',
169
+ title: getLocaleText('FWC.a4321787579911480'),
170
+ scene: getLocaleText('FWC.359d1787578069609'),
171
+ description: getLocaleText('FWC.a0831787577880007'),
171
172
  rendererKey: 'customCanvas',
172
173
  dataShape: 'customCanvas',
173
174
  defaultSize: 'large',
@@ -175,15 +176,15 @@ export const WORKBENCH_COMPOSITE_CARD_PATTERNS: CompositeCardPattern[] = [
175
176
  requiredShape: 'customCanvas',
176
177
  requiredFields: [...COMMON_DATA_FIELDS],
177
178
  nestedBlockKinds: ['bar', 'line', 'metric'],
178
- notes: ['父卡必须使用 grid nestedLayoutMode。', '三张子卡各自保留 dataBinding 与 business_input 补口径入口,真实 query/setData 成功前不得标记 ready。'],
179
+ notes: [getLocaleText('FWC.e5161787578162885'), getLocaleText('FWC.72601787577874564')],
179
180
  },
180
181
  }),
181
182
  compositePattern({
182
183
  id: 'businessMetricMatrix',
183
184
  capabilityId: 'card.composite.businessMetricMatrix',
184
- title: '业务指标矩阵组合卡片',
185
- scene: '营销、经营、组织等混合 KPI + 趋势 + 列表的截图面板。',
186
- description: '用于短面板里同时承载多个 KPI、趋势缩略图和业务动态列表。',
185
+ title: getLocaleText('FWC.32241787579599520'),
186
+ scene: getLocaleText('FWC.5b6a1787578093605'),
187
+ description: getLocaleText('FWC.685a1787578133573'),
187
188
  rendererKey: 'customCanvas',
188
189
  dataShape: 'customCanvas',
189
190
  defaultSize: 'large',
@@ -191,7 +192,7 @@ export const WORKBENCH_COMPOSITE_CARD_PATTERNS: CompositeCardPattern[] = [
191
192
  requiredShape: 'customCanvas',
192
193
  requiredFields: [...COMMON_DATA_FIELDS],
193
194
  nestedBlockKinds: ['metric', 'chart', 'list'],
194
- notes: ['KPI tile 使用一行紧凑格,数字不撑高父行。', '图表缩略预览只作为视觉密度,真实数值以 query/setData 为准。'],
195
+ notes: [getLocaleText('FWC.f4d91787578562066'), getLocaleText('FWC.f2691787578010886')],
195
196
  },
196
197
  }),
197
198
  ];