Browse Source

修改代码

yxb
DESKTOP-2IO5MST\huting 1 year ago
parent
commit
b51c1d1d9a
4 changed files with 60 additions and 28 deletions
  1. 18
    1
      pages/nfc/nfc.vue
  2. 22
    8
      pages/recharge/recharge.vue
  3. 1
    1
      pages/user/user.vue
  4. 19
    18
      static/nfc/NFCManagerTool.js

+ 18
- 1
pages/nfc/nfc.vue View File

<template> <template>
<view class="devices"> <view class="devices">
<view class="hint"> <view class="hint">
<view class="orange-txt as-layout-horizontal as-gravity-center-start">
<view class="orange-txt as-layout-horizontal as-gravity-center-start tishi">
<image :src="`${$imgUrl}common/icon-hint.png`" mode="aspectFill"></image> <image :src="`${$imgUrl}common/icon-hint.png`" mode="aspectFill"></image>
<view>温馨提示:</view> <view>温馨提示:</view>
</view> </view>
ref, ref,
reactive reactive
} from "vue"; } from "vue";
import {
login
} from "../../utils/network/api";
const tools = require("../../static/etcUtil/tools.js"); const tools = require("../../static/etcUtil/tools.js");
const NFCAPI = require('../../static/nfc/NFCAPI.js'); const NFCAPI = require('../../static/nfc/NFCAPI.js');
const cmd = require("../../static/etcUtil/cmdConfig.js"); const cmd = require("../../static/etcUtil/cmdConfig.js");


function getCardId(resultCmdArr: any, callback: any) { function getCardId(resultCmdArr: any, callback: any) {
var that = this; var that = this;
console.log(resultCmdArr, '==============')
if (resultCmdArr.length == 4) { if (resultCmdArr.length == 4) {
var str = resultCmdArr[2].substring(resultCmdArr[2].length - 4, resultCmdArr[2].length); //判断是否为9000 var str = resultCmdArr[2].substring(resultCmdArr[2].length - 4, resultCmdArr[2].length); //判断是否为9000
var str3 = resultCmdArr[3].substring(resultCmdArr[3].length - 4, resultCmdArr[3].length); //判断是否为9000 var str3 = resultCmdArr[3].substring(resultCmdArr[3].length - 4, resultCmdArr[3].length); //判断是否为9000
image { image {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
margin-right: 20rpx;
}

.devices {
padding: 30rpx;
}

.btn {
margin-top: 30rpx;
}

.tishi {
margin-bottom: 20rpx;
} }
</style> </style>

+ 22
- 8
pages/recharge/recharge.vue View File

state.orderNum = checkResult.orders[0].orderNum; state.orderNum = checkResult.orders[0].orderNum;
setItem("orderNum", state.orderNum); setItem("orderNum", state.orderNum);
// 检测用户是否存在有半条流水 // 检测用户是否存在有半条流水
go()
// go()
} else { } else {
console.log('没有可修复的流水') console.log('没有可修复的流水')
} }
}); });
} else { } else {
// 检测用户是否存在有半条流水 // 检测用户是否存在有半条流水
go()
// go()
} }
}); });
} }
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '待消费订单', content: '待消费订单',
success: () => {
//走蓝牙进行修复
uni.redirectTo({
url: `/pages/bluetooth/bluetooth?routeType=2&&cardId=${state.cardId}&&fee=${state.fee}`,
});
showCancel: false,
success: (res) => {
if (res.confirm) {
//走蓝牙进行修复
if (state.transWay == 'blu') {
uni.redirectTo({
url: `/pages/bluetooth/bluetooth?routeType=2&&cardId=${state.cardId}&&fee=${state.fee}`,
});
} else {
uni.redirectTo({
url: `/pages/nfc/nfc?routeType=2&&cardId=${state.cardId}&&fee=${state.fee}`,
});
}
} else if (res.cancel) {
console.log('用户点击取消');
}
// state.isShowBlue=true; // state.isShowBlue=true;
console.log("state.isShowBlue", state.isShowBlue) console.log("state.isShowBlue", state.isShowBlue)
}, },
fail: () => { }
fail: () => {
}
}) })
} }

+ 1
- 1
pages/user/user.vue View File

</view> </view>
</view> </view>
<view class="car-item" v-for="(item,index) in state.list"> <view class="car-item" v-for="(item,index) in state.list">
<image :src="`${$imgUrl}che.png`" class="car-pic"></image>
<image :src="`${$imgUrl}che.png`" class="car-pic" mode="aspectFill"></image>
<view class="car-info"> <view class="car-info">
<view class="car-no"><text class="no">{{item.vehiclePlate}}</text><text <view class="car-no"><text class="no">{{item.vehiclePlate}}</text><text
class="color">{{item.color}}</text></view> class="color">{{item.color}}</text></view>

+ 19
- 18
static/nfc/NFCManagerTool.js View File



