feat:WIFI锁 开门方向,自动闭锁,电机功率,猫眼设置,常开模式

This commit is contained in:
Liuyf 2025-03-05 18:51:12 +08:00
parent b4aeff31fd
commit 093b9a8241
10 changed files with 133 additions and 93 deletions

View File

@ -7,9 +7,9 @@
{{
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0]
? catEyeMode[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0]?.catEyeMode - 1
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0]?.catEyeMode
].name
: ''
: ""
}}
</view>
<up-icon name="arrow-right"></up-icon>
@ -75,7 +75,7 @@
const value = computed(() => {
const list = []
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0]) {
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode - 1)
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode)
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 4) {
if (
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeModeConfig

View File

@ -3,6 +3,58 @@
<view
@click="updateCatEyeConfig(0)"
class="flex items-center bg-#ececec py-4 pr-2 pl-1 mx-3 my-6 rounded-2xl"
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 0
? 'bg-#d9e8fd'
: 'bg-#ececec'
]"
>
<view class="w-80 h-full flex items-center justify-center">
<up-icon
v-if="
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 0
"
name="checkbox-mark"
color="#2a85ec"
size="40"
></up-icon>
</view>
<view class="flex-1">
<view
class="text-lg font-bold"
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 0
? 'text-#2a85ec'
: 'text-black'
]"
>{{ catEyeMode[0].name }}</view
>
<view
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 0
? 'text-#2a85ec'
: 'text-gray-500'
]"
>
<view class="text-sm"> 适合门口较为安全的环境</view>
<view class="text-sm">仅发生特定事件才录像并可查看实时画面</view>
<view class="text-sm">一般情况下满电可使用7-8个月</view></view
>
</view>
<view
@click.stop="updateType(0)"
class="text-gray-500 border-2 border-solid border-gray-500 py-1 px-1 text-sm rounded-3xl w-80 ml-1 text-center"
>
查看
</view>
</view>
<view
@click="updateCatEyeConfig(1)"
class="flex items-center bg-#ececec py-4 pr-2 pl-1 mx-3 my-6 rounded-2xl"
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 1
@ -30,7 +82,8 @@
? 'text-#2a85ec'
: 'text-black'
]"
>{{ catEyeMode[0].name }}</view
>
{{ catEyeMode[1].name }}</view
>
<view
:class="[
@ -40,20 +93,19 @@
: 'text-gray-500'
]"
>
<view class="text-sm"> 适合门口较为安全的环境</view>
<view class="text-sm">仅发生特定事件才录像并可查看实时画面</view>
<view class="text-sm">一般情况下满电可使用7-8个月</view></view
<view class="text-sm"> 有人逗留或发生特定事件才录像可随时查看实时画面</view>
<view class="text-sm">一般情况下满电可使用5~6个月</view></view
>
</view>
<view
@click.stop="updateType(0)"
@click.stop="updateType(1)"
class="text-gray-500 border-2 border-solid border-gray-500 py-1 px-1 text-sm rounded-3xl w-80 ml-1 text-center"
>
查看
</view>
</view>
<view
@click="updateCatEyeConfig(1)"
@click="updateCatEyeConfig(2)"
class="flex items-center bg-#ececec py-4 pr-2 pl-1 mx-3 my-6 rounded-2xl"
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
@ -82,8 +134,7 @@
? 'text-#2a85ec'
: 'text-black'
]"
>
{{ catEyeMode[1].name }}</view
>{{ catEyeMode[2].name }}</view
>
<view
:class="[
@ -93,19 +144,20 @@
: 'text-gray-500'
]"
>
<view class="text-sm"> 有人逗留或发生特定事件才录像可随时查看实时画面</view>
<view class="text-sm">一般情况下满电可使用5~6个月</view></view
<view class="text-sm"> 适合门口人员复杂较不安全的环境</view>
<view class="text-sm">有人出现就录像可随时查看实时画面</view>
<view class="text-sm">一般情况下满电可使用2~4个月</view></view
>
</view>
<view
@click.stop="updateType(1)"
@click.stop="updateType(2)"
class="text-gray-500 border-2 border-solid border-gray-500 py-1 px-1 text-sm rounded-3xl w-80 ml-1 text-center"
>
查看
</view>
</view>
<view
@click="updateCatEyeConfig(2)"
@click="updateCatEyeConfig(3)"
class="flex items-center bg-#ececec py-4 pr-2 pl-1 mx-3 my-6 rounded-2xl"
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
@ -134,64 +186,12 @@
? 'text-#2a85ec'
: 'text-black'
]"
>{{ catEyeMode[2].name }}</view
>
<view
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 3
? 'text-#2a85ec'
: 'text-gray-500'
]"
>
<view class="text-sm"> 适合门口人员复杂较不安全的环境</view>
<view class="text-sm">有人出现就录像可随时查看实时画面</view>
<view class="text-sm">一般情况下满电可使用2~4个月</view></view
>
</view>
<view
@click.stop="updateType(2)"
class="text-gray-500 border-2 border-solid border-gray-500 py-1 px-1 text-sm rounded-3xl w-80 ml-1 text-center"
>
查看
</view>
</view>
<view
@click="updateCatEyeConfig(3)"
class="flex items-center bg-#ececec py-4 pr-2 pl-1 mx-3 my-6 rounded-2xl"
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 4
? 'bg-#d9e8fd'
: 'bg-#ececec'
]"
>
<view class="w-80 h-full flex items-center justify-center">
<up-icon
v-if="
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 4
"
name="checkbox-mark"
color="#2a85ec"
size="40"
></up-icon>
</view>
<view class="flex-1">
<view
class="text-lg font-bold"
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 4
? 'text-#2a85ec'
: 'text-black'
]"
>{{ catEyeMode[3].name }}</view
>
<view
:class="[
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 4
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 3
? 'text-#2a85ec'
: 'text-gray-500'
]"
@ -263,7 +263,7 @@
const value = computed(() => {
const list = []
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0]) {
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode - 1)
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode)
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 4) {
if (
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeModeConfig
@ -331,7 +331,7 @@
const toCustom = () => {
if (
!$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] ||
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode !== 4
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode !== 3
) {
uni.showToast({
title: '请先选择自定义模式',
@ -352,7 +352,7 @@
const updateCatEyeConfig = index => {
if (
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0] &&
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === index + 1
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === index
) {
return
}
@ -363,7 +363,7 @@
type: 'catEyeConfig',
params: [
{
catEyeMode: index + 1,
catEyeMode: index,
catEyeModeConfig: $bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0]
? $bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeModeConfig
: {

View File

@ -105,8 +105,8 @@
const value = computed(() => {
const list = []
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0]) {
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode - 1)
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 4) {
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode)
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 3) {
if (
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeModeConfig
.recordStartTime === 0 &&

View File

@ -60,7 +60,7 @@
const pending = ref(false)
onMounted(() => {
value.value = $bluetooth.currentLockSetting.lockSettingInfo.openDirection
value.value = $bluetooth.currentLockSetting.lockSettingInfo.openDirectionValue
})
const updateValue = async val => {

View File

@ -201,7 +201,7 @@
autoUnlock: autoUnlock.value
}
if (check.value && data.startDate >= data.endDate) {
if (!data.isAllDay && check.value && data.startDate >= data.endDate) {
uni.showToast({
title: '开始时间不能大于结束时间',
icon: 'none'

View File

@ -108,7 +108,7 @@
const value = computed(() => {
const list = []
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0]) {
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode - 1)
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode)
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 4) {
if (
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeModeConfig

View File

@ -5,7 +5,9 @@
@click="toJump('lockInfo')"
>
<view class="item-title">基本信息</view>
<view><up-icon name="arrow-right"></up-icon></view>
<view>
<up-icon name="arrow-right"></up-icon>
</view>
</view>
<view class="mt-2.5"></view>
<view
@ -128,7 +130,9 @@
@click="toJump('faceSetting')"
>
<view class="item-title">面容开锁</view>
<view><up-icon name="arrow-right"></up-icon></view>
<view>
<up-icon name="arrow-right"></up-icon>
</view>
</view>
<view
v-if="$bluetooth.currentLockSetting.lockBasicInfo.keyRight === 1"
@ -136,7 +140,9 @@
@click="toJump('messageReminder')"
>
<view class="item-title">消息提醒</view>
<view><up-icon name="arrow-right"></up-icon></view>
<view>
<up-icon name="arrow-right"></up-icon>
</view>
</view>
<view
v-if="
@ -147,7 +153,9 @@
@click="toJump('catEye')"
>
<view class="item-title">猫眼设置</view>
<view><up-icon name="arrow-right"></up-icon></view>
<view>
<up-icon name="arrow-right"></up-icon>
</view>
</view>
<view
v-if="
@ -158,7 +166,9 @@
@click="toJump('openDirection')"
>
<view class="item-title">开门方向设置</view>
<view><up-icon name="arrow-right"></up-icon></view>
<view>
<up-icon name="arrow-right"></up-icon>
</view>
</view>
<view
v-if="
@ -169,7 +179,9 @@
@click="toJump('motorTorsion')"
>
<view class="item-title">电机功率设置</view>
<view><up-icon name="arrow-right"></up-icon></view>
<view>
<up-icon name="arrow-right"></up-icon>
</view>
</view>
<view class="mt-2.5"></view>
<view
@ -209,7 +221,9 @@
@click="toJump('lockDate')"
>
<view class="item-title">锁时间</view>
<view><up-icon name="arrow-right"></up-icon></view>
<view>
<up-icon name="arrow-right"></up-icon>
</view>
</view>
<view
v-if="$bluetooth.currentLockSetting.lockBasicInfo.keyRight === 1"
@ -217,7 +231,9 @@
@click="toJump('uploadLockData')"
>
<view class="item-title">上传数据</view>
<view><up-icon name="arrow-right"></up-icon></view>
<view>
<up-icon name="arrow-right"></up-icon>
</view>
</view>
<view
class="py-3 px-4 bg-white flex items-center justify-between text-base mt-4rpx"
@ -225,13 +241,15 @@
@click="upgrade"
>
<view class="item-title">锁升级</view>
<view><up-icon name="arrow-right"></up-icon></view>
<view>
<up-icon name="arrow-right"></up-icon>
</view>
</view>
<view
class="mt-4 rounded-3xl w-600 h-80 line-height-80rpx text-center mx-75rpx bg-#ec433c text-white text-xl font-bold"
@click="deleteLock"
>删除</view
>
>删除
</view>
<up-modal
:show="showModal"
title="是否删除授权管理员钥匙?"
@ -286,6 +304,15 @@
})
uni.hideLoading()
if (code === 0) {
if (data.lockSettingInfo.catEyeConfig[0]) {
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.recordTime = Number(
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.recordTime
)
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.detectionDistance = Number(
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.detectionDistance
)
}
requestFinished.value = true
$bluetooth.updateCurrentLockSetting(data)
} else {
@ -323,6 +350,14 @@
lockId: $bluetooth.currentLockInfo.lockId
})
if (code === 0) {
if (data.lockSettingInfo.catEyeConfig[0]) {
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.recordTime = Number(
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.recordTime
)
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.detectionDistance = Number(
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.detectionDistance
)
}
$bluetooth.updateCurrentLockSetting(data)
}
}

View File

@ -60,6 +60,10 @@
lockId: $bluetooth.currentLockInfo.lockId
})
if (code === 0) {
if (data.lockSettingInfo.catEyeConfig[0]) {
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.recordTime =Number(data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.recordTime)
data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.detectionDistance = Number(data.lockSettingInfo.catEyeConfig[0].catEyeModeConfig.detectionDistance)
}
$bluetooth.updateCurrentLockSetting(data)
}
uni.showToast({

View File

@ -101,7 +101,7 @@
const value = computed(() => {
const list = []
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0]) {
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode - 1)
list.push($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode)
if ($bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeMode === 4) {
if (
$bluetooth.currentLockSetting.lockSettingInfo.catEyeConfig[0].catEyeModeConfig

View File

@ -551,10 +551,10 @@ export const useBluetoothStore = defineStore('ble', {
})
break
case subCmdIds.updateSetting:
that.updateCurrentLockInfo({
...that.currentLockInfo,
token: decrypted.slice(5, 9)
})
// that.updateCurrentLockInfo({
// ...that.currentLockInfo,
// token: decrypted.slice(5, 9)
// })
characteristicValueCallback({
code: decrypted[2]
})
@ -2932,6 +2932,7 @@ export const useBluetoothStore = defineStore('ble', {
)
contentArray.set(md5Array, withParams ? 71 + params.length : 71)
console.log('加密前:', Array.from(contentArray))
const cebArray = sm4.encrypt(contentArray, this.currentLockInfo.commKey, {
mode: 'ecb',