@fses/workbench-app 0.2.16 → 0.2.18
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.
- package/WORKBENCH-CLOSURE.json +18 -12
- package/dist/Workspace-JvnSC-w9.js +23186 -0
- package/dist/canvas/api/index.js +1 -1
- package/dist/{canvasFacade-B2EHgdqA.js → canvasFacade-B8jYm_aO.js} +748 -748
- package/dist/cardFactory-DmEBcCf4.js +1460 -0
- package/dist/extensions/index.js +1 -1
- package/dist/fses-workbench-app.js +5 -5
- package/dist/{index-CMM-5ObU.js → index-D-WW3bXH.js} +350 -346
- package/dist/internal/personal-workbench/components/workbench/WorkbenchStudio.vue.d.ts +3 -2
- package/dist/internal/personal-workbench/fde-skill-cards/runtime/fdeSkillProtocolChartDisplayData.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/assistantPersonaProfiles.d.ts +6 -6
- package/dist/internal/personal-workbench/lib/cardStyleConfig.d.ts +26 -26
- package/dist/internal/personal-workbench/lib/echartsOptionEditorBridge.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/historyCardBindingRestore.fixture.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/runtimePrimitiveRegistry.d.ts +1 -1
- package/dist/internal/personal-workbench/lib/vueRuntimeAdapters.d.ts +18 -6
- package/dist/internal/personal-workbench/lib/workbenchCanvasBusinessGapChecklist.d.ts +1 -1
- package/dist/internal/personal-workbench/lib/workbenchCardRecommendationFallback.d.ts +1 -1
- package/dist/internal/personal-workbench/lib/workbenchCardRecommendationReturnItemUpsert.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/workbenchDataBindingBadge.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/workbenchImageComposeEntry.d.ts +1 -1
- package/dist/internal/personal-workbench/lib/workbenchLayout.d.ts +0 -5
- package/dist/runtime/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/{useWorkbenchRuntime-DLf_FgC7.js → useWorkbenchRuntime-D_AtkXIX.js} +7938 -7900
- package/dist/version.d.ts +1 -1
- package/dist/{workbenchCustomComponentRegistry-Bt94Lgko.js → workbenchCustomComponentRegistry-CWUPjCnJ.js} +74 -74
- package/node_modules/@byteluck-fe/locale-message/README.md +2 -0
- package/node_modules/@byteluck-fe/locale-message/dist/index.d.ts +37 -0
- package/node_modules/@byteluck-fe/locale-message/dist/locale-message.js +55 -0
- package/node_modules/@byteluck-fe/locale-message/package.json +37 -0
- package/node_modules/@fses/ai-chat/dist/components/ContextUsageRing.vue.d.ts +5 -0
- package/node_modules/@fses/ai-chat/dist/components/FsesAiChat.vue.d.ts +14 -1
- package/node_modules/@fses/ai-chat/dist/composables/types.d.ts +9 -0
- package/node_modules/@fses/ai-chat/dist/fses-ai-chat.js +5832 -5670
- package/node_modules/@fses/ai-chat/dist/fses-ai-chat.umd.cjs +16 -18
- package/node_modules/@fses/ai-chat/dist/index.d.ts +1 -1
- package/node_modules/@fses/ai-chat/dist/style.css +1 -1
- package/node_modules/@fses/ai-chat/dist/utils/attachment-upload.d.ts +0 -5
- package/node_modules/@fses/ai-chat/package.json +6 -5
- package/node_modules/@fses/workbench-card/dist/fses-workbench-card-renderers.js +10144 -9914
- package/node_modules/@fses/workbench-card/dist/fses-workbench-card.js +1517 -1503
- package/node_modules/@fses/workbench-card/dist/fses-workbench-card.umd.cjs +1 -1
- package/node_modules/@fses/workbench-card/dist/renderers/chart/chartRendererRegistry.d.ts +97 -97
- package/node_modules/@fses/workbench-card/dist/renderers/style.css +1 -1
- package/node_modules/@fses/workbench-card/package.json +4 -1
- package/node_modules/@fses/workbench-card/src/registry/cardRegistry.ts +99 -98
- package/node_modules/@fses/workbench-card/src/registry/compositeCardPatterns.ts +31 -30
- package/node_modules/@fses/workbench-card/src/registry/echartsTemplateCategories.ts +24 -23
- package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.js +765 -764
- package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.ts +765 -764
- package/node_modules/@fses/workbench-card/src/renderers/WorkbenchBlockRenderer.vue +143 -129
- package/node_modules/@fses/workbench-card/src/renderers/chart/ChartRegistry.vue +4 -3
- package/node_modules/@fses/workbench-card/src/renderers/chart/EChartsProtocolRenderer.vue +2 -1
- package/node_modules/@fses/workbench-card/src/renderers/chart/chartRendererRegistry.ts +99 -98
- package/node_modules/@fses/workbench-card/src/renderers/chart/useEchart.ts +30 -29
- package/node_modules/@fses/workbench-card/src/renderers/native/nativeBindings.ts +11 -10
- package/node_modules/@fses/workbench-card/src/renderers/nested/nestedBlockBindings.ts +102 -101
- package/node_modules/@fses/workbench-card/src/renderers/reference-composite/referenceCompositeBindings.ts +364 -363
- package/node_modules/@fses/workbench-card/src/renderers/reference-composite/referenceRiskAndStrategyBindings.ts +90 -89
- package/node_modules/@fses/workbench-card/src/renderers/useWorkbenchBlockRendererBindings.ts +33 -32
- package/package.json +4 -3
- package/dist/Workspace-CfKvji6S.js +0 -22896
- 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 引用复合预览绑定 - 提供截图复合卡片的分类、布局和高密度数据整理 helper。
|
|
3
4
|
* @author seadon
|
|
@@ -398,31 +399,31 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
398
399
|
*/
|
|
399
400
|
function referenceCompositeHeaderChip(kind: ReferenceCompositeKind): string {
|
|
400
401
|
const chipMap: Partial<Record<Exclude<ReferenceCompositeKind, ''>, string>> = {
|
|
401
|
-
ops: '
|
|
402
|
-
security: '
|
|
403
|
-
asset: '
|
|
404
|
-
project: '
|
|
405
|
-
riskSummary: '
|
|
406
|
-
healthRadar: '
|
|
407
|
-
deviation: '
|
|
408
|
-
financeRisk: '
|
|
409
|
-
expenseRisk: '
|
|
410
|
-
deviationInsight: '
|
|
411
|
-
organizationRisk: '
|
|
412
|
-
investmentRisk: '
|
|
413
|
-
executiveTodo: '
|
|
414
|
-
shortcutDrill: '
|
|
415
|
-
quickWorkbench: '
|
|
416
|
-
strategyKpi: '
|
|
417
|
-
operationHealth: '
|
|
418
|
-
operationEfficiency: '
|
|
419
|
-
businessMetricMatrix: '
|
|
420
|
-
hrOrganization: '
|
|
421
|
-
hrRiskCompliance: '
|
|
422
|
-
hrPeopleCost: '
|
|
423
|
-
hrTalentTodo: '
|
|
402
|
+
ops: getLocaleText('FWC.b6771787581349898'),
|
|
403
|
+
security: getLocaleText('FWC.b6771787581349898'),
|
|
404
|
+
asset: getLocaleText('FWC.b6771787581349898'),
|
|
405
|
+
project: getLocaleText('FWC.cba51787581566178'),
|
|
406
|
+
riskSummary: getLocaleText('FWC.0b251787581351861'),
|
|
407
|
+
healthRadar: getLocaleText('FWC.9f921787579719460'),
|
|
408
|
+
deviation: getLocaleText('FWC.f97f1787579282074'),
|
|
409
|
+
financeRisk: getLocaleText('FWC.46331787579588094'),
|
|
410
|
+
expenseRisk: getLocaleText('FWC.430c1787579588244'),
|
|
411
|
+
deviationInsight: getLocaleText('FWC.b6771787581349898'),
|
|
412
|
+
organizationRisk: getLocaleText('FWC.3a811787580016345'),
|
|
413
|
+
investmentRisk: getLocaleText('FWC.88391787580582126'),
|
|
414
|
+
executiveTodo: getLocaleText('FWC.aa341787581622797'),
|
|
415
|
+
shortcutDrill: getLocaleText('FWC.cba51787581566178'),
|
|
416
|
+
quickWorkbench: getLocaleText('FWC.86fe1787581352730'),
|
|
417
|
+
strategyKpi: getLocaleText('FWC.d9071787581343803'),
|
|
418
|
+
operationHealth: getLocaleText('FWC.db5b1787581353155'),
|
|
419
|
+
operationEfficiency: getLocaleText('FWC.3d751787581353576'),
|
|
420
|
+
businessMetricMatrix: getLocaleText('FWC.213d1787581330166'),
|
|
421
|
+
hrOrganization: getLocaleText('FWC.2fd41787581349048'),
|
|
422
|
+
hrRiskCompliance: getLocaleText('FWC.3dbb1787581344853'),
|
|
423
|
+
hrPeopleCost: getLocaleText('FWC.14061787581346346'),
|
|
424
|
+
hrTalentTodo: getLocaleText('FWC.d3131787581347188'),
|
|
424
425
|
};
|
|
425
|
-
if (kind === 'bidCollaboration') return '
|
|
426
|
+
if (kind === 'bidCollaboration') return getLocaleText('FWC.32db1787581354011');
|
|
426
427
|
return kind ? chipMap[kind] ?? '' : '';
|
|
427
428
|
}
|
|
428
429
|
|
|
@@ -688,9 +689,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
688
689
|
const filledRows = customCanvasAlertLeafFilledItems(data, rows);
|
|
689
690
|
if (filledRows.length > 0) return filledRows;
|
|
690
691
|
return rows.length > 0 ? rows : [
|
|
691
|
-
{ severity: 'P1', title: '
|
|
692
|
-
{ severity: 'P1', title: '
|
|
693
|
-
{ severity: 'P2', title: '
|
|
692
|
+
{ severity: 'P1', title: getLocaleText('FWC.1bf91787579201702'), time: '08:42', tone: 'critical' },
|
|
693
|
+
{ severity: 'P1', title: getLocaleText('FWC.90b61787579169015'), time: '09:05', tone: 'critical' },
|
|
694
|
+
{ severity: 'P2', title: getLocaleText('FWC.705f1787579406820'), time: '09:18', tone: 'warning' },
|
|
694
695
|
];
|
|
695
696
|
}
|
|
696
697
|
|
|
@@ -731,9 +732,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
731
732
|
].join(' ');
|
|
732
733
|
if (/\u6210\u672c|\u8d39\u7528|\u8d85\u652f|\u9884\u7b97|cost|expense|budget/i.test(text)) {
|
|
733
734
|
return [
|
|
734
|
-
{ severity: 'P1', title: '
|
|
735
|
-
{ severity: 'P1', title: '
|
|
736
|
-
{ severity: 'P2', title: '
|
|
735
|
+
{ severity: 'P1', title: getLocaleText('FWC.dfcc1787579201594'), time: '08:42', tone: 'critical' },
|
|
736
|
+
{ severity: 'P1', title: getLocaleText('FWC.99231787581072466'), time: '09:05', tone: 'critical' },
|
|
737
|
+
{ severity: 'P2', title: getLocaleText('FWC.b5fa1787579519294'), time: '09:18', tone: 'warning' },
|
|
737
738
|
];
|
|
738
739
|
}
|
|
739
740
|
return [
|
|
@@ -788,15 +789,15 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
788
789
|
].filter(Boolean).join(' ');
|
|
789
790
|
const roleMatch = headerText.match(/\b(CIO|CEO|COO|CFO|CTO)\b/i);
|
|
790
791
|
if (roleMatch?.[1]) return roleMatch[1].toUpperCase();
|
|
791
|
-
if (/董事长|董事会/.test(headerText)) return '
|
|
792
|
-
if (/销售经理|销售/.test(headerText)) return '
|
|
793
|
-
if (/生产经理|生产/.test(headerText)) return '
|
|
794
|
-
if (/采购经理|采购/.test(headerText)) return '
|
|
795
|
-
if (/物流经理|物流/.test(headerText)) return '
|
|
796
|
-
if (/仓储经理|仓储/.test(headerText)) return '
|
|
797
|
-
if (/财务经理|财务/.test(headerText)) return '
|
|
792
|
+
if (/董事长|董事会/.test(headerText)) return getLocaleText('FWC.61361787581663117');
|
|
793
|
+
if (/销售经理|销售/.test(headerText)) return getLocaleText('FWC.6f911787581663769');
|
|
794
|
+
if (/生产经理|生产/.test(headerText)) return getLocaleText('FWC.4d641787581665333');
|
|
795
|
+
if (/采购经理|采购/.test(headerText)) return getLocaleText('FWC.e6e01787581666713');
|
|
796
|
+
if (/物流经理|物流/.test(headerText)) return getLocaleText('FWC.87991787581668073');
|
|
797
|
+
if (/仓储经理|仓储/.test(headerText)) return getLocaleText('FWC.c80a1787581669418');
|
|
798
|
+
if (/财务经理|财务/.test(headerText)) return getLocaleText('FWC.44811787581671048');
|
|
798
799
|
const chineseTitle = customCanvasHeaderTitle(block, data).trim();
|
|
799
|
-
return chineseTitle ? chineseTitle.slice(0, 1) : '
|
|
800
|
+
return chineseTitle ? chineseTitle.slice(0, 1) : getLocaleText('FWC.a8441787581672421');
|
|
800
801
|
}
|
|
801
802
|
|
|
802
803
|
/**
|
|
@@ -996,7 +997,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
996
997
|
block.title,
|
|
997
998
|
].join(' ');
|
|
998
999
|
if (/董事长|董事会|风险预警|经营偏差/.test(headerText) && !pills.some((pill) => /集团总览/.test(pill))) {
|
|
999
|
-
return ['
|
|
1000
|
+
return [getLocaleText('FWC.0b251787581351861'), ...pills].slice(0, 4);
|
|
1000
1001
|
}
|
|
1001
1002
|
return pills;
|
|
1002
1003
|
}
|
|
@@ -1593,27 +1594,27 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1593
1594
|
function referenceRiskKpiItems(data: CustomCanvasData): Array<{ label: string; value: string; detail: string; tone: 'critical' | 'warning' }> {
|
|
1594
1595
|
return [
|
|
1595
1596
|
{
|
|
1596
|
-
label: '
|
|
1597
|
+
label: getLocaleText('FWC.20e81787580583049'),
|
|
1597
1598
|
value: referenceRiskKpiValue(referenceRiskMetricValue(data, /重大经营风险|major/i, '8')),
|
|
1598
|
-
detail: '
|
|
1599
|
+
detail: getLocaleText('FWC.79591787579587935'),
|
|
1599
1600
|
tone: 'critical',
|
|
1600
1601
|
},
|
|
1601
1602
|
{
|
|
1602
|
-
label: '
|
|
1603
|
+
label: getLocaleText('FWC.f63a1787580583576'),
|
|
1603
1604
|
value: referenceRiskKpiValue(referenceRiskMetricValue(data, /预算严重偏差|budget/i, '6')),
|
|
1604
|
-
detail: '
|
|
1605
|
+
detail: getLocaleText('FWC.851f1787579902907'),
|
|
1605
1606
|
tone: 'warning',
|
|
1606
1607
|
},
|
|
1607
1608
|
{
|
|
1608
|
-
label: '
|
|
1609
|
+
label: getLocaleText('FWC.88351787581073127'),
|
|
1609
1610
|
value: referenceRiskKpiValue(referenceRiskMetricValue(data, /资金类预警|capital|fund/i, '14')),
|
|
1610
|
-
detail: '
|
|
1611
|
+
detail: getLocaleText('FWC.859d1787580016756'),
|
|
1611
1612
|
tone: 'critical',
|
|
1612
1613
|
},
|
|
1613
1614
|
{
|
|
1614
|
-
label: '
|
|
1615
|
+
label: getLocaleText('FWC.90ad1787581373201'),
|
|
1615
1616
|
value: referenceRiskKpiValue(referenceRiskMetricValue(data, /项目隐患|project/i, '5')),
|
|
1616
|
-
detail: '
|
|
1617
|
+
detail: getLocaleText('FWC.93e71787580016971'),
|
|
1617
1618
|
tone: 'warning',
|
|
1618
1619
|
},
|
|
1619
1620
|
];
|
|
@@ -1628,9 +1629,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1628
1629
|
const movement = referenceNestedBlock(data, /TODAY MOVEMENT|今日|movement/i);
|
|
1629
1630
|
if (!movement) {
|
|
1630
1631
|
return [
|
|
1631
|
-
{ label: '
|
|
1632
|
-
{ label: '
|
|
1633
|
-
{ label: '
|
|
1632
|
+
{ label: getLocaleText('FWC.9c711787579288080') },
|
|
1633
|
+
{ label: getLocaleText('FWC.bae41787579154559') },
|
|
1634
|
+
{ label: getLocaleText('FWC.a6c61787579407057') },
|
|
1634
1635
|
];
|
|
1635
1636
|
}
|
|
1636
1637
|
const elementRows = referenceRiskMovementElementItems(movement);
|
|
@@ -1640,9 +1641,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1640
1641
|
return label && !/^TODAY MOVEMENT$/i.test(label);
|
|
1641
1642
|
});
|
|
1642
1643
|
return rows.length > 0 ? rows.slice(0, 3) : [
|
|
1643
|
-
{ label: '
|
|
1644
|
-
{ label: '
|
|
1645
|
-
{ label: '
|
|
1644
|
+
{ label: getLocaleText('FWC.9c711787579288080') },
|
|
1645
|
+
{ label: getLocaleText('FWC.bae41787579154559') },
|
|
1646
|
+
{ label: getLocaleText('FWC.a6c61787579407057') },
|
|
1646
1647
|
];
|
|
1647
1648
|
}
|
|
1648
1649
|
|
|
@@ -1673,7 +1674,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1673
1674
|
const block = referenceNestedBlock(data, /服务监控|系统监控|在线/);
|
|
1674
1675
|
return block
|
|
1675
1676
|
? referenceOpsItemsFromBlock(block, 'statusList').slice(0, 5)
|
|
1676
|
-
: nestedBlockFallbackItems({ id: 'reference-ops-service', title: '
|
|
1677
|
+
: nestedBlockFallbackItems({ id: 'reference-ops-service', title: getLocaleText('FWC.17a01787580564813'), kind: 'list', slot: 'body', dataBindingStatus: 'none' }, 'statusList');
|
|
1677
1678
|
}
|
|
1678
1679
|
|
|
1679
1680
|
/**
|
|
@@ -1685,7 +1686,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1685
1686
|
const block = referenceNestedBlock(data, /资源负载|负载监控|CPU|内存|存储|带宽/) ?? referenceNestedBlock(data, /服务监控|系统监控|在线/);
|
|
1686
1687
|
return block
|
|
1687
1688
|
? referenceOpsItemsFromBlock(block, 'resourceBars').slice(0, 4)
|
|
1688
|
-
: nestedBlockFallbackItems({ id: 'reference-ops-resource', title: '
|
|
1689
|
+
: nestedBlockFallbackItems({ id: 'reference-ops-resource', title: getLocaleText('FWC.5c621787580582591'), kind: 'chart', slot: 'body', dataBindingStatus: 'none' }, 'resourceBars');
|
|
1689
1690
|
}
|
|
1690
1691
|
|
|
1691
1692
|
/**
|
|
@@ -1697,7 +1698,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1697
1698
|
const block = referenceNestedBlock(data, /故障|告警|事件|红警/);
|
|
1698
1699
|
return block
|
|
1699
1700
|
? referenceOpsItemsFromBlock(block, 'incidentList').slice(0, 3)
|
|
1700
|
-
: nestedBlockFallbackItems({ id: 'reference-ops-incidents', title: '
|
|
1701
|
+
: nestedBlockFallbackItems({ id: 'reference-ops-incidents', title: getLocaleText('FWC.fb0f1787579902375'), kind: 'list', slot: 'body', dataBindingStatus: 'none' }, 'incidentList');
|
|
1701
1702
|
}
|
|
1702
1703
|
|
|
1703
1704
|
/**
|
|
@@ -1724,13 +1725,13 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1724
1725
|
const rawItems = block ? nestedBlockRawItems(block) : [];
|
|
1725
1726
|
if (rawItems.length > 0 && !nestedBlockItemsLookTooWeak(rawItems)) return rawItems.slice(0, 7);
|
|
1726
1727
|
return [
|
|
1727
|
-
{ label: '
|
|
1728
|
-
{ label: '
|
|
1729
|
-
{ label: '
|
|
1730
|
-
{ label: '
|
|
1731
|
-
{ label: '
|
|
1732
|
-
{ label: '
|
|
1733
|
-
{ label: '
|
|
1728
|
+
{ label: getLocaleText('FWC.97f71787581625597'), value: '6', progress: 42, tone: 'neutral' },
|
|
1729
|
+
{ label: getLocaleText('FWC.d48c1787581627444'), value: '8', progress: 53, tone: 'info' },
|
|
1730
|
+
{ label: getLocaleText('FWC.626f1787581628064'), value: '5', progress: 35, tone: 'healthy' },
|
|
1731
|
+
{ label: getLocaleText('FWC.515c1787581628692'), value: '11', progress: 70, tone: 'warning' },
|
|
1732
|
+
{ label: getLocaleText('FWC.3c161787581626832'), value: '7', progress: 50, tone: 'info' },
|
|
1733
|
+
{ label: getLocaleText('FWC.6f1e1787581632165'), value: '13', progress: 88, tone: 'critical' },
|
|
1734
|
+
{ label: getLocaleText('FWC.83301787581632790'), value: '8', progress: 56, tone: 'warning' },
|
|
1734
1735
|
];
|
|
1735
1736
|
}
|
|
1736
1737
|
|
|
@@ -1788,7 +1789,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1788
1789
|
function referenceSecurityScoreBlock(data: CustomCanvasData): CustomCanvasNestedBlock {
|
|
1789
1790
|
return referenceNestedBlock(data, /安全风险|安全健康|风险总览|漏洞/) ?? {
|
|
1790
1791
|
id: 'reference-security-score',
|
|
1791
|
-
title: '
|
|
1792
|
+
title: getLocaleText('FWC.208f1787580565354'),
|
|
1792
1793
|
kind: 'chart',
|
|
1793
1794
|
slot: 'body',
|
|
1794
1795
|
dataBindingStatus: 'none',
|
|
@@ -1809,9 +1810,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1809
1810
|
return nestedBlockItems(block).slice(0, 3);
|
|
1810
1811
|
}
|
|
1811
1812
|
return [
|
|
1812
|
-
{ label: '
|
|
1813
|
-
{ label: '
|
|
1814
|
-
{ label: '
|
|
1813
|
+
{ label: getLocaleText('FWC.c8e71787580018376'), value: getLocaleText('FWC.1cc51787581570609'), tone: 'critical' },
|
|
1814
|
+
{ label: getLocaleText('FWC.58451787581072802'), value: getLocaleText('FWC.87de1787581376869'), tone: 'warning' },
|
|
1815
|
+
{ label: getLocaleText('FWC.3bf41787580588296'), value: '14:00', tone: 'warning' },
|
|
1815
1816
|
];
|
|
1816
1817
|
}
|
|
1817
1818
|
|
|
@@ -1832,9 +1833,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1832
1833
|
return (filtered.length > 0 ? filtered : items).slice(0, 3);
|
|
1833
1834
|
}
|
|
1834
1835
|
return [
|
|
1835
|
-
{ label: '
|
|
1836
|
-
{ label: '
|
|
1837
|
-
{ label: '
|
|
1836
|
+
{ label: getLocaleText('FWC.e6911787579587588'), value: '92%', tone: 'healthy' },
|
|
1837
|
+
{ label: getLocaleText('FWC.8c381787580581667'), value: getLocaleText('FWC.3f771787581619720'), tone: 'healthy' },
|
|
1838
|
+
{ label: getLocaleText('FWC.d4121787580398995'), value: '88%', tone: 'warning' },
|
|
1838
1839
|
];
|
|
1839
1840
|
}
|
|
1840
1841
|
|
|
@@ -1855,9 +1856,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1855
1856
|
return (filtered.length > 0 ? filtered : items.slice(3)).slice(0, 3);
|
|
1856
1857
|
}
|
|
1857
1858
|
return [
|
|
1858
|
-
{ label: '
|
|
1859
|
-
{ label: '
|
|
1860
|
-
{ label: '
|
|
1859
|
+
{ label: getLocaleText('FWC.71231787580397749'), value: getLocaleText('FWC.c8821787581564210'), tone: 'critical' },
|
|
1860
|
+
{ label: getLocaleText('FWC.45da1787580015337'), value: getLocaleText('FWC.2a1a1787581564820'), tone: 'critical' },
|
|
1861
|
+
{ label: getLocaleText('FWC.e79e1787580581019'), value: getLocaleText('FWC.d3161787581561078'), tone: 'healthy' },
|
|
1861
1862
|
];
|
|
1862
1863
|
}
|
|
1863
1864
|
|
|
@@ -1885,10 +1886,10 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1885
1886
|
*/
|
|
1886
1887
|
function referenceAssetLedgerItems(data: CustomCanvasData): Array<Record<string, unknown>> {
|
|
1887
1888
|
return [
|
|
1888
|
-
referenceMetricItem(data, '
|
|
1889
|
-
referenceMetricItem(data, '
|
|
1890
|
-
referenceMetricItem(data, '
|
|
1891
|
-
referenceMetricItem(data, '
|
|
1889
|
+
referenceMetricItem(data, getLocaleText('FWC.8dc41787580399481'), /终端|办公设备/, '18,426'),
|
|
1890
|
+
referenceMetricItem(data, getLocaleText('FWC.a64e1787580015958'), /服务器|机房设备/, '1,284'),
|
|
1891
|
+
referenceMetricItem(data, getLocaleText('FWC.bd0e1787579519421'), /License|商业软件/, '312'),
|
|
1892
|
+
referenceMetricItem(data, getLocaleText('FWC.63c61787580016156'), /云主机|存储资源/, '2,096'),
|
|
1892
1893
|
];
|
|
1893
1894
|
}
|
|
1894
1895
|
|
|
@@ -1899,9 +1900,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1899
1900
|
*/
|
|
1900
1901
|
function referenceAssetExceptionItems(data: CustomCanvasData): Array<Record<string, unknown>> {
|
|
1901
1902
|
return [
|
|
1902
|
-
referenceMetricItem(data, '
|
|
1903
|
-
referenceMetricItem(data, '
|
|
1904
|
-
referenceMetricItem(data, '
|
|
1903
|
+
referenceMetricItem(data, getLocaleText('FWC.b4261787580015560'), /闲置云主机|待回收/, getLocaleText('FWC.319e1787581342337'), 'warning'),
|
|
1904
|
+
referenceMetricItem(data, getLocaleText('FWC.e4481787579519020'), /即将到期/, getLocaleText('FWC.56d21787581342810'), 'critical'),
|
|
1905
|
+
referenceMetricItem(data, getLocaleText('FWC.fc5b1787580398394'), /资产盘点/, '96%', 'healthy'),
|
|
1905
1906
|
];
|
|
1906
1907
|
}
|
|
1907
1908
|
|
|
@@ -1912,9 +1913,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1912
1913
|
*/
|
|
1913
1914
|
function referenceCostItems(data: CustomCanvasData): Array<Record<string, unknown>> {
|
|
1914
1915
|
return [
|
|
1915
|
-
referenceMetricItem(data, '
|
|
1916
|
-
referenceMetricItem(data, '
|
|
1917
|
-
referenceMetricItem(data, '
|
|
1916
|
+
referenceMetricItem(data, getLocaleText('FWC.78801787580398729'), /云费用环比/, '+8.4%', 'warning'),
|
|
1917
|
+
referenceMetricItem(data, getLocaleText('FWC.188c1787579902728'), /降本空间|释放资源/, getLocaleText('FWC.8d711787581071424'), 'healthy'),
|
|
1918
|
+
referenceMetricItem(data, getLocaleText('FWC.40f41787580573717'), /预算执行偏差/, '-4.6%', 'healthy'),
|
|
1918
1919
|
];
|
|
1919
1920
|
}
|
|
1920
1921
|
|
|
@@ -1925,10 +1926,10 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1925
1926
|
*/
|
|
1926
1927
|
function referenceCostFallbackDonutItems(): Array<Record<string, unknown>> {
|
|
1927
1928
|
return [
|
|
1928
|
-
{ label: '
|
|
1929
|
-
{ label: '
|
|
1930
|
-
{ label: '
|
|
1931
|
-
{ label: '
|
|
1929
|
+
{ label: getLocaleText('FWC.7b501787581071065'), value: '42%', share: 42, normalizedShare: 42 },
|
|
1930
|
+
{ label: getLocaleText('FWC.bc261787581334498'), value: '25%', share: 25, normalizedShare: 25 },
|
|
1931
|
+
{ label: getLocaleText('FWC.5ada1787581340718'), value: '17%', share: 17, normalizedShare: 17 },
|
|
1932
|
+
{ label: getLocaleText('FWC.c5c61787581070606'), value: '16%', share: 16, normalizedShare: 16 },
|
|
1932
1933
|
];
|
|
1933
1934
|
}
|
|
1934
1935
|
|
|
@@ -1995,7 +1996,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
1995
1996
|
if (block && rawItems.length > 0 && !nestedBlockItemsLookTooWeakForVisualKind(rawItems, 'progressList')) {
|
|
1996
1997
|
return nestedBlockBarItems(block);
|
|
1997
1998
|
}
|
|
1998
|
-
return nestedBlockFallbackItems({ id: 'reference-project-list', title: '
|
|
1999
|
+
return nestedBlockFallbackItems({ id: 'reference-project-list', title: getLocaleText('FWC.41131787579719167'), kind: 'list', slot: 'body', dataBindingStatus: 'none' }, 'progressList');
|
|
1999
2000
|
}
|
|
2000
2001
|
|
|
2001
2002
|
/**
|
|
@@ -2005,10 +2006,10 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2005
2006
|
*/
|
|
2006
2007
|
function referenceTodoItems(data: CustomCanvasData): Array<Record<string, unknown>> {
|
|
2007
2008
|
return [
|
|
2008
|
-
referenceMetricItem(data, '
|
|
2009
|
-
referenceMetricItem(data, '
|
|
2010
|
-
referenceMetricItem(data, '
|
|
2011
|
-
referenceMetricItem(data, '
|
|
2009
|
+
referenceMetricItem(data, getLocaleText('FWC.676d1787580398112'), /采购审批/, '18'),
|
|
2010
|
+
referenceMetricItem(data, getLocaleText('FWC.4f641787580570515'), /上线审批/, '7'),
|
|
2011
|
+
referenceMetricItem(data, getLocaleText('FWC.63a61787580569978'), /权限变更/, '24'),
|
|
2012
|
+
referenceMetricItem(data, getLocaleText('FWC.90cc1787580571185'), /安全整改/, '5'),
|
|
2012
2013
|
];
|
|
2013
2014
|
}
|
|
2014
2015
|
|
|
@@ -2022,7 +2023,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2022
2023
|
if (block && !nestedBlockItemsLookTooWeakForVisualKind(nestedBlockRawItems(block), 'simpleList')) {
|
|
2023
2024
|
return nestedBlockItems(block).slice(0, 3);
|
|
2024
2025
|
}
|
|
2025
|
-
return nestedBlockFallbackItems({ id: 'reference-efficiency', title: '
|
|
2026
|
+
return nestedBlockFallbackItems({ id: 'reference-efficiency', title: getLocaleText('FWC.bb2c1787579903089'), kind: 'list', slot: 'footer', dataBindingStatus: 'none' }, 'simpleList');
|
|
2026
2027
|
}
|
|
2027
2028
|
|
|
2028
2029
|
/**
|
|
@@ -2048,7 +2049,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2048
2049
|
const usableItems = referenceUsableQuickLinkItems(nestedBlockItems(block));
|
|
2049
2050
|
if (usableItems.length >= 2) return usableItems.slice(0, 4);
|
|
2050
2051
|
}
|
|
2051
|
-
return nestedBlockFallbackItems({ id: 'reference-quick-links', title: '
|
|
2052
|
+
return nestedBlockFallbackItems({ id: 'reference-quick-links', title: getLocaleText('FWC.bde71787581354624'), kind: 'list', slot: 'footer', dataBindingStatus: 'none' }, 'quickLinks');
|
|
2052
2053
|
}
|
|
2053
2054
|
|
|
2054
2055
|
/**
|
|
@@ -2065,7 +2066,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2065
2066
|
return visualKind === 'metric' || visualKind === 'todoGrid' || visualKind === 'progressList' || previewKind === 'metric' || previewKind === 'summary';
|
|
2066
2067
|
})
|
|
2067
2068
|
.map((block, index) => ({
|
|
2068
|
-
label: block.title ||
|
|
2069
|
+
label: block.title || getLocaleText('FWC.c4191787579589199', {p0: index + 1}),
|
|
2069
2070
|
value: nestedBlockMetricValue(block),
|
|
2070
2071
|
detail: nestedBlockDataSummary(block),
|
|
2071
2072
|
progress: nestedBlockOptionalNumber(nestedBlockMetricValue(block)) ?? 56,
|
|
@@ -2073,10 +2074,10 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2073
2074
|
}))
|
|
2074
2075
|
.filter((item) => item.label && item.value && item.value !== '--');
|
|
2075
2076
|
return (rows.length > 0 ? rows : [
|
|
2076
|
-
{ label: '
|
|
2077
|
-
{ label: '
|
|
2078
|
-
{ label: '
|
|
2079
|
-
{ label: '
|
|
2077
|
+
{ label: getLocaleText('FWC.063e1787581375870'), value: '--', detail: getLocaleText('FWC.74c11787580018569'), tone: 'neutral' },
|
|
2078
|
+
{ label: getLocaleText('FWC.6e9c1787581071815'), value: '--', detail: getLocaleText('FWC.32671787580396053'), tone: 'warning' },
|
|
2079
|
+
{ label: getLocaleText('FWC.9d4e1787581567969'), value: '--', detail: getLocaleText('FWC.0d3d1787580400959'), tone: 'warning' },
|
|
2080
|
+
{ label: getLocaleText('FWC.30761787581377822'), value: '--', detail: getLocaleText('FWC.de501787579589380'), tone: 'neutral' },
|
|
2080
2081
|
]).slice(0, 6);
|
|
2081
2082
|
}
|
|
2082
2083
|
|
|
@@ -2097,7 +2098,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2097
2098
|
const rawItems = nestedBlockRawItems(block);
|
|
2098
2099
|
if (rawItems.length > 0 && !nestedBlockItemsLookTooWeak(rawItems)) return rawItems.slice(0, 5);
|
|
2099
2100
|
return [{
|
|
2100
|
-
label: block.title ||
|
|
2101
|
+
label: block.title || getLocaleText('FWC.27031787579588875', {p0: blockIndex + 1}),
|
|
2101
2102
|
value: nestedBlockMetricValue(block),
|
|
2102
2103
|
detail: nestedBlockDataSummary(block),
|
|
2103
2104
|
progress: 42 + (blockIndex % 4) * 12,
|
|
@@ -2228,375 +2229,375 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2228
2229
|
*/
|
|
2229
2230
|
function referenceBidProfile(data: CustomCanvasData): ReferenceBidProfile {
|
|
2230
2231
|
const commonInfo = [
|
|
2231
|
-
{ label: '
|
|
2232
|
-
{ label: '
|
|
2233
|
-
{ label: '
|
|
2234
|
-
{ label: '
|
|
2232
|
+
{ label: getLocaleText('FWC.744e1787581633398'), value: getLocaleText('FWC.aae91787580018772') },
|
|
2233
|
+
{ label: getLocaleText('FWC.5b081787581637432'), value: getLocaleText('FWC.e2761787581077415') },
|
|
2234
|
+
{ label: getLocaleText('FWC.c4991787580590390'), value: '2026-07-15' },
|
|
2235
|
+
{ label: getLocaleText('FWC.54d21787581369487'), value: getLocaleText('FWC.b1f11787581641357') },
|
|
2235
2236
|
];
|
|
2236
2237
|
const commonRiskRows = [
|
|
2237
|
-
{ label: '
|
|
2238
|
-
{ label: '
|
|
2239
|
-
{ label: '
|
|
2238
|
+
{ label: getLocaleText('FWC.19771787580584623'), value: getLocaleText('FWC.e5251787581622217'), detail: getLocaleText('FWC.d8d61787579289131'), owner: getLocaleText('FWC.36621787581079677'), tone: 'warning' },
|
|
2239
|
+
{ label: getLocaleText('FWC.56651787580591848'), value: getLocaleText('FWC.8c5a1787581571188'), detail: getLocaleText('FWC.21761787579132366'), owner: getLocaleText('FWC.79ec1787581080016'), tone: 'warning' },
|
|
2240
|
+
{ label: getLocaleText('FWC.80891787581080353'), value: getLocaleText('FWC.91881787581562073'), detail: getLocaleText('FWC.c89d1787579153336'), owner: getLocaleText('FWC.df5a1787581080702'), tone: 'info' },
|
|
2240
2241
|
];
|
|
2241
2242
|
const commonBoundary = [
|
|
2242
|
-
{ label: '
|
|
2243
|
-
{ label: '
|
|
2244
|
-
{ label: '
|
|
2245
|
-
{ label: 'setData', value: '
|
|
2243
|
+
{ label: getLocaleText('FWC.0eef1787581382089'), value: getLocaleText('FWC.2c061787581341369'), tone: 'warning' },
|
|
2244
|
+
{ label: getLocaleText('FWC.cd841787581383097'), value: getLocaleText('FWC.2b051787581383599'), tone: 'neutral' },
|
|
2245
|
+
{ label: getLocaleText('FWC.f1871787581384357'), value: getLocaleText('FWC.4d811787581571767'), tone: 'warning' },
|
|
2246
|
+
{ label: 'setData', value: getLocaleText('FWC.272c1787581572935'), tone: 'neutral' },
|
|
2246
2247
|
];
|
|
2247
2248
|
|
|
2248
2249
|
const profiles: Record<ReferenceBidRoleKey, ReferenceBidProfile> = {
|
|
2249
2250
|
sales: {
|
|
2250
2251
|
roleKey: 'sales',
|
|
2251
|
-
icon: '
|
|
2252
|
+
icon: getLocaleText('FWC.6f911787581663769'),
|
|
2252
2253
|
accent: '#145C3D',
|
|
2253
|
-
title: '
|
|
2254
|
-
subtitle: '
|
|
2255
|
-
route: '
|
|
2256
|
-
scope: '
|
|
2257
|
-
quickActions: ['
|
|
2254
|
+
title: getLocaleText('FWC.33af1787579722729'),
|
|
2255
|
+
subtitle: getLocaleText('FWC.34341787579337304'),
|
|
2256
|
+
route: getLocaleText('FWC.7f491787581364722'),
|
|
2257
|
+
scope: getLocaleText('FWC.e9231787581367044'),
|
|
2258
|
+
quickActions: [getLocaleText('FWC.0b4a1787581355495'), getLocaleText('FWC.68111787581385376'), getLocaleText('FWC.e2461787581385892'), getLocaleText('FWC.07c61787581375373'), getLocaleText('FWC.bdc11787581355061')],
|
|
2258
2259
|
kpis: [
|
|
2259
|
-
{ label: '
|
|
2260
|
-
{ label: '
|
|
2261
|
-
{ label: '
|
|
2262
|
-
{ label: '
|
|
2260
|
+
{ label: getLocaleText('FWC.1d6e1787581081045'), value: '1', detail: getLocaleText('FWC.24d01787579519567'), tone: 'info' },
|
|
2261
|
+
{ label: getLocaleText('FWC.b0641787581386429'), value: '60%', detail: getLocaleText('FWC.37191787580401200'), tone: 'neutral' },
|
|
2262
|
+
{ label: getLocaleText('FWC.57991787581373922'), value: '6000', detail: getLocaleText('FWC.aae91787580018772'), tone: 'neutral' },
|
|
2263
|
+
{ label: getLocaleText('FWC.1b121787581389427'), value: getLocaleText('FWC.c9c01787581073462'), detail: getLocaleText('FWC.44d01787579726399'), tone: 'warning' },
|
|
2263
2264
|
],
|
|
2264
2265
|
infoItems: [
|
|
2265
|
-
{ label: '
|
|
2266
|
-
{ label: '
|
|
2267
|
-
{ label: '
|
|
2268
|
-
{ label: '
|
|
2269
|
-
{ label: '
|
|
2270
|
-
{ label: '
|
|
2266
|
+
{ label: getLocaleText('FWC.a5271787581648275'), value: getLocaleText('FWC.cfc31787581076078') },
|
|
2267
|
+
{ label: getLocaleText('FWC.744e1787581633398'), value: getLocaleText('FWC.aae91787580018772') },
|
|
2268
|
+
{ label: getLocaleText('FWC.5b081787581637432'), value: getLocaleText('FWC.e2761787581077415') },
|
|
2269
|
+
{ label: getLocaleText('FWC.882b1787581390040'), value: '2026-06-15', tone: 'warning' },
|
|
2270
|
+
{ label: getLocaleText('FWC.c4991787580590390'), value: '2026-07-15', tone: 'warning' },
|
|
2271
|
+
{ label: getLocaleText('FWC.54d21787581369487'), value: getLocaleText('FWC.b1f11787581641357') },
|
|
2271
2272
|
],
|
|
2272
2273
|
sections: [
|
|
2273
2274
|
{
|
|
2274
2275
|
id: 'sales-supply',
|
|
2275
|
-
title: '
|
|
2276
|
-
subtitle: '
|
|
2276
|
+
title: getLocaleText('FWC.b1a21787580401442'),
|
|
2277
|
+
subtitle: getLocaleText('FWC.07691787579105677'),
|
|
2277
2278
|
rows: [
|
|
2278
|
-
{ label: '
|
|
2279
|
-
{ label: '
|
|
2280
|
-
{ label: '
|
|
2281
|
-
{ label: '
|
|
2282
|
-
{ label: '
|
|
2279
|
+
{ label: getLocaleText('FWC.677d1787581648913'), value: getLocaleText('FWC.88a81787581084263'), detail: getLocaleText('FWC.32e91787579033658'), tone: 'warning' },
|
|
2280
|
+
{ label: getLocaleText('FWC.7c5f1787581626214'), value: getLocaleText('FWC.5fe11787581077078'), detail: getLocaleText('FWC.d3461787579174309'), tone: 'warning' },
|
|
2281
|
+
{ label: getLocaleText('FWC.8d381787581649560'), value: getLocaleText('FWC.af0a1787581085688'), detail: getLocaleText('FWC.d6ce1787579151944'), tone: 'warning' },
|
|
2282
|
+
{ label: getLocaleText('FWC.48ad1787581623424'), value: getLocaleText('FWC.31391787581087124'), detail: getLocaleText('FWC.e9be1787579246663'), tone: 'warning' },
|
|
2283
|
+
{ label: getLocaleText('FWC.48201787581624919'), value: getLocaleText('FWC.59121787581088075'), detail: getLocaleText('FWC.19c41787578561574'), tone: 'warning' },
|
|
2283
2284
|
],
|
|
2284
2285
|
},
|
|
2285
2286
|
{
|
|
2286
2287
|
id: 'sales-actions',
|
|
2287
|
-
title: '
|
|
2288
|
-
subtitle: '
|
|
2288
|
+
title: getLocaleText('FWC.41ec1787580592730'),
|
|
2289
|
+
subtitle: getLocaleText('FWC.ea861787579169323'),
|
|
2289
2290
|
rows: [
|
|
2290
|
-
{ label: '
|
|
2291
|
-
{ label: '
|
|
2292
|
-
{ label: '
|
|
2293
|
-
{ label: '
|
|
2291
|
+
{ label: getLocaleText('FWC.f3801787579903631'), value: getLocaleText('FWC.e8ff1787581360308'), detail: getLocaleText('FWC.87ac1787579285638'), tone: 'warning' },
|
|
2292
|
+
{ label: getLocaleText('FWC.30961787579589865'), value: getLocaleText('FWC.609e1787579588561'), detail: getLocaleText('FWC.00901787579247737'), tone: 'warning' },
|
|
2293
|
+
{ label: getLocaleText('FWC.d0041787580403222'), value: getLocaleText('FWC.f4781787581362591'), detail: getLocaleText('FWC.bd541787578130998'), tone: 'info' },
|
|
2294
|
+
{ label: getLocaleText('FWC.e4e41787579726958'), value: getLocaleText('FWC.70f81787581365181'), detail: getLocaleText('FWC.3ee31787579589704'), tone: 'info' },
|
|
2294
2295
|
],
|
|
2295
2296
|
},
|
|
2296
2297
|
],
|
|
2297
2298
|
riskRows: [
|
|
2298
|
-
{ label: '
|
|
2299
|
-
{ label: '
|
|
2300
|
-
{ label: '
|
|
2301
|
-
{ label: '
|
|
2299
|
+
{ label: getLocaleText('FWC.fc5e1787580020280'), value: getLocaleText('FWC.91881787581562073'), detail: getLocaleText('FWC.f4381787579337543'), owner: getLocaleText('FWC.e8ff1787581360308'), tone: 'warning' },
|
|
2300
|
+
{ label: getLocaleText('FWC.e6c11787580402455'), value: getLocaleText('FWC.c8981787581569105'), detail: getLocaleText('FWC.0ba31787579407312'), owner: getLocaleText('FWC.a0901787580401705'), tone: 'warning' },
|
|
2301
|
+
{ label: getLocaleText('FWC.48851787580403465'), value: getLocaleText('FWC.68261787581650203'), detail: getLocaleText('FWC.8e521787579519996'), owner: getLocaleText('FWC.f4781787581362591'), tone: 'critical' },
|
|
2302
|
+
{ label: getLocaleText('FWC.b09c1787580593026'), value: getLocaleText('FWC.55901787581574274'), detail: getLocaleText('FWC.40a11787579592712'), owner: getLocaleText('FWC.70f81787581365181'), tone: 'warning' },
|
|
2302
2303
|
],
|
|
2303
2304
|
conclusions: [
|
|
2304
|
-
{ label: '
|
|
2305
|
-
{ label: '
|
|
2305
|
+
{ label: getLocaleText('FWC.e8901787580402201'), value: getLocaleText('FWC.c9c01787581073462'), detail: getLocaleText('FWC.77081787577999386'), tone: 'warning' },
|
|
2306
|
+
{ label: getLocaleText('FWC.d0d01787581076407'), value: getLocaleText('FWC.096a1787581094762'), detail: getLocaleText('FWC.25251787578054403'), tone: 'info' },
|
|
2306
2307
|
],
|
|
2307
2308
|
},
|
|
2308
2309
|
production: {
|
|
2309
2310
|
roleKey: 'production',
|
|
2310
|
-
icon: '
|
|
2311
|
+
icon: getLocaleText('FWC.4d641787581665333'),
|
|
2311
2312
|
accent: '#153F4A',
|
|
2312
|
-
title: '
|
|
2313
|
-
subtitle: '
|
|
2314
|
-
route: '
|
|
2315
|
-
scope: '
|
|
2316
|
-
quickActions: ['
|
|
2313
|
+
title: getLocaleText('FWC.02d41787580399982'),
|
|
2314
|
+
subtitle: getLocaleText('FWC.53131787579588400'),
|
|
2315
|
+
route: getLocaleText('FWC.19181787581391323'),
|
|
2316
|
+
scope: getLocaleText('FWC.77e11787581394895'),
|
|
2317
|
+
quickActions: [getLocaleText('FWC.0b4a1787581355495'), getLocaleText('FWC.cba21787581381080'), getLocaleText('FWC.51481787580588862')],
|
|
2317
2318
|
kpis: [
|
|
2318
|
-
{ label: '
|
|
2319
|
-
{ label: '
|
|
2320
|
-
{ label: '
|
|
2319
|
+
{ label: getLocaleText('FWC.1d6e1787581081045'), value: '1', detail: getLocaleText('FWC.23b31787579519708'), tone: 'info' },
|
|
2320
|
+
{ label: getLocaleText('FWC.3d021787581391824'), value: '2500', detail: getLocaleText('FWC.855a1787579202042'), tone: 'healthy' },
|
|
2321
|
+
{ label: getLocaleText('FWC.88ee1787581381577'), value: '6', detail: getLocaleText('FWC.d3931787579520142'), tone: 'neutral' },
|
|
2321
2322
|
],
|
|
2322
2323
|
infoItems: [
|
|
2323
|
-
{ label: '
|
|
2324
|
-
{ label: '
|
|
2325
|
-
{ label: '
|
|
2326
|
-
{ label: '
|
|
2327
|
-
{ label: '
|
|
2328
|
-
{ label: '
|
|
2324
|
+
{ label: getLocaleText('FWC.744e1787581633398'), value: getLocaleText('FWC.aae91787580018772') },
|
|
2325
|
+
{ label: getLocaleText('FWC.5b081787581637432'), value: getLocaleText('FWC.e2761787581077415') },
|
|
2326
|
+
{ label: getLocaleText('FWC.1a451787581395418'), value: '2026-07-15' },
|
|
2327
|
+
{ label: getLocaleText('FWC.a4781787580017555'), value: '2026-07-12' },
|
|
2328
|
+
{ label: getLocaleText('FWC.54d21787581369487'), value: getLocaleText('FWC.b1f11787581641357') },
|
|
2329
|
+
{ label: getLocaleText('FWC.69d41787580589921'), value: getLocaleText('FWC.7bba1787581084976'), tone: 'warning' },
|
|
2329
2330
|
],
|
|
2330
2331
|
sections: [
|
|
2331
2332
|
{
|
|
2332
2333
|
id: 'production-capacity',
|
|
2333
|
-
title: '
|
|
2334
|
-
subtitle: '
|
|
2334
|
+
title: getLocaleText('FWC.630c1787580593613'),
|
|
2335
|
+
subtitle: getLocaleText('FWC.d3ff1787579172911'),
|
|
2335
2336
|
rows: [
|
|
2336
|
-
{ label: '
|
|
2337
|
-
{ label: '
|
|
2338
|
-
{ label: '
|
|
2339
|
-
{ label: '
|
|
2340
|
-
{ label: '
|
|
2337
|
+
{ label: getLocaleText('FWC.e2411787581395936'), value: getLocaleText('FWC.8f6f1787580593916'), detail: getLocaleText('FWC.5c9f1787581097408'), tone: 'neutral' },
|
|
2338
|
+
{ label: getLocaleText('FWC.e60e1787580412239'), value: getLocaleText('FWC.a0691787580404842'), detail: getLocaleText('FWC.14181787580413179'), tone: 'healthy' },
|
|
2339
|
+
{ label: getLocaleText('FWC.0e791787581097797'), value: '2', detail: getLocaleText('FWC.1aef1787580413438'), tone: 'neutral' },
|
|
2340
|
+
{ label: getLocaleText('FWC.d3601787581396707'), value: '2', detail: getLocaleText('FWC.25971787580594221'), tone: 'healthy' },
|
|
2341
|
+
{ label: getLocaleText('FWC.acc61787580020491'), value: getLocaleText('FWC.d0931787580411661'), detail: getLocaleText('FWC.10791787580594663'), tone: 'healthy' },
|
|
2341
2342
|
],
|
|
2342
2343
|
},
|
|
2343
2344
|
{
|
|
2344
2345
|
id: 'production-orders',
|
|
2345
|
-
title: '
|
|
2346
|
-
subtitle: '
|
|
2346
|
+
title: getLocaleText('FWC.8a1c1787580593317'),
|
|
2347
|
+
subtitle: getLocaleText('FWC.2b8e1787579407441'),
|
|
2347
2348
|
rows: [
|
|
2348
|
-
{ label: 'A001', value: '
|
|
2349
|
-
{ label: 'B002', value: '
|
|
2350
|
-
{ label: 'B003', value: '
|
|
2351
|
-
{ label: 'C004', value: '
|
|
2349
|
+
{ label: 'A001', value: getLocaleText('FWC.f18f1787581095148'), detail: getLocaleText('FWC.7aaf1787578345241'), tone: 'healthy' },
|
|
2350
|
+
{ label: 'B002', value: getLocaleText('FWC.7da41787581096237'), detail: getLocaleText('FWC.8ec81787578345324'), tone: 'healthy' },
|
|
2351
|
+
{ label: 'B003', value: getLocaleText('FWC.f18f1787581095148'), detail: getLocaleText('FWC.c9021787578345489'), tone: 'healthy' },
|
|
2352
|
+
{ label: 'C004', value: getLocaleText('FWC.66951787581098185'), detail: getLocaleText('FWC.6ac81787578345590'), tone: 'healthy' },
|
|
2352
2353
|
],
|
|
2353
2354
|
},
|
|
2354
2355
|
],
|
|
2355
2356
|
riskRows: [
|
|
2356
|
-
{ label: '
|
|
2357
|
-
{ label: '
|
|
2358
|
-
{ label: '
|
|
2357
|
+
{ label: getLocaleText('FWC.91981787581397219'), value: getLocaleText('FWC.f37a1787581093848'), detail: getLocaleText('FWC.40af1787579520281'), owner: getLocaleText('FWC.e8ff1787581360308'), tone: 'warning' },
|
|
2358
|
+
{ label: getLocaleText('FWC.7ebe1787581397741'), value: getLocaleText('FWC.24771787581574847'), detail: getLocaleText('FWC.9e081787579202160'), owner: getLocaleText('FWC.29081787581367533'), tone: 'healthy' },
|
|
2359
|
+
{ label: getLocaleText('FWC.68831787581398262'), value: getLocaleText('FWC.91881787581562073'), detail: getLocaleText('FWC.e17a1787579520430'), owner: getLocaleText('FWC.54261787581398836'), tone: 'warning' },
|
|
2359
2360
|
],
|
|
2360
2361
|
conclusions: [
|
|
2361
|
-
{ label: '
|
|
2362
|
-
{ label: '
|
|
2362
|
+
{ label: getLocaleText('FWC.6ec51787580413922'), value: getLocaleText('FWC.88a81787581084263'), detail: getLocaleText('FWC.9dff1787578289433'), tone: 'warning' },
|
|
2363
|
+
{ label: getLocaleText('FWC.77011787579248857'), value: getLocaleText('FWC.51171787580021076'), detail: getLocaleText('FWC.42521787578162661'), tone: 'healthy' },
|
|
2363
2364
|
],
|
|
2364
2365
|
},
|
|
2365
2366
|
procurement: {
|
|
2366
2367
|
roleKey: 'procurement',
|
|
2367
|
-
icon: '
|
|
2368
|
+
icon: getLocaleText('FWC.e6e01787581666713'),
|
|
2368
2369
|
accent: '#684513',
|
|
2369
|
-
title: '
|
|
2370
|
-
subtitle: '
|
|
2371
|
-
route: '
|
|
2372
|
-
scope: '
|
|
2373
|
-
quickActions: ['
|
|
2370
|
+
title: getLocaleText('FWC.11911787580400223'),
|
|
2371
|
+
subtitle: getLocaleText('FWC.7c581787579175882'),
|
|
2372
|
+
route: getLocaleText('FWC.b5811787581399359'),
|
|
2373
|
+
scope: getLocaleText('FWC.671b1787581399884'),
|
|
2374
|
+
quickActions: [getLocaleText('FWC.0b4a1787581355495'), getLocaleText('FWC.57561787581400418'), getLocaleText('FWC.efa81787581358257'), getLocaleText('FWC.01d31787581099000')],
|
|
2374
2375
|
kpis: [
|
|
2375
|
-
{ label: '
|
|
2376
|
-
{ label: '
|
|
2377
|
-
{ label: '
|
|
2378
|
-
{ label: '
|
|
2376
|
+
{ label: getLocaleText('FWC.1d6e1787581081045'), value: '1', detail: getLocaleText('FWC.1e621787579903817'), tone: 'info' },
|
|
2377
|
+
{ label: getLocaleText('FWC.8cab1787581400942'), value: '8', detail: getLocaleText('FWC.602d1787580018179'), tone: 'neutral' },
|
|
2378
|
+
{ label: getLocaleText('FWC.75651787581401468'), value: '2', detail: getLocaleText('FWC.73ec1787579337418'), tone: 'critical' },
|
|
2379
|
+
{ label: getLocaleText('FWC.6c851787580597207'), value: '3', detail: getLocaleText('FWC.e1671787579407575'), tone: 'warning' },
|
|
2379
2380
|
],
|
|
2380
2381
|
infoItems: [
|
|
2381
|
-
{ label: '
|
|
2382
|
-
{ label: '
|
|
2383
|
-
{ label: '
|
|
2384
|
-
{ label: '
|
|
2385
|
-
{ label: '
|
|
2386
|
-
{ label: '
|
|
2382
|
+
{ label: getLocaleText('FWC.744e1787581633398'), value: getLocaleText('FWC.aae91787580018772') },
|
|
2383
|
+
{ label: getLocaleText('FWC.5b081787581637432'), value: getLocaleText('FWC.e2761787581077415') },
|
|
2384
|
+
{ label: getLocaleText('FWC.a4781787580017555'), value: '2026-07-12' },
|
|
2385
|
+
{ label: getLocaleText('FWC.54d21787581369487'), value: getLocaleText('FWC.b1f11787581641357') },
|
|
2386
|
+
{ label: getLocaleText('FWC.bbd81787580021288'), value: '2026-07-05', tone: 'warning' },
|
|
2387
|
+
{ label: getLocaleText('FWC.14f31787580597819'), value: getLocaleText('FWC.7bba1787581084976'), tone: 'warning' },
|
|
2387
2388
|
],
|
|
2388
2389
|
sections: [
|
|
2389
2390
|
{
|
|
2390
2391
|
id: 'procurement-materials',
|
|
2391
|
-
title: '
|
|
2392
|
-
subtitle: '
|
|
2392
|
+
title: getLocaleText('FWC.6f3e1787580021528'),
|
|
2393
|
+
subtitle: getLocaleText('FWC.ca251787579249525'),
|
|
2393
2394
|
rows: [
|
|
2394
|
-
{ label: 'CPU i5-14G', value: '
|
|
2395
|
-
{ label: '
|
|
2396
|
-
{ label: '
|
|
2397
|
-
{ label: '
|
|
2398
|
-
{ label: '
|
|
2395
|
+
{ label: 'CPU i5-14G', value: getLocaleText('FWC.565d1787580414958'), detail: getLocaleText('FWC.6afe1787579337787'), tone: 'critical' },
|
|
2396
|
+
{ label: getLocaleText('FWC.f4cb1787579593227'), value: getLocaleText('FWC.bb671787580415368'), detail: getLocaleText('FWC.3d8b1787580598779'), tone: 'warning' },
|
|
2397
|
+
{ label: getLocaleText('FWC.7eaa1787579407707'), value: getLocaleText('FWC.5bb01787581576617'), detail: getLocaleText('FWC.5f741787581379076'), tone: 'healthy' },
|
|
2398
|
+
{ label: getLocaleText('FWC.d58e1787579588717'), value: getLocaleText('FWC.5bb01787581576617'), detail: getLocaleText('FWC.5f741787581379076'), tone: 'healthy' },
|
|
2399
|
+
{ label: getLocaleText('FWC.51e91787579904204'), value: getLocaleText('FWC.5bb01787581576617'), detail: getLocaleText('FWC.42241787579407834'), tone: 'healthy' },
|
|
2399
2400
|
],
|
|
2400
2401
|
},
|
|
2401
2402
|
{
|
|
2402
2403
|
id: 'procurement-orders',
|
|
2403
|
-
title: '
|
|
2404
|
-
subtitle: '
|
|
2404
|
+
title: getLocaleText('FWC.3a891787579725350'),
|
|
2405
|
+
subtitle: getLocaleText('FWC.6a531787579202266'),
|
|
2405
2406
|
rows: [
|
|
2406
|
-
{ label: '
|
|
2407
|
-
{ label: '
|
|
2408
|
-
{ label: '
|
|
2409
|
-
{ label: '
|
|
2407
|
+
{ label: getLocaleText('FWC.127e1787581075408'), value: 'CPU i5-14G', detail: getLocaleText('FWC.15f51787579176931'), tone: 'critical' },
|
|
2408
|
+
{ label: getLocaleText('FWC.127e1787581075408'), value: getLocaleText('FWC.69511787581099387'), detail: getLocaleText('FWC.19d31787579337903'), tone: 'critical' },
|
|
2409
|
+
{ label: getLocaleText('FWC.47511787581074745'), value: getLocaleText('FWC.f4cb1787579593227'), detail: getLocaleText('FWC.93941787579727971'), tone: 'warning' },
|
|
2410
|
+
{ label: getLocaleText('FWC.47511787581074745'), value: 'PO-260604', detail: getLocaleText('FWC.64101787579141874'), tone: 'warning' },
|
|
2410
2411
|
],
|
|
2411
2412
|
},
|
|
2412
2413
|
],
|
|
2413
2414
|
riskRows: [
|
|
2414
|
-
{ label: '
|
|
2415
|
-
{ label: '
|
|
2416
|
-
{ label: '
|
|
2415
|
+
{ label: getLocaleText('FWC.40bd1787580599089'), value: getLocaleText('FWC.b67a1787581099780'), detail: getLocaleText('FWC.41381787579105775'), owner: getLocaleText('FWC.e8ff1787581360308'), tone: 'critical' },
|
|
2416
|
+
{ label: getLocaleText('FWC.e6c11787580402455'), value: getLocaleText('FWC.cf951787581083495'), detail: getLocaleText('FWC.10421787579287034'), owner: getLocaleText('FWC.a0901787580401705'), tone: 'warning' },
|
|
2417
|
+
{ label: getLocaleText('FWC.52e81787581402281'), value: '2026-07-05', detail: getLocaleText('FWC.be7e1787579105891'), owner: getLocaleText('FWC.e8ff1787581360308'), tone: 'warning' },
|
|
2417
2418
|
],
|
|
2418
2419
|
conclusions: [
|
|
2419
|
-
{ label: '
|
|
2420
|
-
{ label: '
|
|
2420
|
+
{ label: getLocaleText('FWC.510a1787579520577'), value: getLocaleText('FWC.b67a1787581099780'), detail: getLocaleText('FWC.042a1787577896277'), tone: 'critical' },
|
|
2421
|
+
{ label: getLocaleText('FWC.e3c11787579407972'), value: getLocaleText('FWC.cf951787581083495'), detail: getLocaleText('FWC.a3ba1787578561660'), tone: 'warning' },
|
|
2421
2422
|
],
|
|
2422
2423
|
},
|
|
2423
2424
|
logistics: {
|
|
2424
2425
|
roleKey: 'logistics',
|
|
2425
|
-
icon: '
|
|
2426
|
+
icon: getLocaleText('FWC.87991787581668073'),
|
|
2426
2427
|
accent: '#145466',
|
|
2427
|
-
title: '
|
|
2428
|
-
subtitle: '
|
|
2429
|
-
route: '
|
|
2430
|
-
scope: '
|
|
2431
|
-
quickActions: ['
|
|
2428
|
+
title: getLocaleText('FWC.e3de1787579723886'),
|
|
2429
|
+
subtitle: getLocaleText('FWC.acfd1787579155614'),
|
|
2430
|
+
route: getLocaleText('FWC.47441787581392324'),
|
|
2431
|
+
scope: getLocaleText('FWC.c4b61787581402796'),
|
|
2432
|
+
quickActions: [getLocaleText('FWC.0b4a1787581355495'), getLocaleText('FWC.a95c1787581578380'), getLocaleText('FWC.42b51787581579625'), getLocaleText('FWC.3e461787581380582'), getLocaleText('FWC.b73b1787581076739')],
|
|
2432
2433
|
kpis: [
|
|
2433
|
-
{ label: '
|
|
2434
|
-
{ label: '
|
|
2435
|
-
{ label: '
|
|
2436
|
-
{ label: '
|
|
2437
|
-
{ label: '
|
|
2434
|
+
{ label: getLocaleText('FWC.1d6e1787581081045'), value: '1', detail: getLocaleText('FWC.dbff1787579904398'), tone: 'info' },
|
|
2435
|
+
{ label: getLocaleText('FWC.a95c1787581578380'), value: getLocaleText('FWC.9f7f1787581651493'), detail: getLocaleText('FWC.11641787579904593'), tone: 'info' },
|
|
2436
|
+
{ label: getLocaleText('FWC.42b51787581579625'), value: getLocaleText('FWC.b1f11787581641357'), detail: getLocaleText('FWC.5bb41787580020858'), tone: 'info' },
|
|
2437
|
+
{ label: getLocaleText('FWC.17171787580599404'), value: getLocaleText('FWC.35741787581652132'), detail: getLocaleText('FWC.fdb81787580599966'), tone: 'warning' },
|
|
2438
|
+
{ label: getLocaleText('FWC.ec081787580600530'), value: getLocaleText('FWC.ad1d1787581650853'), detail: getLocaleText('FWC.fd0e1787579177646'), tone: 'warning' },
|
|
2438
2439
|
],
|
|
2439
2440
|
infoItems: commonInfo,
|
|
2440
2441
|
sections: [
|
|
2441
2442
|
{
|
|
2442
2443
|
id: 'logistics-capacity',
|
|
2443
|
-
title: '
|
|
2444
|
-
subtitle: '
|
|
2444
|
+
title: getLocaleText('FWC.05ca1787581403332'),
|
|
2445
|
+
subtitle: getLocaleText('FWC.bc321787579904005'),
|
|
2445
2446
|
rows: [
|
|
2446
|
-
{ label: '
|
|
2447
|
-
{ label: '
|
|
2447
|
+
{ label: getLocaleText('FWC.4ca81787581403853'), value: getLocaleText('FWC.35701787581404384'), detail: getLocaleText('FWC.848a1787579033923'), tone: 'warning' },
|
|
2448
|
+
{ label: getLocaleText('FWC.b9cb1787581404923'), value: getLocaleText('FWC.135a1787581100643'), detail: getLocaleText('FWC.49051787579033842'), tone: 'info' },
|
|
2448
2449
|
],
|
|
2449
2450
|
},
|
|
2450
2451
|
{
|
|
2451
2452
|
id: 'logistics-routes',
|
|
2452
|
-
title: '
|
|
2453
|
-
subtitle: '
|
|
2453
|
+
title: getLocaleText('FWC.b64a1787580016542'),
|
|
2454
|
+
subtitle: getLocaleText('FWC.a50b1787579338073'),
|
|
2454
2455
|
rows: [
|
|
2455
|
-
{ label: '成都 -> 上海', value: '
|
|
2456
|
-
{ label: '成都 -> 上海', value: '
|
|
2457
|
-
{ label: '成都 -> 上海', value: '
|
|
2456
|
+
{ label: '成都 -> 上海', value: getLocaleText('FWC.cfab1787580601502'), detail: getLocaleText('FWC.51771787578905283'), tone: 'critical' },
|
|
2457
|
+
{ label: '成都 -> 上海', value: getLocaleText('FWC.2a4d1787580601925'), detail: getLocaleText('FWC.9dc71787578561971'), tone: 'warning' },
|
|
2458
|
+
{ label: '成都 -> 上海', value: getLocaleText('FWC.f5d71787580602449'), detail: getLocaleText('FWC.f1f41787578345674'), tone: 'healthy' },
|
|
2458
2459
|
],
|
|
2459
2460
|
},
|
|
2460
2461
|
],
|
|
2461
2462
|
riskRows: [
|
|
2462
|
-
{ label: '
|
|
2463
|
-
{ label: '
|
|
2464
|
-
{ label: '
|
|
2463
|
+
{ label: getLocaleText('FWC.f4901787581086415'), value: getLocaleText('FWC.99f51787581405455'), detail: getLocaleText('FWC.75091787579034009'), owner: getLocaleText('FWC.f4781787581362591'), tone: 'critical' },
|
|
2464
|
+
{ label: getLocaleText('FWC.92a31787581392833'), value: getLocaleText('FWC.c8d41787581101053'), detail: getLocaleText('FWC.96c21787579338206'), owner: getLocaleText('FWC.70f81787581365181'), tone: 'warning' },
|
|
2465
|
+
{ label: getLocaleText('FWC.00a81787581101738'), value: getLocaleText('FWC.b3d21787581102144'), detail: getLocaleText('FWC.11851787579521266'), owner: getLocaleText('FWC.f4781787581362591'), tone: 'warning' },
|
|
2465
2466
|
],
|
|
2466
2467
|
conclusions: [
|
|
2467
|
-
{ label: '
|
|
2468
|
-
{ label: '
|
|
2468
|
+
{ label: getLocaleText('FWC.ff531787579521418'), value: getLocaleText('FWC.f4901787581086415'), detail: getLocaleText('FWC.74851787578027374'), tone: 'critical' },
|
|
2469
|
+
{ label: getLocaleText('FWC.a3831787579519849'), value: getLocaleText('FWC.af0a1787581085688'), detail: getLocaleText('FWC.e40d1787577981033'), tone: 'warning' },
|
|
2469
2470
|
],
|
|
2470
2471
|
},
|
|
2471
2472
|
warehouse: {
|
|
2472
2473
|
roleKey: 'warehouse',
|
|
2473
|
-
icon: '
|
|
2474
|
+
icon: getLocaleText('FWC.c80a1787581669418'),
|
|
2474
2475
|
accent: '#115C54',
|
|
2475
|
-
title: '
|
|
2476
|
-
subtitle: '
|
|
2477
|
-
route: '
|
|
2478
|
-
scope: '
|
|
2479
|
-
quickActions: ['
|
|
2476
|
+
title: getLocaleText('FWC.757a1787579723254'),
|
|
2477
|
+
subtitle: getLocaleText('FWC.5b3e1787579179028'),
|
|
2478
|
+
route: getLocaleText('FWC.46861787581390539'),
|
|
2479
|
+
scope: getLocaleText('FWC.fab91787581393341'),
|
|
2480
|
+
quickActions: [getLocaleText('FWC.0b4a1787581355495'), getLocaleText('FWC.931a1787581406540'), getLocaleText('FWC.97d81787581380086'), getLocaleText('FWC.306b1787581358714'), getLocaleText('FWC.c87a1787581406006')],
|
|
2480
2481
|
kpis: [
|
|
2481
|
-
{ label: '
|
|
2482
|
-
{ label: '
|
|
2483
|
-
{ label: '
|
|
2484
|
-
{ label: '
|
|
2482
|
+
{ label: getLocaleText('FWC.1d6e1787581081045'), value: '1', detail: getLocaleText('FWC.ccc11787579904779'), tone: 'info' },
|
|
2483
|
+
{ label: getLocaleText('FWC.57991787581373922'), value: '6000', detail: getLocaleText('FWC.4b871787579589542'), tone: 'neutral' },
|
|
2484
|
+
{ label: getLocaleText('FWC.a6e11787580602975'), value: '0', detail: getLocaleText('FWC.99fe1787579133545'), tone: 'warning' },
|
|
2485
|
+
{ label: getLocaleText('FWC.b07d1787581407322'), value: '7800', detail: getLocaleText('FWC.a36b1787579337661'), tone: 'healthy' },
|
|
2485
2486
|
],
|
|
2486
2487
|
infoItems: [
|
|
2487
|
-
{ label: '
|
|
2488
|
-
{ label: '
|
|
2489
|
-
{ label: '
|
|
2490
|
-
{ label: '
|
|
2491
|
-
{ label: '
|
|
2492
|
-
{ label: '
|
|
2488
|
+
{ label: getLocaleText('FWC.744e1787581633398'), value: getLocaleText('FWC.aae91787580018772') },
|
|
2489
|
+
{ label: getLocaleText('FWC.5b081787581637432'), value: getLocaleText('FWC.e2761787581077415') },
|
|
2490
|
+
{ label: getLocaleText('FWC.a4781787580017555'), value: '2026-07-12' },
|
|
2491
|
+
{ label: getLocaleText('FWC.c4991787580590390'), value: '2026-07-15' },
|
|
2492
|
+
{ label: getLocaleText('FWC.54d21787581369487'), value: getLocaleText('FWC.b1f11787581641357') },
|
|
2493
|
+
{ label: getLocaleText('FWC.cc271787581407870'), value: getLocaleText('FWC.199e1787581102541'), tone: 'warning' },
|
|
2493
2494
|
],
|
|
2494
2495
|
sections: [
|
|
2495
2496
|
{
|
|
2496
2497
|
id: 'warehouse-capacity',
|
|
2497
|
-
title: '
|
|
2498
|
-
subtitle: '
|
|
2498
|
+
title: getLocaleText('FWC.9b9d1787580603499'),
|
|
2499
|
+
subtitle: getLocaleText('FWC.14f21787579728545'),
|
|
2499
2500
|
rows: [
|
|
2500
|
-
{ label: '
|
|
2501
|
-
{ label: '日均入库能力', value: '
|
|
2502
|
-
{ label: '日均出库能力', value: '
|
|
2503
|
-
{ label: '分拣包装能力', value: '
|
|
2504
|
-
{ label: '
|
|
2501
|
+
{ label: getLocaleText('FWC.f9c51787580417374'), value: getLocaleText('FWC.a04e1787581098595'), detail: getLocaleText('FWC.a4121787581393855'), tone: 'healthy' },
|
|
2502
|
+
{ label: '日均入库能力', value: getLocaleText('FWC.54f31787580414350'), detail: '满足目标入库', tone: 'healthy' },
|
|
2503
|
+
{ label: '日均出库能力', value: getLocaleText('FWC.e2e41787580415821'), detail: getLocaleText('FWC.07d21787581102946'), tone: 'neutral' },
|
|
2504
|
+
{ label: '分拣包装能力', value: getLocaleText('FWC.e2e41787580415821'), detail: getLocaleText('FWC.40c21787580416496'), tone: 'warning' },
|
|
2505
|
+
{ label: getLocaleText('FWC.e8b61787580417898'), value: '72%', detail: getLocaleText('FWC.24771787581574847'), tone: 'healthy' },
|
|
2505
2506
|
],
|
|
2506
2507
|
},
|
|
2507
2508
|
{
|
|
2508
2509
|
id: 'warehouse-stock',
|
|
2509
|
-
title: '
|
|
2510
|
-
subtitle: '
|
|
2510
|
+
title: getLocaleText('FWC.b2eb1787580418422'),
|
|
2511
|
+
subtitle: getLocaleText('FWC.b7b61787579202385'),
|
|
2511
2512
|
rows: [
|
|
2512
|
-
{ label: '
|
|
2513
|
-
{ label: '
|
|
2514
|
-
{ label: '
|
|
2515
|
-
{ label: '
|
|
2513
|
+
{ label: getLocaleText('FWC.2e741787580021752'), value: '0 / 6000 / 7800', detail: '依赖生产入库', tone: 'warning' },
|
|
2514
|
+
{ label: getLocaleText('FWC.17e41787579904963'), value: '6200 / 0 / 1200', detail: getLocaleText('FWC.24771787581574847'), tone: 'healthy' },
|
|
2515
|
+
{ label: getLocaleText('FWC.24a51787581408408'), value: '4800 / 1500 / 900', detail: getLocaleText('FWC.6bbe1787581581144'), tone: 'warning' },
|
|
2516
|
+
{ label: getLocaleText('FWC.9eec1787581103361'), value: '0 / 6000 / 3000', detail: getLocaleText('FWC.6a1e1787581104188'), tone: 'warning' },
|
|
2516
2517
|
],
|
|
2517
2518
|
},
|
|
2518
2519
|
{
|
|
2519
2520
|
id: 'warehouse-shipping',
|
|
2520
|
-
title: '
|
|
2521
|
-
subtitle: '
|
|
2521
|
+
title: getLocaleText('FWC.896d1787580419471'),
|
|
2522
|
+
subtitle: getLocaleText('FWC.cd781787579290180'),
|
|
2522
2523
|
rows: [
|
|
2523
|
-
{ label: '
|
|
2524
|
-
{ label: '
|
|
2524
|
+
{ label: getLocaleText('FWC.43801787581581735'), value: getLocaleText('FWC.7da41787581096237'), detail: getLocaleText('FWC.df9b1787578162735'), tone: 'warning' },
|
|
2525
|
+
{ label: getLocaleText('FWC.2a571787581582321'), value: getLocaleText('FWC.7da41787581096237'), detail: getLocaleText('FWC.a8a41787578162815'), tone: 'warning' },
|
|
2525
2526
|
],
|
|
2526
2527
|
},
|
|
2527
2528
|
],
|
|
2528
2529
|
riskRows: [
|
|
2529
|
-
{ label: '
|
|
2530
|
-
{ label: '分拣包装能力', value: '
|
|
2531
|
-
{ label: '
|
|
2530
|
+
{ label: getLocaleText('FWC.359c1787580419752'), value: getLocaleText('FWC.2d901787581408960'), detail: getLocaleText('FWC.04ae1787579520722'), owner: getLocaleText('FWC.29081787581367533'), tone: 'warning' },
|
|
2531
|
+
{ label: '分拣包装能力', value: getLocaleText('FWC.c2221787581582877'), detail: getLocaleText('FWC.ba7e1787579520863'), owner: getLocaleText('FWC.f8401787581368510'), tone: 'warning' },
|
|
2532
|
+
{ label: getLocaleText('FWC.9eec1787581103361'), value: getLocaleText('FWC.09b61787581583451'), detail: getLocaleText('FWC.deb71787579291228'), owner: getLocaleText('FWC.05351787581409502'), tone: 'warning' },
|
|
2532
2533
|
],
|
|
2533
2534
|
conclusions: [
|
|
2534
|
-
{ label: '
|
|
2535
|
-
{ label: '
|
|
2535
|
+
{ label: getLocaleText('FWC.94f21787580420227'), value: getLocaleText('FWC.a4121787581393855'), detail: getLocaleText('FWC.54ed1787577952165'), tone: 'healthy' },
|
|
2536
|
+
{ label: getLocaleText('FWC.f3fa1787580421052'), value: getLocaleText('FWC.31391787581087124'), detail: getLocaleText('FWC.26de1787578001974'), tone: 'warning' },
|
|
2536
2537
|
],
|
|
2537
2538
|
},
|
|
2538
2539
|
finance: {
|
|
2539
2540
|
roleKey: 'finance',
|
|
2540
|
-
icon: '
|
|
2541
|
+
icon: getLocaleText('FWC.44811787581671048'),
|
|
2541
2542
|
accent: '#263545',
|
|
2542
|
-
title: '
|
|
2543
|
-
subtitle: '
|
|
2544
|
-
route: '
|
|
2545
|
-
scope: '
|
|
2546
|
-
quickActions: ['
|
|
2543
|
+
title: getLocaleText('FWC.4d081787579724824'),
|
|
2544
|
+
subtitle: getLocaleText('FWC.20611787579033736'),
|
|
2545
|
+
route: getLocaleText('FWC.4a101787581410053'),
|
|
2546
|
+
scope: getLocaleText('FWC.44a31787581410604'),
|
|
2547
|
+
quickActions: [getLocaleText('FWC.0b4a1787581355495'), getLocaleText('FWC.16221787581359410'), getLocaleText('FWC.6cf01787581411146'), getLocaleText('FWC.47ce1787581378320'), getLocaleText('FWC.9c2c1787581377344')],
|
|
2547
2548
|
kpis: [
|
|
2548
|
-
{ label: '
|
|
2549
|
-
{ label: '
|
|
2550
|
-
{ label: '
|
|
2551
|
-
{ label: '
|
|
2549
|
+
{ label: getLocaleText('FWC.1d6e1787581081045'), value: '1', detail: getLocaleText('FWC.e27c1787579905541'), tone: 'info' },
|
|
2550
|
+
{ label: getLocaleText('FWC.d6981787581411697'), value: getLocaleText('FWC.f4801787581655247'), detail: getLocaleText('FWC.a92a1787580021965'), tone: 'neutral' },
|
|
2551
|
+
{ label: getLocaleText('FWC.c1741787580600876'), value: getLocaleText('FWC.80371787581088449'), detail: getLocaleText('FWC.2b0a1787579905352'), tone: 'warning' },
|
|
2552
|
+
{ label: getLocaleText('FWC.a4ea1787580592147'), value: getLocaleText('FWC.74931787581089606'), detail: getLocaleText('FWC.04401787579905722'), tone: 'warning' },
|
|
2552
2553
|
],
|
|
2553
2554
|
infoItems: [
|
|
2554
|
-
{ label: '
|
|
2555
|
-
{ label: '
|
|
2556
|
-
{ label: '
|
|
2557
|
-
{ label: '
|
|
2558
|
-
{ label: '
|
|
2559
|
-
{ label: '采购提前备货', value: '
|
|
2560
|
-
{ label: '
|
|
2555
|
+
{ label: getLocaleText('FWC.744e1787581633398'), value: getLocaleText('FWC.aae91787580018772') },
|
|
2556
|
+
{ label: getLocaleText('FWC.5b081787581637432'), value: getLocaleText('FWC.e2761787581077415') },
|
|
2557
|
+
{ label: getLocaleText('FWC.c4991787580590390'), value: '2026-07-15' },
|
|
2558
|
+
{ label: getLocaleText('FWC.47841787579905906'), value: '60%', tone: 'warning' },
|
|
2559
|
+
{ label: getLocaleText('FWC.54d21787581369487'), value: getLocaleText('FWC.b1f11787581641357') },
|
|
2560
|
+
{ label: '采购提前备货', value: getLocaleText('FWC.c5001787579729547'), tone: 'warning' },
|
|
2561
|
+
{ label: getLocaleText('FWC.45e01787581413083'), value: getLocaleText('FWC.48851787580403465'), tone: 'warning' },
|
|
2561
2562
|
],
|
|
2562
2563
|
sections: [
|
|
2563
2564
|
{
|
|
2564
2565
|
id: 'finance-overview',
|
|
2565
2566
|
title: '财务测算概览',
|
|
2566
|
-
subtitle: '
|
|
2567
|
+
subtitle: getLocaleText('FWC.da5f1787579180077'),
|
|
2567
2568
|
rows: [
|
|
2568
|
-
{ label: '
|
|
2569
|
-
{ label: '
|
|
2570
|
-
{ label: '库存占用天数', value: '15-30天', detail: '
|
|
2571
|
-
{ label: '预计毛利影响', value: '-0.4pp', detail: '
|
|
2572
|
-
{ label: '
|
|
2569
|
+
{ label: getLocaleText('FWC.16221787581359410'), value: getLocaleText('FWC.80371787581088449'), detail: getLocaleText('FWC.e6c11787580402455'), tone: 'warning' },
|
|
2570
|
+
{ label: getLocaleText('FWC.a4ea1787580592147'), value: getLocaleText('FWC.74931787581089606'), detail: getLocaleText('FWC.48851787580403465'), tone: 'warning' },
|
|
2571
|
+
{ label: '库存占用天数', value: '15-30天', detail: getLocaleText('FWC.ada21787580022188'), tone: 'neutral' },
|
|
2572
|
+
{ label: '预计毛利影响', value: '-0.4pp', detail: getLocaleText('FWC.ac051787581105016'), tone: 'warning' },
|
|
2573
|
+
{ label: getLocaleText('FWC.ab221787580585674'), value: getLocaleText('FWC.cd6d1787581673119'), detail: getLocaleText('FWC.251a1787581105417'), tone: 'warning' },
|
|
2573
2574
|
],
|
|
2574
2575
|
},
|
|
2575
2576
|
{
|
|
2576
2577
|
id: 'finance-stock',
|
|
2577
|
-
title: '
|
|
2578
|
-
subtitle: '
|
|
2578
|
+
title: getLocaleText('FWC.49e11787580022415'),
|
|
2579
|
+
subtitle: getLocaleText('FWC.79881787579338327'),
|
|
2579
2580
|
rows: [
|
|
2580
|
-
{ label: '
|
|
2581
|
+
{ label: getLocaleText('FWC.f4cb1787579593227'), value: getLocaleText('FWC.f4301787581104601'), detail: getLocaleText('FWC.315b1787578289513'), tone: 'warning' },
|
|
2581
2582
|
],
|
|
2582
2583
|
},
|
|
2583
2584
|
{
|
|
2584
2585
|
id: 'finance-logistics',
|
|
2585
|
-
title: '
|
|
2586
|
-
subtitle: '
|
|
2586
|
+
title: getLocaleText('FWC.45411787580022640'),
|
|
2587
|
+
subtitle: getLocaleText('FWC.015a1787579594510'),
|
|
2587
2588
|
rows: [
|
|
2588
|
-
{ label: '
|
|
2589
|
+
{ label: getLocaleText('FWC.48851787580403465'), value: getLocaleText('FWC.74931787581089606'), detail: getLocaleText('FWC.9e041787578289595'), tone: 'warning' },
|
|
2589
2590
|
],
|
|
2590
2591
|
},
|
|
2591
2592
|
],
|
|
2592
2593
|
riskRows: [
|
|
2593
|
-
{ label: '
|
|
2594
|
-
{ label: '加急物流成本', value: '
|
|
2595
|
-
{ label: '
|
|
2594
|
+
{ label: getLocaleText('FWC.c1741787580600876'), value: getLocaleText('FWC.80371787581088449'), detail: getLocaleText('FWC.bac21787579105993'), owner: getLocaleText('FWC.96201787581368994'), tone: 'warning' },
|
|
2595
|
+
{ label: '加急物流成本', value: getLocaleText('FWC.74931787581089606'), detail: getLocaleText('FWC.b8bb1787579143453'), owner: getLocaleText('FWC.39dd1787580421567'), tone: 'warning' },
|
|
2596
|
+
{ label: getLocaleText('FWC.d6981787581411697'), value: getLocaleText('FWC.f4801787581655247'), detail: getLocaleText('FWC.52c01787579593799'), owner: getLocaleText('FWC.70f81787581365181'), tone: 'warning' },
|
|
2596
2597
|
],
|
|
2597
2598
|
conclusions: [
|
|
2598
|
-
{ label: '
|
|
2599
|
-
{ label: '
|
|
2599
|
+
{ label: getLocaleText('FWC.2f1e1787579730757'), value: getLocaleText('FWC.b4681787581105837'), detail: getLocaleText('FWC.948d1787577983773'), tone: 'warning' },
|
|
2600
|
+
{ label: getLocaleText('FWC.17d31787579731644'), value: getLocaleText('FWC.707d1787581106506'), detail: getLocaleText('FWC.06dd1787578015605'), tone: 'warning' },
|
|
2600
2601
|
],
|
|
2601
2602
|
},
|
|
2602
2603
|
};
|
|
@@ -2694,10 +2695,10 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2694
2695
|
*/
|
|
2695
2696
|
function referenceBidDataBoundaryItems(_data: CustomCanvasData): Array<Record<string, unknown>> {
|
|
2696
2697
|
return [
|
|
2697
|
-
{ label: '
|
|
2698
|
-
{ label: '
|
|
2699
|
-
{ label: 'setData', value: '
|
|
2700
|
-
{ label: '
|
|
2698
|
+
{ label: getLocaleText('FWC.0eef1787581382089'), value: getLocaleText('FWC.2c061787581341369'), tone: 'warning' },
|
|
2699
|
+
{ label: getLocaleText('FWC.f1871787581384357'), value: getLocaleText('FWC.4d811787581571767'), tone: 'warning' },
|
|
2700
|
+
{ label: 'setData', value: getLocaleText('FWC.272c1787581572935'), tone: 'neutral' },
|
|
2701
|
+
{ label: getLocaleText('FWC.20b41787581413621'), value: getLocaleText('FWC.767e1787581414174'), tone: 'info' },
|
|
2701
2702
|
];
|
|
2702
2703
|
}
|
|
2703
2704
|
|
|
@@ -2707,7 +2708,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2707
2708
|
* @param fallback - Value shown when the item only contains internal sentinel text.
|
|
2708
2709
|
* @returns User-facing metric value.
|
|
2709
2710
|
*/
|
|
2710
|
-
function referenceBidSanitizedMetricValue(item: Record<string, unknown>, fallback = '
|
|
2711
|
+
function referenceBidSanitizedMetricValue(item: Record<string, unknown>, fallback = getLocaleText('FWC.6b2b1787581565498')): string {
|
|
2711
2712
|
const candidate = nestedBlockItemValue(item) || nestedBlockDisplayValue(item.value ?? item.amount ?? item.status, '');
|
|
2712
2713
|
if (!candidate || candidate === '--') return fallback;
|
|
2713
2714
|
if (/incidentList|structured_image|structured_.*fallback|business_input_required|image_timeout|fallback_business/i.test(candidate)) {
|
|
@@ -2740,8 +2741,8 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2740
2741
|
if (usableItems.length > 0) return usableItems.slice(0, 2);
|
|
2741
2742
|
}
|
|
2742
2743
|
return [
|
|
2743
|
-
{ label: '
|
|
2744
|
-
{ label: '
|
|
2744
|
+
{ label: getLocaleText('FWC.40161787579201936'), value: getLocaleText('FWC.c8981787581569105'), tone: 'warning' },
|
|
2745
|
+
{ label: getLocaleText('FWC.27f81787579589045'), value: getLocaleText('FWC.641b1787581568531'), tone: 'neutral' },
|
|
2745
2746
|
];
|
|
2746
2747
|
}
|
|
2747
2748
|
|
|
@@ -2755,11 +2756,11 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2755
2756
|
const rawItems = block ? nestedBlockRawItems(block) : [];
|
|
2756
2757
|
if (rawItems.length >= 5 && !nestedBlockItemsLookTooWeak(rawItems)) return rawItems.slice(0, 5);
|
|
2757
2758
|
return [
|
|
2758
|
-
{ label: '
|
|
2759
|
-
{ label: '
|
|
2760
|
-
{ label: '
|
|
2761
|
-
{ label: '
|
|
2762
|
-
{ label: '
|
|
2759
|
+
{ label: getLocaleText('FWC.b7071787581415311'), value: '62', tone: 'warning' },
|
|
2760
|
+
{ label: getLocaleText('FWC.17df1787581372704'), value: '58', tone: 'critical' },
|
|
2761
|
+
{ label: getLocaleText('FWC.a4271787581584655'), value: '69', tone: 'warning' },
|
|
2762
|
+
{ label: getLocaleText('FWC.23471787581348029'), value: '71', tone: 'warning' },
|
|
2763
|
+
{ label: getLocaleText('FWC.c8e11787581374883'), value: '76', tone: 'healthy' },
|
|
2763
2764
|
];
|
|
2764
2765
|
}
|
|
2765
2766
|
|
|
@@ -2778,8 +2779,8 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2778
2779
|
});
|
|
2779
2780
|
if (matches.length > 0) return matches.slice(0, 2);
|
|
2780
2781
|
return [
|
|
2781
|
-
{ label: '
|
|
2782
|
-
{ label: '
|
|
2782
|
+
{ label: getLocaleText('FWC.a3181787579903271'), detail: getLocaleText('FWC.fe8d1787579127509'), value: getLocaleText('FWC.29b51787580586954'), tone: 'critical' },
|
|
2783
|
+
{ label: getLocaleText('FWC.3f761787579587790'), detail: getLocaleText('FWC.4ac21787579131370'), value: getLocaleText('FWC.04331787580589409'), tone: 'warning' },
|
|
2783
2784
|
];
|
|
2784
2785
|
}
|
|
2785
2786
|
|
|
@@ -2812,12 +2813,12 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2812
2813
|
const rawItems = block ? nestedBlockRawItems(block) : [];
|
|
2813
2814
|
if (rawItems.length >= 4 && !nestedBlockItemsLookTooWeak(rawItems)) return rawItems.slice(0, 6);
|
|
2814
2815
|
return [
|
|
2815
|
-
{ label: '
|
|
2816
|
-
{ label: '
|
|
2817
|
-
{ label: '
|
|
2818
|
-
{ label: '
|
|
2819
|
-
{ label: '
|
|
2820
|
-
{ label: '
|
|
2816
|
+
{ label: getLocaleText('FWC.a8fe1787581656545'), value: '96%', progress: 96, tone: 'healthy' },
|
|
2817
|
+
{ label: getLocaleText('FWC.b0091787581617083'), value: '93%', progress: 93, tone: 'healthy' },
|
|
2818
|
+
{ label: getLocaleText('FWC.698d1787581617928'), value: '64%', progress: 64, tone: 'critical' },
|
|
2819
|
+
{ label: getLocaleText('FWC.19761787581657197'), value: '82%', progress: 82, tone: 'warning' },
|
|
2820
|
+
{ label: getLocaleText('FWC.71921787581621205'), value: '58%', progress: 58, tone: 'critical' },
|
|
2821
|
+
{ label: getLocaleText('FWC.facc1787581657889'), value: '61%', progress: 61, tone: 'critical' },
|
|
2821
2822
|
];
|
|
2822
2823
|
}
|
|
2823
2824
|
|
|
@@ -2830,7 +2831,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2830
2831
|
const block = referenceNestedBlock(data, /利润底线|底线失守|亏损源/);
|
|
2831
2832
|
if (block && !nestedBlockItemsLookTooWeakForVisualKind(nestedBlockRawItems(block), 'simpleList')) return nestedBlockItems(block).slice(0, 2);
|
|
2832
2833
|
return [
|
|
2833
|
-
{ label: '
|
|
2834
|
+
{ label: getLocaleText('FWC.f7391787580587354'), detail: getLocaleText('FWC.b87c1787579202496'), value: getLocaleText('FWC.e2de1787581331636'), tone: 'critical' },
|
|
2834
2835
|
];
|
|
2835
2836
|
}
|
|
2836
2837
|
|
|
@@ -2841,8 +2842,8 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2841
2842
|
*/
|
|
2842
2843
|
function referenceFinanceRiskMetricItems(data: CustomCanvasData): Array<Record<string, unknown>> {
|
|
2843
2844
|
return [
|
|
2844
|
-
referenceMetricItem(data, '
|
|
2845
|
-
referenceMetricItem(data, '
|
|
2845
|
+
referenceMetricItem(data, getLocaleText('FWC.c7cd1787580017359'), /逾期应收|风险敞口/, '1.82 亿', 'critical'),
|
|
2846
|
+
referenceMetricItem(data, getLocaleText('FWC.941b1787580399238'), /经营现金流|现金流净额/, getLocaleText('FWC.8de71787580022860'), 'critical'),
|
|
2846
2847
|
];
|
|
2847
2848
|
}
|
|
2848
2849
|
|
|
@@ -2855,7 +2856,7 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2855
2856
|
const block = referenceNestedBlock(data, /坏账|预警|隐患/);
|
|
2856
2857
|
if (block && !nestedBlockItemsLookTooWeakForVisualKind(nestedBlockRawItems(block), 'simpleList')) return nestedBlockItems(block).slice(0, 2);
|
|
2857
2858
|
return [
|
|
2858
|
-
{ label: '
|
|
2859
|
+
{ label: getLocaleText('FWC.23281787579903450'), detail: getLocaleText('FWC.13e21787579169226'), value: getLocaleText('FWC.fa531787581624316'), tone: 'critical' },
|
|
2859
2860
|
];
|
|
2860
2861
|
}
|
|
2861
2862
|
|
|
@@ -2881,8 +2882,8 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2881
2882
|
const value = nestedBlockItemValue(item) || nestedBlockItemLabel(item, index);
|
|
2882
2883
|
const label = nestedBlockItemLabel(item, index);
|
|
2883
2884
|
if (!value || /[亿万%红线预警]/.test(value)) return value;
|
|
2884
|
-
if (label.includes('
|
|
2885
|
-
if (label.includes('
|
|
2885
|
+
if (label.includes(getLocaleText('FWC.727c1787581416474')) || label.includes(getLocaleText('FWC.8bfe1787581415889'))) return getLocaleText('FWC.e43c1787579732167', {p0: value});
|
|
2886
|
+
if (label.includes(getLocaleText('FWC.8d661787581567301')) || label.includes(getLocaleText('FWC.d2dc1787581658782'))) return getLocaleText('FWC.85d41787579730069', {p0: value});
|
|
2886
2887
|
return value;
|
|
2887
2888
|
}
|
|
2888
2889
|
|
|
@@ -2893,9 +2894,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2893
2894
|
*/
|
|
2894
2895
|
function referenceHrOrganizationMetrics(data: CustomCanvasData): Array<Record<string, unknown>> {
|
|
2895
2896
|
return [
|
|
2896
|
-
referenceMetricItem(data, '
|
|
2897
|
-
referenceMetricItem(data, '
|
|
2898
|
-
referenceMetricItem(data, '
|
|
2897
|
+
referenceMetricItem(data, getLocaleText('FWC.31381787581344327'), /平均司龄|司龄/, getLocaleText('FWC.86ca1787581106917'), 'info'),
|
|
2898
|
+
referenceMetricItem(data, getLocaleText('FWC.bd261787581074426'), /编制使用|编制达成|达成率/, '92%', 'healthy'),
|
|
2899
|
+
referenceMetricItem(data, getLocaleText('FWC.f5e21787580585149'), /关键异动|异动趋势|流动/, getLocaleText('FWC.849b1787581417061'), 'warning'),
|
|
2899
2900
|
];
|
|
2900
2901
|
}
|
|
2901
2902
|
|
|
@@ -2911,10 +2912,10 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2911
2912
|
if (rawItems.length > 0 && !nestedBlockItemsLookTooWeakForVisualKind(rawItems, 'simpleList')) return nestedBlockItems(block).slice(0, 4);
|
|
2912
2913
|
}
|
|
2913
2914
|
return [
|
|
2914
|
-
{ label: '
|
|
2915
|
-
{ label: '
|
|
2916
|
-
{ label: '
|
|
2917
|
-
{ label: '
|
|
2915
|
+
{ label: getLocaleText('FWC.a51b1787581336337'), value: '96%', detail: '核心岗位补齐', tone: 'healthy' },
|
|
2916
|
+
{ label: getLocaleText('FWC.662e1787581417952'), value: '88%', detail: getLocaleText('FWC.466a1787580587786'), tone: 'warning' },
|
|
2917
|
+
{ label: getLocaleText('FWC.c1aa1787581347604'), value: '91%', detail: '关键岗位稳定', tone: 'healthy' },
|
|
2918
|
+
{ label: getLocaleText('FWC.b1141787581376376'), value: '84%', detail: '共享岗位待补', tone: 'warning' },
|
|
2918
2919
|
];
|
|
2919
2920
|
}
|
|
2920
2921
|
|
|
@@ -2930,10 +2931,10 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2930
2931
|
: [];
|
|
2931
2932
|
if (strongRows.length >= 3) return strongRows;
|
|
2932
2933
|
return [
|
|
2933
|
-
referenceMetricItem(data, '
|
|
2934
|
-
referenceMetricItem(data, '
|
|
2935
|
-
referenceMetricItem(data, '
|
|
2936
|
-
{ label: '
|
|
2934
|
+
referenceMetricItem(data, getLocaleText('FWC.245e1787581348445'), /长期迟到|迟到/, getLocaleText('FWC.73e91787581418540'), 'warning'),
|
|
2935
|
+
referenceMetricItem(data, getLocaleText('FWC.ddef1787581345495'), /旷工|缺勤/, getLocaleText('FWC.ff591787581585558'), 'critical'),
|
|
2936
|
+
referenceMetricItem(data, getLocaleText('FWC.ba661787581345914'), /请假|超标/, getLocaleText('FWC.d52f1787581419125'), 'warning'),
|
|
2937
|
+
{ label: getLocaleText('FWC.6f4c1787580399714'), value: getLocaleText('FWC.53ae1787581584049'), detail: getLocaleText('FWC.18151787579906096'), tone: 'critical' },
|
|
2937
2938
|
];
|
|
2938
2939
|
}
|
|
2939
2940
|
|
|
@@ -2944,10 +2945,10 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2944
2945
|
*/
|
|
2945
2946
|
function referenceHrPeopleCostItems(data: CustomCanvasData): Array<Record<string, unknown>> {
|
|
2946
2947
|
return [
|
|
2947
|
-
referenceMetricItem(data, '
|
|
2948
|
-
referenceMetricItem(data, '
|
|
2949
|
-
referenceMetricItem(data, '
|
|
2950
|
-
referenceMetricItem(data, '
|
|
2948
|
+
referenceMetricItem(data, getLocaleText('FWC.ce0f1787581072146'), /人力总成本|薪酬成本/, '1.28 亿', 'warning'),
|
|
2949
|
+
referenceMetricItem(data, getLocaleText('FWC.8f911787580584100'), /薪酬结构|结构/, '68%', 'info'),
|
|
2950
|
+
referenceMetricItem(data, getLocaleText('FWC.64ae1787581349468'), /成本趋势|趋势/, '+6.8%', 'warning'),
|
|
2951
|
+
referenceMetricItem(data, getLocaleText('FWC.5bc11787581346765'), /人效排行|人均产值|人效/, 'Top 5', 'healthy'),
|
|
2951
2952
|
];
|
|
2952
2953
|
}
|
|
2953
2954
|
|
|
@@ -2961,11 +2962,11 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2961
2962
|
const rows = block ? nestedBlockBarItems(block) : [];
|
|
2962
2963
|
if (rows.length > 0) return rows.slice(0, 5);
|
|
2963
2964
|
return [
|
|
2964
|
-
{ label: '
|
|
2965
|
-
{ label: '
|
|
2966
|
-
{ label: '
|
|
2967
|
-
{ label: '
|
|
2968
|
-
{ label: '
|
|
2965
|
+
{ label: getLocaleText('FWC.a13d1787581652790'), value: '82%', progress: 52, tone: 'neutral' },
|
|
2966
|
+
{ label: getLocaleText('FWC.87d21787581653486'), value: '86%', progress: 58, tone: 'info' },
|
|
2967
|
+
{ label: getLocaleText('FWC.b09d1787581654537'), value: '91%', progress: 66, tone: 'warning' },
|
|
2968
|
+
{ label: getLocaleText('FWC.52d51787581659444'), value: '95%', progress: 74, tone: 'warning' },
|
|
2969
|
+
{ label: getLocaleText('FWC.bc961787581660154'), value: '98%', progress: 82, tone: 'critical' },
|
|
2969
2970
|
];
|
|
2970
2971
|
}
|
|
2971
2972
|
|
|
@@ -2976,9 +2977,9 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2976
2977
|
*/
|
|
2977
2978
|
function referenceHrTalentMetrics(data: CustomCanvasData): Array<Record<string, unknown>> {
|
|
2978
2979
|
return [
|
|
2979
|
-
referenceMetricItem(data, '
|
|
2980
|
-
referenceMetricItem(data, '
|
|
2981
|
-
referenceMetricItem(data, '
|
|
2980
|
+
referenceMetricItem(data, getLocaleText('FWC.ab4e1787581336836'), /储备干部|储备/, getLocaleText('FWC.5dd51787581419702'), 'healthy'),
|
|
2981
|
+
referenceMetricItem(data, getLocaleText('FWC.d6e81787581335591'), /继任计划|继任/, '76%', 'info'),
|
|
2982
|
+
referenceMetricItem(data, getLocaleText('FWC.4abf1787581334014'), /培训完成|培训/, '88%', 'healthy'),
|
|
2982
2983
|
];
|
|
2983
2984
|
}
|
|
2984
2985
|
|
|
@@ -2997,10 +2998,10 @@ export function createReferenceCompositeBindings(context: ReferenceCompositeCont
|
|
|
2997
2998
|
return nestedBlockItems(rankingBlock).slice(0, 4);
|
|
2998
2999
|
}
|
|
2999
3000
|
return [
|
|
3000
|
-
{ label: '
|
|
3001
|
-
{ label: '
|
|
3002
|
-
{ label: '
|
|
3003
|
-
{ label: '
|
|
3001
|
+
{ label: getLocaleText('FWC.d2b81787580017161'), value: getLocaleText('FWC.17101787581586160'), detail: getLocaleText('FWC.08241787581414733'), tone: 'warning' },
|
|
3002
|
+
{ label: getLocaleText('FWC.41f61787580586196'), value: getLocaleText('FWC.11fa1787581586758'), detail: getLocaleText('FWC.579f1787580023082'), tone: 'warning' },
|
|
3003
|
+
{ label: getLocaleText('FWC.1a561787580400725'), value: getLocaleText('FWC.ea2a1787581420286'), detail: getLocaleText('FWC.d7ba1787581420875'), tone: 'neutral' },
|
|
3004
|
+
{ label: getLocaleText('FWC.3d371787580400463'), value: getLocaleText('FWC.4c761787581587352'), detail: getLocaleText('FWC.442a1787581107339'), tone: 'critical' },
|
|
3004
3005
|
];
|
|
3005
3006
|
}
|
|
3006
3007
|
|