diff --git a/api/100J/HBY100-J.js b/api/100J/HBY100-J.js index 7a3ca1d..2666c89 100644 --- a/api/100J/HBY100-J.js +++ b/api/100J/HBY100-J.js @@ -24,10 +24,68 @@ export function deviceDeleteAudioFile(params) { }) } +// 更新语音,使用语音 +export function deviceUpdateVoice(data) { + return request({ + url: `/app/hby100j/device/updateVoice`, + method: 'post', + data:data + }) +} // 100J信息 export function deviceDetail(id) { return request({ - url: `/app/hby100/device/${id}`, + url: `/app/hby100j/device/${id}`, method: 'get', }) +} +// 爆闪模式 +export function deviceStrobeMode(data) { + return request({ + url: `/app/hby100j/device/strobeMode`, + method: 'post', + data:data + }) +} + +// 强制报警 +export function deviceForceAlarmActivation(data) { + return request({ + url: `/app/hby100j/device/forceAlarmActivation`, + method: 'post', + data:data + }) +} +// 爆闪频率 +export function deviceStrobeFrequency(data) { + return request({ + url: `/app/hby100j/device/strobeFrequency`, + method: 'post', + data:data + }) +} +// 灯光调节亮度 +export function deviceLightAdjustment(data) { + return request({ + url: `/app/hby100j/device/lightAdjustment`, + method: 'post', + data:data + }) +} + +// 调节音量 +export function deviceUpdateVolume(data) { + return request({ + url: `/app/hby100j/device/updateVolume`, + method: 'post', + data:data + }) +} +// 语音播放 +export function deviceVoiceBroadcast(data) { + return request({ + url: `/app/hby100j/device/voiceBroadcast`, + method: 'post', + data:data + }) } \ No newline at end of file diff --git a/config/index.js b/config/index.js index 6ec3377..cea2bed 100644 --- a/config/index.js +++ b/config/index.js @@ -2,7 +2,7 @@ const config = { // 开发环境 development: { - BASE_URL: 'http://192.168.110.57:8000',//http://139.224.253.23:8000 + BASE_URL: 'http://192.168.110.172:8000',//http://139.224.253.23:8000 API_PREFIX: '', // MQTT 配置 MQTT_HOST: 'www.cnxhyc.com', diff --git a/pages/100J/HBY100-J.vue b/pages/100J/HBY100-J.vue index 8731117..79fd685 100644 --- a/pages/100J/HBY100-J.vue +++ b/pages/100J/HBY100-J.vue @@ -40,19 +40,19 @@ 设备状态 - {{ deviceInfo.onlineStatus === 0 ? '离线' : deviceInfo.onlineStatus === 2 ? '故障' : '在线' }} + {{ deviceInfo.onlineStatus === 0 ? '离线' : deviceInfo.onlineStatus + === 2 ? '故障' : '在线' }} 定位信息 - - + + {{ deviceInfo && deviceInfo.longitude ? Number(deviceInfo.longitude).toFixed(4) : '' }} {{ deviceInfo && deviceInfo.latitude ? Number(deviceInfo.latitude).toFixed(4) : '' }} - - + + {{ deviceInfo.address }} @@ -62,7 +62,7 @@ - {{ formData.sta_SOSType === 1 ? '报警中' : '强制报警' }} + {{ deviceInfo.chargeState === 1 ? '报警中' : '强制报警' }} 解除 @@ -97,19 +97,18 @@ - + - - 播放语音 - @@ -161,27 +160,21 @@ 频率 {{ formData.sta_LightFreq }}HZ - - 音量 {{ formData.sta_VoiceVolume }} - - - - 产品信息 @@ -202,7 +195,6 @@ - { @@ -502,9 +508,9 @@ }, success: (res) => { let json = { - persissonType: '670' + persissonType: '100J' }; - + Object.assign(json, this.deviceInfo); res.eventChannel.emit('share', { data: json }); @@ -516,18 +522,7 @@ if (this.Status.apiType !== 'listA') {} uni.navigateTo({ url: '/pages/100J/audioManager/AudioList', - events: { - audioApply: function(id) { - //应用某个语音时,将数据发送给设备 - console.log("准备发送数据", id); - showLoading(these, { - text: '准备发送数据' - }); - these.audioData.hexs = uni.getStorageSync(Common.pcmStorageKey + "_" + id); - console.log("hexs.length=", these.audioData.hexs.length) - these.HoldYouHand(); - } - }, + events: {}, success: (res) => { // 页面跳转成功后的回调函数 res.eventChannel.emit('deviceData', { @@ -539,17 +534,153 @@ //频率 onFreqChanging(e) { this.formData.sta_LightFreq = e.detail.value; + this.throttledFreqChange(e.detail.value); }, //音量 onVolumeChanging(e) { this.formData.sta_VoiceVolume = e.detail.value; + this.throttledVolumeChange(e.detail.value); }, + // 亮度调节 onBrightnessChanging(e) { this.formData.sta_LightDimmer = e.detail.value; + this.throttledBrightnessChange(e.detail.value); }, + // 亮度调节 + handleBrightnessChange(brightnessValue) { + let data = { + deviceId: this.deviceInfo.deviceId, + brightness: brightnessValue + }; + console.log('发送亮度调节请求:', data); + deviceLightAdjustment(data).then((res) => { + if (res.code === 200) { + console.log('亮度调节成功'); + uni.showToast({ + title: res.msg, + icon: 'none', + duration: 1000 + }); + } else { + uni.showToast({ + title: res.msg || '调节失败', + icon: 'none', + duration: 1000 + }); + } + }).catch((err) => { + + }); + }, + // 频率调节 + handleFreqChange(freqValue) { + let data = { + deviceId: this.deviceInfo.deviceId, + frequency: freqValue + }; + + deviceStrobeFrequency(data).then((res) => { + if (res.code === 200) { + uni.showToast({ + title: res.msg, + icon: 'none', + duration: 1000 + }); + } else { + uni.showToast({ + title: res.msg || '调节失败', + icon: 'none', + duration: 1000 + }); + } + }).catch((err) => {}); + }, + // 音量调节处理函数 + handleVolumeChange(volumeValue) { + let data = { + deviceId: this.deviceInfo.deviceId, + volume: volumeValue + }; + deviceUpdateVolume(data).then((res) => { + if (res.code === 200) { + uni.showToast({ + title: res.msg, + icon: 'none', + duration: 1000 + }); + } else { + uni.showToast({ + title: res.msg, + icon: 'none', + duration: 1000 + }); + } + }).catch((err) => {}); + }, + // 节流函数 + throttle(func, delay = 500) { + let timer = null; + let lastArgs = null; + let lastThis = null; + return function(...args) { + lastArgs = args; + lastThis = this; + if (!timer) { + timer = setTimeout(() => { + timer = null; + func.apply(lastThis, lastArgs); + }, delay); + } + }; + + }, + // *******定位****** + gpsPosition(item) { + // 添加调试日志 + uni.navigateTo({ + url: '/pages/common/map/index', + events: { + ack: function(data) {} + }, + success: (res) => { + res.eventChannel.emit('Map', { + data: item + }); + } + }) + }, + // 警示灯开关闭 lightTypeSet(item, index) { - this.formData.sta_LightType = item.key; + let val = item.key; + // 切换选中/取消选中逻辑 + if (this.formData.sta_LightType === val) { + val = '-1'; + } + this.formData.sta_LightType = val; + let data = { + deviceId: this.deviceInfo.deviceId, + // 开启/关闭:选中模式时传1,关闭时传0 + enable: val === '-1' ? 0 : 1, + // 0 红色爆闪,1 蓝色爆闪,2 黄色爆闪,3,红色顺时针旋转爆闪,4黄色顺时针旋转爆闪,5,红蓝顺时针旋转爆闪,6 红蓝交替爆闪 + mode: item.key + }; + deviceStrobeMode(data).then((res) => { + if (res.code == 200) { + const tipText = data.enable === 1 ? '开启成功' : '关闭成功'; + uni.showToast({ + title: tipText, + icon: 'none', + duration: 1000 + }); + } else { + uni.showToast({ + title: res.msg, + icon: 'none', + duration: 1000 + }); + } + }) }, // 报警模式 setUsrToggle() { @@ -557,22 +688,48 @@ }, // 播放语音 openVolume(item, index) { - if (item) { - console.log(item.key, 'keyyy'); - this.formData.sta_VoiceType = item.key; - } else if (index === '8') { // 点击“播放语音”的场景 - this.formData.sta_VoiceType = '8'; - + if (!item) { + item = this.dic.sta_VoiceType[index]; } + let val = item.key; + if (this.formData.sta_VoiceType === val) { + val = '-1'; + } + this.formData.sta_VoiceType = val; + console.log(this.formData.sta_VoiceType, 'this.formData.sta_VoiceType') + // 模式类型为7时才去判断 + if (val == '7') { + let data = { + deviceId: this.deviceInfo.deviceId, + voiceBroadcast: Number(this.formData.sta_VoiceType) === -1 ? 0 : 1 + } + deviceVoiceBroadcast(data).then((res) => { + if (res.code == 200) { + uni.showToast({ + title: res.msg, + icon: 'none' + }); + } else { + uni.showToast({ + title: res.msg, + icon: 'none' + }); + } + }) + } + }, // 报警模式 sosSetting(item) { + console.log(this.deviceInfo, '44444'); + console.log(item, 'tent'); const isClose = item === 0; if (!this.Status) this.Status = {}; if (!this.Status.Pop) this.Status.Pop = { showPop: false }; - //弹窗配置 + + // 弹窗配置 this.Status.Pop = { ...this.Status.Pop, showPop: true, @@ -583,10 +740,31 @@ showCancel: true, buttonCancelText: '取消', okCallback: () => { - this.formData.sta_SOSType = item; - uni.showToast({ - title: isClose ? '声光报警已解除' : '强制报警已开启', - icon: 'none' + console.log(this.formData.sta_SOSType, 'this.formData.sta_SOSType'); + this.formData.sta_SOSType = isClose ? 0 : 1; + const data = { + deviceIds: [this.deviceInfo.deviceId], + // 声光报警开关:关闭传0,开启传1 + voiceStrobeAlarm: isClose ? 0 : 1, + mode: this.formData.sta_VoiceType + }; + deviceForceAlarmActivation(data).then((res) => { + if (res.code === 200) { + uni.showToast({ + title: isClose ? '声光报警已解除' : '强制报警已开启', + icon: 'none' + }); + } else { + uni.showToast({ + title: res.msg, + icon: 'none' + }); + } + }).catch((err) => { + uni.showToast({ + title: '请求失败,请重试', + icon: 'none' + }); }); } }; @@ -597,7 +775,6 @@ bleStateBreak() {}, bleStateRecovry() {}, previewImg(img) {}, - bleValueNotify: function(receive, device, path, recArr) { //订阅消息 if (receive.deviceId !== this.formData.deviceId) { return; @@ -792,7 +969,7 @@ border-radius: 16rpx; background: rgba(26, 26, 26, 1); box-sizing: border-box; - padding: 14rpx 0rpx; + padding: 15rpx 0rpx 40rpx 0rpx; } .eqinfo .item { @@ -824,11 +1001,18 @@ font-family: PingFang SC; font-size: 28rpx; font-weight: 400; - letter-spacing: 0.07px; text-align: left; } + .eqinfo .info-value { + margin-top: 30rpx; + } + + .eqinfo .status-running { + color: rgba(174, 214, 0, 1); + } + .lamp { margin-top: 24rpx; } diff --git a/pages/100J/audioManager/AudioList.vue b/pages/100J/audioManager/AudioList.vue index 5ebbf95..5f86a66 100644 --- a/pages/100J/audioManager/AudioList.vue +++ b/pages/100J/audioManager/AudioList.vue @@ -1,6 +1,6 @@