diff --git a/apps/web-antd/src/views/iot/thingmodel/index.vue b/apps/web-antd/src/views/iot/thingmodel/index.vue index 46d61b89c..2486a2590 100644 --- a/apps/web-antd/src/views/iot/thingmodel/index.vue +++ b/apps/web-antd/src/views/iot/thingmodel/index.vue @@ -23,16 +23,65 @@ const props = defineProps<{ productId: number; }>(); -// 产品信息 -const product = ref({} as IotProductApi.Product); +const product = ref({} as IotProductApi.Product); // 产品信息 -// 提供产品信息给子组件 -provide(IOT_PROVIDE_KEY.PRODUCT, product); +provide(IOT_PROVIDE_KEY.PRODUCT, product); // 提供产品信息给子组件 -// 组件引用 +// TODO @haohao:form 是不是用 web-antd/src/views/system/user/index.vue 里 open 的风格; const thingModelFormRef = ref(); +// TODO @haohao:thingModelTSLRef 应该是个 modal,也可以调整下风格; const thingModelTSLRef = ref(); +// TODO @haohao:方法的顺序、注释、调整的和别的模块一致。 + +// 新增功能 +function handleCreate() { + thingModelFormRef.value?.open('create'); +} + +// 编辑功能 +function handleEdit(row: any) { + thingModelFormRef.value?.open('update', row.id); +} + +// 删除功能 +async function handleDelete(row: any) { + // TODO @haohao:应该有个 loading,类似别的模块写法; + try { + await deleteThingModel(row.id); + message.success('删除成功'); + gridApi.reload(); + } catch (error) { + console.error('删除失败:', error); + } +} + +// 打开 TSL +function handleOpenTSL() { + thingModelTSLRef.value?.open(); +} + +// 获取数据类型标签 +// TODO @haohao:可以直接在 data.ts 就写掉这个逻辑; +function getDataTypeLabel(row: any) { + return getDataTypeOptionsLabel(row.property?.dataType) || '-'; +} + +// 刷新表格 +function handleRefresh() { + gridApi.reload(); +} + +// 获取产品信息 +async function getProductData() { + try { + product.value = await getProduct(props.productId); + } catch (error) { + console.error('获取产品信息失败:', error); + } +} + +// TODO @haohao:字段的顺序,调整成别的模块一直; const [Grid, gridApi] = useVbenVxeGrid({ gridOptions: { columns: useGridColumns(), @@ -64,51 +113,6 @@ const [Grid, gridApi] = useVbenVxeGrid({ }, }); -// 新增功能 -function handleCreate() { - thingModelFormRef.value?.open('create'); -} - -// 编辑功能 -function handleEdit(row: any) { - thingModelFormRef.value?.open('update', row.id); -} - -// 删除功能 -async function handleDelete(row: any) { - try { - await deleteThingModel(row.id); - message.success('删除成功'); - gridApi.reload(); - } catch (error) { - console.error('删除失败:', error); - } -} - -// 打开 TSL -function handleOpenTSL() { - thingModelTSLRef.value?.open(); -} - -// 获取数据类型标签 -function getDataTypeLabel(row: any) { - return getDataTypeOptionsLabel(row.property?.dataType) || '-'; -} - -// 刷新表格 -function handleRefresh() { - gridApi.reload(); -} - -// 获取产品信息 -async function getProductData() { - try { - product.value = await getProduct(props.productId); - } catch (error) { - console.error('获取产品信息失败:', error); - } -} - // 初始化 onMounted(async () => { await getProductData(); @@ -116,11 +120,7 @@ onMounted(async () => {