货无忧
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

72 lines
1.4 KiB

import {
defineStore
} from 'pinia';
import {
reactive,
ref
} from 'vue';
import utils from '@/utils/utils.js';
// 创建hooks函数仓库
const useBluetoothStore = defineStore('useBluetoothStore', () => {
/**
* 已连接的蓝牙 && 打印链接成功的蓝牙信息
*/
const bluetoothInfo = reactive({
name: '',
address: '',
status: '',
uuids: [],
op: {},
})
/**
* 设备内已匹配的蓝牙信息组成的数组
*/
const bluetoothList = ref([])
/**
* 蓝牙信息初始化, 获取设备内已匹配的蓝牙信息
*/
const HANDLE_INITBLUETOOTH = () => {
// #ifdef APP
bluetoothList.value = utils.initbl_App()
console.log('bluetoothList.value :>> ', bluetoothList.value);
// #endif
}
/**
* 选择蓝牙
* @index 蓝牙数组中被选中的索引
*/
const CHOOSE_BLUETOOTH = (index) => {
// 将被选中的值赋给蓝牙信息中
for (let key in bluetoothInfo) {
bluetoothInfo[key] = bluetoothList.value[index][key]
}
console.log('bluetoothInfo :>> ', bluetoothInfo);
}
/**
* 重置已选中蓝牙信息
*/
const CLEAR_BL_INFO = () => {
bluetoothInfo.name = ''
bluetoothInfo.address = ''
bluetoothInfo.status = ''
bluetoothInfo.uuids = []
bluetoothInfo.op = {}
}
return {
bluetoothInfo,
bluetoothList,
HANDLE_INITBLUETOOTH,
CHOOSE_BLUETOOTH
}
})
// 导出仓库
export default useBluetoothStore