@next-libs/cmdb-instances 6.31.0 → 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 +11 -0
- package/dist/cjs/struct-components/StructTable.js +1 -0
- package/dist/cjs/struct-components/StructTable.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/struct-components/StructTable.d.ts +1 -6
- 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.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
|
+
|
|
6
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)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -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":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AACA;;AAgBO,MAAMA,WAAN,SAA0BC,eAAMC,SAAhC,CAGL;AACAC,EAAAA,WAAW,CAACC,KAAD,EAA0B;AACnC,UAAMA,KAAN;AADmC,4DAgFlB,CAACC,QAAD,EAAgBC,KAAhB,KAAkC;AACnD,UAAI;AAAEC,QAAAA,UAAF;AAAcC,QAAAA;AAAd,UAA2B,KAAKJ,KAApC;;AACA,UAAII,QAAJ,EAAc;AACZD,QAAAA,UAAU,GAAG,CAACA,UAAD,CAAb;AACD;;AACDA,MAAAA,UAAU,CAACD,KAAD,CAAV,GAAoBD,QAApB;AACA,WAAKD,KAAL,CAAWK,mBAAX,CAA+BF,UAA/B;AACA,WAAKG,gBAAL;AACD,KAxFoC;AAAA,+DAyFdJ,KAAD,IAAmB;AACvC,WAAKK,QAAL,CAAc;AACZC,QAAAA,aAAa,EAAE,IADH;AAEZC,QAAAA,YAAY,EAAEP;AAFF,OAAd;AAID,KA9FoC;AAAA,4DA+FlB,MAAM;AACvB,WAAKK,QAAL,CAAc;AAAEC,QAAAA,aAAa,EAAE;AAAjB,OAAd;AACD,KAjGoC;AAAA,2DAkGnB,CAACE,MAAD,EAAcR,KAAd,KAAgC;AAChD,YAAM;AAAES,QAAAA,SAAF;AAAaR,QAAAA;AAAb,UAA4B,KAAKH,KAAvC;AACA,YAAM;AAAES,QAAAA;AAAF,UAAmB,KAAKG,KAA9B;AACA,0BACE,uDACE,6BAAC,YAAD;AACE,QAAA,IAAI,EAAC,MADP;AAEE,QAAA,IAAI,eAAE,6BAAC,mBAAD,OAFR;AAGE,QAAA,OAAO,EAAE,MAAM,KAAKC,mBAAL,CAAyBX,KAAzB;AAHjB,QADF,eAME,6BAAC,YAAD;AACE,QAAA,IAAI,EAAC,MADP;AAEE,QAAA,IAAI,eAAE,6BAAC,qBAAD;AAAgB,UAAA,KAAK,EAAE;AAAEY,YAAAA,KAAK,EAAE;AAAT;AAAvB,UAFR;AAGE,QAAA,OAAO,EAAE,MAAM;AACb,eAAKC,gBAAL,CAAsBb,KAAtB;AACD;AALH,QANF,eAaE,6BAAC,8BAAD;AACE,QAAA,SAAS,EAAES,SADb;AAEE,QAAA,OAAO,EAAE,KAAKC,KAAL,CAAWJ,aAAX,IAA4BC,YAAY,KAAKP,KAFxD;AAGE,QAAA,UAAU,EAAEQ,MAHd;AAIE,QAAA,mBAAmB,EAAGT,QAAD,IACnB,KAAKe,gBAAL,CAAsBf,QAAtB,EAAgCC,KAAhC,CALJ;AAOE,QAAA,oBAAoB,EAAE,KAAKI;AAP7B,QAbF,CADF;AAyBD,KA9HoC;AAEnC,SAAKM,KAAL,GAAa;AACXT,MAAAA,UAAU,EAAEH,KAAK,CAACG,UADP;AAEXM,MAAAA,YAAY,EAAE,CAFH;AAGXD,MAAAA,aAAa,EAAE;AAHJ,KAAb;AAKD;;AACDS,EAAAA,UAAU,CAACC,OAAD,EAAuB;AAC/B,UAAMC,OAAO,GAAGD,OAAO,CAACE,GAAR,CAAaC,IAAD,KAAsB;AAChDC,MAAAA,KAAK,EAAED,IAAI,CAACE,IADoC;AAEhDC,MAAAA,SAAS,EAAEC,qBAAOC,aAF8B;AAGhDC,MAAAA,SAAS,EAAEN,IAAI,CAACO,EAHgC;AAIhDC,MAAAA,MAAM,EAAE,CAACC,IAAD,EAAYC,OAAZ,EAA0BC,MAA1B,KAA6C;AAAA;;AACnD,YAAIC,QAAJ;AACA,YAAIC,QAAJ;;AACA,gBAAQb,IAAI,CAACc,IAAb;AACE,eAAK,MAAL;AACE,mBAAOC,MAAM,CAACN,IAAD,aAACA,IAAD,cAACA,IAAD,GAAS,EAAT,CAAb;;AACF,eAAK,OAAL;AACA,eAAK,KAAL;AACE,mBAAOA,IAAP,aAAOA,IAAP,qCAAOA,IAAI,CAAEO,IAAb,+CAAO,gBAAAP,IAAI,EAAS,IAAT,CAAX;;AACF,eAAK,MAAL;AACEG,YAAAA,QAAQ,GAAG,sBAASH,IAAT,IAAiBQ,IAAI,CAACC,SAAL,CAAeT,IAAf,EAAqB,IAArB,EAA2B,CAA3B,CAAjB,GAAiDA,IAA5D;AACAI,YAAAA,QAAQ,GAAG,sBAASJ,IAAT,IAAiBQ,IAAI,CAACC,SAAL,CAAeT,IAAf,CAAjB,GAAwCA,IAAnD;;AACA,gBAAIG,QAAJ,EAAc;AACZ,kCACE,6BAAC,gBAAD,CAAY,SAAZ;AACE,gBAAA,QAAQ,EAAE;AACRO,kBAAAA,QAAQ,EAAE,CACRC,iBAAKC,CAAL,CAAQ,GAAEC,iCAAuB,IAAGC,aAAEC,IAAK,EAA3C,CADQ,EAERJ,iBAAKC,CAAL,CAAQ,GAAEC,iCAAuB,IAAGC,aAAEE,YAAa,EAAnD,CAFQ,CADF;AAKRhB,kBAAAA,IAAI,EAAEG;AALE;AADZ,iBASGC,QATH,CADF;AAaD;;AACD,mBAAOA,QAAP;;AACF;AACE,mBAAOJ,IAAP;AA1BJ;AA4BD;AAnC+C,KAAtB,CAAZ,CAAhB;;AAqCA,QAAI,KAAK9B,KAAL,CAAW+C,UAAf,EAA2B;AACzB5B,MAAAA,OAAO,CAAC6B,IAAR,CAAa;AACX1B,QAAAA,KAAK,EAAEmB,iBAAKC,CAAL,CAAQ,GAAEC,iCAAuB,IAAGC,aAAEK,SAAU,EAAhD,CADI;AAEXzB,QAAAA,SAAS,EAAEC,qBAAOC,aAFP;AAGXC,QAAAA,SAAS,EAAE,WAHA;AAIXE,QAAAA,MAAM,EAAE,CAACqB,KAAD,EAAgBxC,MAAhB,EAA6BR,KAA7B,KAAoD;AAC1D,iBAAO,KAAKiD,eAAL,CAAqBzC,MAArB,EAA6BR,KAA7B,CAAP;AACD;AANU,OAAb;AAQD;;AACD,WAAOiB,OAAP;AACD;;AACDJ,EAAAA,gBAAgB,CAACb,KAAD,EAAgB;AAC9B,UAAMkD,OAAO,GAAGC,YAAMD,OAAtB;AAEAA,IAAAA,OAAO,CAAC;AACN9B,MAAAA,KAAK,EAAEmB,iBAAKC,CAAL,CAAQ,GAAEC,iCAAuB,IAAGC,aAAEU,yBAA0B,EAAhE,CADD;AAENC,MAAAA,MAAM,EAAEd,iBAAKC,CAAL,CAAQ,GAAEC,iCAAuB,IAAGC,aAAEY,OAAQ,EAA9C,CAFF;AAGNC,MAAAA,MAAM,EAAE,QAHF;AAINC,MAAAA,UAAU,EAAEjB,iBAAKC,CAAL,CAAQ,GAAEC,iCAAuB,IAAGC,aAAEe,MAAO,EAA7C,CAJN;AAKNC,MAAAA,IAAI,EAAE,MAAM;AACV,aAAKC,MAAL,CAAY3D,KAAZ;AACD;AAPK,KAAD,CAAP;AASD;;AACD2D,EAAAA,MAAM,CAAC3D,KAAD,EAAgB;AACpB,QAAI;AAAEC,MAAAA,UAAF;AAAcC,MAAAA;AAAd,QAA2B,KAAKJ,KAApC;;AACA,QAAII,QAAJ,EAAc;AACZD,MAAAA,UAAU,GAAG,EAAb;AACD,KAFD,MAEO;AACLA,MAAAA,UAAU,CAAC2D,MAAX,CAAkB5D,KAAlB,EAAyB,CAAzB;AACD;;AACD,SAAKF,KAAL,CAAWK,mBAAX,CAA+BF,UAA/B;AACD;;AAgDD0B,EAAAA,MAAM,GAAG;AACP,UAAM;AAAElB,MAAAA,SAAF;AAAaP,MAAAA,QAAb;AAAuBD,MAAAA;AAAvB,QAAsC,KAAKH,KAAjD;AACA,UAAM+D,YAAY,GAAGpD,SAAS,CAACqD,KAAV,CAAgBC,aAArC;AACA,UAAM9C,OAAO,GAAG,KAAKF,UAAL,CAAgB8C,YAAhB,CAAhB,CAHO,CAIP;;AACA,UAAMG,UAAU,GAAG,qBAAQ/D,UAAR,IACf,EADe,GAEfC,QAAQ,GACR,CAACD,UAAD,CADQ,GAER,CAAC,GAAGA,UAAJ,CAJJ;AAKA,wBACE;AAAK,MAAA,KAAK,EAAE;AAAEgE,QAAAA,SAAS,EAAE;AAAb;AAAZ,oBACE,6BAAC,WAAD;AACE,MAAA,MAAM,EAAE;AAAEC,QAAAA,CAAC,EAAE;AAAL,OADV;AAEE,MAAA,OAAO,EAAEjD,OAFX;AAGE,MAAA,UAAU,EAAE+C,UAHd;AAIE,MAAA,UAAU,EAAE,KAJd;AAKE,MAAA,IAAI,EAAE,KAAKlE,KAAL,CAAWqE;AALnB,MADF,CADF;AAWD;;AArJD","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"}
|
|
@@ -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":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAT,EAAyBC,YAAzB,QAA6C,mBAA7C;AACA,SAASC,MAAT,EAAiBC,KAAjB,EAAwBC,KAAxB,QAAqC,MAArC;AAEA,SAASC,OAAT,EAAkBC,QAAlB,QAAkC,QAAlC;AACA,SAASC,cAAT,QAA+B,kBAA/B;AAEA,OAAOC,MAAP,MAAmB,oBAAnB;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,SAASC,CAAT,EAAYC,sBAAZ,QAA0C,mBAA1C;AACA,SAASC,UAAT,QAA2B,MAA3B;AAeA,OAAO,MAAMC,WAAN,SAA0Bd,KAAK,CAACe,SAAhC,CAGL;AACAC,EAAAA,WAAW,CAACC,KAAD,EAA0B;AACnC,UAAMA,KAAN;;AADmC,8CAgFlB,CAACC,QAAD,EAAgBC,KAAhB,KAAkC;AACnD,UAAI;AAAEC,QAAAA,UAAF;AAAcC,QAAAA;AAAd,UAA2B,KAAKJ,KAApC;;AACA,UAAII,QAAJ,EAAc;AACZD,QAAAA,UAAU,GAAG,CAACA,UAAD,CAAb;AACD;;AACDA,MAAAA,UAAU,CAACD,KAAD,CAAV,GAAoBD,QAApB;AACA,WAAKD,KAAL,CAAWK,mBAAX,CAA+BF,UAA/B;AACA,WAAKG,gBAAL;AACD,KAxFoC;;AAAA,iDAyFdJ,KAAD,IAAmB;AACvC,WAAKK,QAAL,CAAc;AACZC,QAAAA,aAAa,EAAE,IADH;AAEZC,QAAAA,YAAY,EAAEP;AAFF,OAAd;AAID,KA9FoC;;AAAA,8CA+FlB,MAAM;AACvB,WAAKK,QAAL,CAAc;AAAEC,QAAAA,aAAa,EAAE;AAAjB,OAAd;AACD,KAjGoC;;AAAA,6CAkGnB,CAACE,MAAD,EAAcR,KAAd,KAAgC;AAChD,UAAM;AAAES,QAAAA,SAAF;AAAaR,QAAAA;AAAb,UAA4B,KAAKH,KAAvC;AACA,UAAM;AAAES,QAAAA;AAAF,UAAmB,KAAKG,KAA9B;AACA,0BACE,8CACE,oBAAC,MAAD;AACE,QAAA,IAAI,EAAC,MADP;AAEE,QAAA,IAAI,eAAE,oBAAC,YAAD,OAFR;AAGE,QAAA,OAAO,EAAE,MAAM,KAAKC,mBAAL,CAAyBX,KAAzB;AAHjB,QADF,eAME,oBAAC,MAAD;AACE,QAAA,IAAI,EAAC,MADP;AAEE,QAAA,IAAI,eAAE,oBAAC,cAAD;AAAgB,UAAA,KAAK,EAAE;AAAEY,YAAAA,KAAK,EAAE;AAAT;AAAvB,UAFR;AAGE,QAAA,OAAO,EAAE,MAAM;AACb,eAAKC,gBAAL,CAAsBb,KAAtB;AACD;AALH,QANF,eAaE,oBAAC,cAAD;AACE,QAAA,SAAS,EAAES,SADb;AAEE,QAAA,OAAO,EAAE,KAAKC,KAAL,CAAWJ,aAAX,IAA4BC,YAAY,KAAKP,KAFxD;AAGE,QAAA,UAAU,EAAEQ,MAHd;AAIE,QAAA,mBAAmB,EAAGT,QAAD,IACnB,KAAKe,gBAAL,CAAsBf,QAAtB,EAAgCC,KAAhC,CALJ;AAOE,QAAA,oBAAoB,EAAE,KAAKI;AAP7B,QAbF,CADF;AAyBD,KA9HoC;;AAEnC,SAAKM,KAAL,GAAa;AACXT,MAAAA,UAAU,EAAEH,KAAK,CAACG,UADP;AAEXM,MAAAA,YAAY,EAAE,CAFH;AAGXD,MAAAA,aAAa,EAAE;AAHJ,KAAb;AAKD;;AACDS,EAAAA,UAAU,CAACC,OAAD,EAAuB;AAC/B,QAAMC,OAAO,GAAGD,OAAO,CAACE,GAAR,CAAaC,IAAD,KAAsB;AAChDC,MAAAA,KAAK,EAAED,IAAI,CAACE,IADoC;AAEhDC,MAAAA,SAAS,EAAEhC,MAAM,CAACiC,aAF8B;AAGhDC,MAAAA,SAAS,EAAEL,IAAI,CAACM,EAHgC;AAIhDC,MAAAA,MAAM,EAAE,CAACC,IAAD,EAAYC,OAAZ,EAA0BC,MAA1B,KAA6C;AAAA;;AACnD,YAAIC,QAAJ;AACA,YAAIC,QAAJ;;AACA,gBAAQZ,IAAI,CAACa,IAAb;AACE,eAAK,MAAL;AACE,mBAAOC,MAAM,CAACN,IAAD,aAACA,IAAD,cAACA,IAAD,GAAS,EAAT,CAAb;;AACF,eAAK,OAAL;AACA,eAAK,KAAL;AACE,mBAAOA,IAAP,aAAOA,IAAP,qCAAOA,IAAI,CAAEO,IAAb,+CAAO,gBAAAP,IAAI,EAAS,IAAT,CAAX;;AACF,eAAK,MAAL;AACEG,YAAAA,QAAQ,GAAG1C,QAAQ,CAACuC,IAAD,CAAR,GAAiBQ,IAAI,CAACC,SAAL,CAAeT,IAAf,EAAqB,IAArB,EAA2B,CAA3B,CAAjB,GAAiDA,IAA5D;AACAI,YAAAA,QAAQ,GAAG3C,QAAQ,CAACuC,IAAD,CAAR,GAAiBQ,IAAI,CAACC,SAAL,CAAeT,IAAf,CAAjB,GAAwCA,IAAnD;;AACA,gBAAIG,QAAJ,EAAc;AACZ,kCACE,oBAAC,UAAD,CAAY,SAAZ;AACE,gBAAA,QAAQ,EAAE;AACRO,kBAAAA,QAAQ,EAAE,CACR9C,IAAI,CAAC+C,CAAL,WAAU7C,sBAAV,cAAoCD,CAAC,CAAC+C,IAAtC,EADQ,EAERhD,IAAI,CAAC+C,CAAL,WAAU7C,sBAAV,cAAoCD,CAAC,CAACgD,YAAtC,EAFQ,CADF;AAKRb,kBAAAA,IAAI,EAAEG;AALE;AADZ,iBASGC,QATH,CADF;AAaD;;AACD,mBAAOA,QAAP;;AACF;AACE,mBAAOJ,IAAP;AA1BJ;AA4BD;AAnC+C,KAAtB,CAAZ,CAAhB;;AAqCA,QAAI,KAAK7B,KAAL,CAAW2C,UAAf,EAA2B;AACzBxB,MAAAA,OAAO,CAACyB,IAAR,CAAa;AACXtB,QAAAA,KAAK,EAAE7B,IAAI,CAAC+C,CAAL,WAAU7C,sBAAV,cAAoCD,CAAC,CAACmD,SAAtC,EADI;AAEXrB,QAAAA,SAAS,EAAEhC,MAAM,CAACiC,aAFP;AAGXC,QAAAA,SAAS,EAAE,WAHA;AAIXE,QAAAA,MAAM,EAAE,CAACkB,KAAD,EAAgBpC,MAAhB,EAA6BR,KAA7B,KAAoD;AAC1D,iBAAO,KAAK6C,eAAL,CAAqBrC,MAArB,EAA6BR,KAA7B,CAAP;AACD;AANU,OAAb;AAQD;;AACD,WAAOiB,OAAP;AACD;;AACDJ,EAAAA,gBAAgB,CAACb,KAAD,EAAgB;AAC9B,QAAM8C,OAAO,GAAG7D,KAAK,CAAC6D,OAAtB;AAEAA,IAAAA,OAAO,CAAC;AACN1B,MAAAA,KAAK,EAAE7B,IAAI,CAAC+C,CAAL,WAAU7C,sBAAV,cAAoCD,CAAC,CAACuD,yBAAtC,EADD;AAENC,MAAAA,MAAM,EAAEzD,IAAI,CAAC+C,CAAL,WAAU7C,sBAAV,cAAoCD,CAAC,CAACyD,OAAtC,EAFF;AAGNC,MAAAA,MAAM,EAAE,QAHF;AAINC,MAAAA,UAAU,EAAE5D,IAAI,CAAC+C,CAAL,WAAU7C,sBAAV,cAAoCD,CAAC,CAAC4D,MAAtC,EAJN;AAKNC,MAAAA,IAAI,EAAE,MAAM;AACV,aAAKC,MAAL,CAAYtD,KAAZ;AACD;AAPK,KAAD,CAAP;AASD;;AACDsD,EAAAA,MAAM,CAACtD,KAAD,EAAgB;AACpB,QAAI;AAAEC,MAAAA,UAAF;AAAcC,MAAAA;AAAd,QAA2B,KAAKJ,KAApC;;AACA,QAAII,QAAJ,EAAc;AACZD,MAAAA,UAAU,GAAG,EAAb;AACD,KAFD,MAEO;AACLA,MAAAA,UAAU,CAACsD,MAAX,CAAkBvD,KAAlB,EAAyB,CAAzB;AACD;;AACD,SAAKF,KAAL,CAAWK,mBAAX,CAA+BF,UAA/B;AACD;;AAgDDyB,EAAAA,MAAM,GAAG;AACP,QAAM;AAAEjB,MAAAA,SAAF;AAAaP,MAAAA,QAAb;AAAuBD,MAAAA;AAAvB,QAAsC,KAAKH,KAAjD;AACA,QAAM0D,YAAY,GAAG/C,SAAS,CAACgD,KAAV,CAAgBC,aAArC;AACA,QAAMzC,OAAO,GAAG,KAAKF,UAAL,CAAgByC,YAAhB,CAAhB,CAHO,CAIP;;AACA,QAAMG,UAAU,GAAGxE,OAAO,CAACc,UAAD,CAAP,GACf,EADe,GAEfC,QAAQ,GACR,CAACD,UAAD,CADQ,GAER,CAAC,GAAGA,UAAJ,CAJJ;AAKA,wBACE;AAAK,MAAA,KAAK,EAAE;AAAE2D,QAAAA,SAAS,EAAE;AAAb;AAAZ,oBACE,oBAAC,KAAD;AACE,MAAA,MAAM,EAAE;AAAEC,QAAAA,CAAC,EAAE;AAAL,OADV;AAEE,MAAA,OAAO,EAAE5C,OAFX;AAGE,MAAA,UAAU,EAAE0C,UAHd;AAIE,MAAA,UAAU,EAAE,KAJd;AAKE,MAAA,IAAI,EAAE,KAAK7D,KAAL,CAAWgE;AALnB,MADF,CADF;AAWD;;AArJD","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"}
|
|
@@ -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
|
}
|