diff --git a/src/api/fishery/device/index.ts b/src/api/fishery/device/index.ts index 5790e11..aba5e82 100644 --- a/src/api/fishery/device/index.ts +++ b/src/api/fishery/device/index.ts @@ -16,6 +16,19 @@ export const listDevice = (query?: DeviceQuery): AxiosPromise => { }); }; +/** + * 查询太阳能网控设备列表 + * @param query + * @returns {*} + */ +export const listSolarDevice = (query?: DeviceQuery): AxiosPromise => { + return request({ + url: '/fishery/device/solar/list', + method: 'get', + params: query + }); +}; + /** * 查询设备管理详细 * @param id diff --git a/src/api/fishery/device/types.ts b/src/api/fishery/device/types.ts index c38ce67..838d2e2 100644 --- a/src/api/fishery/device/types.ts +++ b/src/api/fishery/device/types.ts @@ -234,6 +234,11 @@ export interface DeviceVO { */ pondName?: string; + /** + * 在线状态(online/offline) + */ + onlineStatus?: string; + /** * 创建时间(激活时间) */ diff --git a/src/api/iot/index.ts b/src/api/iot/index.ts new file mode 100644 index 0000000..41e423c --- /dev/null +++ b/src/api/iot/index.ts @@ -0,0 +1,38 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; + +export interface SolarPropertyCommand { + id: string | number; + properties: Record; + cache?: boolean; +} + +export interface SolarPropertyCommandResult { + deviceId: string | number; + serialNum: string; + online: boolean; + statusCode?: number; + properties: Record; + mode: 'direct' | 'cached'; + cached: boolean; + sent: boolean; +} + +export const getDeviceStatus = (devicetype: number, serialnum: string): AxiosPromise => { + return request({ + url: '/iot/device/status', + method: 'get', + params: { + devicetype, + serialnum + } + }); +}; + +export const sendSolarPropertyCommand = (data: SolarPropertyCommand): AxiosPromise => { + return request({ + url: '/iot/device/solar/property-command', + method: 'post', + data + }); +}; diff --git a/src/types/components.d.ts b/src/types/components.d.ts index ac54d2b..e4501a4 100644 --- a/src/types/components.d.ts +++ b/src/types/components.d.ts @@ -13,6 +13,7 @@ declare module 'vue' { Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default'] DictTag: typeof import('./../components/DictTag/index.vue')['default'] Editor: typeof import('./../components/Editor/index.vue')['default'] + ElAlert: typeof import('element-plus/es')['ElAlert'] ElBadge: typeof import('element-plus/es')['ElBadge'] ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb'] ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem'] @@ -42,6 +43,7 @@ declare module 'vue' { ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElOption: typeof import('element-plus/es')['ElOption'] + ElOptionGroup: typeof import('element-plus/es')['ElOptionGroup'] ElPagination: typeof import('element-plus/es')['ElPagination'] ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadio: typeof import('element-plus/es')['ElRadio'] diff --git a/src/views/fishery/solarControl/index.vue b/src/views/fishery/solarControl/index.vue new file mode 100644 index 0000000..fc15c06 --- /dev/null +++ b/src/views/fishery/solarControl/index.vue @@ -0,0 +1,612 @@ + + + + +