From 0d5eb2be4b5fc319f93ddbb4cc37a67c35bb5b3f Mon Sep 17 00:00:00 2001
From: Rain_ <904416525@qq.com>
Date: Sat, 22 Nov 2025 17:37:09 +0800
Subject: [PATCH] =?UTF-8?q?flx=EF=BC=9A=E6=96=B0=E5=A2=9E=E6=89=A7?=
=?UTF-8?q?=E6=B3=95=E8=AE=B0=E5=BD=95=E4=BB=AA=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/tree-node/cameraIndex.vue | 145 ++
pages.json | 21 +
.../bodyWornCamera/bodyWornCameraDetail.vue | 1082 +++++++++++++
.../components/calendarView.vue | 463 ++++++
pages/projectEnd/bodyWornCamera/index.vue | 158 ++
.../bodyWornCamera/playBackVideo.vue | 73 +
.../projectEnd/projectIndex/projectIndex.vue | 9 +-
.../component/nativeRtspPlayer.vue | 1429 +++++++++++++++++
.../bodyWornCamera/bodyWornCamera_offline.png | Bin 0 -> 857 bytes
.../bodyWornCamera/bodyWornCamera_online.png | Bin 0 -> 794 bytes
static/bodyWornCamera/bodyworn_audio.png | Bin 0 -> 1557 bytes
static/bodyWornCamera/bodyworn_pause.png | Bin 0 -> 1479 bytes
static/bodyWornCamera/bodyworn_play.png | Bin 0 -> 2186 bytes
13 files changed, 3378 insertions(+), 2 deletions(-)
create mode 100644 components/tree-node/cameraIndex.vue
create mode 100644 pages/projectEnd/bodyWornCamera/bodyWornCameraDetail.vue
create mode 100644 pages/projectEnd/bodyWornCamera/components/calendarView.vue
create mode 100644 pages/projectEnd/bodyWornCamera/index.vue
create mode 100644 pages/projectEnd/bodyWornCamera/playBackVideo.vue
create mode 100644 pages/videoManage/component/nativeRtspPlayer.vue
create mode 100644 static/bodyWornCamera/bodyWornCamera_offline.png
create mode 100644 static/bodyWornCamera/bodyWornCamera_online.png
create mode 100644 static/bodyWornCamera/bodyworn_audio.png
create mode 100644 static/bodyWornCamera/bodyworn_pause.png
create mode 100644 static/bodyWornCamera/bodyworn_play.png
diff --git a/components/tree-node/cameraIndex.vue b/components/tree-node/cameraIndex.vue
new file mode 100644
index 00000000..37357478
--- /dev/null
+++ b/components/tree-node/cameraIndex.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+ {{ item.name }}
+ ({{ deviceStateNum(item) }}/{{ item.children.length || 0 }})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 413ea5e2..b6c50a64 100644
--- a/pages.json
+++ b/pages.json
@@ -3307,6 +3307,27 @@
"style": {
"navigationBarTitleText": ""
}
+ },
+ {
+ "path" : "pages/projectEnd/bodyWornCamera/index",
+ "style" :
+ {
+ "navigationBarTitleText" : ""
+ }
+ },
+ {
+ "path" : "pages/projectEnd/bodyWornCamera/bodyWornCameraDetail",
+ "style" :
+ {
+ "navigationBarTitleText" : ""
+ }
+ },
+ {
+ "path" : "pages/projectEnd/bodyWornCamera/playBackVideo",
+ "style" :
+ {
+ "navigationBarTitleText" : ""
+ }
}
],
// "subPackages":[{
diff --git a/pages/projectEnd/bodyWornCamera/bodyWornCameraDetail.vue b/pages/projectEnd/bodyWornCamera/bodyWornCameraDetail.vue
new file mode 100644
index 00000000..6d77809e
--- /dev/null
+++ b/pages/projectEnd/bodyWornCamera/bodyWornCameraDetail.vue
@@ -0,0 +1,1082 @@
+
+
+
+
+
+
+
+ 设备名称:
+ {{policeCameraItemInfo.devName|| '--'}}
+
+
+ 设备编号:
+ {{policeCameraItemInfo.devSn|| '--'}}
+
+
+ 推送人:
+ {{policeCameraItemInfo.pusherNames|| '--'}}
+
+
+ 使用人:
+ {{policeCameraItemInfo.userNames|| '--'}}
+
+
+ 在线状态:
+
+ {{ policeCameraItemInfo.deviceState == 1 ? "在线" : "离线" }}
+
+
+
+ SD卡容量:
+ {{policeCameraItemInfo.sdCardCapacity|| '--'}}
+
+
+ 已用容量:
+ {{policeCameraItemInfo.usedCapacity|| '--'}}
+
+
+ 是否开启低电量推送:
+
+ {{ policeCameraItemInfo.enableLowBatteryPushNotification == 1 ? "是" : policeCameraItemInfo.enableLowBatteryPushNotification == 0 ? "否" : "--"}}
+
+
+
+ 网络类型:
+ {{policeCameraItemInfo.networkType|| '--'}}
+
+
+ 固件版本:
+ {{policeCameraItemInfo.firmwareVersion|| '--'}}
+
+
+
+ 电量:
+ {{policeCameraItemInfo.batteryLevel|| '--'}}
+
+
+ 剩余容量:
+
+ {{policeCameraItemInfo.usedCapacity ? policeCameraItemInfo.sdCardCapacity -policeCameraItemInfo.usedCapacity: "--"}}
+
+
+
+ 设备位置:
+ {{policeCameraItemInfo.devLocation || '--'}}
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.startTime }}
+ 至
+ {{ item.endTime }}
+
+
+ {{ item.workTicketNumber }}
+ {{ (item.fileLen / (1024 * 1024)).toFixed(2) }}MB
+
+
+
+
+
+
+
+
+ {{ item.workTicketNumber }}
+ {{ (item.fileLen / (1024 * 1024)).toFixed(2) }}MB
+
+
+ {{ item.uploadTime }}
+
+
+
+
+
+
+
+ {{ item.devName }}音频
+ {{ (item.fileLen / (1024 * 1024)).toFixed(2) }}MB
+
+
+ {{item.fileTime}}
+ 时长:{{ item.duration }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 暂无数据...
+
+
+
+
+
+
+
+
+ 今日使用时长:{{durationHour(formInline.duration)}}h
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/projectEnd/bodyWornCamera/components/calendarView.vue b/pages/projectEnd/bodyWornCamera/components/calendarView.vue
new file mode 100644
index 00000000..cb826bb8
--- /dev/null
+++ b/pages/projectEnd/bodyWornCamera/components/calendarView.vue
@@ -0,0 +1,463 @@
+
+
+
+
+ {{item.title}}
+
+
+
+
+
+
+ {{ day }}
+
+
+
+ {{ convertToChinese(currentMonth + 1) }}月
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/projectEnd/bodyWornCamera/index.vue b/pages/projectEnd/bodyWornCamera/index.vue
new file mode 100644
index 00000000..d9530227
--- /dev/null
+++ b/pages/projectEnd/bodyWornCamera/index.vue
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/projectEnd/bodyWornCamera/playBackVideo.vue b/pages/projectEnd/bodyWornCamera/playBackVideo.vue
new file mode 100644
index 00000000..86bb972b
--- /dev/null
+++ b/pages/projectEnd/bodyWornCamera/playBackVideo.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+ {{passData.workTicketNumber}}
+ {{passData.beginTime}}至{{passData.endTime}}
+
+
+
+
+
+
+
diff --git a/pages/projectEnd/projectIndex/projectIndex.vue b/pages/projectEnd/projectIndex/projectIndex.vue
index e9bdd456..5e8e8dae 100644
--- a/pages/projectEnd/projectIndex/projectIndex.vue
+++ b/pages/projectEnd/projectIndex/projectIndex.vue
@@ -285,7 +285,7 @@
if (!this.userInfo.personMail && options.fromPage && options.fromPage == 'loginPage') {
this.checkInfoComplete()
}
- if(options.sn) {
+ if (options.sn) {
this.getDetailInfo(options.sn)
}
// #ifdef APP-PLUS
@@ -305,7 +305,7 @@
data: data,
success: res => {
console.log("enterpriseInfo", res.result.layoutImage);
- if(res.result.layoutImage) {
+ if (res.result.layoutImage) {
that.loginBackgroundImage = res.result.layoutImage;
}
}
@@ -767,6 +767,11 @@
url: '../betonManage/index'
})
break
+ case 'bodyWornCamera':
+ uni.navigateTo({
+ url: '../bodyWornCamera/index'
+ })
+ break
case 'bridgeCraneMonitor':
uni.navigateTo({
url: '../bridgeCraneMonitor/index'
diff --git a/pages/videoManage/component/nativeRtspPlayer.vue b/pages/videoManage/component/nativeRtspPlayer.vue
new file mode 100644
index 00000000..3756ce0d
--- /dev/null
+++ b/pages/videoManage/component/nativeRtspPlayer.vue
@@ -0,0 +1,1429 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ H5环境不支持原生RTSP播放
+ 请在APP环境中使用
+
+
+
+
+
+
+
+
+
+ {{ isPlaying ? '暂停' : '播放' }}
+
+
+
+
+ {{ isMuted ? '静音' : '有声' }}
+
+
+
+
+ 全屏
+
+
+
+
+
+ {{ formatTime(currentTime) }}
+
+ {{ formatTime(duration) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/bodyWornCamera/bodyWornCamera_offline.png b/static/bodyWornCamera/bodyWornCamera_offline.png
new file mode 100644
index 0000000000000000000000000000000000000000..aed25f9603bc3f94578b7df6bba3a7602cba7963
GIT binary patch
literal 857
zcmV-f1E&0mP)%`0#-P;O{#bZ0u8#ki`W&=h9f2?-;9_U5KDlIGK|Jbn)RyDwmJqeY}fZVjez~Pt`HQP
zDwX+T_86D4ZFPVRkR66DlG>ev=d@3ir$7|6yPniu2GX)+)<84>V;FNM=Doh}f_MVD
z(QT7Axch;`OO!dU@HL0rI?D3zkeR_}5M{fE@LqAdQ2l46llxKy&z5%BPUwdY2C)5r
zYYT2xaP@fDBP8XU_3D{_`j207*fxao?ZCbO000SaNLh0L01m_e01m_fl`9S#0006M
zNklBVEp5*FXbCBdZNs=2|`=Tg*ll<-z%U8k77&F>xJ;$J+
zPpG%gK|FqtPZ;2og9A=E_(H&U%fS!dESw02Vw9lP`oiTpaYWU&?Zq)8t0`v~BQK|z
za{+8cWSyqzy^XQc7*>{L)HF>@@~h3`Yu_NG-~Zq$8wiS00000NkvXXu0mjf#EOO2
literal 0
HcmV?d00001
diff --git a/static/bodyWornCamera/bodyWornCamera_online.png b/static/bodyWornCamera/bodyWornCamera_online.png
new file mode 100644
index 0000000000000000000000000000000000000000..552a7c41bba45b9adf4fffe5a74b4d9be9ca6483
GIT binary patch
literal 794
zcmV+#1LgdQP)%`0#-P;O{#bZ0u8#ki`W&=h9f2?-;9_U5KDlIGK|Jbn)RyDwmJqeY}fZVjez~Pt`HQP
zDwX+T_86D4ZFPVRkR66DlG>ev=d@3ir$7|6yPniu2GX)+)<84>V;FNM=Doh}f_MVD
z(QT7Axch;`OO!dU@HL0rI?D3zkeR_}5M{fE@LqAdQ2l46llxKy&z5%BPUwdY2C)5r
zYYT2xaP@fDBP8XU_3D{_`j207*fxao?ZCbO000SaNLh0L01m_e01m_fl`9S#0005i
zNklO#NgW5^Nm2+Q98(6pN-;LGj-(}{eb>r4cLWep
z25|>Ftht2z!Y`d`(yK=n=r3_x=_@SL(ksg8i?O+n#Ipcn2Q%5OpAYAvil5g=t8vc-uy@YwHk-}k
z9OGGlC&l~kisbu*Tig-A6UqHB4EL#z=t+Q=+HSWu@p+?>^rKS5H<^AIhGzhMD%3xv
YZ-Y;@|032h#sB~S07*qoM6N<$g7E`x^8f$<
literal 0
HcmV?d00001
diff --git a/static/bodyWornCamera/bodyworn_audio.png b/static/bodyWornCamera/bodyworn_audio.png
new file mode 100644
index 0000000000000000000000000000000000000000..f576581cb7192e6edd9279e804a42f56dbc54638
GIT binary patch
literal 1557
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
literal 0
HcmV?d00001
diff --git a/static/bodyWornCamera/bodyworn_play.png b/static/bodyWornCamera/bodyworn_play.png
new file mode 100644
index 0000000000000000000000000000000000000000..993aa60a737627ba1962a54349b89bbd0bf1fe9d
GIT binary patch
literal 2186
zcmV;52zB>~P)sAK~#7F?Va6m
z+eQ$__l}Y!TgePvLEs8PR}iWKfoi}~1(x440qM!Rqza@oV9^zruE25yhAXgUY<-)!
z>;h!;5$xd(IDjCD--GGlkt5>I<=)=j-U6VZp`oFnVaX9tbNt}a0~ojQqvE4#KO9wI
z^0*QX2Twz&F|`sJMeTxAzk?DTAygNi^1zN$As~ztj363+9u9sTK~0#c(0)J`dhW}X
z+)|2!6>V^eIuk;SA|-|pt-l`*#2L(pnFt+Qt`J*7jCb6N%c0Jcl0#7A!{OkUQ>d6q
zg(iW8ga9wP3$taUB87r)451<_5xPbKKL!OCyH!l2r3y_xSjh7}fP4)#Mk#R&3I=5g
zUYgK;aPFfOALaGIN&)&&aSB4wDiHl)
z@bn)j0p~*Jw_=*C#4$z*Lls?NX!bmJgwPw@{xK1M2gALN&3o|+J{b0&y#dEK6`B?o
zLaGz|ui?eT;*L<mFl#K*;Dz+1$@d7$RiVr5f5f>&n@!Y(rQsBq<{mTGXp8f1sqCrGz
z(?#4}SZE88LwwCnSuVmBaw$TtA7zJ}Zp1DmbmA_ePgx=-ZsK|{ODpCuvu+YwzAWNK
zatm$hlNG?;FnD$dH75C0N}9wy&C3e;YzaBZ7MZNz`eofkCde(|XWfL@y|Kg*6}p^U
z>w;WD_Xa->AoJV5!Jpdm%9A&F!Ot2_#MXW04v4h?a$xN`CLz)h{|d6?SmY4q5VBYy
z*Kpq94GAa5o^3+PN@x?m9J`A-vg9<9h-6K3ov|^!u$kPgT!(CdHrS6RzBw0}NZd%&
zBSF(&fl-#F3o*9ni8X)W#>>hP%#!W57khYJ``oyS#+#zF5eXu~i!hO({?P3aYhN$Hj;XqVe@E??RyK2j9D3fRWG`Ww0qv%3YiUYwuw}
zAp^qfBKvDKwdzcv{otmfwPtm*a4zF9`wt#>=+Q-Xc3FT3e8T
zHtI-%_a|Stq!Gr7p*TO`%$pwC8nxS~nRo-;M}j*@?^4Qt`OAqzbKHJczl^Hy0*SU%4SJy5TI^0}i3x
zz+4g}Yi!Z&`Sa9wfF%MNp#iSgISLnGHWoehpn*jf3@DJPYmeM@9SwFgLRUm1bVV>i
z>(1jvWoFvu9xhm5gkBASfphlDM4n9wF6!VdTFqa^tpq%7K(yAwwC7WW&e;C(VA;`R
zHsAdzQdf<-$uLZNGAqHo6fnPPO1N=v(PZz^GgOF|w?=qTzdkL5Jo2F#EtUNIAQS>@3B=Ek3i~5a!87|W(;)?zyKqm^;R7pFW6sH7ot1zN7j52
zY#1FYG2UU(Sv3?mx?5++WpHtGjJnoNfcG&Lnyfl*2f+}#kiq3ESP-&YhHW9f-JW55
zmQZP8#pr-qGQgaZG~m)6#SU!`Nm&U^0r_Ml#~|9&_oA%xC{>V%e5pV0PHo#PkCj;O
zg40OX6#JgY?5{FDik+i3UcPdJ37xo*>mFow
zY>7T4$D8X-GVxtfj}EQKlg25z$X!5l*Re&H<|LmjPPPZ%`%qJo<9Cs^5z3@((Pok3
ze#UJiIBeRnx$cfw1oPIOab|9_XdjZoLK8L(1_g`}>mp$=xO*+`d=QXWYF!
zqkF9Yte;KqJdxb-;;Q}MJzD5UL;l-}K;n;Kx2(SZr3p>k>)pHqHKvN*sig`%g#-t&
zepI)*J<2EJFQ;Ec2jEJCp3)m!Zz&b+&06p(1)fr=&{HVxmM!rbFW5JUz1?tk4}n?q
zu%3y~Q
literal 0
HcmV?d00001