@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
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
3
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
4
4
  import React, { useEffect, useReducer, useState, useRef, useMemo, useCallback } from "react";
5
- import { difference, isEmpty, isEqual, isString, map, uniq, union, filter, reject, sortBy, uniqueId, findIndex, find, startsWith, compact, omit, keyBy, isNil, get, isArray } from "lodash";
5
+ import { difference, isEmpty, isEqual, isString, map, uniq, union, filter, reject, uniqueId, find, startsWith, compact, omit, keyBy, isNil, get, isArray } from "lodash";
6
6
  import { BrickAsComponent, getRuntime, handleHttpError, useProvider } from "@next-core/brick-kit";
7
7
  import i18n from "i18next";
8
8
  import { K, NS_LIBS_CMDB_INSTANCES } from "../i18n/constants";
@@ -122,8 +122,24 @@ export function updateSortFields(oldFields, sortInfo, sortType) {
122
122
  });
123
123
  }
124
124
  export function translateConditions(aq, idObjectMap, modelData, t) {
125
+ var _modelData$view, _modelData$view$trans;
125
126
  var conditions = [];
126
127
  var relations = [];
128
+ var transHierRelations = [];
129
+ (_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 => {
130
+ var _relation$display_key;
131
+ var nameKeys = (_relation$display_key = relation.display_keys) !== null && _relation$display_key !== void 0 && _relation$display_key.length ? relation.display_keys : getInstanceNameKeys(idObjectMap[relation.relation_object]);
132
+ nameKeys.forEach(nameKey => {
133
+ transHierRelations.push({
134
+ id: "".concat(relation.relation_id, ".").concat(nameKey),
135
+ name: relation.relation_name,
136
+ value: {
137
+ type: "str"
138
+ },
139
+ relationSideId: relation.relation_id
140
+ });
141
+ });
142
+ });
127
143
  modelData.relation_list.forEach(relation => {
128
144
  var sidesArr = [];
129
145
  if (isSelfRelation(relation)) {
@@ -165,7 +181,7 @@ export function translateConditions(aq, idObjectMap, modelData, t) {
165
181
  });
166
182
  });
167
183
  });
