@next-libs/cmdb-instances 7.13.1 → 7.13.3
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/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +60 -26
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- 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 +125 -26
- package/dist/cjs/instance-list/InstanceList.js.map +1 -1
- package/dist/cjs/instance-list-modal/InstanceListModal.js +19 -4
- package/dist/cjs/instance-list-modal/InstanceListModal.js.map +1 -1
- package/dist/cjs/instance-list-table/InstanceListTable.js +46 -9
- package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +58 -26
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- 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 +114 -25
- package/dist/esm/instance-list/InstanceList.js.map +1 -1
- package/dist/esm/instance-list-modal/InstanceListModal.js +19 -4
- package/dist/esm/instance-list-modal/InstanceListModal.js.map +1 -1
- package/dist/esm/instance-list-table/InstanceListTable.js +44 -9
- package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/esm/model-attribute-form/ModelAttributeForm.module.css +0 -3
- package/dist/types/cmdb-instances-select-panel/CmdbInstancesSelectPanel.d.ts +2 -0
- package/dist/types/instance-list/InstanceList.d.ts +2 -0
- package/dist/types/instance-list-modal/InstanceListModal.d.ts +2 -0
- package/dist/types/instance-list-table/InstanceListTable.d.ts +4 -1
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
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
|
-
import React, { useState, useEffect } from "react";
|
|
4
|
+
import React, { useState, useEffect, useMemo } from "react";
|
|
5
5
|
import classnames from "classnames";
|
|
6
6
|
import { InstanceApi_postSearch, CmdbObjectApi_getObjectRef } from "@next-sdk/cmdb-sdk";
|
|
7
7
|
import { InstanceListTable } from "../instance-list-table";
|
|
@@ -12,11 +12,19 @@ import i18n from "i18next";
|
|
|
12
12
|
import { K, NS_LIBS_CMDB_INSTANCES } from "../i18n/constants";
|
|
13
13
|
import { keyBy, isEqual, isNil, isObject, isEmpty } from "lodash";
|
|
14
14
|
import { Spin } from "antd";
|
|
15
|
+
import { useProvider } from "@next-core/brick-kit";
|
|
15
16
|
export function isCmdbInstancesSelectPanelPropsWithObjectMap(props) {
|
|
16
17
|
return !isNil(props.objectMap);
|
|
17
18
|
}
|
|
18
19
|
export function CmdbInstancesSelectPanel(props, ref) {
|
|
19
20
|
var _props$previewMaxNumb, _props$value, _props$instanceQuery, _props$modalTitle, _props$addTitle;
|
|
21
|
+
// 当useExternalCmdbApi为true, 外部接口才调用
|
|
22
|
+
var externalPostSearchV3 = useProvider("easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1", {
|
|
23
|
+
cache: false
|
|
24
|
+
});
|
|
25
|
+
var externalGetObjectRef = useProvider("easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0", {
|
|
26
|
+
cache: false
|
|
27
|
+
});
|
|
20
28
|
var modelData;
|
|
21
29
|
if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {
|
|
22
30
|
modelData = props.objectMap[props.objectId];
|
|
@@ -43,26 +51,38 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
43
51
|
visible: false
|
|
44
52
|
});
|
|
45
53
|
var [modelMap, setModelMap] = useState({});
|
|
54
|
+
var externalRequestParams = useMemo(() => {
|
|
55
|
+
return {
|
|
56
|
+
objectId: props.objectId,
|
|
57
|
+
sourceId: props.externalSourceId
|
|
58
|
+
};
|
|
59
|
+
}, [props.objectId, props.externalSourceId]);
|
|
46
60
|
var fetchInstances = /*#__PURE__*/function () {
|
|
47
61
|
var _ref = _asyncToGenerator(function* (instanceIdList) {
|
|
62
|
+
var _props$fields;
|
|
48
63
|
var instances = [];
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
instanceId: {
|
|
54
|
-
$in: instanceIdList
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
page: 1,
|
|
58
|
-
page_size: instanceIdList.length,
|
|
59
|
-
// todo(ice): selected confirm with instances
|
|
60
|
-
fields: (_props$fields = props.fields) !== null && _props$fields !== void 0 && _props$fields.length ? props.fields.reduce((prev, next) => _objectSpread(_objectSpread({}, prev), {}, {
|
|
61
|
-
[next]: true
|
|
62
|
-
}), {}) : {
|
|
63
|
-
"*": true
|
|
64
|
+
var instancesParams = _objectSpread({
|
|
65
|
+
query: {
|
|
66
|
+
instanceId: {
|
|
67
|
+
$in: instanceIdList
|
|
64
68
|
}
|
|
65
|
-
}
|
|
69
|
+
},
|
|
70
|
+
page: 1,
|
|
71
|
+
page_size: instanceIdList.length,
|
|
72
|
+
// todo(ice): selected confirm with instances
|
|
73
|
+
fields: (_props$fields = props.fields) !== null && _props$fields !== void 0 && _props$fields.length ? props.fields.reduce((prev, next) => _objectSpread(_objectSpread({}, prev), {}, {
|
|
74
|
+
[next]: true
|
|
75
|
+
}), {}) : {
|
|
76
|
+
"*": true
|
|
77
|
+
}
|
|
78
|
+
}, props.useExternalCmdbApi ? externalRequestParams : {});
|
|
79
|
+
if (instanceIdList !== null && instanceIdList !== void 0 && instanceIdList.length) {
|
|
80
|
+
// istanbul ignore if
|
|
81
|
+
if (props.useExternalCmdbApi) {
|
|
82
|
+
instances = (yield externalPostSearchV3.query([instancesParams])).list;
|
|
83
|
+
} else {
|
|
84
|
+
instances = (yield InstanceApi_postSearch(props.objectId, instancesParams)).list;
|
|
85
|
+
}
|
|
66
86
|
}
|
|
67
87
|
return instances;
|
|
68
88
|
});
|
|
@@ -75,15 +95,21 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
75
95
|
var getModelMap = /*#__PURE__*/function () {
|
|
76
96
|
var _ref2 = _asyncToGenerator(function* () {
|
|
77
97
|
var modelMap;
|
|
98
|
+
var objectRef;
|
|
78
99
|
if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {
|
|
79
100
|
modelMap = props.objectMap;
|
|
80
101
|
} else {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
102
|
+
if (props.useExternalCmdbApi) {
|
|
103
|
+
objectRef = yield externalGetObjectRef.query([_objectSpread({
|
|
104
|
+
ref_object: props.objectId
|
|
105
|
+
}, externalRequestParams)]);
|
|
106
|
+
} else {
|
|
107
|
+
var _yield$CmdbObjectApi_;
|
|
108
|
+
objectRef = (_yield$CmdbObjectApi_ = yield CmdbObjectApi_getObjectRef({
|
|
109
|
+
ref_object: props.objectId
|
|
110
|
+
})) === null || _yield$CmdbObjectApi_ === void 0 ? void 0 : _yield$CmdbObjectApi_.data;
|
|
111
|
+
}
|
|
112
|
+
modelMap = keyBy(objectRef, "objectId");
|
|
87
113
|
}
|
|
88
114
|
setModelMap(modelMap);
|
|
89
115
|
});
|
|
@@ -92,7 +118,7 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
92
118
|
};
|
|
93
119
|
}();
|
|
94
120
|
getModelMap();
|
|
95
|
-
}, [props.objectId]);
|
|
121
|
+
}, [props.objectId, props.useExternalCmdbApi, props.externalSourceId]);
|
|
96
122
|
useEffect(() => {
|
|
97
123
|
var instances = [];
|
|
98
124
|
var initInstances = /*#__PURE__*/function () {
|
|
@@ -197,7 +223,9 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
197
223
|
showSizeChanger: props.showSizeChanger,
|
|
198
224
|
pageSizeOptions: props.pageSizeOptions,
|
|
199
225
|
aq: props.aq,
|
|
200
|
-
saveFieldsBackend: props.saveFieldsBackend
|
|
226
|
+
saveFieldsBackend: props.saveFieldsBackend,
|
|
227
|
+
useExternalCmdbApi: props.useExternalCmdbApi,
|
|
228
|
+
externalSourceId: props.externalSourceId
|
|
201
229
|
}), /*#__PURE__*/React.createElement(InstanceListModal, {
|
|
202
230
|
objectMap: modelMap,
|
|
203
231
|
objectId: props.objectId,
|
|
@@ -222,7 +250,9 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
222
250
|
showSizeChanger: props.showSizeChanger,
|
|
223
251
|
pageSizeOptions: props.pageSizeOptions,
|
|
224
252
|
onCancel: closeAllSelectedInstancesModal,
|
|
225
|
-
saveFieldsBackend: props.saveFieldsBackend
|
|
253
|
+
saveFieldsBackend: props.saveFieldsBackend,
|
|
254
|
+
useExternalCmdbApi: props.useExternalCmdbApi,
|
|
255
|
+
externalSourceId: props.externalSourceId
|
|
226
256
|
}), /*#__PURE__*/React.createElement(Spin, {
|
|
227
257
|
style: {
|
|
228
258
|
textAlign: "left",
|
|
@@ -262,6 +292,8 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
262
292
|
//
|
|
263
293
|
,
|
|
264
294
|
isOperate: props.isOperate,
|
|
295
|
+
useExternalCmdbApi: props.useExternalCmdbApi,
|
|
296
|
+
externalSourceId: props.externalSourceId,
|
|
265
297
|
handleDeleteFunction: v => {
|
|
266
298
|
var _props$onChange2;
|
|
267
299
|
setSelectedInstanceList(v);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["React","useState","useEffect","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","isObject","isEmpty","Spin","isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","reduce","prev","next","list","toLoadInstanceIds","value","map","i","getModelMap","data","ref_object","initInstances","isOperate","slice","onFetchedInstances","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","showBindButton","bindButtonDisabled","bindButtonText","bindEvent","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","saveFieldsBackend","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","useModelName","CHOOSE_INSTANCE_NAME","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n Query,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n showBindButton?: boolean;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n bindEvent?: () => void;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n showPagination?: boolean;\n aq?: Query[];\n saveFieldsBackend?: boolean;\n useModelName?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n saveFieldsBackend?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n saveFieldsBackend?: boolean;\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n // const [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: props.fields?.length\n ? props.fields.reduce(\n (prev, next) => ({ ...prev, [next]: true }),\n {}\n )\n : { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId]);\n\n useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n pageSize={props.addInstancesModalPageSize}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n fieldIds: props.fields,\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"20px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ?? props.useModelName\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE_NAME}`, {\n name: modelData.name,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\n //\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["React","useState","useEffect","useMemo","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","isObject","isEmpty","Spin","useProvider","isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","externalPostSearchV3","cache","externalGetObjectRef","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","externalRequestParams","sourceId","externalSourceId","fetchInstances","instanceIdList","instances","instancesParams","query","instanceId","$in","page","page_size","length","fields","reduce","prev","next","useExternalCmdbApi","list","toLoadInstanceIds","value","map","i","getModelMap","objectRef","ref_object","data","initInstances","isOperate","slice","onFetchedInstances","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","showBindButton","bindButtonDisabled","bindButtonText","bindEvent","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","saveFieldsBackend","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","useModelName","CHOOSE_INSTANCE_NAME","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n Query,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\nimport { useProvider } from \"@next-core/brick-kit\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n showBindButton?: boolean;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n bindEvent?: () => void;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n showPagination?: boolean;\n aq?: Query[];\n saveFieldsBackend?: boolean;\n useModelName?: boolean;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n saveFieldsBackend?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n saveFieldsBackend?: boolean;\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n // 当useExternalCmdbApi为true, 外部接口才调用\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n const externalGetObjectRef = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0\",\n { cache: false }\n );\n\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n // const [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, props.externalSourceId]);\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n const instancesParams = {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: props.fields?.length\n ? props.fields.reduce((prev, next) => ({ ...prev, [next]: true }), {})\n : { \"*\": true },\n ...(props.useExternalCmdbApi ? externalRequestParams : {}),\n };\n if (instanceIdList?.length) {\n // istanbul ignore if\n if (props.useExternalCmdbApi) {\n instances = (await externalPostSearchV3.query([instancesParams])).list;\n } else {\n instances = (\n await InstanceApi_postSearch(props.objectId, instancesParams)\n ).list;\n }\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n let objectRef;\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n if (props.useExternalCmdbApi) {\n objectRef = await externalGetObjectRef.query([\n {\n ref_object: props.objectId,\n ...externalRequestParams,\n },\n ]);\n } else {\n objectRef = (\n (await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n })) as any\n )?.data;\n }\n modelMap = keyBy(objectRef, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId, props.useExternalCmdbApi, props.externalSourceId]);\n\n useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n pageSize={props.addInstancesModalPageSize}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\n saveFieldsBackend={props.saveFieldsBackend}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n fieldIds: props.fields,\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n saveFieldsBackend={props.saveFieldsBackend}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"20px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ?? props.useModelName\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE_NAME}`, {\n name: modelData.name,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\n //\n isOperate={props.isOperate}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n handleDeleteFunction={(v: any) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-relation-table-show.js","names":["React","useEffect","useState","modifyModelData","InstanceListTable","NS_LIBS_CMDB_INSTANCES","K","i18n","get","sortBy","keyBy","styles","fetchCmdbObjectRef","handleHttpError","reOrderAttrs","fields","fieldOrder","field","index","indexOf","length","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","InstanceRelationTableShow","props","modelDataMap","relationData","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","oppositeModelDataMap","setOppositeModelDataMap","fetchOppositeModelData","modelListData","right_object_id","data","catch","error","instanceSourceQuery","setInstanceSourceQuery","modelData","left_object_id","oppositeModelData","__id","fieldIds","attrList","attr","id","hideModelData","view","hide_columns","filter","includes","relation_list","left_id","right_id","display","hideRelationLink","list","instanceQuery","onInstanceSourceChange","filterInstanceSourceDisabled","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","totalText","t","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT"],"sources":["../../../../../src/instance-detail/components/instance-relation-table-show/instance-relation-table-show.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { Table } from \"antd\";\nimport {\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../../../instance-list-table\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../../i18n/constants\";\nimport i18n from \"i18next\";\nimport { get, sortBy, keyBy } from \"lodash\";\nimport styles from \"../../../instance-list-table/InstanceListTable.module.css\";\nimport { fetchCmdbObjectRef } from \"../../../data-providers\";\nimport { handleHttpError } from \"@next-core/brick-kit\";\nexport interface InstanceRelationTableShowProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n isPagination?: boolean;\n total?: number;\n relationTablePagination?: {\n current?: number;\n pageSize?: number;\n };\n paginationChange?: (\n page: number,\n pageSize: number,\n relationData: ModifiedModelObjectRelation\n ) => Promise<void> | void;\n hideRelationLink?: boolean;\n onInstanceSourceChange?: (instanceSource: string) => void;\n filterInstanceSourceDisabled?: boolean;\n}\nexport function reOrderAttrs(fields: string[], fieldOrder: string[] = []) {\n return sortBy(fields, (field) => {\n const index = fieldOrder.indexOf(field);\n return index === -1 ? fields.length : index;\n });\n}\nexport function getRelationShowFields(\n defaultRelationFields: string[],\n oppositeAttrList: string[],\n attr_order: string[] = []\n) {\n let showFields = oppositeAttrList;\n if (defaultRelationFields?.length) {\n showFields = reOrderAttrs(\n defaultRelationFields.map((item: string) =>\n item.startsWith(\"#\") ? item.slice(1) : item\n ),\n attr_order\n );\n }\n return showFields;\n}\n//istanbul ignore next\nexport function InstanceRelationTableShow(\n props: InstanceRelationTableShowProps\n): React.ReactElement {\n const {\n modelDataMap,\n relationData,\n value,\n relationFieldUrlTemplate,\n paginationChange,\n total,\n relationTablePagination,\n } = props;\n const [oppositeModelDataMap, setOppositeModelDataMap] = useState({});\n /**\n * 实例详情中展示对端实例的关系时,需要重新拉取对端关系所关联的模型。\n * 如在主机详情中展示负责人所在的角色,需要拿到与USER相关的模型ROLE@ONEMODEL\n * 而原来的modelDataMap是与HOST相关的,可能不包括ROLE@ONEMODEL,就造成取不到角色的showKey\n */\n useEffect(() => {\n const fetchOppositeModelData = async () => {\n const modelListData = await fetchCmdbObjectRef(\n relationData.right_object_id\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n const modelData = modelDataMap[relationData.left_object_id];\n let oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n // 如果指定了relation_default_attr,则取里面的字段\n const defaultRelationFields = get(modelData, [\n \"view\",\n \"relation_default_attr\",\n relationData.__id,\n ]);\n\n const fieldIds = getRelationShowFields(\n defaultRelationFields,\n oppositeModelData.attrList.map((attr) => attr.id),\n get(oppositeModelData, [\"view\", \"attr_order\"])\n );\n //过滤掉视图不可见字段\n const hideModelData = oppositeModelData.view?.hide_columns ?? [];\n oppositeModelData = {\n ...oppositeModelData,\n attrList: oppositeModelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: oppositeModelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.relationData.right_object_id) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.relationData.right_object_id)\n )\n ),\n };\n\n return (\n <div style={{ display: \"grid\" }}>\n <InstanceListTable\n detailUrlTemplates={\n props.hideRelationLink\n ? null\n : {\n [relationData.right_object_id]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n }\n }\n idObjectMap={oppositeModelDataMap}\n modelData={oppositeModelData}\n instanceListData={{\n list: value,\n }}\n onInstanceSourceChange={(instanceQuery) => {\n props.onInstanceSourceChange(instanceQuery);\n }}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={true}\n fieldIds={fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: props.isPagination\n ? {\n showSizeChanger: true,\n total: total,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n ...relationTablePagination,\n onChange: (page, pageSize) => {\n paginationChange(page, pageSize, relationData);\n },\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`\n )}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`\n )}\n </span>\n ),\n }\n : false,\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instance-relation-table-show.js","names":["React","useEffect","useState","modifyModelData","InstanceListTable","NS_LIBS_CMDB_INSTANCES","K","i18n","get","sortBy","keyBy","styles","fetchCmdbObjectRef","handleHttpError","reOrderAttrs","fields","fieldOrder","field","index","indexOf","length","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","InstanceRelationTableShow","props","modelDataMap","relationData","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","oppositeModelDataMap","setOppositeModelDataMap","fetchOppositeModelData","modelListData","right_object_id","data","catch","error","instanceSourceQuery","setInstanceSourceQuery","modelData","left_object_id","oppositeModelData","__id","fieldIds","attrList","attr","id","hideModelData","view","hide_columns","filter","includes","relation_list","left_id","right_id","display","hideRelationLink","list","instanceQuery","onInstanceSourceChange","filterInstanceSourceDisabled","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","totalText","t","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT"],"sources":["../../../../../src/instance-detail/components/instance-relation-table-show/instance-relation-table-show.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { Table } from \"antd\";\nimport {\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../../../instance-list-table\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../../i18n/constants\";\nimport i18n from \"i18next\";\nimport { get, sortBy, keyBy } from \"lodash\";\nimport styles from \"../../../instance-list-table/InstanceListTable.module.css\";\nimport { fetchCmdbObjectRef } from \"../../../data-providers\";\nimport { handleHttpError } from \"@next-core/brick-kit\";\nexport interface InstanceRelationTableShowProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n isPagination?: boolean;\n total?: number;\n relationTablePagination?: {\n current?: number;\n pageSize?: number;\n };\n paginationChange?: (\n page: number,\n pageSize: number,\n relationData: ModifiedModelObjectRelation\n ) => Promise<void> | void;\n hideRelationLink?: boolean;\n onInstanceSourceChange?: (instanceSource: string) => void;\n filterInstanceSourceDisabled?: boolean;\n}\nexport function reOrderAttrs(fields: string[], fieldOrder: string[] = []) {\n return sortBy(fields, (field) => {\n const index = fieldOrder.indexOf(field);\n return index === -1 ? fields.length : index;\n });\n}\nexport function getRelationShowFields(\n defaultRelationFields: string[],\n oppositeAttrList: string[],\n attr_order: string[] = []\n) {\n let showFields = oppositeAttrList;\n if (defaultRelationFields?.length) {\n showFields = reOrderAttrs(\n defaultRelationFields.map((item: string) =>\n item.startsWith(\"#\") ? item.slice(1) : item\n ),\n attr_order\n );\n }\n return showFields;\n}\n//istanbul ignore next\nexport function InstanceRelationTableShow(\n props: InstanceRelationTableShowProps\n): React.ReactElement {\n const {\n modelDataMap,\n relationData,\n value,\n relationFieldUrlTemplate,\n paginationChange,\n total,\n relationTablePagination,\n } = props;\n const [oppositeModelDataMap, setOppositeModelDataMap] = useState({});\n /**\n * 实例详情中展示对端实例的关系时,需要重新拉取对端关系所关联的模型。\n * 如在主机详情中展示负责人所在的角色,需要拿到与USER相关的模型ROLE@ONEMODEL\n * 而原来的modelDataMap是与HOST相关的,可能不包括ROLE@ONEMODEL,就造成取不到角色的showKey\n */\n useEffect(() => {\n const fetchOppositeModelData = async () => {\n const modelListData = await fetchCmdbObjectRef(\n relationData.right_object_id\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n const modelData = modelDataMap[relationData.left_object_id];\n let oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n // 如果指定了relation_default_attr,则取里面的字段\n const defaultRelationFields = get(modelData, [\n \"view\",\n \"relation_default_attr\",\n relationData.__id,\n ]);\n\n const fieldIds = getRelationShowFields(\n defaultRelationFields,\n oppositeModelData.attrList.map((attr) => attr.id),\n get(oppositeModelData, [\"view\", \"attr_order\"])\n );\n //过滤掉视图不可见字段\n const hideModelData = oppositeModelData.view?.hide_columns ?? [];\n oppositeModelData = {\n ...oppositeModelData,\n attrList: oppositeModelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: oppositeModelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.relationData.right_object_id) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.relationData.right_object_id)\n )\n ),\n };\n\n return (\n <div style={{ display: \"grid\" }}>\n <InstanceListTable\n detailUrlTemplates={\n props.hideRelationLink\n ? null\n : {\n [relationData.right_object_id]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n }\n }\n idObjectMap={oppositeModelDataMap}\n modelData={oppositeModelData}\n instanceListData={{\n list: value,\n }}\n onInstanceSourceChange={(instanceQuery: any) => {\n props.onInstanceSourceChange(instanceQuery);\n }}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={true}\n fieldIds={fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: props.isPagination\n ? {\n showSizeChanger: true,\n total: total,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n ...relationTablePagination,\n onChange: (page: number, pageSize: number) => {\n paginationChange(page, pageSize, relationData);\n },\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`\n )}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`\n )}\n </span>\n ),\n }\n : false,\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -312,6 +312,20 @@ export function LegacyInstanceList(props) {
|
|
|
312
312
|
var updateFieldsProvider = useProvider("easyops.api.cmdb.instance@UpdateListDisplayView:1.0.0", {
|
|
313
313
|
cache: false
|
|
314
314
|
});
|
|
315
|
+
|
|
316
|
+
// 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口
|
|
317
|
+
var externalPostSearchV3 = useProvider("easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1", {
|
|
318
|
+
cache: false
|
|
319
|
+
});
|
|
320
|
+
var externalGetIdMapName = useProvider("easyops.api.cmdb.topo_center@ProxyGetIdMapName:1.0.1", {
|
|
321
|
+
cache: false
|
|
322
|
+
});
|
|
323
|
+
var externalFieldsProvider = useProvider("easyops.api.cmdb.topo_center@ProxyGetListDisplayView:1.0.0", {
|
|
324
|
+
cache: false
|
|
325
|
+
});
|
|
326
|
+
var externalUpdateFieldsProvider = useProvider("easyops.api.cmdb.topo_center@ProxyUpdateListDisplayView:1.0.0", {
|
|
327
|
+
cache: false
|
|
328
|
+
});
|
|
315
329
|
var {
|
|
316
330
|
modelData,
|
|
317
331
|
idObjectMap
|
|
@@ -337,9 +351,16 @@ export function LegacyInstanceList(props) {
|
|
|
337
351
|
var idNameMap = {};
|
|
338
352
|
if (modelData.isAbstract) {
|
|
339
353
|
var _props$presetConfigs;
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
354
|
+
if (props.useExternalCmdbApi) {
|
|
355
|
+
idNameMap = yield externalGetIdMapName.query([{
|
|
356
|
+
parentObjectId: modelData.objectId,
|
|
357
|
+
sourceId: props.externalSourceId
|
|
358
|
+
}]);
|
|
359
|
+
} else {
|
|
360
|
+
idNameMap = yield CmdbObjectApi_getIdMapName({
|
|
361
|
+
parentObjectId: modelData.objectId
|
|
362
|
+
});
|
|
363
|
+
}
|
|
343
364
|
props.showFilterInstanceSource && jsonLocalStorage.setItem("instances-sources-objectId-name-map", {
|
|
344
365
|
parentObjectId: modelData.objectId,
|
|
345
366
|
query: (_props$presetConfigs = props.presetConfigs) === null || _props$presetConfigs === void 0 ? void 0 : _props$presetConfigs.query,
|
|
@@ -398,13 +419,20 @@ export function LegacyInstanceList(props) {
|
|
|
398
419
|
var sort = props.sort;
|
|
399
420
|
var fieldIds = (_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : _props$presetConfigs3.fieldIds;
|
|
400
421
|
var sortType = modelData === null || modelData === void 0 ? void 0 : (_modelData$attrList = modelData.attrList) === null || _modelData$attrList === void 0 ? void 0 : (_modelData$attrList$f2 = _modelData$attrList.find(attr => attr.id === sort)) === null || _modelData$attrList$f2 === void 0 ? void 0 : (_modelData$attrList$f3 = _modelData$attrList$f2.value) === null || _modelData$attrList$f3 === void 0 ? void 0 : _modelData$attrList$f3.default_type;
|
|
401
|
-
var asc;
|
|
422
|
+
var asc, sortFields;
|
|
402
423
|
if (props.asc === true) {
|
|
403
424
|
asc = ["series-number", "auto-increment-id"].includes(sortType) ? 2 : 1;
|
|
404
425
|
} else {
|
|
405
426
|
asc = ["series-number", "auto-increment-id"].includes(sortType) ? -2 : -1;
|
|
406
427
|
}
|
|
407
|
-
|
|
428
|
+
if (props.useExternalCmdbApi) {
|
|
429
|
+
sortFields = (yield externalFieldsProvider.query([{
|
|
430
|
+
object_id: props.objectId,
|
|
431
|
+
sourceId: props.externalSourceId
|
|
432
|
+
}])).sortFields;
|
|
433
|
+
} else {
|
|
434
|
+
sortFields = (yield fieldsProvider.query([props.objectId])).sortFields;
|
|
435
|
+
}
|
|
408
436
|
var extraFixedFieldIds = (_props$extraFixedFiel = props.extraFixedFields) !== null && _props$extraFixedFiel !== void 0 ? _props$extraFixedFiel : [];
|
|
409
437
|
if (isEmpty(fieldIds)) {
|
|
410
438
|
fieldIds = sortFields.map(item => item.field);
|
|
@@ -499,6 +527,14 @@ export function LegacyInstanceList(props) {
|
|
|
499
527
|
var [selectedRowKeys, setSelectedRowKeys] = useState((_props$selectedRowKey = props.selectedRowKeys) !== null && _props$selectedRowKey !== void 0 ? _props$selectedRowKey : []);
|
|
500
528
|
var cache = useRef(new Map());
|
|
501
529
|
var isFirstRunRef = useRef(true);
|
|
530
|
+
|
|
531
|
+
// useExternalCmdbApi为true,外部接口参数
|
|
532
|
+
var externalRequestParams = useMemo(() => {
|
|
533
|
+
return {
|
|
534
|
+
objectId: props.objectId,
|
|
535
|
+
sourceId: props.externalSourceId
|
|
536
|
+
};
|
|
537
|
+
}, [props.objectId, props.externalSourceId]);
|
|
502
538
|
var getInstanceListData = /*#__PURE__*/function () {
|
|
503
539
|
var _ref6 = _asyncToGenerator(function* (sort, asc, page) {
|
|
504
540
|
var _modelData$attrList2, _modelData$attrList2$, _modelData$attrList2$2, _props$onSearchExecut;
|
|
@@ -599,7 +635,8 @@ export function LegacyInstanceList(props) {
|
|
|
599
635
|
}
|
|
600
636
|
var promise = (_props$onSearchExecut = props.onSearchExecute) === null || _props$onSearchExecut === void 0 ? void 0 : _props$onSearchExecut.call(props, data, v3Data);
|
|
601
637
|
// useAutoDiscoveryProvider=true, 使用useProvider的接口
|
|
602
|
-
|
|
638
|
+
// useExternalCmdbApi= true 使用外部接口externalPostSearchV3
|
|
639
|
+
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);
|
|
603
640
|
});
|
|
604
641
|
return function getInstanceListData(_x2, _x3, _x4) {
|
|
605
642
|
return _ref6.apply(this, arguments);
|
|
@@ -764,10 +801,14 @@ export function LegacyInstanceList(props) {
|
|
|
764
801
|
$in: ids
|
|
765
802
|
}
|
|
766
803
|
},
|
|
767
|
-
page_size: ids.length
|
|
804
|
+
page_size: ids.length,
|
|
805
|
+
page: 1
|
|
768
806
|
};
|
|
769
|
-
//
|
|
770
|
-
if (props.
|
|
807
|
+
// useExternalCmdbApi为true,使用外部接口PostSearchV3
|
|
808
|
+
if (props.useExternalCmdbApi) {
|
|
809
|
+
resp = yield externalPostSearchV3.query([_objectSpread(_objectSpread({}, params), externalRequestParams)]);
|
|
810
|
+
} else if (props.useAutoDiscoveryProvider) {
|
|
811
|
+
// useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一
|
|
771
812
|
resp = yield listProvider.query([props.objectId, Object.assign(params, props.extraParams)]);
|
|
772
813
|
} else if (props.ignorePermission) {
|
|
773
814
|
resp = yield ignorePermissionProvider.query([props.objectId, Object.assign(params, props.extraParams)]);
|
|
@@ -835,9 +876,17 @@ export function LegacyInstanceList(props) {
|
|
|
835
876
|
setState({
|
|
836
877
|
sortFields: newSortFields
|
|
837
878
|
});
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
879
|
+
if (props.useExternalCmdbApi) {
|
|
880
|
+
yield externalUpdateFieldsProvider.query([{
|
|
881
|
+
object_id: props.objectId,
|
|
882
|
+
sourceId: props.externalSourceId,
|
|
883
|
+
sortFields: newSortFields
|
|
884
|
+
}]);
|
|
885
|
+
} else {
|
|
886
|
+
yield updateFieldsProvider.query([props.objectId, {
|
|
887
|
+
sortFields: newSortFields
|
|
888
|
+
}]);
|
|
889
|
+
}
|
|
841
890
|
} catch (e) {
|
|
842
891
|
handleHttpError;
|
|
843
892
|
}
|
|
@@ -887,7 +936,8 @@ export function LegacyInstanceList(props) {
|
|
|
887
936
|
var toggleSearchMode = React.useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
|
|
888
937
|
if (!state.searchByApp) {
|
|
889
938
|
var _appListResp$list, _appListResp$list2, _appListResp$list3;
|
|
890
|
-
var appListResp
|
|
939
|
+
var appListResp;
|
|
940
|
+
var params = _objectSpread({
|
|
891
941
|
fields: ["clusters", "instanceId", "name"],
|
|
892
942
|
sort: [{
|
|
893
943
|
key: "name",
|
|
@@ -895,7 +945,13 @@ export function LegacyInstanceList(props) {
|
|
|
895
945
|
}],
|
|
896
946
|
page: 1,
|
|
897
947
|
page_size: 3000
|
|
898
|
-
});
|
|
948
|
+
}, props.useExternalCmdbApi ? externalRequestParams : {});
|
|
949
|
+
// useExternalCmdbApi为true,使用外部接口PostSearchV3
|
|
950
|
+
if (props.useExternalCmdbApi) {
|
|
951
|
+
appListResp = yield externalPostSearchV3.query([params]);
|
|
952
|
+
} else {
|
|
953
|
+
appListResp = yield InstanceApi_postSearchV3("APP", params);
|
|
954
|
+
}
|
|
899
955
|
setState({
|
|
900
956
|
appSearchInstanceId: ((_appListResp$list = appListResp.list) === null || _appListResp$list === void 0 ? void 0 : _appListResp$list[0].instanceId) || "",
|
|
901
957
|
appList: appListResp.list,
|
|
@@ -958,9 +1014,17 @@ export function LegacyInstanceList(props) {
|
|
|
958
1014
|
modelData.isAbstract && fieldIds.push("_object_id");
|
|
959
1015
|
if (props.saveFieldsBackend) {
|
|
960
1016
|
var sortFields = mergeFields(state.sortFields, fieldIds);
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
1017
|
+
if (props.useExternalCmdbApi) {
|
|
1018
|
+
yield externalUpdateFieldsProvider.query([{
|
|
1019
|
+
object_id: props.objectId,
|
|
1020
|
+
sourceId: props.externalSourceId,
|
|
1021
|
+
sortFields
|
|
1022
|
+
}]);
|
|
1023
|
+
} else {
|
|
1024
|
+
yield updateFieldsProvider.query([props.objectId, {
|
|
1025
|
+
sortFields
|
|
1026
|
+
}]);
|
|
1027
|
+
}
|
|
964
1028
|
setState({
|
|
965
1029
|
fieldIds,
|
|
966
1030
|
sortFields
|
|
@@ -977,9 +1041,17 @@ export function LegacyInstanceList(props) {
|
|
|
977
1041
|
if (props.saveFieldsBackend) {
|
|
978
1042
|
try {
|
|
979
1043
|
var _sortFields = mergeFields(state.sortFields, fields);
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
1044
|
+
if (props.useExternalCmdbApi) {
|
|
1045
|
+
yield externalUpdateFieldsProvider.query([{
|
|
1046
|
+
object_id: props.objectId,
|
|
1047
|
+
sourceId: props.externalSourceId,
|
|
1048
|
+
sortFields: _sortFields
|
|
1049
|
+
}]);
|
|
1050
|
+
} else {
|
|
1051
|
+
yield updateFieldsProvider.query([props.objectId, {
|
|
1052
|
+
sortFields: _sortFields
|
|
1053
|
+
}]);
|
|
1054
|
+
}
|
|
983
1055
|
setState({
|
|
984
1056
|
fieldIds: _sortFieldIds(fields),
|
|
985
1057
|
sortFields: _sortFields
|
|
@@ -1027,6 +1099,7 @@ export function LegacyInstanceList(props) {
|
|
|
1027
1099
|
}
|
|
1028
1100
|
};
|
|
1029
1101
|
v3Data.page_size = props.selectedRowKeys.length;
|
|
1102
|
+
v3Data.page = 1;
|
|
1030
1103
|
if (state.relatedToMe) {
|
|
1031
1104
|
v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;
|
|
1032
1105
|
}
|
|
@@ -1034,7 +1107,10 @@ export function LegacyInstanceList(props) {
|
|
|
1034
1107
|
Object.assign(v3Data, props.extraParams);
|
|
1035
1108
|
}
|
|
1036
1109
|
var resp;
|
|
1037
|
-
|
|
1110
|
+
// useExternalCmdbApi为true,使用外部接口PostSearchV3
|
|
1111
|
+
if (props.useExternalCmdbApi) {
|
|
1112
|
+
resp = yield externalPostSearchV3.query([_objectSpread(_objectSpread({}, v3Data), externalRequestParams)]);
|
|
1113
|
+
} else if (props.useAutoDiscoveryProvider) {
|
|
1038
1114
|
resp = yield listProvider.query([props.objectId, v3Data]);
|
|
1039
1115
|
} else {
|
|
1040
1116
|
resp = yield InstanceApi_postSearchV3(props.objectId, v3Data);
|
|
@@ -1315,7 +1391,9 @@ export function LegacyInstanceList(props) {
|
|
|
1315
1391
|
separatorUsedInRelationData: props.separatorUsedInRelationData,
|
|
1316
1392
|
showTooltip: showTooltip,
|
|
1317
1393
|
rowSelectionType: props.rowSelectionType,
|
|
1318
|
-
onColumnsChange: props.onColumnsChange
|
|
1394
|
+
onColumnsChange: props.onColumnsChange,
|
|
1395
|
+
useExternalCmdbApi: props.useExternalCmdbApi,
|
|
1396
|
+
externalSourceId: props.externalSourceId
|
|
1319
1397
|
})) :
|
|
1320
1398
|
/*#__PURE__*/
|
|
1321
1399
|
// 加个空白的div是为了将loading效果撑起来
|
|
@@ -1331,6 +1409,9 @@ export function LegacyInstanceList(props) {
|
|
|
1331
1409
|
*/
|
|
1332
1410
|
export function InstanceList(props) {
|
|
1333
1411
|
var [objectList, setObjectList] = useState(props.objectList);
|
|
1412
|
+
var externalGetObjectRef = useProvider("easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0", {
|
|
1413
|
+
cache: false
|
|
1414
|
+
});
|
|
1334
1415
|
useEffect(() => {
|
|
1335
1416
|
var _props$objectList;
|
|
1336
1417
|
if ((_props$objectList = props.objectList) !== null && _props$objectList !== void 0 && _props$objectList.length) {
|
|
@@ -1342,9 +1423,17 @@ export function InstanceList(props) {
|
|
|
1342
1423
|
setObjectList(cacheData);
|
|
1343
1424
|
} else {
|
|
1344
1425
|
try {
|
|
1345
|
-
var list
|
|
1346
|
-
|
|
1347
|
-
|
|
1426
|
+
var list;
|
|
1427
|
+
if (props.useExternalCmdbApi) {
|
|
1428
|
+
list = yield externalGetObjectRef.query([{
|
|
1429
|
+
ref_object: props.objectId,
|
|
1430
|
+
sourceId: props.externalSourceId
|
|
1431
|
+
}]);
|
|
1432
|
+
} else {
|
|
1433
|
+
list = (yield CmdbObjectApi_getObjectRef({
|
|
1434
|
+
ref_object: props.objectId
|
|
1435
|
+
})).data;
|
|
1436
|
+
}
|
|
1348
1437
|
setObjectList(list);
|
|
1349
1438
|
objectListCache.set(props.objectId, list);
|
|
1350
1439
|
} catch (e) {
|