@next-libs/cmdb-instances 7.13.2 → 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.
Files changed (23) hide show
  1. package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +60 -26
  2. package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
  3. package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  4. package/dist/cjs/instance-list/InstanceList.js +125 -26
  5. package/dist/cjs/instance-list/InstanceList.js.map +1 -1
  6. package/dist/cjs/instance-list-modal/InstanceListModal.js +19 -4
  7. package/dist/cjs/instance-list-modal/InstanceListModal.js.map +1 -1
  8. package/dist/cjs/instance-list-table/InstanceListTable.js +46 -9
  9. package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
  10. package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +58 -26
  11. package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
  12. package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  13. package/dist/esm/instance-list/InstanceList.js +114 -25
  14. package/dist/esm/instance-list/InstanceList.js.map +1 -1
  15. package/dist/esm/instance-list-modal/InstanceListModal.js +19 -4
  16. package/dist/esm/instance-list-modal/InstanceListModal.js.map +1 -1
  17. package/dist/esm/instance-list-table/InstanceListTable.js +44 -9
  18. package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
  19. package/dist/types/cmdb-instances-select-panel/CmdbInstancesSelectPanel.d.ts +2 -0
  20. package/dist/types/instance-list/InstanceList.d.ts +2 -0
  21. package/dist/types/instance-list-modal/InstanceListModal.d.ts +2 -0
  22. package/dist/types/instance-list-table/InstanceListTable.d.ts +4 -1
  23. 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
