2025-09-02 16:48:59 +08:00
|
|
|
|
import { _ as _export_sfc, r as requireNativePlugin, f as formatAppLog } from "../_plugin-vue_export-helper.js";
|
2025-08-25 17:30:39 +08:00
|
|
|
|
import { resolveComponent, openBlock, createElementBlock, createElementVNode, createCommentVNode, createVNode, withCtx, createTextVNode } from "vue";
|
2025-08-29 17:33:30 +08:00
|
|
|
|
const _style_0 = { "center-column": { "": { "display": "flex", "flexDirection": "column", "alignItems": "center" } }, "button-group": { "": { "display": "flex", "flexDirection": "row", "flexWrap": "wrap", "justifyContent": "center", "marginTop": 40, "width": 620 } }, "button": { "": { "marginTop": 6, "marginRight": 6, "marginBottom": 6, "marginLeft": 6, "paddingTop": 8, "paddingRight": 12, "paddingBottom": 8, "paddingLeft": 12, "minWidth": "120px", "height": 44, "borderRadius": 6, "borderWidth": 1, "borderStyle": "solid", "borderColor": "#dddddd", "backgroundColor": "#ffffff" } } };
|
2025-08-25 17:30:39 +08:00
|
|
|
|
const _sfc_main = {
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
phoneNumber: "1234567890",
|
2025-08-29 17:33:30 +08:00
|
|
|
|
isAlarming: false,
|
|
|
|
|
|
isRecording: false,
|
|
|
|
|
|
// 录屏状态
|
|
|
|
|
|
isTalking: false
|
|
|
|
|
|
// 对讲状态
|
2025-08-25 17:30:39 +08:00
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
onLoad() {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
const globalEvent = requireNativePlugin && requireNativePlugin("globalEvent");
|
|
|
|
|
|
if (globalEvent && globalEvent.addEventListener) {
|
|
|
|
|
|
globalEvent.addEventListener("myEvent", (e) => {
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:73", "myEvent", e);
|
2025-08-25 17:30:39 +08:00
|
|
|
|
});
|
2025-08-29 17:33:30 +08:00
|
|
|
|
}
|
2025-08-25 17:30:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
/* ------------------ 原有功能 ------------------ */
|
2025-08-25 17:30:39 +08:00
|
|
|
|
handleTelEvent(event) {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:80", "Tel event detail:", event.detail);
|
2025-08-25 17:30:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
switchDisplay(mode) {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
this.$refs.monitor && this.$refs.monitor.switchDisplayModeFragment(mode);
|
2025-08-25 17:30:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
startAlarm() {
|
|
|
|
|
|
this.isAlarming = true;
|
|
|
|
|
|
this.$refs.monitor.startOrStopManualAlarm(this.isAlarming, (res) => {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:91", "startAlarm callback:", res);
|
2025-08-25 17:30:39 +08:00
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
stopAlarm() {
|
|
|
|
|
|
this.isAlarming = false;
|
|
|
|
|
|
this.$refs.monitor.startOrStopManualAlarm(this.isAlarming, (res) => {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:97", "stopAlarm callback:", res);
|
2025-08-25 17:30:39 +08:00
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
flipImage(type) {
|
|
|
|
|
|
this.$refs.monitor.changeImageSwitch(type, (res) => {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:103", "flipImage callback:", res);
|
2025-08-25 17:30:39 +08:00
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
resumeOrPause() {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
this.$refs.monitor.resumeOrPause && this.$refs.monitor.resumeOrPause();
|
2025-08-25 17:30:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
changeQuality() {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
this.$refs.monitor.changeQuality && this.$refs.monitor.changeQuality();
|
2025-08-25 17:30:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
test() {
|
2025-08-29 17:33:30 +08:00
|
|
|
|
this.$refs.monitor && this.$refs.monitor.test && this.$refs.monitor.test();
|
|
|
|
|
|
},
|
|
|
|
|
|
/* ------------------ 新增:截图/录屏/对讲 调用方法 ------------------ */
|
|
|
|
|
|
// 1. 截图(调用)
|
|
|
|
|
|
doSnapshot() {
|
|
|
|
|
|
if (!this.$refs.monitor || !this.$refs.monitor.snapShot) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "组件不支持 snapShot()",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
|
|
|
this.$refs.monitor.snapShot((res) => {
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:134", "snapShot callback:", res);
|
|
|
|
|
|
this._handleSnapshotResultFromNative(res);
|
|
|
|
|
|
});
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "正在截屏...",
|
|
|
|
|
|
icon: "none",
|
|
|
|
|
|
duration: 800
|
|
|
|
|
|
});
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
formatAppLog("error", "at pages/ceshianzhuo.nvue:143", "snapShot 调用失败", err);
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "snapShot 调用失败",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 2. 开始录屏(调用)
|
|
|
|
|
|
doStartRecord() {
|
|
|
|
|
|
if (!this.$refs.monitor || !this.$refs.monitor.startRecord) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "组件不支持 startRecord()",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
|
|
|
this.$refs.monitor.startRecord((res) => {
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:163", "startRecord callback:", res);
|
|
|
|
|
|
});
|
|
|
|
|
|
this.isRecording = true;
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "录屏已开始",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
formatAppLog("error", "at pages/ceshianzhuo.nvue:171", "startRecord 调用失败", err);
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "startRecord 调用失败",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 3. 停止录屏(调用)
|
|
|
|
|
|
doStopRecord() {
|
|
|
|
|
|
if (!this.$refs.monitor || !this.$refs.monitor.stopRecord) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "组件不支持 stopRecord()",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
|
|
|
this.$refs.monitor.stopRecord((res) => {
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:191", "stopRecord callback:", res);
|
|
|
|
|
|
this._handleRecordResultFromNative(res);
|
|
|
|
|
|
});
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
formatAppLog("error", "at pages/ceshianzhuo.nvue:196", "stopRecord 调用失败", err);
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "stopRecord 调用失败",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 4. 开始对讲(调用)
|
|
|
|
|
|
doOpenTalk() {
|
|
|
|
|
|
if (!this.$refs.monitor || !this.$refs.monitor.openTalk) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "组件不支持 openTalk()",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
|
|
|
this.$refs.monitor.openTalk((res) => {
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:215", "openTalk callback:", res);
|
|
|
|
|
|
});
|
|
|
|
|
|
this.isTalking = true;
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "尝试建立对讲连接...",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
formatAppLog("error", "at pages/ceshianzhuo.nvue:225", "openTalk 调用失败", err);
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "openTalk 调用失败",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 5. 停止对讲(调用)
|
|
|
|
|
|
doStopTalk() {
|
|
|
|
|
|
if (!this.$refs.monitor || !this.$refs.monitor.stopTalk) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "组件不支持 stopTalk()",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
|
|
|
this.$refs.monitor.stopTalk((res) => {
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:244", "stopTalk callback:", res);
|
|
|
|
|
|
});
|
|
|
|
|
|
this.isTalking = false;
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
formatAppLog("error", "at pages/ceshianzhuo.nvue:250", "stopTalk 调用失败", err);
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "stopTalk 调用失败",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
/* ------------------ 事件回调处理(来自原生推送的事件) ------------------ */
|
|
|
|
|
|
// 处理来自模板 @onSnapShot 的事件(event.detail)
|
|
|
|
|
|
handleSnapShotEvent(event) {
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:263", "onSnapShot event:", event && event.detail ? event.detail : event);
|
|
|
|
|
|
this._handleSnapshotResultFromNative(event && event.detail ? event.detail : event);
|
|
|
|
|
|
},
|
|
|
|
|
|
// 处理来自模板 @onRecord 的事件(event.detail)
|
|
|
|
|
|
handleRecordEvent(event) {
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:270", "onRecord event:", event && event.detail ? event.detail : event);
|
|
|
|
|
|
this._handleRecordResultFromNative(event && event.detail ? event.detail : event);
|
|
|
|
|
|
},
|
|
|
|
|
|
// 处理来自模板 @onTalkStatus 的事件
|
|
|
|
|
|
handleTalkEvent(event) {
|
|
|
|
|
|
const payload = event && event.detail ? event.detail : event;
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:278", "onTalkStatus event:", payload);
|
|
|
|
|
|
const status = payload && payload.talkStatus;
|
|
|
|
|
|
const tips = payload && payload.tips;
|
|
|
|
|
|
switch ((status || "").toLowerCase()) {
|
|
|
|
|
|
case "loading":
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: tips || "对讲连接中...",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
this.isTalking = true;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "playing":
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: tips || "对讲已连接",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
this.isTalking = true;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "stopped":
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: tips || "对讲已停止",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
this.isTalking = false;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "failed":
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: tips || "对讲失败",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
this.isTalking = false;
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: tips || "对讲状态: " + (status || "unknown"),
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
/* ------------------ 原生结果的内部处理函数(统一处理 callback / event) ------------------ */
|
|
|
|
|
|
_handleSnapshotResultFromNative(res) {
|
|
|
|
|
|
if (!res) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "截图没有返回数据",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
let payload = res;
|
|
|
|
|
|
if (res.detail)
|
|
|
|
|
|
payload = res.detail;
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:337", "snapshot payload normalized:", payload);
|
|
|
|
|
|
if (payload.snapShotResult === true || payload.snapShotResult === "true") {
|
|
|
|
|
|
const url = payload.snapShotUrl || payload.snapShotPath || payload.url;
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "截图成功",
|
|
|
|
|
|
icon: "success",
|
|
|
|
|
|
duration: 1200
|
|
|
|
|
|
});
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:345", "截图地址:", url);
|
|
|
|
|
|
if (url) {
|
|
|
|
|
|
uni.previewImage({
|
|
|
|
|
|
urls: [url]
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
const err = payload.snapShotErrorCode || payload.error || "unknown";
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "截图失败: " + err,
|
|
|
|
|
|
icon: "none",
|
|
|
|
|
|
duration: 2e3
|
|
|
|
|
|
});
|
|
|
|
|
|
formatAppLog("warn", "at pages/ceshianzhuo.nvue:360", "snapshot failed reason:", err, payload);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
_handleRecordResultFromNative(res) {
|
|
|
|
|
|
if (!res) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "录屏没有返回数据",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
this.isRecording = false;
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
let payload = res;
|
|
|
|
|
|
if (res.detail)
|
|
|
|
|
|
payload = res.detail;
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:377", "record payload normalized:", payload);
|
|
|
|
|
|
if (payload.recordUrl) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "录屏完成",
|
|
|
|
|
|
icon: "success",
|
|
|
|
|
|
duration: 1400
|
|
|
|
|
|
});
|
|
|
|
|
|
formatAppLog("log", "at pages/ceshianzhuo.nvue:386", "录屏地址:", payload.recordUrl);
|
|
|
|
|
|
this.isRecording = false;
|
|
|
|
|
|
} else if (payload.recordFailedReason) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "录屏失败: " + payload.recordFailedReason,
|
|
|
|
|
|
icon: "none",
|
|
|
|
|
|
duration: 2e3
|
|
|
|
|
|
});
|
|
|
|
|
|
formatAppLog("warn", "at pages/ceshianzhuo.nvue:395", "record failed reason:", payload.recordFailedReason);
|
|
|
|
|
|
this.isRecording = false;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if (payload.snapShotResult === true) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "录屏操作已完成(返回未知)",
|
|
|
|
|
|
icon: "none"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
this.isRecording = false;
|
|
|
|
|
|
}
|
2025-08-25 17:30:39 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
|
|
|
const _component_MonitorView = resolveComponent("MonitorView");
|
2025-08-29 17:33:30 +08:00
|
|
|
|
const _component_MonitorControlView = resolveComponent("MonitorControlView");
|
2025-08-25 17:30:39 +08:00
|
|
|
|
const _component_button = resolveComponent("button");
|
|
|
|
|
|
return openBlock(), createElementBlock("scroll-view", {
|
|
|
|
|
|
scrollY: true,
|
|
|
|
|
|
showScrollbar: true,
|
|
|
|
|
|
enableBackToTop: true,
|
|
|
|
|
|
bubble: "true",
|
|
|
|
|
|
style: { flexDirection: "column" }
|
|
|
|
|
|
}, [
|
|
|
|
|
|
createElementVNode("div", { class: "center-column" }, [
|
2025-08-29 17:33:30 +08:00
|
|
|
|
createCommentVNode(" 视频播放组件,监听原生事件 "),
|
2025-08-25 17:30:39 +08:00
|
|
|
|
createVNode(_component_MonitorView, {
|
|
|
|
|
|
ref: "monitor",
|
|
|
|
|
|
init: "5",
|
2025-08-29 17:33:30 +08:00
|
|
|
|
style: { "width": "300px", "height": "200px", "margin-top": "20px" },
|
|
|
|
|
|
onOnTel: $options.handleTelEvent,
|
|
|
|
|
|
onOnSnapShot: $options.handleSnapShotEvent,
|
|
|
|
|
|
onOnRecord: $options.handleRecordEvent,
|
|
|
|
|
|
onOnTalkStatus: $options.handleTalkEvent
|
|
|
|
|
|
}, null, 8, ["onOnTel", "onOnSnapShot", "onOnRecord", "onOnTalkStatus"]),
|
|
|
|
|
|
createElementVNode("view", { style: { "display": "flex", "flex-direction": "row", "align-items": "flex-start" } }, [
|
|
|
|
|
|
createCommentVNode(" 云台控制组件 "),
|
|
|
|
|
|
createVNode(
|
|
|
|
|
|
_component_MonitorControlView,
|
|
|
|
|
|
{
|
|
|
|
|
|
ref: "control",
|
|
|
|
|
|
init: "5",
|
|
|
|
|
|
style: { "width": "300px", "height": "300px", "margin-top": "20px" }
|
|
|
|
|
|
},
|
|
|
|
|
|
null,
|
|
|
|
|
|
512
|
|
|
|
|
|
/* NEED_PATCH */
|
|
|
|
|
|
),
|
|
|
|
|
|
createCommentVNode(" 功能按钮 "),
|
|
|
|
|
|
createElementVNode("div", { class: "button-group" }, [
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[0] || (_cache[0] = ($event) => $options.switchDisplay(0))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("原图")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[1] || (_cache[1] = ($event) => $options.switchDisplay(1))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("四分屏")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[2] || (_cache[2] = ($event) => $options.switchDisplay(2))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("180°全景")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[3] || (_cache[3] = ($event) => $options.switchDisplay(3))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("360°全景")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[4] || (_cache[4] = ($event) => $options.switchDisplay(4))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("环状全景")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: $options.startAlarm
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("开启手动报警")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["onClick"]),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: $options.stopAlarm
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("停止手动报警")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["onClick"]),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[5] || (_cache[5] = ($event) => $options.flipImage(0))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("左右翻转")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[6] || (_cache[6] = ($event) => $options.flipImage(1))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("上下翻转")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[7] || (_cache[7] = ($event) => $options.flipImage(2))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("中心翻转")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[8] || (_cache[8] = ($event) => $options.flipImage(3))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("顺时针90°")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[9] || (_cache[9] = ($event) => $options.flipImage(4))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("逆时针90°")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[10] || (_cache[10] = ($event) => $options.flipImage(5))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("逆时针180°")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: _cache[11] || (_cache[11] = ($event) => $options.flipImage(6))
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("不翻转")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: $options.resumeOrPause
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("暂停/继续")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["onClick"]),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: $options.changeQuality
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("切换清晰度")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["onClick"]),
|
|
|
|
|
|
createCommentVNode(" === 新增的功能按钮:截图 / 录屏 / 对讲 === "),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: $options.doSnapshot
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("截图")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["onClick"]),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
disabled: $data.isRecording,
|
|
|
|
|
|
onClick: $options.doStartRecord
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode(" 开始录屏 ")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["disabled", "onClick"]),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
disabled: !$data.isRecording,
|
|
|
|
|
|
onClick: $options.doStopRecord
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode(" 结束录屏 ")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["disabled", "onClick"]),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
disabled: $data.isTalking,
|
|
|
|
|
|
onClick: $options.doOpenTalk
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode(" 开始对讲 ")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["disabled", "onClick"]),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
disabled: !$data.isTalking,
|
|
|
|
|
|
onClick: $options.doStopTalk
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode(" 结束对讲 ")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["disabled", "onClick"]),
|
|
|
|
|
|
createCommentVNode(" 测试按钮 "),
|
|
|
|
|
|
createVNode(_component_button, {
|
|
|
|
|
|
class: "button",
|
|
|
|
|
|
onClick: $options.test
|
|
|
|
|
|
}, {
|
|
|
|
|
|
default: withCtx(() => [
|
|
|
|
|
|
createTextVNode("test")
|
|
|
|
|
|
]),
|
|
|
|
|
|
_: 1
|
|
|
|
|
|
/* STABLE */
|
|
|
|
|
|
}, 8, ["onClick"])
|
|
|
|
|
|
])
|
2025-08-25 17:30:39 +08:00
|
|
|
|
])
|
|
|
|
|
|
])
|
|
|
|
|
|
]);
|
|
|
|
|
|
}
|
|
|
|
|
|
const ceshianzhuo = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/hldy_app/pages/ceshianzhuo.nvue"]]);
|
|
|
|
|
|
export {
|
|
|
|
|
|
ceshianzhuo as default
|
|
|
|
|
|
};
|