@next-libs/cmdb-instances 7.30.2 → 7.30.4

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 (32) hide show
  1. package/dist/cjs/instance-detail/InstanceDetail.js +42 -11
  2. package/dist/cjs/instance-detail/InstanceDetail.js.map +1 -1
  3. package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +10 -2
  4. package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  5. package/dist/cjs/instance-list/InstanceList.js +40 -15
  6. package/dist/cjs/instance-list/InstanceList.js.map +1 -1
  7. package/dist/cjs/instance-list-drawer/InstanceListDrawer.js +27 -5
  8. package/dist/cjs/instance-list-drawer/InstanceListDrawer.js.map +1 -1
  9. package/dist/cjs/instance-list-table/DisplaySettings.js +1 -7
  10. package/dist/cjs/instance-list-table/DisplaySettings.js.map +1 -1
  11. package/dist/cjs/instance-list-table/DisplaySettingsModal.js +1 -1
  12. package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
  13. package/dist/cjs/instance-list-table/InstanceListTable.js +4 -4
  14. package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
  15. package/dist/esm/instance-detail/InstanceDetail.js +41 -11
  16. package/dist/esm/instance-detail/InstanceDetail.js.map +1 -1
  17. package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +9 -1
  18. package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  19. package/dist/esm/instance-list/InstanceList.js +40 -16
  20. package/dist/esm/instance-list/InstanceList.js.map +1 -1
  21. package/dist/esm/instance-list-drawer/InstanceListDrawer.js +27 -5
  22. package/dist/esm/instance-list-drawer/InstanceListDrawer.js.map +1 -1
  23. package/dist/esm/instance-list-drawer/InstanceListDrawer.module.css +21 -0
  24. package/dist/esm/instance-list-table/DisplaySettings.js +1 -7
  25. package/dist/esm/instance-list-table/DisplaySettings.js.map +1 -1
  26. package/dist/esm/instance-list-table/DisplaySettingsModal.js +1 -1
  27. package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
  28. package/dist/esm/instance-list-table/InstanceListTable.js +4 -4
  29. package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
  30. package/dist/types/instance-list/InstanceList.d.ts +6 -0
  31. package/dist/types/instance-list-table/InstanceListTable.d.ts +2 -2
  32. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"instance-relation-table-show.js","names":["_react","_interopRequireWildcard","require","_cmdbUtils","_instanceListTable","_constants","_i18next","_interopRequireDefault","_lodash","_InstanceListTableModule","_dataProviders","_brickKit","reOrderAttrs","fields","fieldOrder","sortBy","field","index","indexOf","length","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","getHiddenColumns","data","oppositeModelData","relationData","relationGangedConfig","attrList","attr","id","left_max","rightObjectId","right_object_id","objectId","left_object_id","_head","attrData","head","rightControlAttrId","attrType","get","filter","__fieldList","o","isArray","nonIncludedControlFields","control","includes","InstanceRelationTableShow","props","_oppositeModelData$vi","_oppositeModelData$vi2","modelDataMap","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","externalSourceId","oppositeModelDataMap","setOppositeModelDataMap","useState","useEffect","fetchOppositeModelData","modelListData","fetchCmdbObjectRef","__isTransHierRelation","relation_object","keyBy","catch","error","handleHttpError","instanceSourceQuery","setInstanceSourceQuery","modelData","modifyModelData","__id","fieldIds","hideModelData","view","hide_columns","relation_list","left_id","right_id","hiddenColumns","default","createElement","style","display","InstanceListTable","detailUrlTemplates","hideRelationLink","idObjectMap","instanceListData","list","onInstanceSourceChange","instanceQuery","filterInstanceSourceDisabled","autoBreakLine","selectDisabled","sortDisabled","configProps","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","className","styles","totalText","i18n","t","NS_LIBS_CMDB_INSTANCES","K","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT","target","useExternalCmdbApi"],"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 TransHierRelationType,\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, head, isArray, filter } 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 TransHierRelationType & { __isTransHierRelation?: boolean };\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 externalSourceId?: string;\n relationGangedConfig?: Record<string, any>;\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\nfunction getHiddenColumns(\n data: any[],\n oppositeModelData: any,\n relationData: ModifiedModelObjectRelation,\n relationGangedConfig?: Record<string, any>\n): string[] {\n const oppositeAttrList = oppositeModelData.attrList.map(\n (attr: any) => attr.id\n );\n if (\n relationGangedConfig &&\n relationData?.left_max === 1 &&\n relationGangedConfig?.rightObjectId === relationData?.right_object_id &&\n relationGangedConfig?.objectId === relationData?.left_object_id\n ) {\n const attrData = head(data)?.[relationGangedConfig?.rightControlAttrId];\n const attrType = get(\n filter(\n oppositeModelData.__fieldList,\n (o: any) => o.id === relationGangedConfig?.rightControlAttrId\n ),\n \"[0].value.type\"\n );\n if (attrData && attrType === \"arr\" && isArray(attrData)) {\n const nonIncludedControlFields = filter(\n relationGangedConfig?.control || [],\n (attr: any) => !attrData.includes(attr)\n );\n return oppositeAttrList.filter((item: any) =>\n nonIncludedControlFields.includes(item)\n );\n }\n }\n\n return [];\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 externalSourceId,\n relationGangedConfig,\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.__isTransHierRelation\n ? relationData.relation_object\n : relationData.right_object_id,\n externalSourceId\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData, externalSourceId]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n const modelData = modelDataMap[relationData.left_object_id];\n let oppositeModelData = modifyModelData(\n modelDataMap[\n relationData.__isTransHierRelation\n ? relationData.relation_object\n : relationData.right_object_id\n ]\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 const hiddenColumns = getHiddenColumns(\n value,\n oppositeModelData,\n relationData,\n relationGangedConfig\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 externalSourceId={externalSourceId}\n useExternalCmdbApi={externalSourceId ? true : false}\n hiddenColumns={hiddenColumns}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"instance-relation-table-show.js","names":["_react","_interopRequireWildcard","require","_cmdbUtils","_instanceListTable","_constants","_i18next","_interopRequireDefault","_lodash","_InstanceListTableModule","_dataProviders","_brickKit","reOrderAttrs","fields","fieldOrder","sortBy","field","index","indexOf","length","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","getHiddenColumns","data","oppositeModelData","relationData","relationGangedConfig","attrList","attr","id","left_max","rightObjectId","right_object_id","objectId","left_object_id","_head","attrData","head","rightControlAttrId","attrType","get","filter","__fieldList","o","isArray","nonIncludedControlFields","control","includes","InstanceRelationTableShow","props","_oppositeModelData$vi","_oppositeModelData$vi2","modelDataMap","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","externalSourceId","oppositeModelDataMap","setOppositeModelDataMap","useState","useEffect","fetchOppositeModelData","modelListData","fetchCmdbObjectRef","__isTransHierRelation","relation_object","keyBy","catch","error","handleHttpError","instanceSourceQuery","setInstanceSourceQuery","modelData","lastPath","modifyModelData","_oppositeModelData","_oppositeModelData$re","_oppositeModelData$re2","_oppositeModelData2","_oppositeModelData2$r","_oppositeModelData2$r2","paths","query_path","split","lastPathSourceObjectId","relation_list","find","left_id","right_id","__id","fieldIds","hideModelData","view","hide_columns","hiddenColumns","default","createElement","style","display","InstanceListTable","detailUrlTemplates","hideRelationLink","idObjectMap","instanceListData","list","onInstanceSourceChange","instanceQuery","filterInstanceSourceDisabled","autoBreakLine","selectDisabled","sortDisabled","configProps","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","className","styles","totalText","i18n","t","NS_LIBS_CMDB_INSTANCES","K","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT","target","useExternalCmdbApi"],"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 TransHierRelationType,\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, head, isArray, filter } 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 TransHierRelationType & { __isTransHierRelation?: boolean };\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 externalSourceId?: string;\n relationGangedConfig?: Record<string, any>;\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\nfunction getHiddenColumns(\n data: any[],\n oppositeModelData: any,\n relationData: ModifiedModelObjectRelation,\n relationGangedConfig?: Record<string, any>\n): string[] {\n const oppositeAttrList = oppositeModelData.attrList.map(\n (attr: any) => attr.id\n );\n if (\n relationGangedConfig &&\n relationData?.left_max === 1 &&\n relationGangedConfig?.rightObjectId === relationData?.right_object_id &&\n relationGangedConfig?.objectId === relationData?.left_object_id\n ) {\n const attrData = head(data)?.[relationGangedConfig?.rightControlAttrId];\n const attrType = get(\n filter(\n oppositeModelData.__fieldList,\n (o: any) => o.id === relationGangedConfig?.rightControlAttrId\n ),\n \"[0].value.type\"\n );\n if (attrData && attrType === \"arr\" && isArray(attrData)) {\n const nonIncludedControlFields = filter(\n relationGangedConfig?.control || [],\n (attr: any) => !attrData.includes(attr)\n );\n return oppositeAttrList.filter((item: any) =>\n nonIncludedControlFields.includes(item)\n );\n }\n }\n\n return [];\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 externalSourceId,\n relationGangedConfig,\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.__isTransHierRelation\n ? relationData.relation_object\n : relationData.right_object_id,\n externalSourceId\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData, externalSourceId]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n\n let modelData = modelDataMap[relationData.left_object_id];\n let lastPath: string;\n\n let oppositeModelData = modifyModelData(\n modelDataMap[\n relationData.__isTransHierRelation\n ? relationData.relation_object\n : relationData.right_object_id\n ]\n );\n if (relationData.__isTransHierRelation) {\n const paths = relationData.query_path.split(\".\");\n lastPath = paths[paths.length - 1];\n const lastPathSourceObjectId =\n oppositeModelData?.relation_list?.find(\n (item: any) =>\n item.left_id === lastPath &&\n item.right_object_id === relationData.relation_object\n )?.left_object_id ||\n oppositeModelData?.relation_list?.find(\n (item: any) =>\n item.right_id === lastPath &&\n item.left_object_id === relationData.relation_object\n )?.right_object_id;\n modelData =\n modelDataMap[lastPathSourceObjectId] ||\n (oppositeModelDataMap as any)[lastPathSourceObjectId];\n }\n // 如果指定了relation_default_attr,则取里面的字段\n const defaultRelationFields = get(modelData, [\n \"view\",\n \"relation_default_attr\",\n relationData.__isTransHierRelation ? lastPath : 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 const hiddenColumns = getHiddenColumns(\n value,\n oppositeModelData,\n relationData,\n relationGangedConfig\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 externalSourceId={externalSourceId}\n useExternalCmdbApi={externalSourceId ? true : false}\n hiddenColumns={hiddenColumns}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -91,7 +91,22 @@ function getQuery(modelData, idObjectMap, q, fields, onlySearchByIp, extraFixedF
91
91
  });
92
92
  });
