123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372 |
- // 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;
- if(detail.first_plate_at){
- var time = detail.first_plate_at.split('-');
- detail.first_plate_atn = time[0]+"/"+time[1]+"首次上牌";
- detail.first_plate_atname = time[0]+"年"+parseInt(time[1])+"月";
- }else{
- detail.first_plate_atn = "未上牌";
- detail.first_plate_atname = "未上牌";
- }
- /*数据结构处理*/
- detail.imgs = detail.imgs&&detail.imgs.split(",");
- detail.imgslength = detail.imgs.length;
- 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))
|