From e771e3bfde4fe080d40d45bce11acdb0b2b0c864 Mon Sep 17 00:00:00 2001
From: Rain_ <904416525@qq.com>
Date: Mon, 17 Nov 2025 17:28:25 +0800
Subject: [PATCH] =?UTF-8?q?flx:=E6=8F=90=E4=BA=A4ai=E9=A2=84=E8=AD=A6?=
=?UTF-8?q?=E6=92=AD=E6=8A=A5=20=E6=89=B9=E9=87=8F=E7=A7=BB=E5=8A=A8?=
=?UTF-8?q?=E6=89=A7=E6=B3=95=E8=AE=B0=E5=BD=95=E4=BB=AA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/assets/js/api/bodyWornCamera.js | 2 +
src/components/message.vue | 56 +++++----
.../bodyWornCamera/bodyWornCamera.vue | 106 ++++++++++++++++++
.../configManage/notificationRuleSet.vue | 6 +
4 files changed, 147 insertions(+), 23 deletions(-)
diff --git a/src/assets/js/api/bodyWornCamera.js b/src/assets/js/api/bodyWornCamera.js
index a6713406..c58ba221 100644
--- a/src/assets/js/api/bodyWornCamera.js
+++ b/src/assets/js/api/bodyWornCamera.js
@@ -45,6 +45,8 @@ export const getPoliceCameraItemQueryByIdApi = data => get('xmgl/policeCameraIte
export const getPoliceCameraItemFilePageApi = data => get('xmgl/policeCameraItemFile/page', data);
// 批量删除执法记录仪文件信息
export const deleteBatchPoliceCameraItemFileApi = data => post('xmgl/policeCameraItemFile/deleteBatch', data);
+// 批量移动执法记录仪设备
+export const batchMovePoliceCameraItemApi = data => post('xmgl/policeCameraItem/batchMove', data);
// 查询单位部门班组tree列表
export const getEnterpriseDepartmentTeamTree = data => post('xmgl/enterpriseInfo/getEnterpriseDepartmentTeamTree', data);
diff --git a/src/components/message.vue b/src/components/message.vue
index fb7f29b3..a5110580 100644
--- a/src/components/message.vue
+++ b/src/components/message.vue
@@ -217,7 +217,7 @@ export default {
},
methods: {
selectNoticeRemindSound() {
- if(!this.$store.state.projectSn) return;
+ if (!this.$store.state.projectSn) return;
selectNoticeRemindSoundApi({
projectSn: this.$store.state.projectSn,
}).then((res) => {
@@ -288,14 +288,14 @@ export default {
this.messsageCenterDialog = true;
this.getData();
},
- playAudio(playNum){
- if(playNum <= 0) return;
+ playAudio(playNum) {
+ if (playNum <= 0) return;
const audio = this.$refs[`audioRef`];
console.log(audio);
audio.play();
playNum = playNum - 1;
audio.onended = () => {
- this.playAudio(playNum);
+ this.playAudio(playNum);
};
},
mqttMSG() {
@@ -372,29 +372,39 @@ export default {
// this.$emit('sendMsg')
// }
// }
- const payload = JSON.parse(message.payload);
this.getData();
- if (message.type == 7) {
- const find = this.noticeRemindList.find(
- (item) => item.type == message.type
- );
- if (find) {
- this.fileUrl = find.fileUrl;
+ console.log("message", message.hasOwnProperty('payload'), message.payload != undefined, message.payload);
+ if(message.hasOwnProperty('payload')) {
+ console.log("message.payload", message.payload);
+ const payload = JSON.parse(message.payload);
+ if (payload) {
+ this.fileUrl = payload.messagePromptToneConfig;
this.$nextTick(() => {
- this.playAudio(find.playNum);
- })
- }
- } else if (message.type == 8) {
- const find = this.noticeRemindList.find(
- (item) => item.type == message.type && item.riskLevel == payload.level
- );
- if (find) {
- this.fileUrl = find.fileUrl;
- this.$nextTick(() => {
- this.playAudio(find.playNum);
- })
+ this.playAudio(payload.playbackFrequency);
+ });
}
}
+ // if (message.type == 7) {
+ // const find = this.noticeRemindList.find(
+ // (item) => item.type == message.type
+ // );
+ // if (find) {
+ // this.fileUrl = find.fileUrl;
+ // this.$nextTick(() => {
+ // this.playAudio(find.playNum);
+ // })
+ // }
+ // } else if (message.type == 8) {
+ // const find = this.noticeRemindList.find(
+ // (item) => item.type == message.type && item.riskLevel == payload.level
+ // );
+ // if (find) {
+ // this.fileUrl = find.fileUrl;
+ // this.$nextTick(() => {
+ // this.playAudio(find.playNum);
+ // })
+ // }
+ // }
// message
setTimeout(() => {
this.$emit("sendMsg", message);
diff --git a/src/views/projectFront/bodyWornCamera/bodyWornCamera.vue b/src/views/projectFront/bodyWornCamera/bodyWornCamera.vue
index 85c21f75..fd567da3 100644
--- a/src/views/projectFront/bodyWornCamera/bodyWornCamera.vue
+++ b/src/views/projectFront/bodyWornCamera/bodyWornCamera.vue
@@ -56,6 +56,14 @@
? 'info'
: 'danger'
" size="medium" class="delete_btn" plain @click="deleteAttendanceBatch">删除
+ 批量移动
+
{{
$t("message.videoManage.dialog_newVideo.operation.add") }}
@@ -554,6 +562,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -605,6 +665,7 @@ import {
editProjectPoliceCameraConfigApi,
savePoliceCameraVideoConfigApi,
getPoliceCameraVideoConfigListApi,
+ batchMovePoliceCameraItemApi,
} from "@/assets/js/api/bodyWornCamera";
import {
getProjectConfigListApi,
@@ -940,6 +1001,19 @@ export default {
workTicketBindCamera: 0,
fileList: [],
selectionList: [],
+ moveGroupDialog: false,
+ currentDetail: {
+ groupId: "",
+ },
+ formCurrentRules: {
+ groupId: [
+ {
+ required: true,
+ message: this.$t("message.videoManage.required"),
+ trigger: "change",
+ }, // 必填
+ ],
+ },
};
},
created() {
@@ -953,6 +1027,38 @@ export default {
},
components: { cameraList, gdMap },
methods: {
+ moveGroupClick() {
+ this.currentDetail.groupId = "";
+ this.$nextTick(() => {
+ this.$refs.moveGroupDialog.clearValidate();
+ });
+ this.moveGroupDialog = true;
+ },
+ setMoveGroup() {
+ this.$refs.moveGroupDialog.validate((valid) => {
+ if (valid) {
+ if (this.selectionList.length === 0)
+ return this.$message.warning("请勾选需要移动的数据!");
+ const itemIds = this.selectionList.map((item) => item.itemId).join(',');
+ const params = {
+ itemIds,
+ groupId: this.currentDetail.groupId,
+ projectSn: this.projectSn,
+ };
+ batchMovePoliceCameraItemApi(params).then((res) => {
+ if (res.success) {
+ this.$message.success(res.message);
+ this.moveGroupDialog = false;
+ this.selectionList = [];
+ this.getVideoList();
+ }
+ });
+ } else {
+ console.log("error submit!!");
+ return false;
+ }
+ });
+ },
// 导出模版
exportData() {
const requestData = {
diff --git a/src/views/projectFront/configManage/notificationRuleSet.vue b/src/views/projectFront/configManage/notificationRuleSet.vue
index 22110956..29a64829 100644
--- a/src/views/projectFront/configManage/notificationRuleSet.vue
+++ b/src/views/projectFront/configManage/notificationRuleSet.vue
@@ -631,6 +631,7 @@
播放一次
循环播放(次数)
@@ -931,6 +932,11 @@ export default {
},
components: { gdMap },
methods: {
+ playbackFrequencyChange() {
+ if(this.currentVideoTypeDetail.playType == 1) {
+ this.currentVideoTypeDetail.playbackFrequency = 1;
+ }
+ },
onDeactivated(row) {
editEnableMessageDevRuleApi({
...row,