@next-libs/cmdb-instances 7.29.12 → 7.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/cjs/i18n/constants.js +6 -0
  2. package/dist/cjs/i18n/constants.js.map +1 -1
  3. package/dist/cjs/i18n/locales/en.js +7 -1
  4. package/dist/cjs/i18n/locales/en.js.map +1 -1
  5. package/dist/cjs/i18n/locales/zh.js +7 -1
  6. package/dist/cjs/i18n/locales/zh.js.map +1 -1
  7. package/dist/cjs/instance-detail/InstanceDetail.js +24 -10
  8. package/dist/cjs/instance-detail/InstanceDetail.js.map +1 -1
  9. package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +2 -2
  10. package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  11. package/dist/cjs/instance-list/InstanceList.js +84 -42
  12. package/dist/cjs/instance-list/InstanceList.js.map +1 -1
  13. package/dist/cjs/instance-list-table/AdvancedSearch.js +21 -1
  14. package/dist/cjs/instance-list-table/AdvancedSearch.js.map +1 -1
  15. package/dist/cjs/instance-list-table/DisplaySettings.js +44 -10
  16. package/dist/cjs/instance-list-table/DisplaySettings.js.map +1 -1
  17. package/dist/cjs/instance-list-table/DisplaySettingsModal.js +12 -2
  18. package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
  19. package/dist/cjs/instance-list-table/InstanceListTable.js +112 -1
  20. package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
  21. package/dist/cjs/instance-list-table/MoreButtonsContainer.js +1 -0
  22. package/dist/cjs/instance-list-table/MoreButtonsContainer.js.map +1 -1
  23. package/dist/esm/i18n/constants.js +6 -0
  24. package/dist/esm/i18n/constants.js.map +1 -1
  25. package/dist/esm/i18n/locales/en.js +7 -1
  26. package/dist/esm/i18n/locales/en.js.map +1 -1
  27. package/dist/esm/i18n/locales/zh.js +7 -1
  28. package/dist/esm/i18n/locales/zh.js.map +1 -1
  29. package/dist/esm/instance-detail/InstanceDetail.js +21 -10
  30. package/dist/esm/instance-detail/InstanceDetail.js.map +1 -1
  31. package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +2 -2
  32. package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  33. package/dist/esm/instance-list/InstanceList.js +91 -43
  34. package/dist/esm/instance-list/InstanceList.js.map +1 -1
  35. package/dist/esm/instance-list-table/AdvancedSearch.js +20 -1
  36. package/dist/esm/instance-list-table/AdvancedSearch.js.map +1 -1
  37. package/dist/esm/instance-list-table/DisplaySettings.js +45 -11
  38. package/dist/esm/instance-list-table/DisplaySettings.js.map +1 -1
  39. package/dist/esm/instance-list-table/DisplaySettings.module.css +7 -0
  40. package/dist/esm/instance-list-table/DisplaySettingsModal.js +13 -3
  41. package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
  42. package/dist/esm/instance-list-table/InstanceListTable.js +110 -1
  43. package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
  44. package/dist/esm/instance-list-table/MoreButtonsContainer.js +1 -0
  45. package/dist/esm/instance-list-table/MoreButtonsContainer.js.map +1 -1
  46. package/dist/types/i18n/constants.d.ts +7 -1
  47. package/dist/types/instance-detail/components/instance-relation-table-show/instance-relation-table-show.d.ts +4 -2
  48. package/dist/types/instance-list/InstanceList.d.ts +8 -3
  49. package/dist/types/instance-list-table/DisplaySettings.d.ts +8 -0
  50. package/dist/types/instance-list-table/InstanceListTable.d.ts +12 -5
  51. package/package.json +3 -3
@@ -140,8 +140,24 @@ function updateSortFields(oldFields, sortInfo, sortType) {
140
140
  });
141
141
  }
142
142
  function translateConditions(aq, idObjectMap, modelData, t) {
143
+ var _modelData$view, _modelData$view$trans;
143
144
  const conditions = [];
144
145
  const relations = [];
146
+ const transHierRelations = [];
147
+ (_modelData$view = modelData.view) === null || _modelData$view === void 0 ? void 0 : (_modelData$view$trans = _modelData$view.trans_hier_relation_list) === null || _modelData$view$trans === void 0 ? void 0 : _modelData$view$trans.forEach(relation => {
148
+ var _relation$display_key;
149
+ const nameKeys = (_relation$display_key = relation.display_keys) !== null && _relation$display_key !== void 0 && _relation$display_key.length ? relation.display_keys : (0, _cmdbUtils.getInstanceNameKeys)(idObjectMap[relation.relation_object]);
150
+ nameKeys.forEach(nameKey => {
151
+ transHierRelations.push({
152
+ id: `${relation.relation_id}.${nameKey}`,
153
+ name: relation.relation_name,
154
+ value: {
155
+ type: "str"
156
+ },
157
+ relationSideId: relation.relation_id
158
+ });
159
+ });
160
+ });
145
161
  modelData.relation_list.forEach(relation => {
146
162
  let sidesArr = [];
147
163
  if ((0, _cmdbUtils.isSelfRelation)(relation)) {
@@ -183,7 +199,7 @@ function translateConditions(aq, idObjectMap, modelData, t) {
183
199
  });
184
200
  });
185
201
  });
