diff --git a/.env.development b/.env.development index f3bdb65..c3a3bd4 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ VITE_APP_TITLE = 云平台管理系统 VITE_APP_ENV = 'development' # 开发环境 -VITE_APP_BASE_API = 'http://192.168.2.34:8000' +VITE_APP_BASE_API = 'http://47.120.79.150/backend' # 应用访问路径 例如使用前缀 /admin/ VITE_APP_CONTEXT_PATH = '/' diff --git a/src/api/controlCenter/controlPanel/index.ts b/src/api/controlCenter/controlPanel/index.ts index aaadb77..6559dd8 100644 --- a/src/api/controlCenter/controlPanel/index.ts +++ b/src/api/controlCenter/controlPanel/index.ts @@ -66,14 +66,23 @@ export const sendAlarmMessage = (data: any) => { }); }; // 获取设备实时状态 -export const deviceRealTimeStatus = (data: any) => { +export const deviceRealTimeStatus = (params: any) => { return request({ url: `/api/device/realTimeStatus`, + method: 'get', + params: params + }); +}; +// 发送信息 +export const deviceSendMessage = (data: any) => { + return request({ + url: `/api/bjq/device/sendMessage`, method: 'post', data: data }); }; + export default { devicegroupList, deviceControlCenterList, @@ -83,5 +92,6 @@ export default { lightModeSettings, laserModeSettings, sendAlarmMessage, - deviceRealTimeStatus + deviceRealTimeStatus, + deviceSendMessage }; \ No newline at end of file diff --git a/src/api/controlCenter/controlPanel/types.ts b/src/api/controlCenter/controlPanel/types.ts index 4c2c090..3aa0852 100644 --- a/src/api/controlCenter/controlPanel/types.ts +++ b/src/api/controlCenter/controlPanel/types.ts @@ -8,7 +8,6 @@ export interface deviceQuery { deviceImei: string; currentOwnerId: string; communicationMode: string; - queryParams: string; pageSize: Number; deviceType: string diff --git a/src/views/controlCenter/6170/index.vue b/src/views/controlCenter/6170/index.vue index 16eb7df..ff007f7 100644 --- a/src/views/controlCenter/6170/index.vue +++ b/src/views/controlCenter/6170/index.vue @@ -46,9 +46,13 @@ % - 保存 + {{ + lightModesLoading ? '保存中' : '保存' }} - 强制报警 + {{ + forceAlarmLoading ? '报警中' : '强制报警' }}

位置信息

@@ -96,7 +100,9 @@
- 登记 + {{ + fullscreenLoading ? '登记中' : '登记' }} @@ -106,7 +112,9 @@
- 发送 + {{ + sendTextLoading ? '发送中' : '发送' }}
@@ -133,7 +141,11 @@ import laserLightDefault from '@/assets/images/laser-light.png'; import laserLightActive from '@/assets/images/laser-light_HL.png'; import closeDefault from '@/assets/images/close.png'; import closeActive from '@/assets/images/close_HL.png'; -import { send } from 'vite'; +const fullscreenLoading = ref(false) +const forceAlarmLoading = ref(false) //强制报警 +const sendTextLoading =ref(false) +const lightModesLoading =ref(false) + // 灯光模式数据(引用导入的图片) const lightModes = ref([ { @@ -350,18 +362,22 @@ const registerPostInit = () => { deviceId: route.params.deviceId, deviceImei: deviceDetail.value.deviceImei } + fullscreenLoading.value = true api.registerPersonInfo(data).then((res) => { console.log(res, 'res'); if (res.code === 200) { + fullscreenLoading.value = false proxy?.$modal.msgSuccess(res.msg); getList(); } else { + fullscreenLoading.value = false proxy?.$modal.msgError(res.msg); } }) } // 灯光亮度 const saveBtn = () => { + lightModesLoading.value = true let data = { deviceId: route.params.deviceId, instructValue: deviceDetail.value.lightBrightness + '.00', @@ -369,9 +385,11 @@ const saveBtn = () => { } api.lightBrightnessSettings(data).then((res) => { if (res.code === 200) { + lightModesLoading.value = false proxy?.$modal.msgSuccess(res.msg); getList(); } else { + lightModesLoading.value = false proxy?.$modal.msgError(res.msg); } @@ -380,6 +398,7 @@ const saveBtn = () => { // 强制报警 const forceAlarm = async () => { try { + forceAlarmLoading.value = true // 2. 准备请求数据 const batchId = generateShortId(); let data = { @@ -390,15 +409,81 @@ const forceAlarm = async () => { instructValue: '1', //强制报警1,解除报警0 } const registerRes = await api.sendAlarmMessage(data); - if (registerRes.code == 200) { - proxy?.$modal.msgSuccess(registerRes.msg); + if (registerRes.code !== 200) { + proxy?.$modal.msgWarning(registerRes.msg) + return + } + // 4. 获取设备状态 + let deviceImei = deviceDetail.value.deviceImei + let typeName = deviceDetail.value.typeName + const statusRes = await getDeviceStatus({ + functionMode: 2, + batchId, + typeName, + deviceImei, + interval: 500 + }, + api.deviceRealTimeStatus + ); + // 只有当状态为'OK'时才显示成功弹窗 + if (statusRes.data.functionAccess === 'OK') { + proxy?.$modal.msgSuccess(statusRes.msg); } - } catch (error:any) { - proxy?.$modal.msgError(error.msg); + } catch (error: any) { + proxy?.$modal.msgWarning(error.msg) - } finally {} + } finally { + forceAlarmLoading.value = false; + } } +// 发送文本消息 +const sendTextMessage = async () => { + // 防重复提交 + if (!deviceDetail.value.sendMsg) { + proxy?.$modal.msgWarning('发送信息不能为空'); + return; + } + try { + sendTextLoading.value = true; + // 2. 准备请求数据 + const batchId = generateShortId(); + const data = { + sendMsg: deviceDetail.value.sendMsg, + deviceIds: [route.params.deviceId], + typeName: deviceDetail.value.typeName, + batchId: batchId, + deviceImeiList: [deviceDetail.value.deviceImei], + }; + // 3.人员信息 + const registerRes = await api.deviceSendMessage(data); + if (registerRes.code !== 200) { + proxy?.$modal.msgWarning(registerRes.msg) + return + } + // 4. 获取设备状态 + let deviceImei = deviceDetail.value.deviceImei + let typeName = deviceDetail.value.typeName + const statusRes = await getDeviceStatus({ + functionMode: 2, + batchId, + typeName, + deviceImei, + interval: 500 + }, + api.deviceRealTimeStatus + ); + // 只有当状态为'OK'时才显示成功弹窗 + if (statusRes.data.functionAccess === 'OK') { + proxy?.$modal.msgSuccess(statusRes.msg); + } + } catch (error: any) { + proxy?.$modal.msgWarning(error.msg) + } finally { + sendTextLoading.value = false; + } +} + onMounted(() => { getList(); diff --git a/src/views/controlCenter/controlPanel/index.vue b/src/views/controlCenter/controlPanel/index.vue index 4341d81..c745037 100644 --- a/src/views/controlCenter/controlPanel/index.vue +++ b/src/views/controlCenter/controlPanel/index.vue @@ -156,7 +156,6 @@ const initData: PageData<'', deviceQuery> = { deviceImei: '', currentOwnerId: '', communicationMode: '', - queryParams: '', groupId: '', deviceType: '' },