Showing
10 changed files
with
66 additions
and
13 deletions
| @@ -14,9 +14,9 @@ VITE_PUBLIC_PATH = / | @@ -14,9 +14,9 @@ VITE_PUBLIC_PATH = / | ||
| 14 | # VITE_PROXY = [["/api","http://101.133.234.90:8080/api"]] | 14 | # VITE_PROXY = [["/api","http://101.133.234.90:8080/api"]] |
| 15 | # 线上测试环境 | 15 | # 线上测试环境 |
| 16 | # VITE_PROXY = [["/api","http://localhost:8080/api"],["/thingskit-drawio","http://localhost:3000/"]] | 16 | # VITE_PROXY = [["/api","http://localhost:8080/api"],["/thingskit-drawio","http://localhost:3000/"]] |
| 17 | -# VITE_PROXY = [["/api","http://222.180.200.114:48080/api"],["/thingskit-drawio","http://localhost:3000/"]] | 17 | +VITE_PROXY = [["/api","http://222.180.200.114:48080/api"],["/thingskit-drawio","http://localhost:3000/"]] |
| 18 | # VITE_PROXY = [["/api","http://121.37.251.8:8080/api"],["/thingskit-drawio","http://localhost:3000/"]] | 18 | # VITE_PROXY = [["/api","http://121.37.251.8:8080/api"],["/thingskit-drawio","http://localhost:3000/"]] |
| 19 | -VITE_PROXY = [["/api","http://192.168.10.103:8080/api"],["/thingskit-drawio","http://192.168.10.136:8080/api"]] | 19 | +# VITE_PROXY = [["/api","http://192.168.10.103:8080/api"],["/thingskit-drawio","http://192.168.10.136:8080/api"]] |
| 20 | 20 | ||
| 21 | # 实时数据的ws地址 | 21 | # 实时数据的ws地址 |
| 22 | # VITE_WEB_SOCKET = ws://localhost:8080/api/ws/plugins/telemetry?token= | 22 | # VITE_WEB_SOCKET = ws://localhost:8080/api/ws/plugins/telemetry?token= |
| @@ -230,7 +230,7 @@ | @@ -230,7 +230,7 @@ | ||
| 230 | <Dropdown | 230 | <Dropdown |
| 231 | :dropMenuList="[ | 231 | :dropMenuList="[ |
| 232 | { | 232 | { |
| 233 | - text: '设计', | 233 | + text: '编辑', |
| 234 | auth: 'api:yt:configuration:center:update', | 234 | auth: 'api:yt:configuration:center:update', |
| 235 | icon: 'clarity:note-edit-line', | 235 | icon: 'clarity:note-edit-line', |
| 236 | onClick: handleCreateOrUpdate.bind(null, item), | 236 | onClick: handleCreateOrUpdate.bind(null, item), |
| @@ -219,7 +219,6 @@ | @@ -219,7 +219,6 @@ | ||
| 219 | }); | 219 | }); |
| 220 | send(sendValue); | 220 | send(sendValue); |
| 221 | send(sendValue1); | 221 | send(sendValue1); |
| 222 | - console.log('建立连接了'); | ||
| 223 | }, | 222 | }, |
| 224 | onMessage(_, e) { | 223 | onMessage(_, e) { |
| 225 | const { data, update } = JSON.parse(e.data); | 224 | const { data, update } = JSON.parse(e.data); |
| @@ -471,14 +470,17 @@ | @@ -471,14 +470,17 @@ | ||
| 471 | justify-content: center; | 470 | justify-content: center; |
| 472 | font-size: 16px; | 471 | font-size: 16px; |
| 473 | } | 472 | } |
| 473 | + | ||
| 474 | .active { | 474 | .active { |
| 475 | color: #0960bd; | 475 | color: #0960bd; |
| 476 | font-weight: 500; | 476 | font-weight: 500; |
| 477 | } | 477 | } |
| 478 | + | ||
| 478 | .extra-date { | 479 | .extra-date { |
| 479 | display: flex; | 480 | display: flex; |
| 480 | align-items: center; | 481 | align-items: center; |
| 481 | justify-content: space-between; | 482 | justify-content: space-between; |
| 483 | + | ||
| 482 | span { | 484 | span { |
| 483 | margin-right: 20px; | 485 | margin-right: 20px; |
| 484 | cursor: pointer; | 486 | cursor: pointer; |
| @@ -63,7 +63,6 @@ | @@ -63,7 +63,6 @@ | ||
| 63 | watch( | 63 | watch( |
| 64 | () => props.alarmList, | 64 | () => props.alarmList, |
| 65 | (newValue) => { | 65 | (newValue) => { |
| 66 | - console.log({ newValue, props }); | ||
| 67 | let alarmTotal = 0; | 66 | let alarmTotal = 0; |
| 68 | for (const item of props.alarmList) { | 67 | for (const item of props.alarmList) { |
| 69 | alarmTotal += Number(item[1]); | 68 | alarmTotal += Number(item[1]); |
| @@ -49,6 +49,12 @@ export const step1Schemas: FormSchema[] = [ | @@ -49,6 +49,12 @@ export const step1Schemas: FormSchema[] = [ | ||
| 49 | show: false, | 49 | show: false, |
| 50 | }, | 50 | }, |
| 51 | { | 51 | { |
| 52 | + field: 'deviceProfileId', | ||
| 53 | + label: '', | ||
| 54 | + component: 'Input', | ||
| 55 | + show: false, | ||
| 56 | + }, | ||
| 57 | + { | ||
| 52 | field: 'profileId', | 58 | field: 'profileId', |
| 53 | label: '所属产品', | 59 | label: '所属产品', |
| 54 | required: true, | 60 | required: true, |
| @@ -59,9 +65,12 @@ export const step1Schemas: FormSchema[] = [ | @@ -59,9 +65,12 @@ export const step1Schemas: FormSchema[] = [ | ||
| 59 | api: deviceProfile, | 65 | api: deviceProfile, |
| 60 | labelField: 'name', | 66 | labelField: 'name', |
| 61 | valueField: 'tbProfileId', | 67 | valueField: 'tbProfileId', |
| 62 | - onChange(_value: string, option: { deviceType: string; transportType: string }) { | ||
| 63 | - const { deviceType, transportType } = option; | ||
| 64 | - setFieldsValue({ deviceType: deviceType, transportType }); | 68 | + onChange( |
| 69 | + _value: string, | ||
| 70 | + option: { deviceType: string; transportType: string; id: string } | ||
| 71 | + ) { | ||
| 72 | + const { deviceType, transportType, id } = option; | ||
| 73 | + setFieldsValue({ deviceType: deviceType, transportType, deviceProfileId: id }); | ||
| 65 | }, | 74 | }, |
| 66 | }; | 75 | }; |
| 67 | }, | 76 | }, |
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | const props = defineProps<{ | 34 | const props = defineProps<{ |
| 35 | - deviceDetail: Record<'tbDeviceId' | 'profileId' | 'id', string>; | 35 | + deviceDetail: Record<'tbDeviceId' | 'profileId' | 'id' | 'deviceProfileId', string>; |
| 36 | }>(); | 36 | }>(); |
| 37 | 37 | ||
| 38 | const grid = { | 38 | const grid = { |
| @@ -137,8 +137,8 @@ | @@ -137,8 +137,8 @@ | ||
| 137 | 137 | ||
| 138 | const { send, close, data } = useWebSocket(socketInfo.origin, { | 138 | const { send, close, data } = useWebSocket(socketInfo.origin, { |
| 139 | async onConnected() { | 139 | async onConnected() { |
| 140 | - const { id, profileId } = props.deviceDetail; | ||
| 141 | - const value = await getDeviceAttrs(profileId, id); | 140 | + const { id, deviceProfileId } = props.deviceDetail; |
| 141 | + const value = await getDeviceAttrs(deviceProfileId, id); | ||
| 142 | socketInfo.attrKeys = value; | 142 | socketInfo.attrKeys = value; |
| 143 | send(JSON.stringify(unref(getSendValue))); | 143 | send(JSON.stringify(unref(getSendValue))); |
| 144 | }, | 144 | }, |
| @@ -28,7 +28,7 @@ export const formSchema: FormSchema[] = [ | @@ -28,7 +28,7 @@ export const formSchema: FormSchema[] = [ | ||
| 28 | }, | 28 | }, |
| 29 | }, | 29 | }, |
| 30 | { | 30 | { |
| 31 | - field: 'profileId', | 31 | + field: 'deviceProfileId', |
| 32 | label: '', | 32 | label: '', |
| 33 | component: 'ApiSelect', | 33 | component: 'ApiSelect', |
| 34 | componentProps: { | 34 | componentProps: { |
| @@ -13,6 +13,9 @@ | @@ -13,6 +13,9 @@ | ||
| 13 | <div class="absolute w-full h-full top-0 cursor-not-allowed"></div> | 13 | <div class="absolute w-full h-full top-0 cursor-not-allowed"></div> |
| 14 | </div> | 14 | </div> |
| 15 | </Tabs.TabPane> | 15 | </Tabs.TabPane> |
| 16 | + <Tabs.TabPane key="topic" tab="Topic"> | ||
| 17 | + <TopicPanel /> | ||
| 18 | + </Tabs.TabPane> | ||
| 16 | <Tabs.TabPane key="modelOfMatter" tab="物模型管理"> | 19 | <Tabs.TabPane key="modelOfMatter" tab="物模型管理"> |
| 17 | <PhysicalModelManagementStep :record="record" /> | 20 | <PhysicalModelManagementStep :record="record" /> |
| 18 | </Tabs.TabPane> | 21 | </Tabs.TabPane> |
| @@ -28,10 +31,11 @@ | @@ -28,10 +31,11 @@ | ||
| 28 | import { ref, unref } from 'vue'; | 31 | import { ref, unref } from 'vue'; |
| 29 | import { deviceConfigGetDetail } from '/@/api/device/deviceConfigApi'; | 32 | import { deviceConfigGetDetail } from '/@/api/device/deviceConfigApi'; |
| 30 | import { DeviceRecord } from '/@/api/device/model/deviceModel'; | 33 | import { DeviceRecord } from '/@/api/device/model/deviceModel'; |
| 34 | + import TopicPanel from './step/TopicPanel.vue'; | ||
| 31 | 35 | ||
| 32 | defineEmits(['register']); | 36 | defineEmits(['register']); |
| 33 | 37 | ||
| 34 | - type ActiveKey = 'product' | 'transport' | 'modelOfMatter'; | 38 | + type ActiveKey = 'product' | 'transport' | 'modelOfMatter' | 'topic'; |
| 35 | 39 | ||
| 36 | const activeKey = ref<ActiveKey>('modelOfMatter'); | 40 | const activeKey = ref<ActiveKey>('modelOfMatter'); |
| 37 | 41 |
| @@ -439,3 +439,26 @@ export const formSchema: FormSchema[] = [ | @@ -439,3 +439,26 @@ export const formSchema: FormSchema[] = [ | ||
| 439 | }, | 439 | }, |
| 440 | }, | 440 | }, |
| 441 | ]; | 441 | ]; |
| 442 | + | ||
| 443 | +export const topicTableColumn: BasicColumn[] = [ | ||
| 444 | + { | ||
| 445 | + title: '功能', | ||
| 446 | + dataIndex: 'function', | ||
| 447 | + width: 100, | ||
| 448 | + }, | ||
| 449 | + { | ||
| 450 | + title: 'Topic类', | ||
| 451 | + dataIndex: 'class', | ||
| 452 | + width: 100, | ||
| 453 | + }, | ||
| 454 | + { | ||
| 455 | + title: '操作权限', | ||
| 456 | + dataIndex: 'access', | ||
| 457 | + width: 100, | ||
| 458 | + }, | ||
| 459 | + { | ||
| 460 | + title: '描述', | ||
| 461 | + dataIndex: 'description', | ||
| 462 | + width: 100, | ||
| 463 | + }, | ||
| 464 | +]; |
| 1 | +<script lang="ts" setup> | ||
| 2 | + import { topicTableColumn } from '../device.profile.data'; | ||
| 3 | + import { BasicTable, useTable } from '/@/components/Table'; | ||
| 4 | + const [register] = useTable({ | ||
| 5 | + title: 'Topic', | ||
| 6 | + columns: topicTableColumn, | ||
| 7 | + bordered: true, | ||
| 8 | + showTableSetting: true, | ||
| 9 | + }); | ||
| 10 | +</script> | ||
| 11 | + | ||
| 12 | +<template> | ||
| 13 | + <section class="bg-gray-100 p-4 dark:bg-dark-900 w-full h-full"> | ||
| 14 | + <BasicTable @register="register" /> | ||
| 15 | + </section> | ||
| 16 | +</template> |