186
- const attrAndRelationList = [...modelData.attrList, ...relations];
202
+ const attrAndRelationList = [...modelData.attrList, ...relations, ...transHierRelations];
187
203
  if (!(0, _lodash.isEmpty)(aq)) {
188
204
  for (const query of aq) {
189
205
  let queries = [query];
@@ -429,7 +445,7 @@ function LegacyInstanceList(props) {
429
445
  };
430
446
  };
431
447
 
432
- // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序
448
+ // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 fieldIds 进行排序
433
449
  const _sortFieldIds = fieldIds => {
434
450
  var _props$presetConfigs2;
435
451
  let frontFields = [];
@@ -437,14 +453,7 @@ function LegacyInstanceList(props) {
437
453
  if ((_props$presetConfigs2 = props.presetConfigs) !== null && _props$presetConfigs2 !== void 0 && _props$presetConfigs2.fieldIds) {
438
454
  frontFields = (0, _lodash.filter)(props.presetConfigs.fieldIds, id => fieldIds.includes(id));
439
455
  }
440
- restFields = (0, _lodash.sortBy)((0, _lodash.reject)(fieldIds, id => frontFields.includes(id)), fieldId => {
441
- const foundIndex = (0, _lodash.findIndex)(modelData.view.attr_order, orderId => orderId === fieldId);
442
- if (foundIndex === -1) {
443
- return null;
444
- } else {
445
- return foundIndex;
446
- }
447
- });
456
+ restFields = (0, _lodash.reject)(fieldIds, id => frontFields.includes(id));
448
457
  return [...frontFields, ...restFields];
449
458
  };
450
459
  // istanbul ignore next
@@ -693,7 +702,7 @@ function LegacyInstanceList(props) {
693
702
  return promise ? promise : props.useExternalCmdbApi ? externalPostSearchV3.query([{
694
703
  ...v3Data,
695
704
  ...externalRequestParams
696
- }]) : props.useAutoDiscoveryProvider ? listProvider.query([props.objectId, v3Data]) : props.ignorePermission ? ignorePermissionProvider.query([props.objectId, v3Data]) : (0, _cmdbSdk.InstanceApi_postSearchV3)(props.objectId, v3Data);
705
+ }]) : props.useAutoDiscoveryProvider ? listProvider.query([props.objectId, v3Data]) : props.ignorePermission ? ignorePermissionProvider.query([props.objectId, v3Data]) : (0, _cmdbSdk.InstanceApi_postSearchV3)(props.objectId, v3Data); //涉及到v3data的请求
697
706
  };