- if (instanceIdList !== null && instanceIdList !== void 0 && instanceIdList.length) {
50
- var _props$fields;
51
- instances = (yield InstanceApi_postSearch(props.objectId, {
52
- query: {
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
- })).list;
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
- var {
82
- data
83
- } = yield CmdbObjectApi_getObjectRef({
84
- ref_object: props.objectId
85
- });
86
- modelMap = keyBy(data, "objectId");
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":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAElD,SAEEC,eAAe,QACV,uBAAuB;AAE9B,SAASC,iBAAiB,QAAQ,8BAA8B;AAChE,SAASC,sBAAsB,EAAEC,CAAC,QAAQ,yBAAyB;AACnE,OAAOC,IAAI,MAAM,SAAS;AAC1B,SAASC,GAAG,EAAEC,MAAM,EAAEC,KAAK,QAAQ,QAAQ;AAC3C,OAAOC,MAAM,MAAM,2DAA2D;AAC9E,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,eAAe,QAAQ,sBAAsB;AAsBtD,OAAO,SAASC,YAAY,CAACC,MAAgB,EAA6B;EAAA,IAA3BC,UAAoB,uEAAG,EAAE;EACtE,OAAOP,MAAM,CAACM,MAAM,EAAGE,KAAK,IAAK;IAC/B,IAAMC,KAAK,GAAGF,UAAU,CAACG,OAAO,CAACF,KAAK,CAAC;IACvC,OAAOC,KAAK,KAAK,CAAC,CAAC,GAAGH,MAAM,CAACK,MAAM,GAAGF,KAAK;EAC7C,CAAC,CAAC;AACJ;AACA,OAAO,SAASG,qBAAqB,CACnCC,qBAA+B,EAC/BC,gBAA0B,EAE1B;EAAA,IADAC,UAAoB,uEAAG,EAAE;EAEzB,IAAIC,UAAU,GAAGF,gBAAgB;EACjC,IAAID,qBAAqB,aAArBA,qBAAqB,eAArBA,qBAAqB,CAAEF,MAAM,EAAE;IACjCK,UAAU,GAAGX,YAAY,CACvBQ,qBAAqB,CAACI,GAAG,CAAEC,IAAY,IACrCA,IAAI,CAACC,UAAU,CAAC,GAAG,CAAC,GAAGD,IAAI,CAACE,KAAK,CAAC,CAAC,CAAC,GAAGF,IAAI,CAC5C,EACDH,UAAU,CACX;EACH;EACA,OAAOC,UAAU;AACnB;AACA;AACA,OAAO,SAASK,yBAAyB,CACvCC,KAAqC,EACjB;EAAA;EACpB,IAAM;IACJC,YAAY;IACZC,YAAY;IACZC,KAAK;IACLC,wBAAwB;IACxBC,gBAAgB;IAChBC,KAAK;IACLC;EACF,CAAC,GAAGP,KAAK;EACT,IAAM,CAACQ,oBAAoB,EAAEC,uBAAuB,CAAC,GAAGtC,QAAQ,CAAC,CAAC,CAAC,CAAC;EACpE;AACF;AACA;AACA;AACA;EACED,SAAS,CAAC,MAAM;IACd,IAAMwC,sBAAsB;MAAA,6BAAG,aAAY;QACzC,IAAMC,aAAa,SAAS9B,kBAAkB,CAC5CqB,YAAY,CAACU,eAAe,CAC7B;QACDH,uBAAuB,CAAC9B,KAAK,CAACgC,aAAa,CAACE,IAAI,EAAE,UAAU,CAAC,CAAC;MAChE,CAAC;MAAA,gBALKH,sBAAsB;QAAA;MAAA;IAAA,GAK3B;IACDA,sBAAsB,EAAE,CAACI,KAAK,CAAEC,KAAK,IAAK;MACxCjC,eAAe,CAACiC,KAAK,CAAC;IACxB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACb,YAAY,CAAC,CAAC;EAClB,IAAM,CAACc,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG9C,QAAQ,CAAC,IAAI,CAAC;EACpE,IAAM+C,SAAS,GAAGjB,YAAY,CAACC,YAAY,CAACiB,cAAc,CAAC;EAC3D,IAAIC,iBAAiB,GAAGhD,eAAe,CACrC6B,YAAY,CAACC,YAAY,CAACU,eAAe,CAAC,CAC3C;EACD;EACA,IAAMrB,qBAAqB,GAAGd,GAAG,CAACyC,SAAS,EAAE,CAC3C,MAAM,EACN,uBAAuB,EACvBhB,YAAY,CAACmB,IAAI,CAClB,CAAC;EAEF,IAAMC,QAAQ,GAAGhC,qBAAqB,CACpCC,qBAAqB,EACrB6B,iBAAiB,CAACG,QAAQ,CAAC5B,GAAG,CAAE6B,IAAI,IAAKA,IAAI,CAACC,EAAE,CAAC,EACjDhD,GAAG,CAAC2C,iBAAiB,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAC/C;EACD;EACA,IAAMM,aAAa,sDAAGN,iBAAiB,CAACO,IAAI,2DAAtB,uBAAwBC,YAAY,yEAAI,EAAE;EAChER,iBAAiB,mCACZA,iBAAiB;IACpBG,QAAQ,EAAEH,iBAAiB,CAACG,QAAQ,CAACM,MAAM,CACxCjC,IAAS,IAAK,CAAC8B,aAAa,CAACI,QAAQ,CAAClC,IAAI,CAAC6B,EAAE,CAAC,CAChD;IACDM,aAAa,EAAEX,iBAAiB,CAACW,aAAa,CAACF,MAAM,CAClDjC,IAAS,IACR,EACG8B,aAAa,CAACI,QAAQ,CAAClC,IAAI,CAACoC,OAAO,CAAC,IACnCpC,IAAI,CAACuB,cAAc,KAAKnB,KAAK,CAACE,YAAY,CAACU,eAAe,IAC3Dc,aAAa,CAACI,QAAQ,CAAClC,IAAI,CAACqC,QAAQ,CAAC,IACpCrC,IAAI,CAACgB,eAAe,KAAKZ,KAAK,CAACE,YAAY,CAACU,eAAgB,CAC/D;EACJ,EACF;EAED,oBACE;IAAK,KAAK,EAAE;MAAEsB,OAAO,EAAE;IAAO;EAAE,gBAC9B,oBAAC,iBAAiB;IAChB,kBAAkB,EAChBlC,KAAK,CAACmC,gBAAgB,GAClB,IAAI,GACJ;MACE,CAACjC,YAAY,CAACU,eAAe,GAC3B;IACJ,CACL;IACD,WAAW,EAAEJ,oBAAqB;IAClC,SAAS,EAAEY,iBAAkB;IAC7B,gBAAgB,EAAE;MAChBgB,IAAI,EAAEjC;IACR,CAAE;IACF,sBAAsB,EAAGkC,aAAkB,IAAK;MAC9CrC,KAAK,CAACsC,sBAAsB,CAACD,aAAa,CAAC;IAC7C,CAAE;IACF,4BAA4B,EAAErC,KAAK,CAACuC,4BAA6B;IACjE,aAAa,EAAE,IAAK;IACpB,QAAQ,EAAEjB,QAAS;IACnB,cAAc,EAAE,IAAK;IACrB,YAAY,EAAE,IAAK;IACnB,WAAW,EAAE;MACXkB,UAAU,EAAExC,KAAK,CAACyC,YAAY;QAExBC,eAAe,EAAE,IAAI;QACrBpC,KAAK,EAAEA,KAAK;QACZqC,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI;MAAC,GAChCpC,uBAAuB;QAC1BqC,QAAQ,EAAE,CAACC,IAAY,EAAEC,QAAgB,KAAK;UAC5CzC,gBAAgB,CAACwC,IAAI,EAAEC,QAAQ,EAAE5C,YAAY,CAAC;QAChD,CAAC;QACD6C,SAAS,EAAGC,MAAc,iBACxB;UAAM,SAAS,EAAEpE,MAAM,CAACqE;QAAU,GAC/BzE,IAAI,CAAC0E,CAAC,WACF5E,sBAAsB,cAAIC,CAAC,CAAC4E,qBAAqB,EACrD,EAAE,GAAG,eACN;UAAQ,SAAS,EAAEvE,MAAM,CAAC0B;QAAM,GAAE0C,MAAM,CAAU,EAAC,GAAG,EACrDxE,IAAI,CAAC0E,CAAC,WACF5E,sBAAsB,cAAIC,CAAC,CAAC6E,qBAAqB,EACrD;MAEJ,KAEH;IACN,CAAE;IACF,MAAM,EAAE;EAAS,EACE,CACjB;AAEV"}
@@ -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
- idNameMap = yield CmdbObjectApi_getIdMapName({
341
- parentObjectId: modelData.objectId
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
- var sortFields = (yield fieldsProvider.query([props.objectId])).sortFields;
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
- return promise ? promise : props.useAutoDiscoveryProvider ? listProvider.query([props.objectId, v3Data]) : props.ignorePermission ? ignorePermissionProvider.query([props.objectId, v3Data]) : InstanceApi_postSearchV3(props.objectId, v3Data);
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
- // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一
770
- if (props.useAutoDiscoveryProvider) {
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
- yield updateFieldsProvider.query([props.objectId, {
839
- sortFields: newSortFields
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 = yield InstanceApi_postSearchV3("APP", {
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
- yield updateFieldsProvider.query([props.objectId, {
962
- sortFields
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
- yield updateFieldsProvider.query([props.objectId, {
981
- sortFields: _sortFields
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
- if (props.useAutoDiscoveryProvider) {
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 = (yield CmdbObjectApi_getObjectRef({
1346
- ref_object: props.objectId
1347
- })).data;
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) {