From 5209abce162b70ec9e8897e03d3cf49f9670fdaa Mon Sep 17 00:00:00 2001 From: XieYongHong <18010623010@163.com> Date: Mon, 7 Aug 2023 15:57:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=89=A9=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E6=97=A0=E6=B3=95=E6=96=B0=E5=A2=9E=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Metadata/Base/columns.tsx | 32 +++++++------- .../Metadata/Base/hooks/useMatadata.ts | 43 ++++++++++--------- 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/src/views/device/components/Metadata/Base/columns.tsx b/src/views/device/components/Metadata/Base/columns.tsx index 3a519e68..8f20ba46 100644 --- a/src/views/device/components/Metadata/Base/columns.tsx +++ b/src/views/device/components/Metadata/Base/columns.tsx @@ -136,9 +136,10 @@ export const typeSelectChange = (type: string) => { return obj } -const isExtendsProdcut = (index: string, productKeys: string, type: string) => { +const isExtendsProduct = (id: string, productKeys: string, type: string) => { + if (!id) return false const vailKeys = productKeys[type] || [] - if (vailKeys.includes(index)) { + if (vailKeys.includes(id)) { onlyMessage('继承自产品物模型的数据不支持修改', 'warning') return true } @@ -176,11 +177,11 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n ] }, doubleClick(record) { - if (isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'id')) { + if (isExtendsProduct(record.id, productNoEdit?.value, 'id')) { return false } const ids = (noEdit?.value?.id || []) as any[] - return !ids.includes(record._sortIndex) + return !ids.includes(record.id) } }, { @@ -199,7 +200,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n ] }, doubleClick(record) { - if (isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'name')) { + if (isExtendsProduct(record.id, productNoEdit?.value, 'name')) { return false } return true @@ -219,7 +220,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n } }, doubleClick(record) { - if (isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'expands')) { + if (isExtendsProduct(record.id, productNoEdit?.value, 'expands')) { return false } return true @@ -266,7 +267,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n dataIndex: 'description', type: 'text', doubleClick(record) { - if (isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'description')) { + if (isExtendsProduct(record.id, productNoEdit?.value, 'description')) { return false } return true @@ -294,7 +295,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n } }, doubleClick(record) { - return !isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'async'); + return !isExtendsProduct(record.id, productNoEdit?.value, 'async'); }, control(newValue, oldValue) { @@ -349,7 +350,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n }] }, doubleClick(record) { - return !isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'output'); + return !isExtendsProduct(record.id, productNoEdit?.value, 'output'); }, control(newValue, oldValue) { if (newValue && !oldValue) { @@ -365,7 +366,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n dataIndex: 'description', type: 'text', doubleClick(record) { - if (isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'description')) { + if (isExtendsProduct(record.id, productNoEdit?.value, 'description')) { return false } return true @@ -404,7 +405,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n }, width: 230, doubleClick(record) { - if (isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'valueType')) { + if (isExtendsProduct(record.id, productNoEdit?.value, 'valueType')) { return false } return true @@ -425,7 +426,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n if (record.expands.source === 'rule') { return true } - return !isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'expands') + return !isExtendsProduct(record.id, productNoEdit?.value, 'expands') }, form: { required: true, @@ -438,7 +439,6 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n const values = dataSource.find((item, index) => index === fieldIndex) const virtualRule = values.expands?.virtualRule const source = value.source - const ids = (noEdit?.value?.id || []) as any[] console.log(source, value) if (source) { if (source === 'device' && !value.type?.length) { @@ -512,7 +512,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n }] }, doubleClick(record) { - if (isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'valueType')) { + if (isExtendsProduct(record.id, productNoEdit?.value, 'valueType')) { return false } return true @@ -534,7 +534,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n name: TagsType }, doubleClick(record) { - if (isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'readType')) { + if (isExtendsProduct(record.id, productNoEdit?.value, 'readType')) { return false } return true @@ -568,7 +568,7 @@ export const useColumns = (type?: MetadataType, target?: 'device' | 'product', n dataIndex: 'description', type: 'text', doubleClick(record) { - if (isExtendsProdcut(record._sortIndex, productNoEdit?.value, 'description')) { + if (isExtendsProduct(record.id, productNoEdit?.value, 'description')) { return false } return true diff --git a/src/views/device/components/Metadata/Base/hooks/useMatadata.ts b/src/views/device/components/Metadata/Base/hooks/useMatadata.ts index b1b8152e..d7935d85 100644 --- a/src/views/device/components/Metadata/Base/hooks/useMatadata.ts +++ b/src/views/device/components/Metadata/Base/hooks/useMatadata.ts @@ -21,50 +21,51 @@ const useMetadata = (type: 'device' | 'product', key?: MetadataType, ): { const handleMetadata = (_metadataStr: string) => { const _metadata = JSON.parse(_metadataStr || '{}') - const newMetadata = (key ? _metadata?.[key] || [] : []) as DeviceMetadata[] + const newMetadata = (key ? _metadata?.[key] || [] : []) as any[] metadata.value = newMetadata as any - const indexKeys = newMetadata.map((item, index) => index) + const ids = newMetadata.map((item) => item.id) noEdit.value = {} productNoEdit.value = {} - noEdit.value.id = indexKeys + noEdit.value.id = ids if (key === 'properties') { - noEdit.value.source = indexKeys + noEdit.value.source = ids } if (type === 'device' && instanceCurrent.value.productMetadata) { const productMetadata: any = JSON.parse(instanceCurrent.value.productMetadata) const metaArray = key ? productMetadata[key] : [] - const productIndexKeys = metaArray?.map((item:any, index: number) => index) || [] - productNoEdit.value.ids = metaArray?.map((item: any) => item.id) || [] - productNoEdit.value.id = productIndexKeys - productNoEdit.value.name = productIndexKeys + const productIds = metaArray?.map((item:any) => item.id) || [] + // productNoEdit.value.ids = metaArray?.map((item: any) => item.id) || [] + productNoEdit.value.ids = productIds + productNoEdit.value.id = productIds + productNoEdit.value.name = productIds if (key === 'properties') { - productNoEdit.value.valueType = productIndexKeys - productNoEdit.value.expands = productIndexKeys + productNoEdit.value.valueType = productIds + productNoEdit.value.expands = productIds } if (key === 'functions') { - productNoEdit.value.async = productIndexKeys - productNoEdit.value.inputs = productIndexKeys - productNoEdit.value.output = productIndexKeys - productNoEdit.value.description = productIndexKeys + productNoEdit.value.async = productIds + productNoEdit.value.inputs = productIds + productNoEdit.value.output = productIds + productNoEdit.value.description = productIds } if (key === 'events') { - productNoEdit.value.expands = productIndexKeys - productNoEdit.value.outInput = productIndexKeys - productNoEdit.value.properties = productIndexKeys - productNoEdit.value.description = productIndexKeys + productNoEdit.value.expands = productIds + productNoEdit.value.outInput = productIds + productNoEdit.value.properties = productIds + productNoEdit.value.description = productIds } if (key === 'tags') { - productNoEdit.value.valueType = productIndexKeys - productNoEdit.value.readType = productIndexKeys - productNoEdit.value.description = productIndexKeys + productNoEdit.value.valueType = productIds + productNoEdit.value.readType = productIds + productNoEdit.value.description = productIds } }