@@ -1,4 +1,3 @@ | |||||
import { conforms } from 'lodash'; | |||||
import wx from './weixin-js-sdk.js'; | import wx from './weixin-js-sdk.js'; | ||||
export default { | export default { | ||||
scanCodeFun() { | scanCodeFun() { | ||||
@@ -24,9 +23,9 @@ export default { | |||||
var result = res.resultStr; // 当 needResult 为 1 时,扫码返回的结果 | var result = res.resultStr; // 当 needResult 为 1 时,扫码返回的结果 | ||||
var resultArr = result.split(','); // 扫描结果以逗号分割数组 | var resultArr = result.split(','); // 扫描结果以逗号分割数组 | ||||
var codeContent = resultArr[resultArr.length - 1]; // 获取数组最后一个元素,也就是最终的内容 | var codeContent = resultArr[resultArr.length - 1]; // 获取数组最后一个元素,也就是最终的内容 | ||||
resolve(result) | |||||
resolve({result:codeContent}) | |||||
}, | }, | ||||
fail: error => { | |||||
fail: function (res) { | |||||
this.TOAST("调用扫码失败") | this.TOAST("调用扫码失败") | ||||
resolve(false) | resolve(false) | ||||
} | } | ||||
@@ -0,0 +1,67 @@ | |||||
<template> | |||||
<view></view> | |||||
</template> | |||||
<script> | |||||
import wx from '@/common/js/weixin-js-sdk.js'; | |||||
export default { | |||||
name:"scanCode", | |||||
props:{}, | |||||
data() { | |||||
return { | |||||
scanCodeReady:false, | |||||
}; | |||||
}, | |||||
mounted() { | |||||
this.setConfig() | |||||
}, | |||||
methods: { | |||||
setConfig() { | |||||
const promise = new Promise((resolve, reject) => { | |||||
this.HTTP_GET("weixinapi/getweixinwebaccess_token?url=" + encodeURIComponent(window.location.href)).then((success)=>{ | |||||
if(!success){ | |||||
resolve(false) | |||||
return | |||||
} | |||||
wx.config({ | |||||
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 | |||||
appId: success.appid, // 必填,公众号的唯一标识 | |||||
timestamp: success.timestamp, // 必填,生成签名的时间戳 | |||||
nonceStr: success.noncestr, // 必填,生成签名的随机串 | |||||
signature: success.certificate, // 必填,签名 | |||||
jsApiList: ["scanQRCode"] // 必填,需要使用的JS接口列表 | |||||
}); | |||||
wx.ready(() => { | |||||
this.scanCodeReady = true | |||||
}) | |||||
}) | |||||
}) | |||||
return promise | |||||
}, | |||||
scanCode(){ | |||||
return new Promise((resolve)=>{ | |||||
if(!this.scanCodeReady){ | |||||
resolve(false) | |||||
} | |||||
wx.scanQRCode({ | |||||
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, | |||||
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有 | |||||
success: function (res) { | |||||
var result = res.resultStr; // 当 needResult 为 1 时,扫码返回的结果 | |||||
var resultArr = result.split(','); // 扫描结果以逗号分割数组 | |||||
var codeContent = resultArr[resultArr.length - 1]; // 获取数组最后一个元素,也就是最终的内容 | |||||
resolve({result:codeContent}) | |||||
}, | |||||
fail: function (res) { | |||||
this.TOAST("调用扫码失败") | |||||
resolve(false) | |||||
} | |||||
}); | |||||
}) | |||||
} | |||||
}, | |||||
} | |||||
</script> | |||||
<style> | |||||
</style> |
@@ -1,6 +1,6 @@ | |||||
{ | { | ||||
"name" : "智慧校园", | "name" : "智慧校园", | ||||
"appid" : "__UNI__3039520", | |||||
"appid" : "__UNI__0CE0195", | |||||
"description" : "智慧校园移动端", | "description" : "智慧校园移动端", | ||||
"versionName" : "2.1.0", | "versionName" : "2.1.0", | ||||
"versionCode" : 20100, | "versionCode" : 20100, | ||||
@@ -1,50 +1,46 @@ | |||||
<template> | <template> | ||||
<view class="page"> | <view class="page"> | ||||
<view class="btn" @click="tapScan"> 扫码 </view> | |||||
<view class="btn scanCodeBtn" @click="tapScan">扫码签到</view> | |||||
<scanCode ref="refScanCode"></scanCode> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import scanCodeFun from "@/common/js/scanCodeFun.js"; | |||||
import scanCode from "@/components/scanCode.vue" | |||||
export default { | export default { | ||||
components:{scanCode}, | |||||
data() { | data() { | ||||
return {}; | return {}; | ||||
}, | }, | ||||
methods: { | methods: { | ||||
init() { | |||||
let _this = this; | |||||
scanCodeFun.scanCodeFun.call(_this).then((res) => { | |||||
if (!res) return; | |||||
var userInfo = this.GET_GLOBAL("loginUser"); | |||||
var result = this.HTTP_GET( | |||||
"learun/adms/PersonnelManagement/MeetingSignInRecord/scan", | |||||
{ | |||||
userid: userInfo.userId, | |||||
meetid: res, | |||||
}, | |||||
"签到时出错" | |||||
).then(res1=>{ | |||||
this.TOAST(res1.result) | |||||
setTimeout(()=>{ | |||||
this.NAV_BACK() | |||||
},1000) | |||||
}) | |||||
}); | |||||
}, | |||||
tapScan() { | tapScan() { | ||||
this.init(); | |||||
this.$refs['refScanCode'].scanCode().then(res=>{ | |||||
if (!res) return; | |||||
var userInfo = this.GET_GLOBAL("loginUser"); | |||||
var result = this.HTTP_GET( | |||||
"learun/adms/PersonnelManagement/MeetingSignInRecord/scan", | |||||
{ | |||||
userid: userInfo.userId, | |||||
meetid: res.result, | |||||
}, | |||||
"签到时出错" | |||||
).then(res1=>{ | |||||
this.TOAST(res1.result) | |||||
}) | |||||
}) | |||||
}, | }, | ||||
}, | }, | ||||
mounted() { | |||||
let _this = this; | |||||
setTimeout(function () { | |||||
_this.init(); | |||||
}, 100); | |||||
}, | |||||
}; | }; | ||||
</script> | </script> | ||||
<style lang="less" scoped> | <style lang="less" scoped> | ||||
@import "~@/common/css/sidepage.less"; | @import "~@/common/css/sidepage.less"; | ||||
@import "~@/common/css/customlist.less"; | @import "~@/common/css/customlist.less"; | ||||
.scanCodeBtn{ | |||||
width: 120px; | |||||
height: 120px; | |||||
border-radius: 50%; | |||||
line-height: 120px; | |||||
margin-top: 180px; | |||||
} | |||||
</style> | </style> |