@next-libs/cmdb-instances 6.13.0 → 6.14.0
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/CHANGELOG.md +11 -0
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +3 -0
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +3 -0
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/types/cmdb-instances-select-panel/CmdbInstancesSelectPanel.d.ts +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.14.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.13.0...@next-libs/cmdb-instances@6.14.0) (2021-12-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **cmdb-instances:** add property onFetchedInstances ([e89a2fd](https://github.com/easyops-cn/next-libs/commit/e89a2fd0e5cf9799d70ee15e357e1d80609b6cf0))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [6.13.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.12.4...@next-libs/cmdb-instances@6.13.0) (2021-12-15)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -79,9 +79,12 @@ function CmdbInstancesSelectPanel(props, ref) {
|
|
|
79
79
|
|
|
80
80
|
(0, _react.useEffect)(() => {
|
|
81
81
|
const initInstances = async () => {
|
|
82
|
+
var _props$onFetchedInsta;
|
|
83
|
+
|
|
82
84
|
const instances = await fetchInstances(props.value);
|
|
83
85
|
setSelectedInstanceList(instances);
|
|
84
86
|
setPartialSelectedInstances(props !== null && props !== void 0 && props.isOperate ? instances : instances.slice(0, displayedSelectedInstancesMaxNumber));
|
|
87
|
+
(_props$onFetchedInsta = props.onFetchedInstances) === null || _props$onFetchedInsta === void 0 ? void 0 : _props$onFetchedInsta.call(props, instances);
|
|
85
88
|
};
|
|
86
89
|
|
|
87
90
|
initInstances();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["CmdbInstancesSelectPanel","props","ref","modelData","objectMap","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","style","selectedInstancesTableWrapper","withPreview","wrapper","modalTitle","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FILTER_FROM_CMDB","name","instance","singleSelect","instanceQuery","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","VIEW_ALL_SELECTED_INSTANCES","addButton","marginBottom","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData } from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nexport interface CmdbInstancesSelectPanelProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData = props.objectMap[props.objectId];\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n };\n\n initInstances();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query: props.instanceQuery,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n />\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <a\n className={style.addButton}\n onClick={openAddInstancesModal}\n style={{ marginBottom: \"12px\" }}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={props.objectMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["CmdbInstancesSelectPanel","props","ref","modelData","objectMap","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","style","selectedInstancesTableWrapper","withPreview","wrapper","modalTitle","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FILTER_FROM_CMDB","name","instance","singleSelect","instanceQuery","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","VIEW_ALL_SELECTED_INSTANCES","addButton","marginBottom","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData } from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nexport interface CmdbInstancesSelectPanelProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData = props.objectMap[props.objectId];\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query: props.instanceQuery,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n />\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <a\n className={style.addButton}\n onClick={openAddInstancesModal}\n style={{ marginBottom: \"12px\" }}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={props.objectMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
|
|
@@ -67,9 +67,12 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
67
67
|
useEffect(() => {
|
|
68
68
|
var initInstances = /*#__PURE__*/function () {
|
|
69
69
|
var _ref2 = _asyncToGenerator(function* () {
|
|
70
|
+
var _props$onFetchedInsta;
|
|
71
|
+
|
|
70
72
|
var instances = yield fetchInstances(props.value);
|
|
71
73
|
setSelectedInstanceList(instances);
|
|
72
74
|
setPartialSelectedInstances(props !== null && props !== void 0 && props.isOperate ? instances : instances.slice(0, displayedSelectedInstancesMaxNumber));
|
|
75
|
+
(_props$onFetchedInsta = props.onFetchedInstances) === null || _props$onFetchedInsta === void 0 ? void 0 : _props$onFetchedInsta.call(props, instances);
|
|
73
76
|
});
|
|
74
77
|
|
|
75
78
|
return function initInstances() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["React","useState","useEffect","classnames","InstanceApi_postSearch","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","CmdbInstancesSelectPanel","props","ref","modelData","objectMap","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","instanceQuery","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","VIEW_ALL_SELECTED_INSTANCES","addButton","marginBottom","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData } from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nexport interface CmdbInstancesSelectPanelProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData = props.objectMap[props.objectId];\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n };\n\n initInstances();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query: props.instanceQuery,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n />\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <a\n className={style.addButton}\n onClick={openAddInstancesModal}\n style={{ marginBottom: \"12px\" }}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={props.objectMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["React","useState","useEffect","classnames","InstanceApi_postSearch","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","CmdbInstancesSelectPanel","props","ref","modelData","objectMap","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","instanceQuery","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","VIEW_ALL_SELECTED_INSTANCES","addButton","marginBottom","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData } from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nexport interface CmdbInstancesSelectPanelProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData = props.objectMap[props.objectId];\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query: props.instanceQuery,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n />\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <a\n className={style.addButton}\n onClick={openAddInstancesModal}\n style={{ marginBottom: \"12px\" }}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={props.objectMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
|
|
@@ -19,5 +19,6 @@ export interface CmdbInstancesSelectPanelProps {
|
|
|
19
19
|
isOperate?: boolean;
|
|
20
20
|
showDetailUrl?: boolean;
|
|
21
21
|
isFilterView?: boolean;
|
|
22
|
+
onFetchedInstances?: (instanceList: any[]) => void;
|
|
22
23
|
}
|
|
23
24
|
export declare function CmdbInstancesSelectPanel(props: CmdbInstancesSelectPanelProps, ref: any): React.ReactElement;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/cmdb-instances",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.14.0",
|
|
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",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"immutability-helper": "^3.1.1",
|
|
51
51
|
"marked": "^2.1.3"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "d0c634f958469bfd7a0d430bd50298f467bdea65"
|
|
54
54
|
}
|