diff --git a/pages/feature/createAdmin.vue b/pages/feature/createAdmin.vue
index 078007e..e526422 100644
--- a/pages/feature/createAdmin.vue
+++ b/pages/feature/createAdmin.vue
@@ -103,7 +103,7 @@
import { useBasicStore } from '@/stores/basic'
import { createKeyRequest } from '@/api/key'
import { useBluetoothStore } from '@/stores/bluetooth'
- import { transportType } from '@/utils/constants'
+ import { transportType } from '@/constant/transportType'
const instance = getCurrentInstance().proxy
const eventChannel = instance.getOpenerEventChannel()
diff --git a/pages/feature/createCard.vue b/pages/feature/createCard.vue
index d1bcbf1..c4dc32c 100644
--- a/pages/feature/createCard.vue
+++ b/pages/feature/createCard.vue
@@ -127,7 +127,7 @@
import { useUserStore } from '@/stores/user'
import { useBluetoothStore } from '@/stores/bluetooth'
import { checkCardNameRequest } from '@/api/card'
- import { transportType } from '@/utils/constants'
+ import { transportType } from '@/constant/transportType'
const instance = getCurrentInstance().proxy
const eventChannel = instance.getOpenerEventChannel()
diff --git a/pages/feature/createFace.vue b/pages/feature/createFace.vue
index 36a9d6c..6a06ad4 100644
--- a/pages/feature/createFace.vue
+++ b/pages/feature/createFace.vue
@@ -104,7 +104,7 @@
import { useUserStore } from '@/stores/user'
import { useBluetoothStore } from '@/stores/bluetooth'
import { checkFaceNameRequest } from '@/api/face'
- import { transportType } from '@/utils/constants'
+ import { transportType } from '@/constant/transportType'
const instance = getCurrentInstance().proxy
const eventChannel = instance.getOpenerEventChannel()
diff --git a/pages/feature/createFingerprint.vue b/pages/feature/createFingerprint.vue
index 8d035c4..fbad371 100644
--- a/pages/feature/createFingerprint.vue
+++ b/pages/feature/createFingerprint.vue
@@ -127,7 +127,7 @@
import { useUserStore } from '@/stores/user'
import { useBluetoothStore } from '@/stores/bluetooth'
import { checkFingerprintNameRequest } from '@/api/fingerprint'
- import { transportType } from '@/utils/constants'
+ import { transportType } from '@/constant/transportType'
const instance = getCurrentInstance().proxy
const eventChannel = instance.getOpenerEventChannel()
diff --git a/pages/feature/createPalmVein.vue b/pages/feature/createPalmVein.vue
index 9bf176c..d44d15c 100644
--- a/pages/feature/createPalmVein.vue
+++ b/pages/feature/createPalmVein.vue
@@ -128,7 +128,7 @@
import { useUserStore } from '@/stores/user'
import { useBluetoothStore } from '@/stores/bluetooth'
import { checkPalmVeinNameRequest } from '@/api/palmVein'
- import { transportType } from '@/utils/constants'
+ import { transportType } from '@/constant/transportType'
const instance = getCurrentInstance().proxy
const eventChannel = instance.getOpenerEventChannel()
diff --git a/pages/feature/createRemote.vue b/pages/feature/createRemote.vue
index fc2f954..d17dd86 100644
--- a/pages/feature/createRemote.vue
+++ b/pages/feature/createRemote.vue
@@ -83,7 +83,7 @@
import { useUserStore } from '@/stores/user'
import { useBluetoothStore } from '@/stores/bluetooth'
import { checkRemoteNameRequest } from '@/api/remote'
- import { transportType } from '@/utils/constants'
+ import { transportType } from '@/constant/transportType'
const instance = getCurrentInstance().proxy
const eventChannel = instance.getOpenerEventChannel()
diff --git a/pages/p2p/authorizeWechat.vue b/pages/p2p/authorizeWechat.vue
index 75d6808..6d3c9bd 100644
--- a/pages/p2p/authorizeWechat.vue
+++ b/pages/p2p/authorizeWechat.vue
@@ -1,19 +1,20 @@
-
- 授权后,设备可呼叫该微信
+
授权
- 您已授权
+ 您已授权
- 您已拒绝授权,请去设置中
- 打开语音、视频通话提醒开关
+ 您已拒绝授权,请去设置中
+
+ 打开语音、视频通话提醒开关
+
+
+ 授权后,在设备上按下门铃按钮
+
+
+ 微信会收到视频通话请求
+
diff --git a/pages/p2p/p2pPlayer.vue b/pages/p2p/p2pPlayer.vue
index 0a07bbc..3ae152b 100644
--- a/pages/p2p/p2pPlayer.vue
+++ b/pages/p2p/p2pPlayer.vue
@@ -54,9 +54,9 @@
-
+
-
+
- 长按说话
+ 长按说话
- 挂断
+ 挂断
@@ -99,7 +99,7 @@
class="w-60 h-60"
>
- 开锁
+ 开锁
@@ -123,13 +123,23 @@
import { onUnload } from '@dcloudio/uni-app'
import { useBluetoothStore } from '@/stores/bluetooth'
import { useBasicStore } from '@/stores/basic'
+ import { useUserStore } from '@/stores/user'
import { passthrough } from '@/api/sdk'
+ import { getLockNetTokenRequest } from '@/api/lock'
const $bluetooth = useBluetoothStore()
const $basic = useBasicStore()
-
+ const $user = useUserStore()
const buttonInfo = ref(null)
+ const onlineToken = ref('0')
+
+ const lockId = ref()
+
+ const time = ref(0)
+
+ const pending = ref(false)
+
const index = ref(1)
const range = ref([
{ name: '标清', value: 'standard' },
@@ -166,6 +176,8 @@
} else {
$basic.backAndToast(message)
}
+
+ await getServeTime()
})
onUnload(() => {
@@ -213,7 +225,110 @@
}
const handleLock = () => {
- console.log('handleLock')
+ uni.showModal({
+ title: '提示',
+ content: '是否确认开锁?',
+ success: res => {
+ if (res.confirm) {
+ openDoorOperate()
+ }
+ }
+ })
+ }
+
+ const getServeTime = async () => {
+ const { code, data } = await $bluetooth.updateServerTimestamp()
+ if (code === 0) {
+ time.value = parseInt((data.date - new Date().getTime()) / 1000, 10)
+ }
+ }
+
+ const openDoorOperate = async () => {
+ const timestamp = new Date().getTime()
+ if (pending.value) {
+ return
+ }
+
+ const netWork = await $basic.getNetworkType()
+ if (!netWork) {
+ return
+ }
+
+ if ($bluetooth.currentLockInfo.appUnlockOnline) {
+ const result = await getNetToken()
+ if (!result) {
+ pending.value = false
+ return
+ }
+ }
+
+ uni.showLoading({
+ title: '开锁中'
+ })
+ uni.vibrateLong()
+ pending.value = true
+ const openMode = $bluetooth.currentLockInfo.appUnlockOnline ? 1 : 0
+
+ const { code } = await $bluetooth.openDoor({
+ name: $bluetooth.currentLockInfo.lockName,
+ uid: $user.userInfo.uid.toString(),
+ openMode,
+ openTime: parseInt(new Date().getTime() / 1000, 10) + time.value,
+ onlineToken: onlineToken.value
+ })
+
+ $bluetooth
+ .syncRecord({
+ keyId: $bluetooth.keyId.toString(),
+ uid: $user.userInfo.uid.toString()
+ })
+ .then(() => {
+ $bluetooth.closeBluetoothConnection()
+ })
+
+ uni.reportEvent('open_door', {
+ result: code,
+ duration: new Date().getTime() - timestamp
+ })
+
+ if (code === 0) {
+ uni.showToast({
+ title: `开门成功`,
+ icon: 'none'
+ })
+ } else if (code === 7) {
+ uni.showToast({
+ title: `钥匙过期`,
+ icon: 'none'
+ })
+ } else if (code === 13) {
+ uni.showToast({
+ title: `钥匙当前不可用`,
+ icon: 'none'
+ })
+ } else if (code === -1) {
+ uni.showToast({
+ title: `开锁失败`,
+ icon: 'none'
+ })
+ }
+ uni.hideLoading()
+ pending.value = false
+ }
+
+ const getNetToken = async () => {
+ const { code, data, message } = await getLockNetTokenRequest({
+ lockId: lockId.value
+ })
+ if (code === 0) {
+ onlineToken.value = data.token
+ return true
+ }
+ uni.showToast({
+ title: message,
+ icon: 'none'
+ })
+ return false
}
const startVoice = () => {