123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- //请求同意调用
- function $DoPost(url) {
- var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- var callback = arguments.length > 2 ? arguments[2] : undefined;
- var async = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
- $.ajax({
- url: url + "?t=" + new Date().getTime(),
- type: "POST",
- data: param,
- async: async,
- dataType: "json",
- success: function success(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;
- }
- //省份 城市 分类
- function getAreaClassArr_index(area) {
- var cityArr = [];//城市
- var provinceArr = [];//省份
- for (var i in area) {
- var 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) {
- var cityArr = [];//城市
- var provinceArr = [];//省份
- for (var i in area) {
- var 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 getSelectBuyset(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) {
- var citys = area[i];
- var thisLen = citys.length;
- if (thisLen === 0) {
- buyset.areacount++
- } else {
- buyset.citys.push(thisLen)
- }
- }
- }
- return buyset
- }
- //购买设置 area map
- function getBuySet(area, industry, price) {
- price = checkPrice(price);
- if (industry[0] === "全部行业") industry = [];
- if (area["全国"]) area = {};
- //计算地区数量
- var buyset = {
- "areacount": -1, //省份数量
- "buyerclasscount": -1,
- "citys": [] //购买省份中城市数量
- };
- //行业
- if (industry.length != 0 && industry.length <= price.buyerClassMaxCount) {
- buyset.buyerclasscount = industry.length
- }
- //地区
- if (!$.isEmptyObject(area)) {
- buyset.areacount = 0;
- for (var i in area) {
- var citys = area[i];
- var thisLen = citys.length;
- if (thisLen === 0 || thisLen > price.cityMaxCount) {
- buyset.areacount++
- } else {
- buyset.citys.push(thisLen)
- }
- }
- }
- if (buyset.areacount > price.provinceMaxCount) {
- buyset.areacount = -1;
- buyset.citys = [];
- }
- return buyset
- }
- /* vip订阅价格
- area:地区 {}
- industry:行业 []
- time[count,unit] count:时间长度 unit 1:年 2:月
- price 价格表
- return 价格(单位:分)
- */
- var priceData;
- function getsubVipOrderPrice(area, industry, t, price) {
- price = checkPrice(price);
- return getsubVipOrderPriceBybuyset(getBuySet(area, industry, price), t, price)
- }
- function checkPrice(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)
- }
- } else {
- priceData = price
- }
- return price
- }
- //根据购买设置 获取支付金额
- function getsubVipOrderPriceBybuyset(buyset, t, price) {
- price = checkPrice(price);
- var vipbuyset = JSON.parse(JSON.stringify(buyset));
- if (t[0] > price.monthMaxCount && t[1] === 2) t[0] = 10;//月份十个月以上价格一样
- if (vipbuyset.areacount === -1) {//计算全国套餐价格
- if (vipbuyset.buyerclasscount === 1) return getSetMealPrice(0, 1, t[1], price) * t[0] / 100; //全国1行业套餐
- if (vipbuyset.buyerclasscount === 0) return getSetMealPrice(0, 0, t[1], price) * t[0] / 100; //全国全行业套餐
- return getSetMealPrice(0, vipbuyset.buyerclasscount, t[1], price) * t[0] / 100 //全国多行业套餐
- }
- //var final_price = vipbuyset.areacount * getSetMealPrice(1, vipbuyset.buyerclasscount, t[1], price) * t[0];//计算省份价格
- var final_price = 0;//计算省份价格
- for (var i in vipbuyset.citys) {
- var thisPrice = 0;
- if (vipbuyset.citys[i] === 1) {//单城市
- thisPrice = getSetMealPrice(2, vipbuyset.buyerclasscount, t[1], price) * t[0];
- } else {//多城市
- if (vipbuyset.buyerclasscount === 0 || vipbuyset.buyerclasscount === 1) {//多城市 单行业
- if (vipbuyset.citys[i] > price.cityMaxCount) {
- vipbuyset.areacount++;
- } else {
- thisPrice = vipbuyset.citys[i] * getSetMealPrice(2, vipbuyset.buyerclasscount, t[1], price) * t[0];
- }
- } else {//多城市 多行业
- //var industry_Price = price.buyerClassPrice * vipbuyset.buyerclasscount;
- //var city_Price = price.cityPrice * vipbuyset.citys[i];
- //thisPrice = (industry_Price + city_Price) * t[0];
- if (vipbuyset.citys[i] > price.cityMaxCount) {
- vipbuyset.areacount++;
- } else {
- thisPrice = getSetMealPrice(2, vipbuyset.buyerclasscount, t[1], price) * vipbuyset.citys[i] * t[0];
- // if (t[1] === 1) thisPrice *= 10 //年的价格是月价格的10倍
- }
- }
- }
- final_price += thisPrice;
- }
- final_price += vipbuyset.areacount * getSetMealPrice(1, vipbuyset.buyerclasscount, t[1], price) * t[0];
- return final_price / 100
- }
- //获取套餐价格
- //c(city) 全国:0 省:1 市:2
- //iCount(industry) 全行业:-1 其他:多个行业
- //u(unit) 年:1 月:2
- 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
- }
- // 时间格式化
- Date.prototype.pattern = function (fmt) {
- var o = {
- "y+": this.getFullYear(),
- "M+": this.getMonth() + 1, //月份
- "d+": this.getDate(), //日
- "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时
- "H+": this.getHours(), //小时
- "m+": this.getMinutes(), //分
- "s+": this.getSeconds(), //秒
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
- "S": this.getMilliseconds() //毫秒
- };
- var week = {
- "0": "日",
- "1": "一",
- "2": "二",
- "3": "三",
- "4": "四",
- "5": "五",
- "6": "六"
- };
- if (/(y+)/.test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
- }
- if (/(E+)/.test(fmt)) {
- fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "星期" : "周") : "") + week[this.getDay() + ""]);
- }
- for (var k in o) {
- if (new RegExp("(" + k + ")").test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
- }
- }
- return fmt;
- }
- //value ;flag 1:年 2:月 endtime 结束时间
- function getVipEndDate(flag, value, endtime) {
- var EndTime = new Date(endtime * 1000);
- var startDay = EndTime.getDate();
- var yearNum = EndTime.getFullYear();
- var monthNum = EndTime.getMonth();
- if (flag === 1) {//将年转换成月
- //年
- yearNum += value;
- } else {
- //月
- if (monthNum + value > 11) {
- monthNum = monthNum + value - 12;
- yearNum++
- } else {
- monthNum += value
- }
- }
- //获取当月最后一天
- var lastDay = new Date(yearNum, monthNum+1, 0).getDate();
- if (startDay < lastDay) {
- return new Date(yearNum, monthNum, startDay, 23, 59, 59).getTime() / 1000;
- } else {
- return new Date(yearNum, monthNum, lastDay, 23, 59, 59).getTime() / 1000;
- }
- }
|