<template> <view class="gas-record-card"> <view class="record-top-area"> <view class="record-write-box"> <text class="dialog-label">卡ID:</text> <u--input v-model="cardId" placeholder="请输入卡片ID" type="number" size="small" clearable style="width:220px;padding: 2px 9px;"></u--input> </view> <!-- <u-button type="primary" size="small" style="margin: 2px 0px;" @click="getNfcFormat">格式化tag</u-button> --> <u-button type="primary" size="small" style="margin: 2px 0px;" @click="getNfcWrite">录入</u-button> <u-button type="primary" size="small" style="margin: 2px 0px;" @click="getNfcRead">读取</u-button> </view> <view class="record-bot-area"> <u-toast ref="uToast"></u-toast> <view class="record-container" v-if="cardData.id"> <view class="record-title"> <span class="record-text">卡片ID读取</span> </view> <view class="record-card"> <view class="record-card-item"> <text class="card-item-label">当前卡ID为:</text> <text class="card-item-value">{{ cardData.id }}</text> </view> <view class="record-card-item"> <text class="card-item-label">当前巡检点为:</text> <text class="card-item-value">{{ cardData.address }}</text> </view> </view> </view> </view> </view> </template> <script> import api from "@/api/api"; import testNfc from "@/common/util/hexiii-nfc.js" export default { name: 'gasRecordCard', data() { return { isNfc: true, cardId: '', cardData: { id: '', address: '' }, } }, computed: { cardIds:function(){ return this.$store.getters.nfcreadtxt; } }, watch:{ cardIds:{ handler(newV,oldV){ console.log(newV,'newV------------------------') this.getCardLists(newV) }, } }, mounted() { testNfc.listenNFCStatus() }, methods: { //获取NFC卡读取内容 getCardLists(ids) { let that = this new Promise((resolve, reject) => { api .getCardList({ id: ids }) .then((response) => { if (response.data.code == 200) { let data = response.data.result that.cardData.id = data.id that.cardData.address = data.strInstallPos } else { that.$refs.uToast.show({ type: 'default', icon: false, message: response.data.message, }) } }) }); }, //格式化tag // getNfcFormat() { // testNfc.__write() // }, //nfc 写入 getNfcWrite() { let that = this new Promise((resolve, reject) => { api .enterCardId({ id: that.cardId, }) .then((response) => { if (response.data.code == 200) { if (that.isNfc) { // 调用 js 文件里面的方法 testNfc.setTxt(that.cardId); testNfc.writeData(); } else { that.$refs.uToast.show({ type: 'default', icon: false, message: '录入成功!', }) } } else { that.$refs.uToast.show({ type: 'default', icon: false, message: response.data.message, }) } }) }); }, //nfc读取 getNfcRead() { let that = this if (that.isNfc) { // 调用 js 文件里面的方法 testNfc.readData(); } else { that.getCardLists(that.cardId) } } } } </script> <style lang="scss" scoped> .gas-record-card { position: relative; width: 100%; height: 100%; .record-top-area { display: flex; flex-direction: column; align-items: center; width: 100%; padding: 10px 20px; box-sizing: border-box; background-color: #FFF; margin-bottom: 2px; } .record-write-box { display: flex; align-items: center; justify-content: center; margin-bottom: 10px; .dialog-label { width: 60px; text-align: right; } } .record-bot-area { width: 100%; height: calc(100% - 138px); padding: 10px; box-sizing: border-box; background-color: #FFF; margin-bottom: 2px; overflow-y: auto; .record-container { .record-title { position: relative; width: 100%; height: 50rpx; background: url(/static/warndata/title.png); background-repeat: no-repeat; background-size: 100% 100%; display: flex; /* 将父级元素设置为 Flex 容器 */ align-items: center; /* 垂直居中子元素 */ } .record-text { margin: 20px; } .record-card { display: flex; flex-direction: column; justify-content: center; width: 100%; height: 100px; margin: 10px auto; border-radius: 10px; background: url(/static/warndata/work.png), linear-gradient(to right, rgba(55, 135, 254, 0.08), rgba(4, 184, 255, 0.08), rgba(60, 161, 237, 0.08)); } .record-card-item { width: 100%; padding: 10px; font-size: 14px; box-sizing: border-box; .card-item-label { display: inline-block; width: 53%; text-align: right; color: #3787fe; font-weight: bold; } } } } } </style>