更新记录
1.1.1(2024-12-19)
增加基础使用案例,增加配套插件提示
1.1.0(2024-12-19)
增加基础使用demo
1.0.0(2024-12-19)
首次提交
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 4.11,Android:8.1,iOS:不支持,HarmonyNext:不确定 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
jz-nls-ur90
本插件只针对 新大陆RFID(型号nls-ur90) 手持设备
插件基本功能简介
模块一 UTS-api (插件名称jz-nls-ur90)
包含 手持设备的(上电, 下电, 盘点协议设置, 盘点参数设置, 开始盘点, 结束盘点)
模块二 UTS-component(插件名称nls-rfid)
主要负责监听rfid广播(实现开始结束监听广播, 监听广播数据,数据转换为16进制编码)
演示Demo 实现开始盘点后(标签统计,标签去重,出现次数统计,标签检索,标签删除等功能)
只写了功能演示,样式采用的最基础的标签,具体可以自己实现
基础使用代码
<template>
<view class="content">
<view style="font-size: 18px;font-weight: 800;text-align: center;color: #000;">
上电状态: {{powerStatus ? "已上电" : "未上电"}}
</view>
<view style="font-size: 18px;font-weight: 800;text-align: center;color: #000;">
广播状态: {{listeningStatus ? "已开启监听" : "未开启监听"}}
</view>
<view class="buttons-container">
<button @tap="handleOn" :disabled="powerStatus" class="button">上电</button>
<button @tap="handleOff" :disabled="!powerStatus" class="button">下电</button>
</view>
<view class="buttons-container">
<button @click="startListening" :disabled="listeningStatus" class="button">监听广播</button>
<button @click="stopListening" :disabled="!listeningStatus" class="button">停止监听</button>
</view>
<nls-rfid ref="rfidRef"></nls-rfid>
<view class="buttons-container">
<button @tap="handleStartTagInventory" class="button">开始盘点</button>
<button @tap="handleStopTagInventory" class="button">结束盘点</button>
</view>
</view>
</template>
<script>
import {
powerOn, //上电
powerOff, // 下电
getPowerStatus, // 获取上下电状态
startTagInventory, // 开始盘点
stopTagInventory, // 结束盘点
setEmbededParam, // 设置盘点参数
setStocktakingParam, // 设置盘点协议
} from '@/uni_modules/rfid-power';
export default {
data() {
return {
powerStatus: false,
listeningStatus: false
}
},
onLoad() {
this.init()
},
methods: {
init() {
// 上电 -> 设置盘点协议 -> 设置盘点参数 -> 开启广播监听
this.getPowerStatus()
if (!this.powerStatus) {
powerOn()
}
this.$nextTick(() => {
setStocktakingParam("6") // 设置协议为18000-6c
setEmbededParam()
this.startListening()
})
},
// 获取上下电状态
getPowerStatus() {
this.powerStatus = getPowerStatus();
},
// 下电
handleOff() {
powerOff({
success: (res) => {
this.showToast(res)
this.getPowerStatus()
this.$refs.rfidRef.startListening()
setEmbededParam()
},
fail: (res) => {
this.showToast(res)
},
})
},
// 上电
handleOn() {
powerOn({
success: (res) => {
this.showToast(res)
}
})
},
// 开启广播监听
startListening() {
this.$refs.rfidRef.startListening((status) => {
this.listeningStatus = status
})
},
// 结束广播监听
stopListening() {
this.$refs.rfidRef.stopListening((status) => {
this.listeningStatus = status
})
},
// 开始盘点
handleStartTagInventory() {
if(!this.listeningStatus) {
uni.showToast({
title: "请先开启广播监听",
duration: 2000
});
return
}
startTagInventory({
success: (res) => {
this.showToast(res)
},
fail: (res) => {
this.showToast(res)
},
})
},
// 结束盘点
handleStopTagInventory() {
stopTagInventory({
success: (res) => {
this.showToast(res)
},
fail: (res) => {
this.showToast(res)
},
})
},
showToast(msg, duration = 2000){
uni.showToast({
title: msg,
duration: duration
});
}
},
beforeDestroy() {
this.stopListening(); // 在组件销毁前确保取消监听
this.handleStopTagInventory(); // 在组件销毁前确保停止盘点
this.handleOff(); // 在组件销毁前确保下电
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
.buttons-container {
display: flex;
justify-content: space-around;
margin-top: 20px;
width: 100%;
}
.button {
width: 35%;
}
</style>