@icos-desktop/react-components 4.0.1 → 4.0.2

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.
@@ -1,39 +1,96 @@
1
1
  import { Tabs } from 'antd';
2
- import React__default, { useEffect } from 'react';
2
+ import React__default, { useMemo, useEffect } from 'react';
3
3
  import Base from './components/Base/index.js';
4
4
  import Relation from './components/Relation/index.js';
5
5
  import styles from './SenseDetail.module.less.js';
6
6
 
7
7
  var SenseDetail = function (props) {
8
- var senseGlobalCode = props.senseGlobalCode, topMenuConfig = props.topMenuConfig, enableTag = props.enableTag, extraTopMenu = props.extraTopMenu, hideBook = props.hideBook, hideVideoMonitoring = props.hideVideoMonitoring, onClickSense = props.onClickSense, onGetSenseDetail = props.onGetSenseDetail, tabsBgColor = props.tabsBgColor, contentCardNameColor = props.contentCardNameColor, contentCardContentColor = props.contentCardContentColor, contentCardBorderColor = props.contentCardBorderColor, contentCardBgColor = props.contentCardBgColor, senseInfoTextColor = props.senseInfoTextColor, senseInfoBorderColor = props.senseInfoBorderColor, senseInfoBorderWidth = props.senseInfoBorderWidth, senseInfoBorderStyle = props.senseInfoBorderStyle, hideFields = props.hideFields, isFieldHidden = props.isFieldHidden, renderValue = props.renderValue, customVideoPlayer = props.customVideoPlayer, extraCollapseItems = props.extraCollapseItems;
9
- var tabItems = (function () {
8
+ var _a, _b;
9
+ var senseGlobalCode = props.senseGlobalCode, topMenuConfig = props.topMenuConfig, topMenuLabels = props.topMenuLabels, enableTag = props.enableTag, extraTopMenu = props.extraTopMenu, hideBook = props.hideBook, hideVideoMonitoring = props.hideVideoMonitoring, onClickSense = props.onClickSense, onGetSenseDetail = props.onGetSenseDetail, tabsBgColor = props.tabsBgColor, contentCardNameColor = props.contentCardNameColor, contentCardContentColor = props.contentCardContentColor, contentCardBorderColor = props.contentCardBorderColor, contentCardBgColor = props.contentCardBgColor, senseInfoTextColor = props.senseInfoTextColor, senseInfoBorderColor = props.senseInfoBorderColor, senseInfoBorderWidth = props.senseInfoBorderWidth, senseInfoBorderStyle = props.senseInfoBorderStyle, hideFields = props.hideFields, isFieldHidden = props.isFieldHidden, renderValue = props.renderValue, customVideoPlayer = props.customVideoPlayer, extraCollapseItems = props.extraCollapseItems;
10
+ var tabItems = useMemo(function () {
10
11
  var list = [];
11
12
  if (!(topMenuConfig === null || topMenuConfig === void 0 ? void 0 : topMenuConfig.length)) {
12
13
  return list;
13
14
  }
14
- if (topMenuConfig.includes('base')) {
15
+ var extraMap = new Map((extraTopMenu !== null && extraTopMenu !== void 0 ? extraTopMenu : []).map(function (e) { return [e.key, e]; }));
16
+ var placedExtraKeys = new Set();
17
+ var baseAdded = false;
18
+ var relationAdded = false;
19
+ var pushBase = function () {
20
+ var _a;
15
21
  list.push({
16
22
  key: 'base',
17
- label: '基础信息',
23
+ label: (_a = topMenuLabels === null || topMenuLabels === void 0 ? void 0 : topMenuLabels.base) !== null && _a !== void 0 ? _a : '基础信息',
18
24
  children: (React__default.createElement(Base, { senseInfoTextColor: senseInfoTextColor, senseInfoBorderColor: senseInfoBorderColor, senseInfoBorderWidth: senseInfoBorderWidth, senseInfoBorderStyle: senseInfoBorderStyle, senseGlobalCode: senseGlobalCode, enableTag: enableTag, onGetSenseDetail: onGetSenseDetail, hideFields: hideFields, isFieldHidden: isFieldHidden, renderValue: renderValue, customVideoPlayer: customVideoPlayer, extraCollapseItems: extraCollapseItems, hideVideoMonitoring: hideVideoMonitoring })),
19
25
  });
20
- }
21
- if (topMenuConfig.includes('relation')) {
26
+ };
27
+ var pushRelation = function () {
28
+ var _a;
22
29
  list.push({
23
30
  key: 'relation',
24
- label: '关联信息',
31
+ label: (_a = topMenuLabels === null || topMenuLabels === void 0 ? void 0 : topMenuLabels.relation) !== null && _a !== void 0 ? _a : '关联信息',
25
32
  children: (React__default.createElement(Relation, { senseGlobalCode: senseGlobalCode, hideBook: hideBook, onClickSense: onClickSense })),
26
33
  });
34
+ };
35
+ for (var _i = 0, topMenuConfig_1 = topMenuConfig; _i < topMenuConfig_1.length; _i++) {
36
+ var menuKey = topMenuConfig_1[_i];
37
+ if (menuKey === 'base') {
38
+ if (!baseAdded) {
39
+ baseAdded = true;
40
+ pushBase();
41
+ }
42
+ continue;
43
+ }
44
+ if (menuKey === 'relation') {
45
+ if (!relationAdded) {
46
+ relationAdded = true;
47
+ pushRelation();
48
+ }
49
+ continue;
50
+ }
51
+ var item = extraMap.get(menuKey);
52
+ if (item && !placedExtraKeys.has(item.key)) {
53
+ placedExtraKeys.add(item.key);
54
+ list.push({
55
+ key: item.key,
56
+ label: item.label,
57
+ children: React__default.cloneElement(item.children, { senseGlobalCode: senseGlobalCode }),
58
+ });
59
+ }
27
60
  }
28
- if (extraTopMenu) {
29
- list.push.apply(list, extraTopMenu.map(function (item) { return ({
30
- key: item.key,
31
- label: item.label,
32
- children: React__default.cloneElement(item.children, { senseGlobalCode: senseGlobalCode }),
33
- }); }));
61
+ for (var _a = 0, _b = extraTopMenu !== null && extraTopMenu !== void 0 ? extraTopMenu : []; _a < _b.length; _a++) {
62
+ var item = _b[_a];
63
+ if (!placedExtraKeys.has(item.key)) {
64
+ placedExtraKeys.add(item.key);
65
+ list.push({
66
+ key: item.key,
67
+ label: item.label,
68
+ children: React__default.cloneElement(item.children, { senseGlobalCode: senseGlobalCode }),
69
+ });
70
+ }
34
71
  }
35
72
  return list;
36
- })();
73
+ }, [
74
+ topMenuConfig,
75
+ topMenuLabels,
76
+ extraTopMenu,
77
+ senseGlobalCode,
78
+ enableTag,
79
+ hideBook,
80
+ hideVideoMonitoring,
81
+ onClickSense,
82
+ onGetSenseDetail,
83
+ senseInfoTextColor,
84
+ senseInfoBorderColor,
85
+ senseInfoBorderWidth,
86
+ senseInfoBorderStyle,
87
+ hideFields,
88
+ isFieldHidden,
89
+ renderValue,
90
+ customVideoPlayer,
91
+ extraCollapseItems,
92
+ ]);
93
+ var defaultActiveKey = (_b = (_a = tabItems === null || tabItems === void 0 ? void 0 : tabItems[0]) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : 'base';
37
94
  useEffect(function () {
38
95
  document.documentElement.style.setProperty('--tabs-bg-color', tabsBgColor ? tabsBgColor : '#3498db');
39
96
  document.documentElement.style.setProperty('--sense-detail-card-name-color', contentCardNameColor ? contentCardNameColor : 'rgba(255, 255, 255, 0.85)');
@@ -42,7 +99,7 @@ var SenseDetail = function (props) {
42
99
  document.documentElement.style.setProperty('--sense-detail-card-bg-color', contentCardBgColor ? contentCardBgColor : 'rgba(60, 240, 225, 0.08)');
43
100
  }, []);
44
101
  return (React__default.createElement("div", { className: styles.container },
45
- React__default.createElement("div", { className: styles.tabs }, (topMenuConfig === null || topMenuConfig === void 0 ? void 0 : topMenuConfig.length) ? (React__default.createElement(Tabs, { items: tabItems, defaultActiveKey: "base", className: "senseDetailTab" })) : (React__default.createElement(Base, { senseGlobalCode: senseGlobalCode, enableTag: enableTag, senseInfoTextColor: senseInfoTextColor, senseInfoBorderColor: senseInfoBorderColor, senseInfoBorderWidth: senseInfoBorderWidth, senseInfoBorderStyle: senseInfoBorderStyle, onGetSenseDetail: onGetSenseDetail, hideFields: hideFields, isFieldHidden: isFieldHidden, renderValue: renderValue, customVideoPlayer: customVideoPlayer, extraCollapseItems: extraCollapseItems, hideVideoMonitoring: hideVideoMonitoring })))));
102
+ React__default.createElement("div", { className: styles.tabs }, (topMenuConfig === null || topMenuConfig === void 0 ? void 0 : topMenuConfig.length) ? (React__default.createElement(Tabs, { items: tabItems, defaultActiveKey: defaultActiveKey, className: "senseDetailTab" })) : (React__default.createElement(Base, { senseGlobalCode: senseGlobalCode, enableTag: enableTag, senseInfoTextColor: senseInfoTextColor, senseInfoBorderColor: senseInfoBorderColor, senseInfoBorderWidth: senseInfoBorderWidth, senseInfoBorderStyle: senseInfoBorderStyle, onGetSenseDetail: onGetSenseDetail, hideFields: hideFields, isFieldHidden: isFieldHidden, renderValue: renderValue, customVideoPlayer: customVideoPlayer, extraCollapseItems: extraCollapseItems, hideVideoMonitoring: hideVideoMonitoring })))));
46
103
  };
47
104
 
48
105
  export { SenseDetail as default };
@@ -8,9 +8,19 @@ export interface SenseDetailProps {
8
8
  */
9
9
  senseGlobalCode: string;
10
10
  /**
11
- * 顶部菜单栏控制,基础信息 - `base`,关联信息 - `relation`
11
+ * 顶部标签顺序:按数组顺序渲染。
12
+ * - 内置:`base`(基础信息)、`relation`(关联信息)
13
+ * - 扩展:`extraTopMenu` 中某项的 `key`,可插在任意位置
14
+ * 未出现在本数组中的 `extraTopMenu` 项仍会按其在 `extraTopMenu` 中的顺序追加在末尾(兼容旧用法)。
12
15
  */
13
- topMenuConfig?: ('base' | 'relation')[];
16
+ topMenuConfig?: string[];
17
+ /**
18
+ * 内置顶部 Tab 文案;未传字段则沿用默认「基础信息」「关联信息」。
19
+ */
20
+ topMenuLabels?: {
21
+ base?: string;
22
+ relation?: string;
23
+ };
14
24
  /**
15
25
  * 启用标签
16
26
  */
package/dist/es/index.js CHANGED
@@ -49,9 +49,9 @@ export { default as CcosVideoPlayer } from './components/VideoPlayer/ccos.js';
49
49
  export { setCconfig as config } from './utils/config.js';
50
50
 
51
51
  try {
52
- window._ICOS_DESKTOP_VERSION_ = JSON.parse('{"version":"4.0.1","branch":"release_v4.0.0","buildDate":"2026-04-08 14:23:35"}');
52
+ window._ICOS_DESKTOP_VERSION_ = JSON.parse('{"version":"4.0.2","branch":"release_v4.0.0","buildDate":"2026-05-08 14:56:25"}');
53
53
  }
54
54
  catch (err) {
55
55
  console.warn(err);
56
- window._ICOS_DESKTOP_VERSION_ = '{"version":"4.0.1","branch":"release_v4.0.0","buildDate":"2026-04-08 14:23:35"}';
56
+ window._ICOS_DESKTOP_VERSION_ = '{"version":"4.0.2","branch":"release_v4.0.0","buildDate":"2026-05-08 14:56:25"}';
57
57
  }
@@ -8560,35 +8560,92 @@ var styles$f = {"container":"SenseDetail-module_container__lF2vB","tabs":"SenseD
8560
8560
  styleInject(css_248z$f);
8561
8561
 
8562
8562
  var SenseDetail = function (props) {
8563
- var senseGlobalCode = props.senseGlobalCode, topMenuConfig = props.topMenuConfig, enableTag = props.enableTag, extraTopMenu = props.extraTopMenu, hideBook = props.hideBook, hideVideoMonitoring = props.hideVideoMonitoring, onClickSense = props.onClickSense, onGetSenseDetail = props.onGetSenseDetail, tabsBgColor = props.tabsBgColor, contentCardNameColor = props.contentCardNameColor, contentCardContentColor = props.contentCardContentColor, contentCardBorderColor = props.contentCardBorderColor, contentCardBgColor = props.contentCardBgColor, senseInfoTextColor = props.senseInfoTextColor, senseInfoBorderColor = props.senseInfoBorderColor, senseInfoBorderWidth = props.senseInfoBorderWidth, senseInfoBorderStyle = props.senseInfoBorderStyle, hideFields = props.hideFields, isFieldHidden = props.isFieldHidden, renderValue = props.renderValue, customVideoPlayer = props.customVideoPlayer, extraCollapseItems = props.extraCollapseItems;
8564
- var tabItems = (function () {
8563
+ var _a, _b;
8564
+ var senseGlobalCode = props.senseGlobalCode, topMenuConfig = props.topMenuConfig, topMenuLabels = props.topMenuLabels, enableTag = props.enableTag, extraTopMenu = props.extraTopMenu, hideBook = props.hideBook, hideVideoMonitoring = props.hideVideoMonitoring, onClickSense = props.onClickSense, onGetSenseDetail = props.onGetSenseDetail, tabsBgColor = props.tabsBgColor, contentCardNameColor = props.contentCardNameColor, contentCardContentColor = props.contentCardContentColor, contentCardBorderColor = props.contentCardBorderColor, contentCardBgColor = props.contentCardBgColor, senseInfoTextColor = props.senseInfoTextColor, senseInfoBorderColor = props.senseInfoBorderColor, senseInfoBorderWidth = props.senseInfoBorderWidth, senseInfoBorderStyle = props.senseInfoBorderStyle, hideFields = props.hideFields, isFieldHidden = props.isFieldHidden, renderValue = props.renderValue, customVideoPlayer = props.customVideoPlayer, extraCollapseItems = props.extraCollapseItems;
8565
+ var tabItems = useMemo$1(function () {
8565
8566
  var list = [];
8566
8567
  if (!(topMenuConfig === null || topMenuConfig === void 0 ? void 0 : topMenuConfig.length)) {
8567
8568
  return list;
8568
8569
  }
8569
- if (topMenuConfig.includes('base')) {
8570
+ var extraMap = new Map((extraTopMenu !== null && extraTopMenu !== void 0 ? extraTopMenu : []).map(function (e) { return [e.key, e]; }));
8571
+ var placedExtraKeys = new Set();
8572
+ var baseAdded = false;
8573
+ var relationAdded = false;
8574
+ var pushBase = function () {
8575
+ var _a;
8570
8576
  list.push({
8571
8577
  key: 'base',
8572
- label: '基础信息',
8578
+ label: (_a = topMenuLabels === null || topMenuLabels === void 0 ? void 0 : topMenuLabels.base) !== null && _a !== void 0 ? _a : '基础信息',
8573
8579
  children: (React__default.createElement(Base, { senseInfoTextColor: senseInfoTextColor, senseInfoBorderColor: senseInfoBorderColor, senseInfoBorderWidth: senseInfoBorderWidth, senseInfoBorderStyle: senseInfoBorderStyle, senseGlobalCode: senseGlobalCode, enableTag: enableTag, onGetSenseDetail: onGetSenseDetail, hideFields: hideFields, isFieldHidden: isFieldHidden, renderValue: renderValue, customVideoPlayer: customVideoPlayer, extraCollapseItems: extraCollapseItems, hideVideoMonitoring: hideVideoMonitoring })),
8574
8580
  });
8575
- }
8576
- if (topMenuConfig.includes('relation')) {
8581
+ };
8582
+ var pushRelation = function () {
8583
+ var _a;
8577
8584
  list.push({
8578
8585
  key: 'relation',
8579
- label: '关联信息',
8586
+ label: (_a = topMenuLabels === null || topMenuLabels === void 0 ? void 0 : topMenuLabels.relation) !== null && _a !== void 0 ? _a : '关联信息',
8580
8587
  children: (React__default.createElement(Relation, { senseGlobalCode: senseGlobalCode, hideBook: hideBook, onClickSense: onClickSense })),
8581
8588
  });
8589
+ };
8590
+ for (var _i = 0, topMenuConfig_1 = topMenuConfig; _i < topMenuConfig_1.length; _i++) {
8591
+ var menuKey = topMenuConfig_1[_i];
8592
+ if (menuKey === 'base') {
8593
+ if (!baseAdded) {
8594
+ baseAdded = true;
8595
+ pushBase();
8596
+ }
8597
+ continue;
8598
+ }
8599
+ if (menuKey === 'relation') {
8600
+ if (!relationAdded) {
8601
+ relationAdded = true;
8602
+ pushRelation();
8603
+ }
8604
+ continue;
8605
+ }
8606
+ var item = extraMap.get(menuKey);
8607
+ if (item && !placedExtraKeys.has(item.key)) {
8608
+ placedExtraKeys.add(item.key);
8609
+ list.push({
8610
+ key: item.key,
8611
+ label: item.label,
8612
+ children: React__default.cloneElement(item.children, { senseGlobalCode: senseGlobalCode }),
8613
+ });
8614
+ }
8582
8615
  }
8583
- if (extraTopMenu) {
8584
- list.push.apply(list, extraTopMenu.map(function (item) { return ({
8585
- key: item.key,
8586
- label: item.label,
8587
- children: React__default.cloneElement(item.children, { senseGlobalCode: senseGlobalCode }),
8588
- }); }));
8616
+ for (var _a = 0, _b = extraTopMenu !== null && extraTopMenu !== void 0 ? extraTopMenu : []; _a < _b.length; _a++) {
8617
+ var item = _b[_a];
8618
+ if (!placedExtraKeys.has(item.key)) {
8619
+ placedExtraKeys.add(item.key);
8620
+ list.push({
8621
+ key: item.key,
8622
+ label: item.label,
8623
+ children: React__default.cloneElement(item.children, { senseGlobalCode: senseGlobalCode }),
8624
+ });
8625
+ }
8589
8626
  }
8590
8627
  return list;
8591
- })();
8628
+ }, [
8629
+ topMenuConfig,
8630
+ topMenuLabels,
8631
+ extraTopMenu,
8632
+ senseGlobalCode,
8633
+ enableTag,
8634
+ hideBook,
8635
+ hideVideoMonitoring,
8636
+ onClickSense,
8637
+ onGetSenseDetail,
8638
+ senseInfoTextColor,
8639
+ senseInfoBorderColor,
8640
+ senseInfoBorderWidth,
8641
+ senseInfoBorderStyle,
8642
+ hideFields,
8643
+ isFieldHidden,
8644
+ renderValue,
8645
+ customVideoPlayer,
8646
+ extraCollapseItems,
8647
+ ]);
8648
+ var defaultActiveKey = (_b = (_a = tabItems === null || tabItems === void 0 ? void 0 : tabItems[0]) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : 'base';
8592
8649
  useEffect(function () {
8593
8650
  document.documentElement.style.setProperty('--tabs-bg-color', tabsBgColor ? tabsBgColor : '#3498db');
8594
8651
  document.documentElement.style.setProperty('--sense-detail-card-name-color', contentCardNameColor ? contentCardNameColor : 'rgba(255, 255, 255, 0.85)');
@@ -8597,7 +8654,7 @@ var SenseDetail = function (props) {
8597
8654
  document.documentElement.style.setProperty('--sense-detail-card-bg-color', contentCardBgColor ? contentCardBgColor : 'rgba(60, 240, 225, 0.08)');
8598
8655
  }, []);
8599
8656
  return (React__default.createElement("div", { className: styles$f.container },
8600
- React__default.createElement("div", { className: styles$f.tabs }, (topMenuConfig === null || topMenuConfig === void 0 ? void 0 : topMenuConfig.length) ? (React__default.createElement(Tabs$1, { items: tabItems, defaultActiveKey: "base", className: "senseDetailTab" })) : (React__default.createElement(Base, { senseGlobalCode: senseGlobalCode, enableTag: enableTag, senseInfoTextColor: senseInfoTextColor, senseInfoBorderColor: senseInfoBorderColor, senseInfoBorderWidth: senseInfoBorderWidth, senseInfoBorderStyle: senseInfoBorderStyle, onGetSenseDetail: onGetSenseDetail, hideFields: hideFields, isFieldHidden: isFieldHidden, renderValue: renderValue, customVideoPlayer: customVideoPlayer, extraCollapseItems: extraCollapseItems, hideVideoMonitoring: hideVideoMonitoring })))));
8657
+ React__default.createElement("div", { className: styles$f.tabs }, (topMenuConfig === null || topMenuConfig === void 0 ? void 0 : topMenuConfig.length) ? (React__default.createElement(Tabs$1, { items: tabItems, defaultActiveKey: defaultActiveKey, className: "senseDetailTab" })) : (React__default.createElement(Base, { senseGlobalCode: senseGlobalCode, enableTag: enableTag, senseInfoTextColor: senseInfoTextColor, senseInfoBorderColor: senseInfoBorderColor, senseInfoBorderWidth: senseInfoBorderWidth, senseInfoBorderStyle: senseInfoBorderStyle, onGetSenseDetail: onGetSenseDetail, hideFields: hideFields, isFieldHidden: isFieldHidden, renderValue: renderValue, customVideoPlayer: customVideoPlayer, extraCollapseItems: extraCollapseItems, hideVideoMonitoring: hideVideoMonitoring })))));
8601
8658
  };
8602
8659
 
8603
8660
  var settings$i = {
@@ -13418,11 +13475,11 @@ var CcosVideoPlayer = function (props) {
13418
13475
  CcosVideoPlayer.settings = settings$1;
13419
13476
 
13420
13477
  try {
13421
- window._ICOS_DESKTOP_VERSION_ = JSON.parse('{"version":"4.0.1","branch":"release_v4.0.0","buildDate":"2026-04-08 14:23:35"}');
13478
+ window._ICOS_DESKTOP_VERSION_ = JSON.parse('{"version":"4.0.2","branch":"release_v4.0.0","buildDate":"2026-05-08 14:56:25"}');
13422
13479
  }
13423
13480
  catch (err) {
13424
13481
  console.warn(err);
13425
- window._ICOS_DESKTOP_VERSION_ = '{"version":"4.0.1","branch":"release_v4.0.0","buildDate":"2026-04-08 14:23:35"}';
13482
+ window._ICOS_DESKTOP_VERSION_ = '{"version":"4.0.2","branch":"release_v4.0.0","buildDate":"2026-05-08 14:56:25"}';
13426
13483
  }
13427
13484
 
13428
13485
  export { AntdPxToRemProvider, BookDetail, BookGroupImport, BookGroupTable, BookImport, BookInfo, BookSelect, BookTable, CcosBookDetail, CcosImportTable, CcosSenseContentTable, CcosSenseCreate, CcosSenseDetail, CcosSenseEdit, CcosSenseFullTable, CcosSenseManager, CcosSenseSearch, CcosSenseTree, CcosSenseView, CcosTagConfig, CcosVideoControl, CcosVideoPlayer, EntityClassFilter, EntityClassTreeSelect, ImportTable, Modal, OrgTreeSelect, PersonSelector, ProTable$1 as ProTable, RegionCascader, RegionTreeSelect, RelationGraph, SenseContentTable, SenseCreate, SenseDetail, SenseEdit, SenseForm, SenseFullTable, SenseInfo, SenseManager, SenseSearch, SenseTable, SenseTree, SenseView, TagConfig, TagTreeSelect, VideoControl, VideoPlayer, setCconfig as config };