// pages/cachePage/cachePage.js
import cloudApi from "../../apis/cloudApi"
import {
  postApi
} from "../../apis/api"
import {
  uploadFile
} from "../../utils/upload"

Page({

  /**
   * 页面的初始数据
   */
  data: {
    type: "",
    file: "",
    latitude: "",
    longitude: "",
    shipName: "",
    shipMmsi: "",
    agreeModal: false,
    agreeText: false
  },
  goBack() {
    wx.redirectTo({
      url: '/pages/index/index',
    })
  },
  checkout() {
    if (!this.data.shipName) {
      wx.showToast({
        title: '请输入船名!',
        icon: "error"
      })
      return
    }

    if (!this.data.shipMmsi) {
      wx.showToast({
        title: '请输入MMSI!',
        icon: "error"
      })
      return
    }

    return true
  },
  agree() {
    this.setData({
      agreeText: false,
    })
  },

  showAgeeeText() {
    this.setData({
      agreeText: true
    })
  },
  hideAgreeText() {
    this.setData({
      agreeText: false
    })
  },
  hideAgreeModal() {
    this.setData({
      agreeModal: false
    })
  },
  showAgreeModal() {
    // if (!this.checkout()) return
    this.setData({
      agreeModal: true
    })
  },
  async getPhoneNumber(e) {
    try {
      if (e.detail.errMsg == "getPhoneNumber:ok") {
        wx.showLoading({
          title: '正在登录...',
          mask: true
        })
        let session_key = wx.getStorageSync('session_key')
        let {
          result
        } = await cloudApi("getWxPhoneNumber", {
          ...e.detail,
          session_key
        })
        let {
          phone,
        } = result
        if (phone) {
          wx.setStorageSync('phone', phone)
          let {
            shipName,
            shipMmsi
          } = this.data
          try {
            let res = await uploadFile(wx.getStorageSync('file'), {
              openId: wx.getStorageSync('openId'),
              phone,
              shipName,
              shipMmsi,
              type: wx.getStorageSync('type'),
              location: `${this.data.longitude},${this.data.latitude}`
            }, 1)
            if (res.status == 0) {
              wx.setStorageSync('shareImageUrl', res.result.mediaInfo.viewUrl)
              let {
                shipInfo,
                userInfo
              } = res.result

              let data = {
                ...shipInfo,
                ...userInfo
              }
              Object.keys(data).forEach(function (key) {
                wx.setStorageSync(key, data[key])
              })
              wx.showToast({
                title: res.msg,
              })
              wx.downloadFile({
                url: res.result.mediaInfo.viewUrl,
                success: e => {
                  console.log("下载调用!", e)
                  wx.setStorageSync('cacheImage', e.tempFilePath)
                  wx.saveImageToPhotosAlbum({
                    filePath: e.tempFilePath,
                    success: e => {
                      console.log(5, e)

                      if (e.errMsg == "saveImageToPhotosAlbum:ok") {
                        wx.showToast({
                          title: '保存成功!',
                        })
                        wx.removeStorageSync('cacheImage')
                      }
                    },
                    fail: async e => {
                      console.log("6", e)
                      wx.hideLoading({})
                      wx.showToast({
                        title: '保存失败!',
                        duration: 5000
                      })
                      await cloudApi('sendError', {
                        e,
                        flag: 4,
                        msg: "保存失败"
                      })
                      this.setData({
                        authModal: true,
                        modalText: "文件存储"
                      })
                    }
                  })
                  wx.navigateTo({
                    url: '/pages/takePhoto/success/success',
                  })
                },
                fail: async e => {
                  wx.hideLoading({})
                  wx.showToast({
                    title: '下载失败!',
                    duration: 5000
                  })
                  await cloudApi('sendError', {
                    e,
                    msg: "下载失败",
                    flag: 3
                  })
                }
              })
            } else {
              wx.hideLoading({})
              await cloudApi('sendError', {
                res,
                flag: 2
              })
              wx.showToast({
                title: res.msg,
                icon: "error"
              })
            }
          } catch (error) {
            await cloudApi('sendError', {
              error,
              flag: 1
            })
          }
        } else {
          wx.hideLoading({})
          wx.showToast({
            title: '获取手机号失败',
            duration: 5000
          })
          await cloudApi('sendError', {
            msg: "获取手机号失败"
          })
        }
      } else {
        wx.showToast({
          title: '请授权以登录',
          icon: "error"
        })
        await cloudApi('sendError', {
          msg: "未授权手机号"
        })
      }
    } catch (error) {
      await cloudApi('sendError', {
        msg: "全局trycatch",
        error
      })
    }


  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      type: wx.getStorageSync('type'),
      file: wx.getStorageSync('file'),
      latitude: wx.getStorageSync('latitude'),
      longitude: wx.getStorageSync('longitude')
    })
  },

  onShareAppMessage: function () {

  }
})