import {
  getToken
} from '/utils/auth'

//全局分享
! function () {
  var PageTmp = Page;
  Page = function (pageConfig) {
    // 设置全局默认分享
    pageConfig = Object.assign({
      //右上角分享功能
      onShareAppMessage() {
        return {
          title: '智慧工地优管', //分享标题
          path: '/pages/login/login', //分享用户点开后页面
          success(res) {
            console.log('分享成功！')
          }
        }
      }
    }, pageConfig);
    PageTmp(pageConfig);
  };
}();

App({
  globalData: {
    userData: null,
    paramDeptId: '',
    useProjectId: '',
    useProjectName: '',
    searchProject: {
      id: "",
      text: "全部临时项目",
      projectId: "",
      projectName: "全部临时项目"
    },
    projectInfoList: [],
  },

  onLaunch: function (options) {
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
    } else {
      wx.cloud.init({
        // env 参数说明：
        //   env 参数决定接下来小程序发起的云开发调用（wx.cloud.xxx）会默认请求到哪个云环境的资源
        //   此处请填入环境 ID, 环境 ID 可打开云控制台查看
        //   如不填则使用默认环境（第一个创建的环境）
        // env: 'my-env-id',
        traceUser: true,
      })
    }
    this.autoUpdate();

    /**
     * 初始化页面未登录时跳转到登录页
     */
    if(options && options.proId){
      //扫码进入时不效验登录...跳转授权登录页
    }else{
      if (!getToken()) {
        // setTimeout(() => {
        //   this.toast("请使用手机号码登录");
        // }, 1000);
        wx.redirectTo({
          url: '/pages/login/index',
        });
        return false;
      }
    }
  },

  onLoad() {

  },

  //页面弹窗
  toast: function (msg, type) {
    wx.showToast({
      title: msg,
      icon: type === undefined ? 'none' : type,
      duration: 1000,
      mask: true
    });
  },

  /**
   * 计算时差
   * @param {*} val 
   */
  getDurationDate: function (val) {
    // 计算出相差天数
    let days = Math.floor(val / (24 * 3600 * 1000))
    // 计算出小时数
    let leave1 = val % (24 * 3600 * 1000) // 计算天数后剩余的毫秒数
    let hours = Math.floor(leave1 / (3600 * 1000))
    // 计算相差分钟数
    let leave2 = leave1 % (3600 * 1000) // 计算小时数后剩余的毫秒数
    let minutes = Math.floor(leave2 / (60 * 1000))
    // 计算相差秒数
    let leave3 = leave2 % (60 * 1000) // 计算分钟数后剩余的毫秒数
    let seconds = Math.round(leave3 / 1000)
    if (days > 0) {
      if (days < 10) days = "0" + days;
      if (hours < 10) hours = "0" + hours;
      if (minutes < 10) minutes = "0" + minutes;
      if (seconds < 10) seconds = "0" + seconds;
      return days + '天' + hours + '小时' + minutes + '分钟' + seconds + '秒';
    }
    if (hours > 0) {
      if (hours < 10) hours = "0" + hours;
      if (minutes < 10) minutes = "0" + minutes;
      if (seconds < 10) seconds = "0" + seconds;
      return hours + '小时' + minutes + '分钟' + seconds + '秒';
    }
    if (minutes > 0) {
      if (minutes < 10) minutes = "0" + minutes;
      if (seconds < 10) seconds = "0" + seconds;
      return minutes + '分钟' + seconds + '秒';
    }
    if (seconds > 0) {
      if (seconds < 10) seconds = "0" + seconds;
      return seconds + '秒';
    }
  },

  //版本自动更新
  autoUpdate: function () {
    var self = this
    // 获取小程序更新机制兼容
    if (wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager()
      //1. 检查小程序是否有新版本发布
      updateManager.onCheckForUpdate(function (res) {
        // 请求完新版本信息的回调
        if (res.hasUpdate) {
          //2. 小程序有新版本，则静默下载新版本，做好更新准备
          updateManager.onUpdateReady(function () {
            wx.showModal({
              title: '更新提示',
              content: '新版本已经准备好，是否重启应用？',
              success: function (res) {
                if (res.confirm) {
                  //3. 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate()
                } else if (res.cancel) {
                  //如果需要强制更新，则给出二次弹窗，如果不需要，则这里的代码都可以删掉了
                  wx.showModal({
                    title: '温馨提示~',
                    content: '本次更新可能会导致旧版本无法正常访问，请使用新版本',
                    success: function (res) {
                      self.autoUpdate()
                      //第二次提示后，强制更新
                      // if (res.confirm) {
                      // // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                      // updateManager.applyUpdate()
                      // } else if (res.cancel) {
                      // //重新回到版本更新提示
                      // self.autoUpdate()
                      // }
                    }
                  })
                }
              }
            })
          })
          updateManager.onUpdateFailed(function () {
            // 新的版本下载失败
            wx.showModal({
              title: '已经有新版本了哟~',
              content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
            })
          })
        }
      })
    } else {
      // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
      wx.showModal({
        title: '提示',
        content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
      })
    }
  }
})