Browse Source

feat:【IoT 物联网】移除 topic 界面,暂时没用

YunaiV 11 months ago
parent
commit
2af29e447f

+ 0 - 247
src/views/iot/product/product/detail/ProductTopic.vue

@@ -1,247 +0,0 @@
-<template>
-  <ContentWrap>
-    <el-tabs>
-      <el-tab-pane label="基础通信 Topic">
-        <Table
-          :columns="basicColumn"
-          :data="basicData"
-          :span-method="createSpanMethod(basicData)"
-          align="left"
-          headerAlign="left"
-          border="true"
-        />
-      </el-tab-pane>
-      <el-tab-pane label="物模型通信 Topic">
-        <Table
-          :columns="functionColumn"
-          :data="functionData"
-          :span-method="createSpanMethod(functionData)"
-          align="left"
-          headerAlign="left"
-          border="true"
-        />
-      </el-tab-pane>
-    </el-tabs>
-  </ContentWrap>
-</template>
-<script setup lang="ts">
-import { ProductVO } from '@/api/iot/product/product'
-
-const props = defineProps<{ product: ProductVO }>()
-
-// TODO 芋艿:不确定未来会不会改,所以先写死
-
-// 基础通信 Topic 列
-const basicColumn = reactive([
-  { label: '功能', field: 'function', width: 150 },
-  { label: 'Topic 类', field: 'topicClass', width: 800 },
-  { label: '操作权限', field: 'operationPermission', width: 100 },
-  { label: '描述', field: 'description' }
-])
-
-// 基础通信 Topic 数据
-const basicData = computed(() => {
-  if (!props.product || !props.product.productKey) return []
-  return [
-    {
-      function: 'OTA 升级',
-      topicClass: `/ota/device/inform/${props.product.productKey}/\${deviceName}`,
-      operationPermission: '发布',
-      description: '设备上报固件升级信息'
-    },
-    {
-      function: 'OTA 升级',
-      topicClass: `/ota/device/upgrade/${props.product.productKey}/\${deviceName}`,
-      operationPermission: '订阅',
-      description: '固件升级信息下行'
-    },
-    {
-      function: 'OTA 升级',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/ota/firmware/get`,
-      operationPermission: '发布',
-      description: '设备上报固件升级进度'
-    },
-    {
-      function: 'OTA 升级',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/ota/firmware/get`,
-      operationPermission: '发布',
-      description: '设备主动拉取固件升级信息'
-    },
-    {
-      function: '设备标签',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/deviceinfo/update`,
-      operationPermission: '发布',
-      description: '设备上报标签数据'
-    },
-    {
-      function: '设备标签',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/deviceinfo/update_reply`,
-      operationPermission: '订阅',
-      description: '云端响应标签上报'
-    },
-    {
-      function: '设备标签',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/deviceinfo/delete`,
-      operationPermission: '订阅',
-      description: '设备删除标签信息'
-    },
-    {
-      function: '设备标签',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/deviceinfo/delete_reply`,
-      operationPermission: '订阅',
-      description: '云端响应标签删除'
-    },
-    {
-      function: '时钟同步',
-      topicClass: `/ext/ntp/${props.product.productKey}/\${deviceName}/request`,
-      operationPermission: '发布',
-      description: 'NTP 时钟同步请求'
-    },
-    {
-      function: '时钟同步',
-      topicClass: `/ext/ntp/${props.product.productKey}/\${deviceName}/response`,
-      operationPermission: '订阅',
-      description: 'NTP 时钟同步响应'
-    },
-    {
-      function: '设备影子',
-      topicClass: `/shadow/update/${props.product.productKey}/\${deviceName}`,
-      operationPermission: '发布',
-      description: '设备影子发布'
-    },
-    {
-      function: '设备影子',
-      topicClass: `/shadow/get/${props.product.productKey}/\${deviceName}`,
-      operationPermission: '订阅',
-      description: '设备接收影子变更'
-    },
-    {
-      function: '配置更新',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/config/push`,
-      operationPermission: '订阅',
-      description: '云端主动下推配置信息'
-    },
-    {
-      function: '配置更新',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/config/get`,
-      operationPermission: '发布',
-      description: '设备端查询配置信息'
-    },
-    {
-      function: '配置更新',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/config/get_reply`,
-      operationPermission: '订阅',
-      description: '云端响应配置信息'
-    },
-    {
-      function: '广播',
-      topicClass: `/broadcast/${props.product.productKey}/\${identifier}`,
-      operationPermission: '订阅',
-      description: '广播 Topic,identifier 为用户自定义字符串'
-    }
-  ]
-})
-
-// 物模型通信 Topic 列
-const functionColumn = reactive([
-  { label: '功能', field: 'function', width: 150 },
-  { label: 'Topic 类', field: 'topicClass', width: 800 },
-  { label: '操作权限', field: 'operationPermission', width: 100 },
-  { label: '描述', field: 'description' }
-])
-
-// 物模型通信 Topic 数据
-const functionData = computed(() => {
-  if (!props.product || !props.product.productKey) return []
-  return [
-    {
-      function: '属性上报',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/event/property/post`,
-      operationPermission: '发布',
-      description: '设备属性上报'
-    },
-    {
-      function: '属性上报',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/event/property/post_reply`,
-      operationPermission: '订阅',
-      description: '云端响应属性上报'
-    },
-    {
-      function: '属性设置',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/service/property/set`,
-      operationPermission: '订阅',
-      description: '设备属性设置'
-    },
-    {
-      function: '事件上报',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/event/\${tsl.event.identifier}/post`,
-      operationPermission: '发布',
-      description: '设备事件上报'
-    },
-    {
-      function: '事件上报',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/event/\${tsl.event.identifier}/post_reply`,
-      operationPermission: '订阅',
-      description: '云端响应事件上报'
-    },
-    {
-      function: '服务调用',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/service/\${tsl.service.identifier}`,
-      operationPermission: '订阅',
-      description: '设备服务调用'
-    },
-    {
-      function: '服务调用',
-      topicClass: `/sys/${props.product.productKey}/\${deviceName}/thing/service/\${tsl.service.identifier}_reply`,
-      operationPermission: '发布',
-      description: '设备端响应服务调用'
-    }
-  ]
-})
-
-// 通用的单元格合并方法生成器
-const createSpanMethod = (data: any[]) => {
-  // 预处理,计算每个功能的合并行数
-  const rowspanMap: Record<number, number> = {}
-  let currentFunction = ''
-  let startIndex = 0
-  let count = 0
-
-  data.forEach((item, index) => {
-    if (item.function !== currentFunction) {
-      if (count > 0) {
-        rowspanMap[startIndex] = count
-      }
-      currentFunction = item.function
-      startIndex = index
-      count = 1
-    } else {
-      count++
-    }
-  })
-
-  // 处理最后一组
-  if (count > 0) {
-    rowspanMap[startIndex] = count
-  }
-
-  // 返回 span 方法
-  return ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
-    if (columnIndex === 0) {
-      // 仅对“功能”列进行合并
-      const rowspan = rowspanMap[rowIndex] || 0
-      if (rowspan > 0) {
-        return {
-          rowspan,
-          colspan: 1
-        }
-      } else {
-        return {
-          rowspan: 0,
-          colspan: 0
-        }
-      }
-    }
-  }
-}
-</script>

+ 0 - 4
src/views/iot/product/product/detail/index.vue

@@ -5,9 +5,6 @@
       <el-tab-pane label="产品信息" name="info">
         <ProductDetailsInfo v-if="activeTab === 'info'" :product="product" />
       </el-tab-pane>
-      <el-tab-pane label="Topic 类列表" name="topic">
-        <ProductTopic v-if="activeTab === 'topic'" :product="product" />
-      </el-tab-pane>
       <el-tab-pane label="功能定义" lazy name="thingModel">
         <IoTProductThingModel ref="thingModelRef" />
       </el-tab-pane>
@@ -21,7 +18,6 @@ import { ProductApi, ProductVO } from '@/api/iot/product/product'
 import { DeviceApi } from '@/api/iot/device/device'
 import ProductDetailsHeader from './ProductDetailsHeader.vue'
 import ProductDetailsInfo from './ProductDetailsInfo.vue'
-import ProductTopic from './ProductTopic.vue'
 import IoTProductThingModel from '@/views/iot/thingmodel/index.vue'
 import { useTagsViewStore } from '@/store/modules/tagsView'
 import { useRouter } from 'vue-router'