168
- var attrAndRelationList = [...modelData.attrList, ...relations];
184
+ var attrAndRelationList = [...modelData.attrList, ...relations, ...transHierRelations];
169
185
  if (!isEmpty(aq)) {
170
186
  for (var _query of aq) {
171
187
  var _queries = [_query];
@@ -415,7 +431,7 @@ export function LegacyInstanceList(props) {
415
431
  };
416
432
  };
417
433
 
418
- // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序
434
+ // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 fieldIds 进行排序
419
435
  var _sortFieldIds = fieldIds => {
420
436
  var _props$presetConfigs2;
421
437
  var frontFields = [];
@@ -423,14 +439,7 @@ export function LegacyInstanceList(props) {
423
439
  if ((_props$presetConfigs2 = props.presetConfigs) !== null && _props$presetConfigs2 !== void 0 && _props$presetConfigs2.fieldIds) {
424
440
  frontFields = filter(props.presetConfigs.fieldIds, id => fieldIds.includes(id));
425
441
  }
426
- restFields = sortBy(reject(fieldIds, id => frontFields.includes(id)), fieldId => {
427
- var foundIndex = findIndex(modelData.view.attr_order, orderId => orderId === fieldId);
428
- if (foundIndex === -1) {
429
- return null;
430
- } else {
431
- return foundIndex;
432
- }
433
- });
442
+ restFields = reject(fieldIds, id => frontFields.includes(id));
434
443
  return [...frontFields, ...restFields];
435
444
  };
436
445
  // istanbul ignore next
@@ -678,7 +687,7 @@ export function LegacyInstanceList(props) {
678
687
  var promise = (_props$onSearchExecut = props.onSearchExecute) === null || _props$onSearchExecut === void 0 ? void 0 : _props$onSearchExecut.call(props, data, v3Data);
679
688
  // useAutoDiscoveryProvider=true, 使用useProvider的接口
680
689
  // useExternalCmdbApi= true 使用外部接口externalPostSearchV3
681
- return promise ? promise : props.useExternalCmdbApi ? externalPostSearchV3.query([_objectSpread(_objectSpread({}, v3Data), externalRequestParams)]) : props.useAutoDiscoveryProvider ? listProvider.query([props.objectId, v3Data]) : props.ignorePermission ? ignorePermissionProvider.query([props.objectId, v3Data]) : InstanceApi_postSearchV3(props.objectId, v3Data);
690
+ return promise ? promise : props.useExternalCmdbApi ? externalPostSearchV3.query([_objectSpread(_objectSpread({}, v3Data), externalRequestParams)]) : props.useAutoDiscoveryProvider ? listProvider.query([props.objectId, v3Data]) : props.ignorePermission ? ignorePermissionProvider.query([props.objectId, v3Data]) : InstanceApi_postSearchV3(props.objectId, v3Data); //涉及到v3data的请求
682
691
  });
683
692
  return function getInstanceListData(_x2, _x3, _x4) {
684
693
  return _ref6.apply(this, arguments);
@@ -1070,6 +1079,43 @@ export function LegacyInstanceList(props) {
1070
1079
  isReset,
1071
1080
  isAdminSetDisplay
1072
1081
  } = _ref12;
1082
+ var onConfirm = /*#__PURE__*/function () {
1083
+ var _ref14 = _asyncToGenerator(function* () {
1084
+ if (props.saveFieldsBackend) {
1085
+ try {
1086
+ var sortFields = mergeFields(state.sortFields, fields);
1087
+ if (props.useExternalCmdbApi) {
1088
+ yield externalUpdateFieldsProvider.query([{
1089
+ object_id: props.objectId,
1090
+ sourceId: props.externalSourceId,
1091
+ sortFields
1092
+ }]);
1093
+ } else {
1094
+ yield updateFieldsProvider.query([props.objectId, {
1095
+ sortFields
1096
+ }]);
1097
+ }
1098
+ setState({
1099
+ fieldIds: _sortFieldIds(fields),
1100
+ sortFields
1101
+ });
1102
+ } catch (e) {
1103
+ handleHttpError(e);
1104
+ }
1105
+ } else {
1106
+ var _sortFields = mergeFields(state.sortFields, fields);
1107
+ setState({
1108
+ fieldIds: _sortFieldIds(fields),
1109
+ sortFields: _sortFields
1110
+ });
1111
+ jsonLocalStorage.setItem("".concat(modelData.objectId, "-selectAttrIds"), _sortFieldIds(fields));
1112
+ }
1113
+ props.onFieldsModalConfirm(fields);
1114
+ });
1115
+ return function onConfirm() {
1116
+ return _ref14.apply(this, arguments);
1117
+ };
1118
+ }();
1073
1119
  if (isReset) {
1074
1120
  // 恢复默认操作
1075
1121
  var fieldIds = defaultFields;
@@ -1102,34 +1148,7 @@ export function LegacyInstanceList(props) {
1102
1148
  } else {
1103
1149
  if (!isAdminSetDisplay) {
1104
1150
  // 点击确定按钮触发
1105
- if (props.saveFieldsBackend) {
1106
- try {
1107
- var _sortFields = mergeFields(state.sortFields, fields);
1108
- if (props.useExternalCmdbApi) {
1109
- yield externalUpdateFieldsProvider.query([{
1110
- object_id: props.objectId,
1111
- sourceId: props.externalSourceId,
1112
- sortFields: _sortFields
1113
- }]);
1114
- } else {
1115
- yield updateFieldsProvider.query([props.objectId, {
1116
- sortFields: _sortFields
1117
- }]);
1118
- }
1119
- setState({
1120
- fieldIds: _sortFieldIds(fields),
1121
- sortFields: _sortFields
1122
- });
1123
- } catch (e) {
1124
- handleHttpError(e);
1125
- }
1126
- } else {
1127
- setState({
1128
- fieldIds: _sortFieldIds(fields)
1129
- });
1130
- jsonLocalStorage.setItem("".concat(modelData.objectId, "-selectAttrIds"), fields);
1131
- }
1132
- props.onFieldsModalConfirm(fields);
1151
+ yield onConfirm();
1133
1152
  } else {
1134
1153
  // 点击【默认显示】按钮触发,不影响当前列表显示。
1135
1154
  try {
@@ -1139,6 +1158,7 @@ export function LegacyInstanceList(props) {
1139
1158
  sortFields: _sortFields2,
1140
1159
  isDefault: true
1141
1160
  }]);
1161
+ yield onConfirm();
1142
1162
  message.success(i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.SET_DEFAULT_DISPLAY_SUCCESS)));
1143
1163
  setState({
1144
1164
  backendDefaultFields: _sortFields2
@@ -1197,7 +1217,7 @@ export function LegacyInstanceList(props) {
1197
1217
  } else if (props.useAutoDiscoveryProvider) {
1198
1218
  resp = yield listProvider.query([props.objectId, v3Data]);
1199
1219
  } else {
1200
- resp = yield InstanceApi_postSearchV3(props.objectId, v3Data);
1220
+ resp = yield InstanceApi_postSearchV3(props.objectId, v3Data); //涉及到v3data的请求
1201
1221
  }
1202
1222
  resp.list.forEach(i => cache.current.set(i.instanceId, i));
1203
1223
  })();
@@ -1511,6 +1531,7 @@ export function LegacyInstanceList(props) {
1511
1531
  */
1512
1532
  export function LegacyInstanceListWrapper(props) {
1513
1533
  var [objectList, setObjectList] = useState(props.objectList);
1534
+ var [mergeObjectList, setMergeObjectList] = useState(props.objectList);
1514
1535
  var externalGetObjectRef = useProvider("easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0", {
1515
1536
  cache: false
1516
1537
  });
@@ -1546,9 +1567,36 @@ export function LegacyInstanceListWrapper(props) {
1546
1567
  })();
1547
1568
  }
1548
1569
  }, [props.objectId, props.objectList]);
