Newer
Older
smart_construction / miniprogram / pages / indexapp / indexapp.js
dutingting on 16 Jul 9 KB bug修复
// miniprogram/pages/indexapp/indexapp.js
var app = getApp()
Page({

  /**
   * 页面的初始数据
   */

  data: {
    actionSheetShow: false, // 选择项目面板显隐(有一个项目的时候不展示)
    projectList: [], // 项目列表
    count: 1,
    onshow: true,
    value: "",
    deviceloglist: [],
    devcode: "",
    longitude: 113.324520,
    latitude: 23.099994,
    time: 15 * 1000,
    markers: [{
      id: 0,
      // iconPath: "../../images/point.png",
      latitude: 23.099994,
      longitude: 113.324520,
      label:'1',
      width: 50,
      height: 50
    }],
    isSign: false, // 是否已经签名
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const projectList = app.globalData.projectList.map(item => {
        return {
            name: item.projectName,
            id: item.projectId
        }
    })
    this.setData({
        projectList: projectList
    })
    this.solveSelectProject()
    this.searchlogs() // 获取列表
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

//   处理是否开启项目选择框
solveSelectProject: function () {
    console.log('此人的角色', app.globalData.role);
    console.log('配置的管理员进入小程序是否选择项目', app.globalData.isConfigProject);
    console.log('选择的项目名称', app.globalData.selectProjectName);
    if(app.globalData.role === 'repair') { // 管理员
        if(app.globalData.isConfigProject === '1' && app.globalData.selectProjectName) {
            if (this.data.onshow) {
                this.initPages();
              }
        } else if(app.globalData.isConfigProject === '1' && !app.globalData.selectProjectName){
            this.setData({
                actionSheetShow: true
            })
        } else {
            wx.showTabBar()
        }

    } else { // 普通用户
        if(app.globalData.selectProjectName) {
            if (this.data.onshow) {
                this.initPages();
              }
        } else {
            this.setData({
                actionSheetShow: true
            })
        } 
    }
},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if(app.globalData.selectProjectName) {
        wx.showTabBar()
    } else {
        wx.hideTabBar()
    }
    // 获取安全生产责任书的状态
    this.getSafeBookStatus().then(() => {
        this.setData({
            isSign: app.globalData.safeBookStatus == '0' ? false : true
        })
       
        this.solveSelectProject()
       
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    console.log('触底');
    // if(app.globalData.selectProjectName) {
    //     this.getlogs(this.data.devcode)
    // } else {
    //     this.setData({
    //         actionSheetShow: true
    //     })
    // }

    if(app.globalData.role === 'repair') { // 管理员
        if(app.globalData.isConfigProject === '1' && app.globalData.selectProjectName) {
            this.getlogs(this.data.devcode)
        } else if(app.globalData.isConfigProject === '1' && !app.globalData.selectProjectName){
            this.setData({
                actionSheetShow: true
            })
        } else {
            this.getlogs(this.data.devcode)
        }

    } else { // 普通用户
        if(app.globalData.selectProjectName) {
            this.getlogs(this.data.devcode)
        } else {
            this.setData({
                actionSheetShow: true
            })
        }
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  jump: function (event) {
    var that = this;
    var latitude = event.target.dataset.pointLat;
    var longitude = event.target.dataset.pointLon;
    let devcode = event.target.dataset.pointCode;
    that.setData({
      latitude: latitude,
      longitude: longitude,
      markers: [{
        latitude: latitude,
        longitude: longitude,
        callout: {
            display:'ALWAYS',// 常显气泡
            content: devcode,  //名称文本
            color: '#fff',  //文本颜色
            borderRadius: 5,  //边框圆角
            borderWidth: 1,  //边框宽度
            borderColor: '#0060ff',  //边框颜色
            bgColor: '#0060ff',  //背景色
            padding: 5,  //文本边缘留白
            textAlign: 'center'  //文本对齐方式。有效值: left, right, center
          }
      }]
    })
  },
  onClick: function () {
    var _this = this;
    wx.scanCode({
      success(res) {
        var devcode = res.result
        _this.setData({
          devcode: devcode,
          onshow: false
        });
        _this.searchlogs(devcode)
      }
    })
  },

  onSearch: function (event) {
    this.setData({
      devcode: event.detail
    })
    this.searchlogs(event.detail)
  },

  showLoading: function (message) {
    if (wx.showLoading) {
      // 基础库 1.1.0 微信6.5.6版本开始支持,低版本需做兼容处理
      wx.showLoading({
        title: message,
        mask: true
      });
    } else {
      // 低版本采用Toast兼容处理并将时间设为20秒以免自动消失
      wx.showToast({
        title: message,
        icon: 'loading',
        mask: true,
        duration: 20000
      });
    }
  },
  hideLoading: function () {
    if (wx.hideLoading) {
      // 基础库 1.1.0 微信6.5.6版本开始支持,低版本需做兼容处理
      wx.hideLoading();
    } else {
      wx.hideToast();
    }
  },

  //加载设备运维详细信息
  toDetail: function (event) {
    var that = this
    that.showLoading("数据加载中...")
    wx.request({
      method: "POST",
      url: app.globalData.httpsUrl + "appDeviceLog/deviceDetail",
      data: {
        devcode: event.target.dataset.devcode,
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
      },
      success(res) {
        that.hideLoading();
        var resultObject = res.data;
        var pageName = '../indexapp/indexapp'
        if (resultObject.code == 200) {
            wx.setStorageSync('resultObject', resultObject.data)
          wx.navigateTo({
            url: '../addDevicelog/addDeviceLog?detail=' +'&pageName=' + pageName
          })
        }
      },
      fail(err){
        that.hideLoading();
      }
    })
  },

  //加载列表
  getlogs: function (devcode) {
    var that = this
    wx.request({
      method: "POST",
      url: app.globalData.httpsUrl + "appDeviceLog/listPage",
      data: {
        devcode: devcode,
        limit: 100,
        project: (app.globalData.role === 'repair' && app.globalData.isConfigProject === '0') ? '' : app.globalData.selectProjectName ,
        offset: that.data.deviceloglist.length % 100 > 0 ? parseInt(that.data.deviceloglist.length / 100) + 2 : parseInt(that.data.deviceloglist.length / 100) + 1
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
      },
      success(res) {
        if (res.data) {
          // var resultJson = JSON.parse(res.result)
          var resultJson = res.data
          that.setData({
            deviceloglist: that.data.deviceloglist.concat(resultJson.data.rows)
          })
        }
      }
    })
  },
  //查询列表
  searchlogs: function (devcode) {
    var that = this
    wx.request({
      method: "POST",
      url: app.globalData.httpsUrl + "appDeviceLog/listPage",
      data: {
        devcode: devcode,
        project: (app.globalData.role === 'repair' && app.globalData.isConfigProject === '0') ? '' : app.globalData.selectProjectName ,
        limit: 100,
        offset: 1
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
      },
      success(res) {
        if (res.data) {
          var resultJson = res.data
          that.setData({
            deviceloglist: resultJson.data.rows,
            onshow: true
          })
        }
      }
    })
  },

  initPages: function () {
    var that = this;
    wx.getLocation({
      type: "gcj02",
      success: function (res) {
        var latitude = res.latitude;
        var longitude = res.longitude;
        //console.log(res.latitude);
        that.setData({
          latitude: latitude,
          longitude: longitude,
          markers: [{
            latitude: latitude,
            longitude: longitude
          }]
        })
      }
    })
    this.data.devcode !== '' ? this.searchlogs(this.data.devcode) : this.searchlogs()
  },
    // 点击图标
    clickFinishArea() {
        wx.navigateTo({
          url: '../safeBook/safeBook',
        })
    },
    // 选择好项目
    selectProject(e) {
        console.log('选择的项目id', e.detail.id);
        app.globalData.selectProjectId = e.detail.id; // 项目id
        app.globalData.selectProjectName = e.detail.name; // 项目名称
        this.setData({
            actionSheetShow: false
        })
        this.initPages();
        wx.showTabBar()
    },
     // 查询安全生产责任书签署状态
    getSafeBookStatus() {
        return new Promise((resolve, reject) => {
            var that = this
            wx.request({
                url: app.globalData.httpsUrl + "product/safe/sign-status",
                data: {
                    openId: app.globalData.openid
                },
                success: function (res) {
                  if(res.data.code === 200) { // 0未签署 1已签署
                    app.globalData.safeBookStatus = res.data.data.signStatus + '';
                    resolve()
                  }
                },
                fail: function (err) {
                  wx.showToast({
                    title: '获取安全生产责任书签署状态失败',
                    icon: 'none'
                  })
                }
              })
        })
    },
})