11111
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<view class="title">退出登录</view>
|
||||
<view class="card-font">
|
||||
确定要注销155******76账户吗
|
||||
确定要注销130******31账户吗
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -53,8 +53,11 @@
|
|||
}
|
||||
const go = () => {
|
||||
uni.setStorageSync('token', 1);
|
||||
plus.runtime.quit();
|
||||
// plus.runtime.quit();
|
||||
|
||||
uni.redirectTo({
|
||||
url: '/pages/login/login'
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<view class="move-circle" :style="containerStyle">
|
||||
<image src="/static/index/keyimg/lunpan.png" class="move-circle-all" />
|
||||
<view class="click-box-top" @click="handleClick(0)" />
|
||||
<view class="click-box-left" @click="handleClick(3)" />
|
||||
<view class="click-box-right" @click="handleClick(3)" />
|
||||
<view class="click-box-bottom" @click="handleClick(2)" />
|
||||
<view class="click-box-right" @click="handleClick(1)" />
|
||||
</view>
|
||||
|
|
@ -15,9 +15,9 @@ const props = defineProps({
|
|||
/**
|
||||
* 水平位置,单位 rpx
|
||||
*/
|
||||
left: {
|
||||
right: {
|
||||
type: Number,
|
||||
default: 0
|
||||
default: 200
|
||||
},
|
||||
/**
|
||||
* 垂直位置,单位 rpx
|
||||
|
|
@ -42,7 +42,7 @@ let resetTimer: number | null = null
|
|||
// 计算容器样式
|
||||
const containerStyle = computed(() => {
|
||||
const style: Record<string, string> = {
|
||||
left: `${props.left}rpx`
|
||||
right: `${props.right}rpx`
|
||||
}
|
||||
if (props.top !== undefined) {
|
||||
style.top = `${props.top}rpx`
|
||||
|
|
@ -84,21 +84,21 @@ function handleClick(dir: number) {
|
|||
.click-box-top {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 100rpx;
|
||||
right: 100rpx;
|
||||
width: 130rpx;
|
||||
height: 120rpx;
|
||||
}
|
||||
.click-box-bottom {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 100rpx;
|
||||
right: 100rpx;
|
||||
width: 130rpx;
|
||||
height: 120rpx;
|
||||
}
|
||||
.click-box-left {
|
||||
.click-box-right {
|
||||
position: absolute;
|
||||
bottom: 100rpx;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 98rpx;
|
||||
height: 120rpx;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
<template>
|
||||
<view class="move-circle" :style="{ bottom: `${movebottom}rpx`, left: `${moveleft}rpx` }" @touchmove="onTouchMove"
|
||||
<view class="move-circle" :style="{ bottom: `${movebottom}rpx`, right: `${moveright}rpx` }" @touchmove="onTouchMove"
|
||||
@touchend="onPressEnd" @touchcancel="onPressEnd">
|
||||
<!-- 长按持续波纹动画 -->
|
||||
<view v-if="showShadow && pao" class="light-shadow ripple-loop" :style="{
|
||||
left: shadow.x + 'px',
|
||||
<!-- <view v-if="showShadow && pao" class="light-shadow ripple-loop" :style="{
|
||||
right: shadow.x + 'px',
|
||||
top: shadow.y + 'px',
|
||||
transform: 'translate(-50%, -50%)'
|
||||
}"></view>
|
||||
}"></view> -->
|
||||
|
||||
<!-- 点击单次波纹动画,用 key 刷新 -->
|
||||
<view v-if="showRippleOnce && pao" :key="rippleKey" class="light-shadow ripple-once" :style="{
|
||||
left: shadow.x + 'px',
|
||||
<!-- <view v-if="showRippleOnce && pao" :key="rippleKey" class="light-shadow ripple-once" :style="{
|
||||
right: shadow.x + 'px',
|
||||
top: shadow.y + 'px',
|
||||
transform: 'translate(-50%, -50%)'
|
||||
}" @animationend="onRippleAnimationEnd"></view>
|
||||
}" @animationend="onRippleAnimationEnd"></view> -->
|
||||
|
||||
<image :src="!notext?`/static/index/newruler/direction_1.png`: `/static/index/newruler/suere.png`" v-show="type==-1 || type==4" class="move-circle-all" />
|
||||
<image src="/static/index/camera/arrow1.png" v-show="type==-1 || type==4" class="move-circle-all" />
|
||||
<!-- <image src="/static/index/newruler/direction_2.png" v-show="type==-2" class="move-circle-all" />
|
||||
<image src="/static/index/newruler/direction_3.png" v-show="type==-3" class="move-circle-all" /> -->
|
||||
<image :src="!notext?`/static/index/newruler/direction_3.png`: `/static/index/newruler/sure_2.png`" v-show="type==3" class="move-circle-all" />
|
||||
<image :src="!notext?`/static/index/newruler/direction_5.png`: `/static/index/newruler/sure_4.png`" v-show="type==2" class="move-circle-all" />
|
||||
<image :src="!notext?`/static/index/newruler/direction_4.png`: `/static/index/newruler/sure_3.png`" v-show="type==0" class="move-circle-all" />
|
||||
<image :src="!notext?`/static/index/newruler/direction_2.png`: `/static/index/newruler/sure_1.png`" v-show="type==1" class="move-circle-all" />
|
||||
<image src="/static/index/camera/arrow3.png" v-show="type==3" class="move-circle-all" />
|
||||
<image src="/static/index/camera/arrow5.png" v-show="type==2" class="move-circle-all" />
|
||||
<image src="/static/index/camera/arrow4.png" v-show="type==0" class="move-circle-all" />
|
||||
<image src="/static/index/camera/arrow2.png" v-show="type==1" class="move-circle-all" />
|
||||
<view class="pulse-circle" v-if="getblue" :key="pulseKey">
|
||||
|
||||
</view>
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
|
||||
const RADIUS = uni.upx2px(175)
|
||||
const DIAMETER = uni.upx2px(350)
|
||||
const LEFT = uni.upx2px(-50)
|
||||
const right = uni.upx2px(-50)
|
||||
const BOTTOM = uni.upx2px(100)
|
||||
const windowHeight = uni.getSystemInfoSync().windowHeight
|
||||
const TOP = windowHeight - BOTTOM - DIAMETER
|
||||
|
|
@ -69,9 +69,9 @@
|
|||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
moveleft: {
|
||||
moveright: {
|
||||
type: Number,
|
||||
default: 0
|
||||
default: 110
|
||||
},
|
||||
pao:{
|
||||
type: Boolean,
|
||||
|
|
@ -242,7 +242,7 @@
|
|||
.move-circle {
|
||||
position: absolute;
|
||||
bottom: 0rpx;
|
||||
left: 0rpx;
|
||||
right: 0rpx;
|
||||
width: 350rpx;
|
||||
height: 350rpx;
|
||||
display: flex;
|
||||
|
|
@ -254,25 +254,19 @@
|
|||
.click-box-top {
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
left: 70rpx;
|
||||
right: 70rpx;
|
||||
width: 220rpx;
|
||||
height: 80rpx;
|
||||
// background-color: red;
|
||||
}
|
||||
|
||||
.click-box-bottom {
|
||||
position: absolute;
|
||||
bottom: 20rpx;
|
||||
left: 70rpx;
|
||||
right: 70rpx;
|
||||
width: 220rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
|
||||
.click-box-left {
|
||||
position: absolute;
|
||||
bottom: 100rpx;
|
||||
left: 0;
|
||||
width: 90rpx;
|
||||
height: 150rpx;
|
||||
// background-color: red;
|
||||
}
|
||||
|
||||
.click-box-right {
|
||||
|
|
@ -281,6 +275,17 @@
|
|||
right: 0;
|
||||
width: 90rpx;
|
||||
height: 150rpx;
|
||||
|
||||
// background-color: red;
|
||||
}
|
||||
|
||||
.click-box-left {
|
||||
position: absolute;
|
||||
bottom: 100rpx;
|
||||
left: 0;
|
||||
width: 90rpx;
|
||||
height: 150rpx;
|
||||
// background-color: red;
|
||||
}
|
||||
|
||||
.click-box-center {
|
||||
|
|
@ -290,12 +295,14 @@
|
|||
width: 90rpx;
|
||||
height: 90rpx;
|
||||
// background-color: red;
|
||||
// background-color: red;
|
||||
}
|
||||
}
|
||||
|
||||
.move-circle-all {
|
||||
width: 350rpx;
|
||||
height: 350rpx;
|
||||
// background-color: red;
|
||||
}
|
||||
|
||||
.light-shadow {
|
||||
|
|
@ -354,7 +361,7 @@
|
|||
.pulse-circle {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
right: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border-radius: 50%;
|
||||
background: radial-gradient(circle, #03a4ff 0%, transparent 70%);
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
"name" : "护理单元",
|
||||
"appid" : "__UNI__FB2D473",
|
||||
"description" : "护理单元",
|
||||
"versionName" : "1.6.0",
|
||||
"versionCode" : 160,
|
||||
"versionName" : "1.6.1",
|
||||
"versionCode" : 161,
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
|
|
|
|||
16
pages.json
|
|
@ -53,23 +53,11 @@
|
|||
"position": "absolute",
|
||||
"left": "250px",
|
||||
"top": "120px",
|
||||
"width": "600px",
|
||||
"height": "450px",
|
||||
"width": "630px",
|
||||
"height": "510px",
|
||||
"background": "transparent"
|
||||
}
|
||||
}
|
||||
// {
|
||||
// "id": "optionSub",
|
||||
// "path": "pages/option",
|
||||
// "style": {
|
||||
// "position": "absolute",
|
||||
// "right": "110px",
|
||||
// "bottom": "0px",
|
||||
// "width": "170px",
|
||||
// "height": "170px",
|
||||
// "background": "transparent"
|
||||
// }
|
||||
// }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import request from '@/request/index.js'
|
|||
// 查询服务类型
|
||||
export const getServiceTree = () => {
|
||||
return request({
|
||||
url: '/nuIpadApi/nuConfigServiceCategory/getServiceTree',
|
||||
url: `${uni.getStorageSync('serverUrl')}/nuIpadApi/nuConfigServiceCategory/getServiceTree`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -926,6 +926,9 @@
|
|||
|
||||
onMounted(() => {
|
||||
downdonghua.value = 0;
|
||||
getServiceTree().then((res:any)=>{
|
||||
console.log("res",res)
|
||||
})
|
||||
})
|
||||
// 上次点击时间
|
||||
const lastTap = ref(0)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<MonitorView
|
||||
ref="monitor"
|
||||
init="5"
|
||||
style="width: 600px;height: 450px;"
|
||||
style="width: 630px;height: 510px;"
|
||||
@onTel="handleTelEvent"
|
||||
@onSnapShot="handleSnapShotEvent"
|
||||
@onRecord="handleRecordEvent"
|
||||
|
|
@ -28,7 +28,8 @@ export default {
|
|||
snapshot: [],
|
||||
record: [],
|
||||
talk: []
|
||||
}
|
||||
},
|
||||
suo:true,
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
|
|
@ -36,9 +37,31 @@ export default {
|
|||
const globalEvent = uni.requireNativePlugin && uni.requireNativePlugin("globalEvent");
|
||||
if (globalEvent && globalEvent.addEventListener) {
|
||||
globalEvent.addEventListener("myEvent", (e) => {
|
||||
console.log("myEvent", e);
|
||||
console.log(e)
|
||||
|
||||
if(e.recordUrl){
|
||||
uni.showToast({
|
||||
title: '录屏成功',
|
||||
icon: 'success', // 'success' | 'loading' | 'none'
|
||||
duration: 1500
|
||||
})
|
||||
}
|
||||
if(e.snapShotUrl){
|
||||
uni.showToast({
|
||||
title: '截屏成功',
|
||||
icon: 'success', // 'success' | 'loading' | 'none'
|
||||
duration: 1500
|
||||
})
|
||||
}
|
||||
if(this.suo && e.onVolumeChange){
|
||||
if(e.onVolumeChange){
|
||||
this.toggleVolume();
|
||||
}
|
||||
this.suo = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
// this.doStopRecord()
|
||||
|
||||
// 在页面生命周期注册 uni.$on 事件,暴露给其他页面调用
|
||||
uni.$on('monitor:doSnapshot', this.doSnapshot);
|
||||
|
|
@ -428,9 +451,9 @@ export default {
|
|||
|
||||
<style>
|
||||
.center-column {
|
||||
width: 600px;
|
||||
height: 450px;
|
||||
border-radius: 30px;
|
||||
width: 630px;
|
||||
height: 510px;
|
||||
/* border-radius: 30px; */
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -192,6 +192,7 @@
|
|||
isRel(form.username).then((res : any) => {
|
||||
if (res.result !== null && res.result.serverUrl) {
|
||||
uni.setStorageSync('serverUrl', res.result.serverUrl);
|
||||
console.log("url",res.result.serverUrl)
|
||||
time.value = Date.now();
|
||||
|
||||
getLoginCode(time.value).then((res : any) => {
|
||||
|
|
@ -231,7 +232,9 @@
|
|||
openbottom.value = true;
|
||||
}
|
||||
}
|
||||
const jumpFirst = ref(false);
|
||||
const canJump = () => {
|
||||
if(!jumpFirst.value){
|
||||
if (loading.value === 2) {
|
||||
setTimeout(() => {
|
||||
jumpTo(`/pages/watch/index`)
|
||||
|
|
@ -239,6 +242,9 @@
|
|||
} else {
|
||||
loading.value++
|
||||
}
|
||||
jumpFirst.value = true;
|
||||
}
|
||||
|
||||
}
|
||||
const loading = ref(0)
|
||||
const huakuaisuccess = () => {
|
||||
|
|
@ -282,11 +288,6 @@
|
|||
if (uni.getStorageSync('appWgtVersion') != uni.getSystemInfoSync().appWgtVersion) {
|
||||
showPopup.value = true;
|
||||
}
|
||||
init()
|
||||
});
|
||||
// 生命周期钩子
|
||||
onShow(() => {
|
||||
zyupgrade.value?.check_update();
|
||||
if (uni.getStorageSync('token') && uni.getStorageSync('token') !== 1) {
|
||||
if (loading.value === 2) {
|
||||
setTimeout(() => {
|
||||
|
|
@ -296,6 +297,12 @@
|
|||
loading.value++
|
||||
}
|
||||
}
|
||||
init()
|
||||
});
|
||||
// 生命周期钩子
|
||||
onShow(() => {
|
||||
zyupgrade.value?.check_update();
|
||||
|
||||
});
|
||||
|
||||
function init() {
|
||||
|
|
@ -313,12 +320,12 @@
|
|||
}
|
||||
monitorModule.cloudLoginIn(loginfo, (r) => {
|
||||
console.log("?????", r)
|
||||
if (!loading.value) {
|
||||
loading.value = true
|
||||
} else {
|
||||
if (loading.value === 2) {
|
||||
setTimeout(() => {
|
||||
jumpTo(`/pages/watch/index`)
|
||||
}, 500)
|
||||
} else {
|
||||
loading.value++
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,7 +116,17 @@
|
|||
<!-- <image style="width: 100%;height: 100%;" src="/static/index/watch/bgc.png" /> -->
|
||||
<!-- <image style="width: 100rpx;height: 100rpx;position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);" src="/static/index/watch/play.png" @click="jumpToCeshi" /> -->
|
||||
</view>
|
||||
<view style="display: flex;margin-top: 20rpx;">
|
||||
<view class="picture">
|
||||
<view class="picture-card" v-for="(item,index) in downpicture" :key="index"
|
||||
:style="{color:downtarget===index?'#1486EB':''}" @click="clickDownCard(index)">
|
||||
<view class="bgc-card" :style="{background:downtarget===index?'#E2EDFC':''}">
|
||||
<image style="width: 90rpx;height: 90rpx;"
|
||||
:src="`/static/index/picture/${index}${downtarget===index?1:0}.png`" />
|
||||
</view>
|
||||
{{item}}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view style="display: flex;margin-top: 20rpx;">
|
||||
<view class="card-father">
|
||||
<view class="up-title">
|
||||
<view class="">
|
||||
|
|
@ -129,12 +139,12 @@
|
|||
<view class="small-bgc" style="margin-right: 20rpx;">
|
||||
<image style="width: 100%;height: 100%;position: absolute;top: 0;left: 0;"
|
||||
src="/static/index/watch/bgc.png" />
|
||||
<!-- <image style="width: 50rpx;height: 50rpx;" src="/static/index/watch/play.png" /> -->
|
||||
|
||||
</view>
|
||||
<view class="small-bgc">
|
||||
<image style="width: 100%;height: 100%;position: absolute;top: 0;left: 0;"
|
||||
src="/static/index/watch/bgc.png" />
|
||||
<!-- <image style="width: 50rpx;height: 50rpx;" src="/static/index/watch/play.png" /> -->
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
|
@ -161,25 +171,24 @@
|
|||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="right-right">
|
||||
<view class="red-kuang" v-if="typeNow===0">
|
||||
<image style="width: 110rpx;height: 140rpx;margin-left: 40rpx;margin-top: -10rpx;"
|
||||
<image style="width: 75rpx;height: 90rpx;margin-left: 40rpx;margin-top: -10rpx;"
|
||||
src="/static/index/watch/laotai.png" />
|
||||
<view class="">
|
||||
<view
|
||||
style="margin-left: 20rpx;display: flex;align-items: center;margin-bottom: 5rpx;margin-top: 25rpx;">
|
||||
<view style="margin-left: 20rpx;display: flex;align-items: center;margin-bottom: 5rpx;">
|
||||
<view class="font-weight">
|
||||
王金凤
|
||||
</view>
|
||||
<view class="font-small" style="margin-left: 10rpx;">
|
||||
<view class="font-small" style="margin-left: 30rpx;">
|
||||
女 80岁
|
||||
</view>
|
||||
<view class="blue-bgc">
|
||||
当日指令
|
||||
</view>
|
||||
</view>
|
||||
<view class="font-small" style="margin-left: 20rpx;margin-top: 25rpx;">
|
||||
<view class="font-small" style="margin-left: 20rpx;margin-top: 0rpx;">
|
||||
入住时间:2025.01.01
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -233,55 +242,56 @@
|
|||
待进行
|
||||
</view>
|
||||
</view>
|
||||
<view class="juzhong">
|
||||
<view class="juzhong" style="top: -120rpx;">
|
||||
<donghua :width="`600rpx`" :height="`500rpx`" :links="blueArray" :playing="photoplay"
|
||||
:loop="true" :interval="120" />
|
||||
</view>
|
||||
<view class="juzhong" style="z-index: 2;margin-top: 80rpx;">
|
||||
<donghua :width="`400rpx`" :height="`250rpx`" :links="bluesmallArray" :playing="photoplay"
|
||||
<view class="juzhong" style="z-index: 2;margin-top: 50rpx;">
|
||||
<donghua :width="`300rpx`" :height="`200rpx`" :links="bluesmallArray" :playing="photoplay"
|
||||
:loop="true" :interval="120" />
|
||||
</view>
|
||||
<image style="width: 480rpx;height: 350rpx;" src="/static/index/newindex/wendu/2.png" />
|
||||
<view style="font-size: 38rpx;">
|
||||
<image style="width: 300rpx;height: 200rpx;" src="/static/index/newindex/wendu/2.png" />
|
||||
<view style="font-size: 25rpx;">
|
||||
一级压疮防护
|
||||
</view>
|
||||
<view class="small-button">
|
||||
<view class="gray-ball">
|
||||
<image class="laba-img" src="/static/index/video/laba.png" />
|
||||
|
||||
</view>
|
||||
<view class="gray-ball">
|
||||
<image class="laba-img" src="/static/index/video/video.png" />
|
||||
</view>
|
||||
<view class="gray-ball">
|
||||
<image class="laba-img" src="/static/index/video/txt.png" />
|
||||
<view class="bottom-view">
|
||||
<view v-for="(item,index) in cameraArray" class="button-father" @click="clickcamera(index)">
|
||||
<view class="bottom-button"
|
||||
:style="{backgroundColor:cameratarget.includes(index)?`#DDE9F0`:`` }">
|
||||
<image style="width: 70%;height: 70%"
|
||||
:src="`/static/index/camera/${index}${cameratarget.includes(index)?1:0}.png`" />
|
||||
</view>
|
||||
<view style="font-size: 25rpx;" :style="{color:cameratarget.includes(index)?`#0E86EA`:`` }">
|
||||
{{item}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="right-bottom">
|
||||
<view style="display: flex;margin-left: 50rpx;padding-top: 30rpx;">
|
||||
<image class="bottom-img" src="/static/index/newindex/rightmenu/2.png" />
|
||||
<view style="margin-top: 10rpx;margin-left: 5rpx;">
|
||||
协助执行
|
||||
<view class="jump-white" v-show="jumpopen">
|
||||
<view style="display: flex;justify-content: space-around;height: 100rpx;width: 100%;align-items: center;">
|
||||
<view class="">
|
||||
清晰度
|
||||
</view>
|
||||
<image style="width: 40rpx;height: 40rpx" src="/static/index/camera/back.png" @click="jumpopen=false" />
|
||||
</view>
|
||||
<view style="display: flex;">
|
||||
<view class="people-card" v-for="(item,index) in peopleArray" :key="index">
|
||||
<image style="width: 60rpx;height: 60rpx;" :src="item.url" />
|
||||
<view style="margin-left: 10rpx;">
|
||||
<view class="jump-item" v-for="(item,index) in where" :key="index" @click="clickjump(index)" :style="{backgroundColor:wheretarget===index?'#E5E8EE':''}" >
|
||||
<image style="width: 50rpx;height: 50rpx;margin-right: 10rpx;margin-left:-10rpx" :src="wheretarget===index?item.target:item.url" />
|
||||
<view :style="{color:wheretarget===index?'#0E86EA':''}">
|
||||
{{item.name}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<specialDrawerVue ref="gobackdrawer" :circletarget="openright" @open="cleanandopen">
|
||||
</view>
|
||||
</view>
|
||||
<!-- <specialDrawerVue ref="gobackdrawer" :circletarget="openright" @open="cleanandopen">
|
||||
<bigroll ref="wheelRef" :opensecondmenu="opensecondmenu" @firstIndex="firstIndex"
|
||||
@secondIndex="secondIndex" />
|
||||
</specialDrawerVue>
|
||||
</specialDrawerVue> -->
|
||||
<arrowkeys @movecard="movecard" :getblue="getblue" :moveleft="5" />
|
||||
<joysticknew @movecard="movecamera" v-show="!cameratarget.includes(5)" />
|
||||
<!-- 自动更新组件 -->
|
||||
<!-- <zy-update ref="zyupgrade" :noticeflag="true" theme="blue" :h5preview="false" oldversion="1.0.0"
|
||||
:appstoreflag="true" :autocheckupdate="true"></zy-update> -->
|
||||
|
|
@ -296,17 +306,11 @@
|
|||
import specialDrawerVue from '../../component/public/specialDrawer.vue';
|
||||
import bigroll from './drawer/index.vue';
|
||||
import { movedirection } from './api/lunpan.js'
|
||||
import joysticknew from '@/component/public/newgame/joysticknew.vue';
|
||||
|
||||
|
||||
const cameraArray = ref([])
|
||||
onLoad(() => {
|
||||
const globalEvent = uni.requireNativePlugin("globalEvent");
|
||||
globalEvent.addEventListener("myEvent", (e) => {
|
||||
console.log("myEvent", e);
|
||||
uni.showToast({
|
||||
title: "myEvent: " + JSON.stringify(e),
|
||||
duration: 2000,
|
||||
});
|
||||
});
|
||||
cameraArray.value = cameraSmall
|
||||
})
|
||||
const zyupgrade = ref(null);
|
||||
const menuIndex = ref(-1);
|
||||
|
|
@ -319,12 +323,85 @@
|
|||
const itemHeight = 100; // 每项高度 (px)
|
||||
const containerHeight = 400; // scroll-view 高度 (px)
|
||||
|
||||
const wheretarget = ref(3);
|
||||
const where = [
|
||||
{
|
||||
name:"左右翻转",
|
||||
url:"/static/index/camera/800.png",
|
||||
target:"/static/index/camera/801.png",
|
||||
},
|
||||
{
|
||||
name:"上下翻转",
|
||||
url:"/static/index/camera/810.png",
|
||||
target:"/static/index/camera/811.png",
|
||||
},
|
||||
{
|
||||
name:"中心翻转",
|
||||
url:"/static/index/camera/820.png",
|
||||
target:"/static/index/camera/821.png",
|
||||
},
|
||||
{
|
||||
name:"不翻转",
|
||||
url:"/static/index/camera/830.png",
|
||||
target:"/static/index/camera/831.png",
|
||||
},
|
||||
]
|
||||
|
||||
const downpicture = [
|
||||
"原图",
|
||||
"全景拉伸",
|
||||
"四分屏",
|
||||
"180°全景",
|
||||
"360°全景"
|
||||
]
|
||||
const cameratarget = ref([]);
|
||||
const cameraBig = [
|
||||
"截图",
|
||||
"录制",
|
||||
"对讲",
|
||||
"静音",
|
||||
"预警",
|
||||
"更多",
|
||||
"图片",
|
||||
"视频",
|
||||
"清晰度",
|
||||
"翻转",
|
||||
]
|
||||
const cameraSmall = [
|
||||
"截图",
|
||||
"录制",
|
||||
"对讲",
|
||||
"静音",
|
||||
"预警",
|
||||
"更多",
|
||||
]
|
||||
const downtarget = ref(0)
|
||||
|
||||
const jumpToCeshi = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/denglu'
|
||||
})
|
||||
}
|
||||
|
||||
const clickDownCard = (index : number) => {
|
||||
downtarget.value = index;
|
||||
switch (index) {
|
||||
case 0:
|
||||
uni.$emit('monitor:switchDisplay', 0)
|
||||
break
|
||||
case 1:
|
||||
uni.$emit('monitor:switchDisplay', 4)
|
||||
break
|
||||
case 2:
|
||||
uni.$emit('monitor:switchDisplay', 1)
|
||||
break
|
||||
case 3:
|
||||
uni.$emit('monitor:switchDisplay', 2)
|
||||
break
|
||||
case 4:
|
||||
uni.$emit('monitor:switchDisplay', 3)
|
||||
break
|
||||
}
|
||||
}
|
||||
const first = ref(5);
|
||||
const second = ref(0);
|
||||
const firstIndex = (index : number) => {
|
||||
|
|
@ -610,7 +687,9 @@
|
|||
openfirstmenu.value = true;
|
||||
opensecondmenu.value = false
|
||||
}
|
||||
|
||||
const movecamera = (type : number) => {
|
||||
handleKey(type)
|
||||
}
|
||||
const movecard = (type : number) => {
|
||||
|
||||
if (leftTargetIndex.value !== -1) {
|
||||
|
|
@ -672,7 +751,7 @@
|
|||
break
|
||||
case 1:
|
||||
if (typeNow.value < typeArray.value.length - 2) {
|
||||
console.log("???", typeArray.value.length)
|
||||
// console.log("???", typeArray.value.length)
|
||||
typeNow.value++
|
||||
topTargetIndex.value = typeNow.value
|
||||
|
||||
|
|
@ -832,6 +911,139 @@
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
const removeTimers = new Map<number, ReturnType<typeof setTimeout>>();
|
||||
onBeforeUnmount(() => {
|
||||
for (const t of removeTimers.values()) {
|
||||
clearTimeout(t)
|
||||
}
|
||||
removeTimers.clear()
|
||||
})
|
||||
const removeIndexOnce = (index : number) => {
|
||||
const pos = cameratarget.value.indexOf(index)
|
||||
if (pos !== -1) {
|
||||
cameratarget.value.splice(pos, 1) // 从 pos 开始删除 1 个元素
|
||||
}
|
||||
}
|
||||
const jumpopen = ref(false);
|
||||
const clickcamera = (index : number) => {
|
||||
|
||||
switch (index) {
|
||||
case 0:
|
||||
// 触发快照事件
|
||||
uni.$emit('monitor:doSnapshot')
|
||||
|
||||
// 如果数组里不存在就 push(避免重复)
|
||||
if (!cameratarget.value.includes(index)) {
|
||||
cameratarget.value.push(index)
|
||||
}
|
||||
|
||||
// 如果之前有定时器,先清掉(实现“重新计时”)
|
||||
if (removeTimers.has(index)) {
|
||||
clearTimeout(removeTimers.get(index)!)
|
||||
}
|
||||
|
||||
// 新建一个 1s 后移除的定时器
|
||||
const timerId = setTimeout(() => {
|
||||
const pos = cameratarget.value.indexOf(index)
|
||||
if (pos !== -1) {
|
||||
cameratarget.value.splice(pos, 1)
|
||||
}
|
||||
removeTimers.delete(index)
|
||||
}, 500)
|
||||
|
||||
removeTimers.set(index, timerId)
|
||||
break
|
||||
case 1:
|
||||
if (cameratarget.value.includes(index)) {
|
||||
uni.$emit('monitor:stopRecord');
|
||||
removeIndexOnce(index)
|
||||
} else {
|
||||
uni.$emit('monitor:startRecord');
|
||||
cameratarget.value.push(index)
|
||||
}
|
||||
break
|
||||
case 2:
|
||||
if (cameratarget.value.includes(index)) {
|
||||
uni.$emit('monitor:stopTalk');
|
||||
removeIndexOnce(index)
|
||||
} else {
|
||||
uni.$emit('monitor:openTalk');
|
||||
cameratarget.value.push(index)
|
||||
}
|
||||
break
|
||||
case 3:
|
||||
if (cameratarget.value.includes(index)) {
|
||||
uni.$emit('monitor:toggleVolume');
|
||||
removeIndexOnce(index)
|
||||
} else {
|
||||
uni.$emit('monitor:toggleVolume');
|
||||
cameratarget.value.push(index)
|
||||
}
|
||||
break
|
||||
case 4:
|
||||
if (cameratarget.value.includes(index)) {
|
||||
uni.$emit('monitor:stopAlarm')
|
||||
removeIndexOnce(index)
|
||||
} else {
|
||||
uni.$emit('monitor:startAlarm')
|
||||
cameratarget.value.push(index)
|
||||
}
|
||||
break
|
||||
case 5:
|
||||
if (cameratarget.value.includes(index)) {
|
||||
cameraArray.value = cameraSmall
|
||||
removeIndexOnce(index)
|
||||
} else {
|
||||
cameraArray.value = cameraBig
|
||||
cameratarget.value.push(index)
|
||||
}
|
||||
jumpopen.value = false;
|
||||
break
|
||||
case 6:
|
||||
if (cameratarget.value.includes(index)) {
|
||||
removeIndexOnce(index)
|
||||
} else {
|
||||
cameratarget.value.push(index)
|
||||
}
|
||||
break
|
||||
case 7:
|
||||
if (cameratarget.value.includes(index)) {
|
||||
removeIndexOnce(index)
|
||||
} else {
|
||||
cameratarget.value.push(index)
|
||||
}
|
||||
break
|
||||
case 8:
|
||||
if (cameratarget.value.includes(index)) {
|
||||
uni.$emit('monitor:changeQuality');
|
||||
removeIndexOnce(index)
|
||||
} else {
|
||||
uni.$emit('monitor:changeQuality');
|
||||
cameratarget.value.push(index)
|
||||
}
|
||||
break
|
||||
case 9:
|
||||
jumpopen.value = true
|
||||
|
||||
// if (cameratarget.value.includes(index)) {
|
||||
// removeIndexOnce(index)
|
||||
// } else {
|
||||
// cameratarget.value.push(index)
|
||||
// }
|
||||
break
|
||||
}
|
||||
}
|
||||
const clickjump = (index:number) => {
|
||||
wheretarget.value = index;
|
||||
if(index===3){
|
||||
uni.$emit('monitor:flipImage', 6)
|
||||
removeIndexOnce(9)
|
||||
}else{
|
||||
uni.$emit('monitor:flipImage', index)
|
||||
cameratarget.value.push(9)
|
||||
}
|
||||
|
||||
}
|
||||
// 对 moveFirstUp / moveFirstDown 包装防抖
|
||||
const moveUpDebounced = useThrottle(() => wheelRef.value?.moveFirstUp(), 400)
|
||||
|
|
@ -981,9 +1193,7 @@
|
|||
activeDir = type
|
||||
|
||||
// 执行开始
|
||||
movedirection(dirCode, 1).then((res : any) => {
|
||||
console.log("start", dirCode, res)
|
||||
})
|
||||
movedirection(dirCode, 1)
|
||||
|
||||
// 重置 stop 计时器
|
||||
if (stopTimers[type]) clearTimeout(stopTimers[type])
|
||||
|
|
@ -1108,6 +1318,7 @@
|
|||
margin-top: 100rpx;
|
||||
position: relative;
|
||||
display: flex;
|
||||
// background-color: red;
|
||||
// margin-bottom: 50rpx;
|
||||
|
||||
.menu {
|
||||
|
|
@ -1165,7 +1376,7 @@
|
|||
|
||||
.big-bgc {
|
||||
// margin-top: -50rpx;
|
||||
margin-top: 30rpx;
|
||||
margin-top: 20rpx;
|
||||
width: 1250rpx;
|
||||
height: 913rpx;
|
||||
border-radius: 50rpx;
|
||||
|
|
@ -1230,9 +1441,9 @@
|
|||
|
||||
.red-kuang {
|
||||
margin-top: 0rpx;
|
||||
margin-left: 50rpx;
|
||||
width: 550rpx;
|
||||
height: 190rpx;
|
||||
margin-left: 90rpx;
|
||||
width: 510rpx;
|
||||
height: 120rpx;
|
||||
border-radius: 50rpx;
|
||||
position: relative;
|
||||
display: flex;
|
||||
|
|
@ -1241,27 +1452,27 @@
|
|||
|
||||
|
||||
.blue-bgc {
|
||||
width: 140rpx;
|
||||
height: 60rpx;
|
||||
width: 120rpx;
|
||||
height: 50rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 1;
|
||||
font-size: 26rpx;
|
||||
font-size: 23rpx;
|
||||
background-color: rgba(248, 249, 250, 0.5);
|
||||
color: #017DE9;
|
||||
border-radius: 20rpx;
|
||||
margin-left: 10rpx;
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
|
||||
.font-weight {
|
||||
font-size: 32rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.font-small {
|
||||
|
||||
font-size: 30rpx;
|
||||
font-size: 25rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1269,14 +1480,14 @@
|
|||
|
||||
.states-father {
|
||||
display: flex;
|
||||
margin-top: 30rpx;
|
||||
margin-left: 50rpx;
|
||||
margin-top: 20rpx;
|
||||
margin-left: 90rpx;
|
||||
width: 100%;
|
||||
|
||||
.states {
|
||||
width: 170rpx;
|
||||
width: 157rpx;
|
||||
margin-right: 15rpx;
|
||||
height: 80rpx;
|
||||
height: 60rpx;
|
||||
border-radius: 60rpx;
|
||||
background-color: rgba(226, 227, 231, 0.5);
|
||||
display: flex;
|
||||
|
|
@ -1293,11 +1504,50 @@
|
|||
}
|
||||
}
|
||||
|
||||
.bottom-view {
|
||||
margin-left: 90rpx;
|
||||
margin-top: 20rpx;
|
||||
width: 510rpx;
|
||||
height: 690rpx;
|
||||
border-radius: 50rpx;
|
||||
background-color: rgba(226, 227, 231, 0.5);
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
overflow: hidden;
|
||||
align-items: flex-start;
|
||||
/* 关键:禁用 stretch,子项按自己的高度 */
|
||||
align-content: flex-start;
|
||||
/* 多行时顶端对齐(可选) */
|
||||
|
||||
.button-father {
|
||||
margin-top: 20rpx;
|
||||
margin-bottom: 0;
|
||||
margin-left: 45rpx;
|
||||
// height: 150rpx;
|
||||
// margin-right: 34rpx;
|
||||
// background-color: red;
|
||||
text-align: center;
|
||||
|
||||
.bottom-button {
|
||||
background-color: #F2F2F4;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
border: 1rpx solid #CDD3DD;
|
||||
border-radius: 35rpx;
|
||||
margin-bottom: 5rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.big-view {
|
||||
margin-left: 50rpx;
|
||||
margin-top: 30rpx;
|
||||
width: 550rpx;
|
||||
height: 625rpx;
|
||||
margin-left: 90rpx;
|
||||
margin-top: 20rpx;
|
||||
width: 510rpx;
|
||||
height: 340rpx;
|
||||
border-radius: 50rpx;
|
||||
background-color: rgba(226, 227, 231, 0.5);
|
||||
position: relative;
|
||||
|
|
@ -1308,8 +1558,8 @@
|
|||
|
||||
|
||||
.font-weight {
|
||||
font-size: 50rpx;
|
||||
margin-top: 45rpx;
|
||||
font-size: 40rpx;
|
||||
margin-top: 30rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
|
|
@ -1329,7 +1579,7 @@
|
|||
|
||||
.small-button {
|
||||
// width: 70%;
|
||||
margin-top: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
height: 70rpx;
|
||||
display: flex;
|
||||
// justify-content: space-between;
|
||||
|
|
@ -1548,4 +1798,51 @@
|
|||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.picture {
|
||||
display: flex;
|
||||
margin-top: 150rpx;
|
||||
|
||||
.picture-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-left: 20rpx;
|
||||
margin-right: 10rpx;
|
||||
width: 200rpx;
|
||||
|
||||
.bgc-card {
|
||||
width: 100%;
|
||||
height: 130rpx;
|
||||
background-color: #EAEAEC;
|
||||
border-radius: 30rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jump-white {
|
||||
position: absolute;
|
||||
bottom: 20rpx;
|
||||
left: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 400rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 30rpx;
|
||||
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1)
|
||||
}
|
||||
|
||||
.jump-item{
|
||||
margin: 10rpx 10rpx;
|
||||
height: 60rpx;
|
||||
justify-content: center;
|
||||
width: 93%;
|
||||
display: flex;
|
||||
border-radius: 20rpx;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 667 B |
|
After Width: | Height: | Size: 657 B |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 401 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
|
@ -1,10 +0,0 @@
|
|||
const _export_sfc = (sfc, props) => {
|
||||
const target = sfc.__vccOpts || sfc;
|
||||
for (const [key, val] of props) {
|
||||
target[key] = val;
|
||||
}
|
||||
return target;
|
||||
};
|
||||
export {
|
||||
_export_sfc as _
|
||||
};
|
||||
|
|
@ -1,11 +1,5 @@
|
|||
Promise.resolve("./pages/ceshianzhuo.js").then((res) => {
|
||||
res();
|
||||
});
|
||||
Promise.resolve("./pages/camera.js").then((res) => {
|
||||
res();
|
||||
});
|
||||
Promise.resolve("./pages/option.js").then((res) => {
|
||||
res();
|
||||
});
|
||||
Promise.resolve("./app.css.js").then(() => {
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,7 +1,22 @@
|
|||
import { r as requireNativePlugin, f as formatAppLog } from "../uni-app.es.js";
|
||||
import { resolveComponent, openBlock, createElementBlock, createElementVNode, createVNode } from "vue";
|
||||
import { _ as _export_sfc } from "../_plugin-vue_export-helper.js";
|
||||
const _style_0 = { "center-column": { "": { "width": 600, "height": 450, "borderRadius": 30, "overflow": "hidden" } } };
|
||||
function requireNativePlugin(name) {
|
||||
return weex.requireModule(name);
|
||||
}
|
||||
function formatAppLog(type, filename, ...args) {
|
||||
if (uni.__log__) {
|
||||
uni.__log__(type, filename, ...args);
|
||||
} else {
|
||||
console[type].apply(console, [...args, filename]);
|
||||
}
|
||||
}
|
||||
const _style_0 = { "center-column": { "": { "width": 630, "height": 510, "overflow": "hidden" } } };
|
||||
const _export_sfc = (sfc, props) => {
|
||||
const target = sfc.__vccOpts || sfc;
|
||||
for (const [key, val] of props) {
|
||||
target[key] = val;
|
||||
}
|
||||
return target;
|
||||
};
|
||||
const _sfc_main = {
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -18,14 +33,37 @@ const _sfc_main = {
|
|||
snapshot: [],
|
||||
record: [],
|
||||
talk: []
|
||||
}
|
||||
},
|
||||
suo: true
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
const globalEvent = requireNativePlugin && requireNativePlugin("globalEvent");
|
||||
if (globalEvent && globalEvent.addEventListener) {
|
||||
globalEvent.addEventListener("myEvent", (e) => {
|
||||
formatAppLog("log", "at pages/camera.nvue:39", "myEvent", e);
|
||||
formatAppLog("log", "at pages/camera.nvue:40", e);
|
||||
if (e.recordUrl) {
|
||||
uni.showToast({
|
||||
title: "录屏成功",
|
||||
icon: "success",
|
||||
// 'success' | 'loading' | 'none'
|
||||
duration: 1500
|
||||
});
|
||||
}
|
||||
if (e.snapShotUrl) {
|
||||
uni.showToast({
|
||||
title: "截屏成功",
|
||||
icon: "success",
|
||||
// 'success' | 'loading' | 'none'
|
||||
duration: 1500
|
||||
});
|
||||
}
|
||||
if (this.suo && e.onVolumeChange) {
|
||||
if (e.onVolumeChange) {
|
||||
this.toggleVolume();
|
||||
}
|
||||
this.suo = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
uni.$on("monitor:doSnapshot", this.doSnapshot);
|
||||
|
|
@ -60,27 +98,27 @@ const _sfc_main = {
|
|||
methods: {
|
||||
/* ------------------ 原有功能 ------------------ */
|
||||
handleTelEvent(event) {
|
||||
formatAppLog("log", "at pages/camera.nvue:79", "Tel event detail:", event.detail);
|
||||
formatAppLog("log", "at pages/camera.nvue:102", "Tel event detail:", event.detail);
|
||||
},
|
||||
switchDisplay(mode) {
|
||||
formatAppLog("log", "at pages/camera.nvue:84", "zzzzz", mode);
|
||||
formatAppLog("log", "at pages/camera.nvue:107", "zzzzz", mode);
|
||||
this.$refs.monitor && this.$refs.monitor.switchDisplayModeFragment(mode);
|
||||
},
|
||||
startAlarm() {
|
||||
this.isAlarming = true;
|
||||
this.$refs.monitor.startOrStopManualAlarm(this.isAlarming, (res) => {
|
||||
formatAppLog("log", "at pages/camera.nvue:91", "startAlarm callback:", res);
|
||||
formatAppLog("log", "at pages/camera.nvue:114", "startAlarm callback:", res);
|
||||
});
|
||||
},
|
||||
stopAlarm() {
|
||||
this.isAlarming = false;
|
||||
this.$refs.monitor.startOrStopManualAlarm(this.isAlarming, (res) => {
|
||||
formatAppLog("log", "at pages/camera.nvue:97", "stopAlarm callback:", res);
|
||||
formatAppLog("log", "at pages/camera.nvue:120", "stopAlarm callback:", res);
|
||||
});
|
||||
},
|
||||
flipImage(type) {
|
||||
this.$refs.monitor.changeImageSwitch(type, (res) => {
|
||||
formatAppLog("log", "at pages/camera.nvue:103", "flipImage callback:", res);
|
||||
formatAppLog("log", "at pages/camera.nvue:126", "flipImage callback:", res);
|
||||
});
|
||||
},
|
||||
resumeOrPause() {
|
||||
|
|
@ -111,12 +149,12 @@ const _sfc_main = {
|
|||
}
|
||||
try {
|
||||
this.$refs.monitor.snapShot((res) => {
|
||||
formatAppLog("log", "at pages/camera.nvue:143", "snapShot callback:", res);
|
||||
formatAppLog("log", "at pages/camera.nvue:166", "snapShot callback:", res);
|
||||
this._handleSnapshotResultFromNative(res, payload.reqId);
|
||||
});
|
||||
uni.showToast({ title: "正在截屏...", icon: "none", duration: 800 });
|
||||
} catch (err) {
|
||||
formatAppLog("error", "at pages/camera.nvue:148", "snapShot 调用失败", err);
|
||||
formatAppLog("error", "at pages/camera.nvue:171", "snapShot 调用失败", err);
|
||||
uni.showToast({ title: "snapShot 调用失败", icon: "none" });
|
||||
if (payload.reqId) {
|
||||
uni.$emit(`monitor:response:${payload.reqId}`, { ok: false, error: "snapShot_call_failed", detail: String(err) });
|
||||
|
|
@ -135,7 +173,7 @@ const _sfc_main = {
|
|||
}
|
||||
try {
|
||||
this.$refs.monitor.startRecord((res) => {
|
||||
formatAppLog("log", "at pages/camera.nvue:168", "startRecord callback:", res);
|
||||
formatAppLog("log", "at pages/camera.nvue:191", "startRecord callback:", res);
|
||||
if (payload.reqId) {
|
||||
uni.$emit(`monitor:response:${payload.reqId}`, { ok: true, res });
|
||||
}
|
||||
|
|
@ -143,7 +181,7 @@ const _sfc_main = {
|
|||
this.isRecording = true;
|
||||
uni.showToast({ title: "录屏已开始", icon: "none" });
|
||||
} catch (err) {
|
||||
formatAppLog("error", "at pages/camera.nvue:177", "startRecord 调用失败", err);
|
||||
formatAppLog("error", "at pages/camera.nvue:200", "startRecord 调用失败", err);
|
||||
uni.showToast({ title: "startRecord 调用失败", icon: "none" });
|
||||
if (payload.reqId) {
|
||||
uni.$emit(`monitor:response:${payload.reqId}`, { ok: false, error: "startRecord_call_failed", detail: String(err) });
|
||||
|
|
@ -165,11 +203,11 @@ const _sfc_main = {
|
|||
}
|
||||
try {
|
||||
this.$refs.monitor.stopRecord((res) => {
|
||||
formatAppLog("log", "at pages/camera.nvue:203", "stopRecord callback:", res);
|
||||
formatAppLog("log", "at pages/camera.nvue:226", "stopRecord callback:", res);
|
||||
this._handleRecordResultFromNative(res, payload.reqId);
|
||||
});
|
||||
} catch (err) {
|
||||
formatAppLog("error", "at pages/camera.nvue:208", "stopRecord 调用失败", err);
|
||||
formatAppLog("error", "at pages/camera.nvue:231", "stopRecord 调用失败", err);
|
||||
uni.showToast({ title: "stopRecord 调用失败", icon: "none" });
|
||||
if (payload.reqId) {
|
||||
uni.$emit(`monitor:response:${payload.reqId}`, { ok: false, error: "stopRecord_call_failed", detail: String(err) });
|
||||
|
|
@ -191,7 +229,7 @@ const _sfc_main = {
|
|||
}
|
||||
try {
|
||||
this.$refs.monitor.openTalk((res) => {
|
||||
formatAppLog("log", "at pages/camera.nvue:232", "openTalk callback:", res);
|
||||
formatAppLog("log", "at pages/camera.nvue:255", "openTalk callback:", res);
|
||||
if (payload.reqId) {
|
||||
uni.$emit(`monitor:response:${payload.reqId}`, { ok: true, res });
|
||||
}
|
||||
|
|
@ -199,7 +237,7 @@ const _sfc_main = {
|
|||
this.isTalking = true;
|
||||
uni.showToast({ title: "尝试建立对讲连接...", icon: "none" });
|
||||
} catch (err) {
|
||||
formatAppLog("error", "at pages/camera.nvue:241", "openTalk 调用失败", err);
|
||||
formatAppLog("error", "at pages/camera.nvue:264", "openTalk 调用失败", err);
|
||||
uni.showToast({ title: "openTalk 调用失败", icon: "none" });
|
||||
if (payload.reqId) {
|
||||
uni.$emit(`monitor:response:${payload.reqId}`, { ok: false, error: "openTalk_call_failed", detail: String(err) });
|
||||
|
|
@ -218,14 +256,14 @@ const _sfc_main = {
|
|||
}
|
||||
try {
|
||||
this.$refs.monitor.stopTalk((res) => {
|
||||
formatAppLog("log", "at pages/camera.nvue:261", "stopTalk callback:", res);
|
||||
formatAppLog("log", "at pages/camera.nvue:284", "stopTalk callback:", res);
|
||||
if (payload.reqId) {
|
||||
uni.$emit(`monitor:response:${payload.reqId}`, { ok: true, res });
|
||||
}
|
||||
});
|
||||
this.isTalking = false;
|
||||
} catch (err) {
|
||||
formatAppLog("error", "at pages/camera.nvue:268", "stopTalk 调用失败", err);
|
||||
formatAppLog("error", "at pages/camera.nvue:291", "stopTalk 调用失败", err);
|
||||
uni.showToast({ title: "stopTalk 调用失败", icon: "none" });
|
||||
if (payload.reqId) {
|
||||
uni.$emit(`monitor:response:${payload.reqId}`, { ok: false, error: "stopTalk_call_failed", detail: String(err) });
|
||||
|
|
@ -236,19 +274,19 @@ const _sfc_main = {
|
|||
// 处理来自模板 @onSnapShot 的事件(event.detail)
|
||||
handleSnapShotEvent(event) {
|
||||
const payload = event && event.detail ? event.detail : event;
|
||||
formatAppLog("log", "at pages/camera.nvue:281", "onSnapShot event:", payload);
|
||||
formatAppLog("log", "at pages/camera.nvue:304", "onSnapShot event:", payload);
|
||||
this._handleSnapshotResultFromNative(payload);
|
||||
},
|
||||
// 处理来自模板 @onRecord 的事件(event.detail)
|
||||
handleRecordEvent(event) {
|
||||
const payload = event && event.detail ? event.detail : event;
|
||||
formatAppLog("log", "at pages/camera.nvue:289", "onRecord event:", payload);
|
||||
formatAppLog("log", "at pages/camera.nvue:312", "onRecord event:", payload);
|
||||
this._handleRecordResultFromNative(payload);
|
||||
},
|
||||
// 处理来自模板 @onTalkStatus 的事件
|
||||
handleTalkEvent(event) {
|
||||
const payload = event && event.detail ? event.detail : event;
|
||||
formatAppLog("log", "at pages/camera.nvue:296", "onTalkStatus event:", payload);
|
||||
formatAppLog("log", "at pages/camera.nvue:319", "onTalkStatus event:", payload);
|
||||
const status = payload && payload.talkStatus;
|
||||
const tips = payload && payload.tips;
|
||||
uni.$emit("monitor:talk:status", payload);
|
||||
|
|
@ -292,7 +330,7 @@ const _sfc_main = {
|
|||
let payload = res;
|
||||
if (res.detail)
|
||||
payload = res.detail;
|
||||
formatAppLog("log", "at pages/camera.nvue:349", "snapshot payload normalized:", payload);
|
||||
formatAppLog("log", "at pages/camera.nvue:372", "snapshot payload normalized:", payload);
|
||||
if (reqIdFromCallback) {
|
||||
uni.$emit(`monitor:response:${reqIdFromCallback}`, { ok: !!payload.snapShotResult, payload });
|
||||
}
|
||||
|
|
@ -312,7 +350,7 @@ const _sfc_main = {
|
|||
} else {
|
||||
const err = payload.snapShotErrorCode || payload.error || "unknown";
|
||||
uni.showToast({ title: "截图失败: " + err, icon: "none", duration: 2e3 });
|
||||
formatAppLog("warn", "at pages/camera.nvue:376", "snapshot failed reason:", err, payload);
|
||||
formatAppLog("warn", "at pages/camera.nvue:399", "snapshot failed reason:", err, payload);
|
||||
}
|
||||
},
|
||||
_handleRecordResultFromNative(res, reqIdFromCallback = null) {
|
||||
|
|
@ -327,7 +365,7 @@ const _sfc_main = {
|
|||
let payload = res;
|
||||
if (res.detail)
|
||||
payload = res.detail;
|
||||
formatAppLog("log", "at pages/camera.nvue:392", "record payload normalized:", payload);
|
||||
formatAppLog("log", "at pages/camera.nvue:415", "record payload normalized:", payload);
|
||||
if (reqIdFromCallback) {
|
||||
uni.$emit(`monitor:response:${reqIdFromCallback}`, { ok: !!(payload.recordUrl || payload.snapShotResult), payload });
|
||||
}
|
||||
|
|
@ -341,11 +379,11 @@ const _sfc_main = {
|
|||
if (payload.recordUrl) {
|
||||
uni.showToast({ title: "录屏完成", icon: "success", duration: 1400 });
|
||||
this.isRecording = false;
|
||||
formatAppLog("log", "at pages/camera.nvue:413", "录屏地址:", payload.recordUrl);
|
||||
formatAppLog("log", "at pages/camera.nvue:436", "录屏地址:", payload.recordUrl);
|
||||
} else if (payload.recordFailedReason) {
|
||||
uni.showToast({ title: "录屏失败: " + payload.recordFailedReason, icon: "none", duration: 2e3 });
|
||||
this.isRecording = false;
|
||||
formatAppLog("warn", "at pages/camera.nvue:417", "record failed reason:", payload.recordFailedReason);
|
||||
formatAppLog("warn", "at pages/camera.nvue:440", "record failed reason:", payload.recordFailedReason);
|
||||
} else {
|
||||
if (payload.snapShotResult === true) {
|
||||
uni.showToast({ title: "录屏操作已完成(返回未知)", icon: "none" });
|
||||
|
|
@ -368,7 +406,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
createVNode(_component_MonitorView, {
|
||||
ref: "monitor",
|
||||
init: "5",
|
||||
style: { "width": "600px", "height": "450px" },
|
||||
style: { "width": "630px", "height": "510px" },
|
||||
onOnTel: $options.handleTelEvent,
|
||||
onOnSnapShot: $options.handleSnapShotEvent,
|
||||
onOnRecord: $options.handleRecordEvent,
|
||||
|
|
|
|||
|
|
@ -1,551 +0,0 @@
|
|||
import { r as requireNativePlugin, f as formatAppLog } from "../uni-app.es.js";
|
||||
import { resolveComponent, openBlock, createElementBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
|
||||
import { _ as _export_sfc } from "../_plugin-vue_export-helper.js";
|
||||
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" } } };
|
||||
const _sfc_main = {
|
||||
data() {
|
||||
return {
|
||||
phoneNumber: "1234567890",
|
||||
isAlarming: false,
|
||||
isRecording: false,
|
||||
// 录屏状态
|
||||
isTalking: false
|
||||
// 对讲状态
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
const globalEvent = requireNativePlugin && requireNativePlugin("globalEvent");
|
||||
if (globalEvent && globalEvent.addEventListener) {
|
||||
globalEvent.addEventListener("myEvent", (e) => {
|
||||
formatAppLog("log", "at pages/ceshianzhuo.nvue:73", "myEvent", e);
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/* ------------------ 原有功能 ------------------ */
|
||||
handleTelEvent(event) {
|
||||
formatAppLog("log", "at pages/ceshianzhuo.nvue:80", "Tel event detail:", event.detail);
|
||||
},
|
||||
switchDisplay(mode) {
|
||||
this.$refs.monitor && this.$refs.monitor.switchDisplayModeFragment(mode);
|
||||
},
|
||||
startAlarm() {
|
||||
this.isAlarming = true;
|
||||
this.$refs.monitor.startOrStopManualAlarm(this.isAlarming, (res) => {
|
||||
formatAppLog("log", "at pages/ceshianzhuo.nvue:91", "startAlarm callback:", res);
|
||||
});
|
||||
},
|
||||
stopAlarm() {
|
||||
this.isAlarming = false;
|
||||
this.$refs.monitor.startOrStopManualAlarm(this.isAlarming, (res) => {
|
||||
formatAppLog("log", "at pages/ceshianzhuo.nvue:97", "stopAlarm callback:", res);
|
||||
});
|
||||
},
|
||||
flipImage(type) {
|
||||
this.$refs.monitor.changeImageSwitch(type, (res) => {
|
||||
formatAppLog("log", "at pages/ceshianzhuo.nvue:103", "flipImage callback:", res);
|
||||
});
|
||||
},
|
||||
resumeOrPause() {
|
||||
this.$refs.monitor.resumeOrPause && this.$refs.monitor.resumeOrPause();
|
||||
},
|
||||
changeQuality() {
|
||||
this.$refs.monitor.changeQuality && this.$refs.monitor.changeQuality();
|
||||
},
|
||||
test() {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
const _component_MonitorView = resolveComponent("MonitorView");
|
||||
const _component_MonitorControlView = resolveComponent("MonitorControlView");
|
||||
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" }, [
|
||||
createVNode(_component_MonitorView, {
|
||||
ref: "monitor",
|
||||
init: "5",
|
||||
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" } }, [
|
||||
createVNode(_component_MonitorControlView, {
|
||||
ref: "control",
|
||||
init: "5",
|
||||
style: { "width": "300px", "height": "300px", "margin-top": "20px" }
|
||||
}, null, 512),
|
||||
createElementVNode("div", { class: "button-group" }, [
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[0] || (_cache[0] = ($event) => $options.switchDisplay(0))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("原图")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[1] || (_cache[1] = ($event) => $options.switchDisplay(1))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("四分屏")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[2] || (_cache[2] = ($event) => $options.switchDisplay(2))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("180°全景")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[3] || (_cache[3] = ($event) => $options.switchDisplay(3))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("360°全景")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[4] || (_cache[4] = ($event) => $options.switchDisplay(4))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("环状全景")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: $options.startAlarm
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("开启手动报警")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["onClick"]),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: $options.stopAlarm
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("停止手动报警")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["onClick"]),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[5] || (_cache[5] = ($event) => $options.flipImage(0))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("左右翻转")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[6] || (_cache[6] = ($event) => $options.flipImage(1))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("上下翻转")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[7] || (_cache[7] = ($event) => $options.flipImage(2))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("中心翻转")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[8] || (_cache[8] = ($event) => $options.flipImage(3))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("顺时针90°")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[9] || (_cache[9] = ($event) => $options.flipImage(4))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("逆时针90°")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[10] || (_cache[10] = ($event) => $options.flipImage(5))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("逆时针180°")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: _cache[11] || (_cache[11] = ($event) => $options.flipImage(6))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("不翻转")
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: $options.resumeOrPause
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("暂停/继续")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["onClick"]),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: $options.changeQuality
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("切换清晰度")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["onClick"]),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: $options.doSnapshot
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("截图")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["onClick"]),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
disabled: $data.isRecording,
|
||||
onClick: $options.doStartRecord
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(" 开始录屏 ")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled", "onClick"]),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
disabled: !$data.isRecording,
|
||||
onClick: $options.doStopRecord
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(" 结束录屏 ")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled", "onClick"]),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
disabled: $data.isTalking,
|
||||
onClick: $options.doOpenTalk
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(" 开始对讲 ")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled", "onClick"]),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
disabled: !$data.isTalking,
|
||||
onClick: $options.doStopTalk
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(" 结束对讲 ")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled", "onClick"]),
|
||||
createVNode(_component_button, {
|
||||
class: "button",
|
||||
onClick: $options.test
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("test")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["onClick"])
|
||||
])
|
||||
])
|
||||
])
|
||||
]);
|
||||
}
|
||||
const ceshianzhuo = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]]]);
|
||||
export {
|
||||
ceshianzhuo as default
|
||||
};
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
import { resolveComponent, openBlock, createElementBlock, createElementVNode, createVNode } from "vue";
|
||||
import { _ as _export_sfc } from "../_plugin-vue_export-helper.js";
|
||||
const _style_0 = { "center-column": { "": { "width": 170, "height": 170, "borderRadius": 80 } } };
|
||||
const _sfc_main = {
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
onLoad() {
|
||||
},
|
||||
methods: {}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
const _component_MonitorControlView = resolveComponent("MonitorControlView");
|
||||
return openBlock(), createElementBlock("scroll-view", {
|
||||
scrollY: true,
|
||||
showScrollbar: true,
|
||||
enableBackToTop: true,
|
||||
bubble: "true",
|
||||
style: { flexDirection: "column" }
|
||||
}, [
|
||||
createElementVNode("div", {
|
||||
class: "center-column",
|
||||
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.jumptonve && _ctx.jumptonve(...args))
|
||||
}, [
|
||||
createVNode(_component_MonitorControlView, {
|
||||
ref: "monitor",
|
||||
init: "5",
|
||||
style: { "width": "170px", "height": "170px" }
|
||||
}, null, 512)
|
||||
])
|
||||
]);
|
||||
}
|
||||
const option = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]]]);
|
||||
export {
|
||||
option as default
|
||||
};
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
import "vue";
|
||||
function requireNativePlugin(name) {
|
||||
return weex.requireModule(name);
|
||||
}
|
||||
function formatAppLog(type, filename, ...args) {
|
||||
if (uni.__log__) {
|
||||
uni.__log__(type, filename, ...args);
|
||||
} else {
|
||||
console[type].apply(console, [...args, filename]);
|
||||
}
|
||||
}
|
||||
export {
|
||||
formatAppLog as f,
|
||||
requireNativePlugin as r
|
||||
};
|
||||
|
|
@ -7,8 +7,8 @@
|
|||
"id": "__UNI__FB2D473",
|
||||
"name": "护理单元",
|
||||
"version": {
|
||||
"name": "1.6.0",
|
||||
"code": 160
|
||||
"name": "1.6.1",
|
||||
"code": 161
|
||||
},
|
||||
"description": "护理单元",
|
||||
"developer": {
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
"use weex:vue";
|
||||
|
||||
if (typeof Promise !== 'undefined' && !Promise.prototype.finally) {
|
||||
Promise.prototype.finally = function(callback) {
|
||||
const promise = this.constructor
|
||||
return this.then(
|
||||
value => promise.resolve(callback()).then(() => value),
|
||||
reason => promise.resolve(callback()).then(() => {
|
||||
throw reason
|
||||
})
|
||||
)
|
||||
}
|
||||
};
|
||||
|
||||
if (typeof uni !== 'undefined' && uni && uni.requireGlobal) {
|
||||
const global = uni.requireGlobal()
|
||||
ArrayBuffer = global.ArrayBuffer
|
||||
Int8Array = global.Int8Array
|
||||
Uint8Array = global.Uint8Array
|
||||
Uint8ClampedArray = global.Uint8ClampedArray
|
||||
Int16Array = global.Int16Array
|
||||
Uint16Array = global.Uint16Array
|
||||
Int32Array = global.Int32Array
|
||||
Uint32Array = global.Uint32Array
|
||||
Float32Array = global.Float32Array
|
||||
Float64Array = global.Float64Array
|
||||
BigInt64Array = global.BigInt64Array
|
||||
BigUint64Array = global.BigUint64Array
|
||||
};
|
||||
|
||||
|
||||
(()=>{var d=Object.create;var c=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var v=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var b=(e,t,o,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of y(t))!w.call(e,n)&&n!==o&&c(e,n,{get:()=>t[n],enumerable:!(s=f(t,n))||s.enumerable});return e};var h=(e,t,o)=>(o=e!=null?d(g(e)):{},b(t||!e||!e.__esModule?c(o,"default",{value:e,enumerable:!0}):o,e));var i=v((S,a)=>{a.exports=Vue});var r=h(i());var u=(e,t)=>{let o=e.__vccOpts||e;for(let[s,n]of t)o[s]=n;return o};var x={"center-column":{"":{width:170,height:170,borderRadius:80}}},V={data(){return{}},onLoad(){},methods:{}};function C(e,t,o,s,n,$){let _=(0,r.resolveComponent)("MonitorControlView");return(0,r.openBlock)(),(0,r.createElementBlock)("scroll-view",{scrollY:!0,showScrollbar:!0,enableBackToTop:!0,bubble:"true",style:{flexDirection:"column"}},[(0,r.createElementVNode)("div",{class:"center-column",onClick:t[0]||(t[0]=(...m)=>e.jumptonve&&e.jumptonve(...m))},[(0,r.createVNode)(_,{ref:"monitor",init:"5",style:{width:"170px",height:"170px"}},null,512)])])}var p=u(V,[["render",C],["styles",[x]]]);var l=plus.webview.currentWebview();if(l){let e=parseInt(l.id),t="pages/option",o={};try{o=JSON.parse(l.__query__)}catch(n){}p.mpType="page";let s=Vue.createPageApp(p,{$store:getApp({allowDefault:!0}).$store,__pageId:e,__pagePath:t,__pageQuery:o});s.provide("__globalStyles",Vue.useCssStyles([...__uniConfig.styles,...p.styles||[]])),s.mount("#root")}})();
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 667 B |
|
After Width: | Height: | Size: 657 B |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |