|
|
@@ -4,16 +4,16 @@
|
|
|
<div class="nfc-container">
|
|
|
<div class="nfc-box">
|
|
|
<div class="nfc-btn" @touchend="getNfc">
|
|
|
- <span>点击扫描</span>
|
|
|
+ <span>{{nfcMsg}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<Card>
|
|
|
- <p class="card-title blue">标签信息</p>
|
|
|
+ <p class="card-title blue">{{disable?'标签信息':'新增标签'}}</p>
|
|
|
<van-cell-group v-if="!disable" :border="false">
|
|
|
<van-cell title="NFC编码" :value="formData.code" />
|
|
|
<!-- <van-cell title="所属机构" value="内容" is-link/>-->
|
|
|
<van-cell required title="选择所属机构" :label="formData.orgName" is-link @click="clickItem"/>
|
|
|
- <select-cell required :disabled="areaList.length == 0" v-model="formData.areaId" title="选择区域" :prop="props" :dataList="areaList"></select-cell>
|
|
|
+ <select-cell required :disabled="areaList.length == 0" v-model="formData.areaId" title="选择区域" :border="true" :prop="props" :dataList="areaList"></select-cell>
|
|
|
<select-cell required :disabled="pointList.length == 0" v-model="formData.checkId" title="选择采集点" :prop="checkProps" :dataList="pointList"></select-cell>
|
|
|
</van-cell-group>
|
|
|
<van-cell-group v-else :border="false">
|
|
|
@@ -28,6 +28,7 @@
|
|
|
<van-button v-if="disable && nfcInfo.code" type="danger" size="large" @click="unBindNfc">解绑</van-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
+<!-- <van-popup v-model="showPopup" :close-on-click-overlay="false"></van-popup>-->
|
|
|
<org-picker
|
|
|
:show="showPicker"
|
|
|
@cancel="cancelPicker"
|
|
|
@@ -54,6 +55,8 @@ export default {
|
|
|
return{
|
|
|
disable:true,
|
|
|
showPicker:false,
|
|
|
+ showPopup:false,
|
|
|
+ nfcMsg:'点击扫描',
|
|
|
props:{
|
|
|
label:'name',
|
|
|
value:'id',
|
|
|
@@ -77,16 +80,41 @@ export default {
|
|
|
areaId:null,
|
|
|
checkId:null,
|
|
|
},
|
|
|
+ flag:false,
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
-
|
|
|
+ window.openNFCScanCallBack = this.openNFCScanCallBack;
|
|
|
},
|
|
|
computed:{
|
|
|
...mapGetters(['orgId']),
|
|
|
},
|
|
|
methods:{
|
|
|
-
|
|
|
+ //自定义nfc回调
|
|
|
+ openNFCScanCallBack(data){
|
|
|
+ //alert(data)
|
|
|
+ this.nfcMsg = '读取中...';
|
|
|
+ if(!data) {
|
|
|
+ this.nfcMsg = '点击扫描';
|
|
|
+ this.$toast('扫描失败');
|
|
|
+ //this.showPopup = false;
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let code = JSON.parse(data).content;
|
|
|
+ this.$toast('扫描成功');
|
|
|
+ nfcDetails(code).then(res=>{
|
|
|
+ console.log(res,'res')
|
|
|
+ //this.showPopup = false;
|
|
|
+ setTimeout(()=>{this.nfcMsg = '点击扫描';},500);
|
|
|
+ if(res.data){
|
|
|
+ this.nfcInfo = res.data;
|
|
|
+ }else {
|
|
|
+ this.$toast('未查询到NFC相关信息');
|
|
|
+ this.formData.code = code;
|
|
|
+ this.disable = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
bindNfc(){
|
|
|
let flag = this.checkData();
|
|
|
if(!flag) return
|
|
|
@@ -106,7 +134,6 @@ export default {
|
|
|
this.disable = false;
|
|
|
let {code,orgId,orgName,areaId,checkId} = JSON.parse(JSON.stringify(this.nfcInfo));
|
|
|
this.formData = {code,orgId,orgName};
|
|
|
- console.log('orgid改变')
|
|
|
this.getAreaList();
|
|
|
this.getCheckList();
|
|
|
this.$nextTick(()=>{
|
|
|
@@ -131,18 +158,8 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
getNfc(){
|
|
|
- alert('模拟扫描');
|
|
|
- let code = '234242342' //'3333333333'
|
|
|
- nfcDetails(code).then(res=>{
|
|
|
- console.log(res,'res')
|
|
|
- if(res.data){
|
|
|
- this.nfcInfo = res.data;
|
|
|
- }else {
|
|
|
- this.$toast('未查询到相关信息');
|
|
|
- this.formData.code = code;
|
|
|
- this.disable = false;
|
|
|
- }
|
|
|
- })
|
|
|
+ if(this.nfcMsg === '扫描中...') return;
|
|
|
+ this.useNFC();
|
|
|
},
|
|
|
changeOrg(selected){
|
|
|
this.showPicker = false;
|
|
|
@@ -178,6 +195,39 @@ export default {
|
|
|
console.log(111)
|
|
|
this.showPicker = true;
|
|
|
},
|
|
|
+ useNFC(){
|
|
|
+ let system = this.isAndroidOrIos();
|
|
|
+ console.log(system,'system')
|
|
|
+ if(system === 3) return this.$toast('当前环境不支持');
|
|
|
+ const parms = {
|
|
|
+ "iOS_SessionType":"0"
|
|
|
+ };
|
|
|
+ if(system === 1){
|
|
|
+ //android
|
|
|
+ // 判断当前环境是是否存在 js桥 'sap'
|
|
|
+ const hasSap = window.hasOwnProperty('sap');
|
|
|
+ console.log(hasSap,'hasSap')
|
|
|
+ if (hasSap) {
|
|
|
+ // 判断是否存在方法 ?preview
|
|
|
+ const fun = sap.hasOwnProperty('openNFCScan');
|
|
|
+ if (fun) {
|
|
|
+ sap.openNFCScan(JSON.stringify(parms));
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ this.$toast('当前环境不支持');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(system === 2){
|
|
|
+ //ios
|
|
|
+ // 判断 ios是否存在方法 preview
|
|
|
+ if(!window.webkit) return this.$toast('当前环境不支持');
|
|
|
+ const fun = window.webkit.messageHandlers.hasOwnProperty('openNFCScan')
|
|
|
+ if (fun) {
|
|
|
+ window.webkit.messageHandlers.openNFCScan.postMessage(JSON.stringify(parms))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
</script>
|