@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.
- package/dist/cjs/i18n/constants.js +6 -0
- package/dist/cjs/i18n/constants.js.map +1 -1
- package/dist/cjs/i18n/locales/en.js +7 -1
- package/dist/cjs/i18n/locales/en.js.map +1 -1
- package/dist/cjs/i18n/locales/zh.js +7 -1
- package/dist/cjs/i18n/locales/zh.js.map +1 -1
- package/dist/cjs/instance-detail/InstanceDetail.js +24 -10
- package/dist/cjs/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +2 -2
- package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
- package/dist/cjs/instance-list/InstanceList.js +84 -42
- package/dist/cjs/instance-list/InstanceList.js.map +1 -1
- package/dist/cjs/instance-list-table/AdvancedSearch.js +21 -1
- package/dist/cjs/instance-list-table/AdvancedSearch.js.map +1 -1
- package/dist/cjs/instance-list-table/DisplaySettings.js +44 -10
- package/dist/cjs/instance-list-table/DisplaySettings.js.map +1 -1
- package/dist/cjs/instance-list-table/DisplaySettingsModal.js +12 -2
- package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
- package/dist/cjs/instance-list-table/InstanceListTable.js +112 -1
- package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/cjs/instance-list-table/MoreButtonsContainer.js +1 -0
- package/dist/cjs/instance-list-table/MoreButtonsContainer.js.map +1 -1
- package/dist/esm/i18n/constants.js +6 -0
- package/dist/esm/i18n/constants.js.map +1 -1
- package/dist/esm/i18n/locales/en.js +7 -1
- package/dist/esm/i18n/locales/en.js.map +1 -1
- package/dist/esm/i18n/locales/zh.js +7 -1
- package/dist/esm/i18n/locales/zh.js.map +1 -1
- package/dist/esm/instance-detail/InstanceDetail.js +21 -10
- package/dist/esm/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +2 -2
- package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
- package/dist/esm/instance-list/InstanceList.js +91 -43
- package/dist/esm/instance-list/InstanceList.js.map +1 -1
- package/dist/esm/instance-list-table/AdvancedSearch.js +20 -1
- package/dist/esm/instance-list-table/AdvancedSearch.js.map +1 -1
- package/dist/esm/instance-list-table/DisplaySettings.js +45 -11
- package/dist/esm/instance-list-table/DisplaySettings.js.map +1 -1
- package/dist/esm/instance-list-table/DisplaySettings.module.css +7 -0
- package/dist/esm/instance-list-table/DisplaySettingsModal.js +13 -3
- package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
- package/dist/esm/instance-list-table/InstanceListTable.js +110 -1
- package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/esm/instance-list-table/MoreButtonsContainer.js +1 -0
- package/dist/esm/instance-list-table/MoreButtonsContainer.js.map +1 -1
- package/dist/types/i18n/constants.d.ts +7 -1
- package/dist/types/instance-detail/components/instance-relation-table-show/instance-relation-table-show.d.ts +4 -2
- package/dist/types/instance-list/InstanceList.d.ts +8 -3
- package/dist/types/instance-list-table/DisplaySettings.d.ts +8 -0
- package/dist/types/instance-list-table/InstanceListTable.d.ts +12 -5
- 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,
|
|
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 进行排序,如果不在预定义的字段,则根据
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
1599
|
+
objectList: mergeObjectList
|
|
1552
1600
|
}));
|
|
1553
1601
|
}
|
|
1554
1602
|
|