123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362 |
- const Parse = getApp().Parse;
- const login = require("../../../utils/login");
- const getTabs = require("../../../utils/getTabs")
- const company = getApp().globalData.company
- const tabName = getApp().globalData.moduleTab
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- tabbarList: [],
- tabbarOption: null,
- active: 0,
- isInit: false,
- botHeight: 0,
- template: getApp().globalData.styleTemplate,
- bottomHeight: getApp().globalData.screenHeight - getApp().globalData.safeArea?.bottom
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: async function (options) {
- getApp().globalData.styleTemplate = {
- style: '1',
- themeColor: '',
- }
- this.setData({
- template: getApp().globalData.styleTemplate
- })
- let str = decodeURIComponent(options.q)
- let obj = this.getParaName(str)
- let tabbarOption = await getTabs.getDiyTabs(tabName ? tabName : null)
- this.setData({
- tabbarList: tabbarOption.list,
- tabbarOption: tabbarOption,
- })
- let active = options.active
- if (this.data.tabbarOption.activeColor) {
- getApp().globalData.activeColor = this.data.tabbarOption.activeColor
- }
- if (this.data.tabbarOption.activeColor == '#000000') {
- getApp().globalData.titleColor = "#999999"
- }
- let event = {
- detail: options.active || 0,
- currentTarget: {
- dataset: 1
- }
- }
- await this.onChange(event)
- this.getUserLocation()
- this.getScreenHeight()
- if (obj && obj.tableid && obj.storeid) {
- wx.navigateTo({
- url: `/nova-tourism/pages/gourmet/store-package/meal-order/index?storeid=${obj.storeid}&tableid=${obj.tableid}`,
- })
- }
- },
- getUserLocation: async function () {
- let _this = this
- await wx.getSetting({
- success: (res) => {
- if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {
- wx.showModal({
- title: '请求授权当前位置',
- content: '逛一逛需要你的地理位置,请确认授权',
- success: function (res) {
- if (res.cancel) {
- wx.showToast({
- title: '拒绝授权',
- icon: 'none',
- duration: 1000
- })
- } else if (res.confirm) {
- wx.openSetting({
- success: function (dataAu) {
- if (dataAu.authSetting["scope.userLocation"] == true) {
- wx.showToast({
- title: '授权成功',
- icon: 'success',
- duration: 1000
- })
- _this.getLocation();
- //再次授权,调用wx.getLocation的API
- } else {
- wx.showToast({
- title: '授权失败',
- icon: 'none',
- duration: 1000
- })
- }
- }
- })
- }
- }
- })
- return res.authSetting['scope.userLocation']
- } else if (res.authSetting['scope.userLocation'] == undefined) {
- //调用wx.getLocation的API
- this.getLocation();
- } else {
- //调用wx.getLocation的API
- this.getLocation();
- }
- }
- })
- },
- //授权后调用百度地图接口获取当前城市
- getLocation: function () {
- // 微信获得经纬度
- let _this = this;
- wx.getLocation({
- type: 'wgs84', //gcj02 // wgs84
- success: function (res) {
- let latitude = res.latitude
- let longitude = res.longitude
- let speed = res.speed
- let accuracy = res.accuracy
- },
- fail(err) {
- }
- })
- },
- getParaName(url) {
- if (!url || url.indexOf('?') == -1) {
- return
- }
- let paraname = url.split('?')[1]
- return this.setObject(paraname) //封装成对象
- },
- setObject(paraArr) {
- let obj = {}
- let arr1 = paraArr.split('&')
- arr1.forEach(item => {
- let str = item.split('=')
- let key = str[0]
- let val = str[1]
- obj[key] = val
- })
- return obj
- },
- async isLocal() {
- let that = this
- return await new Promise((resolve, reject) => {
- wx.getSetting({
- success: function (res) {
- let localtion = res.authSetting['scope.userLocation']
- if (!localtion) {
- that.getUserLocation()
- resolve(localtion)
- } else {
- resolve(localtion)
- }
- }
- })
- })
- },
- async onChange(event, id) {
- let currentIndex = event.detail;
- console.log(event);
- // let currentIndex = event.currentTarget.dataset.index
- let currentComp = this.selectComponent("#comp" + String(currentIndex));
- let tab = this.data.tabbarList[currentIndex];
- if (tab && tab.auth) { // auth设置有值时,校验登录
- let userLogin = wx.getStorageSync("userLogin");
- if (userLogin == "") {
- login.loginNow('/nova-tourism/pages/app-auth/index');
- return;
- }
- }
- if (currentIndex == 0) {
- currentComp.getData()
- }
- if (currentIndex == 1) {
- currentComp.setData({
- showTab: true
- })
- currentComp.getLocation()
- currentComp.getData()
- currentComp.getShopStore()
- }
- if (currentIndex == 2) {
- currentComp.setData({
- showTab: true,
- searchVal: ''
- })
- // currentComp.getRooms()/**!!!! */
- }
- if (currentIndex == 3) {
- currentComp.setData({
- goods: []
- })
- // currentComp.getmy()/**!!!! */
- // currentComp.getBindStore()/****** */
- // currentComp.getCategory()/****** */
- currentComp.getGoods()
- }
- if (currentIndex == 4) {
- // currentComp.getmy() /**!!!!! */
- }
- wx.pageScrollTo({ // 滚动至页面顶部
- scrollTop: 0,
- });
- this.setData({ // 切换Tab参数
- active: currentIndex,
- });
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: async function () { },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: async function () {
- let component = this.selectComponent("#comp" + this.data.active);
- console.log(component);
- switch (Number(this.data.active)) {
- // case 0:
- // component.refresh()
- // break;
- // case 1:
- // component.refresh()
- // break;
- case 3:
- component.setData({
- goods: []
- })
- component.refresh()
- break;
- // default:
- // break;
- }
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作传递给子组件
- */
- onPullDownRefresh: function () {
- // 根据tab当前index,查询组件并触发组件内下拉刷新函数
- let comp = this.selectComponent("#comp" + this.data.active);
- if (comp) {
- comp.onPullDownRefresh && comp.onPullDownRefresh();
- }
- return
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- return {
- // title: '畅游山坡',
- }
- },
- onShareTimeline: async function (res) {
- await this.getTask('share')
- return {
- title: '转发到朋友圈',
- query: '我是携带的参数'
- }
- },
- //获取底部安全距离
- getScreenHeight() {
- let that = this
- wx.getSystemInfo({
- success: (res) => {
- let {
- screenHeight,
- safeArea
- } = res
- let botHeight = screenHeight - safeArea.bottom
- that.setData({
- botHeight
- })
- wx.setStorageSync('botHeight', botHeight);
- },
- fail: () => { },
- complete: () => { }
- });
- },
- async getTask(type) {
- let userid = Parse.User.current().id
- let Task = new Parse.Query('Task')
- Task.equalTo('company', company)
- Task.equalTo('taskType', type)
- Task.equalTo('isOpen', true)
- let task = await Task.first()
- if (task && task.id) {
- let start = new Date(new Date(new Date().toLocaleDateString()).getTime())
- let TaskLog = new Parse.Query('TaskLog')
- TaskLog.equalTo('user', userid)
- TaskLog.equalTo('task', task.id)
- TaskLog.equalTo('company', company)
- if (task.type == 'daily') {
- TaskLog.greaterThan('createdAt', start)
- }
- let log = await TaskLog.first()
- if (log && log.id) {
- return
- } else {
- this.createdLog(userid, task.id, task.get('credit'))
- }
- }
- },
- async createdLog(uid, tid, credit) {
- let TaskLog = Parse.Object.extend('TaskLog')
- let tasklog = new TaskLog()
- tasklog.set('user', {
- __type: "Pointer",
- className: '_User',
- objectId: uid
- })
- tasklog.set('task', {
- __type: "Pointer",
- className: 'Task',
- objectId: tid
- })
- tasklog.set('company', {
- __type: "Pointer",
- className: 'Company',
- objectId: company
- })
- tasklog.set('isReceive', false)
- tasklog.set('credit', credit)
- await tasklog.save()
- },
- })
|