// pages/car/index.js
const app = getApp()
var startPoint
Page({

  /**
   * 页面的初始数据
   */
  data: {
    str:'&emsp;',
    str2: '&ensp;',
    //按钮位置参数
    safeAreaHeight: 0, //底部安全区域的高度
    buttonTop: 0,
    buttonLeft: 0,
    windowHeight: '',
    windowWidth: '',

    loginStatus: wx.getStorageSync('loginStatus') ? wx.getStorageSync('loginStatus') : false,
    roleCodeList: wx.getStorageSync('roleCodeList') ? wx.getStorageSync('roleCodeList') : [],
    searchVal: '',
    //分页
    limit: 10,
    requestStatu: '加载中...',
    page: 1,
    totalPages: 1,
    more: false,
    nomore: '',

    resData:[],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      safeAreaHeight: app.globalData.windowInfo.screenHeight - app.globalData.systemInfo.safeArea.bottom
    })
  //获取页面高度设置新增按钮的初始位置
    var that = this;
    wx.getSystemInfo({
      success: function (res) {
        // 高度,宽度 单位为px
        that.setData({
          windowHeight: res.windowHeight, //屏幕宽度、高度
          windowWidth: res.windowWidth,
          buttonTop: res.windowHeight * 0.8 - that.data.safeAreaHeight-50, //这里定义按钮的初始位置
          buttonLeft: res.windowWidth * 0.80, //这里定义按钮的初始位置
        })
      }
    })
  },

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

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.setData({
      requestStatu:'加载中...',
      loginStatus: wx.getStorageSync('loginStatus') ? wx.getStorageSync('loginStatus') : false
    })
    if (wx.getStorageSync('loginStatus')) {
      this.getListFun();
    }
  },

  //搜索框请求S
  onChange(e) {
    this.setData({
      searchVal: e.detail,
    });
  },
  onSearch: function (event) {
    this.setData({
      searchVal: event.detail
    })
    this.getListFun();
  },
  onCancel: function () {
    this.setData({})
  },
  toSearch: function (event) {
    this.getListFun();
  },

  //列表
  getListFun: function () {
    this.setData({
      page: 1
    })
    let params = {
      current   : this.data.page,
      size      : this.data.limit,
      shipNumber: this.data.searchVal
    }
    app.request.pageFirst({
      url: app.API.shipPage,
      page: this,
      params: params,
    })
  },

  //页面跳转
  toLink: function (e) {
    let { url } = e.currentTarget.dataset
    wx.navigateTo({
      url: url
    })
  },

  //删除
  delFun: function (e) {
    let _this = this
    let { id, shipNumber } = e.currentTarget.dataset
    wx.showModal({
      title: '提示！',
      content: `删除【${shipNumber}】后不可恢复。确定要删除吗？`,
      confirmColor: '#FF5B5B',
      success: function (res) {
        if (res.confirm) {
          app.request.POST({
            url: app.API.shipDelete,
            params: [{
              id: id
            }],
            page: _this,
            isLoadingTxt: '删除中...',
            successFun: true
          }).then(res => {
            wx.showToast({
              title: '删除成功',
              icon: 'success',
              duration: 1000,
              mask: true
            })
            _this.getListFun(); //刷新列表
          })
        } else if (res.cancel) {

        }
      }
    })
  },

  //启用关闭车辆
  changeStatus: function (e) {
    let _this = this
    let { id, shipNumber, status } = e.currentTarget.dataset
    let text = status== '1'?'开启':'关闭'
    wx.showModal({
      title: '提示！',
      content: `${text}【${shipNumber}】船舶？`,
      confirmColor: '#FF5B5B',
      success: function (res) {
        if (res.confirm) {
          app.request.POST({
            url: app.API.shipEdit,
            params: {
              id: id,
              status:status
            },
            page: _this,
            isLoadingTxt: '操作中...',
            successFun: true
          }).then(res => {
            wx.showToast({
              title: '操作成功',
              icon: 'success',
              duration: 1000,
              mask: true
            })
            _this.getListFun(); //刷新列表
          })
        } else if (res.cancel) {

        }
      }
    })
  },

  //业务员进行确认
  comform: function (e) {
    let _this = this
    let { id, orderNumber } = e.currentTarget.dataset
    wx.showModal({
      title: '提示！',
      content: `确认【${orderNumber}】后不可取消。确定现在确认订单吗？`,
      confirmColor: '#FF5B5B',
      success: function (res) {
        if (res.confirm) {
          app.request.POST({
            url: app.API.orderConfirm,
            params: {
              id: id
            },
            page: _this,
            isLoadingTxt: '确认中...',
            successFun: true
          }).then(res => {
            wx.showToast({
              title: '确认成功',
              icon: 'success',
              duration: 1000,
              mask: true
            })
            _this.getListFun(); //刷新列表
          })
        } else if (res.cancel) {

        }
      }
    })
  },

  // 单选
  dangerStatusChange: function (e) {
    this.setData({
      [e.currentTarget.dataset.radiotype]: e.detail.value
    })
    if (e.detail.value == '1') {
      this.setData({
        appointmentReason: ''
      })
    }
  },
  


  //结束
  endFun: function (e) {
    let _this = this
    let { id, orderNumber } = e.currentTarget.dataset
    wx.showModal({
      title: '提示！',
      content: `结束【${orderNumber}】订单后不可取消。确定现在结束订单吗？`,
      confirmColor: '#FF5B5B',
      success: function (res) {
        if (res.confirm) {
          app.request.POST({
            url: app.API.orderEnd,
            params: {
              id: id
            },
            page: _this,
            isLoadingTxt: '操作中...',
            successFun: true
          }).then(res => {
            wx.showToast({
              title: '结束成功',
              icon: 'success',
              duration: 1000,
              mask: true
            })
            _this.getListFun(); //刷新列表
          })
        } else if (res.cancel) {

        }
      }
    })
  },

  //扫码预约申请
  changeAdd() {
    wx.navigateTo({
      url: 'add'
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.setData({
      searchVal: ''
    })
    if (wx.getStorageSync('loginStatus')) {
      this.getListFun();
    } else {
      wx.stopPullDownRefresh();
    }
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.data.page++;
    let params = {
      current   : this.data.page,
      size      : this.data.limit,
      shipNumber: this.data.searchVal
    }
    app.request.pageOther({
      url: app.API.bizvehicleList,
      page: this,
      params: params,
      loadType: true //加载类型，是否是下拉加载
    });
  },


  //以下是按钮拖动事件
  buttonStart: function (e) {
    startPoint = e.touches[0] //获取拖动开始点
  },
  buttonMove: function (e) {
    var endPoint = e.touches[e.touches.length - 1] //获取拖动结束点
    //计算在X轴上拖动的距离和在Y轴上拖动的距离
    var translateX = endPoint.clientX - startPoint.clientX
    var translateY = endPoint.clientY - startPoint.clientY
    startPoint = endPoint //重置开始位置
    var buttonTop = this.data.buttonTop + translateY
    var buttonLeft = this.data.buttonLeft + translateX
    //判断是移动否超出屏幕
    if (buttonLeft + 50 >= this.data.windowWidth) {
      buttonLeft = this.data.windowWidth - 50;
    }
    if (buttonLeft <= 0) {
      buttonLeft = 0;
    }
    if (buttonTop <= this.data.filterHeight) {
      buttonTop = this.data.filterHeight
    }
    if (buttonTop + 50 + 48 + this.data.safeAreaHeight >= this.data.windowHeight) {
      buttonTop = this.data.windowHeight - 50 - 48 - this.data.safeAreaHeight;
    }
    this.setData({
      buttonTop: buttonTop,
      buttonLeft: buttonLeft
    })
  },
  buttonEnd: function (e) {},

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

  }
})