@next-libs/cmdb-instances 7.30.25 → 7.30.27
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/instance-list/InstanceList.js +2 -0
- package/dist/cjs/instance-list/InstanceList.js.map +1 -1
- package/dist/cjs/instance-list-table/InstanceListTable.js +9 -0
- package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js +4 -1
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/esm/instance-list/InstanceList.js +2 -0
- package/dist/esm/instance-list/InstanceList.js.map +1 -1
- package/dist/esm/instance-list-table/InstanceListTable.js +8 -0
- package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/esm/model-attribute-form/ModelAttributeForm.js +4 -1
- package/dist/esm/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/types/instance-list/InstanceList.d.ts +2 -0
- package/dist/types/instance-list-table/InstanceListTable.d.ts +1 -0
- package/dist/types/model-attribute-form/ModelAttributeForm.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstanceList.js","names":["_react","_interopRequireWildcard","require","_lodash","_brickKit","_i18next","_interopRequireDefault","_constants","_cmdbSdk","_compatible","_antd","_cmdbUtils","_storage","_instanceListTable","_InstanceListDrawer","_InstanceListModule","_constants2","_ModelAttributeFormControl","_IconButton","_processors","_FilterInstanceSource","joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","keyBy","attrList","map","field","relation","relation_list","find","left_id","right_id","_otherSideObject$view","_otherSideObject$view2","_otherSideObject$view3","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","extraFixedFields","query","$or","queryValues","trim","split","_getRuntime$getCurren","searchIpFields","getRuntime","getCurrentApp","config","queryOrs","Set","uniq","searchValue","$like","forEach","key","push","forEachAvailableFields","attr","queryValue","id","sides","this","nameKeys","getInstanceNameKeys","that","nameKey","_relation$display_key","relationObject","relation_object","showKeys","display_keys","length","relation_id","isSpecialFn","attrId","Object","keys","some","v","exports","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","mergeFields","oldFields","newFieldIds","existField","f","order","updateSortFields","sortInfo","sortType","asc","sort","isNil","includes","item","translateConditions","aq","t","_modelData$view","_modelData$view$trans","conditions","relations","transHierRelations","trans_hier_relation_list","_relation$display_key2","name","relation_name","value","type","relationSideId","sidesArr","isSelfRelation","getRelationObjectSides","_find$name","_find","nameOfNameKey","attrAndRelationList","isEmpty","_attr","ElementOperators","Exists","changeQueryWithCustomRules","info","getFieldConditionsAndValues","undefined","mode","ConditionType","Between","Empty","NotEmpty","False","True","currentCondition","isString","replace","condition","label","curCondition","queryValuesStr","every","isEqual","omit","newKey","fieldIds","isOfStruct","fieldId","_modelData$attrList$f","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","_keyAttrMap$fieldId","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","boolExpressions","targetValue","isStringArray","arr","isArray","getExtraFixedFields","LegacyInstanceList","props","_props$selectedRowKey","_state$appList","_props$extraOperateBr","_props$extraFilterBri","showTooltip","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","listProvider","useProvider","cache","instanceArchiveListProvider","ignorePermissionProvider","searchRelationInstanceProvider","fieldsProvider","updateFieldsProvider","onError","error","externalPostSearchV3","externalGetIdMapName","externalFieldsProvider","externalUpdateFieldsProvider","useMemo","disabledDefaultFields","union","extraFieldAttrs","processFixedFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","useState","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","_props$presetConfigs","useExternalCmdbApi","parentObjectId","sourceId","externalSourceId","CmdbObjectApi_getIdMapName","showFilterInstanceSource","setItem","presetConfigs","useEffect","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","concat","hide_columns","sortFields","attr_order","allFields","difference","slice","_sortFieldIds","_props$presetConfigs2","frontFields","restFields","reject","getFieldsAsync","_props$presetConfigs3","_modelData$attrList","_modelData$attrList$f2","_modelData$attrList$f3","default_type","backendDefaultFields","object_id","returnData","defaultSortFields","extraFixedFieldIds","orderField","extraDisabledField","hideModelData","getFields","_props$presetConfigs4","getItem","setQ","state","setState","useReducer","_ref","_props$dataSource$pag","_props$dataSource","_ref2","_props$dataSource$pag2","_props$dataSource2","_props$presetConfigs5","instanceSourceQuery","page","dataSource","pageSize","aliveHosts","relatedToMe","objectIdQuery","filterInstanceSource","instanceSourcePopoverVisible","inited","loading","failed","isAdvancedSearchVisible","saveFieldsBackend","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","useRef","Map","isFirstRunRef","externalRequestParams","getInstanceListData","_modelData$attrList2","_modelData$attrList2$","_modelData$attrList2$2","_props$onSearchExecut","_props$transHierRelat","data","v3Data","permission","archiveData","_relationObjectShowKe","relationObjectShowKeys","useAutoDiscoveryProvider","ignorePermission","_modelData$relation_l","_props$objectList","_props$objectList$fin","_props$objectList$fin2","i","relationObjectId","useInstanceArchiveProvider","key_word","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","extraParams","assign","only_my_instance","_props$presetConfigs6","_props$presetConfigs7","_props$presetConfigs8","_props$presetConfigs9","_props$presetConfigs10","hostRange","limitInstanceRange","$in","relation_limit","relationLimit","promise","onSearchExecute","call","searchTransHierRelationInstance","transHierRelation","searchTransHierRelationSource","query_relation","InstanceApi_postSearchV3","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","handleHttpError","getFieldIds","_props$presetConfigs11","_props$presetConfigs12","fieldConfig","_props$presetConfigs13","_props$presetConfigs14","_props$selectedRowKey2","skip","_props$onPaginationCh","onPaginationChange","updateDataTime","onChange","target","onSelectionChange","useCallback","selected","_props$onSelectionCha","selectedItems","selectedKeys","compact","ids","has","resp","params","page_size","get","onSearch","_props$onSearch","onAdvancedSearch","queriesToShow","fieldToShow","_props$onAdvancedSear","onSortingChange","_props$onSortingChang","_modelData$attrList3","_modelData$attrList3$","_modelData$attrList3$2","oldsortFields","newSortFields","pagination","_props$onPaginationCh2","onInstanceSourceChange","_props$onInstanceSour","onRelatedToMeChange","checked","_props$onRelatedToMeC","onAliveHostsChange","_props$onAliveHostsCh","toggleAutoBreakLine","toggleSearchMode","React","_appListResp$list","_appListResp$list2","_appListResp$list3","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","_props$presetConfigs15","_state$backendDefault","_state$backendDefault2","s","handleConfirm","isReset","isAdminSetDisplay","onConfirm","_props$onFieldsModalC","onFieldsModalConfirm","_props$onFieldsModalC2","_props$onFieldsModalC3","removeItem","isDefault","message","success","SET_DEFAULT_DISPLAY_SUCCESS","_props$notifyCurrentF","notifyCurrentFields","_props$selectedRowKey3","handleToggleFixHeader","onAdvancedSearchCloseGen","_props$onAdvancedSear2","filterAq","filteredSubQueries","startsWith","Array","_Object$keys","isInstanceFilterForm","onFilterInstanceSourceChange","_props$onFilterInstan","onFilterObjectIdChange","_props$onFilterObject","onPopoverVisibleChange","visible","fixedFieldIds","fixed","default","createElement","Spin","spinning","Fragment","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","className","styles","instanceListToolbar","searchRelated","Input","Search","placeholder","enterButton","Button","size","style","marginLeft","marginRight","onClick","ADVANCED_SEARCH","Icon","Select","width","showSearch","optionFilterProp","Option","options","CHOSEN_OPTIONS","count","role","CLEAR","extraOperateBricks","useBrick","BrickAsComponent","onIconClicKChange","enableSearchByApp","FREE_SELECTION","APP_SELECTION","IconButton","disabled","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","MoreButtonsContainer","showFixedHeader","marginBottom","hidden","AdvancedSearch","_extends2","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","Tag","closable","onClose","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","uniqueId","extraFilterBricks","InstanceListTable","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","onColumnsChange","hiddenColumns","showCustomizedSerialNumber","onRelationMoreIconClick","configProps","tableConfigProps","virtualLoading","LegacyInstanceListWrapper","setObjectList","mergeObjectList","setMergeObjectList","externalGetObjectRef","_props$objectList2","cacheData","objectListCache","ref_object","CmdbObjectApi_getObjectRef","_object$view","_object$view$trans_hi","transHierRelationSideObjectIds","o","_list","CmdbObjectApi_list","objectIds","InstanceList","InstanceListDrawer"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n cloneDeep,\n isNil,\n get,\n isArray,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n CmdbObjectApi_list,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select, Popover, message } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n TransHierRelationType,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport { InstanceListDrawer } from \"../instance-list-drawer/InstanceListDrawer\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nimport FilterInstanceSource from \"./FilterInstanceSource\";\nimport { ColumnType } from \"antd/lib/table\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\ninterface ISortField {\n field: string;\n order: number;\n}\ntype ObjectType = Partial<CmdbModels.ModelCmdbObject> & {\n view?: Partial<CmdbModels.ModelObjectView> & {\n trans_hier_relation_list?: TransHierRelationType[];\n };\n};\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean,\n extraFixedFields?: string[]\n) {\n const query: Record<string, any> = { $or: [] };\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [\n ...new Set([\n \"ip\",\n ...uniq([...searchIpFields, ...(extraFixedFields || [])]),\n ]),\n ];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields,\n //istanbul ignore next\n (relation: TransHierRelationType) => {\n const relationObject = idObjectMap[relation.relation_object];\n const showKeys = relation.display_keys?.length\n ? relation.display_keys\n : getInstanceNameKeys(relationObject);\n\n queryValues.forEach((queryValue) => {\n showKeys.forEach((nameKey) => {\n query.$or.push({\n [`${relation.relation_id}.${nameKey}`]: {\n $like: `%${queryValue}%`,\n },\n });\n });\n });\n }\n );\n\n return query;\n}\n\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\nexport function mergeFields(\n oldFields: ISortField[],\n newFieldIds: string[]\n): ISortField[] {\n return newFieldIds.map((field) => {\n const existField = oldFields.find((f) => f.field === field);\n const order = existField ? existField.order : 0;\n return { field, order };\n });\n}\nexport function updateSortFields(\n oldFields: ISortField[],\n sortInfo: { asc?: boolean; sort?: string },\n sortType?: string\n): ISortField[] {\n const { asc, sort } = sortInfo;\n const order = isNil(asc)\n ? 0\n : [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n return oldFields.map((item) => {\n if (item.field === sort) {\n item.order = order;\n } else {\n item.order = 0;\n }\n return item;\n });\n}\n\nexport function translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: ObjectType,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n const transHierRelations: {\n id: string;\n name: string;\n value: { type: string };\n relationSideId: string;\n }[] = [];\n modelData.view?.trans_hier_relation_list?.forEach((relation) => {\n const nameKeys = relation.display_keys?.length\n ? relation.display_keys\n : getInstanceNameKeys(idObjectMap[relation.relation_object]);\n nameKeys.forEach((nameKey) => {\n transHierRelations.push({\n id: `${relation.relation_id}.${nameKey}`,\n name: relation.relation_name,\n value: { type: \"str\" },\n relationSideId: relation.relation_id,\n });\n });\n });\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [\n ...modelData.attrList,\n ...relations,\n ...transHierRelations,\n ];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr?.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id,\n attr.value.mode\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\nexport interface filterObjectIdQuery {\n objectId?: string;\n objectName?: string;\n query?: Record<string, string>;\n checked?: boolean;\n}\n\ninterface FixedField {\n field: string;\n fixed?: boolean;\n}\n\nexport type ExtraFixedFields = string[] | FixedField[];\n\n// 判断是不是字符串数组\nfunction isStringArray(arr: ExtraFixedFields): boolean {\n return isArray(arr) && (arr as any[]).every((item) => isString(item));\n}\n// 格式化extraFixedFields\nfunction getExtraFixedFields(fields: ExtraFixedFields): string[] {\n if (isNil(fields) || isStringArray(fields)) {\n return fields as string[];\n } else {\n return (fields as FixedField[]).map((v: FixedField) => v.field);\n }\n}\n\nexport interface InstanceListProps {\n objectId: string;\n objectList?: ObjectType[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n onFieldsModalConfirm?(fields: Record<string, any>): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showTooltip?: boolean;\n showFixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效,支持在最后固定列展示\n extraFixedFields?: ExtraFixedFields;\n // 如果在presetConfigs的query参数中指定了资源的范围,\"按应用筛选\"的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n useInstanceArchiveProvider?: boolean;\n placeholder?: string;\n extraOperateBricks?: {\n useBrick: UseBrickConf;\n };\n updateDataTime?: number;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(query: filterObjectIdQuery): void;\n objectIdQuery?: string;\n ignorePermission?: boolean;\n saveFieldsBackend?: boolean;\n onColumnsChange?: (columns: ColumnType<{ dataIndex: string }>[]) => void;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n hiddenColumns?: Array<string>;\n showCustomizedSerialNumber?: boolean;\n relationLimit?: number;\n onRelationMoreIconClick?: (record: Record<string, any>) => void;\n tableConfigProps?: Record<string, any>;\n //跨级关系,查询某个实例下的某条跨级关系数据\n searchTransHierRelationInstance?: boolean;\n transHierRelation?: TransHierRelationType;\n searchTransHierRelationSource?: { objectId: string; instanceId: string };\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n presetConfigsQuery?: Record<string, any>;\n filterInstanceSource?: boolean;\n objectIdQuery?: string;\n instanceSourcePopoverVisible?: boolean;\n sortFields?: { field: string; order: number }[];\n backendDefaultFields?: { field: string; order: number }[];\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\n \"easyops.api.cmdb.job@SearchResource:1.0.1\",\n { cache: false }\n );\n const instanceArchiveListProvider = useProvider(\n \"providers-of-cmdb.instance-archive-api-list-archive-instance\",\n {\n cache: false,\n }\n );\n const ignorePermissionProvider = useProvider(\n \"easyops.api.cmdb.instance@PostSearchV3WithAdmin:1.0.0\",\n { cache: false }\n );\n\n const searchRelationInstanceProvider = useProvider(\n \"easyops.api.cmdb.instance@SearchRelationInstance:1.1.0\",\n { cache: false }\n );\n // istanbul ignore next\n\n const fieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@GetListDisplayView:1.0.1\",\n { cache: false }\n );\n\n // istanbul ignore next\n const updateFieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@UpdateListDisplayView:1.0.0\",\n {\n cache: false,\n onError: (error) => {\n // istanbul ignore next\n throw error;\n },\n }\n );\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n const externalGetIdMapName = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetIdMapName:1.0.1\",\n { cache: false }\n );\n const externalFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetListDisplayView:1.0.0\",\n { cache: false }\n );\n const externalUpdateFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyUpdateListDisplayView:1.0.0\",\n { cache: false }\n );\n\n const { modelData, idObjectMap } = useMemo(() => {\n let modelData: ObjectType;\n const idObjectMap: Record<string, ObjectType> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const processFixedFields = useMemo(() => {\n return getExtraFixedFields(props?.extraFixedFields);\n }, [props.extraFixedFields]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n if (props.useExternalCmdbApi) {\n idNameMap = await externalGetIdMapName.query([\n {\n parentObjectId: modelData.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n props.showFilterInstanceSource &&\n jsonLocalStorage.setItem(`instances-sources-objectId-name-map`, {\n parentObjectId: modelData.objectId,\n query: props.presetConfigs?.query,\n idNameMap,\n });\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 针对 显示字段,默认优先拿排序的字段,再去拿属性字段\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] = (\n settings.ignoredFields[modelData.objectId] || []\n ).concat(modelData.view.hide_columns || []);\n const sortFields = modelData.view.attr_order || [];\n const allFields = [\n ...new Set([...sortFields, ...map(modelData.attrList, \"id\")]),\n ];\n const fieldIds: string[] = difference(allFields, ignoredFields).slice(0, 8);\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 fieldIds 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = reject(fieldIds, (id) => frontFields.includes(id));\n\n return [...frontFields, ...restFields];\n };\n // istanbul ignore next\n\n const getFieldsAsync = async () => {\n let sort = props.sort;\n let fieldIds = props.presetConfigs?.fieldIds;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n let asc, sortFields;\n let backendDefaultFields;\n if (props.asc === true) {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? 2 : 1;\n } else {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? -2 : -1;\n }\n if (props.useExternalCmdbApi) {\n sortFields = (\n (await externalFieldsProvider.query([\n { object_id: props.objectId, sourceId: props.externalSourceId },\n ])) as {\n sortFields: ISortField[];\n object_id: string;\n }\n ).sortFields;\n } else {\n // 获取用户配置的显示列\n const returnData = (await fieldsProvider.query([props.objectId])) as {\n sortFields: ISortField[];\n object_id: string;\n defaultSortFields: ISortField[];\n };\n sortFields = returnData.sortFields;\n backendDefaultFields = returnData.defaultSortFields;\n }\n const extraFixedFieldIds = processFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = sortFields.map((item) => item.field);\n if (isEmpty(sort) || isEmpty(asc)) {\n const orderField = sortFields.find((item) => item.order !== 0);\n if (orderField) {\n sort = orderField.field;\n asc = orderField.order;\n }\n }\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return { fieldIds, sort, asc, sortFields, backendDefaultFields };\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = processFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n sortFields: [],\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n objectIdQuery: props.objectIdQuery,\n filterInstanceSource: props.filterInstanceSource,\n instanceSourcePopoverVisible: false,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: props.saveFieldsBackend ? [] : getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n backendDefaultFields: [],\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, props.externalSourceId]);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: processFixedFields\n ? uniq([\"instanceId\"].concat(processFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n const archiveData: instanceArchiveRequestBody = {};\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = archiveData.page = page;\n v3Data[\"page_size\"] =\n data[\"page_size\"] =\n archiveData[\"page_size\"] =\n state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n let relationObjectShowKeys: string[] = [];\n if (\n !props.useExternalCmdbApi &&\n !props.useAutoDiscoveryProvider &&\n !props.ignorePermission\n ) {\n const relation = modelData?.relation_list?.find((i) =>\n i.right_object_id === props.objectId\n ? sort === i.right_id\n : sort === i.left_id\n );\n const relationObjectId =\n relation?.right_object_id === props.objectId\n ? relation?.left_object_id\n : relation?.right_object_id;\n relationObjectShowKeys = props.objectList?.find(\n (i) => i.objectId === relationObjectId\n )?.view?.show_key;\n }\n v3Data.sort = relationObjectShowKeys?.length\n ? relationObjectShowKeys.map((i) => ({ key: `${sort}.${i}`, order }))\n : [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp,\n processFixedFields\n );\n }\n\n if (state.q && props.useInstanceArchiveProvider) {\n archiveData.key_word = state.q;\n }\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [\n ...state.fieldIds,\n ...v3Data.fields,\n ...(modelData.isAbstract ? [\"_object_id\"] : []),\n ];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (props.useInstanceArchiveProvider) {\n archiveData.fields = v3Data.fields.join(\",\");\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\n }\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n\n if (!(props.useExternalCmdbApi || props.useAutoDiscoveryProvider)) {\n v3Data.relation_limit =\n isNil(props.relationLimit) || props.relationLimit === 0\n ? 0\n : props.relationLimit + 1;\n }\n\n if (props.useInstanceArchiveProvider) {\n return instanceArchiveListProvider.query([props.objectId, archiveData]);\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n // useExternalCmdbApi= true 使用外部接口externalPostSearchV3\n return promise\n ? promise\n : props.useExternalCmdbApi\n ? externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ])\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : props.ignorePermission\n ? ignorePermissionProvider.query([props.objectId, v3Data])\n : props.searchTransHierRelationInstance &&\n props.transHierRelation?.relation_id &&\n props.searchTransHierRelationSource\n ? searchRelationInstanceProvider.query([\n props.searchTransHierRelationSource.objectId,\n props.transHierRelation.relation_id,\n props.searchTransHierRelationSource.instanceId,\n { query_relation: v3Data.query, ...v3Data },\n ])\n : InstanceApi_postSearchV3(props.objectId, v3Data); //涉及到v3data的请求\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = (await getInstanceListData(\n sort,\n asc,\n page\n )) || { list: [] };\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n // 为了接口报错,不把整页面列干掉,去掉 failed: true 这个逻辑\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n // const [fieldIds,setFieldIds] = useState([]);\n // istanbul ignore next\n useEffect(() => {\n if (props.saveFieldsBackend) {\n const getFieldIds = async () => {\n const fieldConfig = await getFieldsAsync();\n const { fieldIds, sort, asc, sortFields, backendDefaultFields } =\n fieldConfig;\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n )\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n sort,\n asc: [1, 2].includes(asc) ? true : false,\n sortFields,\n backendDefaultFields,\n });\n };\n getFieldIds();\n } else {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }\n }, [props.objectId, props.presetConfigs, processFixedFields]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n useEffect(() => {\n setQ(props.q);\n setState({ q: props.q });\n }, [props.q]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n props.updateDataTime,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params: any = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n page: 1,\n };\n\n if (!(props.useExternalCmdbApi || props.useAutoDiscoveryProvider)) {\n params.relation_limit =\n isNil(props.relationLimit) || props.relationLimit === 0\n ? 0\n : props.relationLimit + 1;\n }\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...params,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else if (props.ignorePermission) {\n resp = await ignorePermissionProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n async (info: ReadSortingChangeDetail, sortFields?: ISortField[]) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n // istanbul ignore next\n if (\n props.saveFieldsBackend &&\n sortFields.find((item) => item.field === info.sort)\n ) {\n try {\n const oldsortFields = sortFields;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const newSortFields = updateSortFields(oldsortFields, info, sortType);\n setState({\n sortFields: newSortFields,\n });\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields: newSortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: newSortFields },\n ]);\n }\n } catch (e) {\n handleHttpError;\n }\n }\n // istanbul ignore next\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n let appListResp: any;\n const params: any = {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n ...(props.useExternalCmdbApi ? externalRequestParams : {}),\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n appListResp = await externalPostSearchV3.query([params]);\n } else {\n appListResp = await InstanceApi_postSearchV3(\"APP\", params);\n }\n\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n\n // 后台返回的默认配置\n\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = processFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n // istanbul ignore next\n // 所有用户(包括管理员)点击恢复默认按钮是恢复到 1.管理员设置的默认显示 2.管理员未设置时取前N个\n if (\n props.saveFieldsBackend &&\n !props.useExternalCmdbApi &&\n state.backendDefaultFields &&\n state.backendDefaultFields?.length > 0\n ) {\n // istanbul ignore next\n // 后台接口返回的默认字段(1. admin用户设置的,2. 前N个)\n defaultFields = compact(\n state.backendDefaultFields?.map((s) => s.field)\n );\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [\n props.presetConfigs,\n modelData,\n state.backendDefaultFields,\n processFixedFields,\n ]);\n\n // istanbul ignore next\n const handleConfirm = async ({\n fields,\n isReset,\n isAdminSetDisplay,\n }: DisplaySettingsModalData) => {\n const onConfirm = async () => {\n if (props.saveFieldsBackend) {\n try {\n const sortFields = mergeFields(state.sortFields, fields);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([props.objectId, { sortFields }]);\n }\n setState({\n fieldIds: _sortFieldIds(fields),\n sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n } else {\n const sortFields = mergeFields(state.sortFields, fields);\n setState({\n fieldIds: _sortFieldIds(fields),\n sortFields,\n });\n jsonLocalStorage.setItem(\n `${modelData.objectId}-selectAttrIds`,\n _sortFieldIds(fields)\n );\n }\n props.onFieldsModalConfirm?.(fields);\n };\n if (isReset) {\n // 恢复默认操作\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n if (props.saveFieldsBackend) {\n const sortFields = mergeFields(state.sortFields, fieldIds);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([props.objectId, { sortFields }]);\n }\n setState({ fieldIds, sortFields });\n props.onFieldsModalConfirm?.(fieldIds);\n } else {\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n setState({ fieldIds });\n props.onFieldsModalConfirm?.(fieldIds);\n }\n } else {\n if (!isAdminSetDisplay) {\n // 点击确定按钮触发\n await onConfirm();\n } else {\n // 点击【默认显示】按钮触发,不影响当前列表显示。\n try {\n // istanbul ignore next\n const sortFields = mergeFields(state.sortFields, fields);\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: sortFields, isDefault: true },\n ]);\n await onConfirm();\n message.success(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SET_DEFAULT_DISPLAY_SUCCESS}`)\n );\n setState({\n backendDefaultFields: sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n }\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n v3Data.page = 1;\n if (!(props.useExternalCmdbApi || props.useAutoDiscoveryProvider)) {\n v3Data.relation_limit =\n isNil(props.relationLimit) || props.relationLimit === 0\n ? 0\n : props.relationLimit + 1;\n }\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp: any;\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data); //涉及到v3data的请求\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n // 多枚举值数据结构返回这种 {attrId: {$in:[]}}\n const fieldId =\n Object.keys(get(query[key] as Query[], \"[0]\", {}))?.[0] || key;\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n\n const onFilterInstanceSourceChange = (checked: boolean): void => {\n setState({ filterInstanceSource: checked });\n props.onFilterInstanceSourceChange?.(checked);\n };\n\n const onFilterObjectIdChange = (objectIdQuery: any): void => {\n setState({ objectIdQuery: objectIdQuery });\n props.onFilterObjectIdChange?.(objectIdQuery);\n };\n\n const onPopoverVisibleChange = (visible: boolean): void => {\n setState({ instanceSourcePopoverVisible: visible });\n };\n\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n useEffect(() => {\n if (props.showFilterInstanceSource) {\n const aq = initAqToShow(props.aq, modelData, false);\n const aqToShow = props.aqToShow || initAqToShow(props.aq, modelData);\n setState({ aq, aqToShow });\n }\n }, [props.aq, props.aqToShow, props.showFilterInstanceSource]);\n\n const fixedFieldIds = useMemo(() => {\n if (!props.extraFixedFields || isStringArray(props.extraFixedFields)) {\n return [];\n } else {\n return (props.extraFixedFields as FixedField[])\n .filter((v: FixedField) => v.fixed)\n .map((v) => v.field);\n }\n }, [props.extraFixedFields]);\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n placeholder={props.placeholder}\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList?.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.extraOperateBricks?.useBrick && (\n <BrickAsComponent\n useBrick={props.extraOperateBricks.useBrick}\n />\n )}\n {props.showFilterInstanceSource && (\n <FilterInstanceSource\n visible={state.instanceSourcePopoverVisible}\n checked={state.filterInstanceSource}\n onPopoverVisibleChange={onPopoverVisibleChange}\n onIconClicKChange={onFilterInstanceSourceChange}\n onChange={onFilterObjectIdChange}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n value={state.objectIdQuery}\n jsonLocalStorage={jsonLocalStorage}\n isAbstract={modelData.isAbstract}\n />\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n useExternalCmdbApi={props.useExternalCmdbApi}\n saveFieldsBackend={props.saveFieldsBackend}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n sortFields={state.sortFields}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={(info: any) => {\n onSortingChange(info, state.sortFields);\n }}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n onColumnsChange={props.onColumnsChange}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n hiddenColumns={props.hiddenColumns}\n showCustomizedSerialNumber={props.showCustomizedSerialNumber}\n relationLimit={props.relationLimit}\n onRelationMoreIconClick={props.onRelationMoreIconClick}\n configProps={props.tableConfigProps}\n fixedFieldIds={fixedFieldIds}\n />\n )}\n </React.Fragment>\n ) : (\n // 加个空白的div是为了将loading效果撑起来\n <div className={styles.virtualLoading}></div>\n )}\n </Spin>\n );\n}\n\n/**\n * 把 objectList 封装到构件中请求,废弃掉通过老模板使用的方式,可直接使用构件。\n * 同时也兼容之前的使用方式,对于外部传进来的会优先使用外部的数据,构件内部不会额外请求,\n * 不传的话构件内部做请求,并作缓存\n */\nexport function LegacyInstanceListWrapper(\n props: InstanceListProps\n): React.ReactElement {\n const [objectList, setObjectList] = useState<ObjectType[]>(props.objectList);\n\n const [mergeObjectList, setMergeObjectList] = useState<ObjectType[]>(\n props.objectList\n );\n\n const externalGetObjectRef = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0\",\n { cache: false }\n );\n\n useEffect(() => {\n if (props.objectList?.length) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n let list;\n if (props.useExternalCmdbApi) {\n list = await externalGetObjectRef.query([\n {\n ref_object: props.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n }\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n useEffect(() => {\n if (!objectList?.length && isEqual(objectList, mergeObjectList)) return;\n (async () => {\n const object = objectList?.find(\n (item) => item.objectId === props.objectId\n );\n const transHierRelationSideObjectIds: string[] =\n object?.view?.trans_hier_relation_list?.map((i) => i.relation_object);\n if (\n transHierRelationSideObjectIds?.length &&\n !transHierRelationSideObjectIds.every((i) =>\n objectList.some((o) => o.objectId === i)\n )\n ) {\n let list;\n try {\n if (!props.useExternalCmdbApi) {\n list = (\n await CmdbObjectApi_list({\n page: 1,\n page_size: transHierRelationSideObjectIds.length,\n objectIds: transHierRelationSideObjectIds.join(\",\"),\n })\n ).list;\n }\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n if (list?.length) {\n objectList.push(...list);\n objectListCache.set(props.objectId, objectList);\n }\n }\n\n setMergeObjectList(objectList);\n })();\n }, [objectList]);\n\n if (\n !mergeObjectList ||\n !mergeObjectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={mergeObjectList} />;\n}\n\n/**\n *\n * 支持关系点击打开抽屉查看更多关系,展示关系的实例列表\n */\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n return <InstanceListDrawer {...props} />;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"InstanceList.js","names":["_react","_interopRequireWildcard","require","_lodash","_brickKit","_i18next","_interopRequireDefault","_constants","_cmdbSdk","_compatible","_antd","_cmdbUtils","_storage","_instanceListTable","_InstanceListDrawer","_InstanceListModule","_constants2","_ModelAttributeFormControl","_IconButton","_processors","_FilterInstanceSource","joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","keyBy","attrList","map","field","relation","relation_list","find","left_id","right_id","_otherSideObject$view","_otherSideObject$view2","_otherSideObject$view3","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","extraFixedFields","query","$or","queryValues","trim","split","_getRuntime$getCurren","searchIpFields","getRuntime","getCurrentApp","config","queryOrs","Set","uniq","searchValue","$like","forEach","key","push","forEachAvailableFields","attr","queryValue","id","sides","this","nameKeys","getInstanceNameKeys","that","nameKey","_relation$display_key","relationObject","relation_object","showKeys","display_keys","length","relation_id","isSpecialFn","attrId","Object","keys","some","v","exports","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","mergeFields","oldFields","newFieldIds","existField","f","order","updateSortFields","sortInfo","sortType","asc","sort","isNil","includes","item","translateConditions","aq","t","_modelData$view","_modelData$view$trans","conditions","relations","transHierRelations","trans_hier_relation_list","_relation$display_key2","name","relation_name","value","type","relationSideId","sidesArr","isSelfRelation","getRelationObjectSides","_find$name","_find","nameOfNameKey","attrAndRelationList","isEmpty","_attr","ElementOperators","Exists","changeQueryWithCustomRules","info","getFieldConditionsAndValues","undefined","mode","ConditionType","Between","Empty","NotEmpty","False","True","currentCondition","isString","replace","condition","label","curCondition","queryValuesStr","every","isEqual","omit","newKey","fieldIds","isOfStruct","fieldId","_modelData$attrList$f","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","_keyAttrMap$fieldId","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","boolExpressions","targetValue","isStringArray","arr","isArray","getExtraFixedFields","LegacyInstanceList","props","_props$selectedRowKey","_state$appList","_props$extraOperateBr","_props$extraFilterBri","showTooltip","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","listProvider","useProvider","cache","instanceArchiveListProvider","ignorePermissionProvider","searchRelationInstanceProvider","fieldsProvider","updateFieldsProvider","onError","error","externalPostSearchV3","externalGetIdMapName","externalFieldsProvider","externalUpdateFieldsProvider","useMemo","disabledDefaultFields","union","extraFieldAttrs","processFixedFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","useState","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","_props$presetConfigs","useExternalCmdbApi","parentObjectId","sourceId","externalSourceId","CmdbObjectApi_getIdMapName","showFilterInstanceSource","setItem","presetConfigs","useEffect","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","concat","hide_columns","sortFields","attr_order","allFields","difference","slice","_sortFieldIds","_props$presetConfigs2","frontFields","restFields","reject","getFieldsAsync","_props$presetConfigs3","_modelData$attrList","_modelData$attrList$f2","_modelData$attrList$f3","default_type","backendDefaultFields","object_id","returnData","defaultSortFields","extraFixedFieldIds","orderField","extraDisabledField","hideModelData","getFields","_props$presetConfigs4","getItem","setQ","state","setState","useReducer","_ref","_props$dataSource$pag","_props$dataSource","_ref2","_props$dataSource$pag2","_props$dataSource2","_props$presetConfigs5","instanceSourceQuery","page","dataSource","pageSize","aliveHosts","relatedToMe","objectIdQuery","filterInstanceSource","instanceSourcePopoverVisible","inited","loading","failed","isAdvancedSearchVisible","saveFieldsBackend","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","useRef","Map","isFirstRunRef","externalRequestParams","getInstanceListData","_modelData$attrList2","_modelData$attrList2$","_modelData$attrList2$2","_props$onSearchExecut","_props$transHierRelat","data","v3Data","permission","archiveData","_relationObjectShowKe","relationObjectShowKeys","useAutoDiscoveryProvider","ignorePermission","_modelData$relation_l","_props$objectList","_props$objectList$fin","_props$objectList$fin2","i","relationObjectId","useInstanceArchiveProvider","key_word","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","extraParams","assign","only_my_instance","_props$presetConfigs6","_props$presetConfigs7","_props$presetConfigs8","_props$presetConfigs9","_props$presetConfigs10","hostRange","limitInstanceRange","$in","relation_limit","relationLimit","promise","onSearchExecute","call","searchTransHierRelationInstance","transHierRelation","searchTransHierRelationSource","query_relation","InstanceApi_postSearchV3","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","handleHttpError","getFieldIds","_props$presetConfigs11","_props$presetConfigs12","fieldConfig","_props$presetConfigs13","_props$presetConfigs14","_props$selectedRowKey2","skip","_props$onPaginationCh","onPaginationChange","updateDataTime","onChange","target","onSelectionChange","useCallback","selected","_props$onSelectionCha","selectedItems","selectedKeys","compact","ids","has","resp","params","page_size","get","onSearch","_props$onSearch","onAdvancedSearch","queriesToShow","fieldToShow","_props$onAdvancedSear","onSortingChange","_props$onSortingChang","_modelData$attrList3","_modelData$attrList3$","_modelData$attrList3$2","oldsortFields","newSortFields","pagination","_props$onPaginationCh2","onInstanceSourceChange","_props$onInstanceSour","onRelatedToMeChange","checked","_props$onRelatedToMeC","onAliveHostsChange","_props$onAliveHostsCh","toggleAutoBreakLine","toggleSearchMode","React","_appListResp$list","_appListResp$list2","_appListResp$list3","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","_props$presetConfigs15","_state$backendDefault","_state$backendDefault2","s","handleConfirm","isReset","isAdminSetDisplay","onConfirm","_props$onFieldsModalC","onFieldsModalConfirm","_props$onFieldsModalC2","_props$onFieldsModalC3","removeItem","isDefault","message","success","SET_DEFAULT_DISPLAY_SUCCESS","_props$notifyCurrentF","notifyCurrentFields","_props$selectedRowKey3","handleToggleFixHeader","onAdvancedSearchCloseGen","_props$onAdvancedSear2","filterAq","filteredSubQueries","startsWith","Array","_Object$keys","isInstanceFilterForm","onFilterInstanceSourceChange","_props$onFilterInstan","onFilterObjectIdChange","_props$onFilterObject","onPopoverVisibleChange","visible","fixedFieldIds","fixed","default","createElement","Spin","spinning","Fragment","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","className","styles","instanceListToolbar","searchRelated","Input","Search","placeholder","enterButton","Button","size","style","marginLeft","marginRight","onClick","ADVANCED_SEARCH","Icon","Select","width","showSearch","optionFilterProp","Option","options","CHOSEN_OPTIONS","count","role","CLEAR","extraOperateBricks","useBrick","BrickAsComponent","onIconClicKChange","enableSearchByApp","FREE_SELECTION","APP_SELECTION","IconButton","disabled","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","MoreButtonsContainer","showFixedHeader","marginBottom","hidden","AdvancedSearch","_extends2","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","Tag","closable","onClose","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","uniqueId","extraFilterBricks","InstanceListTable","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","isOperate","operateUseBrick","ipCopy","separatorUsedInRelationData","rowSelectionType","onColumnsChange","hiddenColumns","showCustomizedSerialNumber","onRelationMoreIconClick","configProps","tableConfigProps","virtualLoading","LegacyInstanceListWrapper","setObjectList","mergeObjectList","setMergeObjectList","externalGetObjectRef","_props$objectList2","cacheData","objectListCache","ref_object","CmdbObjectApi_getObjectRef","_object$view","_object$view$trans_hi","transHierRelationSideObjectIds","o","_list","CmdbObjectApi_list","objectIds","InstanceList","InstanceListDrawer"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n cloneDeep,\n isNil,\n get,\n isArray,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n CmdbObjectApi_list,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select, Popover, message } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n TransHierRelationType,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport { InstanceListDrawer } from \"../instance-list-drawer/InstanceListDrawer\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nimport FilterInstanceSource from \"./FilterInstanceSource\";\nimport { ColumnType } from \"antd/lib/table\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\ninterface ISortField {\n field: string;\n order: number;\n}\ntype ObjectType = Partial<CmdbModels.ModelCmdbObject> & {\n view?: Partial<CmdbModels.ModelObjectView> & {\n trans_hier_relation_list?: TransHierRelationType[];\n };\n};\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean,\n extraFixedFields?: string[]\n) {\n const query: Record<string, any> = { $or: [] };\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [\n ...new Set([\n \"ip\",\n ...uniq([...searchIpFields, ...(extraFixedFields || [])]),\n ]),\n ];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields,\n //istanbul ignore next\n (relation: TransHierRelationType) => {\n const relationObject = idObjectMap[relation.relation_object];\n const showKeys = relation.display_keys?.length\n ? relation.display_keys\n : getInstanceNameKeys(relationObject);\n\n queryValues.forEach((queryValue) => {\n showKeys.forEach((nameKey) => {\n query.$or.push({\n [`${relation.relation_id}.${nameKey}`]: {\n $like: `%${queryValue}%`,\n },\n });\n });\n });\n }\n );\n\n return query;\n}\n\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\nexport function mergeFields(\n oldFields: ISortField[],\n newFieldIds: string[]\n): ISortField[] {\n return newFieldIds.map((field) => {\n const existField = oldFields.find((f) => f.field === field);\n const order = existField ? existField.order : 0;\n return { field, order };\n });\n}\nexport function updateSortFields(\n oldFields: ISortField[],\n sortInfo: { asc?: boolean; sort?: string },\n sortType?: string\n): ISortField[] {\n const { asc, sort } = sortInfo;\n const order = isNil(asc)\n ? 0\n : [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n return oldFields.map((item) => {\n if (item.field === sort) {\n item.order = order;\n } else {\n item.order = 0;\n }\n return item;\n });\n}\n\nexport function translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: ObjectType,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n const transHierRelations: {\n id: string;\n name: string;\n value: { type: string };\n relationSideId: string;\n }[] = [];\n modelData.view?.trans_hier_relation_list?.forEach((relation) => {\n const nameKeys = relation.display_keys?.length\n ? relation.display_keys\n : getInstanceNameKeys(idObjectMap[relation.relation_object]);\n nameKeys.forEach((nameKey) => {\n transHierRelations.push({\n id: `${relation.relation_id}.${nameKey}`,\n name: relation.relation_name,\n value: { type: \"str\" },\n relationSideId: relation.relation_id,\n });\n });\n });\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [\n ...modelData.attrList,\n ...relations,\n ...transHierRelations,\n ];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr?.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id,\n attr.value.mode\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\nexport interface filterObjectIdQuery {\n objectId?: string;\n objectName?: string;\n query?: Record<string, string>;\n checked?: boolean;\n}\n\ninterface FixedField {\n field: string;\n fixed?: boolean;\n}\n\nexport type ExtraFixedFields = string[] | FixedField[];\n\n// 判断是不是字符串数组\nfunction isStringArray(arr: ExtraFixedFields): boolean {\n return isArray(arr) && (arr as any[]).every((item) => isString(item));\n}\n// 格式化extraFixedFields\nfunction getExtraFixedFields(fields: ExtraFixedFields): string[] {\n if (isNil(fields) || isStringArray(fields)) {\n return fields as string[];\n } else {\n return (fields as FixedField[]).map((v: FixedField) => v.field);\n }\n}\n\nexport interface InstanceListProps {\n objectId: string;\n objectList?: ObjectType[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n onFieldsModalConfirm?(fields: Record<string, any>): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n isOperate?: boolean;\n operateUseBrick?: UseBrickConf;\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showTooltip?: boolean;\n showFixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效,支持在最后固定列展示\n extraFixedFields?: ExtraFixedFields;\n // 如果在presetConfigs的query参数中指定了资源的范围,\"按应用筛选\"的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n useInstanceArchiveProvider?: boolean;\n placeholder?: string;\n extraOperateBricks?: {\n useBrick: UseBrickConf;\n };\n updateDataTime?: number;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(query: filterObjectIdQuery): void;\n objectIdQuery?: string;\n ignorePermission?: boolean;\n saveFieldsBackend?: boolean;\n onColumnsChange?: (columns: ColumnType<{ dataIndex: string }>[]) => void;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n hiddenColumns?: Array<string>;\n showCustomizedSerialNumber?: boolean;\n relationLimit?: number;\n onRelationMoreIconClick?: (record: Record<string, any>) => void;\n tableConfigProps?: Record<string, any>;\n //跨级关系,查询某个实例下的某条跨级关系数据\n searchTransHierRelationInstance?: boolean;\n transHierRelation?: TransHierRelationType;\n searchTransHierRelationSource?: { objectId: string; instanceId: string };\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n presetConfigsQuery?: Record<string, any>;\n filterInstanceSource?: boolean;\n objectIdQuery?: string;\n instanceSourcePopoverVisible?: boolean;\n sortFields?: { field: string; order: number }[];\n backendDefaultFields?: { field: string; order: number }[];\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\n \"easyops.api.cmdb.job@SearchResource:1.0.1\",\n { cache: false }\n );\n const instanceArchiveListProvider = useProvider(\n \"providers-of-cmdb.instance-archive-api-list-archive-instance\",\n {\n cache: false,\n }\n );\n const ignorePermissionProvider = useProvider(\n \"easyops.api.cmdb.instance@PostSearchV3WithAdmin:1.0.0\",\n { cache: false }\n );\n\n const searchRelationInstanceProvider = useProvider(\n \"easyops.api.cmdb.instance@SearchRelationInstance:1.1.0\",\n { cache: false }\n );\n // istanbul ignore next\n\n const fieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@GetListDisplayView:1.0.1\",\n { cache: false }\n );\n\n // istanbul ignore next\n const updateFieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@UpdateListDisplayView:1.0.0\",\n {\n cache: false,\n onError: (error) => {\n // istanbul ignore next\n throw error;\n },\n }\n );\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n const externalGetIdMapName = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetIdMapName:1.0.1\",\n { cache: false }\n );\n const externalFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetListDisplayView:1.0.0\",\n { cache: false }\n );\n const externalUpdateFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyUpdateListDisplayView:1.0.0\",\n { cache: false }\n );\n\n const { modelData, idObjectMap } = useMemo(() => {\n let modelData: ObjectType;\n const idObjectMap: Record<string, ObjectType> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const processFixedFields = useMemo(() => {\n return getExtraFixedFields(props?.extraFixedFields);\n }, [props.extraFixedFields]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n if (props.useExternalCmdbApi) {\n idNameMap = await externalGetIdMapName.query([\n {\n parentObjectId: modelData.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n props.showFilterInstanceSource &&\n jsonLocalStorage.setItem(`instances-sources-objectId-name-map`, {\n parentObjectId: modelData.objectId,\n query: props.presetConfigs?.query,\n idNameMap,\n });\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 针对 显示字段,默认优先拿排序的字段,再去拿属性字段\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] = (\n settings.ignoredFields[modelData.objectId] || []\n ).concat(modelData.view.hide_columns || []);\n const sortFields = modelData.view.attr_order || [];\n const allFields = [\n ...new Set([...sortFields, ...map(modelData.attrList, \"id\")]),\n ];\n const fieldIds: string[] = difference(allFields, ignoredFields).slice(0, 8);\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 fieldIds 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = reject(fieldIds, (id) => frontFields.includes(id));\n\n return [...frontFields, ...restFields];\n };\n // istanbul ignore next\n\n const getFieldsAsync = async () => {\n let sort = props.sort;\n let fieldIds = props.presetConfigs?.fieldIds;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n let asc, sortFields;\n let backendDefaultFields;\n if (props.asc === true) {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? 2 : 1;\n } else {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? -2 : -1;\n }\n if (props.useExternalCmdbApi) {\n sortFields = (\n (await externalFieldsProvider.query([\n { object_id: props.objectId, sourceId: props.externalSourceId },\n ])) as {\n sortFields: ISortField[];\n object_id: string;\n }\n ).sortFields;\n } else {\n // 获取用户配置的显示列\n const returnData = (await fieldsProvider.query([props.objectId])) as {\n sortFields: ISortField[];\n object_id: string;\n defaultSortFields: ISortField[];\n };\n sortFields = returnData.sortFields;\n backendDefaultFields = returnData.defaultSortFields;\n }\n const extraFixedFieldIds = processFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = sortFields.map((item) => item.field);\n if (isEmpty(sort) || isEmpty(asc)) {\n const orderField = sortFields.find((item) => item.order !== 0);\n if (orderField) {\n sort = orderField.field;\n asc = orderField.order;\n }\n }\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return { fieldIds, sort, asc, sortFields, backendDefaultFields };\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = processFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n sortFields: [],\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n objectIdQuery: props.objectIdQuery,\n filterInstanceSource: props.filterInstanceSource,\n instanceSourcePopoverVisible: false,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: props.saveFieldsBackend ? [] : getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n backendDefaultFields: [],\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, props.externalSourceId]);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: processFixedFields\n ? uniq([\"instanceId\"].concat(processFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n const archiveData: instanceArchiveRequestBody = {};\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = archiveData.page = page;\n v3Data[\"page_size\"] =\n data[\"page_size\"] =\n archiveData[\"page_size\"] =\n state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n let relationObjectShowKeys: string[] = [];\n if (\n !props.useExternalCmdbApi &&\n !props.useAutoDiscoveryProvider &&\n !props.ignorePermission\n ) {\n const relation = modelData?.relation_list?.find((i) =>\n i.right_object_id === props.objectId\n ? sort === i.right_id\n : sort === i.left_id\n );\n const relationObjectId =\n relation?.right_object_id === props.objectId\n ? relation?.left_object_id\n : relation?.right_object_id;\n relationObjectShowKeys = props.objectList?.find(\n (i) => i.objectId === relationObjectId\n )?.view?.show_key;\n }\n v3Data.sort = relationObjectShowKeys?.length\n ? relationObjectShowKeys.map((i) => ({ key: `${sort}.${i}`, order }))\n : [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp,\n processFixedFields\n );\n }\n\n if (state.q && props.useInstanceArchiveProvider) {\n archiveData.key_word = state.q;\n }\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [\n ...state.fieldIds,\n ...v3Data.fields,\n ...(modelData.isAbstract ? [\"_object_id\"] : []),\n ];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (props.useInstanceArchiveProvider) {\n archiveData.fields = v3Data.fields.join(\",\");\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\n }\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n\n if (!(props.useExternalCmdbApi || props.useAutoDiscoveryProvider)) {\n v3Data.relation_limit =\n isNil(props.relationLimit) || props.relationLimit === 0\n ? 0\n : props.relationLimit + 1;\n }\n\n if (props.useInstanceArchiveProvider) {\n return instanceArchiveListProvider.query([props.objectId, archiveData]);\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n // useExternalCmdbApi= true 使用外部接口externalPostSearchV3\n return promise\n ? promise\n : props.useExternalCmdbApi\n ? externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ])\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : props.ignorePermission\n ? ignorePermissionProvider.query([props.objectId, v3Data])\n : props.searchTransHierRelationInstance &&\n props.transHierRelation?.relation_id &&\n props.searchTransHierRelationSource\n ? searchRelationInstanceProvider.query([\n props.searchTransHierRelationSource.objectId,\n props.transHierRelation.relation_id,\n props.searchTransHierRelationSource.instanceId,\n { query_relation: v3Data.query, ...v3Data },\n ])\n : InstanceApi_postSearchV3(props.objectId, v3Data); //涉及到v3data的请求\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = (await getInstanceListData(\n sort,\n asc,\n page\n )) || { list: [] };\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n // 为了接口报错,不把整页面列干掉,去掉 failed: true 这个逻辑\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n // const [fieldIds,setFieldIds] = useState([]);\n // istanbul ignore next\n useEffect(() => {\n if (props.saveFieldsBackend) {\n const getFieldIds = async () => {\n const fieldConfig = await getFieldsAsync();\n const { fieldIds, sort, asc, sortFields, backendDefaultFields } =\n fieldConfig;\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n )\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n sort,\n asc: [1, 2].includes(asc) ? true : false,\n sortFields,\n backendDefaultFields,\n });\n };\n getFieldIds();\n } else {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }\n }, [props.objectId, props.presetConfigs, processFixedFields]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n useEffect(() => {\n setQ(props.q);\n setState({ q: props.q });\n }, [props.q]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n props.updateDataTime,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params: any = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n page: 1,\n };\n\n if (!(props.useExternalCmdbApi || props.useAutoDiscoveryProvider)) {\n params.relation_limit =\n isNil(props.relationLimit) || props.relationLimit === 0\n ? 0\n : props.relationLimit + 1;\n }\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...params,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else if (props.ignorePermission) {\n resp = await ignorePermissionProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n async (info: ReadSortingChangeDetail, sortFields?: ISortField[]) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n // istanbul ignore next\n if (\n props.saveFieldsBackend &&\n sortFields.find((item) => item.field === info.sort)\n ) {\n try {\n const oldsortFields = sortFields;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const newSortFields = updateSortFields(oldsortFields, info, sortType);\n setState({\n sortFields: newSortFields,\n });\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields: newSortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: newSortFields },\n ]);\n }\n } catch (e) {\n handleHttpError;\n }\n }\n // istanbul ignore next\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n let appListResp: any;\n const params: any = {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n ...(props.useExternalCmdbApi ? externalRequestParams : {}),\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n appListResp = await externalPostSearchV3.query([params]);\n } else {\n appListResp = await InstanceApi_postSearchV3(\"APP\", params);\n }\n\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n\n // 后台返回的默认配置\n\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = processFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n // istanbul ignore next\n // 所有用户(包括管理员)点击恢复默认按钮是恢复到 1.管理员设置的默认显示 2.管理员未设置时取前N个\n if (\n props.saveFieldsBackend &&\n !props.useExternalCmdbApi &&\n state.backendDefaultFields &&\n state.backendDefaultFields?.length > 0\n ) {\n // istanbul ignore next\n // 后台接口返回的默认字段(1. admin用户设置的,2. 前N个)\n defaultFields = compact(\n state.backendDefaultFields?.map((s) => s.field)\n );\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [\n props.presetConfigs,\n modelData,\n state.backendDefaultFields,\n processFixedFields,\n ]);\n\n // istanbul ignore next\n const handleConfirm = async ({\n fields,\n isReset,\n isAdminSetDisplay,\n }: DisplaySettingsModalData) => {\n const onConfirm = async () => {\n if (props.saveFieldsBackend) {\n try {\n const sortFields = mergeFields(state.sortFields, fields);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([props.objectId, { sortFields }]);\n }\n setState({\n fieldIds: _sortFieldIds(fields),\n sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n } else {\n const sortFields = mergeFields(state.sortFields, fields);\n setState({\n fieldIds: _sortFieldIds(fields),\n sortFields,\n });\n jsonLocalStorage.setItem(\n `${modelData.objectId}-selectAttrIds`,\n _sortFieldIds(fields)\n );\n }\n props.onFieldsModalConfirm?.(fields);\n };\n if (isReset) {\n // 恢复默认操作\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n if (props.saveFieldsBackend) {\n const sortFields = mergeFields(state.sortFields, fieldIds);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([props.objectId, { sortFields }]);\n }\n setState({ fieldIds, sortFields });\n props.onFieldsModalConfirm?.(fieldIds);\n } else {\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n setState({ fieldIds });\n props.onFieldsModalConfirm?.(fieldIds);\n }\n } else {\n if (!isAdminSetDisplay) {\n // 点击确定按钮触发\n await onConfirm();\n } else {\n // 点击【默认显示】按钮触发,不影响当前列表显示。\n try {\n // istanbul ignore next\n const sortFields = mergeFields(state.sortFields, fields);\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: sortFields, isDefault: true },\n ]);\n await onConfirm();\n message.success(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SET_DEFAULT_DISPLAY_SUCCESS}`)\n );\n setState({\n backendDefaultFields: sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n }\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n v3Data.page = 1;\n if (!(props.useExternalCmdbApi || props.useAutoDiscoveryProvider)) {\n v3Data.relation_limit =\n isNil(props.relationLimit) || props.relationLimit === 0\n ? 0\n : props.relationLimit + 1;\n }\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp: any;\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data); //涉及到v3data的请求\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n // 多枚举值数据结构返回这种 {attrId: {$in:[]}}\n const fieldId =\n Object.keys(get(query[key] as Query[], \"[0]\", {}))?.[0] || key;\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n\n const onFilterInstanceSourceChange = (checked: boolean): void => {\n setState({ filterInstanceSource: checked });\n props.onFilterInstanceSourceChange?.(checked);\n };\n\n const onFilterObjectIdChange = (objectIdQuery: any): void => {\n setState({ objectIdQuery: objectIdQuery });\n props.onFilterObjectIdChange?.(objectIdQuery);\n };\n\n const onPopoverVisibleChange = (visible: boolean): void => {\n setState({ instanceSourcePopoverVisible: visible });\n };\n\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n useEffect(() => {\n if (props.showFilterInstanceSource) {\n const aq = initAqToShow(props.aq, modelData, false);\n const aqToShow = props.aqToShow || initAqToShow(props.aq, modelData);\n setState({ aq, aqToShow });\n }\n }, [props.aq, props.aqToShow, props.showFilterInstanceSource]);\n\n const fixedFieldIds = useMemo(() => {\n if (!props.extraFixedFields || isStringArray(props.extraFixedFields)) {\n return [];\n } else {\n return (props.extraFixedFields as FixedField[])\n .filter((v: FixedField) => v.fixed)\n .map((v) => v.field);\n }\n }, [props.extraFixedFields]);\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n placeholder={props.placeholder}\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList?.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.extraOperateBricks?.useBrick && (\n <BrickAsComponent\n useBrick={props.extraOperateBricks.useBrick}\n />\n )}\n {props.showFilterInstanceSource && (\n <FilterInstanceSource\n visible={state.instanceSourcePopoverVisible}\n checked={state.filterInstanceSource}\n onPopoverVisibleChange={onPopoverVisibleChange}\n onIconClicKChange={onFilterInstanceSourceChange}\n onChange={onFilterObjectIdChange}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n value={state.objectIdQuery}\n jsonLocalStorage={jsonLocalStorage}\n isAbstract={modelData.isAbstract}\n />\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n useExternalCmdbApi={props.useExternalCmdbApi}\n saveFieldsBackend={props.saveFieldsBackend}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n sortFields={state.sortFields}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={(info: any) => {\n onSortingChange(info, state.sortFields);\n }}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n isOperate={props.isOperate}\n operateUseBrick={props.operateUseBrick}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n onColumnsChange={props.onColumnsChange}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n hiddenColumns={props.hiddenColumns}\n showCustomizedSerialNumber={props.showCustomizedSerialNumber}\n relationLimit={props.relationLimit}\n onRelationMoreIconClick={props.onRelationMoreIconClick}\n configProps={props.tableConfigProps}\n fixedFieldIds={fixedFieldIds}\n />\n )}\n </React.Fragment>\n ) : (\n // 加个空白的div是为了将loading效果撑起来\n <div className={styles.virtualLoading}></div>\n )}\n </Spin>\n );\n}\n\n/**\n * 把 objectList 封装到构件中请求,废弃掉通过老模板使用的方式,可直接使用构件。\n * 同时也兼容之前的使用方式,对于外部传进来的会优先使用外部的数据,构件内部不会额外请求,\n * 不传的话构件内部做请求,并作缓存\n */\nexport function LegacyInstanceListWrapper(\n props: InstanceListProps\n): React.ReactElement {\n const [objectList, setObjectList] = useState<ObjectType[]>(props.objectList);\n\n const [mergeObjectList, setMergeObjectList] = useState<ObjectType[]>(\n props.objectList\n );\n\n const externalGetObjectRef = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0\",\n { cache: false }\n );\n\n useEffect(() => {\n if (props.objectList?.length) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n let list;\n if (props.useExternalCmdbApi) {\n list = await externalGetObjectRef.query([\n {\n ref_object: props.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n }\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n useEffect(() => {\n if (!objectList?.length && isEqual(objectList, mergeObjectList)) return;\n (async () => {\n const object = objectList?.find(\n (item) => item.objectId === props.objectId\n );\n const transHierRelationSideObjectIds: string[] =\n object?.view?.trans_hier_relation_list?.map((i) => i.relation_object);\n if (\n transHierRelationSideObjectIds?.length &&\n !transHierRelationSideObjectIds.every((i) =>\n objectList.some((o) => o.objectId === i)\n )\n ) {\n let list;\n try {\n if (!props.useExternalCmdbApi) {\n list = (\n await CmdbObjectApi_list({\n page: 1,\n page_size: transHierRelationSideObjectIds.length,\n objectIds: transHierRelationSideObjectIds.join(\",\"),\n })\n ).list;\n }\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n if (list?.length) {\n objectList.push(...list);\n objectListCache.set(props.objectId, objectList);\n }\n }\n\n setMergeObjectList(objectList);\n })();\n }, [objectList]);\n\n if (\n !mergeObjectList ||\n !mergeObjectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={mergeObjectList} />;\n}\n\n/**\n *\n * 支持关系点击打开抽屉查看更多关系,展示关系的实例列表\n */\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n return <InstanceListDrawer {...props} />;\n}\n"],"mappings":"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","ignoreList":[]}
|