698
707
  const refreshInstanceList = async (sort, asc, page) => {
699
708
  setState({
@@ -1063,6 +1072,38 @@ function LegacyInstanceList(props) {
1063
1072
  isReset,
1064
1073
  isAdminSetDisplay
1065
1074
  }) => {
1075
+ const onConfirm = async () => {
1076
+ if (props.saveFieldsBackend) {
1077
+ try {
1078
+ const sortFields = mergeFields(state.sortFields, fields);
1079
+ if (props.useExternalCmdbApi) {
1080
+ await externalUpdateFieldsProvider.query([{
1081
+ object_id: props.objectId,
1082
+ sourceId: props.externalSourceId,
1083
+ sortFields
1084
+ }]);
1085
+ } else {
1086
+ await updateFieldsProvider.query([props.objectId, {
1087
+ sortFields
1088
+ }]);
1089
+ }
1090
+ setState({
1091
+ fieldIds: _sortFieldIds(fields),
1092
+ sortFields
1093
+ });
1094
+ } catch (e) {
1095
+ (0, _brickKit.handleHttpError)(e);
1096
+ }
1097
+ } else {
1098
+ const sortFields = mergeFields(state.sortFields, fields);
1099
+ setState({
1100
+ fieldIds: _sortFieldIds(fields),
1101
+ sortFields
1102
+ });
1103
+ jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, _sortFieldIds(fields));
1104
+ }
1105
+ props.onFieldsModalConfirm(fields);
1106
+ };
1066
1107
  if (isReset) {
1067
1108
  // 恢复默认操作
1068
1109
  const fieldIds = defaultFields;
@@ -1095,34 +1136,7 @@ function LegacyInstanceList(props) {
1095
1136
  } else {
1096
1137
  if (!isAdminSetDisplay) {
1097
1138
  // 点击确定按钮触发
1098
- if (props.saveFieldsBackend) {
1099
- try {
1100
- const sortFields = mergeFields(state.sortFields, fields);
1101
- if (props.useExternalCmdbApi) {
1102
- await externalUpdateFieldsProvider.query([{
1103
- object_id: props.objectId,
1104
- sourceId: props.externalSourceId,
1105
- sortFields
1106
- }]);
1107
- } else {
1108
- await updateFieldsProvider.query([props.objectId, {
1109
- sortFields
1110
- }]);
1111
- }
1112
- setState({
1113
- fieldIds: _sortFieldIds(fields),
1114
- sortFields
1115
- });
1116
- } catch (e) {
1117
- (0, _brickKit.handleHttpError)(e);
1118
- }
1119
- } else {
1120
- setState({
1121
- fieldIds: _sortFieldIds(fields)
1122
- });
1123
- jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);
1124
- }
1125
- props.onFieldsModalConfirm(fields);
1139
+ await onConfirm();
1126
1140
  } else {
1127
1141
  // 点击【默认显示】按钮触发,不影响当前列表显示。
1128
1142
  try {
@@ -1132,6 +1146,7 @@ function LegacyInstanceList(props) {
1132
1146
  sortFields: sortFields,
1133
1147
  isDefault: true
1134
1148
  }]);
1149
+ await onConfirm();
1135
1150
  _antd.message.success(_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.SET_DEFAULT_DISPLAY_SUCCESS}`));
1136
1151
  setState({
1137
1152
  backendDefaultFields: sortFields
@@ -1189,7 +1204,7 @@ function LegacyInstanceList(props) {
1189
1204
  } else if (props.useAutoDiscoveryProvider) {
1190
1205
  resp = await listProvider.query([props.objectId, v3Data]);
1191
1206
  } else {
1192
- resp = await (0, _cmdbSdk.InstanceApi_postSearchV3)(props.objectId, v3Data);
1207
+ resp = await (0, _cmdbSdk.InstanceApi_postSearchV3)(props.objectId, v3Data); //涉及到v3data的请求
1193
1208
  }
1194
1209
  resp.list.forEach(i => cache.current.set(i.instanceId, i));
1195
1210
  })();
@@ -1503,6 +1518,7 @@ function LegacyInstanceList(props) {
1503
1518
  */
1504
1519
  function LegacyInstanceListWrapper(props) {
1505
1520
  const [objectList, setObjectList] = (0, _react.useState)(props.objectList);
1521
+ const [mergeObjectList, setMergeObjectList] = (0, _react.useState)(props.objectList);
1506
1522
  const externalGetObjectRef = (0, _brickKit.useProvider)("easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0", {
1507
1523
  cache: false
1508
1524
  });
@@ -1538,9 +1554,35 @@ function LegacyInstanceListWrapper(props) {
1538
1554
  })();
1539
1555
  }
1540
1556
  }, [props.objectId, props.objectList]);
1541
- if (!objectList || !objectList.find(item => item.objectId === props.objectId)) return null;
1557
+ (0, _react.useEffect)(() => {
1558
+ if (!(objectList !== null && objectList !== void 0 && objectList.length) && (0, _lodash.isEqual)(objectList, mergeObjectList)) return;
1559
+ (async (_object$view, _object$view$trans_hi) => {
1560
+ const object = objectList === null || objectList === void 0 ? void 0 : objectList.find(item => item.objectId === props.objectId);
1561
+ const transHierRelationSideObjectIds = object === null || object === void 0 ? void 0 : (_object$view = object.view) === null || _object$view === void 0 ? void 0 : (_object$view$trans_hi = _object$view.trans_hier_relation_list) === null || _object$view$trans_hi === void 0 ? void 0 : _object$view$trans_hi.map(i => i.relation_object);
1562
+ if (transHierRelationSideObjectIds !== null && transHierRelationSideObjectIds !== void 0 && transHierRelationSideObjectIds.length && !transHierRelationSideObjectIds.every(i => objectList.some(o => o.objectId === i))) {
1563
+ var _list;
1564
+ let list;
1565
+ if (props.useExternalCmdbApi) {
1566
+ list = await externalGetObjectRef.query([{
1567
+ ref_object: transHierRelationSideObjectIds.join(","),
1568
+ sourceId: props.externalSourceId
1569
+ }]);
1570
+ } else {
1571
+ list = (await (0, _cmdbSdk.CmdbObjectApi_getObjectRef)({
1572
+ ref_object: transHierRelationSideObjectIds.join(",")
1573
+ })).data;
1574
+ }
1575
+ if ((_list = list) !== null && _list !== void 0 && _list.length) {
1576
+ objectList.push(...list);
1577
+ _constants2.objectListCache.set(props.objectId, objectList);
1578
+ }
1579
+ }
1580
+ setMergeObjectList(objectList);
1581
+ })();
1582
+ }, [objectList]);
1583
+ if (!mergeObjectList || !mergeObjectList.find(item => item.objectId === props.objectId)) return null;
1542
1584
  return /*#__PURE__*/_react.default.createElement(LegacyInstanceList, (0, _extends2.default)({}, props, {
1543
- objectList: objectList
1585
+ objectList: mergeObjectList
1544
1586
  }));
1545
1587
  }
1546
1588