var t = require("../../../../utils/util.js"), ut = t, e = require("../../../../utils/common.js"), common =e, a = require("../../../../utils/wxParse/wxParse.js"), s = getApp(), i = s.request, rq = i, oo = s.globalData, o = s.globalData.setting, os = o; var wxlog = require("../../../../utils/wxlog.js"); let self = null; //评价加载更多 var more = function (e) { return e && e.__esModule ? e : { default: e }; }(require("../../../../utils/LoadMore.js")), n = new more.default(); var utils = require('../../../../utils/util.js'); var regeneratorRuntime = require('../../../../utils/runtime.js'); const { app } = require("../../../../utils/common.js"); Page({ data: { start_stop: 2, //秒杀开始 结束 的控制(1正在进行,2即将开始) color_type: 0, //线条控制 color_type_one: 0, color_type_two: 1, gid: "", stoid: o.stoid, url: o.url, resourceUrl: o.h5_url, //公众号那边的图片文件域名 iurl: o.imghost, defaultAvatar: o.resourceUrl + "/static/images/user68.jpg", data: null, content: "", //商品详情 comments: null, //商品评论 c_curr_p: 1, //评论分页 com_num: 0, //评论人数 gallery: null, //图片滚动 is_collect: 0, collect_id: 0, cartGoodsNum: 0, specSelect: 0, optionItemId: 0, goodsInputNum: 1, openSpecModal: !1, openSpecModal_pt: !1, //拼单的弹起, openPromModal: !1, activeCategoryId: 0, supportPageScroll: !1, address: { address: "", district: 0 }, shipping: "", shippingCost: 0, enterAddressPage: !1, categories: [{ name: "商品", id: 0 }, { name: "详情", id: 1 }, { name: "评价", id: 2 }], activeCategoryId2: 0, categories2: [{ name: "商品详情", id: 0 }, { name: "规格参数", id: 1 }], activeCategoryId3: 1, categories3: [{ name: "全部", id: 1, num: 0 }, { name: "有图", id: 5, num: 0 }, { name: "好评", id: 2, num: 0 }, { name: "中评", id: 3, num: 0 }, { name: "差评", id: 4, num: 0 }, ], select: { price: 0, stock: 0, specName: "", activity: null }, //已选的商品(属性) sele_g_spec_name: '', sele_g_id: '', sele_g: null, //门店相关 ismend: 0, is_sec_mend: 0, sto_sele_name: "", //选中的门店名称 sto_sele_id: "", //选中的门店id sto_sele_distr: "", //选择的门店的配送方式 is_show_sto_cat: 1, //是否显示门店分类 only_pk: null, all_sto: null, sec_sto: null, //选择了的门店分类 pickpu_list: null, //读出的所有门店list def_pickpu_list: null, //一开始5个门店list sec_pick_index: 0, //第二级门店选择ID fir_pick_index: 0, //第一级门店选择ID all_pick_list: null,//所有的门店先记录起来 //同一条形码的所有商品 sku_g: null, sku_g_pt: null, //---拼单的普通购买--- //联系电话 mobile: '', //分类,品牌,国别名称 cat_name: '', brand_name: '', nation_name: '', //商品的活动类型 0普通 1秒杀 2团购 3优惠 4 积分购 6拼单 9幸运购 prom_type: 9, prom_time_text: "", prom_price: null, prom_buy_limit: 0, djs: null, prom_st: 0, prom_r_null: 0, prom_end_time: null, prom_start_time: null, prom_act: null, pd_xx: 0, is_normal: 0, //是否普通购买 teamgroup: null, //有多少人开团 grounp_tatal: 0, //有几个人开团 timer: [], //商品的购买次数 prom_buy_num: -1, g_buy_num: null, prom_goods_num: 0, //活动商品数量 prom_buy_num: 0, //活动商品购买数量 prom_redis_num: 0, //活动商品redis数量 //拼单的规则显示 is_show_gz: 0, //会员自己的购买的拼单商品的情况 user_order_pt_state: 0, //购买的订单 buy_order: null, //1加入购物车 2立即购买 openSpecModal_ind: 0, //---计时器开关---- is_timer: 1, isshow: 0, bconfig: null, //基础配置 fir_comments: null, //详情页上的评价 fir_quan: null, //详情页上的券 quan_list: null, //券列表 coupon: 0, //会员分享的头像 share_head: "", share_goods_img: "", //----------视频图片data参数--------- current: 0, //图片计数 swiperCurrent: 0, //轮播的下标 hiddenn: 0, //控制轮播计数显示 currentTab: 0, // 选择器控制参数 mapurl: "", mapurl_f_img: "", videopicture: 0, //视频图片的控制 video: 0, //视频图片切换器 index: 0, noon: 0, //开始视频的隐藏 screenWidth: 0, canvasHidden: 1, //--推荐-- store_config: null, is_show_pl: 0, //是否品类 is_show_pp: 0, //是否品牌 is_show_gb: 0, //是否国别 is_closecoupon: 0, //是否点赞中 iszaning: 0, select_store: 0, //选择更多 index: 1, more_store: 0, //选择门店 sort_store: 0, //门店分类 choice_sort_store: 0, //选择分类门店 new_user: 0, //新用户 def_pick_store: null, // 默认的门店 fir_def_store: null, //客户默认的门店的 lat: null, //维度 lon: null, //经度 is_get_local_ok: 0, //获取坐标是否完成 region_name: "门店分类", //区域的名字 is_gps: 1, open_ind_store: 0, //哪里打开的门店列表的控制属性 default_store: {}, //创建添加默认门店地址的对象 comments_no_more: 0, get_c: 0, //获取评价是不是成 is_collect_load: 0, //是不是处理 is_newsales_rules: 0, //是否开启最新的门店规则,此时会新读门店,当点击选择门店时会触发读取线下库存 sales_rules: 1, //默认是线上销售 wait_for_user_store: null, prom_goods: null, //商品优惠列表 order_prom: null, //订单优惠 collocationGoods: null, //搭配购 poster: null, //自定义海报 share_b_img: '', //自定义分享的背景 showPoster: false, hui_condition: null, sto_sele_name_1: '',//分享的门店名称 fir_goods: null, share_hidden: false, showRules: false, // 控制规则显示与隐藏 showReward: false, //控制查看奖励显示与隐藏 typeArr: [{ key: 'point', name: '积分', }, { key: 'grow', name: '成长值', }, { key: 'point', name: '优惠券', }, { key: 'prestore_name', name: '项目服务', }, { key: 'prestore_money', name: '预存金额', }], luckGoInfo: {}, showDetails: false, num_success: 0, //成团已中商品数量 isTimeUp: false, surplus: 0, canBuy: false, btnHidden: false, hiddenCS: true, is_get_guide:0, keyword:'', //门店搜索 sec_i:-1,//选中分类门店 下标 goodInfo_ad:"",//商品详情广告 adding:0, //避免重复点击 nav_frontColor: "#ffffff", nav_backgroundColor: "#ffffff", nav_type: 2, //导航类型 istop: 0, //是否置顶风格为1 searchbox_transparent: 1, front_g:null, fir_set_sto:1, //最初始的一下,获取门店 front_pick:null, //在详情页面上显示的门店 }, //------初始化加载---------- onLoad: function (t) { self = this; // console.log('onload'); if (t && t.group_id) { this.data.group_id = t.group_id; }; //群id if(t && t.groupchat_id){ getApp().globalData.groupchat_id=t.groupchat_id } if(t){ wxlog.info(getApp().globalData.user_id+'-分享的内容:'+JSON.stringify(t)); } var ee = this, that = ee, th = ee, gid = t.goods_id, first_leader = t.first_leader, room_id = t.room_id, room_user_share = t.room_user_share, //如果是会员分享带有room_id的话,那么接下来会员分享就不传room_id prom_type = t.prom_type, prom_id = t.group_id; //活动ID var share_openid = t.share_openid; if (prom_type) { // this.data.prom_type = prom_type; // this.data.prom_id = prom_id; this.setData({ prom_type, prom_id, }); } //检查测肤 getApp().check_skin_face(t,0,gid); //-- 设置顶部高度 -- let height= getApp().globalData.navBarHeight; th.setData({ top_nav:height }) //-- 自定义海报 -- getApp().request.promiseGet("/api/weshop/goods/poster/page", { data: {store_id: os.stoid, type: 1, is_use: 1} }).then(res => { if (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData[0]) { var poster_data = res.data.data.pageData[0]; var json_str = poster_data.jsonStr; if (json_str) { var json_data = JSON.parse(json_str); console.log('自定义海报参数-------'); console.log(json_data); if (json_data.bg_img) { //-- 把图片那到本地 -- wx.getImageInfo({ src: json_data.bg_img, success: function (res) { var path = res.path; th.setData({share_b_img: path}) }, fail: function (res) { } }); } th.setData({poster: json_data}) } } }) //---获取手机地址坐标-- //--如果tg_id是空的话,分享回来-- // console.log('扫描海报gid'); if (gid == undefined || gid == null || gid == "") { var gid_str = decodeURIComponent(t.scene); gid_str = gid_str.split("_"); gid = gid_str[0]; if (gid.indexOf('.') != -1) { var fir_arr = gid.split("."); gid = fir_arr[0]; prom_type = fir_arr[1]; prom_id = fir_arr[2]; // this.setData({ // prom_type: prom_type, // prom_id: prom_id, // group_id: fir_arr[2], // }); this.data.prom_type = prom_type; this.data.prom_id = prom_id; this.data.group_id = fir_arr[2]; } if (gid_str.length > 1) { first_leader = gid_str[1]; } //-- 如果有room_id的获取 -- if (gid_str.length > 2 && gid_str[2]) { room_id = gid_str[2]; room_user_share = 1; } } ee.setData({ gid: gid }); if (first_leader) { getApp().globalData.first_leader = first_leader; //调用接口判断是不是会员 getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => { if (res.data.code == 0) { getApp().globalData.guide_id = res.data.data.id; getApp().globalData.guide_pick_id= res.data.data.pickup_id wxlog.info(getApp().globalData.user_id+'-分享的导购:'+getApp().globalData.guide_id); } }) } //-- 如果有房间号 -- if (room_id) { getApp().globalData.room_id = room_id; getApp().globalData.room_goods_id = gid; //如果是会员分享过来的要记录 if (room_user_share) getApp().globalData.room_user_share = room_user_share; if (share_openid) { this.get_room_share_guide(share_openid); } } var c_guide_id = t.c_guide_id; if (c_guide_id) { th.data.c_guide_id = c_guide_id; } getApp().getConfig(function (e) { ee.setData({ sto_sele_name_1: e.store_name }) }) //----获取系统参数----- getApp().getConfig2(function (e) { ee.setData({ bconfig: e, sales_rules: e.sales_rules, }); if (e.categoryset.indexOf("," + 1 + ",") != -1) { ee.setData({ is_show_pl: 1 }); } if (e.categoryset.indexOf("," + 3 + ",") != -1) { ee.setData({ is_show_pp: 1 }); } if (e.categoryset.indexOf("," + 2 + ",") != -1) { ee.setData({ is_show_gb: 1 }); } // console.log(e); var json_d = JSON.parse(e.switch_list); ee.setData({ store_config: e, sys_switch: json_d, is_closecoupon: json_d.is_closecoupon, is_newsales_rules: json_d.is_newsales_rules, appoint_pick_keyid: json_d.appoint_pick_keyid }); ee.init(gid); //------几人评价------- //n.init(th, "", "comments"); if(e && e.goods_topconent && e.goods_ad_position.indexOf('1')>-1){ //商品详情广告---- a.wxParse("goodInfo_ad2", "html", ut.format_content(e.goods_topconent), ee, 6); common.wxParseAddFullImageUrl(ee, "goodInfo_ad2"); //------- } if(e && e.goods_bottomconent && e.goods_ad_position.indexOf('2')>-1){ //商品详情广告---- a.wxParse("goodInfo_ad", "html", ut.format_content(e.goods_bottomconent), ee, 6); common.wxParseAddFullImageUrl(ee, "goodInfo_ad"); } //------- th.requestCardNum(), wx.pageScrollTo && th.setData({ supportPageScroll: !0 }); //计算等级价相关 var swithc_list = e.switch_list; var sw_arr = JSON.parse(swithc_list); //---如果后台又开等级卡的开关--- if (sw_arr.rank_switch && sw_arr.rank_switch == "2") { th.setData({ rank_switch: true }); //---回调卡的列表--- th.getPlusCardType(function (ob) { th.setData({ card_list: ob.card_list }); var ti = setInterval(function () { var user = getApp().globalData.userInfo; if (!user) return false; clearInterval(ti); if (user.card_field && user['card_expiredate']) { var str = user['card_expiredate'].replace(/-/g, '/'); var end = new Date(str); end = Date.parse(end) / 1000; var now = ut.gettimestamp(); //--- 判断是等级会员,且在有效期范围内 --- if (user.card_field && now < end) { var card_name = ob.name_map.get(user.card_field); //if(card_name.length>6) card_name=card_name.substring(0,6); var is_near_date = 0; if (end - now < 60 * 60 * 30 * 24) is_near_date = 1; //如果小于30天 th.setData({ card_field: user.card_field, card_name: card_name, card_list: ob.card_list, is_near_date: is_near_date }); } } }, 500) }) } }, 1); //获取用户设备信息,屏幕宽度 wx.getSystemInfo({ success: res => { that.setData({ screenWidth: res.screenWidth }) } }); //更新点击量 //noinspection JSUnresolvedFunction getApp().request.put("/api/weshop/goods/updateClick", { data: { store_id: os.stoid, goods_id: gid,user_id:getApp().globalData.user_id?getApp().globalData.user_id:0 } }); //--先判断会员登陆状态-- // var user_info = getApp().globalData.userInfo; // if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { // // getApp().is_Single_page(th, function () { // wx.navigateTo({ // url: '/packageE/pages/togoin/togoin', // }) // return false; // }) // } }, //-- 获取直播的分享人的导购信息 -- async get_room_share_guide(share_openid) { var url = "/api/weshop/users/page"; var first_leader = 0; //调用接口判断是不是会员 await getApp().request.promiseGet(url, { data: { stoid: os.stoid, weapp_openid: share_openid } }).then(res => { if (ut.ajax_ok(res)) { first_leader = res.data.data.pageData[0].user_id; getApp().globalData.guide_id = res.data.data.id; } }) if (!first_leader) return false; getApp().globalData.first_leader = first_leader; //调用接口判断是不是会员 await getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => { if (res.data.code == 0) { getApp().globalData.guide_id = res.data.data.id; getApp().globalData.guide_pick_id= res.data.data.pickup_id wxlog.info(getApp().globalData.user_id+'-分享的导购,从直播房间分享:'+getApp().globalData.guide_id); } }) }, //--- 设置一下默认库存的数量 ---- set_def_storage(ee) { var that = this, th = this; getApp().getConfig2(function (e) { var sales_rules = e.sales_rules; //虚拟商品, 代发商品不计算 if (!that.data.fir_goods.whsle_id && sales_rules >= 2) { getApp().waitfor2(that, "wait_for_user_store", "fir_goods", function () { var lock = 0, plist = null; var gd = that.data.fir_goods; //先读取门店的lock,采用链式写法,少用await // getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { // data: { store_id: os.stoid, wareId: that.data.fir_goods.goods_id, storageId: ee.pickup_id, pageSize: 1000 } // }).then(res => { // if (res.data.code == 0 && res.data.data.total > 0) { // for (var i in res.data.data.pageData) // lock += res.data.data.pageData[i].outQty // } // //---通过接口获取门店的线下库存信息-- // return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { // data: { storageNos: ee.pickup_no, wareIds: encodeURIComponent(th.data.data.erpwareid), storeId: os.stoid } // }) // }).then(res => { // if (res.data.code == 0 && res.data.data.total > 0) { // plist = res.data.data.pageData[0]; // } // if (plist && plist.CanOutQty - lock > 0) { // ee.CanOutQty = plist.CanOutQty - lock; // } else { // ee.CanOutQty = 0; // } // //--给门店赋值线下库存-- // that.data.fir_def_store = ee; // that.setData({ // def_pick_store: ee, // sto_sele_name: ee.pickup_name, // sto_sele_id: ee.pickup_id, // sto_sele_distr: ee.distr_type // }) // }) //最新的获取线下门店库存 th.check_CanOutQty(gd, ee, function (CanOutQty) { ee.CanOutQty = CanOutQty; //--给门店赋值线下库存-- that.data.fir_def_store = ee; that.setData({ def_pick_store: ee, sto_sele_name: ee.pickup_name, sto_sele_id: ee.pickup_id, sto_sele_distr: ee.distr_type }) }) }) } else { that.data.fir_def_store = ee; that.setData({ def_pick_store: ee, sto_sele_name: ee.pickup_name, sto_sele_id: ee.pickup_id, sto_sele_distr: ee.distr_type }) } }) }, //------------程序初始化入口------------- async init(gid) { var ee = this, th = ee, gallery = null, is_collect = 0, collect_id = 0, categories3 = ee.data.categories3, fir_com = null, fir_quan = null, mapurl = null, mapurl_f_img = null; //------图片滚动---------- await getApp().request.promiseGet("/api/weshop/goodsimages/page", { data: { store_id: os.stoid, goods_id: gid, }, }).then(res => { var t = res; var g = t.data.data.pageData; if (g.length == 0) { var ie = { "image_url": o.imghost + "/public/images/default_goods_image_240.gif" }; g.push(ie); gallery = g; return; } for (var i = 0; i < g.length; i++) { if (g[i].image_url.indexOf(o.imghost) == -1) g[i].image_url = o.imghost + g[i].image_url; } gallery = g; }) //------是否收藏---------- await getApp().request.promiseGet("/api/weshop/goodscollect/page", { data: { store_id: os.stoid, goods_id: gid, user_id: oo.user_id, } }).then(res => { var t = res; var data = t.data.data.pageData; if (data && data.length > 0) { //ee.setData({ is_collect: 1, collect_id: data[0].collect_id, }); is_collect = 1; collect_id = data[0].collect_id; } }) //------获取评价的统计数量---- await getApp().request.promiseGet("/api/weshop/comment/countlist/", { data: { store_id: os.stoid, goods_id: gid }, //failRollback: !0, }).then(res => { var t = res; var g = t.data.data[0]; if (g != null && g != undefined) { var allnum = g.c0 + g.c1 + g.c2 + g.c3 + g.c4 + g.c5; var num2 = g.c4 + g.c5; var num3 = g.c3; var num4 = g.c0 + g.c1 + g.c2; var dd = ee.data.categories3; dd[0].num = allnum; dd[1].num = g.cimg; dd[2].num = num2; dd[3].num = num3; dd[4].num = num4; categories3 = dd; } }) //----获取详情页的评价---- await getApp().request.promiseGet("/api/weshop/comment/pageComment", { data: { store_id: os.stoid, goods_id: gid, pageSize: 3, parent_id: 0, page: 1, is_show: 1, }, }).then(res => { fir_com = res.data.data.pageData; }) if (fir_com) { for (var ind in fir_com) { if (fir_com[ind].head_pic == "") fir_com[ind].head_pic = ee.data.iurl + "/miniapp/images/hui_hear_pic.png"; if (fir_com[ind].img) fir_com[ind].img = ut.unserialize(fir_com[ind].img); if (fir_com[ind].weapp_img) fir_com[ind].weapp_img = JSON.parse(fir_com[ind].weapp_img); } } if (th.data.is_closecoupon != 1 && (!th.data.fir_quan || th.data.fir_quan.length <= 0)) { //----获取详情页的券的数量---- await getApp().request.promiseGet("/api/weshop/prom/coupon/pageCouponList", { data: { store_id: os.stoid, type: 1, pageSize: 100, page: 1, is_share: 0, }, }).then(res1 => { fir_quan = res1.data.data.pageData; }) } //过滤不是本商品的单品优惠券------------------- if(fir_quan.length > 0 ){ let goodInfo = ee.data.data for (let index = fir_quan.length-1; index >= 0; index--) { if (fir_quan[index].useobjecttype==20) { //判断是单品优惠券 if (fir_quan[index].useobjectno != goodInfo.goods_sn) { fir_quan.splice(index,1) } } } } let arr=[] let length = fir_quan.length if (length <= 3) { arr=fir_quan }else{ arr=fir_quan.splice(0,3); } //--------获取视频图片--------- await getApp().request.promiseGet("/api/weshop/goodsVideos/get/" + os.stoid + "/" + ee.data.gid, { 1: 1 }).then(res1 => { if (res1.data.code == 0) { mapurl = res1.data.data.video_url; mapurl_f_img = res1.data.data.video_img; } }) ee.setData({ gallery: gallery, is_collect: is_collect, collect_id: collect_id, categories3: categories3, fir_quan: arr, fir_comments: fir_com, mapurl_f_img: mapurl_f_img, mapurl: mapurl, }); }, //检测有没有导购分享的门店 check_guide(func){ var first_leader=getApp().globalData.first_leader; if(!first_leader){ func(); return false; } if(this.data.is_geted_guide_pick){ func(); return false; } if(getApp().globalData.guide_pick_id){ func(); return false; } var th=this; getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => { if (res.data.code == 0) { getApp().globalData.guide_pick_id= res.data.data.pickup_id; } th.data.is_geted_guide_pick=1; func(); }) }, get_user_sto(){ var th=this;var that=this; //获取用户的默认门店 getApp().get_user_store(function (e) { if (!e) { th.data.fir_def_store = {}; //赋值空对象 return false; } if(getApp().globalData.is_dj_pk) th.setData({has_def:1}) var ee = JSON.parse(JSON.stringify(e)); if (th.data.fir_goods) var g_distr_type = th.data.fir_goods.distr_type; //--如果默认门店的配送方式不对,就不能被选择,这里不控制,如果不一样,就说明配送方式不对-- if (ee.distr_type != 0 && g_distr_type != 0 && ee.distr_type != g_distr_type) { ee.is_no_dis = 1; } var appd = getApp().globalData; var w_time = setInterval(function () { if (that.data.is_get_local_ok == 0) return false; clearInterval(w_time); var distance = null; var e = JSON.parse(JSON.stringify(ee)); //如果有开启近距离的话,同时距离优不一样了 if (that.data.lat != null) { //如果经纬度有变化的话 if (e && appd.lat == that.data.lat && appd.lon == that.data.lon && e.distance > 0) { that.set_def_storage(e); } else { //要用接口是获取距离,js的计算不准 getApp().request.promiseGet("/api/weshop/pickup/list", { data: { store_id: os.stoid, pickup_id: e.pickup_id, lat: th.data.lat, lon: th.data.lon, is_pos: 1 }, }).then(res => { if (res.data.code == 0) { e = res.data.data.pageData[0]; if (e) { e.is_no_dis = ee.is_no_dis; appd.pk_store = e; that.set_def_storage(e); } } }) } //e.distance = distance; appd.lat = that.data.lat; appd.lon = that.data.lon; } else { if (e) { e.distance = null; that.set_def_storage(e); } } }, 200) }); }, //---展示--- onShow: async function () { //-- 看一下隐私政策要不要显示 -- var privacy_pop = this.selectComponent("#privacy_pop"); //组件的id if (privacy_pop) { privacy_pop.check_pri_show(); } //添加购物车的控制要清理0 this.data.adding=0; getApp().check_can_share(this); // console.log('onshow'); var goods_list = null, th = this, that = this; var show_prew_img = this.data.show_prew_img if (show_prew_img) { show_prew_img = 0; return false; } if (this.data.show_video) { this.data.show_video = 0; return false; } //先获取一下导购的门店 th.check_guide(()=> { th.get_user_sto(); }) // 判断活动是否暂停 //获取单个活动成团信息 await getApp().request.promiseGet('/api/weshop/prom/luckyActivity/page', { data: { store_id: o.stoid, is_end: 0, timetype: 1, id: this.data.group_id, } }).then(res => { // console.log() // console.log('判断活动是否暂停=======》', res.data.data); if (res.data.code == 0) { if (res.data.data.pageData && res.data.data.pageData.length == 0) { let obj = { day: '00', hou: '00', min: '00', sec: '00' }; th.setData({ djs: obj, isTimeUp: true, }); } else { th.setData({ luckGoInfo: res.data.data.pageData[0], team_id: res.data.data.pageData[0].team_id, luckGoMembers: [], }); th.countDown(th.data.luckGoInfo.end_time, 0); }; } else { // this.data.isTimeUp = true; th.setData({ isTimeUp: true, }); }; }); // 活动暂停显示空白 if (this.data.isTimeUp) { wx.showModal({ title: '提示', content: '活动已经暂停', showCancel: false, success: function () { wx.navigateBack(); } }) return false; } //优惠券要实时更新 getApp().getConfig2(function (e) { var json_d = JSON.parse(e.switch_list); th.setData({ is_closecoupon: json_d.is_closecoupon }) th.setData({ is_open_offline: json_d.is_pricing_open }) }, 1) var ui = setInterval(function () { goods_list = th.selectComponent("#goods_list"); if (goods_list) { clearInterval(ui); goods_list.init(); return false } }, 300) this.data.is_timer = 1; var ee = this, gid = this.data.gid, i = getApp().request; this.wait_for_store_config(); if(ee.data.front_g){ gid=ee.data.front_g.goods_id; } i.get("/api/weshop/goods/get/" + o.stoid + "/" + gid, { failRollback: !0, success: function (t) { console.log(t); if (t.data.code == 0) { var p_fail=0; if (t.data.data.is_on_sale != 1) { p_fail=1; wx.showModal({ title: '商品已经下架', showCancel: !1, complete: function () { let pages = getCurrentPages(); if (pages[pages.length - 2]) { wx.navigateBack(); } else { getApp().goto('/pages/index/index/index') } } }); } var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; if (t.data.data.on_time > timestamp && !p_fail) { wx.showModal({ title: '商品还未上架', showCancel: !1, complete: function () { let pages = getCurrentPages(); if (pages[pages.length - 2]) { wx.navigateBack(); } else { getApp().goto('/pages/index/index/index') } } }); } if (t.data.data.down_time > 0 && !p_fail) { if (t.data.data.down_time < timestamp) { wx.showModal({ title: '商品已经到期下架', showCancel: !1, complete: function () { let pages = getCurrentPages(); if (pages[pages.length - 2]) { wx.navigateBack(); } else { getApp().goto('/pages/index/index/index') } } }); } } //动态获取商品名称 // wx.setNavigationBarTitle({ // title: t.data.data.goods_name, // }); ee.setData({gtitle: t.data.data.goods_name }) //-- 把商品的赋值 -- ee.data.fir_goods = JSON.parse(JSON.stringify(t.data.data)); if (ee.data.prom_type != 1 && ee.data.prom_type != 4 && ee.data.prom_type != 6 && ee.data.prom_type != 9) ee.check_is_youhui(ee.data.gid); t.data.data.on_time = ut.formatTime(t.data.data.on_time, 'yyyy-MM-dd hh:mm:ss'); var cur_price = t.data.data.shop_price; if (getApp().globalData.userInfo && getApp().globalData.userInfo.card_field) { var cfile = getApp().globalData.userInfo.card_field; if (t.data.data[cfile]) { cur_price = t.data.data[cfile]; } } var txt = (cur_price / t.data.data.market_price * 10).toFixed(2).toString(); txt = parseFloat(txt); t.data.data['disc'] = txt; if (t.data.data.original_img.indexOf(o.imghost) == -1) t.data.data.original_img = o.imghost + t.data.data.original_img; if (t.data.data.goods_content == null) t.data.data.goods_content = ""; //-----商品详情--- if (!t.data.data.goods_content) t.data.data.goods_content = " "; a.wxParse("content", "html",ut.format_content(t.data.data.goods_content), ee, 6); e.wxParseAddFullImageUrl(ee, "content"); if (ee.data.prom_type) { //999 t.data.data.prom_type = ee.data.prom_type; t.data.data.prom_id = ee.data.prom_id; } ee.setData({ data: t.data.data, sele_g: t.data.data, userInfo: getApp().globalData.userInfo, front_g:ut.deep_cp(t.data.data) }); //获取统一条形码,普通商品和优惠促销的商品 if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 2 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 5 || ee.data.data.prom_type == 7) { //默认门店要拿下门店库存 // if (that.data.sales_rules == 2 && that.data.is_newsales_rules) { // //获取门店 // ee.get_sto(1); // } else { // //获取门店 // ee.get_sto(); // } // ee.get_sku(o.stoid, t.data.data, gid); // ee.check_has_flash(); } else { var gg = "", item = t.data.data; if (item.goods_spec == "null" || item.goods_spec == null) item.goods_spec = ""; if (item.goods_color == "null" || item.goods_color == null) item.goods_color = ""; if (item.goods_spec != "" && item.goods_color != "") { gg = item.goods_spec + "/" + item.goods_color; } else if (item.goods_spec != "" || item.goods_color != "") { gg = item.goods_spec + item.goods_color; } else { gg = "规格1"; } t.data.data.gg = gg; var uu = []; uu.push(t.data.data); ee.setData({ sku_g: uu, }); } ee.data.g_buy_num = new Map(); ee.check_prom(gid, ee.data.data.prom_type, ee.data.data.prom_id); var th = ee; if (ee.data.cat_name == '') { //过去国别,分类,品牌的名称 i.get("/api/weshop/goodscategory/get/" + o.stoid + "/" + th.data.data.cat_id, { success: function (t) { var dd = t.data.data; if (t.data.code == 0) { th.setData({ cat_name: dd.name }); } } }); //过去国别,分类,品牌的名称 i.get("/api/weshop/brand/get/" + o.stoid + "/" + th.data.data.brand_id, { success: function (t) { var dd = t.data.data; if (t.data.code == 0) { th.setData({ brand_name: dd.name }); } } }); //过去国别,分类,品牌的名称 i.get("/api/weshop/nation/get/" + o.stoid + "/" + th.data.data.nation_id, { success: function (t) { var dd = t.data.data; if (t.data.code == 0) { th.setData({ nation_name: dd.name }); } } }); } } else { wx.showModal({ title: t.data.msg, showCancel: !1, complete: function () { wx.navigateBack(); } }); } } }); this.data.enterAddressPage && (this.data.enterAddressPage = !1); //获取单个活动已成团数量 getApp().request.get(`/api/weshop/prom/luckyTeam/getCtNum/${o.stoid}/${this.data.group_id}`, { success: function (res) { if (res.data.code == 0) { th.setData({ group_num: res.data.data, }); } } }); //获取单个活动中奖记录 getApp().request.promiseGet('/api/weshop/prom/luckyOrder/page', { data: { store_id: os.stoid, team_status: 2, goods_id: this.data.gid, rndid: 1, } }).then(res => { if (res.data.code == 0) { th.setData({ luckGoWinners: res.data.data.pageData, }); } }); //获取单个活动成团已中商品数量 let url_num_success = `/api/weshop/prom/luckyOrder/countActNum/${os.stoid}/${this.data.group_id}`; getApp().request.get(url_num_success, { success: function (res) { if (res.data.code == 0) { console.log('成团已中商品数量汇总', res.data.data); th.setData({ num_success: res.data.data, }); } } }); // 获取购买次数,判断是否已经超出限购 // {store_id}/{user_id}/{aid} let get_aid = this.data.prom_id || this.data.luckGoInfo.id; await getApp().request.get('/api/weshop/prom/luckyOrder/countActNum/' + os.stoid + '/' + oo.user_id + '/' + get_aid, { success: function (res) { if (res.data.code == 0) { console.log(oo.user_id, '判断是否超出限购,获取购买次数', res,); // th.setData({ // num_joined: res.data.data, // }); let num_joined = res.data.data; let group_join_num = th.data.luckGoInfo.group_join_num; let canBuy = num_joined >= group_join_num ? false : true; th.setData({ canBuy, }); // console.log('canBuy', th.data.canBuy); }; }, }); //获取参团成员 await getApp().request.promiseGet('/api/weshop/prom/luckyOrder/page', { data: { store_id: o.stoid, team_id: th.data.team_id, } }).then(res => { if (res.data.code == 0) { // console.log(th.data.team_id,'参团成员===============》', res.data.data.pageData); th.setData({ luckGoMembers: res.data.data.pageData, }); } }); var p1 = new Promise((resolve, reject) => { // 检查幸运购活动商品库存 getApp().request.get("/api/weshop/activitylist/getActLen/" + o.stoid + "/9/" + this.data.group_id, { success: function (res) { //console.log('当前幸运购活动的剩余库存', res.data.data); if (res.data.code == 0) { th.setData({ // 剩余库存量 surplus: res.data.data, }); }; resolve(); } }); }); var p2 = new Promise((resolve, reject) => { // 检查是否已经参团购买 getApp().request.get("/api/weshop/prom/luckyOrder/getUserOrderInfo/" + o.stoid + "/" + oo.user_id + "/" + this.data.group_id, { success: function (res) { console.log('当前幸运购活动是否已经参团', res.data.code); if (res.data.code == 0) { th.setData({ showDetails: true, buyInfo: res.data.data, }); } else { th.setData({ showDetails: false, }); }; resolve(); } }); }); Promise.all([p1, p2]).then(res => { th.setData({ btnHidden: true, }); }); console.log('hidddddnnnnnnnn------>>>>', this.data.btnHidden, this.data.isTimeUp) }, // 页面卸载 onUnload: function () { // for (var i = 1; i < 100; i++) { // clearInterval(i); // } }, // 页面隐藏 onHide: function () { this.data.is_timer = 0; for (var i = 1; i < 100; i++) { clearInterval(i); } }, // 点击顶部选项卡 tabClick: function (t) { var e = t.currentTarget.id; this.setData({ activeCategoryId: e }), 1 == e ? this.tabGoodsContent() : 2 == e && this.tabComment(); }, // 点击评价选项卡下的各评价按钮 tabClick3: function (t) { var e = this; if (t.currentTarget.id != this.data.activeCategoryId3) { e.data.c_curr_p = 1; this.setData({ activeCategoryId3: t.currentTarget.id, comments: null, comments_no_more: 0, get_c: 0, }); this.requestComments_new(); } }, // 滚动到顶部 doScrollTop: function () { wx.pageScrollTo({ scrollTop: 0 }); }, tabComment: function () { this.setData({ activeCategoryId: 2, comments_no_more: 0, get_c: 0 }), this.data.comments || this.requestComments_new(); }, //商品详情里表格信息:类别、品牌、国别 tabGoodsContent: function () { var th = this, i = getApp().request; this.setData({ activeCategoryId: 1 }); if (th.data.cat_name == '') { //过去国别,分类,品牌的名称 i.get("/api/weshop/goodscategory/get/" + o.stoid + "/" + th.data.data.cat_id, { success: function (t) { var dd = t.data.data; if (t.data.code == 0) { th.setData({ cat_name: dd.name }); } } }); //过去国别,分类,品牌的名称 i.get("/api/weshop/brand/get/" + o.stoid + "/" + th.data.data.brand_id, { success: function (t) { var dd = t.data.data; if (t.data.code == 0) { th.setData({ brand_name: dd.name }); } } }); //过去国别,分类,品牌的名称 i.get("/api/weshop/nation/get/" + o.stoid + "/" + th.data.data.nation_id, { success: function (t) { var dd = t.data.data; if (t.data.code == 0) { th.setData({ nation_name: dd.name }); } } }); } }, //获取redis中的数量 async getactLen(func) { var r_num = 0, prom_type = this.data.prom_type, prom_id = this.data.prom_id; await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/" + prom_type + "/" + prom_id, { 1: 1 }).then(res => { var em = res; if (em.data.code == 0) { r_num = em.data.data; } }) func(r_num); }, //------------加入购物车-------------- addCart: function (t) { var th = this; var ind = t.currentTarget.dataset.openSpecModal_ind; if (!ind) ind = t.currentTarget.dataset.openspecmodal_ind; th.setData({ open_ind_store: ind }); th.add_cart_func(t); }, //-- 加入购物的函数 -- add_cart_func_inte: function (t) { var i = getApp().request; if (oo.user_id == null) { return s.my_warnning("还未登录!", 0, this); } if (!getApp().globalData.userInfo) { return s.my_warnning("还未登录!", 0, this); } var e = this, th = e, a = 0, o = this.data.data; a = o.goods_id; //----------添加到购物车时,要判断限购数量,-------- e.get_buy_num(o, function (ee) { //---判断商品是否超出限购--- if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) { // wx.showModal({ // title: '提示', // content: '超出商品限购' // }); getApp().my_warnning('超出商品限购', 0, th); return false; } } //---判断商品是否超出活动限购--- if (th.data.prom_buy_num != -1 && th.data.prom_buy_limit > 0) { if (th.data.goodsInputNum + th.data.prom_buy_num > th.data.prom_buy_limit) { // wx.showModal({ // title: '提示', // content: '超出商品活动限购' // }); getApp().my_warnning('超出商品活动限购', 0, th); return false; } } if (th.data.goodsInputNum <= 0) return s.my_warnning("商品数量不能为0", 0, th); if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) th.setData({ sto_sele_name: "" }); if (th.data.sto_sele_name == "") return s.my_warnning("请选择门店", 0, th); //--------------此时操作的数据------------ var newd = { goods_id: o.goods_id, goods_num: th.data.goodsInputNum, pick_id: th.data.sto_sele_id, user_id: oo.user_id, store_id: th.data.stoid, goods_price: th.data.prom_price, integral: th.data.prom_integral, member_goods_price: o.shop_price, goods_name: o.goods_name, goods_sn: o.goods_sn, sku: o.sku, }; //---是不是从收藏夹出来的--- if (th.data.c_guide_id) { newd['guide_id'] = th.data.c_guide_id; newd['guide_type'] = 2; if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 3; } else { if (getApp().globalData.guide_id) { newd['guide_id'] = getApp().globalData.guide_id; newd['guide_type'] = 0; if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 1; } } if(getApp().globalData.groupchat_id){ newd['groupchat_id'] = getApp().globalData.groupchat_id; } //让商品带上房间号 //让商品带上房间号 if (th.data.sys_switch.is_skuroom_id == 1) { if (th.data.data.goods_id == getApp().globalData.room_goods_id) { newd.room_id = getApp().globalData.room_id; } } else { if (newd.goods_id == getApp().globalData.room_goods_id) newd.room_id = getApp().globalData.room_id; } //如果是积分够,is_integral_normal就要有积分购普通购买字段 //if(o.prom_type==4){ //newd.is_integral_normal=1; //} //-----如果是秒杀,团购,积分购,拼团----- newd.prom_type = th.data.prom_type; newd.prom_id = th.data.prom_id; if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); th.add_cart_next(e, t, a, o, newd); //立即购买下一步 }) }, //-- 加入购物的函数 -- add_cart_func: function (t) { var i = getApp().request; if (oo.user_id == null) { return s.my_warnning("还未登录!", 0, this); } if (!getApp().globalData.userInfo) { return s.my_warnning("还未登录!", 0, this); } var e = this, th = e, a = 0, o = this.data.sele_g; a = o.goods_id; //----------添加到购物车时,要判断限购数量,-------- e.get_buy_num(o, function (ee) { //---判断商品是否超出限购--- if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) { // wx.showModal({ // title: '提示', // content: '超出商品限购' // }); getApp().my_warnning('超出商品限购', 0, th); return false; } } //---判断商品是否超出活动限购--- if (th.data.prom_buy_num != -1 && th.data.prom_buy_limit > 0) { if (th.data.goodsInputNum + th.data.prom_buy_num > th.data.prom_buy_limit) { // wx.showModal({ // title: '提示', // content: '超出商品活动限购' // }); getApp().my_warnning('超出商品活动限购', 0, th); return false; } } if (th.data.goodsInputNum <= 0) return s.my_warnning("商品数量不能为0", 0, th); if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) th.setData({ sto_sele_name: "" }); if (th.data.sto_sele_name == "") return s.my_warnning("请选择门店", 0, th); //--------------此时操作的数据------------ var newd = { goods_id: o.goods_id, goods_num: th.data.goodsInputNum, pick_id: th.data.sto_sele_id, user_id: oo.user_id, store_id: th.data.stoid, goods_price: o.shop_price, member_goods_price: o.shop_price, goods_name: o.goods_name, goods_sn: o.goods_sn, sku: o.sku, prom_id: th.data.luckGoInfo.id, // prom_type:th.data.sele_g.prom_type, prom_type: 9, }; //---是不是从收藏夹出来的--- if (th.data.c_guide_id) { newd['guide_id'] = th.data.c_guide_id; newd['guide_type'] = 2; if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 3; } else { if (getApp().globalData.guide_id) { newd['guide_id'] = getApp().globalData.guide_id; newd['guide_type'] = 0; if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 1; } } if(getApp().globalData.groupchat_id){ newd['groupchat_id'] = getApp().globalData.groupchat_id; } //让商品带上房间号 if (th.data.sys_switch.is_skuroom_id == 1) { if (th.data.data.goods_id == getApp().globalData.room_goods_id) { newd.room_id = getApp().globalData.room_id; } } else { if (newd.goods_id == getApp().globalData.room_goods_id) newd.room_id = getApp().globalData.room_id; } //如果是积分够,is_integral_normal就要有积分购普通购买字段 if (o.prom_type == 4) { newd.is_integral_normal = 1; } //如果有线下取价 if (o.offline_price) { newd.offline_price = o.offline_price; newd.pricing_type = o.pricing_type; } //-----如果是秒杀,团购,积分购,拼团----- if (th.data.prom_type == 1) { newd.goods_price = th.data.prom_price; newd.member_goods_price = th.data.prom_price, newd.prom_type = th.data.prom_type; newd.prom_id = th.data.prom_id; if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 } else if (o.prom_type == 7) { //判断进行中的活动,是不是要判断线下库存 th.check_zh_acting(function (ee) { newd.prom_id = 0; newd.prom_type = 0; if (ee && th.data.sele_g.act) { newd.prom_id = th.data.sele_g.act.id; newd.prom_type = 7; if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 return false; } else { //---如果是线下门店销售的时候--- if(!th.data.sele_g.whsle_id && th.data.sales_rules >= 2) { var pick = th.get_pick_from_list(th.data.sto_sele_id) //---通过接口获取门店的线下库存信息-- // getApp().request.get("/api/weshop/goods/getWareStorages", { // data: { storageNos: pick.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid }, // success: function (res) { // if (res.data.code == 0) { // if (res.data.data.pageData.length > 0) { // var CanOutQty = res.data.data.pageData[0].CanOutQty; // if (CanOutQty < e.data.goodsInputNum) { // return s.my_warnning("库存不足!", 0, th); // } // //在调一次接口,读取商品的预出库的数量,lock // getApp().request.get("/api/weshop/order/ware/lock/page", { // data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, storageId: pick.pickup_id, pageSize: 1000 }, // success: function (res_data) { // if (res_data.data.code == 0 && res_data.data.data.total > 0) { // // var lock = 0; // for (var i in res_data.data.data.pageData) { // lock += res_data.data.data.pageData[i].outQty; // } // // if (CanOutQty <= lock) { // return s.my_warnning("库存不足!", 0, th); // } // th.add_cart_next(e, t, a, o, newd, CanOutQty - lock); // } else { // th.add_cart_next(e, t, a, o, newd, CanOutQty); // } // } // }) // } else { // return s.my_warnning("库存不足!", 0, th); // } // // } // } // }) th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) { if (CanOutQty) { if (CanOutQty < e.data.goodsInputNum) { wx.showToast({ title: '库存不足!', icon: 'none', }); return false; } th.add_cart_next(e, t, a, o, newd, CanOutQty); } else { wx.showToast({ title: '库存不足!', icon: 'none', }); return false; } }) } else { if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 } } }) } else if (th.data.prom_type == 0 || th.data.prom_type == 3 || th.data.prom_type == 2 || th.data.prom_type == 4 || th.data.prom_type == 5) { newd.prom_type = 0; newd.prom_id = 0; //---如果是线下门店销售的时候--- if(!th.data.sele_g.whsle_id && th.data.sales_rules >= 2) { var pick = th.get_pick_from_list(th.data.sto_sele_id) th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) { if (CanOutQty) { if (CanOutQty < e.data.goodsInputNum) { wx.showToast({ title: '库存不足!', icon: 'none', }); return false; } th.add_cart_next(e, t, a, o, newd, CanOutQty); } else { wx.showToast({ title: '库存不足!', icon: 'none', }); return false; } }) } else { if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 } } }) }, //---加入购物车的最后一步--- add_cart_next(e, t, a, o, newd, CanOutQty) { var th = this, i = getApp().request; //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------ if ((o.prom_type != 1 || o.prom_id <= 0) && ((o.prom_type != 6 && o.prom_type != 4) || th.data.is_normal)) { var conf = th.data.bconfig; if (conf.switch_list && getApp().globalData.userInfo['card_field'] && getApp().globalData.userInfo['card_expiredate']) { var s_list = JSON.parse(conf.switch_list); var now = ut.gettimestamp(); var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/'); var end = new Date(str); end = Date.parse(end) / 1000; //--如果后台有开启等级价的功能,而且会员的等级没有过期的情况下-- if (parseInt(s_list.rank_switch) == 2 && end > now) { var card_price = o[getApp().globalData.userInfo['card_field']]; //如果会员有等级价 if (getApp().globalData.userInfo['card_field'] != undefined && getApp().globalData.userInfo['card_field'] != null && getApp().globalData.userInfo['card_field'] != "" && card_price > 0) { newd.goods_price = card_price; newd.member_goods_price = card_price; } } } } //if (this.data.data.goods.is_virtual) return this.buyVirtualGoods(d); if ("add" == t.currentTarget.dataset.action) { if (th.data.prom_goods) { newd.prom_type = 3; newd.prom_id = th.data.prom_goods[0].prom_id; } //----先看会员在购物车中是否加入了该商品----- i.get("/api/weshop/cart/page", { data: { store_id: e.data.stoid, user_id: oo.user_id, goods_id: a, pick_id: e.data.sto_sele_id, }, success: function (re) { //-------如果购物车中有相关的数据--------- if (re.data.data.total > 0) { var item = re.data.data.pageData[0]; //判断数量,要看下购物车中有没有该商品 if (CanOutQty) { if (item.goods_num + th.data.goodsInputNum > CanOutQty) { return s.my_warnning("库存不足!", 0, th); } } else { if (item.goods_num + th.data.goodsInputNum > o.store_count) { return s.my_warnning("库存不足!", 0, th); } } var updata = { id: item.id, goods_num: e.data.goodsInputNum + item.goods_num, goods_price: newd.goods_price, member_goods_price: newd.goods_price, store_id: th.data.stoid, }; //---是不是从收藏夹出来的--- if (th.data.c_guide_id) { updata['guide_id'] = th.data.c_guide_id; updata['guide_type'] = 3; //加入购物车之后就变成了3 } else { if (getApp().globalData.guide_id) { updata['guide_id'] = getApp().globalData.guide_id; updata['guide_type'] = 0; } } if(getApp().globalData.groupchat_id){ updata['groupchat_id'] = getApp().globalData.groupchat_id; } i.put("/api/weshop/cart/update", { data: updata, success: function (t) { getApp().my_warnning('加入购物车成功', 1, th, 450); var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; th.setData({ cartGoodsNum: c_num }); th.closeSpecModal(); } }); } else { i.post("/api/weshop/cart/save", { data: newd, success: function (t) { getApp().my_warnning('加入购物车成功', 1, th, 450); var c_num = th.data.cartGoodsNum + e.data.goodsInputNum; th.setData({ cartGoodsNum: c_num }); th.closeSpecModal(); } }); } } }); } //else "exchange" == t.currentTarget.dataset.action ? this.exchange(d) : this.buyNow(d); else { if (th.data.prom_goods) { var prom_d = th.data.prom_goods; for (var i in prom_d) { //判断活动有俩种条件,0元 1件 var condition_t = prom_d[i].prom_type; switch (condition_t) { case 0: //按钱 if (newd.goods_price >= condition_t) { newd.prom_type = 9; newd.prom_id = prom_d[i].prom_id; } break case 1://按购买数量 if (newd.goods_num >= condition_t) { newd.prom_type = 9; newd.prom_id = prom_d[i].prom_id; } break; } } } newd['pick_name'] = th.data.sto_sele_name; newd['pick_dis'] = th.data.sto_sele_distr; th.buyNow(newd); } }, //----------购买虚拟商品------ buyVirtualGoods: function (e) { Object.assign(e, { goods_name: this.data.data.goods.goods_name, spec_name: this.data.select.specName, price: this.data.select.price }), wx.navigateTo({ url: "/pages/virtual/buy_step/buy_step?" + t.Obj2Str(e) }); }, //----------积分兑换--------- exchange: function (e) { this.data.shippingCost < 0 || this.data.select.stock <= 0 || wx.navigateTo({ url: "/pages/cart/integral/integral?" + t.Obj2Str(e) }); }, //----------立即购买----------- buyNow: function (e) { // this.data.shippingCost < 0 || this.data.select.stock <= 0 || (Object.assign(e, { // action: "buy_now" // }), var th = this; this.setData({ openSpecModal: 0, openSpecModal_inte: 0, openSpecModal_inte_normal: 0, openSpecModal_pt: 0, }) e.prom_type = 0; e.prom_id = 0; e.is_pd_normal= 1; e.state = 1; //----先看会员在购物车中是否加入了该商品,立即购买的----- getApp().request.get("/api/weshop/cart/page", { data: { store_id: os.stoid, user_id: oo.user_id, state: 1 }, success: function (res) { //-------如果购物车中有相关的数据,先清理掉--------- if (res.data.code == 0 && res.data.data.total > 0) { for (let j in res.data.data.pageData) { let item_j = res.data.data.pageData[j]; var url = '/api/weshop/cart/del/' + os.stoid + '/' + item_j.id; getApp().request.delete(url, {}); } } getApp().request.post("/api/weshop/cart/save", { data: e, success: function (t) { th.closeSpecModal(); getApp().goto("/packageE/pages/cart/cart2/cart2?state=1"); } }); } }) }, //----------增加购买数量----------- addCartNum: function (t) { //如果是幸运购的话,每次只能购买一个中 if(!this.data.is_normal && this.data.prom_type==9) { return; } var add_num=1; if(this.data.is_normal == 1){ add_num=getApp().get_limit_qty(this.data.sele_g,this.data.is_act,1); } this.checkCartNum(this.data.goodsInputNum + add_num); }, //----------减少购买数量----------- subCartNum: function (t) { var add_num=1; if(this.data.is_normal == 1){ add_num=getApp().get_limit_qty(this.data.sele_g,this.data.is_act,1); } this.checkCartNum(this.data.goodsInputNum - add_num); }, //----------输入框输入购买数量----------- inputCartNum: function (t) { this.checkCartNum(Number(t.detail.value)); }, //----------增加购买数量----------- addCartNum_inte: function (t) { this.checkCartNum_inte(this.data.goodsInputNum + 1); }, //----------减少购买数量----------- subCartNum_inte: function (t) { this.checkCartNum_inte(this.data.goodsInputNum - 1); }, //----------输入框输入购买数量----------- inputCartNum_inte: function (t) { this.checkCartNum_inte(Number(t.detail.value)); }, //------检查数量是不是超出限购------ checkCartNum: function (t) { var th = this; var mo_num=getApp().get_limit_qty(th.data.sele_g,th.data.is_act); var steep=getApp().get_limit_qty(th.data.sele_g,th.data.is_act,1); this.get_buy_num(this.data.sele_g, async function () { var is_show_bs=0; var l_num=-1; //--判断商品是否超出限购-- if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { var gd_buy_num = th.data.g_buy_num.get(th.data.sele_g.goods_id); if (t + gd_buy_num > th.data.sele_g.viplimited) { // wx.showModal({ // title: '超出商品限购', // }); getApp().my_warnning('超出商品限购', 0, th); l_num = th.data.sele_g.viplimited - gd_buy_num; if (l_num < 0) l_num = 0; //th.setData({ goodsInputNum: num }) //return false; is_show_bs=1; } } //--判断商品是否超出活动限购-- if (th.data.prom_buy_num != -1 && th.data.prom_buy_limit > 0 && !th.data.is_normal) { if (t + th.data.prom_buy_num > th.data.prom_buy_limit) { // wx.showModal({ // title: '超出商品活动限购', // }); getApp().my_warnning('超出商品活动限购', 0, th); var num = th.data.prom_buy_limit - th.data.prom_buy_num; if (num < 0) num = 0; th.setData({ goodsInputNum: num }) return false; } } if (th.data.sele_g.prom_type == 1 || th.data.sele_g.prom_type == 6) { var redis_num = 0; //------判断活动是否抢光----- await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/" + th.data.sele_g.prom_type + "/" + th.data.sele_g.prom_id, { 1: 1 }).then(res => { redis_num = res.data.data; }); if (t > redis_num) { // wx.showModal({ // title: '超出商品活动库存', // }); getApp().my_warnning('超出商品活动库存', 0, th); th.setData({ goodsInputNum: redis_num }) return false; } } var e = th.data.sele_g.store_count; var p_type = parseInt(th.data.prom_type); //&& p_type!=1 && p_type!=4 if (!th.data.sele_g.whsle_id && th.data.sales_rules >= 2 && ( [1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { //-- 如果是虚拟商品,默认给最大值 -- if(getApp().is_virtual(th.data.sele_g)){ e =100000; }else{ if (!th.data.def_pick_store) { wx.showModal({ title: '请选择门店', }); return false; } else { e = th.data.def_pick_store.CanOutQty; } } } //-- 限购数量也要进行计算一下 -- if(l_num>-1){ if(e>l_num) e=l_num; } //提示了一个,就不要提示第二个 var is_show_bs=0; //--- 促销活动也不控制起订量, 这里很重要的一个控制,起订量的 ---- if(th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1){ if(tmo_num && (t-mo_num)%steep!=0){ if(!is_show_bs) { wx.showToast({ title: '购买数必须是起订量的倍数', icon: 'none', }); } t=mo_num+ parseInt((t-mo_num)/steep)*steep+steep; is_show_bs=1; } } if (!e) e = 0; //库存不足,不增加 if (e < t) { if(!is_show_bs) wx.showModal({ title: '库存不足', }); if (e < 0) e = 0; if(th.data.is_normal == 1){ if(emo_num && (e-mo_num)%steep!=0){ e=mo_num+ parseInt((e-mo_num)/steep)*steep; } } th.setData({ goodsInputNum: e }); return false; } t > e || 0 == e ? t = e : t < 1 && (t = 1); //只有普通商品才有起购数 if(th.data.is_normal == 1){ if(t 0) { var gd_buy_num = th.data.g_buy_num.get(th.data.sele_g.goods_id); if (t + gd_buy_num > th.data.sele_g.viplimited) { // wx.showModal({ // title: '超出商品限购', // }); getApp().my_warnning('超出商品限购', 0, th); var num = th.data.sele_g.viplimited - gd_buy_num; if (num < 0) num = 0; th.setData({ goodsInputNum: num }) return false; } } //--判断商品是否超出活动限购-- if (th.data.prom_buy_num != -1 && th.data.prom_buy_limit > 0) { if (t + th.data.prom_buy_num > th.data.prom_buy_limit) { // wx.showModal({ // title: '超出商品活动限购', // }); getApp().my_warnning('超出商品活动限购', 0, th); var num = th.data.prom_buy_limit - th.data.prom_buy_num; if (num < 0) num = 0; th.setData({ goodsInputNum: num }) return false; } } if (th.data.sele_g.prom_type == 1 || th.data.sele_g.prom_type == 6) { var redis_num = 0; //------判断活动是否抢光----- await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/" + th.data.sele_g.prom_type + "/" + th.data.sele_g.prom_id, { 1: 1 }).then(res => { redis_num = res.data.data; }); if (t > redis_num) { // wx.showModal({ // title: '超出商品活动库存', // }); getApp().my_warnning('超出商品活动库存', 0, th); th.setData({ goodsInputNum: redis_num }) return false; } } var e = th.data.sele_g.store_count; var p_type = parseInt(th.data.prom_type); //&& p_type!=1 && p_type!=4 if (!th.data.sele_g.whsle_id && th.data.sales_rules >= 2 && ([1,2,4,6,8,9].indexOf(p_type)== -1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { //-- 如果是虚拟商品,默认给最大值 -- if(getApp().is_virtual(th.data.sele_g)){ e=100000; }else{ if (!th.data.def_pick_store) { wx.showModal({ title: '请选择门店', }); return false; } else { e = th.data.def_pick_store.CanOutQty; } } } if (!e) e = 0; //库存不足,不增加 if (e < t) { wx.showModal({ title: '库存不足', }); if (e < 0) e = 0; th.setData({ goodsInputNum: e }); return false; } t > e || 0 == e ? t = e : t < 1 && (t = 1); th.setData({ goodsInputNum: t }); }) }, closeSpecModal: function () { if (this.data.openSpecModal_pt && this.data.is_normal) { this.get_sto(); this.setData({ sele_g: this.data.front_g, gid: this.data.front_g.goods_id }) this.sele_spec_chech_activity(); } this.setData({ openSpecModal: !1, openSpecModal_pt: !1 }); }, openSpecModel: function (t) { var th = this; var open_store = t.currentTarget.dataset.ind; this.setData({ store: 0, choice_sort_store: 0, sort_store: 0, open_ind_store: open_store, }) //--先判断会员状态-- var user_info = getApp().globalData.userInfo; if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { wx.navigateTo({ url: '/packageE/pages/togoin/togoin', }) return false; } if (th.data.more_flash && open_store == 1) { th.setData({ is_pop_more: 1 }); } else { var ind = t.currentTarget.dataset.ind; //回调。判断是不是优惠促销 th.check_is_prom_goods(function () { th.setData({ openSpecModal: !0, openSpecModal_ind: ind, }); //var is_open=th.data.config th.get_off_price(); }) } }, open_next() { var th = this; //回调。判断是不是优惠促销 th.check_is_prom_goods(function () { th.setData({ openSpecModal: !0, openSpecModal_ind: 1, is_pop_more: 0 }); th.get_off_price(); }) }, //判断是不是优惠促销 check_is_prom_goods: function (callback) { var th = this; var usr = getApp().globalData.userInfo; if (this.data.sele_g.prom_type != 0 && this.data.sele_g.prom_type != 3) { callback(); } else { //-- 判断有没有优惠活动 -- getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + th.data.sele_g.goods_id + "/0", {}).then(res => { if (res.data.code == 0) { var r_data = res.data.data; th.data.prom_goods = r_data.promGoodsLists; if (!th.data.prom_goods) { callback(); return false; } ///api/weshop/order/getWPayOrder?store_id=1&user_id=5682366&prom_id=1&goods_id=1 getApp().promiseGet("/api/weshop/order/getWPayOrder", { data: { store_id: os.stoid, user_id: usr.user_id, goods_id: th.data.sele_g.goods_id, prom_id: th.data.prom_goods[0].prom_id } }).then(res => { if (res.data.code == 0) { wx.showToast({ title: "您已经购买了该商品待支付中", icon: 'none', duration: 2000 }) setTimeout(function () { getApp().goto("/packageG/pages/user/order_detail/order_detail?order_id=" + res.data.data.order_id,) }, 1000) } //未找到相关记录 else { callback(); } }) } }) } }, //----获取线下价格------- get_off_price() { var th = this; //没有开启就返回 if (!th.data.is_open_offline) return false; //先看下购买的功能有没有到期 getApp().request.promiseGet("/store/storemoduleendtime/page?store_id=" + os.stoid + "&type=6", {}).then(res => { //未购买 if (res.data.code != 0 || !res.data.data || !res.data.data.pageData || !res.data.data.pageData.length) { return false; } else { //已经过期 var item = res.data.data.pageData[0]; if (item.end_time < ut.gettimestamp()) { return false; } } var cur_goods = this.data.sele_g; var cur_price = cur_goods.shop_price; if (th.data.card_field && cur_goods[th.data.card_field] > 0) { cur_price = cur_goods[th.data.card_field]; } var user_info = getApp().globalData.userInfo; //获取一下接口,判断是不是有线下接口,必须是普通商品,全局优惠活动也是不行 if (cur_goods.prom_type == 0 && !this.data.prom_goods) { cur_goods.offline_price = null; //如果没有门店,不用计算线下价格 var def_pick_store = this.data.def_pick_store; if (!def_pick_store) return false; getApp().request.get("/api/weshop/goods/listWarePrice", { data: { VIPId: encodeURIComponent(user_info.erpvipid), store_id: os.stoid, PickupId: def_pick_store.pickup_id, WareIds: encodeURIComponent(cur_goods.erpwareid) }, success: function (res) { if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { var datalist = res.data.data; if (datalist[0].WarePrice < cur_price) { cur_goods.offline_price = datalist[0].WarePrice; //存储线下活动的价格 cur_goods.pricing_type = datalist[0].PriceType; //存储线下活动的类型 } } th.setData({ sele_g: cur_goods }); } }) } }) }, //---------点击收藏和不收藏------------ collectGoods: function () { var t = this, i = getApp().request; var user_id = s.globalData.user_id; if (user_id == '') { getApp().getUserFir(function () { }); getApp().showWarning("未登录"); return false; } else { if (t.data.is_collect_load) return false; t.data.is_collect_load = 1; if (t.data.is_collect == 1) { //删除收藏 i.delete("/api/weshop/goodscollect/del/" + o.stoid + "/" + t.data.collect_id, { success: function (e) { t.data.is_collect_load = 0; if (e.data.code == 0) { t.setData({ is_collect: 0, collect_id: 0, }); } } }); } else { var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; var d = { goods_id: t.data.data.goods_id, user_id: s.globalData.user_id, store_id: o.stoid, add_time: timestamp, }; //加入收藏夹就是导购的ID if (getApp().globalData.guide_id) { d.guide_id = getApp().globalData.guide_id; d.guide_type = 2; } if(getApp().globalData.groupchat_id){ d.groupchat_id = getApp().globalData.groupchat_id; } i.post("/api/weshop/goodscollect/save", { //添加收藏 data: d, success: function (e) { t.data.is_collect_load = 0; if (e.data.code == 0) { t.setData({ is_collect: 1, collect_id: e.data.data.collect_id, }); } } }); } } }, //---------联系客服------------ contactService: function () { getApp().com_call(this); }, // 获取客服电话 getTel() { return new Promise((resolve, reject) => { s.getConfig(function (t) { if (t.store_tel == undefined) { getApp().request.get("/api/weshop/store/get/" + os.stoid, { isShowLoading: 1, data: {}, success: function (rs) { getApp().globalData.config = rs.data.data; if (rs.data.data.store_tel == null && rs.data.data.store_tel == undefined) { getApp().my_warnning("商家未设置电话", 0, th); return false; } self.setData({ store_tel: rs.data.data.store_tel, }); // s.confirmBox("请联系客服:" + rs.data.data.store_tel); } }) } else { self.setData({ store_tel: t.store_tel, }); // s.confirmBox("请联系客服:" + t.store_tel); }; resolve(); }); }); }, //-------获取购物车数量---------- requestCardNum: function () { var t = this; getApp().request.get("/api/weshop/cart/page", { data: { store_id: o.stoid, user_id: s.globalData.user_id, state: 0, is_gift: 0 }, success: function (e) { var num = 0; for (var i = 0; i < e.data.data.pageData.length; i++) { num += e.data.data.pageData[i].goods_num; } //-- 读取服务卡的数量 -- getApp().promiseGet("/api/weshop/cartService/page", { data: { store_id: s.globalData.setting.stoid, user_id: s.globalData.user_id, } }).then(res => { for (var i = 0; i < res.data.data.pageData.length; i++) { num += res.data.data.pageData[i].goods_num; } t.setData({ cartGoodsNum: num }); }) } }); }, previewCommentImgs: function (t) { var e = this.data.comments[t.currentTarget.dataset.cidx].img; var b = e.slice() for (var i in b) { b[i] = this.data.iurl + e[i]; } this.data.show_prew_img = 1; getApp().pre_img2(b,t); }, previewCommentImgs_w: function (t) { var e = this.data.comments[t.currentTarget.dataset.cidx].weapp_img; var b = e.slice() for (var i in b) { b[i] = this.data.iurl + e[i]; } this.data.show_prew_img = 1; getApp().pre_img2(b,t); }, previewGoodsCommentImgs: function (t) { var e = this, a = this.data.data.comment[t.currentTarget.dataset.cidx].img; getApp().globalData.no_clear=1; a = a.map(function (t) { return e.data.url + t; }), getApp().pre_img2(a,t); this.data.show_prew_img = 1; }, closePromModal: function () { this.setData({ openPromModal: !1 }); }, openPromModal: function () { this.setData({ openPromModal: !0 }); }, //--点击分享事件--- onShareAppMessage: function (t) { getApp().globalData.no_clear=1; // var th = this; // var price = th.data.sele_g.shop_price; // if (th.data.prom_act) { // price = th.data.prom_act.price; // } // var title = th.data.sele_g.goods_name; // var img = th.data.sele_g.original_img; // if (th.data.prom_type == 6 || th.data.prom_type == 1 || th.data.prom_type == 4) { // title = th.data.prom_act.share_title; // if (!title) title = th.data.prom_act.title; // if (th.data.prom_type == 4) title = th.data.prom_act.name; // if (th.data.prom_act.share_imgurl) // img = th.data.iurl + th.data.prom_act.share_imgurl; // } // var url = "/pages/goods/goodsInfo/goodsInfo?goods_id=" // + th.data.sele_g.goods_id+"&prom_type="+th.data.sele_g.prom_type+"&prom_id="+th.data.sele_g.prom_id; // if (getApp().globalData.user_id) { // url += "&first_leader=" + getApp().globalData.user_id; // } // //-- 如果房间分享,且不是会员分享的 -- // if (getApp().globalData.room_id && // th.data.sele_g.goods_id == getApp().globalData.room_goods_id && // !getApp().globalData.room_user_share // ) { // url += "&room_id=" + getApp().globalData.room_id + "&room_user_share=1"; // } // var ob = { // title: price + "元 " + title, // path: url, // imageUrl: img, // }; // if (th.data.prom_type == 6) { // title += '\n' + th.data.prom_act.share_remark; // ob.title = title; // ob.desc = th.data.prom_act.share_remark; // } // //如果是积分购的时候 // if (th.data.prom_type == 4) { // var name = th.data.prom_act.name; // //-- 积分购的 -- // var pri0 = th.data.prom_act.addmoney; // var integral = th.data.prom_act.integral; // var text = ""; // if (integral) { text = integral + "积分"; } // if (pri0 && integral) { text += "+"; } // if (pri0) { text += "¥" + pri0; } // ob.title = text + " " + name; // } // var title = th.data.sele_g.goods_name; // var img = th.data.sele_g.original_img; // var url = `packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=${th.data.sele_g.goods_id}&prom_type=9&group_id=${th.data.group_id}`; //当前页面url // if (getApp().globalData.user_id) { // url += "&first_leader=" + getApp().globalData.user_id; // } // console.log(url) // var ob = { // title: price + "元 " + title, // path: url, // imageUrl: img, // }; // return ob; var pagePath = `packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=${this.data.sele_g.goods_id}&prom_type=9&group_id=${this.data.group_id}`; //当前页面url // console.log('pagePath=====xxxxxx>', pagePath); var imgPath = this.data.iurl + this.data.luckGoInfo.original_img; if (pagePath.indexOf('/') != 0) { pagePath = '/' + pagePath; } if(getApp().globalData.user_id){ if(pagePath.indexOf("?")>0){ pagePath+="&first_leader="+getApp().globalData.user_id; }else{ pagePath+="?first_leader="+getApp().globalData.user_id; } } //群id分享 if (getApp().globalData.groupchat_id) { pagePath+="&groupchat_id="+getApp().globalData.groupchat_id } return { title: "邀您一起参加幸运购", path: pagePath, imageUrl: imgPath, } }, //-----图片失败,默认图片----- bind_bnerr: function (e) { var _errImg = e.target.dataset.errorimg; var _errObj = {}; _errObj[_errImg] = this.data.iurl + "/miniapp/images/default_g_img.gif"; this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; }, //-----图片失败,默认图片----- bind_bnerr2: function (e) { var _errImg = e.target.dataset.errorimg; var _errObj = {}; _errObj[_errImg] = this.data.iurl + "/miniapp/images/hui_hear_pic.png" this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; }, //----------装载同一条形码的商品---------- async get_sku(stoid, gd, g_id, is_normal, func) { console.log('get_sku'); var tt = this, arrdata = null; var now = ut.gettimestamp(); await getApp().request.promiseGet("/api/weshop/goods/page", { data: { store_id: o.stoid, sku: gd.sku, more_spec: gd.more_spec, isonsale: 1, is_on_sale: 1, pageSize: 500, orderField: 'gg_ordid,goods_spec,sort' } }).then(res => { var e = res; if (e.data.code == 0) arrdata = e.data.data.pageData; }) if (!arrdata) return false; var arrsku = new Array(); var gitem = null; var gb = 1, gg = ""; for (var i = 0; i < arrdata.length; i++) { var goodsinfo = arrdata[i], prom = null; if (goodsinfo.goods_id != g_id) { switch (goodsinfo.prom_type) { case 1: await getApp().request.promiseGet("/api/ms/flash_sale/get/" + os.stoid + "/" + goodsinfo.prom_id, { }).then(res => { if (res.data.code == 0) prom = res.data.data; }) break; case 6: await getApp().request.promiseGet("/api/weshop/teamlist/get/" + os.stoid + "/" + goodsinfo.prom_id, { }).then(res => { console.log(res); if (res.data.code == 0) prom = res.data.data; }) break; case 2: await getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, { }).then(res => { if (res.data.code == 0) prom = res.data.data; }) break; case 4: await getApp().request.promiseGet("/api/weshop/integralbuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, { }).then(res => { if (res.data.code == 0) prom = res.data.data; }) break case 8: continue; case 8: continue; } }else{ //只有是普通商品购买的时候,才要给商品赋值指定门店 if (is_normal && goodsinfo.pick_group_ids) { goodsinfo.pickup_ids = goodsinfo.pick_up_lists; } } //---如果有活动,不算在一起--- if (prom) { if (goodsinfo.prom_type == 1 || goodsinfo.prom_type == 6) { console.log(prom); if (prom.is_end == 0 && prom.end_time > now && prom.start_time < now) continue; } else { continue; } } var item = arrdata[i], gg = ""; if (goodsinfo.goods_id != g_id && goodsinfo.pick_group_ids ) { item.pickup_ids= goodsinfo.pick_up_lists; } if (item.goods_spec == "null" || item.goods_spec == null) item.goods_spec = ""; if (item.goods_color == "null" || item.goods_color == null) item.goods_color = ""; if (item.goods_spec != "" && item.goods_color != "") { gg = item.goods_spec + "/" + item.goods_color; } else if (item.goods_spec != "" || item.goods_color != "") { gg = item.goods_spec + item.goods_color; } else { gg = "规格" + gb; gb++; } item.gg = gg; if (item.spec_img) item.original_img = os.imghost + item.spec_img; else item.original_img = os.imghost + item.original_img; if (item.goods_id == g_id) { gitem = item; } else { arrsku.push(item); } } //-----------排列在最前面------------- arrsku.splice(0, 0, gitem); if (is_normal == 1) { tt.setData({ sku_g_pt: arrsku, sele_g: gitem }); func(); } else { tt.setData({ sku_g: arrsku, sele_g: gitem }); } }, //-----------选择属性的按钮事件---------- sele_spec: function (e) { //防止重复点击 if(this.data.sp_seleing){ return false; } this.setData({sp_seleing:1}) var that = this, ee = this, th = this; var gid = e.currentTarget.dataset.gid; var nor = e.currentTarget.dataset.nor; //在切换规格的时候,指定门店不匹配的状态要清理 if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}'){ th.data.def_pick_store.is_no_dis_nor=0; that.setData({ def_pick_store: th.data.def_pick_store }) } var sku_g = this.data.sku_g; if (nor) { sku_g = this.data.sku_g_pt; } var item = null; for (var i in sku_g) { if (sku_g[i].goods_id == gid) { item = sku_g[i]; break } } if (item) this.setData({ sele_g: item, gid: gid }); this.get_sto(that.data.is_normal,()=>{ that.sele_spec_next(gid,item) }); }, sele_spec_next(gid,item){ var that = this; that.check_is_youhui(gid, that.data.is_normal); //默认门店要拿下门店库存 if (!getApp().is_virtual(item) && !item.whsle_id && that.data.sales_rules >= 2 && that.data.def_pick_store) { var lock = 0, plist = null; // //先读取门店的lock,采用链式写法,少用await // getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { // data: { store_id: os.stoid, wareId: ee.data.sele_g.goods_id, storageId: that.data.def_pick_store.pickup_id, pageSize: 1000 } // }).then(res => { // if (res.data.code == 0 && res.data.data.total > 0) { // for (var i in res.data.data.pageData) // lock += res.data.data.pageData[i].outQty // } // //---通过接口获取门店的线下库存信息-- // return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { // data: { storageNos: that.data.def_pick_store.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid } // }) // }).then(res => { // if (res.data.code == 0 && res.data.data.total > 0) { // plist = res.data.data.pageData[0]; // } // if (plist && plist.CanOutQty - lock > 0) { // that.data.def_pick_store.CanOutQty = plist.CanOutQty - lock; // } else { // that.data.def_pick_store.CanOutQty = 0; // } // //--给门店赋值线下库存-- // th.setData({ def_pick_store: that.data.def_pick_store }); // }) that.check_CanOutQty(that.data.sele_g, that.data.def_pick_store, function (CanOutQty) { that.data.def_pick_store.CanOutQty = CanOutQty; //--给门店赋值线下库存-- that.setData({ def_pick_store: that.data.def_pick_store }); }) } that.sele_spec_chech_activity(); }, //选择了不同的规格的时候要判断是不是有活动正在进行中 async sele_spec_chech_activity() { //---如果是活动的时候--- var prom = null, goodsinfo = this.data.sele_g, th = this; var user_id = getApp().globalData.user_id; if (!user_id) user_id = 0; if (goodsinfo.prom_type == 1) { await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + "/" + user_id + "/" + goodsinfo.prom_id, { }).then(res => { if (res.data.code == 0) { prom = res.data.data; prom.price = prom.user_price; } }) } if (goodsinfo.prom_type == 6) { await getApp().request.promiseGet("/api/weshop/teamlist/get/" + os.stoid + "/" + goodsinfo.prom_id, { }).then(res => { if (res.data.code == 0) { prom = res.data.data; } }) } if (goodsinfo.prom_type == 4) { await getApp().request.promiseGet("/api/weshop/integralbuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, { }).then(res => { if (res.data.code == 0) { prom = res.data.data; } }) } //----------如果有活动,并且在进行中,就不计算线下库存--------------- var now = ut.gettimestamp(); if (prom) { var t1 = prom.start_time; var prom_st = 1; if (prom.show_time) { t1 = prom.show_time; if (prom.start_time > now) prom_st = 0; } if (prom.is_end == 0 && prom.end_time > now && t1 < now) { th.setData({ prom_type: goodsinfo.prom_type, prom_price: prom.price, prom_buy_limit: prom.buy_limit, prom_end_time: prom.end_time, prom_start_time: prom.start_time, prom_st: prom_st, prom_act: prom, prom_id: prom.id, sp_seleing:0 }) //却换图片 th.init(goodsinfo.goods_id); var newTime = ut.gettimestamp(); var endTime2 = prom.end_time; var endTime1 = prom.start_time; this.data.is_timer = 0; setTimeout(function () { th.data.is_timer = 1; if (endTime1 > newTime) { th.setData({ prom_time_text: '距秒杀开始还有' }) th.countDown(th.data.luckGoInfo.end_time, 0); } else { if (endTime2 > newTime) { th.setData({ prom_time_text: '距秒杀结束还有', prom_st: 1 }) th.countDown(th.data.luckGoInfo.end_time); } } }, 1000) return false; } } //---设置普通商品--- th.setData({ prom_type: 0, prom_price: null, prom_buy_limit: null, prom_end_time: null, prom_start_time: null, prom_st: null, sp_seleing:0 }) }, //---------拿出门店分类和门店------------ get_sto(e,func) { var th = this, that = this; var is_normal = e; if (e == 1) { th.setData({ is_normal: 1 }) } else { th.setData({ is_normal: 0 }) } th.data.get_sto_ing=1; var timer_get = setInterval(function () { if (th.data.is_get_local_ok == 0) return false; if (!th.data.fir_def_store) return false; var dd = null, i = getApp().request; if (!th.data.sele_g){th.data.get_sto_ing=0; return false;} var g_distr_type = th.data.sele_g.distr_type; if (g_distr_type != 0) { dd = { store_id: o.stoid, distr_type: g_distr_type, isstop: 0, is_pos: 1, pageSize: 2000 } } else { dd = { store_id: o.stoid, isstop: 0, is_pos: 1, pageSize: 2000 } } //如果有距离的话 if (th.data.lat != null) { dd.lat = th.data.lat; dd.lon = th.data.lon; } clearInterval(timer_get); //如果会员是有默认的门店话 if (!th.data.def_pick_store && th.data.fir_def_store) { th.setData({ def_pick_store: th.data.fir_def_store }); } wx.showLoading({ title: '加载中.' }); //----------获取门店---------------- getApp().request.promiseGet("/api/weshop/pickup/list", { data: dd, }).then(res => { var e = res; if (e.data.code == 0 && e.data.data && e.data.data.pageData && e.data.data.pageData.length > 0) { //-- 如果有指定门店的时候 -- if(th.data.sele_g.pickup_ids && th.data.is_normal){ var ok_arr=[]; for (let i in e.data.data.pageData) { let ite = e.data.data.pageData[i]; //-- 查找一下门店有没有在 -- var idx=th.data.sele_g.pickup_ids.findIndex(function (e){ return e.pickup_id==ite.pickup_id; }) if(idx>-1){ ok_arr.push(ite) } } //判断会员的默认的门店是不是匹配指定的门店 if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}'){ //-- 查找一下门店有没有在 -- var idx1=th.data.sele_g.pickup_ids.findIndex(function (e){ return e.pickup_id==th.data.def_pick_store.pickup_id; }) if(idx1<0){ th.data.def_pick_store.is_no_dis_nor=1; that.setData({ def_pick_store: th.data.def_pick_store }) } } e.data.data.pageData=ok_arr; //数组重新赋值 e.data.data.total=ok_arr.length; //数组的长度 } var his_cate_num = 0; for (let i in e.data.data.pageData) { let item = e.data.data.pageData[i]; if (item.category_id > 0) { his_cate_num = 1; } if(getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2){ e.data.data.pageData[i].CanOutQty=100000; } } e.his_cate_num = his_cate_num; if(th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}' && getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2) { th.setData({'def_pick_store.CanOutQty':100000}) } //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店 if (dd.lat && (!th.data.def_pick_store || JSON.stringify(th.data.def_pick_store) == '{}') && th.data.bconfig && th.data.bconfig.is_sort_storage) { th.setData({ def_pick_store: e.data.data.pageData[0], sto_sele_name: e.data.data.pageData[0].pickup_name, sto_sele_id: e.data.data.pageData[0].pickup_id, sto_sele_distr: e.data.data.pageData[0].distr_type }); th.data.fir_def_store = e.data.data.pageData[0]; } //-- 如果有默认选择门店的时候,要把默认门店放在第一位,修改不要配送方式的判断 -- if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}') { for (var k = 0; k < e.data.data.pageData.length; k++) { if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) { e.data.data.pageData.splice(k, 1); //删除 break; } } e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 } th.setData({ all_pick_list: e.data.data.pageData }); //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购-- if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ([1,2,4,6,8,9].indexOf(th.data.prom_type)== -1 || is_normal == 1)) { setTimeout(function () { th.deal_pickup_dline(e); }, 800) } else { setTimeout(function () { th.deal_pickup(e); //--普通门店排版-- }, 800) } if(func) func(); } },err=>{ th.data.get_sto_ing=0; ut.m_toast('网络繁忙,请稍后重试'); wx.hideLoading(); }) }, 200) }, //获取搜索门店输入的值 input_store: function(e) { this.setData({ keyword: e.detail.value }) }, //搜索门店 searchfn(){ let choice_sort_store = this.data.choice_sort_store if (choice_sort_store==0) { //全局搜索 let all_pick_list = this.data.all_pick_list let def_pickpu_list = this.data.def_pickpu_list let keyword = this.data.keyword if (keyword) { let arr=all_pick_list.filter( item =>{ let i = item.pickup_name.indexOf(keyword) if (i > -1) { return true }else{ return false } }) if (arr && arr.length>0) { if(this.data.is_show_sto_cat==1){ this.setData({ def_pickpu_list:arr }) }else{ this.setData({ only_pk:arr }) } }else{ wx.showToast({ title: '没有搜索到门店', icon: 'none', duration: 2000 }) } }else{ if (this.data.is_show_sto_cat==1) { this.setData({ def_pickpu_list:all_pick_list.slice(0,10) }) }else{ this.setData({ only_pk:all_pick_list }) } } }else{ //分类下搜索 let sec_i=this.data.sec_i let all_sto = this.data.all_sto let old_all_sto = this.data.old_all_sto if (!old_all_sto) { this.setData({ old_all_sto:JSON.parse(JSON.stringify(all_sto)) }) } let sec_sto= this.data.sec_sto let sec_arr = this.data.old_all_sto[sec_i].s_arr let keyword = this.data.keyword let text='sec_sto.s_arr' if (keyword) { let arr=sec_arr.filter( item =>{ let i = item.pickup_name.indexOf(keyword) if (i > -1) { return true }else{ return false } }) if (arr && arr.length>0) { this.setData({ [text]:arr }) }else{ wx.showToast({ title: '没有搜索到门店', icon: 'none', duration: 2000 }) } }else{ if(this.data.old_all_sto){ this.setData({ [text]: this.data.old_all_sto[sec_i].s_arr }) }else{ this.setData({ [text]: all_sto[sec_i].s_arr }) } } } }, //-- 处理首页的显示门店 --- deal_front_pk(){ var th=this; if(this.data.fir_set_sto==1){ this.data.fir_set_sto=0; var cp_data=null if(th.data.def_pick_store && th.data.def_pick_store.pickup_id){ cp_data=JSON.parse(JSON.stringify(th.data.def_pick_store)); } th.setData({ front_pick:cp_data, front_only_pk:th.data.only_pk, front_def_pickpu_list:th.data.def_pickpu_list, front_pickpu_listt:th.data.pickpu_list, front_all_sto:th.data.all_sto, front_is_show_sto_cat:th.data.is_show_sto_cat, }) } this.data.get_sto_ing=0; }, //------------处理门店--------------- deal_pickup(e) { var th = this; if (!th.data.sele_g){th.data.get_sto_ing=0;return false} var g_distr_type = th.data.sele_g.distr_type; wx.hideLoading(); //单总量超出10个的时候,同时门店有分类 if (e.data.data.total > 10 && e.his_cate_num) { getApp().request.get("/api/weshop/storagecategory/page", { data: { store_id: o.stoid, is_show: 1, pageSize: 1000, orderField: "sort", orderType: 'asc', }, success: function (ee) { if (ee.data.code == 0) { if (ee.data.data && ee.data.data.pageData && ee.data.data.pageData.length > 0) { var def_arr = new Array(); var ishas = 0; //-- 开始就看5个门店 -- for (var k = 0; k < 10; k++) { if (k == e.data.data.pageData.length) break; def_arr.push(e.data.data.pageData[k]); } th.setData({ def_pickpu_list: def_arr, pickpu_list: ee.data.data.pageData }); var sto_cate = ee.data.data.pageData; var sto_arr = e.data.data.pageData; var newarr = new Array(); var qita = new Array(); //----要进行门店分组-------- for (var i = 0; i < sto_arr.length; i++) { //找一下这个门店有没有在分类数组内 var find2 = 0, find2name = "", sort = 0; for (var m = 0; m < sto_cate.length; m++) { if (sto_arr[i].category_id == sto_cate[m].cat_id) { find2 = sto_cate[m].cat_id; find2name = sto_cate[m].cat_name; sort = sto_cate[m].sort; break; } } if (newarr.length > 0) { var find = 0; //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 if (find2 != 0) { for (var ii = 0; ii < newarr.length; ii++) { if (sto_arr[i].category_id == newarr[ii].cat_id) { newarr[ii].s_arr.push(sto_arr[i]); find = 1; break; } } if (find == 0) { var arr0 = new Array(); arr0.push(sto_arr[i]); var item = { cat_id: find2, name: find2name, sort: sort, s_arr: arr0 }; newarr.push(item); } } else { qita.push(sto_arr[i]); } } else { //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 if (find2 != 0) { var arr0 = new Array(); arr0.push(sto_arr[i]); var item = { cat_id: find2, name: find2name, sort: sort, s_arr: arr0 }; newarr.push(item); } else { qita.push(sto_arr[i]); } } } //门店分类要排序下 function compare(property) { return function (a, b) { var value1 = a[property]; var value2 = b[property]; return value1 - value2; } } if (newarr.length > 0) newarr.sort(compare("sort")); //----安排其他的分类----- if (qita.length > 0) { var item = { cat_id: -1, name: "其他", s_arr: qita }; newarr.push(item); } th.setData({ is_show_sto_cat: 1, all_sto: newarr }); } else { th.setData({ is_show_sto_cat: -1, only_pk: e.data.data.pageData }); //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ if (!th.data.def_pick_store) { th.setData({ def_pick_store: e.data.data.pageData[0] }) } } //-- 设置商品详情页面的门店显示情况 --- th.deal_front_pk(); } else { th.setData({ is_show_sto_cat: -1, only_pk: e.data.data.pageData }); //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ if (!th.data.def_pick_store) { th.setData({ def_pick_store: e.data.data.pageData[0] }) } //-- 设置商品详情页面的门店显示情况 --- th.deal_front_pk(); } } }); } else { th.setData({ is_show_sto_cat: 0, only_pk: e.data.data.pageData }); //-----如果没有默认门店,要取第一个门店作为默认店------ if (!th.data.def_pick_store && th.data.bconfig && th.data.bconfig.is_sort_storage) { th.setData({ def_pick_store: e.data.data.pageData[0], sto_sele_name: e.data.data.pageData[0].pickup_name, sto_sele_id: e.data.data.pageData[0].pickup_id, sto_sele_distr: e.data.data.pageData[0].distr_type }) } //-- 设置商品详情页面的门店显示情况 --- th.deal_front_pk(); } }, //------------处理线下门店库存-------- deal_pickup_dline(e) { var pkno = [], th = this; if (!th.data.sele_g){th.data.get_sto_ing=0;return false;} if (this.data.def_pick_store) { pkno.push(this.data.def_pick_store.pickup_no); } for (var i in e.data.data.pageData) { var item = e.data.data.pageData[i]; if (pkno.indexOf(item.pickup_no) < 0) pkno.push(item.pickup_no); } pkno.sort(); var pkno_str = pkno.join(","); var o_plist = e.data.data.pageData; var new_list = []; var is_find_def_store = 0; var g_distr_type = th.data.sele_g.distr_type; var lock = []; var lock_rq = { store_id: os.stoid, wareId: th.data.sele_g.goods_id, pageSize: 1000 }; if (th.data.sales_rules == 3) { lock_rq.appoint_pick_keyid = th.data.appoint_pick_keyid; } //先读取门店的lock,采用链式写法,少用await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { data: lock_rq }).then(res => { if (res.data.code == 0 && res.data.data.total > 0) { lock = res.data.data.pageData } var sto_rq = { wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid, pageSize: 2000 } if (th.data.sales_rules == 3) { sto_rq.storageIds = th.data.appoint_pick_keyid; } else { sto_rq.storageNos = pkno_str; } //---通过接口获取门店的线下库存信息-- return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { data: sto_rq }) }).then(res => { wx.hideLoading(); if (res.data.code == 0) { if (res.data.data.pageData && res.data.data.pageData.length > 0) { var plist = res.data.data.pageData; var def_pick_store = th.data.def_pick_store; if (th.data.sales_rules == 3) { var lock_num = 0; var Qty = 0; //-- 计算锁住的库存 -- for (var i in lock) lock_num += lock[i].outQty; Qty = plist[0].CanOutQty - lock_num; if (Qty > 0) { for (var kk in o_plist) { o_plist[kk].CanOutQty = Qty; new_list.push(o_plist[kk]); } if (th.data.fir_def_store && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || (th.data.def_pick_store && th.data.def_pick_store.distr_type == g_distr_type))) { th.data.fir_def_store.Qty; if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id) th.setData({ def_pick_store: th.data.fir_def_store }) is_find_def_store = 1; } //-- 如果库存为0就要重新赋值 -- def_pick_store.CanOutQty=Qty; th.setData({ def_pick_store }) } else { th.data.get_sto_ing=0; th.setData({ all_sto: null, only_pk: null, def_pickpu_list: null }); return false; } } else { //以原来的数组为外循环,保证距离的顺序 for (var kk in o_plist) { for (var ii in plist) { //线下的门店小心 var n_item = plist[ii]; if (n_item.StorageNo == o_plist[kk].pickup_no) { //拿到锁库的数量 var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock); //可出库数大于预出库库存的数量,可以判断为有库存 if (n_item.CanOutQty > lock_num) { o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num; new_list.push(o_plist[kk]); //--如果找到默认门店,同时也应该判断配送方式对不对-- if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num; if (def_pick_store.pickup_id == th.data.fir_def_store.pickup_id) th.setData({def_pick_store: th.data.fir_def_store}) is_find_def_store = 1; } //-- 如果库存为0就要重新赋值 -- if(n_item.StorageNo ==def_pick_store.pickup_no) { def_pick_store.CanOutQty= o_plist[kk].CanOutQty; th.setData({ def_pick_store }) } } break; } } } } //数据组装下 var em = {}; em.data = {}; em.data.data = {}; em.data.data.total = new_list.length; em.data.data.pageData = new_list; em.data.data.pageData = new_list; //--如果找到默认门店,同时也应该判断配送方式对不对-- if (th.data.fir_def_store && !is_find_def_store && th.data.fir_def_store.pickup_id && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { th.data.fir_def_store.CanOutQty = 0; //--当选择的门店是客户默认的门店的时候-- if (th.data.def_pick_store && th.data.fir_def_store.pickup_id == th.data.def_pick_store.pickup_id) { th.setData({ def_pick_store: th.data.fir_def_store }); em.data.data.pageData.unshift(th.data.def_pick_store); } else { em.data.data.pageData.splice(1, 0, th.data.fir_def_store); } } //---把数组组装进去--- th.deal_pickup(em); } else { th.data.get_sto_ing=0; th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null }) } } else { th.data.get_sto_ing=0; th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null }) } }) }, find_lock_num(pick_id, lock) { var lock_num = 0; if (!lock) return 0; if (lock.length < 0) return 0; for (var i in lock) { if (pick_id == lock[i].pickupId) { lock_num += lock[i].outQty; } } return lock_num; }, //----------取货门店被点击的效果------ getmendian: function (t) { this.setData({ ismend: 1, }); }, //----------隐藏取货门店,选取门店---------- hidemend: function (e) { var pid = e.target.dataset.p_id; var pname = e.target.dataset.p_name; var p_distr_t = e.target.dataset.p_dis; this.setData({ ismend: 0, is_sec_mend: 0, sto_sele_id: pid, sto_sele_name: pname, sto_sele_distr: p_distr_t }); }, //------显示取货2级---------- show_sec: function (t) { var index = t.target.dataset.index; var item = this.data.all_sto[index]; this.setData({ is_sec_mend: 1, sec_sto: item }); }, //------隐藏取货门店2级---- hide_sec_mend: function () { this.setData({ is_sec_mend: 0, }); }, //评论的调用 requestComments_new: async function () { var e = this, th = e, ee = e; var tp = e.data.activeCategoryId3; var t = '/api/weshop/comment/pageComment?page=' + e.data.c_curr_p; wx.showLoading(); var req_where = { store_id: o.stoid, pageSize: 5, is_show: 1, parent_id: 0, goods_id: th.data.gid, commenttype: tp, } if (getApp().globalData.userInfo) { req_where.userId = getApp().globalData.user_id; } var rs_data = null; await getApp().request.promiseGet(t, { data: req_where }).then(res => { var tot = res.data.data.total; e.data.c_curr_p++; e.setData({ com_num: tot, //已经有加载 }); if (res.data.data && res.data.data.pageData && res.data.data.pageData.length > 0) { rs_data = res.data.data.pageData; } else { th.setData({ comments_no_more: 1, auto: 1 }); } }) if (rs_data) { //var cda = th.data.comments; var cda = rs_data, com_data = th.data.comments; for (var ind in cda) { var ep = cda[ind]; if (cda[ind].head_pic == '') { cda[ind].head_pic = th.data.iurl + "/miniapp/images/hui_hear_pic.png"; } if (ep.weapp_img != "" && ut.isString(ep.weapp_img)) { cda[ind].weapp_img = JSON.parse(ep.weapp_img); } if (ep.img != "" && ut.isString(ep.img)) { cda[ind].img = ut.unserialize(ep.img); } //--测量多有字的宽带,计算有多少行-- var widh = ut.measureText(ep.content, 30); var lines = widh / 712; cda[ind].seeMore = false; if (lines > 3) cda[ind].seeMore = true; await getApp().request.promiseGet("/api/weshop/comment/pageComment", { data: { store_id: o.stoid, parent_id: ep.comment_id } }).then(res => { if (res.data.data.pageData && res.data.data.pageData.length > 0) { cda[ind].replay_list = res.data.data.pageData; } }) } if (!com_data) com_data = cda; else com_data = com_data.concat(cda); th.setData({ comments: com_data }); } th.setData({ get_c: 1 }); wx.hideLoading(); }, //加载更多是靠这个函数 onReachBottom: function () { if (this.data.activeCategoryId == 2) { if (!this.data.comments_no_more) this.requestComments_new(); } var goods_list = this.selectComponent("#goods_list"); //组件的id if (goods_list) goods_list.get_list(); }, //--------检查是否活动,活动是否开始,或者是否结束------- async check_prom(gid, prom_type, prom_id) { var ee = this, th = ee; var user_id = getApp().globalData.user_id; if (!user_id) user_id = 0; if (prom_type == 3 || prom_type == 0 || prom_type == 2 || prom_type == 5 || prom_type == 7) { this.setData({ prom_type: 0, isshow: 1, }); return false; } if (prom_type == 1 && prom_id == 0) { this.setData({ prom_type: 0, isshow: 1, }); //获取门店 this.get_sto(); this.get_sku(o.stoid, this.data.data, gid); this.check_has_flash(); return false; } //if (prom_type != 3 && prom_type!=0){ //---判断秒杀---- if (prom_type == 1 && prom_id > 0) { //-------判断活动是否抢光--------- await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/" + prom_type + "/" + prom_id, { 1: 1 }).then(res => { var em = res; if (em.data.code == 0) { if (em.data.data <= 0) ee.setData({ prom_r_null: 1 }); //拿取价格并且判断时间-- getApp().request.get("/api/ms/flash_sale/getNew/" + os.stoid + "/" + user_id + "/" + prom_id, { success: function (t) { if (t.data.code != 0) { ee.setData({ prom_type: 0, isshow: 1, }); ee.get_sku(os.stoid, ee.data.data, gid); return false; } //----已经结束----- if (t.data.data.is_end == 1) { ee.setData({ prom_type: 0, isshow: 1, }); ee.get_sku(os.stoid, ee.data.data, gid); ee.get_sto(); return false; } //----已经过期----- var now = ut.gettimestamp(); if (t.data.data.end_time < now) { ee.setData({ prom_type: 0, isshow: 1, }); ee.get_sku(os.stoid, ee.data.data, gid); return false; } /*-- 还没有开始预热的也不显示 --*/ if (t.data.data.show_time > now) { ee.setData({ prom_type: 0, isshow: 1, }); ee.get_sku(os.stoid, ee.data.data, gid); ee.get_sto(); return false; } var t_gd = ee.data.data; var prom_end_time = ut.formatTime(t.data.data.end_time, "yyyy-MM-dd hh:mm:ss"); var prom_start_time = ut.formatTime(t.data.data.start_time, "yyyy-MM-dd hh:mm:ss"); ee.setData({ prom_price: t.data.data.user_price, prom_type: 1, prom_id: prom_id, prom_buy_limit: t.data.data.buy_limit, prom_act: t.data.data, prom_end_time: prom_end_time, prom_start_time: prom_start_time, isshow: 1, }); ee.get_sto(); var newTime = ut.gettimestamp(); var endTime2 = t.data.data.end_time; var endTime1 = t.data.data.start_time; if (endTime1 > newTime) { ee.setData({ prom_time_text: '距秒杀开始还有' }) ee.countDown(endTime1, 0); } else { if (endTime2 > newTime) { ee.setData({ prom_time_text: '距秒杀结束还有', prom_st: 1 }) ee.countDown(endTime2); } } //如果是进行中的话 if (endTime1 < newTime) { //-- 获取秒杀活动的多少规格 -- ee.get_more_flahs(function (list) { if (list && list.length > 1) { var n_item = list[0]; var ind = list.findIndex(function (ele) { return ele.goods_id == ee.data.data.goods_id; }) if (ind < 0) return false; if (ind > 0) { n_item = JSON.parse(JSON.stringify(list[ind])); list.splice(ind, 1); list.unshift(n_item); } ee.data.sele_g.viplimited = n_item.viplimited; ee.data.data.viplimited = n_item.viplimited; var gb = 1; //-- 显示多规格 -- for (let i in list) { let item = list[i]; var gg = ""; if (item.goods_spec == "null" || item.goods_spec == null) item.goods_spec = ""; if (item.goods_color == "null" || item.goods_color == null) item.goods_color = ""; if (item.goods_spec != "" && item.goods_color != "") { gg = item.goods_spec + "/" + item.goods_color; } else if (item.goods_spec != "" || item.goods_color != "") { gg = item.goods_spec + item.goods_color; } else { gg = "规格" + gb; gb++; } item.gg = gg; item.prom_id = item.prom_id; item.prom_type = 1; } ee.setData({ sku_g: list, }); } }) } } }); } }) } if(prom_type==9){ ee.get_sto(); this.setData({ isshow: 1, }); } // if (prom_type == 4) { // //th.setData({is_integral_normal:1}); // var rdata = { // store_id: o.stoid, stype: 1, stypeup: 1, goods_id: gid // } // var integrals = 0; // var get_datas = { // user_id: getApp().globalData.user_id, store_id: o.stoid, // }; // await getApp().request.promiseGet("/api/weshop/users/getAllPoints", { // data: get_datas // }).then(res => { // if (res.data.code == 0) { // integrals = res.data.data.Integral; // } // }) // //获取一下积分活动 // await getApp().request.promiseGet("/api/weshop/integralbuy/pageIntegralBuyGoodsList", { // data: rdata // }).then(res => { // //调用接口有数据的时候 // if (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length > 0) { // var inte_data = res.data.data.pageData[0]; // var can_integral = (parseFloat(integrals) >= parseFloat(inte_data.integral)); // ee.setData({ // prom_price: parseFloat(inte_data.addmoney), // prom_integral: parseFloat(inte_data.integral), // prom_type: 4, // prom_id: inte_data.id, // prom_buy_limit: inte_data.limitvipqty, // prom_act: inte_data, // isshow: 1, // can_integral: can_integral, // is_shopbuy: parseInt(inte_data.is_shopbuy ? inte_data.is_shopbuy : 0) // }); // ee.get_sto(); // } else { // ee.setData({ prom_type: 0, isshow: 1, }); // ee.get_sku(os.stoid, ee.data.data, gid); // ee.get_sto(); // return false; // } // }) // } //---判断拼单---- // if (prom_type == 6) { // //-------判断活动是否抢光--------- // await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/" + prom_type + "/" + prom_id, { // 1: 1 // }).then(res => { // console.log(res,3114); // var em = res; // if (em.data.code == 0) { // if (em.data.data <= 0) ee.setData({ // prom_r_null: 1 // }); // //拿取价格并且判断时间-- // getApp().request.get("/api/weshop/teamlist/get/" + // os.stoid + "/" + prom_id, { // success: function (t) { // console.log(t,3124); // if (t.data.code != 0) { // ee.setData({ // prom_type: 0, // isshow: 1, // }); // ee.get_sku(os.stoid, ee.data.data, gid); // ee.get_sto(); // return false; // } // //----已经结束----- // if (t.data.data.is_end == 1) { // ee.setData({ // prom_type: 0, // isshow: 1, // }); // ee.get_sku(os.stoid, ee.data.data, gid); // return false; // } // //----已经过期----- // var now = ut.gettimestamp(); // if (t.data.data.end_time < now) { // ee.setData({ // prom_type: 0, // isshow: 1, // }); // ee.get_sku(os.stoid, ee.data.data, gid); // ee.get_sto(); // return false; // } // /*-- 还没有开始预热的也不显示 --*/ // if (t.data.data.show_time > now) { // ee.setData({ // prom_type: 0, // isshow: 1, // }); // ee.get_sku(os.stoid, ee.data.data, gid); // ee.get_sto(); // return false; // } // /*-- 判断拼单是否启用 --*/ // if (!t.data.data.is_show) { // console.log('没启用'); // wx.setNavigationBarTitle({ // title: '系统提示', // }); // wx.showToast({ // title:'此商品暂时没有拼单活动', // icon:'none', // success(){ // setTimeout(()=>{ // wx.navigateBack() // },2000) // } // }); // return false // ee.setData({ // prom_type: 0, // isshow: 1, // }); // ee.get_sku(os.stoid, ee.data.data, gid); // ee.get_sto(); // return false; // } // //-------查看自己是不是有买过该团的商品,并还为支付,或者在进行中------- // getApp().request.get("/api/weshop/order/page", { // data: { // pt_prom_id: prom_id, // user_id: oo.user_id, // store_id: os.stoid, // pageSize: 1, // page: 1 // }, // success: function (e) { // if (e.data.code == 0 && e.data.data.pageData.length > 0) { // var odr = e.data.data.pageData[0]; // th.data.buy_order = odr; // if (odr.pt_status == 0 && odr.order_status == 1) { // th.setData({ // user_order_pt_state: 1 // }); // } // if (odr.pt_status == 1 && odr.order_status == 1) { // if (odr.is_zsorder == 4) { // getApp().request.promiseGet("/api/weshop/teamgroup/page/", { // data: { // store_id: os.stoid, // team_id: odr.pt_prom_id, // listno: odr.pt_listno // } // }).then(res => { // var now = ut.gettimestamp(); // if (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length > 0) { // var tgr = res.data.data.pageData[0]; // //如果团的时间已经到了 // if (now >= tgr.kt_end_time) { // th.update_jiti(tgr.id); // } else { // th.setData({ // user_order_pt_state: 2 // }); // } // } // }) // } else { // th.setData({ // user_order_pt_state: 2 // }); // } // } // if (odr.pt_status == 2 && odr.is_zsorder == 4) { // th.setData({ // user_order_pt_state: 3, // }); // th.data.wk_order_id = odr.order_id; // } // } // }, // }); // //----------查看阶梯团------------ // if (t.data.data.ct_rylist != "null" && t.data.data.ct_rylist != "" && t.data.data.ct_rylist != null && t.data.data.ct_rylist != undefined) { // t.data.data.ct_rylist = JSON.parse(t.data.data.ct_rylist); // var max_num = 0; // t.data.data.ct_rylist.forEach(function (val, ind) { // if (parseInt(val.rynum) > max_num) max_num = parseInt(val.rynum); // }) // t.data.data.max_ct_num = max_num; // } // var prom_end_time = ut.formatTime(t.data.data.end_time, "yyyy-MM-dd hh:mm:ss"); // var prom_start_time = ut.formatTime(t.data.data.start_time, "yyyy-MM-dd hh:mm:ss"); // ee.setData({ // prom_price: t.data.data.price, // prom_type: 6, // prom_id: prom_id, // prom_buy_limit: t.data.data.buy_limit, // prom_act: t.data.data, // prom_end_time: prom_end_time, // prom_start_time: prom_start_time, // isshow: 1, // }); // ee.get_sto(); // var newTime = now; // var endTime2 = t.data.data.end_time; // var endTime1 = t.data.data.start_time; // if (endTime1 > newTime) { // ee.setData({ // prom_time_text: '距拼单开始还剩:' // }) // ee.countDown(endTime1, 0); // } else { // if (endTime2 > newTime) { // ee.setData({ // prom_time_text: '距拼单结束还剩:', // prom_st: 1 // }) // ee.countDown(endTime2); // } // } // //-------查看有多少人在开这个团------- // th.get_team_group(prom_id); // } // }); // } // }) // } }, //--获取有多少人在开团-- async get_team_group(prom_id) { var teamgroup = [], th = this, grounp_tatal = 0; //如果活动是开团不是商家团 if (this.data.prom_act.kttype > 1) { var req_data = { store_id: os.stoid, pageSize: 3, page: 1, state: 2, team_id: prom_id, ordernum: 1 }; if (this.data.prom_act.kttype == 3 && this.data.prom_act.max_ct_num) { req_data.max_num = this.data.prom_act.max_ct_num; } //获取活动从表信息team_id await getApp().request.promiseGet("/api/weshop/teamgroup/page", { data: req_data }).then(res => { teamgroup = res.data.data.pageData; grounp_tatal = res.data.data.total; }) //获取订单的总数这个接口不能用 for (i = 0; i < teamgroup.length; i++) { await getApp().request.promiseGet("/api/weshop/order/page", { data: { store_id: os.stoid, pt_status: 1, pt_listno: teamgroup[i].listno } }).then(res => { var order = res.data.data.pageData; teamgroup[i].open_num = order.length; }) await getApp().request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + teamgroup[i].openvipid, {}).then(res => { var user = res.data.data; teamgroup[i].user = user; }) } if (teamgroup.length > 0) { th.setData({ teamgroup: teamgroup, grounp_tatal: grounp_tatal }); th.countDown2(); } } }, //---小于10的格式化函数---- timeFormat(param) { return param < 10 ? '0' + param : param; }, //----倒计时函数----- countDown(time, prom_st) { if (!this.data.is_timer) return false; var th = this; // 获取当前时间,同时得到活动结束时间数组 var endTime = time; var newTime = ut.gettimestamp(); // 对结束时间进行处理渲染到页面 var obj = null; // 如果活动未结束,对时间进行处理 if (endTime - newTime > 0) { var time = (endTime - newTime); // 获取天、时、分、秒 var day = parseInt(time / (60 * 60 * 24)); var hou = parseInt(time % (60 * 60 * 24) / 3600); var min = parseInt(time % (60 * 60 * 24) % 3600 / 60); var sec = parseInt(time % (60 * 60 * 24) % 3600 % 60); obj = { day: this.timeFormat(day), hou: this.timeFormat(hou), min: this.timeFormat(min), sec: this.timeFormat(sec) } // console.log('cd'); } else { obj = { day: '00', hou: '00', min: '00', sec: '00' } th.setData({ djs: obj, isTimeUp: true, }); // console.log('i am here'); return false; } // ---- th.setData({ djs: obj }); // ---- setTimeout(function () { th.countDown(endTime) }, 1000); }, //-------------获取购买数量的总函数---------------- get_buy_num: function (gd, func) { var map = this.data.g_buy_num, th = this, user_id = getApp().globalData.user_id; if (user_id == null) { map.set(gd.goods_id, 0); th.setData({ g_buy_num: map, prom_buy_num: 0, }); "function" == typeof func && func(); return false; } if (map.has(gd.goods_id)) { "function" == typeof func && func(); } else { //----获取商品购买数---- getApp().request.get("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { store_id: os.stoid, user_id: user_id, goods_id: gd.goods_id, isnew:1 }, success: function (t) { if (t.data.code == 0) { var g_buy_num = t.data.data.goodsbuynum; //如果是秒杀的时候 if (th.data.prom_type == 0 && gd.prom_type == 1) { gd.prom_type = 0; } if (gd.prom_type == 1 || gd.prom_type == 2 || gd.prom_type == 4 || gd.prom_type == 6) { //----获取活动购买数---- getApp().request.get("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { store_id: os.stoid, user_id: user_id, goods_id: gd.goods_id, prom_type: gd.prom_type, prom_id: gd.prom_id, isnew:1 }, //-----获取----- success: function (tt) { if (tt.data.code == 0) { map.set(gd.goods_id, g_buy_num); th.setData({ g_buy_num: map, prom_buy_num: tt.data.data.goodsbuynum, }); "function" == typeof func && func(); } } }); } else { map.set(gd.goods_id, g_buy_num); th.setData({ g_buy_num: map }); "function" == typeof func && func(); } } } }); } }, //--拼单推荐的显示--- tj_Click: function (e) { var ind = parseInt(e.target.dataset.ind); this.setData({ is_show_gz: ind }); }, //--------拼团玩法显示详情-------- show_pt_xx: function (e) { this.setData({ pd_xx: 1, }) }, close_pt_xx: function () { this.setData({ pd_xx: 0, }) }, //--点击弹起拼单-- // ind == 1 为普通购买 openSpecModel_pt: function (e) { if(this.data.get_sto_ing) return false; this.setData({ open_ind_store: 9 }); // 判断是否有待支付订单 var aid = this.data.group_id; var switOn = true; s.request.promiseGet('/api/weshop/prom/luckyOrder/page', { data: { store_id: os.stoid, user_id: oo.user_id, aid: aid, pay_status: 0, // 未支付 order_status: 0, // 待支付 pageSize: 1, page: 1 } }).then(res => { if (res.data.code == 0) { if (res.data.data.total > 0) { // 待支付订单页面 wx.showModal({ title: "您已经购买了该商品待支付中", success: function (a) { if (a.confirm) { switOn = false; wx.navigateTo({ url: "/packageC/pages/luckyGo/luckyGo_order/luckyGo_order?order_id=" + res.data.data.pageData[0]['order_id'] }); } } }); } else { //--先判断会员状态-- var user_info = getApp().globalData.userInfo; if (user_info == null || user_info.mobile == undefined || user_info.mobile == '' || user_info.mobile == null) { wx.navigateTo({ url: '/packageE/pages/togoin/togoin', }) return false; }; var th = this; var ind = parseInt(e.currentTarget.dataset.ind); th.setData({def_pick_store: ut.deep_cp(th.data.front_pick)}); //ind == 1是普通购买 if (ind == 1) { //如果拼单的sku data是空的,就要先获取一下 if (th.data.sku_g_pt) { //要同步指定门店 th.set_sele_g(th.data.sku_g_pt); th.get_sto(1); th.setData({ is_normal: ind, openSpecModal_pt: 1 }); } else { th.get_sku(o.stoid, th.data.data, th.data.gid, 1, function () { th.get_sto(1); th.setData({ is_normal: ind, openSpecModal_pt: 1 }); }); th.setData({ is_normal: ind, openSpecModal_pt: 1 }); }; th.check_is_youhui(th.data.gid, 1); } else { // //拼单商品从这里进,先判断有没有买过商品, // getApp().request.get("/api/weshop/order/page", { // data: { // // pt_prom_id: th.data.prom_act.id, // user_id: oo.user_id, // store_id: os.stoid, // pageSize: 1, // page: 1 // }, // success: function (e) { // //--跳转到已经购买的情况-- // if (e.data.data.pageData.length > 0) { // var odr = e.data.data.pageData[0]; // //还未支付 // if (odr.pt_status == 0 && (odr.order_status == 1 || odr.order_status == 0)) { // wx.showModal({ // title: "您已经购买了该商品待支付中", // success: function (a) { // if (a.confirm) { // wx.navigateTo({ // url: "/pages/user/order_detail/order_detail?order_id=" + odr.order_id, // }); // } // } // }); // } else if (odr.pt_status == 1 && odr.order_status == 1) { // if (this.data.is_go_to_team_show) return false; // this.data.is_go_to_team_show = 1; // wx.showLoading(); // /*--- // wx.redirectTo({ // url: "/packageG/pages/team/team_success/team_success?ordersn=" + odr.order_sn, // });--*/ // getApp().goto("/packageG/pages/team/team_success/team_success?ordersn=" + odr.order_sn); // } else { // th.setData({ // is_normal: ind, // openSpecModal_pt: 1 // }); // } // } else { // th.setData({ // is_normal: ind, // openSpecModal_pt: 1 // }); // } // } // }); th.data.prom_type=9; th.get_sto(); th.setData({ is_normal: 0, openSpecModal_pt: 1, goodsInputNum:1 }); } } } }); }, //-----------------拼单生成方法--------------------- addCart_pt: function () { //如果是切换规格的时候,让商品不能提交到确认订单的页面,否则活动会出错,金额也不对 if(this.data.sp_seleing){ return false; } if (this.data.is_normal == 0) { //看一下有没有起购数,如果有起购数,要计算起购数 // var qnum = parseFloat(th.data.prom_act.minbuynum); // if (qnum > 0 && th.data.goodsInputNum < qnum) { // getApp().confirmBox("拼团商品至少要买" + qnum + "件!"); // return false; // } this.addcart_pt_func(); } else { this.addcart_pt_func(); } }, addcart_pt_func: function () { if (oo.user_id == null) { s.my_warnning("还未登录!", 0, this); return; } if(this.data.adding) return false; this.data.adding=1; wx.showLoading({ mask:true }); var e = this, th = e, o = this.data.sele_g; // if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); //----------添加到购物车时,要判断限购数量,-------- e.get_buy_num(o, async function (ee) { //---判断商品是否超出限购--- if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) { wx.hideLoading(); th.data.adding=0; wx.showModal({ title: '提示', content: '超出商品限购' }); var num = th.data.prom_buy_limit - th.data.prom_buy_num; if (num < 0) num = 0; th.setData({goodsInputNum: num}) return false; } } var redis_num = 0 if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) th.setData({ sto_sele_name: "" }); if (th.data.sto_sele_name == ""){ wx.hideLoading(); th.data.adding=0; return s.my_warnning("请选择门店", 0, th); } //--------------此时操作的数据------------ var newd = { goods_id: o.goods_id, goods_num: th.data.goodsInputNum, pick_id: th.data.sto_sele_id, user_id: oo.user_id, store_id: th.data.stoid, goods_price: o.shop_price, goods_name: o.goods_name, goods_sn: o.goods_sn, sku: o.sku, }; //---是不是从收藏夹出来的--- if (th.data.c_guide_id) { newd['guide_id'] = th.data.c_guide_id; newd['guide_type'] = 2; } else { if (getApp().globalData.guide_id) { newd['guide_id'] = getApp().globalData.guide_id; newd['guide_type'] = 0; } } if (getApp().globalData.groupchat_id) { newd['groupchat_id'] = getApp().globalData.groupchat_id; } //让商品带上房间号 if (th.data.sys_switch.is_skuroom_id == 1) { if (th.data.data.goods_id == getApp().globalData.room_goods_id) { newd.room_id = getApp().globalData.room_id; } } else { if (newd.goods_id == getApp().globalData.room_goods_id) { newd.room_id = getApp().globalData.room_id; } } //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------ if (th.data.is_normal == 1) { var conf = th.data.bconfig; if (conf.switch_list && getApp().globalData.userInfo['card_field'] && getApp().globalData.userInfo['card_expiredate']) { var s_list = JSON.parse(conf.switch_list); var now = ut.gettimestamp(); var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/'); var end = new Date(str); end = Date.parse(end) / 1000; //如果后台有开启等级价的功能 if (parseInt(s_list.rank_switch) == 2 && end > now) { var card_price = o[getApp().globalData.userInfo['card_field']]; //如果会员有等级价 if (getApp().globalData.userInfo['card_field'] != undefined && getApp().globalData.userInfo['card_field'] != null && getApp().globalData.userInfo['card_field'] != "" && card_price > 0) { newd.goods_price = card_price; } } } //---如果是线下门店销售的时候--- if (th.data.sales_rules >= 2 && !th.data.sele_g.whsle_id) { var pick = th.get_pick_from_list(th.data.sto_sele_id) th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) { if (CanOutQty) { if (CanOutQty < e.data.goodsInputNum) { wx.hideLoading(); th.data.adding=0; wx.showToast({ title: '库存不足!', icon: 'none', }); return false; } th.by_next_func(newd); } else { wx.hideLoading(); th.data.adding=0; wx.showToast({ title: '库存不足!', icon: 'none', }); return false; } }) } else { if (o.store_count <= 0) { wx.hideLoading(); th.data.adding=0; wx.showToast({ title: '库存已为空!', icon: 'none', }); return false; //return s.my_warnning("库存已为空!", 0, th); } if (o.store_count < e.data.goodsInputNum) { wx.hideLoading(); th.data.adding=0; wx.showToast({ title: '库存不足!', icon: 'none', }); return false; //return s.my_warnning("库存不足!", 0, th); } th.by_next_func(newd); } return false; } //-----如果是秒杀,团购,积分购,拼团,且不是普通购买----- if (th.data.prom_type == 9 && th.data.is_normal != 1) { newd.goods_price = th.data.prom_price; newd.prom_type = th.data.prom_type; newd.prom_id = th.data.prom_id; //newd.kt_type = th.data.prom_act.kttype; //开团类型 newd.is_pt_tz = 0; //th.data.sto_sele_distr=1; //直接用自提的方式提交 if (newd.kt_type > 1) { newd.is_pt_tz = 1; //开团类型 } if (newd.kt_type == 3) { th.data.sto_sele_distr = 1; } } // else if (th.data.prom_type == 3) { // newd.prom_type = 0; // newd.prom_id = 0; // } th.by_next_func(newd); } ) }, by_next_func(newd){ var th=this; newd['pick_name'] = th.data.sto_sele_name; newd['pick_dis'] = th.data.sto_sele_distr; newd['is_normal'] = th.data.is_normal; wxlog.info(getApp().globalData.user_id+'-立即购买:'+JSON.stringify(newd)); if (newd['is_normal']) { newd['is_pd_normal'] = 1; //判断一下有没有全局优惠活动 th.buyNow(newd); } else { // 点击立即参团 th.buyNow_pt(newd); } }, //统一一下获取线下库存的函数 async check_CanOutQty(goodsinfo, item, func) { var sales_rules = this.data.sales_rules; //如果默认是商品 if(getApp().is_virtual(goodsinfo)){ return func(100000); } var lock_rq = { store_id: os.stoid, wareId: goodsinfo.goods_id, pageSize: 1000 }; if (sales_rules == 2) { lock_rq.storageId = item.pickup_id } else { lock_rq.appoint_pick_keyid = encodeURIComponent(this.data.appoint_pick_keyid) } var lock = 0; var CanOutQty = 0; var plist = null; //先读取门店的lock await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { data: lock_rq }).then(res => { if (res.data.code == 0 && res.data.data.total > 0) { for (var i in res.data.data.pageData) lock += res.data.data.pageData[i].outQty; } }) var sto_req = { wareIds: encodeURIComponent(goodsinfo.erpwareid), storeId: os.stoid } if (sales_rules == 2) { sto_req.storageNos = item.pickup_no } else { sto_req.storageIds = encodeURIComponent(this.data.appoint_pick_keyid) } //读取线下的门店库存 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { data: sto_req }).then(res => { if (res.data.code == 0 && res.data.data.total > 0) { plist = res.data.data.pageData[0]; } }) if (plist && plist.CanOutQty - lock > 0) { CanOutQty = plist.CanOutQty - lock; } if (func) func(CanOutQty); }, //----------立即购买_pt----------- buyNow_pt: function (e) { s.set_b_now(e); wx.navigateTo({ url: "/packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct?is_bnow=1&group_id=" + this.data.group_id + "&goods_id=" + e.goods_id + "&alert=" + this.data.luckGoInfo.lc_alert + '&goods_price=' + this.data.luckGoInfo.group_price / 100 + '&is_show=' + this.data.luckGoInfo.is_show, }); // getApp().goto("/packageC/pages/luckyGo/luckyGo_cart/luckyGo_cart?is_bnow=1&group_id=" + th.data.group_id +"&goods_id=" + e.goods_id + "&alert=" + th.data.luckGoInfo.lc_alert); }, //-------跳转pt商品------- go_to_nopay: function () { var th = this; url = "/packageG/pages/user/order_detail/order_detail?order_id=" + th.data.buy_order.order_id; getApp().goto(url); }, //-------跳转pt teamshow------- go_to_team_show: function () { if (this.data.is_go_to_team_show) return false; this.data.is_go_to_team_show = 1; wx.showLoading(); var th = this; var url = "/packageG/pages/team/team_success/team_success?ordersn=" + th.data.buy_order.order_sn; /*-- wx.redirectTo({ url:url, })--*/ getApp().goto(url); }, //---拼团倒计时--- countDown2() { if (!this.data.is_timer) return false; var th = this; // 获取当前时间,同时得到活动结束时间数组 var newTime = ut.gettimestamp(); var List = th.data.teamgroup; for (var j = 0; j < List.length; j++) { // 对结束时间进行处理渲染到页面 var endTime = List[j].kt_end_time; let obj = null; // 如果活动未结束,对时间进行处理 if (endTime - newTime > 0) { let time = (endTime - newTime); // 获取天、时、分、秒 let day = parseInt(time / (60 * 60 * 24)); let hou = parseInt(time % (60 * 60 * 24) / 3600); let min = parseInt(time % (60 * 60 * 24) % 3600 / 60); let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60); obj = { day: this.timeFormat(day), hou: this.timeFormat(hou), min: this.timeFormat(min), sec: this.timeFormat(sec) } } else { //活动已结束,全部设置为'00' obj = { day: '00', hou: '00', min: '00', sec: '00' } } var txt = "timer[" + j + "]"; th.setData({ [txt]: obj }); } setTimeout(th.countDown2, 1000); }, //跳转参加团 go_cj_team: function (e) { var ind = e.currentTarget.dataset.ind; var item = this.data.teamgroup[ind]; var id = item.id; var th = this; getApp().request.get("/api/weshop/order/page", { data: { pt_prom_id: item.team_id, user_id: oo.user_id, store_id: os.stoid, pageSize: 1, page: 1 }, success: function (e) { if (e.data.code != 0) { getApp().my_warnning("读取订单失败", 0, th); return fasle; } //--跳转到已经购买的情况-- if (e.data.data.pageData.length > 0) { var odr = e.data.data.pageData[0]; //还未支付 if (odr.pt_status == 0 && (odr.order_status == 1 || odr.order_status == 0)) { wx.showModal({ title: "您已经购买了该商品待支付中", success: function (a) { if (a.confirm) { wx.navigateTo({ url: "/packageG/pages/user/order_detail/order_detail?order_id=" + odr.order_id, }); } } }); } else if (odr.pt_status == 1 && odr.order_status == 1) { if (this.data.is_go_to_team_show) return false; this.data.is_go_to_team_show = 1; wx.showLoading(); /*-- wx.redirectTo({ url: "/packageG/pages/team/team_success/team_success?ordersn=" + odr.order_sn, });--*/ getApp().goto("/packageG/pages/team/team_success/team_success?ordersn=" + odr.order_sn); } else { wx.navigateTo({ url: "/packageG/pages/team/team_show/team_show?tg_id=" + id, }); } } //--跳转到参团-- else { wx.navigateTo({ url: "/packageG/pages/team/team_show/team_show?tg_id=" + id, }); } } }) }, //跳到团更多 go_t_more: function () { var team_id = this.data.prom_id; wx.navigateTo({ url: "/packageF/pages/team/team_more/team_more?team_id=" + team_id, }); }, //--点赞功能-- click_zan: function (e) { var com_id = e.currentTarget.dataset.com_id; var item_id = e.currentTarget.dataset.item_id; var app = getApp(), th = this; if (app.globalData.userInfo == null || app.globalData.userInfo == undefined) { app.confirmBox("您还未登录"); return false; } var iszan = th.data.comments[item_id].userZanNum; if (this.data.iszaning) return false; this.data.iszaning = 1; app.request.post("/api/weshop/commentZan/save", { data: { store_id: o.stoid, user_id: app.globalData.user_id, goods_id: th.data.gid, comment_id: com_id }, success: function (ee) { if (ee.data.code == "-1") { app.my_warnning("不能给自己点赞", 0, th); th.data.iszaning = 0; return; } if (ee.data.code == 0 && iszan != 1) { var num = th.data.comments[item_id].zan_num; num++; var text = "comments[" + item_id + "].zan_num"; var text1 = "comments[" + item_id + "].userZanNum"; var _errObj = {}; _errObj[text] = num; _errObj[text1] = 1; th.setData(_errObj); } else { var num = th.data.comments[item_id].zan_num; num--; var text = "comments[" + item_id + "].zan_num"; var text1 = "comments[" + item_id + "].userZanNum"; var _errObj = {}; _errObj[text] = num; _errObj[text1] = 0; th.setData(_errObj); } setTimeout(function () { th.data.iszaning = 0; }, 500) } }) }, /*----券的开关---*/ switchCoupon: async function (event) { var coupon = event.currentTarget.dataset.coupon; var app = getApp(); var url = "/api/weshop/prom/coupon/pageCouponList"; var quan_list = this.data.quan_list; var th = this; //当开启,且列表为空的情况下要 if (!quan_list && coupon == "1") { wx.showLoading(); await app.request.promiseGet(url, { data: { store_id: os.stoid, type: 1, pageSize: 100, page: 1, user_id: app.globalData.user_id, is_share: 0 } }).then(res => { wx.hideLoading(); quan_list = res.data.data.pageData; }) //过滤不是本商品的单品优惠券 if (quan_list.length > 0) { let goodInfo = th.data.data for (let index = quan_list.length-1; index >= 0; index--) { if (quan_list[index].useobjecttype==20) { //判断是单品优惠券 if (quan_list[index].useobjectno != goodInfo.goods_sn) { quan_list.splice(index,1) } } } } //------------------------ if (quan_list) { for (var ind in quan_list) { var ep = quan_list[ind]; var start = ut.formatTime(ep.use_start_time, "yyyy-MM-dd"); var end = ut.formatTime(ep.use_end_time, "yyyy-MM-dd"); start = start.replace("00:00:00", ""); end = end.replace("00:00:00", ""); quan_list[ind].start = start; quan_list[ind].end = end; } } th.setData({ coupon: coupon, quan_list: quan_list }); } else { th.setData({ coupon: coupon }); } }, //--查看评价-- look_pj: function () { this.tabComment(); this.doScrollTop(); }, //-----领取券----- get_quan: function (e) { var cid = e.currentTarget.dataset.cid; var index = e.currentTarget.dataset.ind; var item = this.data.quan_list[index]; //--先判断会员状态-- var user_info = getApp().globalData.userInfo; if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { wx.navigateTo({ url: '/packageE/pages/togoin/togoin', }) return false; } //如果券还在领取中,不能再点 if (item.linging == 1) { getApp().my_warnning('领取中..', 0, this); return false; } //如果领取的次数到了 if (item.everyone_num > 0 && item.lqnum >= item.everyone_num) { getApp().my_warnning('领取失败,您已领完该券', 0, this); return false; } var lq_num = item.lqnum; var pdata = { 'uid': oo.user_id, 'cid': cid, 'store_id': os.stoid, 'type': 5 }; //-- 导购ID -- if (getApp().globalData.guide_id) { pdata.guide_id = getApp().globalData.guide_id; } if(getApp().globalData.groupchat_id){ pdata.groupchat_id = getApp().globalData.groupchat_id; } var app = getApp(), th = this; app.request.post("/api/weshop/couponList/saveCouponList", { data: pdata, success: function (res) { if (res.data.code == 0) { app.my_warnning("领取成功", 1, th); lq_num++; var text = "quan_list[" + index + "].lqnum"; var text2 = "quan_list[" + index + "].linging"; var obj = {}; obj[text] = lq_num; obj[text2] = 0; th.setData(obj); } else { app.confirmBox(res.data.msg); var text2 = "quan_list[" + index + "].linging"; var obj = {}; obj[text2] = 0; th.setData(obj); } } }) }, drawPoster(context, unit, img, vpath) { // 1.灰色背景 context.setFillStyle('#f2f1f6'); context.rect(0, 0, 554 * unit, 899 * unit); context.fill(); // 2.商城名称 let shopName = this.data.sto_sele_name_1; // let shopNameLen = context.measureText(shopName); // let x_shopNameLen = (554 - shopNameLen.width)/2*unit; // console.log('11111111111111',shopNameLen,x_shopNameLen); context.setTextAlign('center'); context.setFontSize(26 * unit); context.setFillStyle('black'); context.fillText(shopName, 277 * unit, 60 * unit); // // 3.推荐来源 if(getApp().globalData.userInfo) { let fromText = `来自${getApp().globalData.userInfo.nickname}的推荐`; // let fromTextLen = context.measureText(fromText); // let x_fromText = (375 - fromTextLen.width)/2; // console.log('222222',fromTextLen,x_fromText); context.setTextAlign('center'); context.setFontSize(22 * unit); context.setFillStyle('#96959a'); context.fillText(fromText, 277 * unit, 105 * unit); } // 4.海报背景 // context.beginPath(); // context.setStrokeStyle('#f2f1f6'); context.setFillStyle('white'); context.fillRect(37 * unit, 157 * unit, 480 * unit, 673 * unit); // context.stroke(); // context.fill(); // 5.商品图片 // 图片的x坐标 let bg_x = 37 * unit // 图片的y坐标 let bg_y = 157 * unit // 图片宽度 let bg_w = 480 * unit // 图片高度 let bg_h = 474 * unit // 图片圆角 let bg_r = 4 // 绘制海报背景图片圆角 context.save() context.beginPath() context.arc(bg_x + bg_r, bg_y + bg_r, bg_r, Math.PI, Math.PI * 1.5) context.arc(bg_x + bg_w - bg_r, bg_y + bg_r, bg_r, Math.PI * 1.5, Math.PI * 2) context.arc(bg_x + bg_w, bg_y + bg_h, bg_r, 0, Math.PI * 0.5) context.arc(bg_x, bg_y + bg_h, 0, Math.PI * 0.5, Math.PI) context.clip() context.drawImage(img, bg_x, bg_y, bg_w, bg_h); context.restore() // 6.强烈推荐 // context.beginPath(); let tj_path = "../../../../images/share/q_tj.png"; context.beginPath() context.drawImage(tj_path, 54 * unit, 648 * unit, 85 * unit, 30 * unit); context.setFontSize(16 * unit) context.setLineJoin('round'); //交点设置成圆角 context.setFillStyle("white") context.setTextAlign('left'); context.fillText('强烈推荐', 64 * unit, 672 * unit); // 7.商品价格 let price = '¥' + parseFloat( this.data.luckGoInfo.group_price/100).toFixed(2); context.setFontSize(32 * unit); context.setFillStyle('#DE1117'); context.fillText(price, 54 * unit, 730 * unit); //-- 零售价的优化 -- var wp= 60 * unit+ut.measureText( price, 32 * unit); var hp=730 * unit this.draw_pos_price(context,wp,hp,this.data.data.market_price,unit); // 8.商品标题 context.setFontSize(20 * unit); context.setFillStyle('#898989'); getApp().draw_Text(context, this.data.data.goods_name, 54 * unit, 770 * unit, 240 * unit, 240 * unit, unit); // 9.小程序码 context.drawImage(vpath, 375 * unit, 660 * unit, 120 * unit, 120 * unit); context.setFontSize(16 * unit); context.setFillStyle('#777'); context.fillText('长按识别二维码', 378 * unit, 810 * unit); // 10.竖线 context.beginPath(); context.setFillStyle('#eee'); context.rect(354 * unit, 670 * unit, 1 * unit, 130 * unit); context.fill(); }, //---市场价划掉--- draw_pos_price(context,w,h,market_price,unit){ if(!this.data.sys_switch) return false; if(!this.data.sys_switch.is_retail_price) return false; context.setFillStyle("gray") context.setFontSize(22 * unit) var pri0 = "¥" + market_price; context.fillText(pri0, w, h); var c_h=h-6; context.setStrokeStyle('gray'); context.setLineWidth(1 * unit); context.moveTo(w - 5, c_h); context.lineTo(w + ut.measureText(pri0, 22 * unit) + 5, c_h); context.stroke(); }, //--定义的保存图片方法,分享团--- saveImageToPhotosAlbum: function () { //--先判断会员状态-- // var user_info = getApp().globalData.userInfo; // if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { // //getApp().my_warnning("请先登录",0,this); // wx.navigateTo({ url: '/packageE/pages/togoin/togoin', }) // return false; // } if (this.data.share_hidden) { this.setData({ share_hidden: false, }); }; //类型 0普通商品 1秒杀商品 2商家和会员团 3阶梯团 4阶梯团 9幸运购 var type = 9; var th=this; if (this.data.prom_act && this.data.prom_act.kttype == 3) type = 3; wx.showLoading({ title: '生成中...', }) var that = this, th = that; //设置画板显示,才能开始绘图 that.setData({ canvasHidden: false }) var app = getApp(); var unit = that.data.screenWidth / 750 * 1.35; //基础单位, var path2 = that.data.data.original_img; var scene = th.data.gid + ""; scene += "." + th.data.sele_g.prom_type + "." + th.data.luckGoInfo.id; // th.data.sele_g.prom_id var user_id = getApp().globalData.user_id ? getApp().globalData.user_id : 0; if (user_id > 0) { scene += "_" + user_id; } //-- 如果不是会员分享过来的要分享给别人 -- if (getApp().globalData.room_id && th.data.data.goods_id == getApp().globalData.room_goods_id && !getApp().globalData.room_user_share) { //固定房间是第3个字符 if (!user_id) scene += "_0"; scene += "_" + getApp().globalData.room_id; } ///二微码 var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" + os.stoid + "?sceneValue=" + scene + "&pageValue=packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo"; console.log('path3......', path3); // 读取文件成功则OK-- wx.getImageInfo({ src: path3, success: function (res) { // 回调写法 th.get_head_temp(th.get_goods_temp, function () { var vpath = res.path; var context = wx.createCanvasContext('share'); // 先画背景 var pg_path = "../../../../images/share/share_bg.png"; //-- 如果有自定义海报的时候,判断背景的图片 -- if (th.data.share_b_img) { pg_path = th.data.share_b_img; } // context.drawImage(pg_path, 0, 0, 554 * unit, 899 * unit); if (!th.data.share_b_img) { // 如果是普通商品,绘制新海报 th.drawPoster(context, unit, th.data.share_goods_img, vpath); } else { context.drawImage(pg_path, 0, 0, 554 * unit, 899 * unit); }; let nick=app.globalData.userInfo?app.globalData.userInfo.nickname:''; //-- 是自定义海报的情况下 -- if (th.data.share_b_img ) { if (th.data.poster && parseInt(th.data.poster.style) == 2) { //在线上分享人的情况下 if (parseInt(th.data.poster.show_headpic)) { //获取坐标 var x = parseFloat(th.data.poster.head_x) * 2; var y = parseFloat(th.data.poster.head_y) * 2; var x1 = (x + 90) * unit; var y1 = (y + 50) * unit; //--昵称--- context.setFontSize(24 * unit) context.setFillStyle("black") context.fillText(nick, x1, y1); var width = 24 * nick.length * unit + 4 * unit; //强烈推荐 改许程 var tj_path = "../../../../images/share/q_tj.png"; context.drawImage(tj_path, x1 + width, y1 - 22 * unit, 85 * unit, 30 * unit); context.setFontSize(16 * unit); context.setLineJoin('round'); //交点设置成圆角 context.setFillStyle("white"); context.fillText('强烈推荐', x1 + width + 8 * unit, y1 - 1 * unit); //context.setFillStyle("black") //context.setFontSize(24 * unit) //context.fillText(getApp().globalData.config.store_name, 40 * unit, 130 * unit); } } else { //--昵称--- // context.setFontSize(24 * unit); // context.setFillStyle("black"); // context.fillText(app.globalData.userInfo.nickname, 152 * unit, 60 * unit); // var width = 24 * app.globalData.userInfo.nickname.length * unit + 2 * unit; //强烈推荐 改许程 // var tj_path = "../../../../images/share/q_tj.png"; // let txt_gn = th.data.luckGoInfo.group_num + '人团'; // let width_gn = ut.measureText(txt_gn, 15); // context.drawImage(tj_path, 152 * unit + width, 54 * unit, (width_gn + 20) * unit, 30 * unit); // context.setFontSize(16 * unit); // context.setLineJoin('round'); //交点设置成圆角 // context.setFillStyle("white"); // context.fillText(txt_gn, 149 * unit + width + 15 * unit, 75 * unit); // 发出幸运购活动邀请 // context.setFillStyle("#7f7f7f") // context.setFontSize(21.3 * unit) // context.fillText("向您发出幸运购邀请", 152 * unit, 90 * unit); } } var share_title = th.data.data.goods_name; //---产品名称--- //文本换行 参数:1、canvas对象,2、文本 3、距离左侧的距离 4、距离顶部的距离 5、6、文本的宽度 if (th.data.share_b_img ) { context.setFillStyle("black"); context.setFontSize(21.3 * unit) getApp().draw_Text(context, share_title, 38 * unit, 180 * unit, 220 * unit, 220 * unit, unit); //------产品的价格------- context.setFontSize(23 * unit) context.setFillStyle("red") var pri0 = th.data.luckGoInfo.group_price / 100; // console.log('pri0========>>>>>', pri0); // if (th.data.prom_act) // pri0 = th.data.prom_act.price; pri0 = parseFloat(pri0).toFixed(2); var wd1 = th.data.screenWidth - ut.measureText(pri0, 31 * unit) - 25; context.fillText("¥", wd1 - 15, 185 * unit); context.setFontSize(31 * unit) context.fillText(pri0, wd1, 185 * unit); var tj_path = "../../../../images/share/q_tj.png"; context.drawImage(tj_path, 315 * unit, 158 * unit, 85 * unit, 30 * unit); context.setLineJoin('round'); //交点设置成圆角 context.setFontSize(18 * unit); context.setFillStyle("white"); context.fillText('参团价', 330 * unit, 179 * unit); //---市场价划掉--- // context.setFillStyle("gray") // context.setFontSize(22 * unit) pri0 = "零售价:¥" + th.data.data.market_price.toFixed(2); var wd2 = th.data.screenWidth - ut.measureText(pri0, 22 * unit) - 25; // context.fillText(pri0, wd2, 213 * unit); // context.setStrokeStyle('gray'); // context.setLineWidth(1 * unit); // context.moveTo(wd2 - 5, 206 * unit); // context.lineTo(wd2 + ut.measureText(pri0, 22 * unit) + 5, 206 * unit); // context.stroke(); th.draw_pos_price(context,wd2, 213 * unit,pri0,unit); } //---中间大图--- if ( th.data.share_b_img ) { context.drawImage(th.data.share_goods_img, 70 * unit, 245 * unit, 408 * unit, 408 * unit); }; //---自定义海报 产品质量保证 if(th.data.share_b_img && th.data.poster.show_quality==1 ){ var g_path = "../../../../images/share/s_gou.png"; context.drawImage(g_path, 56 * unit, 658 * unit, 22 * unit, 22 * unit); context.setFillStyle("red") context.setFontSize(18 * unit) context.fillText("正品保证", 84 * unit, 678 * unit); context.drawImage(g_path, 218 * unit, 658 * unit, 22 * unit, 22 * unit); context.setFillStyle("red") context.setFontSize(18 * unit) context.fillText("纯实体店", 246 * unit, 678 * unit); context.drawImage(g_path, 388 * unit, 658 * unit, 22 * unit, 22 * unit); context.setFillStyle("red") context.setFontSize(18 * unit) context.fillText("官方验证", 420 * unit, 678 * unit); } //-------大图后面就不一样了----------- switch (type) { case 9: if(th.data.share_b_img){ //---画线--- // context.setLineWidth(1 * unit) // context.moveTo(32 * unit, 680 * unit) // context.lineTo(520 * unit, 680 * unit) // context.stroke(); //---文字--- context.setFillStyle("black") context.setFontSize(24 * unit) context.font = 'normal bold 18px'; context.fillText(th.data.sto_sele_name_1, 40 * unit, 720 * unit); //还差N人,即可成团 let group_num = th.data.luckGoInfo.group_num; let num_joined = th.data.luckGoInfo.num; let delta1 = group_num - num_joined; let width_delta1 = ut.measureText(delta1, 15); context.setFillStyle("black"); context.setFontSize(21.3 * unit); context.fillText(group_num + "人团,还差", 40 * unit, 772 * unit); context.setFillStyle("#FF6768"); context.setFontSize(21.3 * unit); context.fillText(delta1, 160 * unit, 772 * unit); context.setFillStyle("black"); context.setFontSize(21.3 * unit); context.fillText("人,即可成团", (170 + width_delta1) * unit, 772 * unit); // N人得商品,N人全额退款 let group_win = th.data.luckGoInfo.group_win; let delta2 = group_num - group_win; let width_delta2 = ut.measureText(delta2, 16); let width_groupNum = ut.measureText(group_num, 15); let width_groupWin = ut.measureText(group_win, 15); context.setFillStyle("#FF6768"); context.setFontSize(21.3 * unit); context.fillText(group_win, 40 * unit, 806 * unit); context.setFillStyle("black"); context.setFontSize(21.3 * unit); context.fillText("人得商品,", (54 + width_groupWin) * unit, 806 * unit); context.setFillStyle("#FF6768"); context.setFontSize(21.3 * unit); context.fillText(delta2, 160 * unit, 806 * unit); context.setFillStyle("black"); context.setFontSize(21.3 * unit); context.fillText("人全额退款", (170 + width_delta2) * unit, 806 * unit); // 并得帮团惊喜礼品 context.setFillStyle("black") context.setFontSize(21.3 * unit) context.fillText("并得帮团", 40 * unit, 840 * unit); context.setFillStyle("#FF6768") context.setFontSize(21.3 * unit) context.fillText("惊喜礼品", 130 * unit, 840 * unit); context.setFillStyle("black") context.setFontSize(21.3 * unit) context.fillText("!", 220 * unit, 840 * unit); } //---二维吗图--- //-- 自定义海报 -- if (th.data.share_b_img && th.data.poster) { var erm_x = parseFloat(th.data.poster.ewm_x) * 2; var erm_y = parseFloat(th.data.poster.ewm_y) * 2; context.drawImage(vpath, erm_x * unit, erm_y * unit, 136 * unit, 136 * unit); } else { //---二维吗图--- // context.drawImage(vpath, 390 * unit, 726 * unit, 136 * unit, 136 * unit); } break; } //--- 如果是自定义海报的时候 --- if ( th.data.share_b_img ) { if (th.data.poster && parseInt(th.data.poster.style) == 2) { //如果显示会员信息的话 if (parseInt(th.data.poster.show_headpic)) { //获取坐标 var x = parseFloat(th.data.poster.head_x) * 2; var y = parseFloat(th.data.poster.head_y) * 2; //---绘制圆形要放在最后---- context.save(); context.beginPath(); var h_x = x * unit; var h_y = y * unit; var h_r = 40 * unit; var cx = h_x + h_r; var cy = h_y + h_r; context.arc(cx, cy, h_r, 0, Math.PI * 2, false); context.closePath(); context.fill(); context.clip(); context.drawImage(th.data.share_head, h_x, h_y, h_r * 2, h_r * 2); context.restore(); } } else { //---绘制圆形要放在最后---- context.save(); context.beginPath(); var h_x = 60 * unit; var h_y = 24 * unit; var h_r = 40 * unit; var cx = h_x + h_r; var cy = h_y + h_r; context.arc(cx, cy, h_r, 0, Math.PI * 2, false); context.closePath(); context.fill(); context.clip(); context.drawImage(th.data.share_head, h_x, h_y, h_r * 2, h_r * 2); context.restore(); } }; if(th.data.poster && th.data.poster.show_time==1){ var act_time = ''; act_time="截止时间:"+ ut.formatTime(th.data.luckGoInfo.end_time); context.setFillStyle("red") getApp().draw_Text(context, act_time, 38 * unit, 880 * unit, 200 * unit, 340 * unit, unit); } //把画板内容绘制成图片,并回调 画板图片路径 context.draw(false, function () { setTimeout(function () { wx.canvasToTempFilePath({ x: 0, y: 0, width: 750, height: 1217, destWidth: 1.2 * 750 * 750 / that.data.screenWidth, destHeight: 1.2 * 1217 * 750 / that.data.screenWidth, canvasId: 'share', success: function (res) { that.setData({ shareImgPath: res.tempFilePath, canvasHidden: true }) if (!res.tempFilePath) { wx.showModal({ title: '提示', content: '图片绘制中,请稍后重试', showCancel: false }) return false; } // wx.previewImage({ // //将图片预览出来 // urls: [that.data.shareImgPath] // }); that.setData({ showPoster: true, }); wx.hideLoading(); } }) }, 500) }); }); }, fail: function (res) { console.log(res); wx.hideLoading(); } }); }, // ----视频图片---- // 图片计数器 swiperChange: function (e) { var that = this; if (e.detail.current > 0) { that.setData({ hiddenn: 1, videopicture: 1, }) } else { that.setData({ hiddenn: 0, videopicture: 0, }) } if (e.detail.source == 'touch') { that.setData({ current: e.detail.current }) } }, /*---视频相关--*/ videopicture: function (e) { var vipi = e.currentTarget.dataset.vipi; this.setData({ videopicture: vipi, swiperCurrent: vipi, noon: 0, current: 1 }); }, videoPlay: function (e) { var _index = e.currentTarget.id this.setData({ _index: _index, noon: 1 }) setTimeout(function () { //将点击视频进行播放 var videoContext = wx.createVideoContext(_index) videoContext.play(); }, 500) }, //--获取头像的本地缓存,回调写法-- get_head_temp: function (tt, func) { var ee = this; if (ee.data.share_head) { tt(func); return false; } //---获取分享图片的本地地址,头像和商品图片---- var path2 =getApp().globalData.userInfo?getApp().globalData.userInfo.head_pic:''; if (path2 == "") { ee.data.share_head = "../../../../images/share/hui_hear_pic.png"; tt(func); } else { path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); path2 = path2.replace("https://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); wx.getImageInfo({ src: path2, success: function (res) { //res.path是网络图片的本地地址 ee.data.share_head = res.path; tt(func); }, fail: function (res) { ee.data.share_head = "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的 tt(func); } }); } }, //--获取商品图片的本地缓存,回调写法-- get_goods_temp: function (tt) { var ee = this; if (ee.data.share_goods_img) { tt(); return false; } var img_url = ee.data.data.original_img; if ((this.data.prom_type == 1 || this.data.prom_type == 6) && this.data.prom_act.share_imgurl) { img_url = this.data.iurl + this.data.prom_act.share_imgurl; } //获取商品是分享图信息 wx.getImageInfo({ src: img_url, success: function (res) { //res.path是网络图片的本地地址 ee.data.share_goods_img = res.path; tt(); }, fail: function (res) { //获取默认空白图 wx.getImageInfo({ src: ee.data.iurl+'/miniapp/images/default_g_img.gif', success: function(res) { ee.data.share_goods_img = res.path; //分享的图片不能用网络的 tt(); } }) } }); }, //--外侧评价的点击效果--- clik_evaluate: function (e) { var val = e.currentTarget.dataset.val; this.setData({ activeCategoryId: 2, activeCategoryId3: val, comments: null }); this.requestComments_new(); }, //--跳转到商品详情页面-- go_goods: function (e) { var gid = e.currentTarget.dataset.gid; var url = "/pages/goods/goodsInfo/goodsInfo?goods_id=" + gid; getApp().goto(url); }, pop_err_img: function (e) { var txt = e.currentTarget.dataset.errorimg; var ob = {}; ob[txt] = this.data.iurl + "/miniapp/images/default_g_img.gif"; this.setData(ob); }, //--调用更新阶梯团的接口-- update_jiti: function (id) { // var th = this; //--更新阶梯团-- // getApp().request.put("/api/weshop/teamgroup/updateTeamOrder/" + os.stoid + "/" + id, { // success: function (ee) { // //--等于0是要去支付尾款,接口调用失败,就要去查看参团详情-- // if (ee.data.code == 0) { // th.setData({ // user_order_pt_state: 3, // }); // } else if (ee.data.code == -1) { // th.setData({ // user_order_pt_state: 2, // }); // } // } // }) }, // 选择门店 choice_store: function (ee) { this.setData({ keyword:'' }) //--先判断会员状态-- var user_info = getApp().globalData.userInfo; if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { wx.navigateTo({ url: '/packageE/pages/togoin/togoin', }) return false; } var th = this; var ind = ee.currentTarget.dataset.ind; var isfront = ee.currentTarget.dataset.isfront; var bconfig = th.data.bconfig; th.data.isfront=0; if(isfront) th.data.isfront=1; //如果开启了,则不在选择门店 if(this.data.sys_switch.is_pricing_open_store && getApp().globalData.pk_store){ return false; } if (!th.data.only_pk && !th.data.def_pickpu_list) { getApp().confirmBox("门店库存不足", null, 25000, !1); return false; } if (th.data.only_pk && !th.data.only_pk.length) { getApp().confirmBox("门店库存不足", null, 25000, !1); return false; } if (th.data.def_pickpu_list && !th.data.def_pickpu_list.length) { getApp().confirmBox("门店库存不足", null, 25000, !1); return false; } if (bconfig && bconfig.is_sort_storage) { wx.getLocation({ type: 'gcj02', success: function (res) { th.data.lat = res.latitude; th.data.lon = res.longitude; th.data.is_get_local_ok = 1; th.setData({ is_gps: 1 }); //th.onShow(); th.get_sto(th.data.is_normal); }, fail: function (res) { //th.onShow(); th.data.is_get_local_ok = 1; th.get_sto(th.data.is_normal); if (res.errCode == 2) { th.setData({ is_gps: 0 }); if (th.data.is_gps == 0) { getApp().confirmBox("请开启GPS定位", null, 25000, !1); } } else { th.setData({ is_gps: "3" }); } } }) } else { th.data.is_get_local_ok = 1; th.get_sto(th.data.is_normal); } if (ind != undefined && ind != null) { this.setData({ open_ind_store: ind, store: 1, openSpecModal: !1, openSpecModal_pt: !1 }) } else { this.setData({ store: 1, openSpecModal: !1, openSpecModal_pt: 1 }) } }, //关闭选择门店 close_popup: function (e) { var th = this; this.setData({ store: 0, choice_sort_store: 0, sort_store: 0, fir_pick_index: 0, sec_pick_index: 0 }) var openindstore = this.data.open_ind_store; if (openindstore == 1) { th.setData({ openSpecModal: !0, openSpecModal_ind: openindstore, }); } else if (openindstore == 2) { th.setData({ openSpecModal: !0, openSpecModal_ind: openindstore, }); } else if (openindstore == 4) { //4就是拼团 th.setData({ openSpecModal_pt: 1, //打开拼团购买界面 store: 0, //关闭门店 choice_sort_store: 0, //关闭门店2级 sort_store: 0, //关闭门店2级 }); } else { th.setData({ store: 0, choice_sort_store: 0, sort_store: 0 }) } }, //选择更多门店 more_store: function () { this.setData({ sort_store: 1 }); }, sort_store: function () { }, // 返回按钮 returns: function () { this.setData({ sort_store: 0, choice_sort_store: 0 }); }, //---选择分类门店--- choice_sort_store: function (e) { var index = e.currentTarget.dataset.index; var region_name = e.currentTarget.dataset.region; var item = this.data.all_sto[index]; this.setData({ region_name: region_name, sort_store: 0, choice_sort_store: 1, sec_sto: item, sec_i:index, sec_pick_index: 0 }); }, choose_for_store_fir: function (e) { var index_c = e.currentTarget.dataset.ind; var th = this; th.setData({ fir_pick_index: index_c }) }, //如果开启线下库存,已经急速库存才会使用 async check_the_pick(item, func) { var th = this; var goodsinfo = th.data.sele_g; var erpwareid = goodsinfo.erpwareid; var plist = null; var lock = 0; //---如果是活动的时候,同时不是普通购买--- if ((th.data.prom_type == 9 || th.data.prom_type == 1 || th.data.prom_type == 6 || th.data.prom_type == 4) && !th.data.is_normal) { func(); return false; } if (this.data.sales_rules < 2) { func(); } else { //先读取门店的lock // await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { // data: { store_id: os.stoid, wareId: goodsinfo.goods_id, storageId: item.pickup_id, pageSize: 1000 } // }).then(res => { // if (res.data.code == 0 && res.data.data.total > 0) { // for (var i in res.data.data.pageData) // lock += res.data.data.pageData[i].outQty; // } // }) // //读取线下的门店库存 // await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { // data: { storageNos: item.pickup_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid } // }).then(res => { // if (res.data.code == 0 && res.data.data.total > 0) { // plist = res.data.data.pageData[0]; // } // }) // // if (plist && plist.CanOutQty - lock > 0) { // item.CanOutQty = plist.CanOutQty - lock; // func(); // return false; // } // getApp().my_warnning(item.pickup_name + "库存不足!", 0, th); this.check_CanOutQty(goodsinfo, item, function (CanOutQty) { // let str = item.pickup_name + '库存不足!'; if (!CanOutQty) { wx.showToast({ title: item.pickup_name + '库存不足!', icon: 'none', }); return false; } item.CanOutQty = CanOutQty; func(); }); } }, //确定def_pick为选择的门店 sure_pick: function (e) { var th = this; var item = null; var openindstore = th.data.open_ind_store; if (th.data.choice_sort_store == 0) { var index = th.data.fir_pick_index; if (th.data.is_show_sto_cat == 1) { item = th.data.def_pickpu_list[index]; } else { item = th.data.only_pk?th.data.only_pk[index]:null; //当没有门店分类的时候 } } else { var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } if(!item) return false; if (!th.data.sele_g) return false; //判断门店的配送方式是不是匹配 var g_distr_type = th.data.sele_g.distr_type; if(th.data.isfront==1){ g_distr_type = th.data.data.distr_type; } if (item.distr_type != 0 && g_distr_type != 0 && item.distr_type != g_distr_type) { wx.showToast({ title: "门店配送方式不匹配", icon: 'none', duration: 2000 }); return false; } //--回调函数的用法-- th.check_the_pick(item, function () { th.setData({ def_pick_store: item, sto_sele_name: item.pickup_name, sto_sele_id: item.pickup_id, sto_sele_distr: item.distr_type, store: 0, choice_sort_store: 0, fir_pick_index: 0 }); if(th.data.isfront){ th.setData({ front_pick: ut.deep_cp(item) }) } if (openindstore == 1) { th.setData({ openSpecModal: !0, openSpecModal_ind: openindstore, }); } else if (openindstore == 2) { th.setData({ openSpecModal: !0, openSpecModal_ind: openindstore, }); } else if (openindstore == 4) { //4就是拼团 th.setData({ openSpecModal_pt: 1, //打开拼团购买界面 store: 0, //关闭门店 choice_sort_store: 0, //关闭门店2级 sort_store: 0, //关闭门店2级 }); } else { th.setData({ // openSpecModal_pt: 1, store: 0, choice_sort_store: 0, sort_store: 0 }) } //如果商品没有其他活动,要取一下线下价格 th.get_off_price(); }) }, //---点击二级之后的选择--- choose_for_store: function (e) { var index_c = e.currentTarget.dataset.ind; var th = this; th.setData({ sec_pick_index: index_c, fir_pick_index: index_c }) }, //把选择的门店设置成默认的门店def_pick set_def_pick: function (e) { var th = this; var item = null; if (th.data.choice_sort_store == 0) { var index = th.data.fir_pick_index; if (th.data.is_show_sto_cat == 1) { item = th.data.def_pickpu_list[index]; } else { item = th.data.only_pk?th.data.only_pk[index]:null; //当没有门店分类的时候 } } else { var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } if(!item) return false; //判断门店的配送方式是不是匹配 var g_distr_type = th.data.sele_g.distr_type; if (item.distr_type != 0 && g_distr_type != 0 && item.distr_type != g_distr_type) { wx.showToast({ title: "门店配送方式不匹配", icon: 'none', duration: 2000 }); return false; } //先设置之前,要判断是不是有库存 th.check_the_pick(item, function () { var store_id = o.stoid; var user_id = getApp().globalData.user_id; var def_pickup_id = item.pickup_id; getApp().request.put('/api/weshop/users/update', { data: { user_id: user_id, def_pickup_id: def_pickup_id }, success: function (res) { if (res.data.code == 0) { if (th.data.choice_sort_store == 0) th.setData({ fir_pick_index: 0 }); getApp().globalData.pk_store = item; } else { //s.showWarning("设置默认门店地址失败", null, 500, !1); getApp().my_warnning("设置默认门店地址失败", 0, th) } } }); th.setData({ def_pick_store: item, sto_sele_name: item.pickup_name, sto_sele_id: item.pickup_id, sto_sele_distr: item.distr_type, store: 0, choice_sort_store: 0 }); if(th.data.isfront){ th.setData({ front_pick: ut.deep_cp(item) }) } var openindstore = th.data.open_ind_store; if (openindstore == 1) { th.setData({ openSpecModal: !0, openSpecModal_ind: openindstore, store: 0, choice_sort_store: 0, sort_store: 0, }); } else if (openindstore == 2) { th.setData({ openSpecModal: !0, openSpecModal_ind: openindstore, store: 0, choice_sort_store: 0, sort_store: 0, }); } else if (openindstore == 4) { //4就是拼团 th.setData({ openSpecModal_pt: 1, //打开拼团购买界面 store: 0, //关闭门店 choice_sort_store: 0, //关闭门店2级 sort_store: 0, //关闭门店2级 }); } else { th.setData({ store: 0, choice_sort_store: 0, sort_store: 0, }) } //如果商品没有其他活动,要取一下线下价格 th.get_off_price(); }) }, wait_for_store_config: function () { var th = this; var t_time = setInterval(function () { if (th.data.bconfig == null) false; var e = th.data.bconfig; if (e && e.is_sort_storage) { wx.getLocation({ type: 'gcj02', success: function (res) { th.data.lat = res.latitude; th.data.lon = res.longitude; th.data.is_get_local_ok = 1; }, fail: function (res) { if (res.errCode == 2) { th.setData({ is_gps: 0 }); if (th.data.is_gps == 0) { getApp().confirmBox("请开启GPS定位", null, 10000, !1); } } else { th.setData({ is_gps: "3" }); } th.data.is_get_local_ok = 1; } }) } else { th.data.is_get_local_ok = 1; } clearInterval(t_time); }, 500) }, //显示全部 toggleHandler: function (e) { var that = this, index = e.currentTarget.dataset.index; for (var i = 0; i < that.data.comments.length; i++) { if (index == i) { for (var i = 0; i < that.data.comments.length; i++) { that.data.comments[index].auto = true; that.data.comments[index].seeMore = false; } } } that.setData({ comments: that.data.comments }) }, //收起更多 toggleContent: function (e) { var that = this, index = e.currentTarget.dataset.index; for (var i = 0; i < that.data.comments.length; i++) { if (index == i) { that.data.comments[index].auto = true; that.data.comments[index].seeMore = true; } } that.setData({ comments: that.data.comments }) }, //--- 获取卡类列表 --- getPlusCardType: function (func) { var storid = os.stoid; var th = this; var user = getApp().globalData.userInfo; if (!user) return false; getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => { var plusCard = res.data.data; var arr = [1219, 2089, 3031]; var new_arr = new Array(); var card_name_map = new Map(); var list = []; for (var i = 0; i < plusCard.length; i++) { if ((!user || user.card_field == null || user.card_field == "") && plusCard[i].IsStopBuy == true) continue; var name = "card" + plusCard[i].CorrPrice.toLowerCase(); card_name_map.set(name, plusCard[i].CardName); list.push(plusCard[i]); } var ob = { "card_list": list, "name_map": card_name_map }; func(ob); }) }, go_plus: function () { getApp().goto("/pages/user/plus/plus"); }, go_card_info: function () { getApp().goto("/packageE/pages/user/cardinfo/cardinfo"); }, //-- 根据ID拿出门店 -- get_pick_from_list(pid) { var all_pick_list = this.data.all_pick_list; for (var i in all_pick_list) { var item = all_pick_list[i]; if (item.pickup_id == pid) { return item; } } }, //-----显示优惠券的时候情况----- show_more_cx: function () { if (this.data.is_more_cx) { this.setData({ is_more_cx: 0 }); } else { this.setData({ is_more_cx: 1 }); } }, //----跳转到搭配购买---- go_prom_list: function () { // var url = "../../../packageA/pages/prom_list/prom_list?goods_id=" + this.data.gid; // var room_id = getApp().globalData.room_id; // if (room_id && this.data.gid == getApp().globalData.room_goods_id) { // url += "&room_id=" + room_id; // } // wx.navigateTo({ url: url, }) }, //---检查有没有优惠活动--- check_is_youhui:async function (gid, is_nor) { var th = this; var user_id = getApp().globalData.user_id; if (!user_id) user_id = 0; //普通购买的时候,重新算一下组合购有没有 if(is_nor){ var arr3=null; var url = '/api/weshop/activitylist/listGoodActInfo2New'; var req_d = { "store_id": os.stoid, "goods_id": gid, "user_id": user_id, } await getApp().request.promiseGet(url, { data: req_d, }).then(e=>{ if (e.data.code == 0 && e.data.data && e.data.data.length > 0) { var arr = e.data.data; if(arr.length){ arr3 = arr.filter(function (e) { return e.s_time < ut.gettimestamp() && e.prom_type==7; }) } } }) if(arr3 && arr3.length>0){ //获取活动信息 var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" +arr3[0].act_id + "/" + getApp().globalData.user_id; await getApp().request.promiseGet(url, { }).then(e=>{ if (e.data.code == 0 && e.data.data) { if (ut.gettimestamp() < e.data.data.start_time) { return false; } //判断组合购总数够不够 var is_has_zh_num=(!e.data.data.zh_num || e.data.data.zh_buy_num{ if (res.data.code == 0 && res.data.data) { r_data = res.data.data; var max = 0, min = 0; //暂时积分够 不和 优惠,阶梯重叠 if(th.data.zh_act){ r_data.collocationList=null; r_data.ladderLists=null; r_data.promGoodsLists=null; } if (r_data.collocationList) { for (var i in r_data.collocationList) { if (max == 0) max = r_data.collocationList[i].price; if (min == 0) min = r_data.collocationList[i].price; if (max < parseFloat(r_data.collocationList[i].price)) max = r_data.collocationList[i].price; if (min > parseFloat(r_data.collocationList[i].price)) min = r_data.collocationList[i].price; } r_data.collocationPromList.max = (max + th.data.data.shop_price).toFixed(2); r_data.collocationPromList.min = (min + th.data.data.shop_price).toFixed(2); //如果有搭配促销先不和 阶梯促销和优惠测序重合,做到后台可以重合 r_data.ladderLists=null; r_data.promGoodsLists=null; } //普通购买不在界面显示 if(is_nor){ th.data.collocationGoods=r_data.collocationPromList; th.data.prom_goods=r_data.promGoodsLists; }else{ th.setData({ order_prom: r_data.promOrder, collocationGoods: r_data.collocationPromList, prom_goods: r_data.promGoodsLists, }) } th.is_show_more_buy(); } }) if (r_data && r_data.ladderLists) { var act_id = r_data.ladderLists[0].form_id; //-- 判断会员能不能参与阶梯促销 -- await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}).then(res => { if (res.data.code == 0 && res.data.data) { var prom_content = ""; //暂定优惠促销还不能重叠 if(res.data.data.good_object==0 && (r_data.promGoodsLists || th.data.zh_act)){ return false; } if(res.data.data.good_object==1){ r_data.promGoodsLists=null; } for (let jj in r_data.ladderLists) { if (r_data.ladderLists[jj].discount == 10) { prom_content += "第" + (parseInt(jj) + 1) + "件原价,"; } else { prom_content += "第" + (parseInt(jj) + 1) + "件" + r_data.ladderLists[jj].discount + "折,"; } } prom_content = ut.sub_last(prom_content); th.data.prom_type = 10; th.data.prom_id = act_id; th.setData({ jieti_prom: prom_content, ladder_act_id: act_id }) } }) } //-- 如果有促销活动也算是有参与活动,参与活动的也统一不进行计算起订的数量 -- this.data.is_act=0; if(this.data.zh_act || this.data.prom_goods || this.data.jieti_prom || this.data.collocationGoods ){ this.data.is_act=1; } //-- 更新默认购买的数量 --- var mo_num=getApp().get_limit_qty(th.data.sele_g,this.data.is_act); this.setData({goodsInputNum:mo_num}) this.setData({mo_num:mo_num}) }, closePoster() { this.setData({ showPoster: false, }); }, // 保存图片到手机 savePic() { console.log('保存图片'); var self = this; // 获取用户的当前设置,返回值中有小程序已经向用户请求过的权限 this.getSetting().then((res) => { // 判断用户是否授权了保存到相册的权限,如果没有发起授权 if (!res.authSetting['scope.writePhotosAlbum']) { this.authorize().then(() => { // 同意授权后保存下载文件 this.saveImage(self.data.shareImgPath) .then(() => { self.setData({ showPoster: false }); }); }) } else { // 如果已经授权,保存下载文件 this.saveImage(self.data.shareImgPath) .then(() => { self.setData({ showPoster: false }); }); } }) }, // 获取用户已经授予了哪些权限 getSetting() { return new Promise((resolve, reject) => { wx.getSetting({ success: res => { resolve(res) } }) }) }, // 发起首次授权请求 authorize() { // isFirst 用来记录是否为首次发起授权, // 如果首次授权拒绝后,isFirst赋值为1 let isFirst = wx.getStorageSync('isFirst') || 0; return new Promise((resolve, reject) => { wx.authorize({ scope: 'scope.writePhotosAlbum', // 同意授权 success: () => { resolve(); }, // 拒绝授权,这里是用户拒绝授权后的回调 fail: res => { if (isFirst === 0) { wx.setStorageSync('isFirst', 1); wx.showToast({ title: '保存失败', icon: 'none', duration: 1000 }) } else { this.showModal(); } console.log('拒绝授权'); reject(); } }) }) }, // 保存图片到系统相册 saveImage(saveUrl) { var self = this; return new Promise((resolve, reject) => { wx.saveImageToPhotosAlbum({ filePath: saveUrl, success: (res) => { wx.showToast({ title: '保存成功', duration: 1000, }); self.setData({ showPlaybill: 'true' }); resolve(); }, fail: () => { wx.showToast({ title: '保存失败', duration: 1000, }); } }) }) }, previewImage() { this.data.show_prew_img = 1; getApp().pre_img(this.data.sele_g.original_img); }, screenChange: function (e) { let fullScreen = e.detail.fullScreen //值true为进入全屏,false为退出全屏 if (fullScreen) { //退出全屏 getApp().globalData.no_clear = 1; this.data.show_video = 1; } }, is_show_more_buy: function () { var prom_goods = this.data.prom_goods; var per_price = this.data.sele_g.shop_price if (this.data.card_field && this.data.sele_g[this.data.card_field] > 0) { per_price = this.data.sele_g[this.data.card_field]; } var all_price = per_price * this.data.goodsInputNum; var con = null; for (var i in prom_goods) { var item = prom_goods[i]; if (item.prom_type == 1) { if (item.condition > this.data.goodsInputNum) { con = item; con.need = (item.condition - this.data.goodsInputNum).toFixed(2) + "件"; break; } } else { if (item.condition > all_price) { con = item; con.need = (item.condition - all_price).toFixed(2) + "元"; break; } } } this.setData({ hui_condition: con }); }, //-- 积分购 -- go_pay_integral: function () { this.get_sto(0) this.setData({ openSpecModal_inte: 1, goodsInputNum: 1 }); }, //-- 积分购普通购买 -- go_pay_integral_normal: function () { var th = this; if (th.data.sku_g_pt) { this.get_sto(1) this.setData({ openSpecModal_inte_normal: 1 }); } else { th.get_sto(1); th.get_sku(o.stoid, th.data.data, th.data.gid, 1, function () { th.setData({ is_normal: 1, openSpecModal_inte_normal: 1 }); }); } this.check_is_youhui(th.data.gid, 1); }, closeSpecModal_inte: function () { this.setData({ openSpecModal_inte: 0 }); }, closeSpecModal_inte_normal: function () { this.setData({ openSpecModal_inte_normal: 0 }); //要进行还原 this.get_sto(); this.setData({ sele_g: this.data.data, gid: this.data.data.goods_id }) this.sele_spec_chech_activity(); }, addCart_inte: function (t) { this.add_cart_func_inte(t); }, onShareTimeline() { getApp().globalData.no_clear=1; var store_name = getApp().globalData.config ? getApp().globalData.config.store_name : ''; if (!store_name) store_name = getApp().globalData.setting.appName; var pagePath = `goods_id=${this.data.sele_g.goods_id}&prom_type=9&group_id=${this.data.group_id}`; //当前页面url if(getApp().globalData.user_id){ pagePath+="&first_leader="+getApp().globalData.user_id; } //群id分享 if (getApp().globalData.groupchat_id) { pagePath+="&groupchat_id="+getApp().globalData.groupchat_id } let imgPath = this.data.iurl + this.data.luckGoInfo.original_img; return { title: this.data.data.goods_name + '-' + store_name, // imageUrl: this.data.gallery[0].image_url, imageUrl: imgPath, query: pagePath } }, clickCollapse() { this.setData({ flag: !this.data.flag, }) }, clickShare() { // if(!getApp().globalData.user_id){ // getApp().goto("/packageE/pages/togoin/togoin"); // return false; // } this.setData({ share_hidden: true, }); }, send() { this.setData({ share_hidden: false, }); }, cancel() { this.setData({ share_hidden: false, }); }, //积分购和拼团的普通购买的的时候,要判断有没有全场优惠活动 check_nor_promgood(goods_id, back) { var th=this; var user_id=getApp().globalData.user_id; //调用接口判断订单优惠, getApp().request.get("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + goods_id + "/0" + "/" + user_id, { success: async function (res) { if (res.data.code == 0 && res.data.data) { var obj = {}; var r_data = res.data.data; //暂时积分够 不和 优惠,阶梯重叠 if(th.data.zh_act){ obj = { act_id: th.data.zh_act.id, prom_type:7 } back(obj); return false; } if (r_data.collocationList) { obj = { act_id: r_data.collocationList[0].prom_id, prom_type:5 } obj.is_coupon=r_data.collocationPromList.is_coupon; back(obj); return false; } var is_ok=1; if (r_data.ladderLists) { var act_id = r_data.ladderLists[0].form_id; //-- 判断会员能不能参与阶梯促销 -- await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}).then(res => { if (res.data.code == 0 && res.data.data) { var prom_content = ""; //暂定优惠促销还不能重叠 if(res.data.data.good_object==0 && (r_data.promGoodsLists || th.data.zh_act)){ return false; } if(res.data.data.good_object==1){ r_data.promGoodsLists=null; } obj = { act_id: act_id, prom_type:10 } back(obj); is_ok=0 return false; } }) } if(!is_ok) return false; if(r_data.promGoodsLists){ obj = { act_id: r_data.promGoodsLists[0].prom_id, prom_type:3 } back(obj); return false; } obj = { act_id: 0, prom_type:0 } back(obj); } } }) }, // go_zh: function (e) { // // var id = e.currentTarget.dataset.id; // // getApp().goto("/packageB/pages/zuhegou/index/index?id=" + id); // }, // check_zh_acting: function (func) { // var isok = 1, item = this.data.sele_g; // //如果有组合购 // var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item.prom_id + "/" + getApp().globalData.user_id; // getApp().request.promiseGet(url, {}).then(res => { // if (res.data.code == 0 && res.data.data) { // if (res.data.data.is_show != 1) { // isok = 0; // } // //如果活动已经结束 // if (res.data.data.is_end == 1) { // isok = 0; // } // //已经结束 // if (ut.gettimestamp() > res.data.data.end_time) { // isok = 0; // } // //还未开始 // if (ut.gettimestamp() < res.data.data.start_time) { // isok = 0; // } // } else { // //未找到商品的活动 // isok = 0; // } // item.act = res.data.data; // func(isok); // }) // }, //获取更多秒杀 // get_more_flahs: async function (func) { // var f_more=false; // var user_id=getApp().globalData.user_id; // if(!user_id) user_id=0; // var url="/api/weshop/goods/listSkuFlash?store_id="+os.stoid+"&goods_id="+this.data.data.goods_id+"&user_id="+user_id; // //获取秒杀的多规格 // await getApp().request.promiseGet(url, {}).then(res=>{ // if(res.data.code==0 && res.data.data && res.data.data.length>0){ // f_more=res.data.data; // } // }) // if(!f_more) { // func(false); // return false; // } // //-- 秒杀的价格要更新 -- // for(let i in f_more){ // let item=f_more[i]; // f_more[i].prom_id=item.act_id; // f_more[i].prom_type=1; // if(item.goods_id==this.data.data.goods_id){ // continue; // } // var url="/api/ms/flash_sale/getNew/"+os.stoid+"/"+user_id+"/"+item.act_id; // await getApp().request.promiseGet(url, {}).then(rs=>{ // if(rs.data.code==0){ // f_more[i].price=rs.data.data.user_price; // } // }) // } // func(f_more); // }, //-- 判断是否有秒杀 -- ccc check_has_flash: function () { // var th=this; // var url="/api/weshop/activitylist/getGoodActInfo"; // var req_data={ // store_id:os.stoid,goodsidlist:this.data.data.goods_id,is_detail:1 // }; // //获取秒杀的多规格 // getApp().request.promiseGet(url, {data:req_data}).then(res=>{ // if(res.data.code==0 && res.data.data && res.data.data.length){ // th.setData({more_flash:res.data.data}); // } // }) }, //-- 跳转到秒杀商品详情页 -- ccc go_more_flash: function (e) { // var prom_id=e.currentTarget.dataset.id; // var goods_id=this.data.data.goods_id; // var url="/pages/goods/goodsInfo/goodsInfo?goods_id="+goods_id+"&prom_id="+prom_id+"&prom_type=1"; // getApp().goto(url); }, close_pop_more: function () { this.setData({ is_pop_more: 0 }) }, con_weixin: function () { getApp().con_wx(this); }, // 显示幸运购规则 showRules: function () { this.setData({ showRules: true, }); }, // 关闭幸运购规则 closeRules: function () { this.setData({ showRules: false, }); }, // 跳转 go: function (e) { var url = e.currentTarget.dataset.url; getApp().goto(url); }, // 查看奖励 showReward: function () { this.getPrizes(this.data.luckGoInfo.type); }, // 关闭奖励 closeReward: function () { this.setData({ showReward: false, }); }, // 获取优惠券奖励和服务项目奖励 getPrizes: function (type) { // let currentItem = this.data.list.pageData[currentItemIndex]; // let type = type; let self = this; let app = getApp(); // 分割type字符串 let typeArr = this.splitStringToArr(type); let prizesArr = []; let promiseArr = []; typeArr.forEach(function (item) { let obj = {}; obj.type = item; let promise = new Promise((resolve, reject) => { switch (item) { case 1: { //积分 obj.name = '积分'; obj.num = 'point'; prizesArr.push(obj); resolve(); break; }; case 2: { //成长值 obj.name = '成长值'; obj.num = 'grow'; prizesArr.push(obj); resolve(); break; }; case 3: { //优惠券 app.request.promiseGet('/api/weshop/prom/luckyCoupon/page', { data: { store_id: os.stoid, aid: self.data.luckGoInfo.id, } }).then(res => { if (res.data.code == 0) { obj.couponList = res.data.data.pageData; prizesArr.push(obj); resolve(); }; }); break; }; case 4: { //服务项目 app.request.promiseGet('/api/weshop/prom/luckyService/page', { data: { store_id: os.stoid, aid: self.data.luckGoInfo.id, } }).then(res => { if (res.data.code == 0) { obj.serviceList = res.data.data.pageData; prizesArr.push(obj); resolve(); }; }); break; }; case 5: { //预存金额 obj.name = 'prestore_name'; obj.num = 'prestore_money'; prizesArr.push(obj); resolve(); break; }; }; }); promiseArr.push(promise); Promise.all(promiseArr).then(() => { self.setData({ prizesArr, showReward: true, }); }); }); }, // 将type字符串分割成数组 splitStringToArr: function (typeStr) { var index; var newTypeArr = []; var typeStrArr = typeStr.split(','); typeStrArr.forEach(function (item) { index = parseInt(item); newTypeArr.push(index); }); // console.log('newTypeArr', newTypeArr); return newTypeArr; }, //弹出活动已经结束 timeUp() { wx.showToast({ title: '本商品活动已经结束!', icon: 'none', }); }, // 预览海报 previewPoster() { getApp().globalData.no_clear=1; wx.previewImage({ current: this.data.shareImgPath, // 当前显示图片的http链接 urls: [this.data.shareImgPath],// 需要预览的图片http链接列表 }); }, click_contact:function () { getApp().globalData.no_clear=1; }, //打开客服操作菜单 openCS() { // 判断会员状态 let user_info = getApp().globalData.userInfo; if (user_info == null || user_info.mobile == undefined || user_info.mobile == '' || user_info.mobile == null) { wx.navigateTo({ url: '/packageE/pages/togoin/togoin', }) return false; }; // csType/在线客服设置: // 0关闭(如果有设置热线电话,则显示拨打热线电话)、 // 1小程序客服、 // 2企业微信客服 if(this.data.sys_switch) { let csType = this.data.sys_switch.weapp_customertype; if(csType == 0) { // 拨打电话号码 this.contactService(); } else { this.getTel() .then(() => { self.setData({ hiddenCS: false, }); }); }; }; }, //关闭客服操作菜单 closeCS() { this.setData({ hiddenCS: true, }); }, async getUserBuyPromNum(prom_id){ var userInfo = getApp().globalData.userInfo; var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${prom_id}`; let res = await getApp().request.promiseGet(url, { data:{} }); let userbuynum=0 if(res.data.code==0 && res.data.data){ userbuynum=res.data.data.userbuynum } this.setData({ userbuynum }) // return userbuynum }, //要同步sele_g的指定门店,在有单独购买的时候,积分购和拼团 set_sele_g:function (sku_list){ var goods_id=this.data.sele_g.goods_id; for (var i in sku_list) { if(goods_id==sku_list[i].goods_id){ this.data.sele_g.pickup_ids=sku_list[i].pickup_ids; break; } } }, //-- 弹出框的同意的优化,重新获取定位 --- agree_pri:function (){ var th=this; var bconfig = th.data.bconfig; if (bconfig && bconfig.is_sort_storage) { wx.getLocation({ type: 'gcj02', success: function(res) { th.data.lat = res.latitude; th.data.lon = res.longitude; th.data.is_get_local_ok = 1; th.setData({ is_gps: 1 }); th.get_sto(); }, fail: function(res) { th.data.is_get_local_ok = 1; th.get_sto(); if (res.errCode == 2) { th.setData({is_gps: 0}); if (th.data.is_gps == 0) { getApp().confirmBox("请开启GPS定位", null, 25000, !1); } } else { th.setData({ is_gps: "3" }); } } }) } }, });