@next-libs/cmdb-instances 7.24.7 → 7.24.8
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-detail/components/instance-relation-table-show/instance-relation-table-show.js +1 -1
- package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
- package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +1 -1
- package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
- package/package.json +2 -2
|
@@ -35,7 +35,7 @@ function getHiddenColumns(data, oppositeModelData, relationData, relationGangedC
|
|
|
35
35
|
if (relationGangedConfig && (relationData === null || relationData === void 0 ? void 0 : relationData.left_max) === 1 && (relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.rightObjectId) === (relationData === null || relationData === void 0 ? void 0 : relationData.right_object_id) && (relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.objectId) === (relationData === null || relationData === void 0 ? void 0 : relationData.left_object_id)) {
|
|
36
36
|
var _head;
|
|
37
37
|
const attrData = (_head = (0, _lodash.head)(data)) === null || _head === void 0 ? void 0 : _head[relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.rightControlAttrId];
|
|
38
|
-
const attrType = (0, _lodash.get)((0, _lodash.filter)(oppositeModelData.
|
|
38
|
+
const attrType = (0, _lodash.get)((0, _lodash.filter)(oppositeModelData.__fieldList, o => o.id === (relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.rightControlAttrId)), "[0].value.type");
|
|
39
39
|
if (attrData && attrType === "arr" && (0, _lodash.isArray)(attrData)) {
|
|
40
40
|
const nonIncludedControlFields = (0, _lodash.filter)((relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.control) || [], attr => !attrData.includes(attr));
|
|
41
41
|
return oppositeAttrList.filter(item => nonIncludedControlFields.includes(item));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-relation-table-show.js","names":["_react","_interopRequireWildcard","require","_cmdbUtils","_instanceListTable","_constants","_i18next","_interopRequireDefault","_lodash","_InstanceListTableModule","_dataProviders","_brickKit","reOrderAttrs","fields","fieldOrder","sortBy","field","index","indexOf","length","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","getHiddenColumns","data","oppositeModelData","relationData","relationGangedConfig","attrList","attr","id","left_max","rightObjectId","right_object_id","objectId","left_object_id","_head","attrData","head","rightControlAttrId","attrType","get","filter","o","isArray","nonIncludedControlFields","control","includes","InstanceRelationTableShow","props","_oppositeModelData$vi","_oppositeModelData$vi2","modelDataMap","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","externalSourceId","oppositeModelDataMap","setOppositeModelDataMap","useState","useEffect","fetchOppositeModelData","modelListData","fetchCmdbObjectRef","keyBy","catch","error","handleHttpError","instanceSourceQuery","setInstanceSourceQuery","modelData","modifyModelData","__id","fieldIds","hideModelData","view","hide_columns","relation_list","left_id","right_id","hiddenColumns","default","createElement","style","display","InstanceListTable","detailUrlTemplates","hideRelationLink","idObjectMap","instanceListData","list","onInstanceSourceChange","instanceQuery","filterInstanceSourceDisabled","autoBreakLine","selectDisabled","sortDisabled","configProps","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","className","styles","totalText","i18n","t","NS_LIBS_CMDB_INSTANCES","K","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT","target","useExternalCmdbApi"],"sources":["../../../../../src/instance-detail/components/instance-relation-table-show/instance-relation-table-show.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { Table } from \"antd\";\nimport {\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../../../instance-list-table\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../../i18n/constants\";\nimport i18n from \"i18next\";\nimport { get, sortBy, keyBy, head, isArray, filter } from \"lodash\";\nimport styles from \"../../../instance-list-table/InstanceListTable.module.css\";\nimport { fetchCmdbObjectRef } from \"../../../data-providers\";\nimport { handleHttpError } from \"@next-core/brick-kit\";\nexport interface InstanceRelationTableShowProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n isPagination?: boolean;\n total?: number;\n relationTablePagination?: {\n current?: number;\n pageSize?: number;\n };\n paginationChange?: (\n page: number,\n pageSize: number,\n relationData: ModifiedModelObjectRelation\n ) => Promise<void> | void;\n hideRelationLink?: boolean;\n onInstanceSourceChange?: (instanceSource: string) => void;\n filterInstanceSourceDisabled?: boolean;\n externalSourceId?: string;\n relationGangedConfig?: Record<string, any>;\n}\nexport function reOrderAttrs(fields: string[], fieldOrder: string[] = []) {\n return sortBy(fields, (field) => {\n const index = fieldOrder.indexOf(field);\n return index === -1 ? fields.length : index;\n });\n}\nexport function getRelationShowFields(\n defaultRelationFields: string[],\n oppositeAttrList: string[],\n attr_order: string[] = []\n) {\n let showFields = oppositeAttrList;\n if (defaultRelationFields?.length) {\n showFields = reOrderAttrs(\n defaultRelationFields.map((item: string) =>\n item.startsWith(\"#\") ? item.slice(1) : item\n ),\n attr_order\n );\n }\n return showFields;\n}\n\nfunction getHiddenColumns(\n data: any[],\n oppositeModelData: any,\n relationData: ModifiedModelObjectRelation,\n relationGangedConfig?: Record<string, any>\n): string[] {\n const oppositeAttrList = oppositeModelData.attrList.map(\n (attr: any) => attr.id\n );\n if (\n relationGangedConfig &&\n relationData?.left_max === 1 &&\n relationGangedConfig?.rightObjectId === relationData?.right_object_id &&\n relationGangedConfig?.objectId === relationData?.left_object_id\n ) {\n const attrData = head(data)?.[relationGangedConfig?.rightControlAttrId];\n const attrType = get(\n filter(\n oppositeModelData.attrList,\n (o: any) => o.id === relationGangedConfig?.rightControlAttrId\n ),\n \"[0].value.type\"\n );\n if (attrData && attrType === \"arr\" && isArray(attrData)) {\n const nonIncludedControlFields = filter(\n relationGangedConfig?.control || [],\n (attr: any) => !attrData.includes(attr)\n );\n return oppositeAttrList.filter((item: any) =>\n nonIncludedControlFields.includes(item)\n );\n }\n }\n\n return [];\n}\n//istanbul ignore next\nexport function InstanceRelationTableShow(\n props: InstanceRelationTableShowProps\n): React.ReactElement {\n const {\n modelDataMap,\n relationData,\n value,\n relationFieldUrlTemplate,\n paginationChange,\n total,\n relationTablePagination,\n externalSourceId,\n relationGangedConfig,\n } = props;\n const [oppositeModelDataMap, setOppositeModelDataMap] = useState({});\n /**\n * 实例详情中展示对端实例的关系时,需要重新拉取对端关系所关联的模型。\n * 如在主机详情中展示负责人所在的角色,需要拿到与USER相关的模型ROLE@ONEMODEL\n * 而原来的modelDataMap是与HOST相关的,可能不包括ROLE@ONEMODEL,就造成取不到角色的showKey\n */\n useEffect(() => {\n const fetchOppositeModelData = async () => {\n const modelListData = await fetchCmdbObjectRef(\n relationData.right_object_id,\n externalSourceId\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData, externalSourceId]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n const modelData = modelDataMap[relationData.left_object_id];\n let oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n // 如果指定了relation_default_attr,则取里面的字段\n const defaultRelationFields = get(modelData, [\n \"view\",\n \"relation_default_attr\",\n relationData.__id,\n ]);\n\n const fieldIds = getRelationShowFields(\n defaultRelationFields,\n oppositeModelData.attrList.map((attr) => attr.id),\n get(oppositeModelData, [\"view\", \"attr_order\"])\n );\n //过滤掉视图不可见字段\n const hideModelData = oppositeModelData.view?.hide_columns ?? [];\n oppositeModelData = {\n ...oppositeModelData,\n attrList: oppositeModelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: oppositeModelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.relationData.right_object_id) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.relationData.right_object_id)\n )\n ),\n };\n const hiddenColumns = getHiddenColumns(\n value,\n oppositeModelData,\n relationData,\n relationGangedConfig\n );\n\n return (\n <div style={{ display: \"grid\" }}>\n <InstanceListTable\n detailUrlTemplates={\n props.hideRelationLink\n ? null\n : {\n [relationData.right_object_id]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n }\n }\n idObjectMap={oppositeModelDataMap}\n modelData={oppositeModelData}\n instanceListData={{\n list: value,\n }}\n onInstanceSourceChange={(instanceQuery: any) => {\n props.onInstanceSourceChange(instanceQuery);\n }}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={true}\n fieldIds={fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: props.isPagination\n ? {\n showSizeChanger: true,\n total: total,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n ...relationTablePagination,\n onChange: (page: number, pageSize: number) => {\n paginationChange(page, pageSize, relationData);\n },\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`\n )}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`\n )}\n </span>\n ),\n }\n : false,\n }}\n target={\"_blank\"}\n externalSourceId={externalSourceId}\n useExternalCmdbApi={externalSourceId ? true : false}\n hiddenColumns={hiddenColumns}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"instance-relation-table-show.js","names":["_react","_interopRequireWildcard","require","_cmdbUtils","_instanceListTable","_constants","_i18next","_interopRequireDefault","_lodash","_InstanceListTableModule","_dataProviders","_brickKit","reOrderAttrs","fields","fieldOrder","sortBy","field","index","indexOf","length","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","getHiddenColumns","data","oppositeModelData","relationData","relationGangedConfig","attrList","attr","id","left_max","rightObjectId","right_object_id","objectId","left_object_id","_head","attrData","head","rightControlAttrId","attrType","get","filter","__fieldList","o","isArray","nonIncludedControlFields","control","includes","InstanceRelationTableShow","props","_oppositeModelData$vi","_oppositeModelData$vi2","modelDataMap","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","externalSourceId","oppositeModelDataMap","setOppositeModelDataMap","useState","useEffect","fetchOppositeModelData","modelListData","fetchCmdbObjectRef","keyBy","catch","error","handleHttpError","instanceSourceQuery","setInstanceSourceQuery","modelData","modifyModelData","__id","fieldIds","hideModelData","view","hide_columns","relation_list","left_id","right_id","hiddenColumns","default","createElement","style","display","InstanceListTable","detailUrlTemplates","hideRelationLink","idObjectMap","instanceListData","list","onInstanceSourceChange","instanceQuery","filterInstanceSourceDisabled","autoBreakLine","selectDisabled","sortDisabled","configProps","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","className","styles","totalText","i18n","t","NS_LIBS_CMDB_INSTANCES","K","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT","target","useExternalCmdbApi"],"sources":["../../../../../src/instance-detail/components/instance-relation-table-show/instance-relation-table-show.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { Table } from \"antd\";\nimport {\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../../../instance-list-table\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../../i18n/constants\";\nimport i18n from \"i18next\";\nimport { get, sortBy, keyBy, head, isArray, filter } from \"lodash\";\nimport styles from \"../../../instance-list-table/InstanceListTable.module.css\";\nimport { fetchCmdbObjectRef } from \"../../../data-providers\";\nimport { handleHttpError } from \"@next-core/brick-kit\";\nexport interface InstanceRelationTableShowProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n isPagination?: boolean;\n total?: number;\n relationTablePagination?: {\n current?: number;\n pageSize?: number;\n };\n paginationChange?: (\n page: number,\n pageSize: number,\n relationData: ModifiedModelObjectRelation\n ) => Promise<void> | void;\n hideRelationLink?: boolean;\n onInstanceSourceChange?: (instanceSource: string) => void;\n filterInstanceSourceDisabled?: boolean;\n externalSourceId?: string;\n relationGangedConfig?: Record<string, any>;\n}\nexport function reOrderAttrs(fields: string[], fieldOrder: string[] = []) {\n return sortBy(fields, (field) => {\n const index = fieldOrder.indexOf(field);\n return index === -1 ? fields.length : index;\n });\n}\nexport function getRelationShowFields(\n defaultRelationFields: string[],\n oppositeAttrList: string[],\n attr_order: string[] = []\n) {\n let showFields = oppositeAttrList;\n if (defaultRelationFields?.length) {\n showFields = reOrderAttrs(\n defaultRelationFields.map((item: string) =>\n item.startsWith(\"#\") ? item.slice(1) : item\n ),\n attr_order\n );\n }\n return showFields;\n}\n\nfunction getHiddenColumns(\n data: any[],\n oppositeModelData: any,\n relationData: ModifiedModelObjectRelation,\n relationGangedConfig?: Record<string, any>\n): string[] {\n const oppositeAttrList = oppositeModelData.attrList.map(\n (attr: any) => attr.id\n );\n if (\n relationGangedConfig &&\n relationData?.left_max === 1 &&\n relationGangedConfig?.rightObjectId === relationData?.right_object_id &&\n relationGangedConfig?.objectId === relationData?.left_object_id\n ) {\n const attrData = head(data)?.[relationGangedConfig?.rightControlAttrId];\n const attrType = get(\n filter(\n oppositeModelData.__fieldList,\n (o: any) => o.id === relationGangedConfig?.rightControlAttrId\n ),\n \"[0].value.type\"\n );\n if (attrData && attrType === \"arr\" && isArray(attrData)) {\n const nonIncludedControlFields = filter(\n relationGangedConfig?.control || [],\n (attr: any) => !attrData.includes(attr)\n );\n return oppositeAttrList.filter((item: any) =>\n nonIncludedControlFields.includes(item)\n );\n }\n }\n\n return [];\n}\n//istanbul ignore next\nexport function InstanceRelationTableShow(\n props: InstanceRelationTableShowProps\n): React.ReactElement {\n const {\n modelDataMap,\n relationData,\n value,\n relationFieldUrlTemplate,\n paginationChange,\n total,\n relationTablePagination,\n externalSourceId,\n relationGangedConfig,\n } = props;\n const [oppositeModelDataMap, setOppositeModelDataMap] = useState({});\n /**\n * 实例详情中展示对端实例的关系时,需要重新拉取对端关系所关联的模型。\n * 如在主机详情中展示负责人所在的角色,需要拿到与USER相关的模型ROLE@ONEMODEL\n * 而原来的modelDataMap是与HOST相关的,可能不包括ROLE@ONEMODEL,就造成取不到角色的showKey\n */\n useEffect(() => {\n const fetchOppositeModelData = async () => {\n const modelListData = await fetchCmdbObjectRef(\n relationData.right_object_id,\n externalSourceId\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData, externalSourceId]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n const modelData = modelDataMap[relationData.left_object_id];\n let oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n // 如果指定了relation_default_attr,则取里面的字段\n const defaultRelationFields = get(modelData, [\n \"view\",\n \"relation_default_attr\",\n relationData.__id,\n ]);\n\n const fieldIds = getRelationShowFields(\n defaultRelationFields,\n oppositeModelData.attrList.map((attr) => attr.id),\n get(oppositeModelData, [\"view\", \"attr_order\"])\n );\n //过滤掉视图不可见字段\n const hideModelData = oppositeModelData.view?.hide_columns ?? [];\n oppositeModelData = {\n ...oppositeModelData,\n attrList: oppositeModelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: oppositeModelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.relationData.right_object_id) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.relationData.right_object_id)\n )\n ),\n };\n const hiddenColumns = getHiddenColumns(\n value,\n oppositeModelData,\n relationData,\n relationGangedConfig\n );\n\n return (\n <div style={{ display: \"grid\" }}>\n <InstanceListTable\n detailUrlTemplates={\n props.hideRelationLink\n ? null\n : {\n [relationData.right_object_id]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n }\n }\n idObjectMap={oppositeModelDataMap}\n modelData={oppositeModelData}\n instanceListData={{\n list: value,\n }}\n onInstanceSourceChange={(instanceQuery: any) => {\n props.onInstanceSourceChange(instanceQuery);\n }}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={true}\n fieldIds={fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: props.isPagination\n ? {\n showSizeChanger: true,\n total: total,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n ...relationTablePagination,\n onChange: (page: number, pageSize: number) => {\n paginationChange(page, pageSize, relationData);\n },\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`\n )}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`\n )}\n </span>\n ),\n }\n : false,\n }}\n target={\"_blank\"}\n externalSourceId={externalSourceId}\n useExternalCmdbApi={externalSourceId ? true : false}\n hiddenColumns={hiddenColumns}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,7 +29,7 @@ function getHiddenColumns(data, oppositeModelData, relationData, relationGangedC
|
|
|
29
29
|
if (relationGangedConfig && (relationData === null || relationData === void 0 ? void 0 : relationData.left_max) === 1 && (relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.rightObjectId) === (relationData === null || relationData === void 0 ? void 0 : relationData.right_object_id) && (relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.objectId) === (relationData === null || relationData === void 0 ? void 0 : relationData.left_object_id)) {
|
|
30
30
|
var _head;
|
|
31
31
|
var attrData = (_head = head(data)) === null || _head === void 0 ? void 0 : _head[relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.rightControlAttrId];
|
|
32
|
-
var attrType = get(filter(oppositeModelData.
|
|
32
|
+
var attrType = get(filter(oppositeModelData.__fieldList, o => o.id === (relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.rightControlAttrId)), "[0].value.type");
|
|
33
33
|
if (attrData && attrType === "arr" && isArray(attrData)) {
|
|
34
34
|
var nonIncludedControlFields = filter((relationGangedConfig === null || relationGangedConfig === void 0 ? void 0 : relationGangedConfig.control) || [], attr => !attrData.includes(attr));
|
|
35
35
|
return oppositeAttrList.filter(item => nonIncludedControlFields.includes(item));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-relation-table-show.js","names":["React","useEffect","useState","modifyModelData","InstanceListTable","NS_LIBS_CMDB_INSTANCES","K","i18n","get","sortBy","keyBy","head","isArray","filter","styles","fetchCmdbObjectRef","handleHttpError","reOrderAttrs","fields","fieldOrder","arguments","length","undefined","field","index","indexOf","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","getHiddenColumns","data","oppositeModelData","relationData","relationGangedConfig","attrList","attr","id","left_max","rightObjectId","right_object_id","objectId","left_object_id","_head","attrData","rightControlAttrId","attrType","o","nonIncludedControlFields","control","includes","InstanceRelationTableShow","props","_oppositeModelData$vi","_oppositeModelData$vi2","modelDataMap","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","externalSourceId","oppositeModelDataMap","setOppositeModelDataMap","fetchOppositeModelData","_ref","_asyncToGenerator","modelListData","apply","catch","error","instanceSourceQuery","setInstanceSourceQuery","modelData","__id","fieldIds","hideModelData","view","hide_columns","_objectSpread","relation_list","left_id","right_id","hiddenColumns","createElement","style","display","detailUrlTemplates","hideRelationLink","idObjectMap","instanceListData","list","onInstanceSourceChange","instanceQuery","filterInstanceSourceDisabled","autoBreakLine","selectDisabled","sortDisabled","configProps","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","className","totalText","t","concat","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT","target","useExternalCmdbApi"],"sources":["../../../../../src/instance-detail/components/instance-relation-table-show/instance-relation-table-show.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { Table } from \"antd\";\nimport {\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../../../instance-list-table\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../../i18n/constants\";\nimport i18n from \"i18next\";\nimport { get, sortBy, keyBy, head, isArray, filter } from \"lodash\";\nimport styles from \"../../../instance-list-table/InstanceListTable.module.css\";\nimport { fetchCmdbObjectRef } from \"../../../data-providers\";\nimport { handleHttpError } from \"@next-core/brick-kit\";\nexport interface InstanceRelationTableShowProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n isPagination?: boolean;\n total?: number;\n relationTablePagination?: {\n current?: number;\n pageSize?: number;\n };\n paginationChange?: (\n page: number,\n pageSize: number,\n relationData: ModifiedModelObjectRelation\n ) => Promise<void> | void;\n hideRelationLink?: boolean;\n onInstanceSourceChange?: (instanceSource: string) => void;\n filterInstanceSourceDisabled?: boolean;\n externalSourceId?: string;\n relationGangedConfig?: Record<string, any>;\n}\nexport function reOrderAttrs(fields: string[], fieldOrder: string[] = []) {\n return sortBy(fields, (field) => {\n const index = fieldOrder.indexOf(field);\n return index === -1 ? fields.length : index;\n });\n}\nexport function getRelationShowFields(\n defaultRelationFields: string[],\n oppositeAttrList: string[],\n attr_order: string[] = []\n) {\n let showFields = oppositeAttrList;\n if (defaultRelationFields?.length) {\n showFields = reOrderAttrs(\n defaultRelationFields.map((item: string) =>\n item.startsWith(\"#\") ? item.slice(1) : item\n ),\n attr_order\n );\n }\n return showFields;\n}\n\nfunction getHiddenColumns(\n data: any[],\n oppositeModelData: any,\n relationData: ModifiedModelObjectRelation,\n relationGangedConfig?: Record<string, any>\n): string[] {\n const oppositeAttrList = oppositeModelData.attrList.map(\n (attr: any) => attr.id\n );\n if (\n relationGangedConfig &&\n relationData?.left_max === 1 &&\n relationGangedConfig?.rightObjectId === relationData?.right_object_id &&\n relationGangedConfig?.objectId === relationData?.left_object_id\n ) {\n const attrData = head(data)?.[relationGangedConfig?.rightControlAttrId];\n const attrType = get(\n filter(\n oppositeModelData.attrList,\n (o: any) => o.id === relationGangedConfig?.rightControlAttrId\n ),\n \"[0].value.type\"\n );\n if (attrData && attrType === \"arr\" && isArray(attrData)) {\n const nonIncludedControlFields = filter(\n relationGangedConfig?.control || [],\n (attr: any) => !attrData.includes(attr)\n );\n return oppositeAttrList.filter((item: any) =>\n nonIncludedControlFields.includes(item)\n );\n }\n }\n\n return [];\n}\n//istanbul ignore next\nexport function InstanceRelationTableShow(\n props: InstanceRelationTableShowProps\n): React.ReactElement {\n const {\n modelDataMap,\n relationData,\n value,\n relationFieldUrlTemplate,\n paginationChange,\n total,\n relationTablePagination,\n externalSourceId,\n relationGangedConfig,\n } = props;\n const [oppositeModelDataMap, setOppositeModelDataMap] = useState({});\n /**\n * 实例详情中展示对端实例的关系时,需要重新拉取对端关系所关联的模型。\n * 如在主机详情中展示负责人所在的角色,需要拿到与USER相关的模型ROLE@ONEMODEL\n * 而原来的modelDataMap是与HOST相关的,可能不包括ROLE@ONEMODEL,就造成取不到角色的showKey\n */\n useEffect(() => {\n const fetchOppositeModelData = async () => {\n const modelListData = await fetchCmdbObjectRef(\n relationData.right_object_id,\n externalSourceId\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData, externalSourceId]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n const modelData = modelDataMap[relationData.left_object_id];\n let oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n // 如果指定了relation_default_attr,则取里面的字段\n const defaultRelationFields = get(modelData, [\n \"view\",\n \"relation_default_attr\",\n relationData.__id,\n ]);\n\n const fieldIds = getRelationShowFields(\n defaultRelationFields,\n oppositeModelData.attrList.map((attr) => attr.id),\n get(oppositeModelData, [\"view\", \"attr_order\"])\n );\n //过滤掉视图不可见字段\n const hideModelData = oppositeModelData.view?.hide_columns ?? [];\n oppositeModelData = {\n ...oppositeModelData,\n attrList: oppositeModelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: oppositeModelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.relationData.right_object_id) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.relationData.right_object_id)\n )\n ),\n };\n const hiddenColumns = getHiddenColumns(\n value,\n oppositeModelData,\n relationData,\n relationGangedConfig\n );\n\n return (\n <div style={{ display: \"grid\" }}>\n <InstanceListTable\n detailUrlTemplates={\n props.hideRelationLink\n ? null\n : {\n [relationData.right_object_id]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n }\n }\n idObjectMap={oppositeModelDataMap}\n modelData={oppositeModelData}\n instanceListData={{\n list: value,\n }}\n onInstanceSourceChange={(instanceQuery: any) => {\n props.onInstanceSourceChange(instanceQuery);\n }}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={true}\n fieldIds={fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: props.isPagination\n ? {\n showSizeChanger: true,\n total: total,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n ...relationTablePagination,\n onChange: (page: number, pageSize: number) => {\n paginationChange(page, pageSize, relationData);\n },\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`\n )}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`\n )}\n </span>\n ),\n }\n : false,\n }}\n target={\"_blank\"}\n externalSourceId={externalSourceId}\n useExternalCmdbApi={externalSourceId ? true : false}\n hiddenColumns={hiddenColumns}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAElD,SAEEC,eAAe,QACV,uBAAuB;AAE9B,SAASC,iBAAiB,QAAQ,8BAA8B;AAChE,SAASC,sBAAsB,EAAEC,CAAC,QAAQ,yBAAyB;AACnE,OAAOC,IAAI,MAAM,SAAS;AAC1B,SAASC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,OAAO,EAAEC,MAAM,QAAQ,QAAQ;AAClE,OAAOC,MAAM,MAAM,2DAA2D;AAC9E,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,eAAe,QAAQ,sBAAsB;AAwBtD,OAAO,SAASC,YAAYA,CAACC,MAAgB,EAA6B;EAAA,IAA3BC,UAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACtE,OAAOX,MAAM,CAACS,MAAM,EAAGK,KAAK,IAAK;IAC/B,IAAMC,KAAK,GAAGL,UAAU,CAACM,OAAO,CAACF,KAAK,CAAC;IACvC,OAAOC,KAAK,KAAK,CAAC,CAAC,GAAGN,MAAM,CAACG,MAAM,GAAGG,KAAK;EAC7C,CAAC,CAAC;AACJ;AACA,OAAO,SAASE,qBAAqBA,CACnCC,qBAA+B,EAC/BC,gBAA0B,EAE1B;EAAA,IADAC,UAAoB,GAAAT,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEzB,IAAIU,UAAU,GAAGF,gBAAgB;EACjC,IAAID,qBAAqB,aAArBA,qBAAqB,eAArBA,qBAAqB,CAAEN,MAAM,EAAE;IACjCS,UAAU,GAAGb,YAAY,CACvBU,qBAAqB,CAACI,GAAG,CAAEC,IAAY,IACrCA,IAAI,CAACC,UAAU,CAAC,GAAG,CAAC,GAAGD,IAAI,CAACE,KAAK,CAAC,CAAC,CAAC,GAAGF,IACzC,CAAC,EACDH,UACF,CAAC;EACH;EACA,OAAOC,UAAU;AACnB;AAEA,SAASK,gBAAgBA,CACvBC,IAAW,EACXC,iBAAsB,EACtBC,YAAyC,EACzCC,oBAA0C,EAChC;EACV,IAAMX,gBAAgB,GAAGS,iBAAiB,CAACG,QAAQ,CAACT,GAAG,CACpDU,IAAS,IAAKA,IAAI,CAACC,EACtB,CAAC;EACD,IACEH,oBAAoB,IACpB,CAAAD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEK,QAAQ,MAAK,CAAC,IAC5B,CAAAJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK,aAAa,OAAKN,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEO,eAAe,KACrE,CAAAN,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEO,QAAQ,OAAKR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAES,cAAc,GAC/D;IAAA,IAAAC,KAAA;IACA,IAAMC,QAAQ,IAAAD,KAAA,GAAGrC,IAAI,CAACyB,IAAI,CAAC,cAAAY,KAAA,uBAAVA,KAAA,CAAaT,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEW,kBAAkB,CAAC;IACvE,IAAMC,QAAQ,GAAG3C,GAAG,CAClBK,MAAM,CACJwB,iBAAiB,CAACG,QAAQ,EACzBY,CAAM,IAAKA,CAAC,CAACV,EAAE,MAAKH,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEW,kBAAkB,CAC/D,CAAC,EACD,gBACF,CAAC;IACD,IAAID,QAAQ,IAAIE,QAAQ,KAAK,KAAK,IAAIvC,OAAO,CAACqC,QAAQ,CAAC,EAAE;MACvD,IAAMI,wBAAwB,GAAGxC,MAAM,CACrC,CAAA0B,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEe,OAAO,KAAI,EAAE,EAClCb,IAAS,IAAK,CAACQ,QAAQ,CAACM,QAAQ,CAACd,IAAI,CACxC,CAAC;MACD,OAAOb,gBAAgB,CAACf,MAAM,CAAEmB,IAAS,IACvCqB,wBAAwB,CAACE,QAAQ,CAACvB,IAAI,CACxC,CAAC;IACH;EACF;EAEA,OAAO,EAAE;AACX;AACA;AACA,OAAO,SAASwB,yBAAyBA,CACvCC,KAAqC,EACjB;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EACpB,IAAM;IACJC,YAAY;IACZtB,YAAY;IACZuB,KAAK;IACLC,wBAAwB;IACxBC,gBAAgB;IAChBC,KAAK;IACLC,uBAAuB;IACvBC,gBAAgB;IAChB3B;EACF,CAAC,GAAGkB,KAAK;EACT,IAAM,CAACU,oBAAoB,EAAEC,uBAAuB,CAAC,GAAGlE,QAAQ,CAAC,CAAC,CAAC,CAAC;EACpE;AACF;AACA;AACA;AACA;EACED,SAAS,CAAC,MAAM;IACd,IAAMoE,sBAAsB;MAAA,IAAAC,IAAA,GAAAC,iBAAA,CAAG,aAAY;QACzC,IAAMC,aAAa,SAASzD,kBAAkB,CAC5CuB,YAAY,CAACO,eAAe,EAC5BqB,gBACF,CAAC;QACDE,uBAAuB,CAAC1D,KAAK,CAAC8D,aAAa,CAACpC,IAAI,EAAE,UAAU,CAAC,CAAC;MAChE,CAAC;MAAA,gBANKiC,sBAAsBA,CAAA;QAAA,OAAAC,IAAA,CAAAG,KAAA,OAAArD,SAAA;MAAA;IAAA,GAM3B;IACDiD,sBAAsB,CAAC,CAAC,CAACK,KAAK,CAAEC,KAAK,IAAK;MACxC3D,eAAe,CAAC2D,KAAK,CAAC;IACxB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACrC,YAAY,EAAE4B,gBAAgB,CAAC,CAAC;EACpC,IAAM,CAACU,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG3E,QAAQ,CAAC,IAAI,CAAC;EACpE,IAAM4E,SAAS,GAAGlB,YAAY,CAACtB,YAAY,CAACS,cAAc,CAAC;EAC3D,IAAIV,iBAAiB,GAAGlC,eAAe,CACrCyD,YAAY,CAACtB,YAAY,CAACO,eAAe,CAC3C,CAAC;EACD;EACA,IAAMlB,qBAAqB,GAAGnB,GAAG,CAACsE,SAAS,EAAE,CAC3C,MAAM,EACN,uBAAuB,EACvBxC,YAAY,CAACyC,IAAI,CAClB,CAAC;EAEF,IAAMC,QAAQ,GAAGtD,qBAAqB,CACpCC,qBAAqB,EACrBU,iBAAiB,CAACG,QAAQ,CAACT,GAAG,CAAEU,IAAI,IAAKA,IAAI,CAACC,EAAE,CAAC,EACjDlC,GAAG,CAAC6B,iBAAiB,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAC/C,CAAC;EACD;EACA,IAAM4C,aAAa,IAAAvB,qBAAA,IAAAC,sBAAA,GAAGtB,iBAAiB,CAAC6C,IAAI,cAAAvB,sBAAA,uBAAtBA,sBAAA,CAAwBwB,YAAY,cAAAzB,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAChErB,iBAAiB,GAAA+C,aAAA,CAAAA,aAAA,KACZ/C,iBAAiB;IACpBG,QAAQ,EAAEH,iBAAiB,CAACG,QAAQ,CAAC3B,MAAM,CACxCmB,IAAS,IAAK,CAACiD,aAAa,CAAC1B,QAAQ,CAACvB,IAAI,CAACU,EAAE,CAChD,CAAC;IACD2C,aAAa,EAAEhD,iBAAiB,CAACgD,aAAa,CAACxE,MAAM,CAClDmB,IAAS,IACR,EACGiD,aAAa,CAAC1B,QAAQ,CAACvB,IAAI,CAACsD,OAAO,CAAC,IACnCtD,IAAI,CAACe,cAAc,KAAKU,KAAK,CAACnB,YAAY,CAACO,eAAe,IAC3DoC,aAAa,CAAC1B,QAAQ,CAACvB,IAAI,CAACuD,QAAQ,CAAC,IACpCvD,IAAI,CAACa,eAAe,KAAKY,KAAK,CAACnB,YAAY,CAACO,eAAgB,CAEpE;EAAC,EACF;EACD,IAAM2C,aAAa,GAAGrD,gBAAgB,CACpC0B,KAAK,EACLxB,iBAAiB,EACjBC,YAAY,EACZC,oBACF,CAAC;EAED,oBACEvC,KAAA,CAAAyF,aAAA;IAAKC,KAAK,EAAE;MAAEC,OAAO,EAAE;IAAO;EAAE,gBAC9B3F,KAAA,CAAAyF,aAAA,CAACrF,iBAAiB;IAChBwF,kBAAkB,EAChBnC,KAAK,CAACoC,gBAAgB,GAClB,IAAI,GACJ;MACE,CAACvD,YAAY,CAACO,eAAe,GAC3B;IACJ,CACL;IACDiD,WAAW,EAAE3B,oBAAqB;IAClCW,SAAS,EAAEzC,iBAAkB;IAC7B0D,gBAAgB,EAAE;MAChBC,IAAI,EAAEnC;IACR,CAAE;IACFoC,sBAAsB,EAAGC,aAAkB,IAAK;MAC9CzC,KAAK,CAACwC,sBAAsB,CAACC,aAAa,CAAC;IAC7C,CAAE;IACFC,4BAA4B,EAAE1C,KAAK,CAAC0C,4BAA6B;IACjEC,aAAa,EAAE,IAAK;IACpBpB,QAAQ,EAAEA,QAAS;IACnBqB,cAAc,EAAE,IAAK;IACrBC,YAAY,EAAE,IAAK;IACnBC,WAAW,EAAE;MACXC,UAAU,EAAE/C,KAAK,CAACgD,YAAY,GAAArB,aAAA,CAAAA,aAAA;QAExBsB,eAAe,EAAE,IAAI;QACrB1C,KAAK,EAAEA,KAAK;QACZ2C,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI;MAAC,GAChC1C,uBAAuB;QAC1B2C,QAAQ,EAAEA,CAACC,IAAY,EAAEC,QAAgB,KAAK;UAC5C/C,gBAAgB,CAAC8C,IAAI,EAAEC,QAAQ,EAAExE,YAAY,CAAC;QAChD,CAAC;QACDyE,SAAS,EAAGC,MAAc,iBACxBhH,KAAA,CAAAyF,aAAA;UAAMwB,SAAS,EAAEnG,MAAM,CAACoG;QAAU,GAC/B3G,IAAI,CAAC4G,CAAC,IAAAC,MAAA,CACF/G,sBAAsB,OAAA+G,MAAA,CAAI9G,CAAC,CAAC+G,qBAAqB,CACtD,CAAC,EAAE,GAAG,eACNrH,KAAA,CAAAyF,aAAA;UAAQwB,SAAS,EAAEnG,MAAM,CAACkD;QAAM,GAAEgD,MAAe,CAAC,EAAC,GAAG,EACrDzG,IAAI,CAAC4G,CAAC,IAAAC,MAAA,CACF/G,sBAAsB,OAAA+G,MAAA,CAAI9G,CAAC,CAACgH,qBAAqB,CACtD,CACI;MACP,KAEH;IACN,CAAE;IACFC,MAAM,EAAE,QAAS;IACjBrD,gBAAgB,EAAEA,gBAAiB;IACnCsD,kBAAkB,EAAEtD,gBAAgB,GAAG,IAAI,GAAG,KAAM;IACpDsB,aAAa,EAAEA;EAAc,CACX,CACjB,CAAC;AAEV","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"instance-relation-table-show.js","names":["React","useEffect","useState","modifyModelData","InstanceListTable","NS_LIBS_CMDB_INSTANCES","K","i18n","get","sortBy","keyBy","head","isArray","filter","styles","fetchCmdbObjectRef","handleHttpError","reOrderAttrs","fields","fieldOrder","arguments","length","undefined","field","index","indexOf","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","getHiddenColumns","data","oppositeModelData","relationData","relationGangedConfig","attrList","attr","id","left_max","rightObjectId","right_object_id","objectId","left_object_id","_head","attrData","rightControlAttrId","attrType","__fieldList","o","nonIncludedControlFields","control","includes","InstanceRelationTableShow","props","_oppositeModelData$vi","_oppositeModelData$vi2","modelDataMap","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","externalSourceId","oppositeModelDataMap","setOppositeModelDataMap","fetchOppositeModelData","_ref","_asyncToGenerator","modelListData","apply","catch","error","instanceSourceQuery","setInstanceSourceQuery","modelData","__id","fieldIds","hideModelData","view","hide_columns","_objectSpread","relation_list","left_id","right_id","hiddenColumns","createElement","style","display","detailUrlTemplates","hideRelationLink","idObjectMap","instanceListData","list","onInstanceSourceChange","instanceQuery","filterInstanceSourceDisabled","autoBreakLine","selectDisabled","sortDisabled","configProps","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","className","totalText","t","concat","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT","target","useExternalCmdbApi"],"sources":["../../../../../src/instance-detail/components/instance-relation-table-show/instance-relation-table-show.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { Table } from \"antd\";\nimport {\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../../../instance-list-table\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../../i18n/constants\";\nimport i18n from \"i18next\";\nimport { get, sortBy, keyBy, head, isArray, filter } from \"lodash\";\nimport styles from \"../../../instance-list-table/InstanceListTable.module.css\";\nimport { fetchCmdbObjectRef } from \"../../../data-providers\";\nimport { handleHttpError } from \"@next-core/brick-kit\";\nexport interface InstanceRelationTableShowProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n isPagination?: boolean;\n total?: number;\n relationTablePagination?: {\n current?: number;\n pageSize?: number;\n };\n paginationChange?: (\n page: number,\n pageSize: number,\n relationData: ModifiedModelObjectRelation\n ) => Promise<void> | void;\n hideRelationLink?: boolean;\n onInstanceSourceChange?: (instanceSource: string) => void;\n filterInstanceSourceDisabled?: boolean;\n externalSourceId?: string;\n relationGangedConfig?: Record<string, any>;\n}\nexport function reOrderAttrs(fields: string[], fieldOrder: string[] = []) {\n return sortBy(fields, (field) => {\n const index = fieldOrder.indexOf(field);\n return index === -1 ? fields.length : index;\n });\n}\nexport function getRelationShowFields(\n defaultRelationFields: string[],\n oppositeAttrList: string[],\n attr_order: string[] = []\n) {\n let showFields = oppositeAttrList;\n if (defaultRelationFields?.length) {\n showFields = reOrderAttrs(\n defaultRelationFields.map((item: string) =>\n item.startsWith(\"#\") ? item.slice(1) : item\n ),\n attr_order\n );\n }\n return showFields;\n}\n\nfunction getHiddenColumns(\n data: any[],\n oppositeModelData: any,\n relationData: ModifiedModelObjectRelation,\n relationGangedConfig?: Record<string, any>\n): string[] {\n const oppositeAttrList = oppositeModelData.attrList.map(\n (attr: any) => attr.id\n );\n if (\n relationGangedConfig &&\n relationData?.left_max === 1 &&\n relationGangedConfig?.rightObjectId === relationData?.right_object_id &&\n relationGangedConfig?.objectId === relationData?.left_object_id\n ) {\n const attrData = head(data)?.[relationGangedConfig?.rightControlAttrId];\n const attrType = get(\n filter(\n oppositeModelData.__fieldList,\n (o: any) => o.id === relationGangedConfig?.rightControlAttrId\n ),\n \"[0].value.type\"\n );\n if (attrData && attrType === \"arr\" && isArray(attrData)) {\n const nonIncludedControlFields = filter(\n relationGangedConfig?.control || [],\n (attr: any) => !attrData.includes(attr)\n );\n return oppositeAttrList.filter((item: any) =>\n nonIncludedControlFields.includes(item)\n );\n }\n }\n\n return [];\n}\n//istanbul ignore next\nexport function InstanceRelationTableShow(\n props: InstanceRelationTableShowProps\n): React.ReactElement {\n const {\n modelDataMap,\n relationData,\n value,\n relationFieldUrlTemplate,\n paginationChange,\n total,\n relationTablePagination,\n externalSourceId,\n relationGangedConfig,\n } = props;\n const [oppositeModelDataMap, setOppositeModelDataMap] = useState({});\n /**\n * 实例详情中展示对端实例的关系时,需要重新拉取对端关系所关联的模型。\n * 如在主机详情中展示负责人所在的角色,需要拿到与USER相关的模型ROLE@ONEMODEL\n * 而原来的modelDataMap是与HOST相关的,可能不包括ROLE@ONEMODEL,就造成取不到角色的showKey\n */\n useEffect(() => {\n const fetchOppositeModelData = async () => {\n const modelListData = await fetchCmdbObjectRef(\n relationData.right_object_id,\n externalSourceId\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData, externalSourceId]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n const modelData = modelDataMap[relationData.left_object_id];\n let oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n // 如果指定了relation_default_attr,则取里面的字段\n const defaultRelationFields = get(modelData, [\n \"view\",\n \"relation_default_attr\",\n relationData.__id,\n ]);\n\n const fieldIds = getRelationShowFields(\n defaultRelationFields,\n oppositeModelData.attrList.map((attr) => attr.id),\n get(oppositeModelData, [\"view\", \"attr_order\"])\n );\n //过滤掉视图不可见字段\n const hideModelData = oppositeModelData.view?.hide_columns ?? [];\n oppositeModelData = {\n ...oppositeModelData,\n attrList: oppositeModelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: oppositeModelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.relationData.right_object_id) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.relationData.right_object_id)\n )\n ),\n };\n const hiddenColumns = getHiddenColumns(\n value,\n oppositeModelData,\n relationData,\n relationGangedConfig\n );\n\n return (\n <div style={{ display: \"grid\" }}>\n <InstanceListTable\n detailUrlTemplates={\n props.hideRelationLink\n ? null\n : {\n [relationData.right_object_id]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n }\n }\n idObjectMap={oppositeModelDataMap}\n modelData={oppositeModelData}\n instanceListData={{\n list: value,\n }}\n onInstanceSourceChange={(instanceQuery: any) => {\n props.onInstanceSourceChange(instanceQuery);\n }}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={true}\n fieldIds={fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: props.isPagination\n ? {\n showSizeChanger: true,\n total: total,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n ...relationTablePagination,\n onChange: (page: number, pageSize: number) => {\n paginationChange(page, pageSize, relationData);\n },\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`\n )}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`\n )}\n </span>\n ),\n }\n : false,\n }}\n target={\"_blank\"}\n externalSourceId={externalSourceId}\n useExternalCmdbApi={externalSourceId ? true : false}\n hiddenColumns={hiddenColumns}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/cmdb-instances",
|
|
3
|
-
"version": "7.24.
|
|
3
|
+
"version": "7.24.8",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/cmdb-instances",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"js-base64": "^3.7.7",
|
|
53
53
|
"marked": "^2.1.3"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "f668f2378152b3fdf0211d28e0526f35db04cf81"
|
|
56
56
|
}
|