// pages/cardetail/cardetail.js


import { get,post } from "../../common/request.js"
import pathmap from "../../common/pathmap"
import stylemap from "../../common/stylemap"
import { retCartData } from "../../data/car"
import bindLog,{logs} from "../../module/logs/logs"

const app = getApp();

Page(Object.assign({

  /**
   * 页面的初始数据
   */
  data: {
    
    collocatetype:[{
      label:"基本参数",
      name:"jiben"
    },{
      label:"发动机参数",
      name:"fadongji"
    },{
      label:"底盘及制动",
      name:"dipan"
    },{
      label:"安全配置",
      name:"anquan"
    },{
      label:"外部配置",
      name:"waibu"
    },{
      label:"内部配置",
      name:"neibu"
    },{
      label:"操控/辅助配置",
      name:"caokong"
    }],
    imagemap:{
      "事故排查":"accident",
      "轻微碰撞":"checkcollide",
      "易损耗部件":"wastage",
      "常用功能":"comonuse",
      "启动检测":"startcheck"
    },
    currentimg:1,
    openscheme:false,
    loanscale:[0.1,0.2,0.3,0.4,0.5,0.6],
    loantime:[12,24,36],
    scaleindex:0,
    timeindex:0,
    interestrate:0.003,
    timetorate:{
      "12":"rates_a",
      "24":"rates_b",
      "36":"rates_c"
    },
    scrollindex:0,
    desopen:false,
    showcheck:false,
    footerbtheight:app.globalData.isIpx?120:98
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData(Object.assign({id:options.id},stylemap));
    this.getDetail();
    bindLog(this);
  },

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

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

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

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

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

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

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  },
  loginback:function(){
    this.getDetail();
  },
  getDetail:function(){
    var _self=this;
    get(pathmap.cardetail,{id:this.data.id},function(json){
      if(json.statusCode==200){
        var detail = json.data;
        var time = detail.first_plate_at.split('-');
        /*数据结构处理*/
        detail.imgs = detail.imgs&&detail.imgs.split(",");
        detail.imgslength = detail.imgs.length;
        detail.first_plate_at = time[0]+"/"+time[1];
        detail.first_plate_atname = time[0]+"年"+parseInt(time[1])+"月";
        detail.check_info.forEach(function(item){
          item.passn = 0;
          item.unpassn = 0;
          item._child.forEach(function(item2){
            item2.passn = 0;
            item2.unpassn = 0;
            item2.opensub=false;
            item2._child.forEach(function(item3){
              if(item3.state){
                item2.passn++;
                item.passn++;
              }else{
                item2.unpassn++;
                item.unpassn++;                
              }
            })
          })
        })
        var imgh = 444*detail.imgslength+1878;
        var scrollitem = [532,1586,imgh].map(function(item){
          return item/_self.data.scale;
        })
        _self.setData({
          detail:detail,
          scrollitem:scrollitem
        })
      }else{        
        if(json.data.message){
          wx.showToast({
            title:json.data.message,
            icon:"none",
            duration:2000
          })
        }
      }
    })
  },
  switchTab:function(e){
    this.setData({
      currentimg: e.detail.current+1
    });
  },
  swCollocate:function(e){
    var name = e.currentTarget.dataset.name;
    var collocatetype = this.data.collocatetype.map(function(item){
      if(item.name==name){
        if(item.opened){
          item.opened=false;
        }else{
          item.opened=true;
        }
      }else{
        item.opened=false;
      }
      return item;
    })
    this.setData({collocatetype:collocatetype});
  },
  collectCar:function(){
    var _self=this;
    if(this.data.detail.is_collect=="0"){
      post(pathmap.collect,{
        id:this.data.id
      },function(json){
        if(json.statusCode==200){
          wx.showToast({
            title:json.data.message
          });
          _self.setData({detail:Object.assign(_self.data.detail,{is_collect:'1'})});        
        }else{
          wx.showToast({
            title:json.data.message,
            icon:"none"
          });
        }
      },null,function(){
        _self.openLog();
      })
    }else{
      post(pathmap.collectdel,{
        id:this.data.id
      },function(json){
        if(json.statusCode==200){
          wx.showToast({
            title:json.data.message
          });
          _self.setData({detail:Object.assign(_self.data.detail,{is_collect:'0'})});        
        }else{
          wx.showToast({
            title:json.data.message,
            icon:"none"
          });
        }
      },null,function(){
        _self.openLog();
      })
    }
  },
  appointmentBuy:function(){
    var _self=this;
    var mobile = wx.getStorageSync("mobile");
    post(pathmap.reserve,{
      "car_source_id":this.data.id,
      mobile:mobile
    },function(json){
      var obj = {
        title:json.data.message
      }
      if(json.statusCode!=200){
        obj.icon="none"
      }
      wx.showToast(obj);
    },null,function(){
      _self.openLog();
    })
  },
  openScheme:function(){
    var _self=this;
    var mobile = wx.getStorageSync("mobile");
    if(mobile){
      this.setData({openscheme:true});
      if(!this.data.rates_a){
        get(pathmap.rates,{
          mobile:mobile
        },function(json){
          _self.setData(json.data);
          _self.getPay(0,0);
        })
      }
    }else{
      this.openLog();
    }
  },
  closeScheme:function(){
    this.setData({openscheme:false});
  },
  getPay:function(scaleindex,timeindex){
    var price = this.data.detail.price*10000;
    var scale = this.data.loanscale[scaleindex];
    var time = this.data.loantime[timeindex];
    var interestrate = this.data[this.data.timetorate[time]]/100;
    var firstpay = price*scale;
    var premonthpay = (price-firstpay)*interestrate*(Math.pow((1+interestrate),time))/(Math.pow((1+interestrate),time)-1);
    this.setData({
      firstpay:firstpay,
      premonthpay:Math.round(premonthpay),
      scaleindex:scaleindex,
      timeindex:timeindex
    })
  },
  selectScale:function(e){
    var index = e.currentTarget.dataset.n;
    this.getPay(index,this.data.timeindex)
    //this.setData({scaleindex:index});
  },
  selectTime:function(e){
    var index = e.currentTarget.dataset.n;
    this.setData({timeindex:index});
    this.getPay(this.data.scaleindex,index)
  },
  callPhone:function(){
    if(this.data.detail.custom_tel){
      wx.makePhoneCall({
        phoneNumber:this.data.detail.custom_tel
      })
    }else{
      wx.showToast({
        title:"缺少手机号码",
        icon:"none",
        duration:2000
      })
    }
  },
  swcItem:function(e){
    this.setData({
      scrollindex:e.detail
    })
  },
  toScroll:function(e){
    var index = e.target.dataset.index;
    var collocatetype = this.data.collocatetype.map(function (item) {
      item.opened = false;
      return item;
    })
    this.setData({
      collocatetype: collocatetype,
      scrollto:index=="0"?0:this.data.scrollitem[index]+1,
      desopen:false
    })
  },
  swdesc:function(){
    this.setData({
      desopen:!this.data.desopen
    })
  },
  openCheck:function(){
    this.setData({
      showcheck:true
    })
  },
  closeCheck:function(){
    this.setData({
      showcheck:false
    })
  },
  openSub:function(e){
    var obj = e.currentTarget.dataset;
    var check_info = this.data.detail.check_info;
    var item = Object.assign({},check_info[obj.index]._child[obj.indext]);
    item.opensub = !item.opensub;
    check_info[obj.index]._child[obj.indext] = item;
    this.setData({detail:Object.assign({},this.data.detail,{check_info:check_info})});
  },
  onShareAppMessage: function(){
    return {
      title: this.data.detail.name,
      imageUrl: this.data.detail.imgs[0],
      success: (res) => {
        wx.showToast({
          title:"转发成功！"
        })
      },
      fail: (res) => {
        wx.showToast({
          title:"转发失败！",
          icon:"none"
        })
      }
    }
  }
},logs))
