// pages/newCachePage/newCahePage.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,
    isWxRegister: false
  },
  goBack() {
    wx.redirectTo({
      url: '/pages/index/index',
    })
  },
  async register() {
    if (!this.checkout()) return
    let res = await postApi('/user/wx/register', {
      userId: wx.getStorageSync('userId'),
      shipName: this.data.shipName,
      shipMmsi: this.data.shipMmsi,
    })
    console.log(res)
    if (res.data.status == 0) {
      let {
        shipInfo,
        userInfo
      } = res.data.result

      let data = {
        ...shipInfo,
        ...userInfo
      }
      Object.keys(data).forEach(function (key) {
        wx.setStorageSync(key, data[key])
      })
      wx.compressImage({
        src: wx.getStorageSync('file'),
        quality: 80, // 压缩质量
        success: async e => {
          console.log("图片压缩成功!", e)
          wx.hideLoading({
            success: (res) => {},
          })
          wx.showLoading({
            title: '正在上传...',
          })
          let res = await uploadFile(e.tempFilePath, {
            type: 3,
            userId: wx.getStorageSync('userId'),
            location: `${this.data.longitude},${this.data.latitude}`
          })
          console.log("上传结束", res)
          if (res.status == 0) {
            wx.showToast({
              title: res.msg
            })
            wx.setStorageSync('shareImageUrl', res.result.viewUrl)
            console.log(wx.getStorageSync('shareImageUrl'))
            wx.downloadFile({
              url: res.result.viewUrl,
              success: e => {
                console.log("下载调用!", e)
                wx.setStorageSync('cacheImage', e.tempFilePath)
                wx.saveImageToPhotosAlbum({
                  filePath: e.tempFilePath,
                  success: e => {
                    if (e.errMsg == "saveImageToPhotosAlbum:ok") {
                      wx.showToast({
                        title: '保存成功!',
                      })
                      wx.removeStorageSync('cacheImage')
                    }
                  },
                  fail: e => {
                    console.log("失败44", e)
                    this.setData({
                      authModal: true,
                      modalText: "文件存储"
                    })
                  }
                })
                wx.navigateTo({
                  url: '/pages/takePhoto/success/success',
                })
              },
              fail: e => {
                console.log("失败3", e)
              }
            })


          } else {
            wx.showToast({
              title: res.msg
            })
          }
        },
        fail: e => {
          console.log("失败22", e)
        }
      })
    } else {

    }
  },
  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() {
    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)
          try {
            let res = await postApi('/user/wx/login', {
              openId: wx.getStorageSync('openId'),
              phone
            })
            console.log(res)
            if (res.data.status == 0) {
              let {
                shipInfo,
                userInfo
              } = res.data.result

              let data = {
                ...shipInfo,
                ...userInfo
              }
              Object.keys(data).forEach(function (key) {
                wx.setStorageSync(key, data[key])
              })
              wx.compressImage({
                src: wx.getStorageSync('file'),
                quality: 80, // 压缩质量
                success: async e => {
                  console.log("图片压缩成功!", e)
                  wx.hideLoading({
                    success: (res) => {},
                  })
                  wx.showLoading({
                    title: '正在上传...',
                  })
                  let res = await uploadFile(e.tempFilePath, {
                    type: 3,
                    userId: wx.getStorageSync('userId'),
                    location: `${this.data.longitude},${this.data.latitude}`
                  })
                  console.log("上传结束", res)
                  if (res.status == 0) {
                    wx.showToast({
                      title: res.msg
                    })
                    wx.setStorageSync('shareImageUrl', res.result.viewUrl)
                    console.log(wx.getStorageSync('shareImageUrl'))
                    wx.downloadFile({
                      url: res.result.viewUrl,
                      success: e => {
                        console.log("下载调用!", e)
                        wx.setStorageSync('cacheImage', e.tempFilePath)
                        wx.saveImageToPhotosAlbum({
                          filePath: e.tempFilePath,
                          success: e => {
                            if (e.errMsg == "saveImageToPhotosAlbum:ok") {
                              wx.showToast({
                                title: '保存成功!',
                              })
                              wx.removeStorageSync('cacheImage')
                            }
                          },
                          fail: e => {
                            console.log("失败4", e)
                            this.setData({
                              authModal: true,
                              modalText: "文件存储"
                            })
                          }
                        })
                        wx.navigateTo({
                          url: '/pages/takePhoto/success/success',
                        })
                      },
                      fail: e => {
                        console.log("失败33", e)
                      }
                    })


                  } else {
                    wx.showToast({
                      title: res.msg
                    })
                  }
                },
                fail: e => {
                  console.log("失败2", e)
                }
              })
            } else {
              let {
                userInfo
              } = res.data.result

              let data = {
                ...userInfo
              }
              Object.keys(data).forEach(function (key) {
                wx.setStorageSync(key, data[key])
              })
              this.setData({
                isWxRegister: true,
                agreeModal: false
              })
            }
          } catch (error) {
            console.log(error)
          } finally {
            wx.hideLoading({
              success: (res) => {},
            })
          }

        } 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 () {

  }
})