1549
- if (!objectList || !objectList.find(item => item.objectId === props.objectId)) return null;
1570
+ useEffect(() => {
1571
+ if (!(objectList !== null && objectList !== void 0 && objectList.length) && isEqual(objectList, mergeObjectList)) return;
1572
+ _asyncToGenerator(function* () {
1573
+ var _object$view, _object$view$trans_hi;
1574
+ var object = objectList === null || objectList === void 0 ? void 0 : objectList.find(item => item.objectId === props.objectId);
1575
+ var 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);
1576
+ if (transHierRelationSideObjectIds !== null && transHierRelationSideObjectIds !== void 0 && transHierRelationSideObjectIds.length && !transHierRelationSideObjectIds.every(i => objectList.some(o => o.objectId === i))) {
1577
+ var _list;
1578
+ var list;
1579
+ if (props.useExternalCmdbApi) {
1580
+ list = yield externalGetObjectRef.query([{
1581
+ ref_object: transHierRelationSideObjectIds.join(","),
1582
+ sourceId: props.externalSourceId
1583
+ }]);
1584
+ } else {
1585
+ list = (yield CmdbObjectApi_getObjectRef({
1586
+ ref_object: transHierRelationSideObjectIds.join(",")
1587
+ })).data;
1588
+ }
1589
+ if ((_list = list) !== null && _list !== void 0 && _list.length) {
1590
+ objectList.push(...list);
1591
+ objectListCache.set(props.objectId, objectList);
1592
+ }
1593
+ }
1594
+ setMergeObjectList(objectList);
1595
+ })();
1596
+ }, [objectList]);
1597
+ if (!mergeObjectList || !mergeObjectList.find(item => item.objectId === props.objectId)) return null;
1550
1598
  return /*#__PURE__*/React.createElement(LegacyInstanceList, _extends({}, props, {
1551
- objectList: objectList
1599
+ objectList: mergeObjectList
1552
1600
  }));
1553
1601
  }
1554
1602