diff --git a/public/images/device/button.png b/public/images/device/instance/button.png similarity index 100% rename from public/images/device/button.png rename to public/images/device/instance/button.png diff --git a/src/api/device/instance.ts b/src/api/device/instance.ts index b1d01908..ceb17116 100644 --- a/src/api/device/instance.ts +++ b/src/api/device/instance.ts @@ -120,3 +120,50 @@ export const update = (data: Partial) => data.id ? server.patch( * @returns */ export const getConfigMetadata = (id: string) => server.get(`/device-instance/${id}/config-metadata`) + +/** + * 断开连接 + * @param id 设备id + * @returns + */ +export const _disconnect = (id: string) => server.post(`/device-instance/${id}/disconnect`) + +/** + * 查询用户列表 + * @returns + */ +export const queryUserListNoPaging = () => server.post(`/user/_query/no-paging`, { + paging: false, + sorts: [{name: 'name', order: "asc"}] +}) + +/** + * 保存设备关系 + * @param id 设备id + * @param data + * @returns + */ +export const saveRelations = (id: string, data: Record) => server.patch(`/device/instance/${id}/relations`, data) + +/** + * 修改标签 + * @param id 设备id + * @param data + * @returns + */ +export const saveTags = (id: string, data: Record) => server.patch(`/device/instance/${id}/tag`, data) + +/** + * 删除标签 + * @param deviceId 设备id + * @param id 标签id + * @returns + */ +export const delTags = (deviceId: string, id: string) => server.remove(`/device/instance/${deviceId}/tag/${id}`) + +/** + * 恢复默认配置 + * @param deviceId 设备id + * @returns + */ +export const configurationReset = (deviceId: string) => server.put(`/device-instance/${deviceId}/configuration/_reset`) \ No newline at end of file diff --git a/src/components/Table/index.tsx b/src/components/Table/index.tsx index 1a37be86..fb778495 100644 --- a/src/components/Table/index.tsx +++ b/src/components/Table/index.tsx @@ -333,7 +333,7 @@ const JTable = defineComponent({ total={total.value} showQuickJumper={false} showSizeChanger={true} - current={pageIndex.value} + current={pageIndex.value + 1} pageSize={pageSize.value} pageSizeOptions={['12', '24', '48', '60', '100']} showTotal={(num) => { @@ -345,7 +345,7 @@ const JTable = defineComponent({ handleSearch({ ...props.params, pageSize: size, - pageIndex: pageSize.value === size ? page : 0 + pageIndex: pageSize.value === size ? (page ? page - 1 : 0) : 0 }) }} /> diff --git a/src/views/device/Instance/Detail/Info/components/Config/index.vue b/src/views/device/Instance/Detail/Info/components/Config/index.vue index f22eabaa..4d7b0d78 100644 --- a/src/views/device/Instance/Detail/Info/components/Config/index.vue +++ b/src/views/device/Instance/Detail/Info/components/Config/index.vue @@ -4,8 +4,12 @@
配置
编辑 - 应用配置 - 恢复默认 + + 应用配置 + + + 恢复默认 + @@ -28,7 +32,8 @@ \ No newline at end of file diff --git a/src/views/device/Instance/Detail/Info/components/Relation/Save.vue b/src/views/device/Instance/Detail/Info/components/Relation/Save.vue new file mode 100644 index 00000000..bf7db937 --- /dev/null +++ b/src/views/device/Instance/Detail/Info/components/Relation/Save.vue @@ -0,0 +1,125 @@ + + + \ No newline at end of file diff --git a/src/views/device/Instance/Detail/Info/components/Relation/index.vue b/src/views/device/Instance/Detail/Info/components/Relation/index.vue index 2fa91436..293fddd2 100644 --- a/src/views/device/Instance/Detail/Info/components/Relation/index.vue +++ b/src/views/device/Instance/Detail/Info/components/Relation/index.vue @@ -7,17 +7,27 @@ {{ item?.related ? (item?.related || []).map(i => i.name).join(',') : '' }} + diff --git a/src/views/device/Instance/Detail/Info/components/Tags/Save.vue b/src/views/device/Instance/Detail/Info/components/Tags/Save.vue new file mode 100644 index 00000000..dafe416a --- /dev/null +++ b/src/views/device/Instance/Detail/Info/components/Tags/Save.vue @@ -0,0 +1,117 @@ + + + \ No newline at end of file diff --git a/src/views/device/Instance/Detail/Info/components/Tags/index.vue b/src/views/device/Instance/Detail/Info/components/Tags/index.vue index b672f699..f197d60f 100644 --- a/src/views/device/Instance/Detail/Info/components/Tags/index.vue +++ b/src/views/device/Instance/Detail/Info/components/Tags/index.vue @@ -1,3 +1,34 @@ \ No newline at end of file +
+ + + {{ item?.value }} + + +
+ + + diff --git a/src/views/device/Instance/Detail/index.vue b/src/views/device/Instance/Detail/index.vue index b4c055b5..d9f2f0e5 100644 --- a/src/views/device/Instance/Detail/index.vue +++ b/src/views/device/Instance/Detail/index.vue @@ -1,7 +1,40 @@ @@ -9,9 +42,18 @@ import { useInstanceStore } from '@/store/instance'; import Info from './Info/index.vue'; import Metadata from '../../components/Metadata/index.vue'; +import { _deploy, _disconnect } from '@/api/device/instance' +import { message } from 'ant-design-vue'; +import { getImage } from '@/utils/comm'; + const route = useRoute(); const instanceStore = useInstanceStore() +const statusMap = new Map(); +statusMap.set('online', 'processing'); +statusMap.set('offline', 'error'); +statusMap.set('notActive', 'warning'); + const list = [ { key: 'Info', @@ -46,4 +88,35 @@ const onBack = () => { const onTabChange = (e: string) => { instanceStore.tabActiveKey = e } + +const handleAction = async () => { + if(instanceStore.current.id){ + const resp = await _deploy(instanceStore.current.id) + if(resp.status === 200){ + message.success('操作成功!') + instanceStore.refresh(instanceStore.current.id) + } + } +} + +const handleDisconnect = async () => { + if(instanceStore.current.id){ + const resp = await _disconnect(instanceStore.current.id) + if(resp.status === 200){ + message.success('操作成功!') + instanceStore.refresh(instanceStore.current.id) + } + } +} + +const handleRefresh = async () => { + if(instanceStore.current.id){ + await instanceStore.refresh(instanceStore.current.id) + message.success('操作成功') + } +} + +const jumpProduct = () => { + message.warn('暂未开发') +} \ No newline at end of file diff --git a/src/views/device/Instance/index.vue b/src/views/device/Instance/index.vue index fb842bec..52fd4ef4 100644 --- a/src/views/device/Instance/index.vue +++ b/src/views/device/Instance/index.vue @@ -101,8 +101,8 @@ :actions="getActions(slotProps, 'card')" v-bind="slotProps" :active="_selectedRowKeys.includes(slotProps.id)" - :status="slotProps.state.value" - :statusText="slotProps.state.text" + :status="slotProps.state?.value" + :statusText="slotProps.state?.text" :statusNames="{ online: 'success', offline: 'error', @@ -126,7 +126,7 @@
设备类型
-
{{ slotProps.deviceType.text }}
+
{{ slotProps.deviceType?.text }}
产品名称
@@ -151,7 +151,7 @@ /> @@ -166,7 +166,7 @@ /> @@ -176,8 +176,8 @@