@next-libs/cmdb-instances 6.29.4 → 6.32.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 +33 -0
- package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +23 -6
- package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
- package/dist/cjs/struct-components/StructTable.js +1 -0
- package/dist/cjs/struct-components/StructTable.js.map +1 -1
- package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +23 -6
- package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
- package/dist/esm/struct-components/StructTable.js +1 -0
- package/dist/esm/struct-components/StructTable.js.map +1 -1
- package/dist/types/cmdb-instances-input-form/CmdbInstancesInputFormItem.d.ts +4 -0
- package/dist/types/struct-components/StructTable.d.ts +1 -6
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,39 @@
|
|
|
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.32.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.31.0...@next-libs/cmdb-instances@6.32.0) (2022-06-15)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **StructTable:** 固定表格操作栏 Closes INSTANCE-2431 ([0c83776](https://github.com/easyops-cn/next-libs/commit/0c837764642b3a20be87fe57987f923c67f48e0c))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [6.31.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.30.0...@next-libs/cmdb-instances@6.31.0) (2022-06-10)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **CmdbInstancesInputFormItem:** add fields, pageSize and showSizeChanger properties ([66fc4d5](https://github.com/easyops-cn/next-libs/commit/66fc4d5a8bab10bb75b970bdd167d44fd455d05a))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# [6.30.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.29.4...@next-libs/cmdb-instances@6.30.0) (2022-06-10)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* **CmdbInstancesInputFormItem:** add pageSizeOptions property ([dc5bdb2](https://github.com/easyops-cn/next-libs/commit/dc5bdb231f4051ae6f1bba91038ba9deff21d63b))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
6
39
|
## [6.29.4](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.29.3...@next-libs/cmdb-instances@6.29.4) (2022-06-09)
|
|
7
40
|
|
|
8
41
|
|
|
@@ -56,6 +56,15 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
56
56
|
permission
|
|
57
57
|
};
|
|
58
58
|
}, [props.objectId, props.checkAgentStatus, props.checkPermission]);
|
|
59
|
+
const fields = (0, _react.useMemo)(() => {
|
|
60
|
+
var _props$fields;
|
|
61
|
+
|
|
62
|
+
const fields = {};
|
|
63
|
+
(_props$fields = props.fields) === null || _props$fields === void 0 ? void 0 : _props$fields.forEach(field => {
|
|
64
|
+
fields[field] = true;
|
|
65
|
+
});
|
|
66
|
+
return fields;
|
|
67
|
+
}, [props.fields]);
|
|
59
68
|
const objectData = (0, _cmdbUtils.modifyModelData)(props.objectMap[props.objectId]);
|
|
60
69
|
|
|
61
70
|
const fieldData = objectData.__fieldList.find(field => field.__id === props.fieldId);
|
|
@@ -85,7 +94,7 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
85
94
|
...presetQuery
|
|
86
95
|
},
|
|
87
96
|
permission,
|
|
88
|
-
fields: {
|
|
97
|
+
fields: fields || {
|
|
89
98
|
instanceId: true,
|
|
90
99
|
[props.fieldId]: true
|
|
91
100
|
}
|
|
@@ -112,7 +121,7 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
112
121
|
$in: instanceIds
|
|
113
122
|
}
|
|
114
123
|
},
|
|
115
|
-
fields: {
|
|
124
|
+
fields: fields || {
|
|
116
125
|
instanceId: true,
|
|
117
126
|
[props.fieldId]: true
|
|
118
127
|
}
|
|
@@ -164,7 +173,7 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
164
173
|
}, ...(props.query ? props.query : [])]
|
|
165
174
|
},
|
|
166
175
|
permission,
|
|
167
|
-
fields: {
|
|
176
|
+
fields: fields || {
|
|
168
177
|
instanceId: true,
|
|
169
178
|
[props.fieldId]: true
|
|
170
179
|
}
|
|
@@ -214,7 +223,7 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
214
223
|
}
|
|
215
224
|
}, ...(props.query ? props.query : [])]
|
|
216
225
|
},
|
|
217
|
-
fields: {
|
|
226
|
+
fields: fields || {
|
|
218
227
|
instanceId: true,
|
|
219
228
|
[props.fieldId]: true
|
|
220
229
|
}
|
|
@@ -262,7 +271,8 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
262
271
|
title: text,
|
|
263
272
|
aq: props.query,
|
|
264
273
|
presetConfigs: {
|
|
265
|
-
query: presetQuery
|
|
274
|
+
query: presetQuery,
|
|
275
|
+
fieldIds: props.fields
|
|
266
276
|
},
|
|
267
277
|
permission: permission,
|
|
268
278
|
selectedRowKeys: selectedInstances.valid.map(instance => instance.instanceId),
|
|
@@ -270,6 +280,9 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
270
280
|
singleSelect: props.singleSelect,
|
|
271
281
|
onCancel: closeSelectInstancesModal,
|
|
272
282
|
defaultQuery: props.defaultQuery,
|
|
283
|
+
pageSize: props.pageSize,
|
|
284
|
+
pageSizeOptions: props.pageSizeOptions,
|
|
285
|
+
showSizeChanger: props.showSizeChanger,
|
|
273
286
|
"data-testid": "select-modal"
|
|
274
287
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
275
288
|
className: _cmdbInstancesInputFormModule.default.cmdbInstancesInputFormWrapper
|
|
@@ -292,7 +305,8 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
292
305
|
title: t(_constants.K.VIEW_SPECIFIC_INSTANCES),
|
|
293
306
|
aq: selectedInstancesQuery,
|
|
294
307
|
presetConfigs: {
|
|
295
|
-
query: presetQuery
|
|
308
|
+
query: presetQuery,
|
|
309
|
+
fieldIds: props.fields
|
|
296
310
|
},
|
|
297
311
|
permission: permission,
|
|
298
312
|
onCancel: () => setPreviewVisible(false),
|
|
@@ -303,6 +317,9 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
303
317
|
relatedToMeDisabled: true,
|
|
304
318
|
moreButtonsDisabled: true,
|
|
305
319
|
selectDisabled: true,
|
|
320
|
+
pageSize: props.pageSize,
|
|
321
|
+
pageSizeOptions: props.pageSizeOptions,
|
|
322
|
+
showSizeChanger: props.showSizeChanger,
|
|
306
323
|
"data-testid": "preview-modal"
|
|
307
324
|
}), /*#__PURE__*/_react.default.createElement(_antd.Button, {
|
|
308
325
|
type: "link",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"names":["separator","LegacyCmdbInstancesInputFormItem","props","ref","t","NS_LIBS_CMDB_INSTANCES","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","objectData","objectMap","fieldData","__fieldList","find","field","__id","fieldId","visible","setVisible","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","length","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","fields","list","instanceIdSet","Set","selectedInstancesMap","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","page_size","instanceData","join","checkDisabled","value","handleChange","onChange","onChangeV2","checkInputValue","fieldValues","match","split","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","K","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","singleSelect","defaultQuery","style","cmdbInstancesInputFormWrapper","fieldInput","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n if (props.value) {\n updateSelected(props.value);\n }\n // todo(ice): how formItem to change its value??????\n }, []);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n handleChange(validSelectedInstances);\n }\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n handleChange(instances);\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n data-testid=\"select-modal\"\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"file":"CmdbInstancesInputFormItem.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"names":["separator","LegacyCmdbInstancesInputFormItem","props","ref","t","NS_LIBS_CMDB_INSTANCES","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","forEach","field","objectData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","length","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","list","instanceIdSet","Set","selectedInstancesMap","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","page_size","instanceData","join","checkDisabled","value","handleChange","onChange","onChangeV2","checkInputValue","fieldValues","match","split","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","K","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","style","cmdbInstancesInputFormWrapper","fieldInput","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n fields?: string[];\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n pageSize?: number;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n const fields = useMemo(() => {\n const fields: Record<string, boolean> = {};\n\n props.fields?.forEach((field) => {\n fields[field] = true;\n });\n\n return fields;\n }, [props.fields]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n if (props.value) {\n updateSelected(props.value);\n }\n // todo(ice): how formItem to change its value??????\n }, []);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n handleChange(validSelectedInstances);\n }\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n handleChange(instances);\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"select-modal\"\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"file":"CmdbInstancesInputFormItem.js"}
|
|
@@ -135,6 +135,7 @@ class StructTable extends _react.default.Component {
|
|
|
135
135
|
title: _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.OPERATION}`),
|
|
136
136
|
className: _indexModule.default.structTableTd,
|
|
137
137
|
dataIndex: "operation",
|
|
138
|
+
fixed: "right",
|
|
138
139
|
render: (_text, record, index) => {
|
|
139
140
|
return this.renderOperation(record, index);
|
|
140
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/struct-components/StructTable.tsx"],"names":["StructTable","React","Component","constructor","props","formData","index","structData","isLegacy","handleStoreFunction","handleCloseModal","setState","showEditModal","currentIndex","record","attribute","state","handleOpenEditModal","color","openConfirmModal","handleEditStruct","getColumns","defines","columns","map","item","title","name","className","styles","structTableTd","dataIndex","id","render","text","_record","_index","copyText","showText","type","String","join","JSON","stringify","tooltips","i18n","t","NS_LIBS_CMDB_INSTANCES","K","COPY","COPY_SUCCESS","isEditable","push","OPERATION","_text","renderOperation","confirm","Modal","DELETE_STRUCT_CONFIRM_MSG","okText","CONFIRM","okType","cancelText","CANCEL","onOk","remove","splice","structDefine","value","struct_define","dataSource","overflowX","x","size"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { DeleteOutlined, EditOutlined } from \"@ant-design/icons\";\nimport { Button, Modal, Table } from \"antd\";\nimport { Attribute, Structkey } from \"./interfaces\";\nimport { isEmpty, isObject } from \"lodash\";\nimport { AddStructModal } from \"./AddStructModal\";\nimport { SizeType } from \"antd/lib/config-provider/SizeContext\";\nimport styles from \"./index.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { Typography } from \"antd\";\nexport interface StructTableProps {\n attribute: Attribute;\n structData: any;\n isEditable?: boolean;\n // 是否单结构体\n isLegacy?: boolean;\n size?: SizeType;\n handleStoreFunction?(data: any): void;\n}\nexport interface StructTableState {\n structData: any;\n currentIndex: number;\n showEditModal: boolean;\n}\nexport class StructTable extends React.Component<\n StructTableProps,\n StructTableState\n> {\n constructor(props: StructTableProps) {\n super(props);\n this.state = {\n structData: props.structData,\n currentIndex: 0,\n showEditModal: false,\n };\n }\n getColumns(defines: Structkey[]) {\n const columns = defines.map((item: Structkey) => ({\n title: item.name,\n className: styles.structTableTd,\n dataIndex: item.id,\n render: (text: any, _record: any, _index: number) => {\n let copyText: string;\n let showText: string;\n switch (item.type) {\n case \"bool\":\n return String(text ?? \"\");\n case \"enums\":\n case \"arr\":\n return text?.join?.(\"; \");\n case \"json\":\n copyText = isObject(text) ? JSON.stringify(text, null, 2) : text;\n showText = isObject(text) ? JSON.stringify(text) : text;\n if (copyText) {\n return (\n <Typography.Paragraph\n copyable={{\n tooltips: [\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY}`),\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY_SUCCESS}`),\n ],\n text: copyText,\n }}\n >\n {showText}\n </Typography.Paragraph>\n );\n }\n return showText;\n default:\n return text;\n }\n },\n }));\n if (this.props.isEditable) {\n columns.push({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATION}`),\n className: styles.structTableTd,\n dataIndex: \"operation\",\n render: (_text: string, record: any, index: number): any => {\n return this.renderOperation(record, index);\n },\n });\n }\n return columns;\n }\n openConfirmModal(index: number) {\n const confirm = Modal.confirm;\n\n confirm({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.DELETE_STRUCT_CONFIRM_MSG}`),\n okText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`),\n okType: \"danger\",\n cancelText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`),\n onOk: () => {\n this.remove(index);\n },\n });\n }\n remove(index: number) {\n let { structData, isLegacy } = this.props;\n if (isLegacy) {\n structData = {};\n } else {\n structData.splice(index, 1);\n }\n this.props.handleStoreFunction(structData);\n }\n handleEditStruct = (formData: any, index: number) => {\n let { structData, isLegacy } = this.props;\n if (isLegacy) {\n structData = [structData];\n }\n structData[index] = formData;\n this.props.handleStoreFunction(structData);\n this.handleCloseModal();\n };\n handleOpenEditModal = (index: number) => {\n this.setState({\n showEditModal: true,\n currentIndex: index,\n });\n };\n handleCloseModal = () => {\n this.setState({ showEditModal: false });\n };\n renderOperation = (record: any, index: number) => {\n const { attribute, structData } = this.props;\n const { currentIndex } = this.state;\n return (\n <div>\n <Button\n type=\"link\"\n icon={<EditOutlined />}\n onClick={() => this.handleOpenEditModal(index)}\n />\n <Button\n type=\"link\"\n icon={<DeleteOutlined style={{ color: \"var(--theme-red-color)\" }} />}\n onClick={() => {\n this.openConfirmModal(index);\n }}\n />\n <AddStructModal\n attribute={attribute}\n visible={this.state.showEditModal && currentIndex === index}\n structData={record}\n handleStoreFunction={(formData: any) =>\n this.handleEditStruct(formData, index)\n }\n handleCancelFunction={this.handleCloseModal}\n />\n </div>\n );\n };\n render() {\n const { attribute, isLegacy, structData } = this.props;\n const structDefine = attribute.value.struct_define;\n const columns = this.getColumns(structDefine);\n // 单结构体数据是对象,显示时要转换为数组\n const dataSource = isEmpty(structData)\n ? []\n : isLegacy\n ? [structData]\n : [...structData];\n return (\n <div style={{ overflowX: \"hidden\" }}>\n <Table\n scroll={{ x: \"max-content\" }}\n columns={columns}\n dataSource={dataSource}\n pagination={false}\n size={this.props.size}\n />\n </div>\n );\n }\n}\n"],"file":"StructTable.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/struct-components/StructTable.tsx"],"names":["StructTable","React","Component","constructor","props","formData","index","structData","isLegacy","handleStoreFunction","handleCloseModal","setState","showEditModal","currentIndex","record","attribute","state","handleOpenEditModal","color","openConfirmModal","handleEditStruct","getColumns","defines","columns","map","item","title","name","className","styles","structTableTd","dataIndex","id","render","text","_record","_index","copyText","showText","type","String","join","JSON","stringify","tooltips","i18n","t","NS_LIBS_CMDB_INSTANCES","K","COPY","COPY_SUCCESS","isEditable","push","OPERATION","fixed","_text","renderOperation","confirm","Modal","DELETE_STRUCT_CONFIRM_MSG","okText","CONFIRM","okType","cancelText","CANCEL","onOk","remove","splice","structDefine","value","struct_define","dataSource","overflowX","x","size"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { DeleteOutlined, EditOutlined } from \"@ant-design/icons\";\nimport { Button, Modal, Table } from \"antd\";\nimport { Attribute, Structkey } from \"./interfaces\";\nimport { isEmpty, isObject } from \"lodash\";\nimport { AddStructModal } from \"./AddStructModal\";\nimport { SizeType } from \"antd/lib/config-provider/SizeContext\";\nimport styles from \"./index.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { Typography } from \"antd\";\nexport interface StructTableProps {\n attribute: Attribute;\n structData: any;\n isEditable?: boolean;\n // 是否单结构体\n isLegacy?: boolean;\n size?: SizeType;\n handleStoreFunction?(data: any): void;\n}\nexport interface StructTableState {\n structData: any;\n currentIndex: number;\n showEditModal: boolean;\n}\nexport class StructTable extends React.Component<\n StructTableProps,\n StructTableState\n> {\n constructor(props: StructTableProps) {\n super(props);\n this.state = {\n structData: props.structData,\n currentIndex: 0,\n showEditModal: false,\n };\n }\n getColumns(defines: Structkey[]) {\n const columns: any = defines.map((item: Structkey) => ({\n title: item.name,\n className: styles.structTableTd,\n dataIndex: item.id,\n render: (text: any, _record: any, _index: number) => {\n let copyText: string;\n let showText: string;\n switch (item.type) {\n case \"bool\":\n return String(text ?? \"\");\n case \"enums\":\n case \"arr\":\n return text?.join?.(\"; \");\n case \"json\":\n copyText = isObject(text) ? JSON.stringify(text, null, 2) : text;\n showText = isObject(text) ? JSON.stringify(text) : text;\n if (copyText) {\n return (\n <Typography.Paragraph\n copyable={{\n tooltips: [\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY}`),\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY_SUCCESS}`),\n ],\n text: copyText,\n }}\n >\n {showText}\n </Typography.Paragraph>\n );\n }\n return showText;\n default:\n return text;\n }\n },\n }));\n if (this.props.isEditable) {\n columns.push({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATION}`),\n className: styles.structTableTd,\n dataIndex: \"operation\",\n fixed: \"right\",\n render: (_text: string, record: any, index: number): any => {\n return this.renderOperation(record, index);\n },\n });\n }\n return columns;\n }\n openConfirmModal(index: number) {\n const confirm = Modal.confirm;\n\n confirm({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.DELETE_STRUCT_CONFIRM_MSG}`),\n okText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`),\n okType: \"danger\",\n cancelText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`),\n onOk: () => {\n this.remove(index);\n },\n });\n }\n remove(index: number) {\n let { structData, isLegacy } = this.props;\n if (isLegacy) {\n structData = {};\n } else {\n structData.splice(index, 1);\n }\n this.props.handleStoreFunction(structData);\n }\n handleEditStruct = (formData: any, index: number) => {\n let { structData, isLegacy } = this.props;\n if (isLegacy) {\n structData = [structData];\n }\n structData[index] = formData;\n this.props.handleStoreFunction(structData);\n this.handleCloseModal();\n };\n handleOpenEditModal = (index: number) => {\n this.setState({\n showEditModal: true,\n currentIndex: index,\n });\n };\n handleCloseModal = () => {\n this.setState({ showEditModal: false });\n };\n renderOperation = (record: any, index: number) => {\n const { attribute, structData } = this.props;\n const { currentIndex } = this.state;\n return (\n <div>\n <Button\n type=\"link\"\n icon={<EditOutlined />}\n onClick={() => this.handleOpenEditModal(index)}\n />\n <Button\n type=\"link\"\n icon={<DeleteOutlined style={{ color: \"var(--theme-red-color)\" }} />}\n onClick={() => {\n this.openConfirmModal(index);\n }}\n />\n <AddStructModal\n attribute={attribute}\n visible={this.state.showEditModal && currentIndex === index}\n structData={record}\n handleStoreFunction={(formData: any) =>\n this.handleEditStruct(formData, index)\n }\n handleCancelFunction={this.handleCloseModal}\n />\n </div>\n );\n };\n render() {\n const { attribute, isLegacy, structData } = this.props;\n const structDefine = attribute.value.struct_define;\n const columns = this.getColumns(structDefine);\n // 单结构体数据是对象,显示时要转换为数组\n const dataSource = isEmpty(structData)\n ? []\n : isLegacy\n ? [structData]\n : [...structData];\n return (\n <div style={{ overflowX: \"hidden\" }}>\n <Table\n scroll={{ x: \"max-content\" }}\n columns={columns}\n dataSource={dataSource}\n pagination={false}\n size={this.props.size}\n />\n </div>\n );\n }\n}\n"],"file":"StructTable.js"}
|
|
@@ -38,6 +38,15 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
38
38
|
permission
|
|
39
39
|
};
|
|
40
40
|
}, [props.objectId, props.checkAgentStatus, props.checkPermission]);
|
|
41
|
+
var fields = useMemo(() => {
|
|
42
|
+
var _props$fields;
|
|
43
|
+
|
|
44
|
+
var fields = {};
|
|
45
|
+
(_props$fields = props.fields) === null || _props$fields === void 0 ? void 0 : _props$fields.forEach(field => {
|
|
46
|
+
fields[field] = true;
|
|
47
|
+
});
|
|
48
|
+
return fields;
|
|
49
|
+
}, [props.fields]);
|
|
41
50
|
var objectData = modifyModelData(props.objectMap[props.objectId]);
|
|
42
51
|
|
|
43
52
|
var fieldData = objectData.__fieldList.find(field => field.__id === props.fieldId);
|
|
@@ -66,7 +75,7 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
66
75
|
}
|
|
67
76
|
}, presetQuery),
|
|
68
77
|
permission,
|
|
69
|
-
fields: {
|
|
78
|
+
fields: fields || {
|
|
70
79
|
instanceId: true,
|
|
71
80
|
[props.fieldId]: true
|
|
72
81
|
}
|
|
@@ -99,7 +108,7 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
99
108
|
$in: instanceIds
|
|
100
109
|
}
|
|
101
110
|
},
|
|
102
|
-
fields: {
|
|
111
|
+
fields: fields || {
|
|
103
112
|
instanceId: true,
|
|
104
113
|
[props.fieldId]: true
|
|
105
114
|
}
|
|
@@ -156,7 +165,7 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
156
165
|
}, presetQuery), ...(props.query ? props.query : [])]
|
|
157
166
|
},
|
|
158
167
|
permission,
|
|
159
|
-
fields: {
|
|
168
|
+
fields: fields || {
|
|
160
169
|
instanceId: true,
|
|
161
170
|
[props.fieldId]: true
|
|
162
171
|
}
|
|
@@ -218,7 +227,7 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
218
227
|
}
|
|
219
228
|
}, ...(props.query ? props.query : [])]
|
|
220
229
|
},
|
|
221
|
-
fields: {
|
|
230
|
+
fields: fields || {
|
|
222
231
|
instanceId: true,
|
|
223
232
|
[props.fieldId]: true
|
|
224
233
|
}
|
|
@@ -271,7 +280,8 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
271
280
|
title: text,
|
|
272
281
|
aq: props.query,
|
|
273
282
|
presetConfigs: {
|
|
274
|
-
query: presetQuery
|
|
283
|
+
query: presetQuery,
|
|
284
|
+
fieldIds: props.fields
|
|
275
285
|
},
|
|
276
286
|
permission: permission,
|
|
277
287
|
selectedRowKeys: selectedInstances.valid.map(instance => instance.instanceId),
|
|
@@ -279,6 +289,9 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
279
289
|
singleSelect: props.singleSelect,
|
|
280
290
|
onCancel: closeSelectInstancesModal,
|
|
281
291
|
defaultQuery: props.defaultQuery,
|
|
292
|
+
pageSize: props.pageSize,
|
|
293
|
+
pageSizeOptions: props.pageSizeOptions,
|
|
294
|
+
showSizeChanger: props.showSizeChanger,
|
|
282
295
|
"data-testid": "select-modal"
|
|
283
296
|
}), /*#__PURE__*/React.createElement("div", {
|
|
284
297
|
className: style.cmdbInstancesInputFormWrapper
|
|
@@ -301,7 +314,8 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
301
314
|
title: t(K.VIEW_SPECIFIC_INSTANCES),
|
|
302
315
|
aq: selectedInstancesQuery,
|
|
303
316
|
presetConfigs: {
|
|
304
|
-
query: presetQuery
|
|
317
|
+
query: presetQuery,
|
|
318
|
+
fieldIds: props.fields
|
|
305
319
|
},
|
|
306
320
|
permission: permission,
|
|
307
321
|
onCancel: () => setPreviewVisible(false),
|
|
@@ -312,6 +326,9 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
312
326
|
relatedToMeDisabled: true,
|
|
313
327
|
moreButtonsDisabled: true,
|
|
314
328
|
selectDisabled: true,
|
|
329
|
+
pageSize: props.pageSize,
|
|
330
|
+
pageSizeOptions: props.pageSizeOptions,
|
|
331
|
+
showSizeChanger: props.showSizeChanger,
|
|
315
332
|
"data-testid": "preview-modal"
|
|
316
333
|
}), /*#__PURE__*/React.createElement(Button, {
|
|
317
334
|
type: "link",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"names":["React","forwardRef","useState","useEffect","useMemo","Input","Button","Modal","groupBy","InstanceListModal","modifyModelData","InstanceApi_postSearch","useTranslation","NS_LIBS_CMDB_INSTANCES","K","style","separator","LegacyCmdbInstancesInputFormItem","props","ref","t","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","objectData","objectMap","fieldData","__fieldList","find","field","__id","fieldId","visible","setVisible","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","length","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","fields","list","instanceIdSet","Set","selectedInstancesMap","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","page_size","instanceData","join","checkDisabled","value","handleChange","onChange","onChangeV2","checkInputValue","fieldValues","match","split","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","singleSelect","defaultQuery","cmdbInstancesInputFormWrapper","fieldInput","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n if (props.value) {\n updateSelected(props.value);\n }\n // todo(ice): how formItem to change its value??????\n }, []);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n handleChange(validSelectedInstances);\n }\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n handleChange(instances);\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n data-testid=\"select-modal\"\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"file":"CmdbInstancesInputFormItem.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"names":["React","forwardRef","useState","useEffect","useMemo","Input","Button","Modal","groupBy","InstanceListModal","modifyModelData","InstanceApi_postSearch","useTranslation","NS_LIBS_CMDB_INSTANCES","K","style","separator","LegacyCmdbInstancesInputFormItem","props","ref","t","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","forEach","field","objectData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","length","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","list","instanceIdSet","Set","selectedInstancesMap","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","page_size","instanceData","join","checkDisabled","value","handleChange","onChange","onChangeV2","checkInputValue","fieldValues","match","split","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","cmdbInstancesInputFormWrapper","fieldInput","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n fields?: string[];\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n pageSize?: number;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n const fields = useMemo(() => {\n const fields: Record<string, boolean> = {};\n\n props.fields?.forEach((field) => {\n fields[field] = true;\n });\n\n return fields;\n }, [props.fields]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n if (props.value) {\n updateSelected(props.value);\n }\n // todo(ice): how formItem to change its value??????\n }, []);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n handleChange(validSelectedInstances);\n }\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n handleChange(instances);\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"select-modal\"\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"file":"CmdbInstancesInputFormItem.js"}
|
|
@@ -123,6 +123,7 @@ export class StructTable extends React.Component {
|
|
|
123
123
|
title: i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.OPERATION)),
|
|
124
124
|
className: styles.structTableTd,
|
|
125
125
|
dataIndex: "operation",
|
|
126
|
+
fixed: "right",
|
|
126
127
|
render: (_text, record, index) => {
|
|
127
128
|
return this.renderOperation(record, index);
|
|
128
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/struct-components/StructTable.tsx"],"names":["React","DeleteOutlined","EditOutlined","Button","Modal","Table","isEmpty","isObject","AddStructModal","styles","i18n","K","NS_LIBS_CMDB_INSTANCES","Typography","StructTable","Component","constructor","props","formData","index","structData","isLegacy","handleStoreFunction","handleCloseModal","setState","showEditModal","currentIndex","record","attribute","state","handleOpenEditModal","color","openConfirmModal","handleEditStruct","getColumns","defines","columns","map","item","title","name","className","structTableTd","dataIndex","id","render","text","_record","_index","copyText","showText","type","String","join","JSON","stringify","tooltips","t","COPY","COPY_SUCCESS","isEditable","push","OPERATION","_text","renderOperation","confirm","DELETE_STRUCT_CONFIRM_MSG","okText","CONFIRM","okType","cancelText","CANCEL","onOk","remove","splice","structDefine","value","struct_define","dataSource","overflowX","x","size"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { DeleteOutlined, EditOutlined } from \"@ant-design/icons\";\nimport { Button, Modal, Table } from \"antd\";\nimport { Attribute, Structkey } from \"./interfaces\";\nimport { isEmpty, isObject } from \"lodash\";\nimport { AddStructModal } from \"./AddStructModal\";\nimport { SizeType } from \"antd/lib/config-provider/SizeContext\";\nimport styles from \"./index.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { Typography } from \"antd\";\nexport interface StructTableProps {\n attribute: Attribute;\n structData: any;\n isEditable?: boolean;\n // 是否单结构体\n isLegacy?: boolean;\n size?: SizeType;\n handleStoreFunction?(data: any): void;\n}\nexport interface StructTableState {\n structData: any;\n currentIndex: number;\n showEditModal: boolean;\n}\nexport class StructTable extends React.Component<\n StructTableProps,\n StructTableState\n> {\n constructor(props: StructTableProps) {\n super(props);\n this.state = {\n structData: props.structData,\n currentIndex: 0,\n showEditModal: false,\n };\n }\n getColumns(defines: Structkey[]) {\n const columns = defines.map((item: Structkey) => ({\n title: item.name,\n className: styles.structTableTd,\n dataIndex: item.id,\n render: (text: any, _record: any, _index: number) => {\n let copyText: string;\n let showText: string;\n switch (item.type) {\n case \"bool\":\n return String(text ?? \"\");\n case \"enums\":\n case \"arr\":\n return text?.join?.(\"; \");\n case \"json\":\n copyText = isObject(text) ? JSON.stringify(text, null, 2) : text;\n showText = isObject(text) ? JSON.stringify(text) : text;\n if (copyText) {\n return (\n <Typography.Paragraph\n copyable={{\n tooltips: [\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY}`),\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY_SUCCESS}`),\n ],\n text: copyText,\n }}\n >\n {showText}\n </Typography.Paragraph>\n );\n }\n return showText;\n default:\n return text;\n }\n },\n }));\n if (this.props.isEditable) {\n columns.push({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATION}`),\n className: styles.structTableTd,\n dataIndex: \"operation\",\n render: (_text: string, record: any, index: number): any => {\n return this.renderOperation(record, index);\n },\n });\n }\n return columns;\n }\n openConfirmModal(index: number) {\n const confirm = Modal.confirm;\n\n confirm({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.DELETE_STRUCT_CONFIRM_MSG}`),\n okText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`),\n okType: \"danger\",\n cancelText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`),\n onOk: () => {\n this.remove(index);\n },\n });\n }\n remove(index: number) {\n let { structData, isLegacy } = this.props;\n if (isLegacy) {\n structData = {};\n } else {\n structData.splice(index, 1);\n }\n this.props.handleStoreFunction(structData);\n }\n handleEditStruct = (formData: any, index: number) => {\n let { structData, isLegacy } = this.props;\n if (isLegacy) {\n structData = [structData];\n }\n structData[index] = formData;\n this.props.handleStoreFunction(structData);\n this.handleCloseModal();\n };\n handleOpenEditModal = (index: number) => {\n this.setState({\n showEditModal: true,\n currentIndex: index,\n });\n };\n handleCloseModal = () => {\n this.setState({ showEditModal: false });\n };\n renderOperation = (record: any, index: number) => {\n const { attribute, structData } = this.props;\n const { currentIndex } = this.state;\n return (\n <div>\n <Button\n type=\"link\"\n icon={<EditOutlined />}\n onClick={() => this.handleOpenEditModal(index)}\n />\n <Button\n type=\"link\"\n icon={<DeleteOutlined style={{ color: \"var(--theme-red-color)\" }} />}\n onClick={() => {\n this.openConfirmModal(index);\n }}\n />\n <AddStructModal\n attribute={attribute}\n visible={this.state.showEditModal && currentIndex === index}\n structData={record}\n handleStoreFunction={(formData: any) =>\n this.handleEditStruct(formData, index)\n }\n handleCancelFunction={this.handleCloseModal}\n />\n </div>\n );\n };\n render() {\n const { attribute, isLegacy, structData } = this.props;\n const structDefine = attribute.value.struct_define;\n const columns = this.getColumns(structDefine);\n // 单结构体数据是对象,显示时要转换为数组\n const dataSource = isEmpty(structData)\n ? []\n : isLegacy\n ? [structData]\n : [...structData];\n return (\n <div style={{ overflowX: \"hidden\" }}>\n <Table\n scroll={{ x: \"max-content\" }}\n columns={columns}\n dataSource={dataSource}\n pagination={false}\n size={this.props.size}\n />\n </div>\n );\n }\n}\n"],"file":"StructTable.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/struct-components/StructTable.tsx"],"names":["React","DeleteOutlined","EditOutlined","Button","Modal","Table","isEmpty","isObject","AddStructModal","styles","i18n","K","NS_LIBS_CMDB_INSTANCES","Typography","StructTable","Component","constructor","props","formData","index","structData","isLegacy","handleStoreFunction","handleCloseModal","setState","showEditModal","currentIndex","record","attribute","state","handleOpenEditModal","color","openConfirmModal","handleEditStruct","getColumns","defines","columns","map","item","title","name","className","structTableTd","dataIndex","id","render","text","_record","_index","copyText","showText","type","String","join","JSON","stringify","tooltips","t","COPY","COPY_SUCCESS","isEditable","push","OPERATION","fixed","_text","renderOperation","confirm","DELETE_STRUCT_CONFIRM_MSG","okText","CONFIRM","okType","cancelText","CANCEL","onOk","remove","splice","structDefine","value","struct_define","dataSource","overflowX","x","size"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { DeleteOutlined, EditOutlined } from \"@ant-design/icons\";\nimport { Button, Modal, Table } from \"antd\";\nimport { Attribute, Structkey } from \"./interfaces\";\nimport { isEmpty, isObject } from \"lodash\";\nimport { AddStructModal } from \"./AddStructModal\";\nimport { SizeType } from \"antd/lib/config-provider/SizeContext\";\nimport styles from \"./index.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { Typography } from \"antd\";\nexport interface StructTableProps {\n attribute: Attribute;\n structData: any;\n isEditable?: boolean;\n // 是否单结构体\n isLegacy?: boolean;\n size?: SizeType;\n handleStoreFunction?(data: any): void;\n}\nexport interface StructTableState {\n structData: any;\n currentIndex: number;\n showEditModal: boolean;\n}\nexport class StructTable extends React.Component<\n StructTableProps,\n StructTableState\n> {\n constructor(props: StructTableProps) {\n super(props);\n this.state = {\n structData: props.structData,\n currentIndex: 0,\n showEditModal: false,\n };\n }\n getColumns(defines: Structkey[]) {\n const columns: any = defines.map((item: Structkey) => ({\n title: item.name,\n className: styles.structTableTd,\n dataIndex: item.id,\n render: (text: any, _record: any, _index: number) => {\n let copyText: string;\n let showText: string;\n switch (item.type) {\n case \"bool\":\n return String(text ?? \"\");\n case \"enums\":\n case \"arr\":\n return text?.join?.(\"; \");\n case \"json\":\n copyText = isObject(text) ? JSON.stringify(text, null, 2) : text;\n showText = isObject(text) ? JSON.stringify(text) : text;\n if (copyText) {\n return (\n <Typography.Paragraph\n copyable={{\n tooltips: [\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY}`),\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY_SUCCESS}`),\n ],\n text: copyText,\n }}\n >\n {showText}\n </Typography.Paragraph>\n );\n }\n return showText;\n default:\n return text;\n }\n },\n }));\n if (this.props.isEditable) {\n columns.push({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATION}`),\n className: styles.structTableTd,\n dataIndex: \"operation\",\n fixed: \"right\",\n render: (_text: string, record: any, index: number): any => {\n return this.renderOperation(record, index);\n },\n });\n }\n return columns;\n }\n openConfirmModal(index: number) {\n const confirm = Modal.confirm;\n\n confirm({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.DELETE_STRUCT_CONFIRM_MSG}`),\n okText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`),\n okType: \"danger\",\n cancelText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`),\n onOk: () => {\n this.remove(index);\n },\n });\n }\n remove(index: number) {\n let { structData, isLegacy } = this.props;\n if (isLegacy) {\n structData = {};\n } else {\n structData.splice(index, 1);\n }\n this.props.handleStoreFunction(structData);\n }\n handleEditStruct = (formData: any, index: number) => {\n let { structData, isLegacy } = this.props;\n if (isLegacy) {\n structData = [structData];\n }\n structData[index] = formData;\n this.props.handleStoreFunction(structData);\n this.handleCloseModal();\n };\n handleOpenEditModal = (index: number) => {\n this.setState({\n showEditModal: true,\n currentIndex: index,\n });\n };\n handleCloseModal = () => {\n this.setState({ showEditModal: false });\n };\n renderOperation = (record: any, index: number) => {\n const { attribute, structData } = this.props;\n const { currentIndex } = this.state;\n return (\n <div>\n <Button\n type=\"link\"\n icon={<EditOutlined />}\n onClick={() => this.handleOpenEditModal(index)}\n />\n <Button\n type=\"link\"\n icon={<DeleteOutlined style={{ color: \"var(--theme-red-color)\" }} />}\n onClick={() => {\n this.openConfirmModal(index);\n }}\n />\n <AddStructModal\n attribute={attribute}\n visible={this.state.showEditModal && currentIndex === index}\n structData={record}\n handleStoreFunction={(formData: any) =>\n this.handleEditStruct(formData, index)\n }\n handleCancelFunction={this.handleCloseModal}\n />\n </div>\n );\n };\n render() {\n const { attribute, isLegacy, structData } = this.props;\n const structDefine = attribute.value.struct_define;\n const columns = this.getColumns(structDefine);\n // 单结构体数据是对象,显示时要转换为数组\n const dataSource = isEmpty(structData)\n ? []\n : isLegacy\n ? [structData]\n : [...structData];\n return (\n <div style={{ overflowX: \"hidden\" }}>\n <Table\n scroll={{ x: \"max-content\" }}\n columns={columns}\n dataSource={dataSource}\n pagination={false}\n size={this.props.size}\n />\n </div>\n );\n }\n}\n"],"file":"StructTable.js"}
|
|
@@ -7,6 +7,7 @@ export interface CmdbInstancesInputFormItemProps {
|
|
|
7
7
|
};
|
|
8
8
|
objectId?: string;
|
|
9
9
|
fieldId?: string;
|
|
10
|
+
fields?: string[];
|
|
10
11
|
singleSelect?: boolean;
|
|
11
12
|
inputDisabled?: boolean;
|
|
12
13
|
checkDisabled?: boolean;
|
|
@@ -25,6 +26,9 @@ export interface CmdbInstancesInputFormItemProps {
|
|
|
25
26
|
}[];
|
|
26
27
|
addButtonDisabled?: boolean;
|
|
27
28
|
previewEnabled?: boolean;
|
|
29
|
+
pageSize?: number;
|
|
30
|
+
pageSizeOptions?: string[];
|
|
31
|
+
showSizeChanger?: boolean;
|
|
28
32
|
}
|
|
29
33
|
export declare const LegacyCmdbInstancesInputFormItem: (props: CmdbInstancesInputFormItemProps, ref: React.Ref<HTMLDivElement>) => React.ReactElement;
|
|
30
34
|
export declare const CmdbInstancesInputFormItem: React.ForwardRefExoticComponent<CmdbInstancesInputFormItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -16,12 +16,7 @@ export interface StructTableState {
|
|
|
16
16
|
}
|
|
17
17
|
export declare class StructTable extends React.Component<StructTableProps, StructTableState> {
|
|
18
18
|
constructor(props: StructTableProps);
|
|
19
|
-
getColumns(defines: Structkey[]):
|
|
20
|
-
title: string;
|
|
21
|
-
className: string;
|
|
22
|
-
dataIndex: string;
|
|
23
|
-
render: (text: any, _record: any, _index: number) => any;
|
|
24
|
-
}[];
|
|
19
|
+
getColumns(defines: Structkey[]): any;
|
|
25
20
|
openConfirmModal(index: number): void;
|
|
26
21
|
remove(index: number): void;
|
|
27
22
|
handleEditStruct: (formData: any, index: number) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/cmdb-instances",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.32.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": "924bd23a7a2001e552fbadd18ffcb126cecb3ff2"
|
|
54
54
|
}
|