From e3a54bd1e655ac9cc95751baed8d73135b307744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E9=B9=8F?= Date: Sat, 24 Aug 2024 14:25:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=BB=91=E5=AE=9A=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=85=A8=E9=83=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/check.js | 12 ++ api/geocode.js | 12 ++ api/lock.js | 9 + manifest.json | 64 +------ pages.json | 22 ++- pages/bindLock/bindLock.vue | 186 +++++++++++++++++++ pages/home/home.vue | 25 ++- pages/index/index.vue | 6 +- pages/searchDevice/searchDevice.vue | 150 ++++++++++++++- pages/selectAddress/selectAddress.vue | 256 ++++++++++++++++++++++++++ static/images/icon_add.png | Bin 4447 -> 880 bytes static/images/icon_add_round.png | Bin 0 -> 4447 bytes static/images/icon_address.png | Bin 0 -> 1813 bytes static/images/icon_door_lock.png | Bin 0 -> 3495 bytes stores/basic.js | 27 +++ stores/bluetooth.js | 78 +++++--- stores/user.js | 2 +- utils/request.js | 1 + 18 files changed, 755 insertions(+), 95 deletions(-) create mode 100644 api/check.js create mode 100644 api/geocode.js create mode 100644 pages/bindLock/bindLock.vue create mode 100644 pages/selectAddress/selectAddress.vue create mode 100644 static/images/icon_add_round.png create mode 100644 static/images/icon_address.png create mode 100755 static/images/icon_door_lock.png diff --git a/api/check.js b/api/check.js new file mode 100644 index 0000000..215667c --- /dev/null +++ b/api/check.js @@ -0,0 +1,12 @@ +import request from '../utils/request' + +// check 检查模块 + +// 获取服务器时间 +export function getServerDatetime(data) { + return request({ + url: '/check/getServerDatetime', + method: 'POST', + data + }) +} diff --git a/api/geocode.js b/api/geocode.js new file mode 100644 index 0000000..dd85388 --- /dev/null +++ b/api/geocode.js @@ -0,0 +1,12 @@ +import request from '../utils/request' + +// geocode 地理编码模块 + +// 获取地址信息 +export function getGeocodeAddress(data) { + return request({ + url: '/geocode/getAddress', + method: 'POST', + data + }) +} diff --git a/api/lock.js b/api/lock.js index d1f39b7..9931b27 100644 --- a/api/lock.js +++ b/api/lock.js @@ -10,3 +10,12 @@ export function getLockListRequest(data) { data }) } + +// 绑定锁管理员 +export function bindLockAdmin(data) { + return request({ + url: '/v2/lock/bindAdmin', + method: 'POST', + data + }) +} diff --git a/manifest.json b/manifest.json index 5330fd3..35562d9 100644 --- a/manifest.json +++ b/manifest.json @@ -5,49 +5,6 @@ "versionName" : "1.0.0", "versionCode" : "100", "transformPx" : false, - /* 5+App特有相关 */ - "app-plus" : { - "usingComponents" : true, - "nvueStyleCompiler" : "uni-app", - "compilerVersion" : 3, - "splashscreen" : { - "alwaysShowBeforeRender" : true, - "waiting" : true, - "autoclose" : true, - "delay" : 0 - }, - /* 模块配置 */ - "modules" : {}, - /* 应用发布信息 */ - "distribute" : { - /* android打包配置 */ - "android" : { - "permissions" : [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ] - }, - /* ios打包配置 */ - "ios" : {}, - /* SDK配置 */ - "sdkConfigs" : {} - } - }, - /* 快应用特有相关 */ - "quickapp" : {}, /* 小程序特有相关 */ "mp-weixin" : { "appid" : "wx9829a39e65550757", @@ -55,20 +12,17 @@ "urlCheck" : true, "minified" : true }, + "permission": { + "scope.bluetooth": { + "desc": "蓝牙将用于控制和管理您的智能门锁" + }, + "scope.userLocation": { + "desc": "获取您的位置信息将用于智能门锁的位置服务" + } + }, + "requiredPrivateInfos": ["getLocation"], "usingComponents" : true, "lazyCodeLoading" : "requiredComponents" }, - "mp-alipay" : { - "usingComponents" : true - }, - "mp-baidu" : { - "usingComponents" : true - }, - "mp-toutiao" : { - "usingComponents" : true - }, - "uniStatistics" : { - "enable" : false - }, "vueVersion" : "3" } diff --git a/pages.json b/pages.json index 9c0ec72..cba01fd 100644 --- a/pages.json +++ b/pages.json @@ -17,6 +17,16 @@ "navigationStyle": "default" } }, + { + "path": "pages/selectAddress/selectAddress", + "style": { + "navigationBarTitleText": "锁地址", + "navigationBarTextStyle": "white", + "navigationBarBackgroundColor": "#63b8af", + "navigationStyle": "default", + "disableScroll": true + } + }, { "path": "pages/mine/mine", "style": { @@ -110,10 +120,20 @@ "navigationStyle": "default" } }, + { + "path": "pages/bindLock/bindLock", + "style": { + "navigationBarTitleText": "添加锁", + "navigationBarTextStyle": "white", + "navigationBarBackgroundColor": "#63b8af", + "navigationStyle": "default" + } + }, { "path": "pages/searchDevice/searchDevice", "style": { - "navigationBarTitleText": "搜索", + "disableScroll": true, + "navigationBarTitleText": "附近设备", "navigationBarTextStyle": "white", "navigationBarBackgroundColor": "#63b8af", "navigationStyle": "default" diff --git a/pages/bindLock/bindLock.vue b/pages/bindLock/bindLock.vue new file mode 100644 index 0000000..d88b2d3 --- /dev/null +++ b/pages/bindLock/bindLock.vue @@ -0,0 +1,186 @@ + + + + + + + diff --git a/pages/home/home.vue b/pages/home/home.vue index d96a461..57f6010 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -2,8 +2,8 @@ - - + 填加锁时,手机必须在锁旁边 @@ -32,9 +33,9 @@ {{getRole(lock.userType)}} - {{lock.lockName}} + {{lock.lockAlias}} - {{ getTimeLimit(lock.keyType) }} + {{ getTimeLimit(lock.keyType) }} {{ timeFormat(lock.startDate, 'yyyy-mm-dd h:M') }} {{ timeFormat(lock.endDate, 'yyyy-mm-dd h:M ') + getTimeLimit(lock.keyType) }} @@ -45,7 +46,7 @@ - @@ -63,6 +64,7 @@ import { useBluetoothStore } from '@/stores/bluetooth' import { useBasicStore } from '@/stores/basic' import { mapState, mapActions } from 'pinia' + import { getServerDatetime } from '@/api/check' export default { data() { @@ -74,7 +76,8 @@ }, refresherTriggered: false, focus: false, - penging: true + penging: true, + deviceInfo: null } }, computed: { @@ -86,6 +89,8 @@ uni.showLoading({ title: '加载中' }) + this.deviceInfo = await this.getDeviceInfo() + console.log(this.deviceInfo) const token = uni.getStorageSync('token') if(token) { this.updateLoginStatus(true) @@ -102,7 +107,7 @@ ...mapActions(useUserStore, ['updateUserInfo', 'updateLoginStatus', 'login']), ...mapActions(useLockStore, ['getLockList', 'getRole', 'getTimeLimit']), ...mapActions(useBluetoothStore, ['getBluetoothStatus', 'initAndListenBluetooth', 'updateCurrentLockInfo', 'checkSetting']), - ...mapActions(useBasicStore, ['routeJump']), + ...mapActions(useBasicStore, ['routeJump', 'getDeviceInfo']), async nextPage() { if(this.lockList.length < this.lockTotal) { this.search.pageNo++ @@ -116,6 +121,10 @@ this.refresherTriggered = true this.search.pageNo = 1 await this.getLockList(this.search) + uni.showToast({ + title: '刷新成功', + icon: 'none' + }) this.refresherTriggered = false }, async changeSearch(data) { diff --git a/pages/index/index.vue b/pages/index/index.vue index c4ed272..dc0afa9 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -164,12 +164,12 @@ console.log('添加用户返回', addUserCode) }, getLockStatusResult() { - const timnestamp = parseInt(new Date().getTime() / 1000) + const timestamp = parseInt(new Date().getTime() / 1000) this.getLockStatus({ name: this.currentLockInfo.name, uid: this.authUid, - nowTime: timnestamp, - localTime: timnestamp + nowTime: timestamp, + localTime: timestamp }) } } diff --git a/pages/searchDevice/searchDevice.vue b/pages/searchDevice/searchDevice.vue index 608c2be..2cc7af6 100644 --- a/pages/searchDevice/searchDevice.vue +++ b/pages/searchDevice/searchDevice.vue @@ -1,17 +1,161 @@ + + diff --git a/pages/selectAddress/selectAddress.vue b/pages/selectAddress/selectAddress.vue new file mode 100644 index 0000000..516ade8 --- /dev/null +++ b/pages/selectAddress/selectAddress.vue @@ -0,0 +1,256 @@ + + + + + + + diff --git a/static/images/icon_add.png b/static/images/icon_add.png index d0f9a4d9e417a0708aa4e6b772c4222262585c56..937c30ba4f057d8692209e55f28367f53a7e7b92 100644 GIT binary patch literal 880 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 Af&c&j diff --git a/static/images/icon_add_round.png b/static/images/icon_add_round.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f9a4d9e417a0708aa4e6b772c4222262585c56 GIT binary patch literal 4447 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 Af&c&j literal 0 HcmV?d00001 diff --git a/static/images/icon_address.png b/static/images/icon_address.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ddd5e85d9439344be96586863e86149601fa36 GIT binary patch literal 1813 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 0 + }, // 添加用户 async addLockUser(data) { const { name, authUid, uid, keyId, openMode, keyType, startDate, expireDate, useCountLimit, isRound, weekRound, - startHour, startMin, endHour, endMin, role, password, publicKey, commKey } = data + startHour, startMin, endHour, endMin, role, password } = data const length = 2 + 40 + 20 + 40 + 20 + 1 + 1 + 4 + 4 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 20 + 4 + 1 + 16 const headArray = this.createPackageHeader(3, length) const conentArray = new Uint8Array(length) @@ -825,7 +855,7 @@ export const useBluetoothStore = defineStore('ble', { conentArray.set(md5Array, 166) - const cebArray = sm4.encrypt(conentArray, commKey, { mode: 'ecb', output: 'array' }) + const cebArray = sm4.encrypt(conentArray, this.currentLockInfo.commKey, { mode: 'ecb', output: 'array' }) const packageArray = this.createPackageEnd(headArray, cebArray) await this.writeBLECharacteristicValue(packageArray) diff --git a/stores/user.js b/stores/user.js index 5aa4988..e89fd61 100644 --- a/stores/user.js +++ b/stores/user.js @@ -22,7 +22,7 @@ export const useUserStore = defineStore('user', { this.isLogin = status }, async login() { - uni.setStorageSync('token', '3021|MZv7iEf0NwjCPSGx4QWs37zOjeVN3GrSJ2v7D56L7db1fcc5') + uni.setStorageSync('token', '3023|pZ1aoVlMKJBTBTGWlsZPpbLvxc8txcHbrJx2ljrf49c7efe0') const { code, data } = await getUserInfoRequest() await useLockStore().getLockList({ pageNo: 1, diff --git a/utils/request.js b/utils/request.js index f7567ae..4cea802 100644 --- a/utils/request.js +++ b/utils/request.js @@ -74,6 +74,7 @@ const request = (config) => { code: res?.data?.errorCode, res: res?.data?.data, token: header?.authorization || '', + message: res?.data?.errorMsg, duration: new Date().getTime() - timestamp }) }