| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367 |
- import {
- addDevice,
- addSubDevice,
- delDevice,
- delDeviceMul,
- delDeviceTag,
- getDeviceById,
- getDeviceCount,
- getDeviceList,
- getDeviceMsgList,
- addDeviceMsg,
- getDeviceTag,
- getSubDeviceList,
- updateDeviceLabel,
- addDeviceCmd,
- getDeviceCmdList,
- addDeviceTag,
- addDeviceGroup,
- listDeviceGroup,
- postGroupBindDevice,
- delGroupBindDevice,
- getDeviceByGroup,
- getDevicePage,
- delSubDevice,
- getDeviceAttribute,
- getDevicShadow,
- getDeviceTopology,
- getDeviceSession,
- getDeviceAttributes,
- getDeviceSecret,
- getOtaByDeviceId,
- otaUpgradationRecordByDeviceId,
- upgradationOtaByDeviceId,
- liveById,
- liveControlRts,
- liveCustomRtsUrl,
- getDeviceLabelsByLabel,
- removeDeviceByGroup, deviceSimulator, exportDeviceExcel
- } from '@/api/iot/device'
- import { DeviceMsgEnum, OtaStatusEnum } from '@/enum/common'
- import { message } from 'ant-design-vue'
- import dayjs from 'dayjs'
- import { number } from 'echarts'
- export class DeviceContriller {
- static deviceStatus = [
- { name: '初始化', key: 'INIT' },
- { name: '链接中', key: 'CONNECT' },
- { name: '断开链接', key: 'DISCONNECT' },
- { name: '禁止连接', key: 'DISABLED' }
- ]
- static transDeviceCountMap = new Map([
- ['TOTAL', { label: '总数', color: 'green' }],
- ['DISABLED', { label: '禁用数', color: 'grey' }],
- ['INIT', { label: '初始化状态数', color: 'orange' }],
- ['CONNECT', { label: '连接数', color: 'skyblue' }],
- ['DISCONNECT', { label: '断开连接数', color: 'red' }]
- ])
- static deviceStatusMap = new Map([
- ['INIT', { color: 'cyan', name: '初始化', key: 'INIT' }],
- ['CONNECT', { color: '#87d068', name: '链接中', key: 'CONNECT' }],
- ['DISCONNECT', { color: '#f50', name: '断开链接', key: 'DISCONNECT' }],
- ['DISABLED', { color: 'grey', name: '禁止连接', key: 'DISABLED' }]
- ])
- static deviceMag = new Map([
- [DeviceMsgEnum.QUEUED, { name: '队列中', key: DeviceMsgEnum.QUEUED }],
- [DeviceMsgEnum.SENT, { name: '已发送', key: DeviceMsgEnum.SENT }],
- [DeviceMsgEnum.DELIVERED, { name: '设备收到', key: DeviceMsgEnum.DELIVERED }],
- [DeviceMsgEnum.TIMEOUT, { name: '超时', key: DeviceMsgEnum.TIMEOUT }],
- [DeviceMsgEnum.FAILED, { name: '失败', key: DeviceMsgEnum.FAILED }]
- ])
- static searchKeyList = [
- { name: '设备ID', key: 'deviceId' },
- { name: '设备标识码', key: 'deviceCode' },
- { name: '设备名称', key: 'deviceLabel' }
- ]
- static otaStatusMap = new Map([
- [OtaStatusEnum.QUEUED, { key: OtaStatusEnum.QUEUED, label: '在消息队列中', color: 'orange' }],
- [OtaStatusEnum.SENT, { key: OtaStatusEnum.SENT, label: '已经发送', color: 'blue' }],
- [OtaStatusEnum.DELIVERED, { key: OtaStatusEnum.DELIVERED, label: '设备已收到', color: 'pink' }],
- [OtaStatusEnum.SUCCESSFUL, { key: OtaStatusEnum.SUCCESSFUL, label: '成功', color: 'green' }],
- [OtaStatusEnum.TIMEOUT, { key: OtaStatusEnum.TIMEOUT, label: '超时', color: 'red' }],
- [OtaStatusEnum.FAILED, { key: OtaStatusEnum.FAILED, label: '失败', color: 'grey' }]
- ])
- static otaStatusList = [
- { key: OtaStatusEnum.QUEUED, label: '在消息队列中' },
- { key: OtaStatusEnum.SENT, label: '已经发送' },
- { key: OtaStatusEnum.DELIVERED, label: '设备已收到' },
- { key: OtaStatusEnum.SUCCESSFUL, label: '成功' },
- { key: OtaStatusEnum.TIMEOUT, label: '超时' },
- { key: OtaStatusEnum.FAILED, label: '失败' }
- ]
- static async page (params: IOT.API.DEVICE.QueryPamars) {
- const { data: _data, sum } = await getDevicePage(params)
- const data = _data.map(item => {
- return {
- ...item,
- deviceStatus: DeviceContriller.deviceStatusMap.get(item.deviceStatus)
- }
- })
- return {
- data,
- sum
- }
- }
- /**
- *
- * @param deviceStatus 传递对应的key,就只会返回对应状态的设备,不填写返回全部
- * @returns
- */
- static async list (params: {modelId: string, deviceLabel: string, limit: number, lastId: string, deviceStatus: 'INIT' | 'CONNECT' | 'DISCONNECT' | 'DISABLED' | ''} = {
- modelId: '',
- deviceLabel: '',
- limit: 20,
- lastId: '',
- deviceStatus: ''
- }) {
- const data = await getDeviceList(params)
- return {
- ...data,
- data: params.deviceStatus === '' ? data.data : data.data.filter(item => item.deviceStatus === params.deviceStatus)
- }
- }
- static async post (data: IOT.API.DEVICE.BodyParams) {
- const { code } = await addDevice(data)
- if (code === 200) message.success('新增成功')
- }
- static async del (id: string | string[]) {
- if (typeof id === 'string') {
- await delDevice(id)
- } else {
- await delDeviceMul(id)
- }
- message.success('删除成功')
- }
- static async byId (id: string) {
- const { data } = await getDeviceById(id)
- return data
- }
- /** 分页获取子设备列表 */
- static async pageSub (id: string, params: IOT.API.DEVICE.QueryPamars) {
- return await getSubDeviceList(id, params)
- }
- /** 获取设备密匙 */
- static async secret (params: {deviceId: string, authType: 'SECRET' | 'X509CERT'}) {
- return await getDeviceSecret(params)
- }
- /** 新增子设备 */
- static async postSub (data: IOT.API.DEVICE.SubBodyParams) {
- const { code } = await addSubDevice(data)
- if (code === 200) message.success('新增成功')
- }
- static async delSub (id: string) {
- const { code } = await delSubDevice(id)
- if (code === 200) message.success('删除成功')
- }
- static async ListTag (params: {deviceId: number | string}) {
- return await getDeviceTag(params)
- }
- static async delTag (id: string) {
- const { code } = await delDeviceTag(id)
- if (code === 200) message.success('删除标签成功')
- }
- static async postTag (data: IOT.API.DEVICE.DeviceTag[]) {
- const { code } = await addDeviceTag(data)
- if (code === 200) message.success('新增标签成功')
- }
- static async updateLabel (data: {id: string, deviceLabel: string}) {
- const { code } = await updateDeviceLabel(data)
- if (code === 200) message.success('修改设备名称成功')
- }
- static async count () {
- return await getDeviceCount()
- }
- /** 设备统计 */
- static async statistics (params: {modelId: string}) {
- const { data } = await getDeviceCount(params)
- return Object.keys(data).map((key) => {
- return {
- key: key,
- label: DeviceContriller.transDeviceCountMap.get(key)?.label,
- color: DeviceContriller.transDeviceCountMap.get(key)?.color,
- value: data[key as keyof typeof data]
- }
- })
- }
- /** 消息下发 获取列表 */
- static async listDeviceMsg (params: {deviceId: string}) {
- const { data } = await getDeviceMsgList(params)
- return data
- }
- /** 消息下发 下发消息 */
- static async addDeviceMsg (data: {deviceId: string, msgPayload: string, msgLabel: string, topic: string}) {
- await addDeviceMsg(data)
- message.success('新增下发消息成功')
- }
- /** 命令下发 获取列表 */
- static async listDeviceCmd (params: {deviceId: string}) {
- const { data } = await getDeviceCmdList(params)
- return data
- }
- /** 命令下发 新增命令 */
- static async addDeviceCmd (data: { deviceId: string, cmdLabel: string, cmdParameters: any}) {
- const { code } = await addDeviceCmd(data)
- if (code === 200) message.success('新增命令成功')
- }
- /** 设备分组 新增分组 */
- static async postDeviceGroup (data: { groupLabel: string, upperGroupId: string }) {
- const { code } = await addDeviceGroup(data)
- if (code === 200) message.success('新增分组成功')
- }
- /** 设备分组 查询分组 */
- static async listDeviceGroup (params: { upperGroupId: string }) {
- return await listDeviceGroup(params)
- }
- static async removeDeviceGroup (params: string) {
- return await removeDeviceByGroup(params)
- }
- /** 设备分组 设备绑定分组 */
- static async postGroupBindDevice (data: { deviceGroupId: string, deviceId: string }[]) {
- const { code } = await postGroupBindDevice(data)
- if (code === 200) message.success('绑定成功')
- }
- /**
- * 此函数删除设备和设备组之间的绑定并显示成功消息。
- * @param data - 参数 `data` 是一个包含两个属性的对象:
- */
- static async delGroupBindDevice (data: { deviceGroupId: string, deviceId: string }[]) {
- const { code } = await delGroupBindDevice(data)
- if (code === 200) message.success('取消绑定成功')
- }
- /**
- * 此函数根据 TypeScript 中的组查询参数检索设备。
- * @param params -
- * 参数“params”的类型为“IOT.API.DEVICE.GroupQueryParams”,这可能是代码库中定义的接口或类型。它用作函数“getDeviceByGroup”的参数,该函数使用“await”关键字调用以生成函数
- * @returns 正在使用 params 参数调用 getDeviceByGroup 函数,并使用 return
- * 关键字返回该函数调用的结果。该函数被标记为“async”,因此它将返回一个解析为“getDeviceByGroup”函数调用结果的承诺。
- */
- static async getDeviceByGroup (params: IOT.API.DEVICE.GroupQueryParams) {
- return await getDeviceByGroup(params)
- }
- static async getLiveData (deviceId: string) {
- return await getDeviceAttribute(deviceId)
- }
- /** 获取设备属性 */
- static async getDeviceAttribute (deviceId: string) {
- return await getDeviceAttribute(deviceId)
- }
- static async getDevicShadow (deviceId: string) {
- return await getDevicShadow(deviceId)
- }
- static async getDeviceTopology (modelId: string) {
- return await getDeviceTopology(modelId)
- }
- static async getSession (params: {deviceId: string, start: number, end: number}) {
- const { data, sum } = await getDeviceSession(params)
- return {
- data: {
- sessionEntities: data.sessionEntities.map(item => {
- return {
- ...item,
- createAt: dayjs(item.createAt).format('YYYY/MM/DD HH:mm:ss')
- }
- }),
- offlineNum: data.offlineNum,
- onlineNum: data.onlineNum
- },
- sum
- }
- }
- static async getAttr (params: any) {
- return await getDeviceAttributes(params)
- }
- static async OtaByDeviceId (deviceId: string) {
- const data = await getOtaByDeviceId(deviceId)
- return {
- ...data,
- data: {
- ...data,
- otaTime: data.data.otaTime === 0 ? '尚未升级' : data.data.otaTime,
- otaPkgLabel: data.data.otaPkgLabel === '--' ? '尚未升级' : data.data.otaPkgLabel,
- otaPkgVersion: data.data.otaPkgVersion === '--' ? '尚未升级' : data.data.otaPkgVersion
- }
- }
- }
- static async OtaUpgradationRecordByDeviceId (params: IOT.API.DEVICE.OtaQueryParams) {
- const data = await otaUpgradationRecordByDeviceId(params)
- return {
- ...data,
- data: data.data.map(item => ({ ...item, otaTime: dayjs(item.otaTime).format('YYYY-MM-DD HH:mm:ss') }))
- }
- }
- static async upgradationOtaByDeviceId ({ deviceId, otaPkgId }: {deviceId: string, otaPkgId: string}) {
- await upgradationOtaByDeviceId(deviceId, otaPkgId)
- message.success('升级设备成功')
- }
- static async liveById (deviceId: string) {
- return liveById(deviceId)
- }
- static async liveControlRts (deviceId: string, channel: number) {
- return liveControlRts(deviceId, channel)
- }
- static async liveCustomRtsUrl (data: {id: string, rtsUrl: string}) {
- return liveCustomRtsUrl(data)
- }
- /**
- * @description 模糊查询:根据设备名称来查询全部的符合条件的设备名
- */
- static async labelsByLabel (deviceLabel: string) {
- return await getDeviceLabelsByLabel(deviceLabel)
- }
- static async deviceSimulator (data: { deviceId: string, payload: string }) {
- await deviceSimulator(data)
- }
- static async exportDeviceExcel (data: IOT.API.DEVICE.QueryPamars) {
- await exportDeviceExcel(data)
- }
- }
|