wangkaiyue пре 5 година
родитељ
комит
ff086fef9e

+ 3 - 1
src/jfw/front/vipsubscribe.go

@@ -171,15 +171,17 @@ func (s *Subscribepay) ToPurchasePage(flag string) {
 		s.T["isTrial"] = true
 		s.T["orderType"] = -1
 	} else { //付费
+		s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数
 		if flag == "willExpire" {
 			s.T["orderType"] = 5
+			s.Render("/weixin/vipsubscribe/vip_purchase_willExpire.html")
+			return
 		} else {
 			s.T["orderType"] = 1
 		}
 		if s.GetString("orderCode") != "" {
 			s.T["again"] = 1 //再次购买
 		}
-		s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数
 	}
 	s.Render("/weixin/vipsubscribe/vip_purchase.html")
 }

+ 29 - 11
src/jfw/modules/subscribepay/src/entity/subscribeVip.go

@@ -110,11 +110,6 @@ func (this *vipSubscribeStruct) PayCallBack(param *CallBackParam) bool {
 	var endTime time.Time
 	if vmsg.OrderType == 1 { //新订单 计算开始时间 结束时间
 		startTime = time.Now()
-		/*if vmsg.Cycleunit == 1 { //年
-			endTime = startTime.AddDate(vmsg.Cyclecount, 0, 0)
-		} else if vmsg.Cycleunit == 2 { //月
-			endTime = startTime.AddDate(0, vmsg.Cyclecount, 0)
-		}*/
 		endTime = util.GetDATE(vmsg.Cycleunit, vmsg.Cyclecount, startTime.Unix())
 		updateMap["vip_starttime"] = qutil.FormatDate(&startTime, qutil.Date_Full_Layout)
 		updateMap["vip_endtime"] = qutil.FormatDate(&endTime, qutil.Date_Full_Layout)
@@ -154,6 +149,23 @@ func (this *vipSubscribeStruct) PayCallBack(param *CallBackParam) bool {
 	return flag
 }
 
+//获取用户最后一笔支付数据
+func (this *vipSubscribeStruct) GetUserLastOrderDetaul(userid string) (VipSimpleMsg, error) {
+	vmsg := VipSimpleMsg{}
+	orderData := util.Mysql.FindOne("dataexport_order", map[string]interface{}{
+		"user_id":      userid,
+		"order_status": 1,
+	}, "filter,order_code", "create_time desc")
+	if orderData == nil || len(*orderData) == 0 {
+		return vmsg, errors.New("not find last order")
+	}
+	filterStr := qutil.ObjToString((*orderData)["filter"])
+	if json.Unmarshal([]byte(filterStr), &vmsg) != nil {
+		return vmsg, errors.New(filterStr + "json.Unmarshal err")
+	}
+	return vmsg, nil
+}
+
 //设置开始使用vip订阅
 func (this *vipSubscribeStruct) StartSubVip(userId string, vmsg VipSimpleMsg, startTime, endTime time.Time, isTrial bool) bool {
 	buyset := JyVipSubStruct.NewBuySet(vmsg.Area, vmsg.Industry)
@@ -444,7 +456,7 @@ func (this *vipSubscribeStruct) GetSubVipPrice(area *map[string]interface{}, ind
 		}
 
 		//计算非全国套餐
-		finalPrice := pCount * getSetMealPrice(1, industryNum, unit) * count //省份价格
+		finalPrice := 0 //省份价格
 		for _, cityCount := range cityCountMap {
 			thisPrice := 0
 			if cityCount == 1 { //单城市
@@ -453,16 +465,22 @@ func (this *vipSubscribeStruct) GetSubVipPrice(area *map[string]interface{}, ind
 				if industryNum == 0 || industryNum == 1 { //多城市 单行业
 					thisPrice = cityCount * getSetMealPrice(2, industryNum, unit) * count
 				} else { //多行业 多行业
-					industryPrice := SubVipPrice.BuyerClassPrice * industryNum
-					cityPrice := SubVipPrice.CityPrice * cityCount
-					thisPrice = (industryPrice + cityPrice) * count
-					if unit == 1 { //年
-						thisPrice *= 10
+					//industryPrice := SubVipPrice.BuyerClassPrice * industryNum
+					//cityPrice := SubVipPrice.CityPrice * cityCount
+					//thisPrice = (industryPrice + cityPrice) * count
+					if cityCount > SubVipPrice.CityMaxCount {
+						pCount++
+					} else {
+						thisPrice = getSetMealPrice(2, industryNum, unit) * cityCount * count;
+						if unit == 1 { //年
+							thisPrice *= 10
+						}
 					}
 				}
 			}
 			finalPrice += thisPrice
 		}
+		finalPrice += pCount * getSetMealPrice(1, industryNum, unit) * count
 		return finalPrice
 	}()
 	if SubVipPrice.Discount < 1 {

+ 25 - 0
src/jfw/modules/subscribepay/src/service/vipSubscribePay.go

@@ -60,6 +60,29 @@ func (this *SubVipPayOrder) CreateOrder() {
 		if err != nil {
 			return &entity.FuncResult{false, err, nil}
 		}
+
+		if orderType == 5 {
+			//即将到期续费 若未选择 则取上次订单设置
+			selectedStr := this.GetString("selected")
+			selected := []bool{}
+			if json.Unmarshal([]byte(selectedStr), &selected) != nil {
+				return &entity.FuncResult{false, errors.New("数据异常"), nil}
+			}
+			log.Println("xxx", selected)
+			if !selected[0] || !selected[0] {
+				//查询最后一笔订单
+				vipMsg, err := entity.JyVipSubStruct.GetUserLastOrderDetaul(userId)
+				if err != nil {
+					return &entity.FuncResult{false, errors.New("创建订单失败"), nil}
+				}
+				if !selected[0] {
+					area = vipMsg.Area
+				}
+				if !selected[1] {
+					industry = vipMsg.Industry
+				}
+			}
+		}
 		filter := entity.VipSimpleMsg{
 			area,
 			industry,
@@ -79,6 +102,8 @@ func (this *SubVipPayOrder) CreateOrder() {
 		}
 		//计算价格
 		totalfee := entity.JyVipSubStruct.GetSubVipPrice(area, industry, date_count, date_unit)
+
+		log.Printf("最终选择 地区:%+v   行业:%v\n 价格%d", filter.Area, filter.Industry, totalfee)
 		//创建订单
 		tradeno, prepayid, payStr := "", "", ""
 		if payWay == "wx_js" { //微信js支付

+ 208 - 186
src/web/staticres/vipsubscribe/js/common.js

@@ -1,81 +1,110 @@
 //请求同意调用
-function $DoPost(url,param={},callback,async=true){
-	$.ajax({
-		url: url+"?t="+new Date().getTime(),
-		type: "POST",
-		data: param,
-		async: async,
-		dataType: "json",
-		success: function(r){
-			callback(r)
-			if(r.error||r.errMsg){
-				var errTip = r.error||r.errMsg;
-				weui.toast(errTip,{
-					duration: 2000,
-					className: 'custom-toast',
-				});
-			}
-		}
-	})
+function $DoPost(url, param = {}, callback, async = true) {
+    $.ajax({
+        url: url + "?t=" + new Date().getTime(),
+        type: "POST",
+        data: param,
+        async: async,
+        dataType: "json",
+        success: function (r) {
+            callback(r)
+            if (r.error || r.errMsg) {
+                var errTip = r.error || r.errMsg;
+                weui.toast(errTip, {
+                    duration: 2000,
+                    className: 'custom-toast',
+                });
+            }
+        }
+    })
 }
 
 //获取url参数
 function getParam(name) {
-	var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
-	var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
-	var context = "";
-	if (r != null)
-		context = r[2];
-	reg = null;
-	r = null;
-	return context == null || context == "" || context == "undefined" ? "" : context;
+    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+    var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
+    var context = "";
+    if (r != null)
+        context = r[2];
+    reg = null;
+    r = null;
+    return context == null || context == "" || context == "undefined" ? "" : context;
 }
 
 //省份 城市 分类
-function getAreaClassArr_index(area){
-	let cityArr=[];//城市
-	let provinceArr=[];//省份
-	for(var i in area) {
-		let citys=area[i]
-		if(citys.length>0){
-			cityArr = cityArr.concat(citys);
-			provinceArr.push(i+"("+cityArr.join("、")+")")
-		}else{
-			if(i=="全国"){
-				continue
-			}
-			provinceArr.push(i)
-		}
-	}
-	return SortArr(provinceArr)
+function getAreaClassArr_index(area) {
+    let cityArr = [];//城市
+    let provinceArr = [];//省份
+    for (var i in area) {
+        let citys = area[i]
+        if (citys.length > 0) {
+            cityArr = cityArr.concat(citys);
+            provinceArr.push(i + "(" + cityArr.join("、") + ")")
+        } else {
+            if (i == "全国") {
+                continue
+            }
+            provinceArr.push(i)
+        }
+    }
+    return SortArr(provinceArr)
 }
 
 //省份 城市 分类
-function getAreaClassArr(area){
-	let cityArr=[];//城市
-	let provinceArr=[];//省份
-	for(var i in area) {
-		let citys=area[i]
-		if(citys.length>0){
-			cityArr = cityArr.concat(citys);
-		}else{
-			if(i=="全国"){
-				continue
-			}
-			provinceArr.push(i)
-		}
-	}
-	return [SortArr(provinceArr),SortArr(cityArr)]
+function getAreaClassArr(area) {
+    let cityArr = [];//城市
+    let provinceArr = [];//省份
+    for (var i in area) {
+        let citys = area[i]
+        if (citys.length > 0) {
+            cityArr = cityArr.concat(citys);
+        } else {
+            if (i == "全国") {
+                continue
+            }
+            provinceArr.push(i)
+        }
+    }
+    return [SortArr(provinceArr), SortArr(cityArr)]
 }
 
 //对数组进行排序(拼音)
-function SortArr(arr){
-	arr = arr.sort(function compareFunction(item1, item2) {
-		return item1.localeCompare(item2);
-	});
-	return arr
+function SortArr(arr) {
+    arr = arr.sort(function compareFunction(item1, item2) {
+        return item1.localeCompare(item2);
+    });
+    return arr
 }
 
+//购买设置
+function getBuySet(area, industry) {
+    if (industry[0] === "全部行业") industry = [];
+    if (area["全国"]) area = {};
+    //计算地区数量
+    var buyset = {
+        "areacount": -1,  //省份数量
+        "buyerclasscount": -1,
+        "citys": {  //购买省份中城市数量
+        }
+    };
+    //行业
+    if (industry.length != 0) {
+        buyset.buyerclasscount = industry.length
+    }
+    //地区
+    if (!$.isEmptyObject(area)) {
+        buyset.areacount = 0;
+        for (var i in area) {
+            let citys = area[i];
+            if (citys.length === 0) {
+                buyset.areacount++
+            } else {
+                buyset.citys[i] = citys.length
+            }
+        }
+    }
+    return buyset
+}
 
 /* vip订阅价格
 	area:地区 {}
@@ -84,141 +113,134 @@ function SortArr(arr){
 	price 价格表
    return 价格(单位:分)
 */
-var priceData
-function getsubVipOrderPrice(area,industry,t,price){
-	if(!price){
-		if(priceData){
-			price=priceData
-		}else{
-			$DoPost("/subscribepay/vipsubscribe/getPrice",{},function(r){
-				if(r){
-					price=r;
-					priceData=price;
-				}else{
-					weui.toast("加载价格异常",{
-						duration: 2000,
-						className: 'custom-toast',
-					});
-				}
-			},false)
-		}
-	}
-	if(industry[0] == "全部行业")industry= []
-	if(area["全国"]) area={}
-	//当行业数量大于最大值price.BuyerClassMaxCount 按照全行业计算
-	var industryNum = industry.length
-	if (industryNum > price.buyerClassMaxCount) {
-		industryNum = 0
-	}
-	//计算地区数量
-	var pCount = -1         //省份数量
-	var citysCountMap = {} //购买省份中城市数量
+function getsubVipOrderPrice(area, industry, t, price) {
+    return getsubVipOrderPriceBybuyset(getBuySet(area, industry), t, price)
+}
 
-	if(!$.isEmptyObject(area)){
-		pCount=0
-		for(var i in area) {
-			let citys=area[i]
-			if(citys.length==0){
-				pCount++
-			}else{
-				if(citys.length > price.cityMaxCount){
-					pCount++
-				}else{
-					citysCountMap[i]= citys.length
-				}
-			}
-		}
-	}
+var priceData;
 
-	//当省份数量大于price.ProvinceMaxCount 按照全国计算
-	if (pCount > price.provinceMaxCount) {
-		pCount = -1
-	}
+//根据购买设置 获取支付金额
+function getsubVipOrderPriceBybuyset(buyset, t, price) {
+    if (!price) {
+        if (priceData) {
+            price = priceData
+        } else {
+            $DoPost("/subscribepay/vipsubscribe/getPrice", {}, function (r) {
+                if (r) {
+                    price = r;
+                    priceData = price;
+                } else {
+                    weui.toast("加载价格异常", {
+                        duration: 2000,
+                        className: 'custom-toast',
+                    });
+                }
+            }, false)
+        }
+    }
+    console.log("buyset", JSON.stringify(buyset));
+    //当省份数量大于price.ProvinceMaxCount 按照全国计算
+    if (buyset.areacount > price.provinceMaxCount) {
+        buyset.areacount = -1
+    }
+    //当行业数量大于price.buyerClassMaxCount按照全行业
+    if (buyset.buyerclasscount > price.buyerClassMaxCount) {
+        buyset.buyerclasscount = -1
+    }
+    if (t[0] > price.monthMaxCount && t[1] === 2) t[0] = 10;//月份十个月以上价格一样
 
-	if(t[0]>price.monthMaxCount&&t[1]==2) t[0]=10 //月份十个月以上价格一样
+    if (buyset.areacount === -1) {//计算全国套餐价格
+        if (buyset.buyerclasscount === 1) return getSetMealPrice(0, 1, t[1], price) * t[0] / 100; //全国1行业套餐
+        if (buyset.buyerclasscount === 0) return getSetMealPrice(0, 0, t[1], price) * t[0] / 100; //全国全行业套餐
+        return getSetMealPrice(0, buyset.buyerclasscount, t[1], price) * t[0] / 100 //全国多行业套餐
+    }
 
-	if(pCount == -1){//计算全国套餐价格
-		if(industryNum==1) return getSetMealPrice(0,1,t[1],price)*t[0]/100 //全国1行业套餐
-		if(industryNum==0) return getSetMealPrice(0,0,t[1],price)*t[0]/100 //全国全行业套餐
-		return	getSetMealPrice(0,industryNum,t[1],price) * t[0] / 100 //全国多行业套餐
-	}
+    //var final_price = buyset.areacount * getSetMealPrice(1, buyset.buyerclasscount, t[1], price) * t[0];//计算省份价格
+    var final_price = 0;//计算省份价格
 
-	var final_price	= pCount*getSetMealPrice(1,industryNum,t[1],price)*t[0];//计算省份价格
+    for (var i in buyset.citys) {
+        var thisPrice = 0;
+        if (buyset.citys[i] === 1) {//单城市
+            thisPrice = getSetMealPrice(2, buyset.buyerclasscount, t[1], price) * t[0];
+        } else {//多城市
+            if (buyset.buyerclasscount === 0 || buyset.buyerclasscount === 1) {//多城市 单行业
+                thisPrice = buyset.citys[i] * getSetMealPrice(2, buyset.buyerclasscount, t[1], price) * t[0];
+            } else {//多城市 多行业
+                //var industry_Price = price.buyerClassPrice * buyset.buyerclasscount;
+                //var city_Price = price.cityPrice * buyset.citys[i];
+                //thisPrice = (industry_Price + city_Price) * t[0];
+                if (buyset.citys[i] > price.cityMaxCount) {
+                    buyset.areacount++;
+                } else {
+                    thisPrice = getSetMealPrice(2, buyset.buyerclasscount, t[1], price) * buyset.citys[i] * t[0];
+                    if (t[1] === 1) thisPrice *= 10 //年的价格是月价格的10倍
+                }
 
-	for(var i in citysCountMap) {
-		var thisPrice = 0;
-		var citys = area[i]
-		if(citysCountMap[i]==1){//单城市
-			thisPrice = getSetMealPrice(2,industryNum,t[1],price)*t[0];
-		}else{//多城市
-			if(industryNum==0||industryNum==1){//多城市 单行业
-				thisPrice = citysCountMap[i] * getSetMealPrice(2,industryNum,t[1],price) * t[0];
-			}else{//多城市 多行业
-				var industry_Price= price.buyerClassPrice  * industryNum;
-				var city_Price = price.cityPrice *citysCountMap[i];
-				thisPrice = (industry_Price + city_Price) * t[0];
-				if(t[1]==1) thisPrice *= 10 //年的价格是月价格的10倍
-			}
-		}
-		final_price += thisPrice;
-	}
-	return final_price/100
+            }
+        }
+        final_price += thisPrice;
+    }
+    final_price += buyset.areacount * getSetMealPrice(1, buyset.buyerclasscount, t[1], price) * t[0]
+    return final_price / 100
 }
+
 //获取套餐价格
 //c(city) 全国:0 省:1 市:2
-//iCount(industry) 全行业:0 行业:1 其他:多个行业
+//iCount(industry) 全行业:-1 其他:多个行业
 //u(unit) 年:1 月:2
-function getSetMealPrice(c,iCount,u,price){
-	var t = u==2 //是否是月单位
-	switch(c){
-		case 0:
-			if(iCount==0){
-				if(t)return price.month.allProvince_allBuyerClass  //1月全国全行业
-				return price.year.allProvince_allBuyerClass //1年全国全行业
-			}else{
-				if(t)return price.month.allProvince_oneBuyerClass * iCount //1月全国icount个行业
-				return price.year.allProvince_oneBuyerClass * iCount	//1年全国icount个行业
-			}
-		case 1:
-			if(iCount==0){
-				if(t)return price.month.oneProvince_allBuyerClass  //1月1省全行业
-				return price.year.oneProvince_allBuyerClass	//1年1省全行业
-			}else{
-				if(t)return price.month.oneProvince_oneBuyerClass * iCount //1月1省icount个行业
-				return price.year.oneProvince_oneBuyerClass * iCount	//1年1省icount个行业
-			}
-		default:
-			if(iCount==0){
-				if(t)return price.month.oneCity_allBuyerClass  //1月1市全行业
-				return price.year.oneCity_allBuyerClass	//1年1市全行业
-			}else{
-				if(t)return price.month.oneCity_oneBuyerClass * iCount //1月1市icount个行业
-				return price.year.oneCity_oneBuyerClass * iCount	//1年1市icount个行业
-			}
-	}
+function getSetMealPrice(c, iCount, u, price) {
+    var t = u === 2; //是否是月单位
+    switch (c) {
+        case 0:
+            if (iCount === -1) {
+                if (t) return price.month.allProvince_allBuyerClass;  //1月全国全行业
+                return price.year.allProvince_allBuyerClass; //1年全国全行业
+            } else {
+                if (t) return price.month.allProvince_oneBuyerClass * iCount; //1月全国icount个行业
+                return price.year.allProvince_oneBuyerClass * iCount;	//1年全国icount个行业
+            }
+        case 1:
+            if (iCount === -1) {
+                if (t) return price.month.oneProvince_allBuyerClass;  //1月1省全行业
+                return price.year.oneProvince_allBuyerClass	//1年1省全行业
+            } else {
+                if (t) return price.month.oneProvince_oneBuyerClass * iCount; //1月1省icount个行业
+                return price.year.oneProvince_oneBuyerClass * iCount	//1年1省icount个行业
+            }
+        default:
+            if (iCount === -1) {
+                if (t) return price.month.oneCity_allBuyerClass;  //1月1市全行业
+                return price.year.oneCity_allBuyerClass	//1年1市全行业
+            } else {
+                if (t) return price.month.oneCity_oneBuyerClass * iCount; //1月1市icount个行业
+                return price.year.oneCity_oneBuyerClass * iCount	//1年1市icount个行业
+            }
+    }
 }
 
 //查看用户是否有未执行的订单
-function checkOrder(wz){
-	var flag = false;
-	$.ajax({
-		type: 'post',
-		url: '/subscribepay/afterPay/checkOrder?t='+new Date().getTime(),
-		data: {},
-		async: false,
-		dataType: 'json',
-		success: function(r){
-			flag = r.flag;
-			if(r.flag){
-				if(wz!=1){
-					weui.toast('订单尚未到期', {
-		                duration: 3000,
-		                className: 'custom-toast',
-		                callback: function () { console.log('close') }
-		            });
-				}
-			}
-		}
-	});
-	return flag
+function checkOrder(wz) {
+    var flag = false;
+    $.ajax({
+        type: 'post',
+        url: '/subscribepay/afterPay/checkOrder?t=' + new Date().getTime(),
+        data: {},
+        async: false,
+        dataType: 'json',
+        success: function (r) {
+            flag = r.flag;
+            if (r.flag) {
+                if (wz != 1) {
+                    weui.toast('订单尚未到期', {
+                        duration: 3000,
+                        className: 'custom-toast',
+                        callback: function () {
+                            console.log('close')
+                        }
+                    });
+                }
+            }
+        }
+    });
+    return flag
 }

+ 2 - 2
src/web/staticres/vipsubscribe/js/editArea.js

@@ -286,7 +286,7 @@ $(function () {
         } else {
             $('.checkbox:not(:checked)').attr('disabled', true)
             if (areaData.data.isTrial) {
-                showTip(`<span style="white-space: nowrap;">您只选择试用了` + totalLength + `个省份</span>,<span style="white-space: nowrap;">如需更多,请前往VIP订阅进行购买</span>`);
+                showTip(`<span style="white-space: nowrap;">您只选择试用了` + totalLength + `个省份</span>,<br><span style="white-space: nowrap;">如需更多,请前往VIP订阅进行购买</span>`);
             } else {
                 showTip(`<span style="white-space: nowrap;">您只购买了` + totalLength + `个省份,如需更多请升级<span></p>`)
             }
@@ -344,7 +344,7 @@ $(function () {
                 $(this).parent('div').find('.city:not(.active)').attr('disabled', true)
                 //提示订阅
                 if (areaData.data.isTrial) {
-                    showTip(`<span style="white-space: nowrap;">您只选择试用了` + $(this).parents('li').find(".province").attr("data-count") + `个市</span>,<span style="white-space: nowrap;">如需更多,请前往VIP订阅进行购买</span>`);
+                    showTip(`<span style="white-space: nowrap;">您只选择试用了` + $(this).parents('li').find(".province").attr("data-count") + `个市</span>,<br><span style="white-space: nowrap;">如需更多,请前往VIP订阅进行购买</span>`);
                 } else {
                     showTip(`<span style="white-space: nowrap;">您只购买了` + $(this).parents('li').find(".province").attr("data-count") + `个市,如需更多请升级<span></p>`)
                 }

+ 25 - 10
src/web/templates/weixin/vipsubscribe/choose_area.html

@@ -585,14 +585,20 @@
                 $('.reset-btn').removeAttr("disabled");
                 $('.save-btn').removeAttr("disabled");
                 AreaChoose.flushPrice(); //刷新价格
-            }else{
-                $('.save-btn').attr("disabled","disabled");
+            } else {
+                $('.save-btn').attr("disabled", "disabled");
                 AreaChoose.flushPrice(-1); //刷新价格
             }
         },
         submitArea: function () {
             let addCity = $('.result_name').text(); //新增的城市
             sessionStorage.setItem("vipSubSelectArea", JSON.stringify(AreaChoose.selectObj));
+            if (sessionStorage.getItem("vipSubSelectArea_buyed")) {
+                sessionStorage.removeItem("vipSubSelectArea_buyed");
+            }
+            if (sessionStorage.getItem("areaSelectNotFlushed")) {
+                sessionStorage.removeItem("areaSelectNotFlushed");
+            }
             history.go(-1);
         },
         isAllSelected: function () {
@@ -723,17 +729,15 @@
                 AreaChoose.getResult($(this).parent('div').siblings('.tab').find('.province').text()) //出入选择的省份
             })
 
-            $('.other').on('change', function () { //选择全国
+            /*$('.other').on('change', function () { //选择全国
                 AreaChoose.reset();
-            })
+            })*/
 
             $('.save-btn').click(function () {  // 提交
                 AreaChoose.submitArea();
             })
             $('.reset-btn').click(function () {  //重置
-                if (!$(".other").is(':checked')) {
-                    $(".other").trigger("click");
-                }
+                AreaChoose.reset();
             })
         },
         reset: function () {
@@ -746,20 +750,31 @@
                 'input').prop({
                 'checked': false,
                 "disabled": false
-            });
+            }).removeClass('half');
             $('.tab_content').find('.city').removeClass('active').attr({
                 "disabled": false,
                 "checked": false
             })
             AreaChoose.getResult()
         },
+        buyset: undefined,
         flushPrice: function (flag) {
             if (!this.vipSubisTrial) {
+                if (!this.buyset && sessionStorage.getItem("vipSubBuySet")) {
+                    this.buyset = JSON.parse(sessionStorage.getItem("vipSubBuySet"))
+                }
                 $('.tips_d_money').css("display", "block");
-                var price = getsubVipOrderPrice(this.selectObj, this.selectedIndustryArr, this.timeSelect);
+                let price;
+                if (sessionStorage.getItem("industrySelectNotFlushed")) {
+                    let mBuyset = getBuySet(this.selectObj, []);
+                    mBuyset.buyerclasscount = this.buyset.buyerclasscount;
+                    price = getsubVipOrderPriceBybuyset(mBuyset, this.timeSelect);
+                } else {
+                    price = getsubVipOrderPrice(this.selectObj, this.selectedIndustryArr, this.timeSelect);
+                }
                 $('.tips_d_money').text('¥' + price);
             }
-            if(flag===-1){
+            if (flag === -1) {
                 $('.tips_d_money').css("display", "none");
             }
         },

+ 23 - 2
src/web/templates/weixin/vipsubscribe/choose_industry.html

@@ -293,7 +293,7 @@
             $(".save-btn").removeAttr("disabled");
             flushPrice()//刷新价格
         } else {
-            $(".save-btn").attr("disabled","disabled");
+            $(".save-btn").attr("disabled", "disabled");
             flushPrice(-1)//刷新价格
         }
 
@@ -330,9 +330,24 @@
         })
     }
 
+    var buyset = undefined;
+
     function flushPrice(flag) {
         if (!vipSubisTrial) {
-            var price = getsubVipOrderPrice(selectedAreaObj, selectedIndustryArr, timeSelect);
+            if (!buyset && sessionStorage.getItem("vipSubBuySet")) {
+                buyset = JSON.parse(sessionStorage.getItem("vipSubBuySet"))
+            }
+            let price;
+
+            if (sessionStorage.getItem("areaSelectNotFlushed")) {
+                mBuyset = getBuySet({}, selectedIndustryArr);
+                mBuyset.citys = buyset.citys;
+                mBuyset.areacount = buyset.areacount;
+                price = getsubVipOrderPriceBybuyset(mBuyset, timeSelect);
+            } else {
+                price = getsubVipOrderPrice(selectedAreaObj, selectedIndustryArr, timeSelect);
+            }
+
             $('.tips_d_money').css("display", "block").text('¥' + price);
         }
         if (flag == -1) {
@@ -370,6 +385,12 @@
     $('.save-btn').on('click', function () {
         console.log(selectedIndustryArr)
         sessionStorage.setItem("vipSubSelectIndustry", JSON.stringify(selectedIndustryArr));
+        if (sessionStorage.getItem("vipSubSelectIndustry_buyed")) {
+            sessionStorage.removeItem("vipSubSelectIndustry_buyed");
+        }
+        if (sessionStorage.getItem("industrySelectNotFlushed")) {
+            sessionStorage.removeItem("industrySelectNotFlushed")
+        }
         history.go(-1);
     })
 

+ 2 - 2
src/web/templates/weixin/vipsubscribe/edit_subscribe_industry.html

@@ -313,7 +313,7 @@
                     }
                     if (EditIndustry.reqData.buyset.buyerclasscount != -1) { //购买不是全部行业 不能点击
                         if (EditIndustry.reqData.isTrial) {
-                            EditIndustry.showTip(`<span style="white-space: nowrap;">您只选择试用了${EditIndustry.reqData.buyset.buyerclasscount}个行业</span>,<span style="white-space: nowrap;">如需更多,请前往VIP订阅进行购买</span>`);
+                            EditIndustry.showTip(`<span style="white-space: nowrap;">您只选择试用了${EditIndustry.reqData.buyset.buyerclasscount}个行业</span>,<br><span style="white-space: nowrap;">如需更多,请前往VIP订阅进行购买</span>`);
                         } else {
                             EditIndustry.showTip(`<span style="white-space: nowrap;">您只购买了${EditIndustry.reqData.buyset.buyerclasscount}个行业,如需更多请升级<span></p>`);
                         }
@@ -386,7 +386,7 @@
             if (selectedArr.length >= EditIndustry.reqData.buyset.buyerclasscount && EditIndustry.reqData.buyset.buyerclasscount != -1) {
                 if (!isInit) {
                     if (EditIndustry.reqData.isTrial) {
-                        EditIndustry.showTip(`<span style="white-space: nowrap;">您只选择试用了${EditIndustry.reqData.buyset.buyerclasscount}个行业</span>,<span style="white-space: nowrap;">如需更多,请前往VIP订阅进行购买</span>`);
+                        EditIndustry.showTip(`<span style="white-space: nowrap;">您只选择试用了${EditIndustry.reqData.buyset.buyerclasscount}个行业</span>,<br><span style="white-space: nowrap;">如需更多,请前往VIP订阅进行购买</span>`);
                     } else {
                         EditIndustry.showTip(`<span style="white-space: nowrap;">您只购买了${EditIndustry.reqData.buyset.buyerclasscount}个行业,如需更多请升级<span></p>`);
                     }

+ 789 - 0
src/web/templates/weixin/vipsubscribe/vip_purchase_willExpire.html

@@ -0,0 +1,789 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport"
+          content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
+    <title>VIP订阅</title>
+    <script src="/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" type="text/css" href="/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}"/>
+    <link rel="stylesheet" href="/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="/vipsubscribe/css/vip_purchase.css?v={{Msg "seo" "version"}}">
+</head>
+<body>
+<div>
+    <div class="vip_purchase">
+        <div class="choose_condition">
+            <ul class="chooseList">
+                <li class="choose_item">
+                    <a href="/front/vipsubscribe/toChooseArea">
+                        <span class="label">区域</span>
+                        <input type="text" disabled value="" placeholder="1个市"
+                               class="info choose_area">
+                        <i class="iconfont icon-arrow"></i>
+                    </a>
+                    <!-- 无选择时不显示 -->
+                    <p class="add_tips area" style="display:none">已选择 0 个省级区域、0 个地市</p>
+                </li>
+                <li class="choose_item">
+                    <a href="/front/vipsubscribe/toChooseIndustry">
+                        <span class="label">行业</span>
+                        <input type="text" disabled value="" placeholder="1个行业"
+                               class="info choose_industry">
+                        <i class="iconfont icon-arrow"></i>
+                    </a>
+                    <!-- 无选择时不显示 -->
+                    <p class="add_tips industry" style="display:none">已选择 0 个行业</p>
+                </li>
+                <li class="choose_item select_cycle">
+                    <!-- 需要选择订阅周期就用a标签,div.class="free-7day"隐藏 opacity: 1 !important; -->
+                    <!-- 需要选择试用就用div标签,a标签隐藏 -->
+                    <a href="javascript:;">
+                        <span class="label">订阅周期</span>
+                        <input type="text" readonly="readonly" disabled style="color:#000;" value="1个月"
+                               class="info choose_time">
+                        <i class="iconfont icon-arrow choose_time"></i>
+                    </a>
+                </li>
+            </ul>
+            <div class="pay_mode">
+                <div class="select_payment choose_item">
+                    <a href="javascript:;">
+                        <span class="label">支付方式</span>
+                        <span class="info choose_way" style="width: 6rem;">微信支付</span>
+                        <!--<i class="iconfont"></i>-->
+                    </a>
+                </div>
+                <div class="vip_rules">
+                    <div class="vip_prise_table">
+                        <table class="monthly">
+                            <caption class="table_title">- VIP订阅价格 -</caption>
+                            <tr>
+                                <td colspan="2">按月购买</td>
+                            </tr>
+                            <tr>
+                                <td><span>5.8</span>元 月/市/行业</td>
+                                <td><span>18</span>元 月/市/全行业</td>
+                            </tr>
+                            <tr>
+                                <td><span>11.8</span>元 月/省/行业</td>
+                                <td><span>38</span>元 月/省/全行业</td>
+                            </tr>
+                            <tr>
+                                <td><span>118</span>元 月/全国/行业</td>
+                                <td><span>388</span>元 月/全国/全行业</td>
+                            </tr>
+                        </table>
+                        <table class="yearly">
+                            <tr>
+                                <td colspan="2">按年购买</td>
+                            </tr>
+                            <tr>
+                                <td><span>58</span>元 年/市/行业</td>
+                                <td><span>180</span>元 年/市/全行业</td>
+                            </tr>
+                            <tr>
+                                <td><span>118</span>元 年/省/行业</td>
+                                <td><span>380</span>元 年/省/全行业</td>
+                            </tr>
+                            <tr>
+                                <td><span>1180</span>元 年/全国/行业</td>
+                                <td><span>3880</span>元 年/全国/全行业</td>
+                            </tr>
+                        </table>
+                        <dl class="tips">
+                            <dt>购买须知:</dt>
+                            <dd>套餐周期内,不支持套餐降级,即将到期时续费可降级;</dd>
+                            <dd>支持套餐升级,补差价(按月进行补差价,不足一个月按一个月计算)。</dd>
+                        </dl>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="fixed-bottom-box">
+            <div class="weui-cells weui-cells_checkbox radio-form">
+                <label class="weui-cell weui-check__label" for="buy">
+                    <div class="weui-cell__hd">
+                        <input type="checkbox" class="weui-check" name="buyService" id="buy"/>
+                        <i class="weui-icon-checked"></i>
+                    </div>
+                    <div class="weui-cell__bd read">
+                        <p>
+                            我已阅读,理解并接受
+                            <a href="/front/staticPage/wx-serviceterms.html">
+                                《剑鱼标讯线上购买与服务条款》
+                            </a>
+                        </p>
+                    </div>
+                </label>
+            </div>
+            <div class="price">
+                <!-- <strong>&yen;1,300.00</strong> -->
+                <strong>&yen;5.80</strong>
+            </div>
+            <div class="form-btn">
+                <button class="btn enter" disabled id="payHandle">立即续费</button>
+            </div>
+        </div>
+
+        <!-- 选择行业 -->
+        <div class="js_dialog time_cycle" id="time_cycle" style="display: none;">
+            <div class="weui-mask"></div>
+            <div class="box">
+                <div class="box_hd">
+                    <h3>订阅周期</h3>
+                    <span class="cancel">取消</span>
+                </div>
+                <div class="box_bd">
+                    <div class="tips profit_tips" style="display: none">已选择10个月,建议“按年订阅”</div>
+                    <div class="computed_price">¥58.0</div>
+                    <div class="bd_select">
+                        <div class="weui-cells weui-cells_checkbox choose-form">
+                            <label class="weui-cell weui-check__label monthly_label" for="monthly">
+                                <div class="weui-cell__hd">
+                                    <input type="radio" class="weui-check monthly" name="time" value="month"
+                                           id="monthly"/>
+                                    <i class="weui-icon-checked"></i>
+                                </div>
+                                <div class="weui-cell__bd">
+                                    <p>按月订阅</p>
+                                </div>
+                            </label>
+                            <div class="number_box" id="number_box_month" data-numbox-step="1" data-numbox-min="1"
+                                 data-numbox-max="12">
+                                <button class="weui-btn weui-btn_plain-default" type="button" disabled>
+                                    <div class="jy_icon decrease"></div>
+                                </button>
+                                <span class="month_number">1</span>
+                                <button class="weui-btn weui-btn_plain-default add" type="button">
+                                    <div class="jy_icon increase"></div>
+                                </button>
+                            </div>
+                        </div>
+                        <div class="weui-cells weui-cells_checkbox choose-form">
+                            <label class="weui-cell weui-check__label yearly_label" for="yearly">
+                                <div class="weui-cell__hd">
+                                    <input type="radio" class="weui-check yearly" name="time" value="year"
+                                           id="yearly" checked/>
+                                    <i class="weui-icon-checked"></i>
+                                </div>
+                                <div class="weui-cell__bd">
+                                    <p>按年订阅</p>
+                                </div>
+                            </label>
+                            <div class="number_box" id="number_box_year" style="border: 0;">
+                                <span class="year_number" data-id="1">1年</span>
+                                <span class="year_number" data-id="2">2年</span>
+                                <span class="year_number" data-id="3">3年</span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="form-btn">
+                    <button class="btn enter" id="enter_period">确认</button>
+                </div>
+            </div>
+        </div>
+        <!-- 选择支付方式 -->
+        <div class="js_dialog pay_way" id="pay_way" style="display: none;">
+            <div class="weui-mask"></div>
+            <div class="box">
+                <div class="box_hd">
+                    <span></span>
+                    <h3>支付方式</h3>
+                    <span class="cancel">取消</span>
+                </div>
+                <div class="box_bd">
+                    <div class="weui-cells weui-cells_checkbox choose-form">
+                        <label class="weui-cell weui-check__label wx_label" for="wx">
+                            <div class="weui-cell__bd read">
+                                <p><img src="/vipsubscribe/image/weixin.png?v={{Msg "seo" "version"}}">微信支付</p>
+                            </div>
+                            <div class="weui-cell__hd">
+                                <input type="radio" class="weui-check" name="way" value="微信支付" id="wx" checked/>
+                                <i class="weui-icon-checked"></i>
+                            </div>
+                        </label>
+                        <label class="weui-cell weui-check__label zfb_label" for="zfb">
+                            <div class="weui-cell__bd read">
+                                <p><img src="/vipsubscribe/image/zhifubao.png?v={{Msg "seo" "version"}}">支付宝支付</p>
+                            </div>
+                            <div class="weui-cell__hd">
+                                <input type="radio" class="weui-check" name="way" value="支付宝支付" id="zfb"/>
+                                <i class="weui-icon-checked"></i>
+                            </div>
+                        </label>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <script src="/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
+    <script src="/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
+    {{include "/common/weixin.html"}}
+    <script>
+        $(window).bind("pageshow", function (event) {
+            if (event.originalEvent.persisted) {
+                window.location.reload();
+            }
+        });
+        //微信支付start
+        try {
+            var signature = {{.T.signature}};
+            var isConfigSuccess = true;
+            var id = {{.T._id}}
+            if (signature && signature.length == 4) {
+                wx.config({
+                    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
+                    appId: signature[0], // 必填,公众号的唯一标识
+                    timestamp: signature[1], // 必填,生成签名的时间戳
+                    nonceStr: signature[2], // 必填,生成签名的随机串
+                    signature: signature[3],// 必填,签名,见附录1
+                    jsApiList: ['chooseWXPay', 'hideAllNonBaseMenuItem'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
+                });
+                wx.ready(function () {
+                    if (!isConfigSuccess) {
+                        return;
+                    }
+                    wx.hideAllNonBaseMenuItem();
+                });
+                wx.error(function (res) {
+                    //config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
+                    //alert(res);
+                    isConfigSuccess = false;
+                });
+            }
+
+            //调用微信支付接口
+            function onBridgeReady(res, ordercode) {
+                WeixinJSBridge.invoke('getBrandWCPayRequest', {
+                        "appId": res["appId"],
+                        "timeStamp": res["timestamp"],
+                        "nonceStr": res["nonceStr"],
+                        "package": res["prepayId"],
+                        "signType": res["signType"],
+                        "paySign": res["sign"]
+                    },
+                    function (r) {
+                        if (r.err_msg == "get_brand_wcpay_request:ok") {
+                            setTimeout(function () {
+                                clearSessionStorage();
+                                window.location.replace("/front/vipsubscribe/toPaySuccessPage?orderCode=" + ordercode);
+                            }, 500)
+                        } else if (r.err_msg == "get_brand_wcpay_request:cancel") {
+                            console.log("支付已取消")
+                        } else {
+                            weui.toast("系统异常,请稍微再试", {
+                                duration: 2000,
+                                className: 'custom-toast',
+                            });
+                        }
+                    });
+            }
+
+            //微信支付end
+        } catch (e) {
+            console.log(e)
+        }
+        sessionStorage.removeItem("vipSubisTrial");//非试用界面
+        var purchase = {
+            areaSelect: {},//已选择地区 {"一个省":["一个市"]}计算价格临时变量
+            areaSelectFlushed: false,
+            industrySelect: [],// 已选择行业 一个行业(计算价格临时变量)
+            industrySelectFlushed: false,
+            timeSelect: [1, 2],//已选择时间 timeSelect[0]时长  timeSelect[1] 1:年 2:月
+            buyset: {},
+            price: {}, //价格
+            vipSubisTrial: false,
+            initData: function () {
+                //已选择
+                try {
+                    if (sessionStorage.getItem("vipSubSelectArea")) {
+                        this.areaSelect = JSON.parse(sessionStorage.getItem("vipSubSelectArea"));
+                    }
+                    if (sessionStorage.getItem("vipSubSelectIndustry")) {
+                        this.industrySelect = JSON.parse(sessionStorage.getItem("vipSubSelectIndustry"));
+                    }
+                    if (sessionStorage.getItem("vipSubBuySet")) {
+                        this.buyset = JSON.parse(sessionStorage.getItem("vipSubBuySet"));
+                    }
+                    if (!sessionStorage.getItem("vipSubBuySet")) {
+                        $DoPost("/subscribepay/editSub/getSubBuyMsg", {}, function (r) {
+                            if (r.success) {
+                                if (!$.isEmptyObject(r.data.area)) {
+                                    purchase.areaSelect = r.data.area
+                                } else {
+                                    purchase.areaSelect = {"全国": []}
+                                }
+                                if (r.data.industry.length != 0) {
+                                    purchase.industrySelect = r.data.industry
+                                } else {
+                                    purchase.industrySelect = ["全部行业"]
+                                }
+                                if (!$.isEmptyObject(r.data.buyset)) {
+                                    purchase.buyset = r.data.buyset
+                                }
+                                sessionStorage.setItem("vipSubSelectArea", JSON.stringify(purchase.areaSelect));
+                                sessionStorage.setItem("vipSubSelectIndustry", JSON.stringify(purchase.industrySelect));
+                                sessionStorage.setItem("vipSubSelectArea_buyed", JSON.stringify(purchase.areaSelect));
+                                sessionStorage.setItem("vipSubSelectIndustry_buyed", JSON.stringify(purchase.industrySelect));
+                                sessionStorage.setItem("vipSubBuySet", JSON.stringify(purchase.buyset))
+                            }
+                        }, false)
+                    }
+                    if (sessionStorage.getItem("vipSubSelectTime")) {
+                        this.timeSelect = JSON.parse(sessionStorage.getItem("vipSubSelectTime"));
+                    }
+                    //是否已经点击已读
+                    if (sessionStorage.getItem("vipSub_read") == "true") $("#buy").prop("checked", true);
+                    //是否试用界面
+                    if (sessionStorage.getItem("vipSubisTrial")) this.vipSubisTrial = true;
+
+                    //加载价格
+                    $DoPost("/subscribepay/vipsubscribe/getPrice", {}, function (r) {
+                        if (r) {
+                            purchase.price = r;
+                        }
+                    }, false)
+
+                } catch (e) {
+                    console.log(e)
+                }
+            },
+            showArea: function () {
+                if (!this.areaSelectFlushed) {
+                    if (this.buyset.areacount == -1) {
+                        $(".choose_area").val("全国");
+                    } else {
+                        let tipTxt = "已购买 ";
+                        if (this.buyset.areacount != 0) tipTxt += this.buyset.areacount + " 个省级区域";
+                        if (!$.isEmptyObject(this.buyset.citys)) {
+                            if (this.buyset.areacount != 0) tipTxt += "、";
+                            let cityCount = 0;
+                            for (var i in this.buyset.citys) {
+                                cityCount += this.buyset.citys[i];
+                            }
+                            tipTxt += cityCount + " 个地市";
+                        }
+                        $(".choose_area").val(tipTxt);
+                    }
+                } else {
+                    let cityArr = [];//城市
+                    let provinceArr = [];//省份
+                    let data = this.areaSelect;
+                    for (var i in data) {
+                        let citys = data[i];
+                        if (citys.length > 0) {
+                            cityArr = cityArr.concat(citys);
+                        } else {
+                            provinceArr.push(i)
+                        }
+                    }
+
+                    if (!$.isEmptyObject(this.areaSelect) && !this.areaSelect["全国"]) { //选择有行业信息 且不是全国
+                        var tipTxt = "已购买 ";
+                        if (provinceArr.length > 0) tipTxt += provinceArr.length + " 个省级区域";
+                        if (cityArr.length > 0) {
+                            if (provinceArr.length > 0) tipTxt += "、";
+                            tipTxt += cityArr.length + " 个地市";
+                        }
+                        $(".choose_area").val(tipTxt);
+                        //$(".add_tips.area").text(tipTxt).css("display", "");
+                    } else if (!$.isEmptyObject(this.areaSelect) && this.areaSelect["全国"]) {
+                        $(".choose_area").val("全国");
+                    }
+                }
+            },
+            showPrice: function () {
+                $('.monthly span:eq(0)').text(purchase.price.month.oneCity_oneBuyerClass / 100);
+                $('.monthly span:eq(1)').text(purchase.price.month.oneCity_allBuyerClass / 100);
+                $('.monthly span:eq(2)').text(purchase.price.month.oneProvince_oneBuyerClass / 100);
+                $('.monthly span:eq(3)').text(purchase.price.month.oneProvince_allBuyerClass / 100);
+                $('.monthly span:eq(4)').text(purchase.price.month.allProvince_oneBuyerClass / 100);
+                $('.monthly span:eq(5)').text(purchase.price.month.allProvince_allBuyerClass / 100);
+
+                $('.yearly span:eq(0)').text(purchase.price.year.oneCity_oneBuyerClass / 100);
+                $('.yearly span:eq(1)').text(purchase.price.year.oneCity_allBuyerClass / 100);
+                $('.yearly span:eq(2)').text(purchase.price.year.oneProvince_oneBuyerClass / 100);
+                $('.yearly span:eq(3)').text(purchase.price.year.oneProvince_allBuyerClass / 100);
+                $('.yearly span:eq(4)').text(purchase.price.year.allProvince_oneBuyerClass / 100);
+                $('.yearly span:eq(5)').text(purchase.price.year.allProvince_allBuyerClass / 100);
+            },
+            showIndustry: function () {
+                if (!this.industrySelectFlushed) {
+                    if (this.buyset.buyerclasscount == -1) {
+                        $(".choose_industry").val("全部行业");
+                    } else {
+                        $(".choose_industry").val("已购买 " + this.buyset.buyerclasscount + " 个行业");
+                    }
+                } else {
+                    let data = this.industrySelect;
+                    if (this.industrySelect.length > 0 && this.industrySelect[0] != "全部行业" && this.industrySelect[0] != "一个行业") { //选择有行业信息
+                        $(".choose_industry").val("已购买 " + this.industrySelect.length + " 个行业");
+                    } else if (this.industrySelect.length > 0 && this.industrySelect[0] == "全部行业") {
+                        $(".choose_industry").val("全部行业");
+                    } else {
+                        $(".choose_industry").val("");
+                    }
+                }
+            },
+            showTime: function () {
+                let tmp = this.timeSelect[0];
+                if (this.timeSelect[1] == 1) {
+                    tmp += "年";
+                    $("#yearly").prop('checked', true);
+                    $('.year_number:eq(' + (this.timeSelect[0] - 1) + ')').addClass("active");
+                    //$(".number_box:eq(1)").addClass("active");
+                } else {
+                    tmp += "个月";
+                    $("#monthly").prop('checked', true);
+                    $(".number_box:eq(0)").addClass("active");
+                    $("#number_box_month .month_number").text(this.timeSelect[0]);
+                    if (this.timeSelect[0] >= 10) {
+                        $('.profit_tips').text("已选择" + this.timeSelect[0] + "个月,建议“按年订阅”").show();
+                    }
+                    if (this.timeSelect[0] == 1) {
+                        $('#number_box_month button:eq(0)').attr("disabled", "disabled");
+                    } else {
+                        $('#number_box_month button:eq(0)').removeAttr("disabled");
+                    }
+                }
+                $(".info.choose_time").val(tmp);
+            },
+            flushPrice: function (time, flag) {
+                if (this.vipSubisTrial) {
+                    $('.price strong').text('¥0.00');
+                } else {
+                    let price;
+                    if (this.industrySelectFlushed && this.areaSelectFlushed) { //地区和行业都已选择
+                        price = getsubVipOrderPrice(this.areaSelect, this.industrySelect, time, this.price);
+                    } else if (this.industrySelectFlushed) { //仅选择了行业
+                        mBuyset = getBuySet({}, this.industrySelect);
+                        mBuyset.citys = this.buyset.citys;
+                        mBuyset.areacount = this.buyset.areacount;
+                        price = getsubVipOrderPriceBybuyset(mBuyset, time, this.price)
+                    } else if (this.areaSelectFlushed) { //仅选择了地区
+                        mBuyset = getBuySet(this.areaSelect, []);
+                        mBuyset.buyerclasscount = this.buyset.buyerclasscount;
+                        price = getsubVipOrderPriceBybuyset(mBuyset, time, this.price);
+                    } else { //都未选择
+                        price = getsubVipOrderPriceBybuyset(this.buyset, time, this.price);
+                    }
+                    if (flag === 1) {
+                        $('.price strong').text('¥' + price);
+                    } else if (flag === 2) {
+                        $('.computed_price').html('¥' + price);
+                    } else {
+                        $('.price strong').text('¥' + price);
+                        $('.computed_price').html('¥' + price);
+                    }
+                }
+            },
+            flushCheck: function () {//检测是否修改
+                //地区是否改变
+                this.areaSelectFlushed = !this.theSameAs_area();
+                if (!this.areaSelectFlushed) {
+                    sessionStorage.setItem("areaSelectNotFlushed", "1")
+                } else {
+                    sessionStorage.removeItem("areaSelectNotFlushed");
+                }
+                //行业是否改变
+                this.industrySelectFlushed = !this.theSame_industry();
+                if (!this.industrySelectFlushed) {
+                    sessionStorage.setItem("industrySelectNotFlushed", "1")
+                } else {
+                    sessionStorage.removeItem("industrySelectNotFlushed");
+                }
+            },
+            theSameAs_area: function () {
+                if (!sessionStorage.getItem("vipSubSelectArea_buyed")) {
+                    return false
+                }
+                let Area_buyed = JSON.parse(sessionStorage.getItem("vipSubSelectArea_buyed"));
+                let tmp1 = getAreaClassArr(Area_buyed);
+                let tmp2 = getAreaClassArr(purchase.areaSelect);
+                return (JSON.stringify(tmp1[0].sort()) === JSON.stringify(tmp2[0].sort())) && (JSON.stringify(tmp1[1].sort()) === JSON.stringify(tmp2[1].sort()));
+            },
+            theSame_industry: function () {
+                if (!sessionStorage.getItem("vipSubSelectIndustry_buyed")) {
+                    return false
+                }
+                let industry_buyed = JSON.parse(sessionStorage.getItem("vipSubSelectIndustry_buyed"));
+                return JSON.stringify(industry_buyed.sort()) === JSON.stringify(purchase.industrySelect.sort());
+            }
+        };
+
+
+        $(function () {
+            purchase.initData();
+            purchase.flushCheck();
+            purchase.showArea();
+            purchase.showIndustry();
+            purchase.showPrice();
+            purchase.showTime();
+            purchase.flushPrice(purchase.timeSelect);
+            checkOk();
+            var time_limit;//定义一个周期变量
+            /*------ 关闭弹窗事件  点击取消或遮罩层 -----*/
+            $('.weui-mask').click(hideDialog);
+            $('.cancel').click(hideDialog);
+
+            /* -----  订阅周期、支付方式弹窗弹出事件 -------*/
+            // 选择订阅周期
+            $('.select_cycle a').click(function (e) {
+                $('#time_cycle').show(200);
+            });
+
+
+            /* -----  选择完支付方式、订阅周期 回显到页面 -------*/
+            // 对支付方式选择的input绑定点击事件
+            $('#pay_way input:radio[name="way"]').click(function () {
+                var checkValue = $('input:radio[name="way"]:checked').val();
+                $('.pay_way').hide(200);
+                $('.pay_mode .select_payment .choose_way.info').html(checkValue);
+            });
+            // 对订阅时间选择的input绑定点击事件
+            $('#time_cycle input:radio[name="time"]').on('click', function (e) {
+                // 解除确认按钮的锁定
+                $('#time_cycle .form-btn button').removeAttr('disabled');
+                if ($(e.target).hasClass('monthly')) {
+                    // 按月订阅
+                    $('#number_box_month').addClass('active');
+                    $('#number_box_year span').removeClass('active');
+                } else {
+                    // 按年订阅
+                    $('#number_box_month').removeClass('active');
+                    // $('#number_box_year span:eq(0)').addClass('active').siblings().removeClass('active');
+                }
+            });
+
+            /* --------控制月份number_box的事件  点击加减号触发的事件------- */
+            $('#number_box_month').on('click', 'button', function (e) {
+                // 点击加减号让input radio选中
+                $('#monthly').prop('checked', true);
+                $('#yearly').prop('checked', false);
+                $('.number_box span').removeClass('active');
+                $('#number_box_month').addClass('active');
+
+                var $number = $('#number_box_month span.month_number');
+                var $monthlyInput = $('#monthly');
+                // 未整理的data数组,里面的值都是字符串
+                var preData = e.delegateTarget.dataset;
+                var currentNum = parseInt($number.text());
+                var data = {};
+                // 把字符串转换成数字
+                for (var i in preData) {
+                    data[i] = preData[i] - 0
+                }
+
+                if (!$monthlyInput.prop('checked')) {
+                    return
+                }
+                // 判断是点击的是+ 还是-
+                if ($(e.target).hasClass('add')) {
+                    if (currentNum == 11) { //12个月自动跳转1年
+                        $("#number_box_year .year_number:eq(0)").trigger("click");
+                        return
+                    }
+                    // 点的+
+                    // currentNum = currentNum >= 12 ? 12 : currentNum + 1;
+                    currentNum = currentNum >= data.numboxMax ? data.numboxMax : currentNum + data
+                        .numboxStep;
+                } else {
+                    // 点的-
+                    // currentNum = currentNum <= 1 ? 1 : currentNum - 1;
+                    currentNum = currentNum <= data.numboxMin ? data.numboxMin : currentNum - data
+                        .numboxStep;
+                }
+                $number.text(currentNum);
+                purchase.timeSelect_tmp = [Number(currentNum), 2];
+                purchase.flushPrice(purchase.timeSelect_tmp, 2);
+                //var price = (5.8 * currentNum).toFixed(1);
+                //$('.computed_price').html('¥' + price)
+                var firstButton = $('#number_box_month button:first');
+                var lastButton = $('#number_box_month button:last');
+                if (currentNum >= 10) {
+                    $('.profit_tips').text("已选择" + currentNum + "个月,建议“按年订阅”").show();
+                } else {
+                    $('.profit_tips').hide();
+                }
+                // 如果为操作后的结果为1,则锁定减号按钮
+                if (currentNum === data.numboxMin) {
+                    firstButton.attr('disabled', true)
+                } else {
+                    firstButton.removeAttr('disabled')
+                }
+                // 如果为操作后的结果为12,则锁定加号按钮
+                if (currentNum === data.numboxMax) {
+                    lastButton.attr('disabled', true)
+                } else {
+                    lastButton.removeAttr('disabled')
+                }
+            });
+
+            /* -------- 控制年份number_box的事件  点击1年 2年 3年触发的事件------- */
+            $('#number_box_year').on('click', 'span', function (e) {
+                console.log(e.target.dataset.id);
+                $('#number_box_month').removeClass('active');
+                let id = e.target.dataset.id;
+                $('.profit_tips').hide();
+                $(this).addClass('active').siblings().removeClass('active');
+                $('#yearly').prop('checked', true);
+                $("#monthly").prop('checked', false);
+
+                // 渲染结果 保留一位小数
+                //let result = (Number(id) * 58).toFixed(1);
+                //$('.computed_price').html('¥' + result)
+                purchase.timeSelect_tmp = [Number(id), 1]
+                purchase.flushPrice(purchase.timeSelect_tmp, 2);
+            });
+
+            /* -------- 选择按月订阅  radio触发的事件------- */
+            $('#monthly').on('change', function (e) {
+                let isChecked = $(this).is(':checked');
+                let val = $('.month_number').text();
+                if (val >= 10) {
+                    $('.profit_tips').show()
+                }
+                if (!isChecked) {
+                    $('#number_box_month button').attr('disabled', true)
+                } else {
+                    $('#number_box_month button').removeAttr('disabled')
+                }
+                //let result = (Number(val) * 5.8).toFixed(1);
+                //$('.computed_price').html('¥' + result);
+                purchase.timeSelect_tmp = [Number(val), 2];
+                purchase.flushPrice(purchase.timeSelect_tmp, 2);
+
+            });
+            /* -------- 选择按年订阅  radio触发的事件------- */
+            $('#yearly').on('change', function (e) {
+                $('.profit_tips').hide();
+                // console.log($(this).is(':checked'))
+                let isChecked = $(this).is(':checked');
+                // 按年订阅默认选择1年
+                let val = 1;
+                //$('.computed_price').html('¥' + Number(val) * 58)
+                if (isChecked) {
+                    $('#number_box_year span:eq(0)').addClass('active').siblings().removeClass('active')
+                }
+                purchase.timeSelect_tmp = [Number(val), 1];
+                purchase.flushPrice(purchase.timeSelect_tmp, 2);
+            });
+
+            // 确认订阅周期
+            $('#enter_period').on('click', function () {
+                var val;
+                $('input[name="time"]').each(function (i, v) {
+                    let isChecked = $(v).is(':checked');
+                    if ($(v).is(':checked') === true && $('.year_number').hasClass('active')) {
+                        val = $('.active').html();
+                        $('#time_cycle').hide(function () {
+                            $('.choose_time').val(val)
+                        });
+                        purchase.timeSelect_tmp = [parseInt(val[0]), 1]
+                    } else if ($(v).is(':checked') === true) {
+                        val = $('.month_number').html();
+                        $('#time_cycle').hide(function () {
+                            $('.choose_time').val(val + '个月')
+                        });
+                        purchase.timeSelect_tmp = [parseInt(val), 2]
+                    }
+                });
+                purchase.timeSelect = purchase.timeSelect_tmp;
+                purchase.flushPrice(purchase.timeSelect, 1);
+                sessionStorage.setItem("vipSubSelectTime", JSON.stringify(purchase.timeSelect));
+            });
+            $("input").bind("input propertychange change", function (event) {
+                checkOk();
+            });
+
+            $('#payHandle').click(function () {
+                $("#payHandle").attr("disabled", "disabled");
+                //支付请求
+                var area = purchase.areaSelect;
+                var industry = purchase.industrySelect;
+                if (area["全国"]) {
+                    area = {};
+                }
+                if (industry.length == 1 && industry[0] == "全部行业") {
+                    industry = [];
+                }
+                //付费用户
+                var param = {
+                    "area": JSON.stringify(area),
+                    "industry": industry.join(","),
+                    "time": $(".info:eq(2)").val().trim(),
+                    "payWay": "wx_js",
+                    "orderType": 5,
+                    "selected": JSON.stringify([sessionStorage.getItem("areaSelectNotFlushed") != "1", sessionStorage.getItem("industrySelectNotFlushed") != "1"]),
+                };
+                $DoPost("/subscribepay/vipsubscribe/createOrder", param, function (r) {
+                    if (r.success) {
+                        onBridgeReady(JSON.parse(r.data.res), r.data.code);
+                    }
+                    $("#payHandle").removeAttr("disabled")
+                });
+            })
+
+        });
+
+        // 隐藏dialog选择框
+        function hideDialog() {
+            $('#pay_way').hide(200);
+            $('#time_cycle').hide(200);
+        }
+
+        //是否可点击
+        function checkOk() {
+            var area = $(".info:eq(0)").val().trim();
+            var industry = $(".info:eq(1)").val().trim();
+            var checked = $('#buy').prop('checked');
+            if (area != '' && industry != '' && checked == true) {
+                $("#payHandle").removeAttr('disabled');
+            } else {
+                $("#payHandle").attr({
+                    'disabled': 'true'
+                });
+            }
+            sessionStorage.setItem("vipSub_read", checked)
+        }
+
+        function clearSessionStorage() {
+            sessionStorage.removeItem("vipSubSelectArea");
+            sessionStorage.removeItem("vipSubSelectIndustry");
+            sessionStorage.removeItem("vipSubSelectTime");
+            sessionStorage.removeItem("vipSub_read");
+            sessionStorage.removeItem("historypushDataCache");
+            sessionStorage.To_introducePage = 2;
+        }
+
+        /******* 获取url参数(正则)********/
+        function getParam(name) {
+            var search = document.location.search;
+            // alert(search);
+            var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
+            var matcher = pattern.exec(search);
+            var items = null;
+            if (null != matcher) {
+                try {
+                    items = decodeURIComponent(decodeURIComponent(matcher[1]));
+                } catch (e) {
+                    try {
+                        items = decodeURIComponent(matcher[1]);
+                    } catch (e) {
+                        items = matcher[1];
+                    }
+                }
+            }
+            return items;
+        };
+
+    </script>
+</div>
+</body>
+
+</html>