const { default: DPagination } = require("../../../utils/DPagination");
const { getProjectNameLang, getLocation } = require("../common");

// packageH/project_verification/MyProject/MyProject.js
const App = getApp();
const GetUnUseProjectUrl = App.getNetAddresss("plugin.store-projects.frontend.project-order.get-un-finish-list");
const GetUsedProjectUrl = App.getNetAddresss("plugin.store-projects.frontend.project-order.get-finish-list");
const ProjectsPagination = new DPagination("projects");
let Location = null;
Page({
  /**
   * 页面的初始数据
   */
  data: {
    currentShowPageTab: "0",
    projects: {},
    projectCount: 0,
    projectNameLang: getProjectNameLang(),
    showGivePop: false,
    giveInfo: {},
    Location: {},
    giveUserId:'',
    giveNum:'',
    nickname:"",
    errorFlag:false,
    errorMsg:'',
    timeStyle:"0",
    addressValue:""
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    if(options.Location){
      let Location =JSON.parse(options.Location);
      console.log(Location);
      this.setData({Location});
    }
    ProjectsPagination.bind(this);
    Location = await getLocation();
    this.getProjects();
  },

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

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {},

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

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    ProjectsPagination.clean();
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    ProjectsPagination.clean();
    this.getProjects();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.getProjects();
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},
  switchPageTabs({ detail: { name } }) {
    this.setData({
      currentShowPageTab: name,
    });
    ProjectsPagination.clean();
    this.getProjects();
  },
  timeSort({currentTarget:{dataset:{val}}}){
    let {timeStyle} = this.data;
    if(val===true){
      timeStyle = timeStyle ==2?3:2;
    }else{
      timeStyle = timeStyle==0?1:0;
    }
    this.setData({timeStyle});
    ProjectsPagination.clean();
    this.getProjects();
  },
  getProjects() {
    if (ProjectsPagination.loading || ProjectsPagination.finished) {
      return;
    }
    ProjectsPagination.loading = true;
    let url = GetUnUseProjectUrl;
    let point = App.qqMapTransBMap(parseFloat(Location.point.lng), parseFloat(Location.point.lat));
    let data = {
      page: ProjectsPagination.loadPage,
      lat: point.lat,
      lng: point.lng,
    };
    let loct = this.data.Location;
    if(Object.keys(loct).length>0){
      data.lat = loct.latitude;
      data.lng = loct.longitude;
      this.setData({addressValue:loct.message});
      console.log(this.data.Location,9898);
    }else{
      this.setData({addressValue:Location.address});
    }
    if (this.data.currentShowPageTab === "1") {
      url = GetUsedProjectUrl;
    }else{
      data.orderby = this.data.timeStyle;
    }
    wx.showLoading();
    App._getNetWork({
      url,
      data,
      success: ({ data: { data: response, result, msg } }) => {
        ProjectsPagination.loading = false;
        wx.stopPullDownRefresh();
        wx.hideLoading();
        if (result == 0) {
          wx.showToast({
            title: msg,
            icon: "none",
          });
          return;
        }
        if (response.current_page == response.last_page || response.data.length < response.per_page) {
          ProjectsPagination.finished = true;
        }
        ProjectsPagination.push(response.data);
        this.setData({
          projectCount: ProjectsPagination.length,
        });
      },
    });
  },

  tapBtnGive (event) {
    let obj = event.currentTarget.dataset.item;
    this.setData({
      showGivePop: true,
      giveInfo: obj
    });
  },
  // 关闭弹框
  closeGivePop () {
    this.setData({
      showGivePop: false,
    });
  },
  // 确定赠送
  giveProject () {
    if (!this.data.giveUserId) {
      this.setData({
        errorFlag:true,
        errorMsg:'请输入用户'
      });
      return;
    }
    if(this.data.errorFlag){
      this.setData({errorMsg:'查无此用户',errorFlag:true});
      return;
    }

    if (!this.data.giveNum) {
      this.setData({
        errorNum:'转增次数不能为空'
      });
      return;
    }
    if (this.data.giveInfo.rest_count < this.data.giveNum) {
      this.setData({
        errorNum:'输入转赠次数大于拥有的次数'
      });
      return;
    }

    let urlStr = App.getNetAddresss("plugin.store-projects.frontend.project-order.transfer");
    App._getNetWork({
      url:urlStr,
      data: {id: this.data.giveInfo.id,
        transfer_uid: this.data.giveUserId,
        transfer_count: this.data.giveNum},
      success: (resdata) => {
        let res = resdata.data;
        console.log(res.msg);
        App.tips(res.msg);
        if(res.result == 1){
          this.closeGivePop();
          ProjectsPagination.clean();
          this.getProjects();
        }

      }
    });
  },

  throttleFn(evt){
    let uid = evt.detail;
    this.data.giveUserId = uid;
    this.data.errorFlag = true;
    if (this.timeoutId) {
      clearTimeout(this.timeoutId);
    }
    this.timeoutId = setTimeout(()=> {
      this.searchUser(uid);
    }, 1000);
  },
  searchUser(uid){
    let urlStr = App.getNetAddresss("member.member.memberInfo");
    console.log(urlStr);
    App._getNetWork({
      url:urlStr,
      data: {uid},
      success: (resdata) => {
        let res = resdata.data;
        if(res.result == 1 && res.data !=null){
          this.setData({
            nickname:res.data.nickname,errorFlag:false,giveUserId:uid
          });
        }else {
          this.setData({errorFlag:true,errorMsg:'查无此用户'});
        }

      },
      fail:()=>{
        this.setData({giveUserId:'',errorFlag:true,errorMsg:'查无此用户'});
      }
    });
  },
  changeNumInput (event) {
    console.log(event);
    let num = this.data.giveNum;
    let errorNum = '';
    if (num<=0) {
      errorNum = "转增次数不能为空";
    }else if (this.data.giveInfo.rest_count < num) {
      errorNum = "输入转赠次数大于拥有的次数";
    }
    this.setData({errorNum});
  },




});