export function startScanNfcDevice(callBack) { export function startScanNfcDevice(callBack) {
isFirst = false; isFirst = false;
initNfcAdapter(function (res) {
initNfcAdapter(function(res) {
if (res.code == successCode) { if (res.code == successCode) {
console.log('初始化NFC适配器实例成功', res) console.log('初始化NFC适配器实例成功', res)
//注册贴卡监听回调 //注册贴卡监听回调
nfcAdapter.onDiscovered(function (res) {
nfcAdapter.onDiscovered(function(res) {
console.log('监听回调到卡片了', res); console.log('监听回调到卡片了', res);
if(!isFirst) {
if (!isFirst) {
if (res.techs.includes(nfcAdapter.tech.isoDep)) { //获取isoDep实例 if (res.techs.includes(nfcAdapter.tech.isoDep)) { //获取isoDep实例
console.log('发现' + nfcAdapter.tech.isoDep + '卡'); console.log('发现' + nfcAdapter.tech.isoDep + '卡');
isoDep = nfcAdapter.getIsoDep(); isoDep = nfcAdapter.getIsoDep();
}); });
//开始监听贴卡 //开始监听贴卡
nfcAdapter.startDiscovery({ nfcAdapter.startDiscovery({
success: function (res) {
success: function(res) {
console.log('监听贴卡成功', res) console.log('监听贴卡成功', res)
}, },
fail: function (err) {
fail: function(err) {
console.log('监听贴卡失败', err) console.log('监听贴卡失败', err)
var msg = ""; var msg = "";
if (err) { if (err) {
//注册贴卡监听回调 //注册贴卡监听回调
nfcAdapter.offDiscovered(discoverHandler); nfcAdapter.offDiscovered(discoverHandler);
} }

function discoverHandler(res, callBack) { function discoverHandler(res, callBack) {
if (res.techs.includes(nfcAdapter.tech.isoDep)) { //获取isoDep实例 if (res.techs.includes(nfcAdapter.tech.isoDep)) { //获取isoDep实例
console.log('发现' + nfcAdapter.tech.isoDep + '卡'); console.log('发现' + nfcAdapter.tech.isoDep + '卡');
export function startDiscovery(callBack) { export function startDiscovery(callBack) {
//开始监听贴卡 //开始监听贴卡
nfcAdapter.startDiscovery({ nfcAdapter.startDiscovery({
success: function (res) {
success: function(res) {
console.log('监听贴卡成功', res) console.log('监听贴卡成功', res)
}, },
fail: function (err) {
fail: function(err) {
console.log('监听贴卡失败', err) console.log('监听贴卡失败', err)
var msg = ""; var msg = "";
if (err) { if (err) {
export function stopScanNfcDevice(callBack) { export function stopScanNfcDevice(callBack) {
if (nfcAdapter != null) { if (nfcAdapter != null) {
nfcAdapter.stopDiscovery({ nfcAdapter.stopDiscovery({
success: function (res) {
success: function(res) {
callBack.call(this, { callBack.call(this, {
code: successCode, code: successCode,
msg: "停止扫描成功", msg: "停止扫描成功",
data: null data: null
}) })
}, },
fail: function (err) {
fail: function(err) {
var msg = ""; var msg = "";
if (err) { if (err) {
msg = nfcErrMsg(err.errCode) msg = nfcErrMsg(err.errCode)
export function connectDevice(callBack) { export function connectDevice(callBack) {
if (isoDep != null) { if (isoDep != null) {
isoDep.connect({ isoDep.connect({
success: function (res) {
success: function(res) {
console.log('连接卡片成功', res) console.log('连接卡片成功', res)
callBack.call(this, { callBack.call(this, {
code: successCode, code: successCode,
data: null data: null
}) })
}, },
fail: function (err) {
fail: function(err) {
var msg = ""; var msg = "";
if (err) { if (err) {
msg = nfcErrMsg(err.errCode) msg = nfcErrMsg(err.errCode)
} }
console.log("链接卡片失败:",err.errCode)
console.log("链接卡片失败:", err.errCode)
callBack.call(this, { callBack.call(this, {
code: errorCode, code: errorCode,
msg: msg, msg: msg,
export function disConnectDevice(callBack) { export function disConnectDevice(callBack) {
if (isoDep != null) { if (isoDep != null) {
isoDep.close({ isoDep.close({
success: function (res) {
success: function(res) {
callBack.call(this, { callBack.call(this, {
code: successCode, code: successCode,
msg: "断开卡片成功", msg: "断开卡片成功",
data: null data: null
}) })
}, },
fail: function (err) {
fail: function(err) {
var msg = ""; var msg = "";
if (err) { if (err) {
msg = nfcErrMsg(err.errCode) msg = nfcErrMsg(err.errCode)
var sendbuf = hexStringToArrayBuffer(cmdArr[i]); var sendbuf = hexStringToArrayBuffer(cmdArr[i]);
isoDep.transceive({ isoDep.transceive({
data: sendbuf, data: sendbuf,
success: function (res) {
success: function(res) {
var resultCmd = arrayBufferToHexString(res.data); var resultCmd = arrayBufferToHexString(res.data);
resultCmdArr.push(resultCmd); resultCmdArr.push(resultCmd);
if (resultCmdArr.length == cmdArr.length) { if (resultCmdArr.length == cmdArr.length) {
}) })
} }
}, },
fail: function (err) {
fail: function(err) {
if (i == 0) { if (i == 0) {
console.log('发送数据失败', err); console.log('发送数据失败', err);
var msg = ""; var msg = "";




function initNfcAdapter(callBack) { function initNfcAdapter(callBack) {
nfcAdapter = uni.getNFCAdapter() //获取NFC适配器实例
nfcAdapter = wx.getNFCAdapter() //获取NFC适配器实例
console.log("获取NFC适配器实例:", nfcAdapter); console.log("获取NFC适配器实例:", nfcAdapter);
if (nfcAdapter != null) { if (nfcAdapter != null) {
callBack.call(this, { callBack.call(this, {
//十六进制字符串转字节数组 //十六进制字符串转字节数组
function hexStringToArrayBuffer(str) { function hexStringToArrayBuffer(str) {
var hex = str; var hex = str;
return new Uint8Array(hex.match(/[\da-f]{2}/gi).map(function (h) {
return new Uint8Array(hex.match(/[\da-f]{2}/gi).map(function(h) {
return parseInt(h, 16) return parseInt(h, 16)
})).buffer; })).buffer;
}; };

Loading…
Cancel
Save