c5_labsci/fapp/ciyon_ap/components/ciy-btreader/ciy-btreader.vue
2026-01-27 00:52:00 +08:00

188 lines
7.0 KiB
Vue

<template>
暂未完成
<view>
<view class="vtopmsg" v-if="btmsg" :style="{background:btmsg == '蓝牙阅读器正常'?'':'#cc0000'}">{{btmsg}}</view>
<view class="_bg" v-if="bshow">
<view class="_dialog">
<view class="_title">选择目标</view>
<view class="_close" @tap="close()"></view>
<view class="_content" :style="{maxHeight:maxheight}">
<view style="text-align: center;margin:1em 0;">
<ciy-qrcode-show :value="epc"></ciy-qrcode-show>
</view>
<view v-for="(item,index) in sels" :key="index" @tap="sendme(item)" class="selbtn">
{{item}}
</view>
</view>
</view>
</view>
</view>
</template>
<style scoped>
._bg {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.2);
z-index: 100;
}
._dialog {
position: fixed;
border-radius: 0.5em;
/* #ifdef MP-WEIXIN */
top: 1em;
/* #endif */
/* #ifndef MP-WEIXIN */
top: 4em;
/* #endif */
left: 1em;
right: 1em;
background: #ffffff;
}
._dialog ._title {
line-height: 1.5em;
background: #fafafa;
padding: 0.5em 1em;
border-radius: 0.5em 0.5em 0 0;
}
._dialog ._content {
overflow: scroll;
margin-bottom: 0.5em;
}
._dialog ._close {
position: absolute;
right: 0.5em;
top: 0.5em;
width: 1.5em;
height: 1.5em;
background-image: url("data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTAyNCAxMDI0JyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PHBhdGggZD0nTTUxLjI4NTk0ODA3IDUyMC4wMTYwMTM1NGMwIDI1Ni40ODg5MDI4MyAyMDcuNTg2OTEzMzUgNDY0LjA3NTgxNjIgNDY0LjA3NTgxNjE3IDQ2NC4wNzU4MTYxN3M0NjQuMDc1ODE2Mi0yMDcuNTg2OTEzMzUgNDY0LjA3NTgxNjItNDY0LjA3NTgxNjE3Uzc3MS44NTA2NjcwOCA1NS45NDAxOTczMyA1MTUuMzYxNzY0MjQgNTUuOTQwMTk3MzNzLTQ2NC4wNzU4MTYyIDIwNy41ODY5MTMzNS00NjQuMDc1ODE2MTcgNDY0LjA3NTgxNjIxeicgZmlsbD0nI2Q4MWUwNic+PC9wYXRoPjxwYXRoIGQ9J001NjAuMjYxMDk5MDIgNTE5LjU1MTkzNzU5bDE3OC4zNzkxNDI5MSAxNzguMzc5MTQxNDZjMTEuODkxOTQyNTcgMTEuODkxOTQyNTcgMTEuODkxOTQyNTcgMzIuODkxMzczNTkgMCA0NC44MTIzMjE5LTExLjg5MTk0MjU3IDExLjg5MTk0MjU3LTMyLjg5MTM3MzU5IDExLjg5MTk0MjU3LTQ0LjgxMjMyMTkxIDBsLTE3OC4zNzkxNDE0NS0xNzguMzc5MTQyOS0xNzguMzc5MTQxNDMgMTc4LjM3OTE0MjljLTExLjg5MTk0MjU3IDExLjg5MTk0MjU3LTMyLjg5MTM3MzU5IDExLjg5MTk0MjU3LTQ0LjgxMjMyMTkxIDAtMTEuODkxOTQyNTctMTEuOTIwOTQ2ODYtMTEuODkxOTQyNTctMzIuOTIwMzc3ODkgMC00NC44MTIzMjE5bDE3OC4zNzkxNDI5LTE3OC4zNzkxNDE0Ni0xNzcuNzk5MDQ2OS0xNzcuODI4MDUyNjRjLTExLjkyMDk0Njg2LTExLjg5MTk0MjU3LTExLjkyMDk0Njg2LTMyLjg5MTM3MzU5IDAtNDQuODEyMzIwNDUgMTEuODkxOTQyNTctMTEuODkxOTQyNTcgMzIuODkxMzczNTktMTEuODkxOTQyNTcgNDQuNzgzMzE2MTYgMGwxNzcuODI4MDUxMTggMTc3Ljc5OTA0Njg5IDE3Ny43OTkwNDY5MS0xNzcuNzk5MDQ2ODljMTIuNTAxMDQyODctMTEuODkxOTQyNTcgMzIuOTIwMzc3ODktMTEuODkxOTQyNTcgNDQuODQxMzI2MjEgMCAxMS44OTE5NDI1NyAxMS44OTE5NDI1NyAxMS44OTE5NDI1NyAzMi44OTEzNzM1OSAwIDQ0LjgxMjMyMDQ1bC0xNzcuODI4MDUyNjcgMTc3Ljc5OTA0ODM2eicgZmlsbD0nI2ZmZmZmZic+PC9wYXRoPjwvc3ZnPg==");
}
.selbtn {
margin: 1em;
text-align: center;
border: 1px solid #0c59a9;
padding: 0.5em;
background: #007aff;
font-size:1.5em;
color: #ffffff;
border-radius: 0.3em;
}
</style>
<script>
import ciyQrcodeShow from '@/components/ciy-qrcode-show/ciy-qrcode-show'
var app = getApp();
export default {
props: {
select: {
type: String
}
}
, data() {
return {
bshow: false
, btmsg: ''
, sels: []
, maxheight: '30em'
, epc: ''
, };
}
, destroyed() {
console.log('unmounted');
}
, mounted() {
console.log('mounte');
}
, methods: {
open() {
this.bshow = true;
var app = getApp();
var height = app.globalData._sysinfo.screenHeight - 80;
this.maxheight = height + 'px';
}
, sendme(select) {
console.log('sendme', select);
this.$emit('scan', {
select: select
, value: this.epc
});
this.close();
}
, unmonitor() {
var devbt = app.globalData.dev_bt.reader;
if (!devbt)
return;
devbt.onmsg = null;
}
, monitor() {
console.log('monitor');
this.btmsg = '';
// setTimeout(() => {
// var epc = '372120220009998';
// this.sels = this.select.split(',');
// if (this.sels.length == 1) {
// this.$emit('scan', {
// select: this.select
// , value: epc
// });
// } else {
// this.epc = epc;
// this.open();
// }
// }, 500);
var devbt = app.globalData.dev_bt.reader;
if (!devbt)
return;
this.btmsg = '蓝牙阅读器未连接!';
if (devbt.opened == 10)
this.btmsg = '蓝牙阅读器正常';
devbt.onmsg = res => {
if (res.connected !== undefined) {
if (res.connected)
this.btmsg = '蓝牙阅读器正常';
else
this.btmsg = '蓝牙阅读器已断开';
return;
}
this.btmsg = '蓝牙阅读器正常';
var epc = res.data;
if (!epc)
return;
if (!this.isfront())
return;
this.sels = this.select.split(',');
if (this.sels.length == 1) {
this.$emit('scan', {
select: this.select
, value: epc
});
} else {
this.epc = epc;
this.open();
}
};
}
, isfront() {
var ps = getCurrentPages();
var ftroute = ps[ps.length - 1].route || ps[ps.length - 1].__route__;
var cproute = this.$parent.__route__ || this.$parent.$parent.route;
//console.log(this.select, ftroute,cproute);
return ftroute == cproute;
}
, close() {
this.bshow = false;
}
}
}
</script>