93
93
  });
94
- }, fields);
94
+ }, fields,
95
+ //istanbul ignore next
96
+ relation => {
97
+ var _relation$display_key;
98
+ const relationObject = idObjectMap[relation.relation_object];
99
+ const showKeys = (_relation$display_key = relation.display_keys) !== null && _relation$display_key !== void 0 && _relation$display_key.length ? relation.display_keys : (0, _cmdbUtils.getInstanceNameKeys)(relationObject);
100
+ queryValues.forEach(queryValue => {
101
+ showKeys.forEach(nameKey => {
102
+ query.$or.push({
103
+ [`${relation.relation_id}.${nameKey}`]: {
104
+ $like: `%${queryValue}%`
105
+ }
106
+ });
107
+ });
108
+ });
109
+ });
95
110
  return query;
96
111
  }
97
112
  const isSpecialFn = (query, attrId) => {
@@ -145,8 +160,8 @@ function translateConditions(aq, idObjectMap, modelData, t) {
145
160
  const relations = [];
146
161
  const transHierRelations = [];
147
162
  (_modelData$view = modelData.view) === null || _modelData$view === void 0 ? void 0 : (_modelData$view$trans = _modelData$view.trans_hier_relation_list) === null || _modelData$view$trans === void 0 ? void 0 : _modelData$view$trans.forEach(relation => {
148
- var _relation$display_key;
149
- const nameKeys = (_relation$display_key = relation.display_keys) !== null && _relation$display_key !== void 0 && _relation$display_key.length ? relation.display_keys : (0, _cmdbUtils.getInstanceNameKeys)(idObjectMap[relation.relation_object]);
163
+ var _relation$display_key2;
164
+ const nameKeys = (_relation$display_key2 = relation.display_keys) !== null && _relation$display_key2 !== void 0 && _relation$display_key2.length ? relation.display_keys : (0, _cmdbUtils.getInstanceNameKeys)(idObjectMap[relation.relation_object]);
150
165
  nameKeys.forEach(nameKey => {
151
166
  transHierRelations.push({
152
167
  id: `${relation.relation_id}.${nameKey}`,
@@ -353,6 +368,9 @@ function LegacyInstanceList(props) {
353
368
  const ignorePermissionProvider = (0, _brickKit.useProvider)("easyops.api.cmdb.instance@PostSearchV3WithAdmin:1.0.0", {
354
369
  cache: false
355
370
  });
371
+ const searchRelationInstanceProvider = (0, _brickKit.useProvider)("easyops.api.cmdb.instance@SearchRelationInstance:1.1.0", {
372
+ cache: false
373
+ });
356
374
  // istanbul ignore next
357
375
 
358
376
  const fieldsProvider = (0, _brickKit.useProvider)("easyops.api.cmdb.instance@GetListDisplayView:1.0.1", {
@@ -582,7 +600,7 @@ function LegacyInstanceList(props) {
582
600
  };
583
601
  }, [props.objectId, props.externalSourceId]);
584
602
  const getInstanceListData = async (sort, asc, page) => {
585
- var _modelData$attrList2, _modelData$attrList2$, _modelData$attrList2$2, _props$onSearchExecut;
603
+ var _modelData$attrList2, _modelData$attrList2$, _modelData$attrList2$2, _props$onSearchExecut, _props$transHierRelat;
586
604
  const data = {};
587
605
  const v3Data = {
588
606
  fields: processFixedFields ? (0, _lodash.uniq)(["instanceId"].concat(processFixedFields)) : ["instanceId"]
@@ -702,7 +720,10 @@ function LegacyInstanceList(props) {
702
720
  return promise ? promise : props.useExternalCmdbApi ? externalPostSearchV3.query([{
703
721
  ...v3Data,
704
722
  ...externalRequestParams
705
- }]) : props.useAutoDiscoveryProvider ? listProvider.query([props.objectId, v3Data]) : props.ignorePermission ? ignorePermissionProvider.query([props.objectId, v3Data]) : (0, _cmdbSdk.InstanceApi_postSearchV3)(props.objectId, v3Data); //涉及到v3data的请求
723
+ }]) : props.useAutoDiscoveryProvider ? listProvider.query([props.objectId, v3Data]) : props.ignorePermission ? ignorePermissionProvider.query([props.objectId, v3Data]) : props.searchTransHierRelationInstance && (_props$transHierRelat = props.transHierRelation) !== null && _props$transHierRelat !== void 0 && _props$transHierRelat.relation_id && props.searchTransHierRelationSource ? searchRelationInstanceProvider.query([props.searchTransHierRelationSource.objectId, props.transHierRelation.relation_id, props.searchTransHierRelationSource.instanceId, {
724
+ query_relation: v3Data.query,
725
+ ...v3Data
726
+ }]) : (0, _cmdbSdk.InstanceApi_postSearchV3)(props.objectId, v3Data); //涉及到v3data的请求
706
727
  };
707
728
  const refreshInstanceList = async (sort, asc, page) => {
708
729
  setState({
@@ -716,7 +737,9 @@ function LegacyInstanceList(props) {
716
737
  });
717
738
  } else {
718
739
  if (!props.hideInstanceList) {
719
- const instanceListData = await getInstanceListData(sort, asc, page);
740
+ const instanceListData = (await getInstanceListData(sort, asc, page)) || {
741
+ list: []
742
+ };
720
743
  instanceListData.list.forEach(i => cache.current.set(i.instanceId, i));
721
744
  setState({
722
745
  idObjectMap: idObjectMap,
@@ -1562,15 +1585,17 @@ function LegacyInstanceListWrapper(props) {
1562
1585
  if (transHierRelationSideObjectIds !== null && transHierRelationSideObjectIds !== void 0 && transHierRelationSideObjectIds.length && !transHierRelationSideObjectIds.every(i => objectList.some(o => o.objectId === i))) {
1563
1586
  var _list;
1564
1587
  let list;
1565
- if (props.useExternalCmdbApi) {
1566
- list = await externalGetObjectRef.query([{
1567
- ref_object: transHierRelationSideObjectIds.join(","),
1568
- sourceId: props.externalSourceId
1569
- }]);
1570
- } else {
1571
- list = (await (0, _cmdbSdk.CmdbObjectApi_getObjectRef)({
1572
- ref_object: transHierRelationSideObjectIds.join(",")
1573
- })).data;
1588
+ try {
1589
+ if (!props.useExternalCmdbApi) {
1590
+ list = (await (0, _cmdbSdk.CmdbObjectApi_list)({
1591
+ page: 1,
1592
+ page_size: transHierRelationSideObjectIds.length,
1593
+ objectIds: transHierRelationSideObjectIds.join(",")
1594
+ })).list;
1595
+ }
1596
+ } catch (e) {
1597
+ // istanbul ignore next
1598
+ (0, _brickKit.handleHttpError)(e);
1574
1599
  }
1575
1600
  if ((_list = list) !== null && _list !== void 0 && _list.length) {
1576
1601
  objectList.push(...list);