123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- //index.js
- //获取应用实例
- const app = getApp()
- Page({
- data: {
- motto: 'Hello World',
- type: '', //0上课,1寝室
- sucmsg: false,
- warmsg: false,
- errmsg: '',
- list: [],
- placeList: []
- },
- //事件处理函数
- bindViewTap: function () {
- wx.navigateTo({
- url: '../logs/logs'
- })
- },
- onLoad: function (option) {
- this.stopDiscovery();
- this.startDiscover();
- this.setData({
- type: option.type
- })
- this.getPlaceList();
- },
- addsuc: function () {
- this.setData({
- sucmsg: true,
- warmsg: false,
- });
- },
- addmsg: function (errmsg) {
- let msg = '';
- if (errmsg.errCode == '11001' || errmsg.errCode === 11001) msg = '请打开蓝牙功能,重新进入';
- else if (errmsg.errCode == '11003' || errmsg.errCode === 11003) msg = '已经开始搜索';
- else if (errmsg.errCode == '11004' || errmsg.errCode === 11004) msg = '还未开始搜索';
- else msg = errmsg.errMsg;
- this.setData({
- warmsg: true,
- sucmsg: false,
- errmsg: msg,
- });
- },
- ibeaconBtn: function () {
- var that = this;
- wx.showLoading({
- title: '正在签到',
- mask: true,
- })
- let newdata = {
- openid: app.globalData.openid,
- type: that.data.type,
- ibeacon: that.data.list.map(i => i.minor)
- };
- wx.request({
- url: app.globalData.contentpath + 'api/train/attendance/attendancecreate',
- header: {//请求头
- "Content-Type": "application/json"
- },
- data: newdata,
- method: 'POST',
- dataType: 'json',
- success: function (res) {
- if (res.data.errcode == 0) {
- that.addsuc();
- } else {
- console.log('签到失败' + res.data.errmsg);
- that.addmsg({ errMsg: res.data.errmsg });
- }
- },
- fail: function (err) {
- console.log('签到失败' + err);
- that.addmsg(err);
- },//请求失败
- complete: function () {
- wx.hideLoading()
- }//请求完成后执行的函数
- })
- },
- startDiscover() {
- // setTimeout(() => this.stopDiscovery(), 5000);
- wx.startBeaconDiscovery({
- uuids: ['FDA50693-A4E2-4FB1-AFCF-C6EB07647825'],
- success: (res) => {
- wx.onBeaconUpdate(res => {
- wx.getBeacons({
- success: (result) => {
- const { beacons } = result
- var beaconList = [];
- var limit = 30;
- for (var i = 0; i < beacons.length; i++) {
- var beacon = beacons[i];
- if (beacon.accuracy < limit) {
- const r = this.data.placeList.find(f => f.ibeacon === `${beacon.minor}`)
- if (r) {
- if (this.data.type === '0') {
- const { name } = r
- beaconList.push(name);
- } else {
- const { code, floor } = r
- let name;
- let remark = 'C区';
- if (code.includes('后楼')) {
- if (code.includes('-')) remark = "B区"
- if (floor) name = `后楼${remark}${floor.includes('楼') ? floor : `${floor}楼`}`
- else name = `后楼${remark}${beacon.minor}`
- } else if (code.includes('前楼')) {
- if (floor) name = `前楼${floor.includes('楼') ? floor : `${floor}楼`}`
- else name = `前楼${beacon.minor}`
- } else name = code
- beaconList.push(name);
- }
- }
- }
- }
- this.setData({
- list: beaconList
- })
- console.log(result)
- },
- })
- })
- },
- fail: (error) => {
- console.log(error)
- this.addmsg(error);
- }
- })
- },
- stopDiscovery() {
- wx.stopBeaconDiscovery({
- success: (res) => {
- console.log('停止扫描');
- },
- })
- },
- getPlaceList() {
- let model;
- if (this.data.type === '1' || this.data.type === 1) {
- model = 'bedroom'
- } else {
- model = 'location'
- }
- let uri = `api/train/${model}`
- wx.request({
- url: `${app.globalData.contentpath}${uri}`,
- header: {//请求头
- "Content-Type": "application/json"
- },
- method: 'GET',
- dataType: 'json',
- success: (res) => {
- if (res.data.errcode == 0) {
- console.log(res);
- const { data } = res.data;
- if (data) {
- const list = data.filter(f => f.ibeacon)
- this.setData({
- placeList: list
- })
- console.log(this.data.placeList);
- }
- } else {
- }
- },
- fail: function (err) {
- that.addmsg(err);
- },//请求失败
- })
- }
- })
|