Compare commits
No commits in common. "328e470c27b63f1936e25a3158cb035d16a8055b" and "225dc12f7765263d679fffa235789eb144c776d9" have entirely different histories.
328e470c27
...
225dc12f77
28
package-lock.json
generated
28
package-lock.json
generated
@ -27,7 +27,6 @@
|
||||
"lamejs": "^1.2.1",
|
||||
"mqtt": "^2.18.8",
|
||||
"nipplejs": "^0.10.2",
|
||||
"qiankun": "^2.10.16",
|
||||
"vant": "^4.9.5",
|
||||
"vconsole": "^3.15.1",
|
||||
"vue": "^3.2.13",
|
||||
@ -8200,15 +8199,6 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/import-html-entry": {
|
||||
"version": "1.17.0",
|
||||
"resolved": "https://registry.npmmirror.com/import-html-entry/-/import-html-entry-1.17.0.tgz",
|
||||
"integrity": "sha512-2SDsRlGlE8bqdnGqsOyiDPEWlzJR0jNW4LWopnZl5QE1Yd0nJ7fykWo2GaKUF7Jq7pR0g3dElhuJHyamTt1gPQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.7.2"
|
||||
}
|
||||
},
|
||||
"node_modules/imurmurhash": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
||||
@ -11287,18 +11277,6 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/qiankun": {
|
||||
"version": "2.10.16",
|
||||
"resolved": "https://registry.npmmirror.com/qiankun/-/qiankun-2.10.16.tgz",
|
||||
"integrity": "sha512-Q3tSVUrPnzx8ckEOKIoPnhb5LE28FPKyan/r6jEuGJGqTbIy+3rp6E2/KfU82ZI4yZpef9LFTrnxdj49jAEsmw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.10.5",
|
||||
"import-html-entry": "^1.15.1",
|
||||
"lodash": "^4.17.11",
|
||||
"single-spa": "^5.9.2"
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.13.0",
|
||||
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.13.0.tgz",
|
||||
@ -12037,12 +12015,6 @@
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/single-spa": {
|
||||
"version": "5.9.5",
|
||||
"resolved": "https://registry.npmmirror.com/single-spa/-/single-spa-5.9.5.tgz",
|
||||
"integrity": "sha512-9SQdmsyz4HSP+3gs6PJzhkaMEg+6zTlu9oxIghnwUX3eq+ajq4ft5egl0iyR55LAmO/UwvU8NgIWs/ZyQMa6dw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/sirv": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmmirror.com/sirv/-/sirv-2.0.4.tgz",
|
||||
|
@ -27,7 +27,6 @@
|
||||
"lamejs": "^1.2.1",
|
||||
"mqtt": "^2.18.8",
|
||||
"nipplejs": "^0.10.2",
|
||||
"qiankun": "^2.10.16",
|
||||
"vant": "^4.9.5",
|
||||
"vconsole": "^3.15.1",
|
||||
"vue": "^3.2.13",
|
||||
|
@ -6,7 +6,7 @@
|
||||
* @LastEditors: Andy
|
||||
* @LastEditTime: 2024-03-11 11:07:00
|
||||
*/
|
||||
var MQTT_MODE = 1;
|
||||
var MQTT_MODE = 0;
|
||||
|
||||
function pageName() {
|
||||
var a = location.href;
|
||||
@ -25,10 +25,10 @@ function MQTT_send(string) {
|
||||
json_id = 0;
|
||||
}
|
||||
localStorage.setItem("json_id", json_id);
|
||||
let send_string = "JSON_id\":" + json_id + ",\"board_id\":102" + ",\"led_protocol\":" + string ;
|
||||
let send_string = "{\"JSON_id\":" + json_id + ",\"board_id\":102"+",\"led_protocol\":" + string + "}";
|
||||
console.log("MQTT 发送:" + send_string);
|
||||
|
||||
if (/xazn/.test(navigator.userAgent) || /uni-app/.test(navigator.userAgent)) {
|
||||
if (/xazn/.test(navigator.userAgent)||/uni-app/.test(navigator.userAgent)) {
|
||||
uni.postMessage({
|
||||
data: {
|
||||
str: send_string
|
||||
@ -37,7 +37,7 @@ function MQTT_send(string) {
|
||||
} else {
|
||||
//这里需要将string发送出去
|
||||
window.parent.postMessage({
|
||||
data: send_string
|
||||
str: send_string
|
||||
}, "*"); // 替换为Vue应用的URL
|
||||
}
|
||||
|
||||
@ -51,16 +51,16 @@ function MQTT_json_send(string, protocol) {
|
||||
}
|
||||
let send_string;
|
||||
localStorage.setItem("json_id", json_id);
|
||||
if (protocol == "sound_card") {
|
||||
send_string = "{\"JSON_id\":" + json_id + ",\"board_id\":103" + ",\"" + protocol + "\":" + string + "}";
|
||||
if(protocol=="sound_card"){
|
||||
send_string = "{\"JSON_id\":" + json_id + ",\"board_id\":103"+ ",\"" + protocol + "\":" + string + "}";
|
||||
|
||||
} else {
|
||||
}else{
|
||||
send_string = "{\"JSON_id\":" + json_id + ",\"" + protocol + "\":" + string + "}";
|
||||
|
||||
}
|
||||
console.log("MQTT 发送:" + send_string);
|
||||
|
||||
if (/xazn/.test(navigator.userAgent) || /uni-app/.test(navigator.userAgent)) {
|
||||
if (/xazn/.test(navigator.userAgent)||/uni-app/.test(navigator.userAgent)) {
|
||||
uni.postMessage({
|
||||
data: {
|
||||
str: send_string
|
||||
@ -109,9 +109,3 @@ function MQTT_recv(string) {
|
||||
voice_reply_parse_fun(string);
|
||||
}
|
||||
}
|
||||
window.addEventListener('message', function (event) {
|
||||
console.log("接受的原始数据", JSON.stringify(event.data))
|
||||
if (event.data) {
|
||||
MQTT_recv(JSON.stringify(event.data)); // 保持与原 MQTT_recv 兼容
|
||||
}
|
||||
});
|
33
src/main.js
33
src/main.js
@ -73,36 +73,3 @@ app.use(store).use(router).mount('#app');
|
||||
|
||||
window.VueRouter = router; // 这里立即暴露 router
|
||||
console.log("VueRouter 已暴露到全局");
|
||||
|
||||
|
||||
// qiankun
|
||||
|
||||
// let instance = null;
|
||||
|
||||
// function render(props = {}) {
|
||||
// const { container } = props;
|
||||
// instance = new Vue({
|
||||
// render: (h) => h(App),
|
||||
// }).$mount(container ? container.querySelector('#app') : '#app');
|
||||
// }
|
||||
|
||||
// // 独立运行(非 Qiankun 环境)
|
||||
// if (!window.__POWERED_BY_QIANKUN__) {
|
||||
// render();
|
||||
// }
|
||||
|
||||
// // Qiankun 生命周期
|
||||
// export async function bootstrap() {
|
||||
// console.log('[subapp] bootstrap');
|
||||
// }
|
||||
|
||||
// export async function mount(props) {
|
||||
// console.log('[subapp] mount', props);
|
||||
// render(props);
|
||||
// }
|
||||
|
||||
// export async function unmount() {
|
||||
// console.log('[subapp] unmount');
|
||||
// instance.$destroy();
|
||||
// instance = null;
|
||||
// }
|
@ -331,14 +331,17 @@ export default {
|
||||
}
|
||||
}
|
||||
const MQTT_send = (send_string) => {
|
||||
console.log(" 向父页面发送消息:", JSON.stringify(send_string));
|
||||
// 使用 postMessage 发送数据给父页面
|
||||
window.parent.postMessage(
|
||||
{
|
||||
data: send_string
|
||||
},
|
||||
'*' // 目标 origin,生产环境应替换为具体的父页面域名
|
||||
);
|
||||
console.log("MQTT 发送:" + JSON.stringify(send_string));
|
||||
jsonId.value++;
|
||||
if (/xazn/.test(navigator.userAgent) || /uni-app/.test(navigator.userAgent)) {
|
||||
uni.postMessage({
|
||||
data: {
|
||||
str: JSON.stringify(send_string)
|
||||
}
|
||||
});
|
||||
} else {
|
||||
window.parent.postMessage({ str: JSON.stringify(send_string) }, "*");
|
||||
}
|
||||
};
|
||||
|
||||
const MQTT_recv = (string) => {
|
||||
@ -368,15 +371,8 @@ export default {
|
||||
onMounted(async () => {
|
||||
await checkEnvironment();
|
||||
console.log(isLocal.value);
|
||||
// window.MQTT_recv = MQTT_recv;
|
||||
window.addEventListener('message', function (event) {
|
||||
// console.log("message",JSON.stringify(message))
|
||||
// 仅校验消息结构(非必须但建议)
|
||||
console.log("接受的原始数据", JSON.stringify(event.data))
|
||||
if (event.data) {
|
||||
MQTT_recv(JSON.stringify(event.data)); // 保持与原 MQTT_recv 兼容
|
||||
}
|
||||
});
|
||||
window.MQTT_recv = MQTT_recv;
|
||||
|
||||
onRefresh();
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
|
@ -6,14 +6,22 @@
|
||||
<van-notice-bar class="notice" scrollable text="下滑刷新页面" color="black" />
|
||||
<van-swipe class="my-swipe" :autoplay="3000" indicator-color="white">
|
||||
<van-swipe-item>信安智能</van-swipe-item>
|
||||
<!-- <van-swipe-item>2</van-swipe-item> -->
|
||||
<!-- <van-swipe-item>3</van-swipe-item> -->
|
||||
</van-swipe>
|
||||
<div class="item-content">
|
||||
<van-cell-group inset>
|
||||
<!-- 全部改为动态渲染的菜单项 -->
|
||||
<template v-for="(item, index) in filteredMenuItems" :key="index">
|
||||
<van-cell size="large" class="custom-cell" :title="item.title" :icon="item.icon" is-link
|
||||
:value="item.value" @click="item.action" />
|
||||
</template>
|
||||
<van-cell size="large" class="custom-cell" title="显示设置" icon="photo-o" is-link value="显示" @click="navigateTo('web/screen_main.html')" />
|
||||
<van-cell size="large" class="custom-cell" title="声卡设置" icon="volume-o" is-link value="语音" @click="goto('voiceset')" />
|
||||
<van-cell size="large" class="custom-cell" title="车牌识别" icon="search" is-link value="识别" @click="goto('recognition')" />
|
||||
<van-cell size="large" class="custom-cell" title="预警设置" icon="warning-o" is-link value="预警" @click="goto('warning')" />
|
||||
<van-cell size="large" class="custom-cell" title="远程喊话" icon="bullhorn-o" is-link value="喊话" @click="navigateTo('web/voice_copy.html')" />
|
||||
<van-cell size="large" class="custom-cell" title="小车控制" icon="logistics" is-link value="控制" @click="goto('CarControl')" />
|
||||
<!-- <van-cell size="large" class="custom-cell" title="小车控制" icon="car" is-link value="控制" @click="goto('TEST')" /> -->
|
||||
<!-- <van-cell size="large" class="custom-cell" title="小车控制" icon="car" is-link value="控制" @click="goto('AudioPlay')" /> -->
|
||||
<van-cell size="large" class="custom-cell" title="网关设置" icon="desktop-o" is-link value="控制" @click="goto('GatewaySetting')" />
|
||||
<van-cell size="large" class="custom-cell" title="路锥控制" icon="warning-o" is-link value="控制" @click="goto('ConeControl')" />
|
||||
<van-cell size="large" class="custom-cell" title="翻转屏遥控" icon="warning-o" is-link value="控制" @click="goto('flipScreen')" />
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</div>
|
||||
@ -23,102 +31,55 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ref, onMounted, computed, onBeforeUnmount } from 'vue';
|
||||
import { ref, onMounted } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import axios from 'axios';
|
||||
import Header from "../../components/Header.vue";
|
||||
import Footer from "../../components/Footer.vue";
|
||||
|
||||
export default {
|
||||
components: { Header, Footer },
|
||||
components: {
|
||||
Header,
|
||||
Footer
|
||||
},
|
||||
setup() {
|
||||
const currentTitle = ref('系统设置');
|
||||
const loading = ref(false);
|
||||
const router = useRouter();
|
||||
|
||||
// 所有菜单项配置(8个,对应8位二进制)
|
||||
const allMenuItems = ref([
|
||||
{ title: "显示设置", icon: "photo-o", value: "显示", action: () => navigateTo('web/screen_main.html') },
|
||||
{ title: "声卡设置", icon: "volume-o", value: "语音", action: () => goto('voiceset') },
|
||||
{ title: "车牌识别", icon: "search", value: "识别", action: () => goto('recognition') },
|
||||
{ title: "预警设置", icon: "warning-o", value: "预警", action: () => goto('warning') },
|
||||
{ title: "远程喊话", icon: "bullhorn-o", value: "喊话", action: () => navigateTo('web/voice_copy.html') },
|
||||
{ title: "网关设置", icon: "desktop-o", value: "控制", action: () => goto('GatewaySetting') },
|
||||
{ title: "路锥控制", icon: "warning-o", value: "控制", action: () => goto('ConeControl') },
|
||||
{ title: "翻转屏遥控", icon: "warning-o", value: "控制", action: () => goto('flipScreen') }
|
||||
]);
|
||||
|
||||
// 从父页面接收的权限控制字符串(8位二进制)
|
||||
const permissionString = ref('00000000'); // 默认全部隐藏
|
||||
|
||||
// 计算属性:过滤出需要显示的菜单项
|
||||
const filteredMenuItems = computed(() => {
|
||||
return allMenuItems.value.filter((_, index) => {
|
||||
return permissionString.value[index] === '1';
|
||||
});
|
||||
});
|
||||
|
||||
// 更新菜单显示状态的函数
|
||||
const updateMenuVisibility = (binaryStr) => {
|
||||
allMenuItems.value.forEach((item, index) => {
|
||||
item.isVisible = binaryStr[index] === '1';
|
||||
});
|
||||
};
|
||||
|
||||
// 监听父页面的消息
|
||||
onMounted(() => {
|
||||
const messageHandler = (event) => {
|
||||
console.log(' 收到父页面消息:', event.data);
|
||||
|
||||
// 更简洁的写法(当确定格式为XXXXXXXX/XXX时)
|
||||
if (typeof event.data === 'string') {
|
||||
permissionString.value = event.data.substring(0, 8);
|
||||
if (/^[01]{8}$/.test(permissionString.value)) {
|
||||
updateMenuVisibility(permissionString.value);
|
||||
}
|
||||
} else {
|
||||
console.error(' 无效的权限字符串:', event.data);
|
||||
}
|
||||
};
|
||||
|
||||
window.addEventListener('message', messageHandler);
|
||||
|
||||
// 在组件卸载时移除事件监听器
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener('message', messageHandler);
|
||||
console.log('移除事件监听器');
|
||||
});
|
||||
});
|
||||
|
||||
// 跳转方法
|
||||
const navigateTo = (path) => {
|
||||
window.location.href = path;
|
||||
};
|
||||
|
||||
const goto = (name) => {
|
||||
router.push({ name });
|
||||
};
|
||||
|
||||
// 模拟刷新过程的函数
|
||||
const onRefresh = () => {
|
||||
setTimeout(() => {
|
||||
loading.value = false;
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
// 导航到不同页面的函数
|
||||
const navigateTo = (path) => {
|
||||
window.location.href = path;
|
||||
};
|
||||
|
||||
// 使用 router 进行路由跳转
|
||||
const goto = (name) => {
|
||||
router.push({ name });
|
||||
};
|
||||
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
});
|
||||
|
||||
return {
|
||||
currentTitle,
|
||||
loading,
|
||||
filteredMenuItems,
|
||||
onRefresh,
|
||||
navigateTo,
|
||||
goto,
|
||||
updateMenuVisibility
|
||||
};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 原有样式保持不变 */
|
||||
.page-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -138,6 +99,7 @@ export default {
|
||||
|
||||
.item-content {
|
||||
margin-top: 20px;
|
||||
|
||||
}
|
||||
|
||||
van-pull-refresh {
|
||||
@ -166,7 +128,7 @@ van-pull-refresh {
|
||||
.custom-cell .van-cell__label,
|
||||
.custom-cell .van-cell__value,
|
||||
.custom-cell .van-icon {
|
||||
font-size: 20px;
|
||||
font-size: 20px; /* Adjust the font size as needed */
|
||||
}
|
||||
|
||||
.custom-cell .van-cell__title {
|
||||
@ -174,6 +136,7 @@ van-pull-refresh {
|
||||
}
|
||||
|
||||
.custom-cell .van-cell__value {
|
||||
color: #666;
|
||||
color: #666; /* Customize the value text color if needed */
|
||||
}
|
||||
|
||||
</style>
|
@ -643,14 +643,17 @@ export default {
|
||||
}
|
||||
};
|
||||
const MQTT_send = (send_string) => {
|
||||
console.log(" 向父页面发送消息:", JSON.stringify(send_string));
|
||||
// 使用 postMessage 发送数据给父页面
|
||||
window.parent.postMessage(
|
||||
{
|
||||
data: send_string
|
||||
},
|
||||
'*' // 目标 origin,生产环境应替换为具体的父页面域名
|
||||
);
|
||||
console.log("MQTT 发送:" + JSON.stringify(send_string));
|
||||
jsonId.value++;
|
||||
if (/xazn/.test(navigator.userAgent) || /uni-app/.test(navigator.userAgent)) {
|
||||
uni.postMessage({
|
||||
data: {
|
||||
str: JSON.stringify(send_string)
|
||||
}
|
||||
});
|
||||
} else {
|
||||
window.parent.postMessage({ str: JSON.stringify(send_string) }, "*");
|
||||
}
|
||||
};
|
||||
|
||||
const MQTT_recv = (string) => {
|
||||
@ -664,12 +667,7 @@ export default {
|
||||
onMounted(async () => {
|
||||
await checkEnvironment();
|
||||
console.log(isLocal.value);
|
||||
window.addEventListener('message', function (event) {
|
||||
console.log("接受的原始数据", JSON.stringify(event.data))
|
||||
if (event.data) {
|
||||
MQTT_recv(JSON.stringify(event.data)); // 保持与原 MQTT_recv 兼容
|
||||
}
|
||||
});
|
||||
window.MQTT_recv = MQTT_recv;
|
||||
onRefresh();
|
||||
|
||||
});
|
||||
|
@ -113,14 +113,16 @@ export default {
|
||||
// 检查环境是否为本地
|
||||
const isLocal = window.location.hostname === '192.168.4.1';
|
||||
const MQTT_send = (send_string) => {
|
||||
console.log(" 向父页面发送消息:", JSON.stringify(send_string));
|
||||
// 使用 postMessage 发送数据给父页面
|
||||
window.parent.postMessage(
|
||||
{
|
||||
data: send_string
|
||||
},
|
||||
'*' // 目标 origin,生产环境应替换为具体的父页面域名
|
||||
);
|
||||
console.log("MQTT 发送:" + JSON.stringify(send_string));
|
||||
if (/xazn/.test(navigator.userAgent) || /uni-app/.test(navigator.userAgent)) {
|
||||
uni.postMessage({
|
||||
data: {
|
||||
str: JSON.stringify(send_string)
|
||||
}
|
||||
});
|
||||
} else {
|
||||
window.parent.postMessage({ str: JSON.stringify(send_string) }, "*");
|
||||
}
|
||||
};
|
||||
|
||||
const handleMQTTMessage = (string) => {
|
||||
@ -245,13 +247,8 @@ export default {
|
||||
|
||||
// MQTT 接收函数
|
||||
const MQTT_recv = (string) => {
|
||||
// console.log("MQTT 接收的json:" + string);
|
||||
// 先解析一次字符串化的 JSON
|
||||
const parsedString = JSON.parse(string);
|
||||
// 如果解析后的结果仍然是字符串,需要再次解析
|
||||
const data = typeof parsedString === 'string' ? JSON.parse(parsedString) : parsedString;
|
||||
console.log("MQTTRECV 接收的json:" + JSON.stringify(data));
|
||||
handleMQTTMessage(JSON.stringify(data));
|
||||
console.log("MQTT 接收的json:" + string);
|
||||
handleMQTTMessage(string);
|
||||
};
|
||||
// 下拉刷新事件处理函数
|
||||
const onRefresh = async () => {
|
||||
@ -283,21 +280,9 @@ export default {
|
||||
// 在组件挂载时建立 MQTT 连接
|
||||
onMounted(() => {
|
||||
console.log(isLocal);
|
||||
const messageHandler = function (event) {
|
||||
console.log("111接受的原始数据", JSON.stringify(event.data))
|
||||
if (event.data) {
|
||||
MQTT_recv(JSON.stringify(event.data)); // 保持与原 MQTT_recv 兼容
|
||||
}
|
||||
};
|
||||
window.addEventListener('message', messageHandler);
|
||||
// onRefresh();
|
||||
onRefresh();
|
||||
window.MQTT_recv = MQTT_recv;
|
||||
|
||||
// 在组件卸载时移除事件监听器
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener('message', messageHandler);
|
||||
console.log('移除事件监听器');
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
|
@ -400,14 +400,8 @@ export default {
|
||||
};
|
||||
// 在组件挂载时获取音频数据
|
||||
onMounted(async () => {
|
||||
window.addEventListener('message', function (event) {
|
||||
console.log("接受的原始数据",JSON.stringify(event.data))
|
||||
if (event.data) {
|
||||
MQTT_recv(JSON.stringify(event.data)); // 保持与原 MQTT_recv 兼容
|
||||
}
|
||||
});
|
||||
// showToast("success")
|
||||
// window.MQTT_recv = MQTT_recv;
|
||||
window.MQTT_recv = MQTT_recv;
|
||||
await checkEnvironment();
|
||||
getallinfo();
|
||||
// fetchAudioData(); // 获取音频数据
|
||||
@ -455,14 +449,16 @@ export default {
|
||||
|
||||
|
||||
const MQTT_send = (send_string) => {
|
||||
console.log(" 向父页面发送消息:", JSON.stringify(send_string));
|
||||
// 使用 postMessage 发送数据给父页面
|
||||
window.parent.postMessage(
|
||||
{
|
||||
data: send_string
|
||||
},
|
||||
'*' // 目标 origin,生产环境应替换为具体的父页面域名
|
||||
);
|
||||
console.log("MQTT 发送:" + JSON.stringify(send_string));
|
||||
if (/xazn/.test(navigator.userAgent) || /uni-app/.test(navigator.userAgent)) {
|
||||
uni.postMessage({
|
||||
data: {
|
||||
str: JSON.stringify(send_string)
|
||||
}
|
||||
});
|
||||
} else {
|
||||
window.parent.postMessage({ str: JSON.stringify(send_string) }, "*");
|
||||
}
|
||||
};
|
||||
// MQTT 接收函数
|
||||
const MQTT_recv = (string) => {
|
||||
@ -1064,124 +1060,124 @@ export default {
|
||||
});
|
||||
// json数据处理函数
|
||||
function handleJsonMessage(data) {
|
||||
// 如果存在新参数音量,则更新
|
||||
if (data.param) {
|
||||
voicevalue.value = data.param.volume;
|
||||
}
|
||||
// 如果存在新参数音量,则更新
|
||||
if (data.param) {
|
||||
voicevalue.value = data.param.volume;
|
||||
}
|
||||
|
||||
// 更新文件名选项
|
||||
if (data && Array.isArray(data.mp3_list)) {
|
||||
newFilename.value = getNextTTSFilename(combinedList.value);
|
||||
filenamecolumns.value = data.mp3_list.map(mp3 => ({
|
||||
text: mp3,
|
||||
value: mp3
|
||||
}));
|
||||
} else {
|
||||
console.warn('No valid mp3_list found in data.sound_card');
|
||||
}
|
||||
// 更新文件名选项
|
||||
if (data && Array.isArray(data.mp3_list)) {
|
||||
newFilename.value = getNextTTSFilename(combinedList.value);
|
||||
filenamecolumns.value = data.mp3_list.map(mp3 => ({
|
||||
text: mp3,
|
||||
value: mp3
|
||||
}));
|
||||
} else {
|
||||
console.warn('No valid mp3_list found in data.sound_card');
|
||||
}
|
||||
|
||||
// 更新播放列表并合并到 combinedList
|
||||
if (data.play_list) {
|
||||
const newPlaylistItems = data.play_list.map(item => ({
|
||||
remark: item.remark,
|
||||
filename: item.filename,
|
||||
runningtime: item.play_time,
|
||||
pauseduration: item.pause_time,
|
||||
Broadcast_sound: item.TTS ? item.TTS.per : null,
|
||||
speed: item.TTS ? item.TTS.spd : 0,
|
||||
pit: item.TTS ? item.TTS.pit : 0,
|
||||
vol: item.TTS ? item.TTS.vol : 0,
|
||||
text: item.tts_str,
|
||||
...item
|
||||
}));
|
||||
playlist.value = newPlaylistItems;
|
||||
combinedList.value.push(...newPlaylistItems);
|
||||
}
|
||||
// 更新播放列表并合并到 combinedList
|
||||
if (data.play_list) {
|
||||
const newPlaylistItems = data.play_list.map(item => ({
|
||||
remark: item.remark,
|
||||
filename: item.filename,
|
||||
runningtime: item.play_time,
|
||||
pauseduration: item.pause_time,
|
||||
Broadcast_sound: item.TTS ? item.TTS.per : null,
|
||||
speed: item.TTS ? item.TTS.spd : 0,
|
||||
pit: item.TTS ? item.TTS.pit : 0,
|
||||
vol: item.TTS ? item.TTS.vol : 0,
|
||||
text: item.tts_str,
|
||||
...item
|
||||
}));
|
||||
playlist.value = newPlaylistItems;
|
||||
combinedList.value.push(...newPlaylistItems);
|
||||
}
|
||||
|
||||
// 更新事件播放列表并合并到 combinedList
|
||||
if (data.event_play_list) {
|
||||
const newEventPlaylistItems = data.event_play_list.map(item => {
|
||||
let eventType, eventsource;
|
||||
switch (item.event.source) {
|
||||
case 0:
|
||||
eventsource = '本台设备';
|
||||
break;
|
||||
case 254:
|
||||
eventsource = '除本身外任意设备';
|
||||
break;
|
||||
case 255:
|
||||
eventsource = '任意设备';
|
||||
break;
|
||||
default:
|
||||
eventsource = '其他';
|
||||
}
|
||||
switch (item.event.code) {
|
||||
case 0:
|
||||
eventType = '默认显示';
|
||||
break;
|
||||
case 1:
|
||||
eventType = '雷达触发(RS485 雷达)';
|
||||
break;
|
||||
case 2:
|
||||
eventType = '雷达超速(RS485 雷达)';
|
||||
break;
|
||||
case 3:
|
||||
eventType = '车牌触发(摄像头)';
|
||||
break;
|
||||
case 4:
|
||||
eventType = '车牌超速(摄像头)';
|
||||
break;
|
||||
case 5:
|
||||
eventType = '行人检测(相机)';
|
||||
break;
|
||||
case 51:
|
||||
eventType = 'IN1下降沿';
|
||||
break;
|
||||
case 52:
|
||||
eventType = 'IN2上升沿';
|
||||
break;
|
||||
case 53:
|
||||
eventType = 'IN3下降沿';
|
||||
break;
|
||||
case 54:
|
||||
eventType = 'IN4上升沿';
|
||||
break;
|
||||
case 55:
|
||||
eventType = 'IN1低电平';
|
||||
break;
|
||||
case 56:
|
||||
eventType = 'IN2高电平';
|
||||
break;
|
||||
case 57:
|
||||
eventType = 'IN3低电平';
|
||||
break;
|
||||
case 58:
|
||||
eventType = 'IN4高电平';
|
||||
break;
|
||||
default:
|
||||
eventType = '其他';
|
||||
}
|
||||
return {
|
||||
remark: item.remark,
|
||||
EventSource: item.event.source,
|
||||
eventcode: item.event.code,
|
||||
EventSourcename: eventsource,
|
||||
eventcodename: eventType,
|
||||
priority: item.event.priority,
|
||||
Broadcast_sound: item.TTS ? item.TTS.per : null,
|
||||
speed: item.TTS ? item.TTS.spd : 0,
|
||||
pit: item.TTS ? item.TTS.pit : 0,
|
||||
vol: item.TTS ? item.TTS.vol : 0,
|
||||
text: item.tts_str,
|
||||
...item
|
||||
};
|
||||
});
|
||||
eventplaylist.value = newEventPlaylistItems;
|
||||
combinedList.value.push(...newEventPlaylistItems);
|
||||
// 更新事件播放列表并合并到 combinedList
|
||||
if (data.event_play_list) {
|
||||
const newEventPlaylistItems = data.event_play_list.map(item => {
|
||||
let eventType, eventsource;
|
||||
switch (item.event.source) {
|
||||
case 0:
|
||||
eventsource = '本台设备';
|
||||
break;
|
||||
case 254:
|
||||
eventsource = '除本身外任意设备';
|
||||
break;
|
||||
case 255:
|
||||
eventsource = '任意设备';
|
||||
break;
|
||||
default:
|
||||
eventsource = '其他';
|
||||
}
|
||||
switch (item.event.code) {
|
||||
case 0:
|
||||
eventType = '默认显示';
|
||||
break;
|
||||
case 1:
|
||||
eventType = '雷达触发(RS485 雷达)';
|
||||
break;
|
||||
case 2:
|
||||
eventType = '雷达超速(RS485 雷达)';
|
||||
break;
|
||||
case 3:
|
||||
eventType = '车牌触发(摄像头)';
|
||||
break;
|
||||
case 4:
|
||||
eventType = '车牌超速(摄像头)';
|
||||
break;
|
||||
case 5:
|
||||
eventType = '行人检测(相机)';
|
||||
break;
|
||||
case 51:
|
||||
eventType = 'IN1下降沿';
|
||||
break;
|
||||
case 52:
|
||||
eventType = 'IN2上升沿';
|
||||
break;
|
||||
case 53:
|
||||
eventType = 'IN3下降沿';
|
||||
break;
|
||||
case 54:
|
||||
eventType = 'IN4上升沿';
|
||||
break;
|
||||
case 55:
|
||||
eventType = 'IN1低电平';
|
||||
break;
|
||||
case 56:
|
||||
eventType = 'IN2高电平';
|
||||
break;
|
||||
case 57:
|
||||
eventType = 'IN3低电平';
|
||||
break;
|
||||
case 58:
|
||||
eventType = 'IN4高电平';
|
||||
break;
|
||||
default:
|
||||
eventType = '其他';
|
||||
}
|
||||
return {
|
||||
remark: item.remark,
|
||||
EventSource: item.event.source,
|
||||
eventcode: item.event.code,
|
||||
EventSourcename: eventsource,
|
||||
eventcodename: eventType,
|
||||
priority: item.event.priority,
|
||||
Broadcast_sound: item.TTS ? item.TTS.per : null,
|
||||
speed: item.TTS ? item.TTS.spd : 0,
|
||||
pit: item.TTS ? item.TTS.pit : 0,
|
||||
vol: item.TTS ? item.TTS.vol : 0,
|
||||
text: item.tts_str,
|
||||
...item
|
||||
};
|
||||
});
|
||||
eventplaylist.value = newEventPlaylistItems;
|
||||
combinedList.value.push(...newEventPlaylistItems);
|
||||
}
|
||||
|
||||
console.log('combinedList:', JSON.stringify(combinedList.value));
|
||||
}
|
||||
console.log('combinedList:', JSON.stringify(combinedList.value));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -26,10 +26,7 @@ module.exports = defineConfig({
|
||||
devServer: {
|
||||
open: true,
|
||||
hot: true,//自动保存
|
||||
port: 80,
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*', // 允许跨域
|
||||
},
|
||||
port:80
|
||||
},
|
||||
chainWebpack: (config) => {
|
||||
config.plugin('code-inspector-plugin').use(
|
||||
@ -39,24 +36,16 @@ module.exports = defineConfig({
|
||||
);
|
||||
},
|
||||
configureWebpack: {
|
||||
//qiankun
|
||||
output: {
|
||||
library: `subapp-[name]`, // 必须唯一
|
||||
libraryTarget: 'umd', // 必须使用 UMD 格式
|
||||
chunkLoadingGlobal: `webpackJsonp_subapp`, // 避免全局 JSONP 冲突
|
||||
},
|
||||
|
||||
|
||||
plugins: [
|
||||
// 当 unplugin-vue-components 版本小于 0.26.0 时,使用以下写法
|
||||
// AutoImport({ resolvers: [VantResolver()] }),
|
||||
// Components({ resolvers: [VantResolver()] }),
|
||||
//当大于等于 0.26.0 时,使用以下写法
|
||||
AutoImport.default({
|
||||
resolvers: [VantResolver(), ElementPlusResolver()],
|
||||
resolvers: [VantResolver(),ElementPlusResolver()],
|
||||
|
||||
}),
|
||||
Components.default({ resolvers: [VantResolver(), ElementPlusResolver()] }),
|
||||
Components.default({ resolvers: [VantResolver(),ElementPlusResolver()] }),
|
||||
// new CompressionWebpackPlugin({
|
||||
// algorithm: 'gzip', // 使用gzip压缩
|
||||
// test: /\.js$|\.html$|\.css$/, // 匹配文件名
|
||||
|
Loading…
x
Reference in New Issue
Block a user