cart2_ser.js 10.9 KB
var t = getApp(),app=t, a = t.request, e = require("../../../utils/common.js"),
  s = require("../../../utils/util.js"), o = require("../../../utils/md5.js"), to = getApp();
var oo=t.globalData.setting,os=oo;
var regeneratorRuntime = require('../../../utils/runtime.js');
var util_pay = require("../../../utils/pay.js");

Page({
    data: {
        url: t.globalData.setting.url,
        resourceUrl: t.globalData.setting.resourceUrl,
        imgUrl: t.globalData.setting.imghost,
       
        invoiceToggle: !0,
        payWithUserMoney: !0,
        payWithPoints: !0,
        maxWord: 0,
        enterAddressPage: !1,
     
        //页面获取的参数
        param:null,
        postdata:null,
        //提交订单的格式
        formData: {
            order_amount:0,//支付金额
            total_amount:0,//总价
            all_price:0,//商品卖的总价
            pay_points: 0,//使用积分
            user_money: 0,//使用余额
            couponCode: "",//使用优惠券(多单就用逗号隔开)
            shipping_price:0,//物流费用
        },

        /*----------------立即购买---------------------*/
        is_b_now:0,    //0是购物车结算  1立即购买
        bn_goods:null, //立即购买时候的调用商品
        bn_use_money:0,//是否使用余额     
        bn_pick:0,     //选择的门店
        bn_pickname: "", //选择的门店名称
      
        /*------------------------*/
        //判断页面是返回回来的还是 首次进入的
        yuer:0,
    },
    onLoad: function(t) {	
		wx.setNavigationBarTitle({
		  title: "填写订单",
		});
		
        var appD=getApp().globalData.service_now;
        this.data.postdata=appD;
        this.data.param=t;  
		var th=this;  
		
		getApp().promiseGet("/api/wx/weappSendlist/page", {
		  data: {
		    store_id: os.stoid,
		    typeid: "1001"
		  }}).then(res=>{
			  if (res.data.code == 0 && res.data.data.pageData.length > 0) {
			    var template_id = res.data.data.pageData[0].template_id;
			    th.setData({template_id:template_id});
			  }  
		  })
		
    },
    onUnload: function () { this.setData({ isclose: 1 })},

    //------获取会员信息-----先获取用户信息,在进行下一步---
    get_info:function(func){
       var user_id = t.globalData.user_id;
       to.auth.get_u(func);
    },

   
    //----------------展示页面,是再获取用户信息之后--------------
    show_page:function(){
          var th=this;
          //th.setData({ userinfo: to.globalData.userInfo});  会员信息要时时获取		  
		  var user=getApp().globalData.userInfo;
		  getApp().request.get("/api/weshop/users/get/" + oo.stoid + "/" + user.user_id, {
		  		data:{r:Math.random()},	
		    success: function (e) {	
				
				      getApp().globalData.userInfo = e.data.data;
				      th.setData({userinfo:e.data.data});
					  //获取立即购买的商品信息
					  th.get_buy_goods();

					  //获取提现金额
					  getApp().request.get("/api/weshop/withdrawals/summoney", {
						data: { user_id: to.globalData.user_id, store_id: oo.stoid, status: 0 },
						success: function (su) {
							if (su.data.code == 0) {
								var yuer = parseFloat(th.data.userinfo.user_money -
									(th.data.userinfo.frozen_money>0?th.data.userinfo.frozen_money:0) - su.data.data.summoney).toFixed(2);
								th.setData({ txmon: su.data.data.summoney, yuer: yuer });
							}
						}
					});
			}
		});			
    },

    //-----获取立即购买的商品信息----
    get_buy_goods: function (){
          var th=this,a=getApp().request;
          var gg =  th.data.postdata;	  
		  var url="/api/weshop/serviceCard/get/" + oo.stoid + "/" + gg.id  
          //调用商品
          a.get(url, {
             success: function (t) {
                     var gd = t.data.data;
                     t.data.data.original_img = oo.imghost + t.data.data.imgUrl;
                     t.data.data['buynum'] = gg.goods_num;    			   
			         t.data.data.shop_price=gd.money;
			 					 
                     th.setData({
                        bn_goods: t.data.data, bn_pickname: gg.pick_name,
                        bn_pick: gg.pick_id
                     });										 			 					 
                     th.calculatePrice2();
               
             }
         });
    },

    //----------子页返回父页触发----------
    onShow: function() {
       var th=this;
       if (th.data.isclose==0){
         wx.navigateTo({
           url: "/pages/index/index/index"
         })
       }   	  	   
	   //先获取是否有关闭使用优惠券
	   getApp().getConfig2(function (ee) {
	        //var json_d = JSON.parse(ee.switch_list);
	        //th.data.ispt_goods=json_d.ispt_goods;  //是不是平摊到单品的控制参数赋值
	        //th.setData({ is_close_quan: json_d.is_close_quan,sales_rules:ee.sales_rules,rank_switch:json_d.rank_switch});
	        th.show_page();				  	   		    		 	       
	    })	  	   
    },
    
	
    showInvoice: function() {
        this.setData({
            invoiceToggle: !this.data.invoiceToggle
        });
    },
	

    //---------计算立即购买----------
    calculatePrice2: function () {
		  console.log('calculatePrice2');
		  var th = this, good = this.data.bn_goods;
		  //-----------计算商品总价--------------
		  var allpice = good.shop_price * good.buynum;
		  allpice=parseFloat(allpice).toFixed(2);
		  var txt = "formData.all_price";
		  th.setData({ [txt]: allpice, });
  
		  var o_shipping_price = 0, goods_weight = -1, goods_piece = -1;	  
		  //-----------------总价-----------------
		  var total_m = parseFloat(allpice) + parseFloat( th.data.formData.shipping_price);
		  total_m = parseFloat(total_m).toFixed(2);

		  var atxt= "formData.total_amount";
		  th.setData({ [atxt]: total_m, })
		  var order_m = total_m;
		  var txt = "formData.user_money";
		  var txt2 = "formData.order_amount";
		 
		  th.setData({ [txt]: 0, [txt2]: order_m })
		    
    },
	
	submitForm:function(){
		var th=this;
		this.sendsm(function(){
			th.submit_func();
		})
	},
	
    //--------------------提交订单-----------------------
    submit_func: async function(){
        if(this.data.is_summit_ing==1) return false; //--提交中退出--
        this.data.is_summit_ing=1;
        var th=this,pdata=new Array();
        var ff=true;  				
        var item={
          'user_id': to.globalData.user_id,
          'account': th.data.formData.order_amount,          //使用余额   
          'store_id':oo.stoid,                               //商家       
		  'list':new Array(),
       }; 
       var gg = getApp().globalData.service_now;
       var goods={
          'card_id': th.data.bn_goods.id,
          'itemid': th.data.bn_goods.erpItemID,      
          'qty': gg.goods_num,
          'price': th.data.formData.order_amount,
		  'pickup_id':gg.pick_id,
		  'pickup_keyid':gg.keyid,
       };

       //--导购分享过来的id--
       if(gg.guide_id){
            goods.guide_id=gg.guide_id;
            goods.guide_type=gg.guide_type;
            //调用接口判断是不是会员
            await  getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+gg.guide_id,{}).then(res=>{
               if(res.data.code==0){
                   goods.guide_name=res.data.data.salesman;
                   goods.guide_sn=res.data.data.salesman_no;
               }
           })
      }
      item.list.push(goods);
      pdata=item;
    
      var str = JSON.stringify(pdata);
      console.log("支付数据");
      console.log(str);
      //return false;
      wx.showLoading({title: "加载中"});
      wx.request({
        url: oo.url + '/api/weshop/recharge/saveRecharge',
        data: str,
        method: 'POST',
        header: {
          'content-type': 'application/json'
        },// 设置请求的 header
        success: function (res) {
       
          wx.hideLoading();
          if (res.statusCode == 200) {
              var data=res.data;
              if(data.code==0){
              
                var order_amount = pdata.account;        
                //要进行判断,如果是用微信支付,就要跳转到支付界面
                if (order_amount > 0) {
                    th.setData({ isclose: 0 });
                    		
					getApp().request.post("/api/weshop/order/pay/createRechargeOrder", {
					  data: {
					    parentSn: data.data.order_sn,
					    store_id: oo.stoid
					  },
					  success: function (su) {					    
					    var n=su.data.data;					  
					    th.weixinPay(n,
					      function () {
					         getApp().showWarning("购买成功");			         
					         setTimeout(function () {
					             wx.reLaunch({
					         	   url: "/packageA/pages/cardList/cardList",
					             })
					         },1000)
					      }, function () {
					         getApp().showWarning("支付失败");
							 setTimeout(function () {
							    wx.reLaunch({
								   url: "/packageA/pages/cardList/cardList",
							    })
							 },1000)
					      })
					  }
					})			
                } 
              }
              else{
				 th.data.is_summit_ing=0;  //是否提交中
                 getApp().confirmBox(data.msg);
              }
          } else {
			th.data.is_summit_ing=0;  //是否提交中
            console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode);
          }
        },
        fail: function () {
		  th.data.is_summit_ing=0;  //是否提交中	
          wx.hideLoading();
          console.log("index.js wx.request CheckCallUser fail");
        },
        complete: function () {}
      })
    },

	cart_set_err: function (e) {
		var txt = e.currentTarget.dataset.err;
		var ob = {};
		ob[txt] = this.data.imgUrl + "/miniapp/images/default_g_img.gif";
		this.setData(ob);
	},
	
	//------调起支付框--------
	weixinPay: function (n, success, fail) {
	  if(!n) return false;	
	  wx.requestPayment({
	    timeStamp: String(n.timeStamp),
	    nonceStr: n.nonceStr,
	    package: n.packageValue,
	    signType: n.signType,
	    paySign: n.paySign,
	    success: function (n) {
	      console.log(n), getApp().showSuccess("支付成功!");
	      "function" == typeof success && success();
	      wx.redirectTo({
	        url: "../deposit/deposit"
	      });
	    },
	    fail: function (n) {
	      console.log(n), "requestPayment:fail" == n.errMsg ? getApp().showWarning("支付失败") : "requestPayment:fail cancel" == n.errMsg ? getApp().showWarning("您已取消支付") : getApp().showWarning("支付失败:" + n.errMsg.substr("requestPayment:fail ".length)),
	        "function" == typeof fail && fail();
	    }
	  });
	},
	
	//订阅消息提醒
	sendsm:function(func)
	  {  
	         var template_id = this.data.template_id;    
	          // //授权订阅
	          wx.requestSubscribeMessage({
	            tmplIds: [template_id],
	            success(res) {
	                func();
	            },
	            fail(res) {
	                func();
	            }
	          })
	        
	  },

   
});