// pages/buy/myOrder_v2/myOrder_v2.js import Toast from "../../../dist/toast/toast"; import util from "../../../utils/util.js"; var location = require("../../../mybehaviors/location/location"); var app = getApp(); // var WxParse = require('../../../wxParse/wxParse.js'); // var qqmapsdk; Page({ behaviors: [location], /** * 页面的初始数据 */ data: { plugin_id: "", // 应用市场用来判断请求的接口 isDomain: false, clicktag: 0, // 方式提交订单多次点击 language: "", //不同购买方式 pre_order_url: "", // 预下单的请求url order_url: "", // 提交订单的请求url order_other_json: {}, // 每种类型下单的格外的请求数据 isCartsOrder: false, // 判断是不是购物车下单类型 options: {}, //路由参数购买方式 _root_tag: "", TAG_ACTION_BUY: "-2", //直接购买 TAG_ACTION_CART: "-1", //-1购物车结算 _goodsId: "", _optionsId: "", _total: 1, _cart_ids: [], currentAddId: "", currentAddress: {}, //O2O部分 store_id: 0, storeCarts: [], store_info: {}, linkinfo: { mobile: "", name: "", }, selectedMode: 0, selected: 0, dispatch: [], //优惠券标识 cup_notice: true, isShowCoupon: false, //是否显示优惠券 defaultAddress: {}, realname: "", //收件人 mobile: "", address: "", order_data: "", dispatch_price: 0, goods_price: 0, price: 0, discount_price: 0, deduction_price: 0, goodsInfo: {}, //优惠券 popupCouponSpecs: false, checkCouponList: [], coupon_size: 0, use_coupon_size: 0, coupons: [], //积分抵扣 其他抵扣 checkDeductionList: [], //个人信息和修改 myRealname: "", myIdcard: "", showMyinfo: false, showFrom: false, currentIndex: "999", //是否开启会员权益开关 isOpenRight: false, //是否选择权益商品 isRightChoose: false, //租赁商品标识 isRent: false, //租期 rentTime: [], //可以免租的件数 rentFree: "", //免押件数 rent_deposit_free: 0, //租赁协议 agreeCon: {}, //免租件数 rent_free: 0, rentShow: false, tenancy: "", //留言 note: {}, //跨境 isTaxGoods: false, // explain_title: "", // explain_content: "", //同意租赁协议 agreement: false, agreementShow: false, submit_active: true, //是否显示支付协议 AgreementPay: "", //同意支付协议 agreementPay: false, //支付协议 agreementPayShow: false, _show_address: false, // 发票 isShowInvoice: true, //71182 invoiceData: { papery_status: "", electron_status: "", }, invoice_list: {}, total_items: [], discount_amount_items: [], service_fee_items: [], //服务费 service: {}, isCash: "", goodsId: "", show1: false, isOpenTeam: false, //是否为一键开团 isJoinTeam: false, //是否为去参团 point: { lat: "", lng: "", }, city: "", defaultSelfCarry: {}, diyShow: false, orders_goods: {}, diyform: { form_id: "", diyform_data_id: "", pre_id: "", }, // 门店配送 start +++++++++++++++++++++++++++++++++++ markers_2: [{ // 获取返回结果,放到mks数组中 latitude: "", longitude: "", iconPath: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png", //图标路径 width: 20, height: 25, callout: { padding: "10rpx", borderRadius: "5rpx", }, },], polygons_2: [{ points: [], fillColor: "#FF88887F", strokeColor: "#FFF", strokeWidth: 2, zIndex: 1, },], deliveryScopeShow: false, default_member_address: "", delivery: { longitude: "113.324520", latitude: "23.099994", }, delivery_note: "", //门店配送说明 delivery_area: [ [116.403322, 39.920255] ], // 配送范围经纬度 locations: [116.403322, 39.920255], //门店经纬度 // 门店配送 end------------------------- integral: "", is_region: 0, activity_id: "", TemplateArray: [], orderLocationObj: { positioning_success: 0, province: "", city: "" }, isCueCoupon: false, openCueCoupon: false, getParams_status: false, //是否已请求接口 fromStock: "", // 是否是云库存商品 // 话费慢充 show_recharge_mobile: "", recharge_tips: "", recharge_mobile: "", // 自定义表单 hasGoodOpenDF: false, // 聚合cps iscps: false, cpstype: 2, cpsTxt: "", // end storeSearchBtn: {}, //门店搜索插件自定义下单页按钮 service_fee: [], //服务费、运费说明 //上门安装 插件名:live-install minDate: new Date().getTime(), installDateShow: false, installDate: null, //预约时间(10位时间戳) installDateText: "", install_comment: "", //安装备注,不要超过120个字符 location: {}, //定位信息 showLocation: false, showInstallPop: false, default_deduction: 0, //判断积分抵扣默认是否开启 showPage: true, //为了解决跳转的时候显示自提点的bug #64574 delivery_amount: 0, //门店起送金额 phone_bill_pro_goods: false, //是否话费充值pro版,根据url是否有mobile来判断 clickMiniTemplate: false, //判断是否已经点击订阅订单 // 供应商定位和经纬度 // supp_adress:'', supp_point: { lng: '', lat: '', address: '' }, recommend_goods: [], //满额包邮推荐商品 // 电费充值规格组合id electricity_Guide: "", electricity: false, // 充值户号 eleUser: [], ele_no_showAdress: false, // 二开页面设置插件-胜天半子#79514 sexSelect: '1', showArea: false, // 使用微信地址,页面设置插件 use_wechat_address: false, design_info: { cityName: "", countyName: "", detailInfo: "", provinceName: "", telNumber: "", userName: "", }, ferightExplainPop: false, freightExplain: {}, o2odeliverName: "自提点", //门店自提点自定义名称 o2oSelfCarry: {}, deliveryTimeShow: false, costSpecShow: false, selectCommunityShow: false, serviceRegionShow: false, //同城配送 cityDelivery: null, cityDelivery_community: {}, cityDelivery_community_id: 0, cityDelivery_deliveryTime: {}, yz_subscribe_disabled: false, //分时预约商品 reserve_tel_name: '', reserve_mobile: '', reserve_order: null, reserve_obj_text: "预约人员", plugin_setting: '', //插件信息 获取默认地址 camilo_resources_coupon_type: '', //插件id:140 卡券商品 卡券商品 1直冲2卡券 recharge_number: '', addressList_caller:"", //地址组件调用着,识别是地址调用还是发票插件调用 //油卡充值 oil_mobile:"", oil_account:"", oil_pre_id:"", consigneeName: '', // 自提点提货人自定义 consigneeMobile: '' // 自提点提货人手机号 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { wx.getStorage({ key: "yz_basic_info", success: (res) => { this.setData({ reserve_obj_text: res.data.lang.reserve_simple.reserve_obj || '预约人员', }); }, }); this.handleQueryData(options); let yz_basic_info = wx.getStorageSync('yz_basic_info'); this.setData({ vip_show:yz_basic_info.globalParameter.vip_show?yz_basic_info.globalParameter.vip_show:false }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { let language = wx.getStorageSync("langIndex"); this.setData({ language: language.en, }); const value = wx.getStorageSync("integral"); const loveName = wx.getStorageSync('yz_basic_info') ? wx.getStorageSync('yz_basic_info').love : ''; if (value) { this.setData({ integral: value, love_name: loveName }); } let plugin_setting = wx.getStorageSync("yz_basic_info").plugin_setting || ''; this.setData({ plugin_setting }); }, /** * 生命周期函数--监听页面显示 */ onShow: function () { this.data.submit_active = true; this.setData({ showPage: true, }); if (this.data.selected == 10) { // 供应商订单配送自动定位 this._getLocation((res) => { let point = app.qqMapTransBMap(parseFloat(res.location.lng), parseFloat(res.location.lat)); this.setData({ 'supp_point.lng': point.lng, 'supp_point.lat': point.lat, 'supp_point.address': res.address }); }); } }, tolocation() { wx.navigateTo({ url: '/packageC/o2o/o2oLocation_loc/o2oLocation_loc?tag=suppligoodsOrde', }); }, setFreightExplainPop() { this.setData({ ferightExplainPop: !this.data.ferightExplainPop }); }, getWxAdress() { wx.chooseAddress({ success: (res) => { console.log(res, 'sssss'); let e = res; this.setData({ userAdress: `${e.provinceName} ${e.cityName} ${e.countyName}`, design_address: `${e.detailInfo}`, design_info: e }); this._requestByAddress() } }); }, async handleQueryData(options) { //不同购买方式 this.setData({ options: options, }); if (options.tag) { this.setData({ _root_tag: options.tag, }); } let userLocationFlag = await this.checkAlbum("scope.userLocation"); console.log("userLocationFlag", userLocationFlag); if (!userLocationFlag) { return app.tips("获取位置失败,请重新进入后授权"); } if (!app.globalData.qqmapkey) { app._getTemplate().then((res) => { this.getCurrentOrderLocation(); }); } else { this.getCurrentOrderLocation(); } if (options.fromStock && options.fromStock != '') { this.setData({ fromStock: options.fromStock, }); } // 聚合cps if (options.iscps) { this.setData({ _root_tag: "cps", iscps: options.iscps, }); } if (options.mobile) { this.setData({ phone_bill_pro_goods: true, recharge_mobile: options.mobile }); } if (options.cpstype) { this.setData({ cpstype: options.cpstype, }); } //end if (options.activity_id) { this.setData({ activity_id: options.activity_id, }); } if (options.ind) { this.setData({ ind: options.ind, }); } if (options.reserve_order) { this.setData({ reserve_order: JSON.parse(options.reserve_order) }); } //是否为一键开团(拼团) let isOpenTeam = !app._isTextEmpty(options.level_id); //是否为去参团(拼团) let isJoinTeam = !app._isTextEmpty(options.team_id); this.setData({ isOpenTeam, isJoinTeam, }); if (options.changeSelfCarry) { let changeSelfCarry = JSON.parse(options.changeSelfCarry); if (options.ind == 12) { this.setData({ o2oSelfCarry: changeSelfCarry, }); } else { this.setData({ defaultSelfCarry: changeSelfCarry, }); } } //如果Storage里有保存自提点的信息则自动获取填写 let _zdtInfo = wx.getStorageSync("selfCarryInfo"); if (_zdtInfo) { _zdtInfo = JSON.parse(_zdtInfo); this.setData({ "linkinfo.name": _zdtInfo.distributionUserName || "", "linkinfo.mobile": _zdtInfo.distributionUserMobile || "", }); } // 设置主要参数 this.setData({ _goodsId: options.goodsId || "", _optionsId: options.optionsId || "", _total: options.total || 1, }); if (options.cart_ids && options.cart_ids != 'undefined') { this.setData({ _cart_ids: options.cart_ids ? JSON.parse(options.cart_ids) : [], }); } // if (this.data._root_tag == this.data.TAG_ACTION_BUY || this.data._root_tag == "store") { if (options.store_id && options.store_id != 'undefined') { // 门店拓客 this.setData({ store_id: options.store_id, }); } // } if (options.electricity && options.electricity == "electricity") { this.setData({ electricity: true }); } if(options.oil_account && options.oil_mobile){ this.setData({ oil_account:options.oil_account, oil_mobile:options.oil_mobile }); } // 置换亿栈债务人id if(options.debtId){ this.setData({ debtId:options.debtId }) } if (this.data._root_tag != "POrder" && this.data._root_tag != "store") { //第请求接口获取配送方式后,取默认第一个的dispatch_type_id再请求预下单接口; 挂单POrder走固定的配送方式 this.getDispatchMethod(); } else { this.handleBuy(); } }, // 获取配送方式 getDispatchMethod(cart_ids) { if (this.data._root_tag == "communityBuy") { // 社区团购直接设置,走配送方式接口返回为空,前端自定义,自提点不可更换 let dispatch = [{ dispatch_type_id: 8, name: "自提点" }]; this.setData({ dispatch: dispatch, selected: 8 }); this.handleBuy(); return; } let json = { goods_id: this.data._goodsId ? this.data._goodsId.toString() : "", cart_ids: this.data._cart_ids.toString() || cart_ids, store_id: this.data.options.store_id || this.data.options.groupStoreID, model: "", }; if (this.data._root_tag == "store") { json.model = "store"; } if (this.data._root_tag == "warehouse") { let _goods_ids = []; JSON.parse(this.options.goodCollection).forEach(item => { _goods_ids.push(item.goods_id); }); json.goods_ids = JSON.stringify(_goods_ids); } let urlStr = app.getNetAddresss("memberCart.dispatch-type.index"); app._postNetWork({ url: urlStr, data: json, success: (resdata) => { let res = resdata.data; if (res.result == 1) { if(!app._isTextEmpty(this.data.debtId)){ // 置换亿栈地址默认为快递 this.setData({ dispatch:[{dispatch_type_id: 1,name: "快递"}], selected:res.data && res.data.length > 0 ? res.data[0].dispatch_type_id : 0 }) }else{ this.setData({ dispatch: res.data, selected: res.data && res.data.length > 0 ? res.data[0].dispatch_type_id : 0, //默认第一 }); this.data.dispatch.forEach((items, i) => { if (items.dispatch_type_id == 8) { console.log("有自提点配送方式,请求定位获取自提点列表"); if (this.data.ind) { this.setData({ selected: this.data.ind, selectedMode: i, ind: false, }); } } else if (items.dispatch_type_id == 12) { //从门店自提点列表选择后来 if (this.data.ind == 12 && this.data.o2oSelfCarry && this.data.o2oSelfCarry.id) { this.setData({ selected: 12, selectedMode: i }); } } }); } if (this.data._root_tag == "store") { this._getStoreCartBuy(this.data.storeCarts); } else { this.handleBuy(); } } else { wx.showToast({ icon: "none", title: res.msg, duration: 1000, }); } }, fail: (res) => { console.log(res); }, }); }, handleBuy(is_again) { // is_again判断是否重新请求数据 选择地址后是1 优惠券或者抵扣是2 switch (this.data._root_tag) { case this.data.TAG_ACTION_BUY: case "appointment_goods": case "yun_sign_goods": case "yunqian_api": case "cps": case "starGroup": case "blindBox": case "fromExchange": case "newRetail": case "auction": case "zhpGroup": case "o2oDeposit": // 通常是单个商品的预下单 if (!is_again) { if (this.data.options.store_id) { // 门店拓客 门店预约 this._initStore("is_activity"); } else if (this.data.options.groupStoreID && this.data.options.groupStoreID != 0 && this.data.options.groupStoreID != "undefined") { //门店拼团 this._initStore(); } // 只为了获取配送方式 } else if (this.data._root_tag == "fromExchange" && is_again === "2") { //会员中心-兑换中心-去兑换(商城商品) this._getDataActionBuy(0); return; } this._getDataActionBuy(); // 直接购买 break; case this.data.TAG_ACTION_CART: // 商城购物车结算 case "packagBuy": // 商品套餐 case "-10": // 一口价 case "communityBuy": // 社区团购 this.data.isCartsOrder = true; // 通常是购物车的预下单 this._getDataActionCart(); break; case "store": this.data.isCartsOrder = true; if (!is_again) { // 门店购物车购买 if (this.data.options.isCash == 1) { // 门店过期(续费 isCash =='1')商品下单 this.getCashGood(); } else { this._initStore(); } } else { this._getDataActionStoreCart(); // 门店结算 } break; case "rentCartBuy": case "rentBuy": if (!is_again) { // 租赁购物车或租赁预下单 this.setData({ currentIndex: "999", isRent: true, }); this._getRentDataActionCart([], []); this._getRentTimeList(); this._judgeIsRight(); } else { this._rentGoodBuy(); } break; case "POrder": //挂单商品 this.getPendingOrder_type(); //批发区下单页类型判断,即导航栏判断 break; default: this._getDataActionBuy(); // 直接购买 } }, // 处理单个商品的预下单 设置预下单链接 提交订单链接 类型额外的数据 handleDataActionBuyUrl(json, tag) { if (this.data.isRent) { // 租赁 this.data.order_url = "plugin.lease-toy.api.order.create"; } else if (this.data.fromStock == 1 || this.data.fromStock == 2) { //云库存 this.data.pre_order_url = app.getNetAddresss("plugin.agency.api.goods-buy.index"); this.data.order_url = "plugin.agency.api.create.index"; let agencySaleman = this.selectComponent("#agencySaleman"); if (this.data.fromStock == 2) { this.data.order_other_json = { is_retail: true, //云库存零售传值 salesman_uid: (agencySaleman && agencySaleman.data.self_member_id) || "" //销售员id }; } } else if (this.data.isOpenTeam || this.data.isJoinTeam) { // 拼团 this.data.order_other_json = { option_level_id: this.options.option_level_id, //规格层级id }; if (this.data.isOpenTeam) { this.data.order_other_json.level_id = this.options.level_id; //一键开团 拼团层级id this.data.order_other_json.isOpenTeam =1; //一键开团 拼团层级id this.data.pre_order_url = "plugin.fight-groups.frontend.controllers.team.pre-open-team"; } else if (this.data.isJoinTeam) { this.data.order_other_json.team_id = this.options.team_id; //一键参团 拼团层级id this.data.pre_order_url = "plugin.fight-groups.frontend.controllers.team.pre-join-team"; } this.data.order_url = "plugin.fight-groups.frontend.controllers.create.index"; if (this.options.groupStoreID && this.options.groupStoreID != 0 && this.options.groupStoreID != "undefined") { this.data.order_other_json.store_id = this.options.groupStoreID; //门店拼团 this.data.pre_order_url = this.data.isOpenTeam ? "plugin.fight-groups.frontend.store.frontend-team.pre-open-team" : "plugin.fight-groups.frontend.store.frontend-team.pre-join-team"; this.data.order_url = "plugin.fight-groups.frontend.store.create.index"; } } else if (this.options.tag == "appointment_goods") { this.data.order_url = "plugin.appointment.frontend.order.create"; } else if (this.options.type == "groupBuy_open" || this.options.type == "groupBuy_join") { this.data.order_other_json = { at_id: this.options.at_id, //活动ID leader_id: this.options.leader_id || 0, //团长ID }; delete json.option_id; this.data.pre_order_url = this.options.type == "groupBuy_open" ? "plugin.together-purchase.api.team.preOpenTeam" : "plugin.together-purchase.api.team.preJoinTeam"; this.data.order_url = "plugin.together-purchase.api.create.index"; } else if (this.options.type == "grabGroup_open" || this.options.type == "grabGroup_join") { //抢团 this.data.order_other_json = { at_id: this.options.at_id, //活动ID leader_id: this.options.leader_id || 0, //团长ID snatch_option_id: this.data._optionsId, }; json.option_id = 0; this.data.pre_order_url = this.options.type == "grabGroup_open" ? "plugin.snatch-regiment.api.team.preOpenTeam" : "plugin.snatch-regiment.api.team.preJoinTeam"; this.data.order_url = "plugin.snatch-regiment.api.create.index"; } else if (this.data._root_tag == "POrder") { this.data.order_other_json = { pending_order_type: this.data.selected, //批发订单使用类型 }; this.data.pre_order_url = "plugin.pending-order.frontend.goods-buy.index"; this.data.order_url = "plugin.pending-order.frontend.create.index"; } else if (this.data._root_tag == "o2oDeposit") { //门店定金团 this.data.order_other_json = { store_id: this.options.store_id || 0, //门店ID }; this.data.pre_order_url = "plugin.deposit-ladder.frontend.store.activity-buy"; } else if (this.options.store_id) { if (this.data._root_tag == "reserve") { this.data.order_other_json = { date_id: this.options.date_id, store_id: this.options.store_id, goods_id: this.options.goodsId }; if (tag == 'order') { this.data.order_other_json.date_id = this.options.date_id; } this.data.pre_order_url = "plugin.store-reserve.frontend.GoodsBuy.index"; this.data.order_url = "plugin.store-reserve.frontend.create.index"; } else { //门店拓客 this.data.order_other_json = { store_id: this.options.store_id || 0, //门店ID }; if (tag === "order") { this.data.order_other_json.mobile = this.data.linkinfo.mobile; this.data.order_other_json.realname = this.data.linkinfo.name; this.data.order_other_json.cart_ids = []; } this.data.pre_order_url = "plugin.store-cashier.frontend.store.goods-buy"; } // 走门店下单 } else if (this.options.type == "starGroup") { //星拼乐 this.data.order_other_json = { at_id: this.options.at_id, //活动ID leader_id: this.options.leader_id || 0, //团ID goods_data: { goods_id: this.data._goodsId, total: this.options.total, option_id: this.options.option_id, }, }; this.data.pre_order_url = "plugin.star-spell.frontend.team.joinTeam"; this.data.order_url = "plugin.star-spell.frontend.create.index"; } else if (this.data._root_tag == "blindBox") { this.data.order_other_json = { activity_id: this.data.activity_id, //活动ID goods_id: this.data._goodsId, }; this.data.pre_order_url = "plugin.blind-box.api.buy"; this.data.order_url = "plugin.blind-box.api.create"; } else if (this.data._root_tag == "fromExchange") { //会员中心-兑换中心 if (this.options.store_id && this.options.store_id != "undefined") { this.data.order_other_json.store_id = this.options.store_id; this.data.pre_order_url = "plugin.store-cashier.frontend.store.exchange-center"; } else { this.data.pre_order_url = "coupon.exchange-center.exchange-buy"; } } else if (this.options.tag == "newRetail") { //新零售 0-自由零售 1-成为代理商订单 2-自由发货 3-线上零售 4-进货订单 5-销售代理套餐订单 this.data.order_other_json = { retail_state: Number(this.options.retailState), level_id: Number(this.options.NRLevelId) || 0, //等级id sales_id: Number(this.options.sales_id) || 0, //记录id }; // if (this.options.retailState == 2) { // this.data.order_other_json.goods = JSON.parse(this.options.goods) || []; // 自由发货 // } this.data.pre_order_url = this.newRetailApi(this.options.retailState); if (Number(this.options.retailState) == 0) { this.data.order_url = "plugin.new-retail.frontend.create.ordinary"; // 自由发货 } else { this.data.order_url = "plugin.new-retail.frontend.create.index"; } } else if (this.data._root_tag == "auction") { //拍卖商品 this.data.order_other_json = { fixed_price: this.data.options.fixed_price, acution_sn: this.data.options.acution_sn, }; this.data.pre_order_url = "plugin.auction.api.goods-buy"; this.data.order_url = "plugin.auction.api.order-create"; } else if (this.data._root_tag == "zhpGroup") { this.data.pre_order_url = "plugin.zhp-group-lottery.frontend.goods.get-goods-Info"; json.option_id = this.data._optionsId ? this.data._optionsId : '0'; this.data.order_other_json = { activity_id: this.data.activity_id, }; this.data.order_url = "plugin.zhp-group-lottery.frontend.order.index"; } else if (this.data._root_tag == "groupWork") { this.data.order_other_json = { alliance_detail_id: this.data.options.alliance_detail_id, activity_option_id: this.data.options.activity_option_id }; this.data.pre_order_url = "plugin.group-work.frontend.modules.order.controllers.buy.index"; this.data.order_url = "plugin.group-work.frontend.modules.order.controllers.create.index"; } else if (this.data._root_tag == "warehouse") { this.data.order_other_json = { goods: this.options.goodCollection }; this.data.pre_order_url = "plugin.warehouse.frontend.controllers.takeDelivery.goods-buy"; this.data.order_url = "plugin.warehouse.frontend.controllers.takeDelivery.order-create"; }else if(!app._isTextEmpty(this.data.debtId)){ this.data.order_other_json = { debtor_id: this.data.options.debtId }; this.data.pre_order_url = "plugin.debt-shop.frontend.goods-buy"; this.data.order_url = "plugin.debt-shop.frontend.create"; } if (this.data.reserve_order != null) { this.data.order_url = "plugin.reserve-simple.frontend.order.create"; let { service_id, obj_id, begin_time } = this.data.reserve_order; let customer_name = this.data.reserve_tel_name; let customer_tel = this.data.reserve_mobile; json.reserve_order = { service_id, obj_id, begin_time, customer_name, customer_tel }; json.dispatch_type_id = 0; } if (this.options.electricity == "electricity") { this.data.order_other_json.account_id = this.options.account_id; } if (!this.data.pre_order_url) { this.data.pre_order_url = "order.goods-buy"; } if (!this.data.order_url) { if (this.data.iscps) { // 如果是聚合cps的商品走立即购买换这个接口 this.data.order_url = "plugin.aggregation-cps.api.create-order"; } else { this.data.order_url = "order.create"; } } if (this.options.merchant_meeting) { //线下招商会商品下单,多传一个活动id this.data.order_other_json.merchant_meeting = this.options.merchant_meeting; } if (this.data.default_deduction != 0) { // 默认积分抵扣 json.no_deduction_ids = this.data.default_deduction; } if (this.data.cityDelivery && this.data.cityDelivery.future_state == 1) { if (this.data.cityDelivery_deliveryTime.start_time && this.data.cityDelivery_deliveryTime.end_time) { json.expect_start_time = this.data.cityDelivery_deliveryTime.start_time; json.expect_end_time = this.data.cityDelivery_deliveryTime.end_time; } } if (this.data.use_wechat_address && (this.data.selected == 1 || this.data.selected == 0)) { // 只用于快递,并且开启了使用微信地址 let usejson = { address: this.data.design_address || "", city: this.data.design_info.cityName, district: this.data.design_info.countyName, id: "", isdefault: "", latitude: "", longitude: "", mobile: this.data.design_info.telNumber, province: this.data.design_info.provinceName, street: "", uid: "", uniacid: "", username: this.data.design_info.userName, zipcode: "", }; // 没有选择微信地址的时候,是整个adress都为空 json.address = usejson.address?encodeURIComponent(JSON.stringify(usejson)):[]; } return Object.assign(json, this.data.order_other_json); }, // 处理购物车的预下单 设置预下单链接 提交订单链接 类型额外的数据 handleDataActionCartUrl(json, tag) { if (this.data._root_tag == "communityBuy") { //社区团购 this.data.pre_order_url = "plugin.package-deliver.frontend.cartBuy.index"; this.data.order_other_json = { dispatch_type_id: 8, package_deliver_id: this.options.package_deliver_id, group_id: this.options.group_id, }; this.data.order_url = "plugin.package-deliver.frontend.create.index"; } else if (this.data._root_tag == "-10") { // 一口价下单 this.data.pre_order_url = "plugin.pack-fixed-price.api.cart-buy.index"; if (tag === "order") { this.data.order_other_json.cart_ids = JSON.stringify(this.data._cart_ids); } this.data.order_url = "plugin.pack-fixed-price.api.create.index"; } if (this.data._root_tag == "packagBuy") { let packagJson = JSON.parse(this.data.options.packagJson); this.data.order_other_json = { package_id: packagJson.package_id, goods: JSON.stringify(packagJson.goods_list), }; console.log(this.data.order_other_json, 963); this.data.pre_order_url = "plugin.goods-package.frontend.package.package-buy.index"; } if (tag === "order" && this.data._root_tag != "-10" && this.data._root_tag != "packagBuy") { // 购物车下单需要购物车id this.data.order_other_json.cart_ids = JSON.stringify(this.data._cart_ids); } if (!this.data.pre_order_url) { this.data.pre_order_url = "order.cart-buy"; } if (!this.data.order_url) { this.data.order_url = "order.create"; } if (this.data.default_deduction != 0) { // 默认积分抵扣 json.no_deduction_ids = this.data.default_deduction; } return Object.assign(json, this.data.order_other_json); }, newRetailApi(states) { let state = Number(states); //新零售 0-自由零售 1-成为代理商订单 2-自由发货 3-线上零售 4-进货订单 5-销售代理套餐订单c if (state == 0) { return "plugin.new-retail.frontend.order.ordinaryPay"; } else if (state == 1) { return "plugin.new-retail.frontend.order.purchaseRetailGoods"; } else if (state == 2) { return "plugin.new-retail.frontend.order.freeSend"; } else if (state == 3) { return "plugin.new-retail.frontend.order.retailCodePay"; } else if (state == 4) { return "plugin.new-retail.frontend.order.purchaseStock"; } else if (state == 5) { return "plugin.new-retail.frontend.order.retailCodePay"; } }, setPopShow(evt) { let name = evt.currentTarget.dataset.name; this.setData({ [name]: !this.data[name] }); }, setInstallDateShow() { this.setData({ installDateShow: !this.data.installDateShow, }); }, bindInstallDateChange(e) { this.setInstallDateShow(); let val = e.detail; this.setData({ installDate: parseInt(val / 1000), installDateText: util.formatTime(new Date(val)), }); }, // 门店配送-查看配送范围 showDeliveryMap() { this.setData({ deliveryScopeShow: true, }); }, showLocationPop() { this.setData({ showInstallPop: !this.data.showInstallPop, }); }, deliveryScopeShowClose() { this.setData({ deliveryScopeShow: false, }); }, confirmLocation(e) { this.setData({ "location.latitude": e.detail.lat, "location.longitude": e.detail.lng, "location.address": e.detail.address, }); this.showLocationPop(); }, _checkTaxGoods(data) { if (data && data.status) { //显示个人信息 this.setData({ showMyinfo: data.status, }); this.data.isTaxGoods = true; } else { this.data.isTaxGoods = false; this.setData({ showMyinfo: false, }); //隐藏个人信息 } }, _getMemberInfo(data) { this.setData({ myRealname: data.realname, myIdcard: data.idcard, }); }, // _getExplain(data) { // this.data.explain_title = data.explain_title; // this.data.explain_content = data.explain_content; // }, //保税真实信息添加 alertMyInfo() { this.setData({ showFrom: true, }); }, confirmFrom(e) { this.setData({ myRealname:e.detail.name, myIdcard:e.detail.card, showFrom: e.detail.status, }); }, //更换自提点 gotochangeSelfCarry() { let that = this; //保存自提点信息到本地,任务编号: 35632 let _memberInfoes = { distributionUserName: this.data.linkinfo.name ? this.data.linkinfo.name : "", distributionUserMobile: this.data.linkinfo.mobile ? this.data.linkinfo.mobile : "", }; try { wx.setStorageSync("selfCarryInfo", JSON.stringify(_memberInfoes)); } catch (e) { console.log(e); } let url = "/packageC/selfCarry/selfCarry_info/selfCarry_info?tag=" + that.data.options.tag + "&goodsId=" + that.data.options.goodsId + "&cart_ids=" + that.data.options.cart_ids + "&optionsId=" + that.data.options.optionsId + "&total=" + that.data.options.total + "&goods=" + JSON.stringify(this._assembleGoods()) + "&ind=" + that.data.selected; console.log(that.data.isOpenTeam, "that.data.isOpenTeam"); if (that.data.isOpenTeam) { url = url + "&level_id=" + that.options.level_id + "&option_level_id=" + that.options.option_level_id; } else if (that.data.isJoinTeam) { url = url + "&team_id=" + that.options.team_id + "&option_level_id=" + that.options.option_level_id; } if (this.data._root_tag == "warehouse") { // 圈仓 url = url + "&goodCollection=" + this.options.goodCollection; } if (this.options.store_id) { // 门店id url = url + "&store_id=" + this.options.store_id; } wx.redirectTo({ url: url, }); }, // 切换配送方式 setDispatch(e) { let title = e.detail.title; this.data.dispatch.forEach((items) => { if (items.name == title) { this.setData({ selected: items.dispatch_type_id, selectedMode: e.detail.index, }); } }); if (this.data.selected == 10) { // 供应商订单配送自动定位 this._getLocation((res) => { let point = app.qqMapTransBMap(parseFloat(res.location.lng), parseFloat(res.location.lat)); this.setData({ 'supp_point.lng': point.lng, 'supp_point.lat': point.lat, 'supp_point.address': res.address }); }); } if (this.data.selected == "11") { //selected = 11 同城配送 this.getDeliverySetting(); } else { this._requestByAddress(); } }, getDeliverySetting() { if (this.data.cityDelivery != null) { this._requestByAddress(); return; } let urlStr = app.getNetAddresss("plugin.city-delivery.frontend.order.getDeliverySetting"); app._postNetWork({ url: urlStr, success: (resdata) => { var res = resdata.data; if (res.result == 1) { let changeData = {}; changeData.cityDelivery = res.data; if (res.data.fence_setting) { changeData["markers_2[0].longitude"] = res.data.fence_setting.store_longitude; changeData["markers_2[0].latitude"] = res.data.fence_setting.store_latitude; changeData["delivery.longitude"] = res.data.fence_setting.store_longitude; changeData["delivery.latitude"] = res.data.fence_setting.store_latitude; if (res.data.fence_setting.delivery_area) { changeData["polygons_2[0].points"] = res.data.fence_setting.delivery_area.map((item) => { let o = {}; o.longitude = item[0]; o.latitude = item[1]; return o; }); } } changeData.need_lat = 1; this.data.order_data.forEach((item) => { // *1 只是为了转数字类型 if ((res.data.min_amount * 1) > (item.goods_price * 1)) { changeData.yz_subscribe_disabled = true; //商品价格不够最低配送,按钮灰色不能提交 } }); this.setData(changeData); this.selectComponent(`.deliveryTime`).setListData(res.data.time_setting, res.data.default_choose); if (!res.data.default_choose) { this._requestByAddress(); } } } }); }, //直接购买 _getDataActionBuy(is_exchange) { let that = this; let _json = { goods_id: this.data._goodsId, total: this.data._total, option_id: this.data._optionsId || '0', member_coupon_ids: this._assembleCoupons(), orders: JSON.stringify(this._assembleDeduction()), address: encodeURIComponent(JSON.stringify(this.data.currentAddress)), //encodeURIComponent为了解决地址#号问题 dispatch_type_id: this.data.selected, mark: this.data.options.mark ? this.data.options.mark : 0, }; //自提点开启 if (this.data.selected == 8) { _json.package_deliver_id = this.data.defaultSelfCarry.id; } if (this.data.selected == 12) { // 门店自提点 _json.package_deliver_id = this.data.o2oSelfCarry.id; } if (this.data._root_tag == "fromExchange") { //兑换中心商品 _json.data = JSON.parse(this.data.options.exchangeData); _json.is_exchange = is_exchange == 0 ? 0 : 1; } if (this.options.tag == "newRetail" && this.options.retailState == 2) { _json.goods = JSON.parse(this.options.goods) || []; // 自由发货 } _json = this.handleDataActionBuyUrl(_json); let urlStr = app.getNetAddresss(this.data.pre_order_url); wx.showLoading({ title: "加载中", icon: "none", duration: 1500, }); if (this.data.clicktag == 0) { this.setData({ clicktag: 1, }); app._postNetWork({ url: urlStr, data: _json, success: (resdata) => { var res = resdata.data; if (res.result == 1) { console.log(that.options, res, 'ssawwww'); if (that.options.tag == "reserve") { // 门店预约商品 if (res.data.reserve_date) { this.setData({ reserveDate: res.data.reserve_date.date }); } if (res.data.reserve_deduction) { this.setData({ reserve_deduction: res.data.reserve_deduction }); } if (res.data.reserve_deduction_love) { this.setData({ reserve_deduction_love: res.data.reserve_deduction_love }); } } if (that.options.type == "groupBuy_open" || that.options.type == "groupBuy_join") { that.setData({ isGetAgreementPay: true, AgreementPay: that.data.goodsInfo.together_purchase_agreement ? that.data.goodsInfo.together_purchase_agreement : "", }); } that.setData({ goodsInfo: res.data, cup_notice: true, diyShow: false, }); that._setViewData(res.data); //设置界面 if (this.data._root_tag == "fromExchange") { //兑换中心 that.defaultSelectCoupon(res.data.discount.member_coupons); //设置默认优惠券信息 } else if (res.data.discount) { that._initCoupon(res.data.discount); //设置优惠券信息 } } else { wx.showModal({ title: "提示", content: res.msg, success(res) { if (res.confirm) { try { const orderErrReturnUrl = wx.getStorageSync('orderErrReturnUrl') if (orderErrReturnUrl) { wx.redirectTo({ url: orderErrReturnUrl }); } else{ wx.navigateBack({ delta: 1 }); } } catch (e) { wx.navigateBack({ delta: 1 }); } } else if (res.cancel) { wx.navigateBack({ delta: 1 }); } }, }); } setTimeout(() => { that.setData({ cup_notice: true, clicktag: 0, }); wx.hideLoading(); }, 1000); }, fail: (res) => { console.log(res); }, }); } }, //购物车结算 _getDataActionCart() { let that = this; let _json = { cart_ids: this.data._cart_ids.toString(), member_coupon_ids: this._assembleCoupons(), orders: JSON.stringify(this._assembleDeduction()), address: encodeURIComponent(JSON.stringify(this.data.currentAddress)), dispatch_type_id: this.data.selected, }; if (this.data.selected == 8) { _json.package_deliver_id = this.data.defaultSelfCarry.id; } if (this.data.selected == 12) { // 门店自提点 _json.package_deliver_id = this.data.o2oSelfCarry.id; } _json = this.handleDataActionCartUrl(_json); let urlStr = app.getNetAddresss(this.data.pre_order_url); app._getNetWork({ url: urlStr, data: _json, success: (resdata) => { let res = resdata.data; if (res.result == 1) { that.setData({ goodsInfo: res.data, cup_notice: true, diyShow: false, }); that._initCoupon(res.data.discount); //设置优惠券信息 that._setViewData(res.data); //设置界面 } else { that.setData({ cup_notice: true, }); Toast(res.msg); wx.showModal({ title: "提示", content: res.msg, showCancel: false, success(res) { wx.navigateBack({ delta: 1, }); }, }); } }, fail: (res) => { console.log(res); }, }); }, // 获取门店数据 _initStore(str) { var that = this; this.setData({ recipient_name: "", recipient_mobile: "", }); let store_id = this.options.groupStoreID && this.options.groupStoreID != "undefined" ? this.options.groupStoreID : this.data.store_id; let urlStr = app.getNetAddresss("plugin.store-cashier.frontend.store.get-store-info.get-info-by-store-id"); urlStr += "&store_id=" + store_id; app._getNetWork({ url: urlStr, success: (resdata) => { var res = resdata.data; if (res.result == 1) { that.setData({ store_info: res.data, recipient_name: res.data.store_carry.name, recipient_mobile: res.data.store_carry.number, }); if (str !== "is_activity" && !that.options.groupStoreID) { that._getDataActionStoreCart(); } // 门店配送规则数据 if ((res.data.store_delivery && res.data.store_delivery.delivery_status) || res.data.need_lat == 1) { that.setData({ need_lat: res.data.need_lat, //跑腿配送插件,res.data.need_lat为1的时候,需要设置经纬度 delivery_status: res.data.store_delivery.delivery_status, delivery_note: res.data.store_delivery ? res.data.store_delivery.delivery_note : "", delivery_amount: res.data.store_delivery ? res.data.store_delivery.delivery_amount : 0, }); let delivery_area = res.data.store_delivery && res.data.store_delivery.delivery_area != "" ? res.data.store_delivery.delivery_area : []; let locations = res.data.store_delivery ? res.data.store_delivery.locations : {}; let arr_delivery_area = []; delivery_area.forEach((item, index) => { arr_delivery_area.push([Number(item.R), Number(item.Q)]); }); that.setData({ delivery_area: arr_delivery_area, locations: [Number(locations.longitude).toFixed(6), Number(locations.latitude).toFixed(6)], }); if (that.data.locations && that.data.locations.length > 0) { that.setData({ "markers_2[0].longitude": that.data.locations[0], "markers_2[0].latitude": that.data.locations[1], "delivery.longitude": that.data.locations[0], "delivery.latitude": that.data.locations[1], }); } if (that.data.delivery_area && that.data.delivery_area.length > 0) { let points = []; for (let i = 0; i < that.data.delivery_area.length; i++) { points.push({ longitude: that.data.delivery_area[i][0], latitude: that.data.delivery_area[i][1], }); } that.setData({ "polygons_2[0].points": points, }); } } } else { Toast(res.msg); } }, fail: (res) => { console.log(res); }, }); }, //门店过期商品下单 getCashGood() { let urlStr = app.getNetAddresss("plugin.store-cashier.frontend.store.enter.getSetGoodsId"); let that = this; app._getNetWork({ url: urlStr, data: {}, success: (resdata) => { var res = resdata.data; if (res.result == 1) { that.setData({ goods_id: res.data.goods_id, }); if (!res.data.store) { that.setData({ _root_tag: "-2", _goodsId: res.data.goods_id, store_id: 0, }); that._getDataActionBuy(); } else { that.setData({ _root_tag: "store", store_info: res.data.store, store_id: res.data.store.id || res.data.store.store_id, }); that._getDataActionStoreCart(); } } else { Toast(res.msg); } }, fail: (res) => { console.log(res); }, }); }, //门店购物车商品 _getDataActionStoreCart() { if (!this.data.store_id) { return; } if (this.data.storeCarts.length > 0) { // 已经有storeCarts就不重复请求了 this.setData({ cup_notice: true, }); this._getStoreCartBuy(this.data.storeCarts); return; } let that = this; let urlStr = app.getNetAddresss("plugin.store-cashier.frontend.shoppingCart.member-cart.index"); urlStr += "&store_id=" + this.data.store_id; app._getNetWork({ url: urlStr, success: (resdata) => { let res = resdata.data; if (res.result == 1) { let storeCarts = []; res.data.forEach((item) => { storeCarts.push(item.id); }); that.setData({ cup_notice: true, storeCarts: storeCarts, }); this.getDispatchMethod(that.data.storeCarts.toString()); } else { that.setData({ cup_notice: true, }); wx.showToast({ icon: "none", title: "无商品", duration: 1500, }); } }, fail: (res) => { console.log(res); }, }); }, //门店结算 _getStoreCartBuy(cart_ids) { let that = this; let urlStr = app.getNetAddresss("plugin.store-cashier.frontend.store.cart-buy"); urlStr += "&cart_ids=" + cart_ids; urlStr += "&store_id=" + that.data.store_id; urlStr += "&dispatch_type_id=" + this.data.selected; if (this.data.selected == 8) { urlStr += "&package_deliver_id=" + this.data.defaultSelfCarry.id; } if (this.data.selected == 12) { // 门店自提点 urlStr += "&package_deliver_id=" + this.data.o2oSelfCarry.id; } urlStr += "&member_coupon_ids=" + this._assembleCoupons(); urlStr += "&orders=" + JSON.stringify(this._assembleDeduction()); urlStr += "&address=" + encodeURIComponent(JSON.stringify(this.data.currentAddress)); app._getNetWork({ url: urlStr, success: (resdata) => { var res = resdata.data; if (res.result == 1) { that.setData({ goodsInfo: res.data, }); that._initCoupon(res.data.discount); //设置优惠券信息 that._setViewData(res.data, cart_ids); //设置界面 } else { that.setData({ none_loc: false, }); if (that.data.showAddressList) { return; } if (res.msg === "请完善地址经纬度信息") { // 门店配送提示不能返回上一页 #62588 wx.showModal({ title: '提示', content: "请完善收件人的地址经纬度信息", confirmText: '确认', showCancel: false, success(res) { if (res.confirm) { console.log(res); } } }); } else { wx.showModal({ title: '提示', content: res.msg, confirmText: '确认', showCancel: false, success(response) { if (response.confirm) { if (res.msg.indexOf('配送范围') < 0) { wx.navigateBack({ delta: 1, }); } } } }); // Toast(res.msg); // setTimeout(() => { // wx.navigateBack({ // delta: 1, // }); // }, 4000); } } }, fail: (res) => { console.log(res); }, }); }, //租赁购物车结算 _getRentDataActionCart(right, rent) { if (this.data._root_tag == "rentCartBuy") { let that = this; let urlStr = app.getNetAddresss("plugin.lease-toy.api.order.cart-buy"); urlStr += "&lease_rights=" + right; urlStr += "&lease_term=" + rent; urlStr += "&cart_ids=" + this.data._cart_ids.toString(); urlStr += "&member_coupon_ids=" + this._assembleCoupons(); urlStr += "&orders=" + JSON.stringify(this._assembleDeduction()); urlStr += "&address=" + encodeURIComponent(JSON.stringify(this.data.currentAddress)); urlStr += "&dispatch_type_id=" + this.data.selected; //自提点开启 if (this.data.selected == 8) { urlStr += "&package_deliver_id=" + this.data.defaultSelfCarry.id; } if (this.data.selected == 12) { // 门店自提点提货 urlStr += "&package_deliver_id=" + this.data.o2oSelfCarry.id; } urlStr += "&mark=" + (this.data.options.mark ? this.data.options.mark : 0); app._getNetWork({ url: urlStr, success: (resdata) => { var res = resdata.data; if (res.result == 1) { that.setData({ goodsInfo: res.data, cup_notice: true, }); that._initCoupon(res.data.discount); //设置优惠券信息 that._setViewData(res.data); //设置界面 } else { that.setData({ cup_notice: true, }); Toast(res.msg); } }, fail: (res) => { console.log(res); }, }); } else if (this.data._root_tag == "rentBuy") { let that = this; let urlStr = app.getNetAddresss("plugin.lease-toy.api.order.goods-buy"); urlStr += "&lease_rights=" + right; urlStr += "&lease_term=" + rent; urlStr += "&goods_id=" + this.data._goodsId; urlStr += "&total=" + this.data._total; urlStr += "&option_id=" + this.data._optionsId; urlStr += "&member_coupon_ids=" + this._assembleCoupons(); urlStr += "&orders=" + JSON.stringify(this._assembleDeduction()); urlStr += "&address=" + encodeURIComponent(JSON.stringify(this.data.currentAddress)); urlStr += "&dispatch_type_id=" + this.data.selected; //自提点开启 if (this.data.selected == 8) { urlStr += "&package_deliver_id=" + this.data.defaultSelfCarry.id; } if (this.data.selected == 12) { // 门店自提点提货 urlStr += "&package_deliver_id=" + this.data.o2oSelfCarry.id; } urlStr += "&mark=" + (this.data.options.mark ? this.data.options.mark : 0); if (this.data.clicktag == 0) { this.setData({ clicktag: 1, }); app._getNetWork({ url: urlStr, success: (resdata) => { var res = resdata.data; if (res.result == 1) { that.setData({ goodsInfo: res.data, cup_notice: true, }); that._initCoupon(res.data.discount); //设置优惠券信息 that._setViewData(res.data); //设置界面 } else { Toast(res.msg); } setTimeout(() => { that.setData({ clicktag: 0, }); }, 1000); }, fail: (res) => { console.log(res); }, }); } } }, //获取租期列表 _getRentTimeList() { let that = this; let urlStr = app.getNetAddresss("plugin.lease-toy.api.lease-term.index"); app._getNetWork({ url: urlStr, success: (resdata) => { var res = resdata.data; if (res.result == 1) { that.setData({ rentTime: res.data.list, rentFree: res.data.level.rent_free, agreeCon: res.data.lease_toy_set, rent_deposit_free: res.data.level.deposit_free, rent_free: res.data.level.rent_free, }); // let article_1 = that.data.agreeCon.lease_toy_pact ? that.data.agreeCon.lease_toy_pact : ''; /** * WxParse.wxParse(bindName , type, data, target,imagePadding) * 1.bindName绑定的数据名(必填) * 2.type可以为html或者md(必填) * 3.data为传入的具体数据(必填) * 4.target为Page对象,一般为this(必填) * 5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选) */ // WxParse.wxParse('article_1', 'html', article_1, that); } }, fail: (res) => { console.log(res); }, }); }, _rentGoodBuy() { if (this.data.isOpenRight) { let rentTimeRight = ""; const value = wx.getStorageSync("rentTimeRight"); if (value) { rentTimeRight = value; } this._getRentDataActionCart(rentTimeRight, []); } else { if (this.data.currentIndex == "999") { let rentTimeSelf = ""; const value = wx.getStorageSync("rentTimeSelf"); if (value) { rentTimeSelf = value; } if (!app._isTextEmpty(rentTimeSelf)) { this._getRentDataActionCart([], rentTimeSelf); } else { this._getRentDataActionCart([], []); } } else { let rentTimeChoose = ""; const value = wx.getStorageSync("rentTimeChoose"); if (value) { rentTimeChoose = value; } if (!app._isTextEmpty(rentTimeChoose)) { this._getRentDataActionCart([], rentTimeChoose); } } } }, // 挂单 getPendingOrder_type() { //获取批发区下单页类型判断 //挂单不适合配送方式 let urlStr = app.getNetAddresss("plugin.pending-order.frontend.wholesale-area.pending-order-type"); let that = this; app._getNetWork({ url: urlStr, data: { small_type: 1, }, success: (resdata) => { var res = resdata.data; if (res.result == 1) { if (res.data.status == 0) { let dispatch = [{ name: "零售", dispatch_type_id: 0, }, { name: "自用", dispatch_type_id: 1, }, ]; that.setData({ dispatch: dispatch, selected: 0, }); } else { let dispatch = [{ name: "自用", dispatch_type_id: 1, },]; that.setData({ dispatch: dispatch, selected: 1, }); } that._getDataActionBuy(); } else { Toast(res.msg); } }, fail: (res) => { console.log(res); }, }); }, //显示地址pop showAddress() { //获取收货地址 this.setData({ showAddressList: true, addressList_caller:"express" }); }, invoiceShowAddressFun(){ this.setData({ showAddressList: true, addressList_caller:"invoice" }); }, confirmSelectAddress(e) { let info; if (e.detail.loc) { info = e.detail.form; } else { info = e.detail; } if(this.data.addressList_caller == "express"){ this._setAddressViewData(info); this._requestByAddress(); this.setData({ showAddressList: false, }); } else if(this.data.addressList_caller == "invoice") { this.selectComponent('.invoicePop').setAddress(info); this.setData({ showAddressList: false, }); } }, //设置地址界面 _setAddressViewData(model) { if (model == undefined || model == "" || model == []) { return; } if (this.data.selected == "11") { if (!model.latitude || !model.longitude) { app.confirm("请重新编辑您的地址,在地图上选择您所在的位置", null, false); return; } } //设置地址id this.data.currentAddId = model.id || model.address_id; this.data.currentAddress = model; this.setData({ realname: app._isTextEmpty(model.username) ? "" : model.username, mobile: app._isTextEmpty(model.mobile) ? "" : model.mobile, address: app._isTextEmpty(model.province) ? "" : model.province + " " + model.city + " " + model.district + " " + (app._isTextEmpty(model.street) ? "" : model.street + " ") + model.address, }); }, //组装优惠券json信息 _assembleCoupons() { let coupons = []; for (let i = 0; i < this.data.checkCouponList.length; i++) { if (this.data.is_coupon_SELE) { //开启折叠优惠券 let conpon_arr = this.data.checkCouponList[i].has_conpon_id; // console.log("............", this.data.coupons_temp[this.data.checkCouponList[i].coupon_id].num); coupons = coupons.concat(conpon_arr.slice(0, this.data.coupons_temp[this.data.checkCouponList[i].coupon_id].num)); this.setData({ use_coupon_size: coupons.length, }); } else { coupons.push(this.data.checkCouponList[i].id); } } return coupons; }, //组装优惠抵扣信息 _assembleDeduction() { let deductions = []; for (let i = 0; i < this.data.checkDeductionList.length; i++) { if (this.data.checkDeductionList[i]) { deductions.push(this.data.checkDeductionList[i]); } } return deductions; }, _initDiyForm() { if (JSON.stringify(this.data.orders_goods) != "{}") { //解决填写完表单后,去操作其他会重新请求接口的覆盖了,导致填写记录为空了 return; } let orders_goods = {}; for (let j = 0; j < this.data.goodsInfo.orders.length; j++) { for (let i = 0; i < this.data.goodsInfo.orders[j].order_goods.length; i++) { if (this.data.goodsInfo.orders[j].order_goods[i].diy_form) { let model = {}; model.pre_id = this.data.goodsInfo.orders[j].order_goods[i].pre_id; model.diyform_data_id = ""; orders_goods[model.pre_id] = model; } } } this.setData({ orders_goods: orders_goods, }); }, findGoodOpen() { for (let j = 0; j < this.data.goodsInfo.orders.length; j++) { if (this.data.goodsInfo.orders[j].camilo_resources_coupon_type) { // 卡券商品 this.setData({ camilo_resources_coupon_type: this.data.goodsInfo.orders[j].camilo_resources_coupon_type, }); if (this.data.plugin_setting.yz_supply_camilo_resources.is_default_order_address == 1) { // 是否开启默认地址 this.setData({ _show_address: true }); this.data.currentAddId = 1; //地址没有id 写死一个 let { address, city, district, province, street, mobile, username } = this.data.plugin_setting.yz_supply_camilo_resources; this._setAddressViewData({ address, city, district, province, street, mobile, username, address_id: 1 }); // 设置地址界面 } } if (this.options.electricity && this.options.electricity == "electricity") { this.setData({ electricity_Guide: this.data.goodsInfo.orders[j].order_goods[0].pre_id, ele_no_showAdress: this.data.goodsInfo.orders[j].order_goods[0] ? this.data.goodsInfo.orders[0].not_show_address : false, eleUser: this.data.goodsInfo.orders[j].order_goods[0] ? this.data.goodsInfo.orders[0].user_account : '' }); } if (this.data.goodsInfo.orders[j].require_mobile) { console.log("有商品开启话费慢充!!!"); let _tips = ""; if (this.data.goodsInfo.orders[j].tips) { _tips = this.data.goodsInfo.orders[j].tips.replace(/ { if (item.checked) { this._screenDiscount(data.orders[i], item); } }); } } // let that = this; this.findGoodOpen(); // 循环订单列表是否开启表单和慢充 if (!this.data.getParams_status) { this.data.getParams_status = true; this.getParams(cart_ids); } this.checkOrders(data); //判断有订单是否有绑定域名 this.data.dispatch.forEach((items, i) => { if (items.dispatch_type_id == 8) { console.log("有自提点配送方式,请求定位获取自提点列表"); if (JSON.stringify(this.data.defaultSelfCarry) == "{}") { this._getLocation(() => { this.getList("shop"); }); } } if (items.dispatch_type_id == 12) { console.log("有门店自提点配送方式,请求定位获取自提点列表"); if (!this.data.o2oSelfCarry.id) { this._getLocation(() => { this.getList("o2o"); }); } } }); if(this.data.selected == 11){ this.getDeliverySetting() } this.setData({ order_data: data.orders, price: data.total_price, //设置总价格(合计) total_items: data.amount_items, discount_amount_items: data.discount_amount_items, service_fee_items: data.service_fee_items, service: data.orders[0].order_fees, none_loc: true, clicktag: 0, }); if (this.data._root_tag == "store" && this.data.price < 0) { wx.showToast({ icon: "none", title: "下单错误", duration: 1500, }); } if (data.dispatch.use_wechat_address) { this.setData({ use_wechat_address: data.dispatch.use_wechat_address }); } }, isOrderAddress_M(_data) { //判断是否有订单需要填写地址,有一单需要填写地址则需要填写地址才可以下单 //return false 提交订单需要填写地址 for (let j = 0; j < _data.length; j++) { if (this.data.phone_bill_pro_goods) { if (!_data[j].not_show_address) { // console.log("有订单需要填写地址"); return false; } } else if(this.data.oil_account && this.data.oil_mobile){ if (!_data[j].not_show_address ) { // console.log("有订单需要填写地址"); return false; } }else { if (!_data[j].need_address) { console.log("有订单需要填写地址"); return false; } } } return true; }, checkOrders(data) { for (let i = 0; i < data.orders.length; i++) { if (data.orders[i].plugin_id === 58) { this.setData({ plugin_id: 58, }); } } for (let i = 0; i < data.orders.length; i++) { if ("domain" in data.orders[i]) { this.setData({ isDomain: true, domain: data.orders[i].domain, }); } else { this.setData({ isDomain: false, }); return; } } }, // 整合了发票、是否显示个人信息接口 getParams(cart_ids) { let json = {}; let that = this; if (this.data._root_tag == "store" && !cart_ids) { return; } else if (this.data._root_tag == "store" && cart_ids) { this.setData({ _cart_ids: cart_ids, }); } let good_ids = []; // 不清楚this.data.options.cart_ids这个字段作用,但是这个字段导致选择完自提点后返回报错,打印这个cart_ids为字符串得undefined if (this.data.options.cart_ids && this.data.options.cart_ids != "undefined") { this.setData({ _cart_ids: this.data.options.cart_ids ? JSON.parse(this.data.options.cart_ids) : [], }); } if (this.data.isCartsOrder) { // 购物车商品下单的循环商品 this.setData({ _cart_ids: this.data.options.cart_ids ? JSON.parse(this.data.options.cart_ids) : [], }); for (let j = 0; j < this.data.goodsInfo.orders.length; j++) { for (let i = 0; i < this.data.goodsInfo.orders[j].order_goods.length; i++) { good_ids.push(this.data.goodsInfo.orders[j].order_goods[i].goods_id); } } } else { if (this.data.options.goodsId) { this.setData({ _goodsId: Number(this.data.options.goodsId), }); } good_ids.push(this.data._goodsId); } let urlStr = app.getNetAddresss("from.div-from.get-params"); json = { goods_ids: JSON.stringify(good_ids), }; app._getNetWork({ url: urlStr, data: json, success: (resdata) => { var res = resdata.data; if (res.result == 1) { if (that.options.type != "groupBuy_open" || that.options.type != "groupBuy_join") { //拼购显示自己的支付协议 that.setData({ isGetAgreementPay: true, AgreementPay: res.data.getPayProtocol ? res.data.getPayProtocol : "", }); } this.setData({ freightExplain: res.data.freightExplain }); try { that.setData({ storeSearchBtn: res.data.storeSearch || {}, openCueCoupon: res.data.getCouponSet == 0 ? false : true, //是否开启下单优惠券提示 }); that._checkTaxGoods(res.data.isDisplay); if (res.data.getMemberInfo) { that._getMemberInfo(res.data.getMemberInfo); } // if (res.data.explain) { // that._getExplain(res.data.explain); // } that.getInvoice(res.data.sinvoice); } catch (error) { console.log(error); } } else { that.setData({ isGetAgreementPay: false, }); } }, fail: (res) => { console.log(res); }, }); }, // 发票数据 getInvoice(data) { let address = { realname: this.data.realname, mobile: this.data.mobile, address: this.data.address } this.selectComponent('.invoicePop').initData({sinvoice: data, address}); }, subInvoice(data) { // 弹窗获取发票数据 this.setData({ invoice_list: data.detail, //72638 }); }, //初始化优惠券 _initCoupon(data) { if (data.deduction_lang) { this.setData({ deduction_lang: data.deduction_lang }); } this.setData({ isShowCoupon: data.whether_show_coupon == "1" ? true : false, }); let coupon = data.member_coupons; this.setData({ is_coupon_SELE: data.coupon_show == "1" ? true : false, }); this.setData({ coupon_size: coupon.length, }); if (coupon != undefined && coupon != "" && coupon != null) { if (this.data.is_coupon_SELE) { //按过期时间排序 let arr2 = coupon.sort((a, b) => { return a.expired_at - b.expired_at; }); this.initSelectCoupon(arr2); } else { this.setData({ coupons: coupon, }); } } }, //初始化带有默认选中优惠券 defaultSelectCoupon(coupon) { let checkCouponList = []; coupon.forEach((item, ind) => { if (item.checked == true) { checkCouponList.push(item); } }); this.setData({ coupon_size: coupon.length, coupons: coupon, use_coupon_size: checkCouponList.length, checkCouponList: checkCouponList, }); console.log(this.data.coupons); }, //折叠优惠券 initSelectCoupon(coupon) { let coupon_data = coupon; let result = []; let temp = {}; for (let i = 0; i < coupon_data.length; i++) { let num = 0; //同类型已选中并符合使用条件的优惠券数量 let valid = 0; //最高限制使用数量 let has_conpon_id = [coupon_data[i].id]; if (coupon_data[i].checked) { num++; } if (coupon_data[i].valid) { valid++; } for (let j = i + 1; j < coupon_data.length; j++) { // console.log("33333333==================", coupon_data[j].coupon_id) if (coupon_data[i].coupon_id == coupon_data[j].coupon_id) { if (coupon_data[j].checked) { num++; } if (coupon_data[j].valid) { valid++; } has_conpon_id.push(coupon_data[j].id); coupon_data.splice(j, 1); j--; } } let _data = coupon_data[i]; _data.has_conpon_id = has_conpon_id; _data.valid_num = valid; result.push(_data); temp[coupon_data[i].coupon_id] = {}; temp[coupon_data[i].coupon_id].num = num; } this.setData({ coupons_temp: temp, coupons: result, }); console.log(this.data.coupons, this.data.coupons_temp); }, changeConpon(e) { let valObj = e.target.dataset.item; let num = e.detail; let index = e.target.dataset.index; console.log("=================", e.detail, valObj); if (num > valObj.valid_num) { wx.showToast({ icon: "none", title: "使用张数已达上限", duration: 1000, }); clearTimeout(this.data.timer); this.data.timer = setTimeout(() => { // 注意此时修改 value 后会再次触发 change 事件 this.data.coupons_temp[valObj.coupon_id].num = valObj.valid_num; this.setData({ coupons_temp: this.data.coupons_temp, }); }, 200); return; } else if (num == "" || num == undefined || num == 0) { wx.showToast({ icon: "none", title: "暂不使用请取消勾选", duration: 1000, }); return; } else { clearTimeout(this.data.timer); this.data.coupons_temp[valObj.coupon_id].num = num; this.setData({ coupons_temp: this.data.coupons_temp, }); } // clearTimeout方法,以便控制连续触发带来的无用调用 let value = { detail: true, currentTarget: { dataset: { index: index, item: valObj, }, }, }; if (this.data.timeoutId) { clearTimeout(this.data.timeoutId); // 先清除之前的延时,并在下面重新开始计算时间 } this.data.timeoutId = setTimeout(() => { // 100毫秒以后执行方法 this.selectCoupon(value); }, 1000); // 如果还没有执行就又被触发,会根据上面的clearTimeout来清除并重新开始计算 }, //提货人输入 infonamebtn(e) { let infoname = e.detail; this.setData({ "linkinfo.name": infoname, }); }, infonameclear() { this.setData({ "linkinfo.name": "", }); }, infomobileclear() { this.setData({ "linkinfo.mobile": "", }); }, //提货人手机输入 infomobilebtn(e) { let infomobile = e.detail; this.setData({ "linkinfo.mobile": infomobile, }); }, //选择地址后重新计算数据 _requestByAddress() { //重新计算 this.handleBuy(1); }, //判断是否选择权益商品 _judgeIsRight() { if (this.data.isOpenRight) { this.setData({ isRightChoose: false, }); } else { this.setData({ isRightChoose: true, }); } }, //权益商品选择事件 rentSelect(e) { let isOpenRight = e.detail; this.setData({ isOpenRight: isOpenRight, }); //1.判断是否选择权益商品,有则租期按照会员权益日期计算 this._clearStorage(); this._judgeIsRight(); if (this.data.isOpenRight) { let arr = []; this.data.order_data.forEach((val) => { val.order.order_goods.forEach((item) => { let obj = { goods_id: item.goods_id, total: item.total, }; arr.push(obj); }); }); wx.setStorage({ key: "rentTimeRight", data: JSON.stringify(arr), }); this._getRentDataActionCart(JSON.stringify(arr), []); } else if (!this.data.isOpenRight) { this.setData({ currentIndex: "999", }); this._getRentDataActionCart([], []); } }, //清除租赁localstorage _clearStorage() { wx.removeStorage({ key: "rentTimeSelf", }); wx.removeStorage({ key: "rentTimeChoose", }); wx.removeStorage({ key: "rentTimeRight", }); }, switchChange(e) { let dindex = e.currentTarget.dataset.dindex; let orindex = e.currentTarget.dataset.orindex; let pre_id = this.data.order_data[orindex].pre_id; let item = e.currentTarget.dataset.item; let codeind = e.currentTarget.dataset.codeind; if (item.checked) { this.setData({ ['order_data[' + orindex + '].order_service_fees[' + codeind + '].checked']: false, ['order_data[' + orindex + '].order_service_fees[' + codeind + '].show']: false, ["service_fee." + pre_id]: [], }); } else { this.setData({ ['order_data[' + orindex + '].order_service_fees[' + codeind + '].checked']: true, ['order_data[' + orindex + '].order_service_fees[' + codeind + '].show']: true, ["service_fee." + pre_id]: [item.code], }); } this.serviceFeesHandle(this.data.order_data[orindex], this.data.order_data[orindex].order_deductions[dindex]); //重新计算 this.handleBuy(2); }, //抵扣选择响应 discountHandle(e) { let dischecked = e.detail; let dindex = e.currentTarget.dataset.dindex; let orindex = e.currentTarget.dataset.orindex; let tag = e.currentTarget.dataset.tag; if (!this.data.none_loc) { // 超出门店配送范围不可以使用积分抵扣 dischecked = false; } if (tag == "discount") { if (Object.prototype.toString.call(this.data.order_data[orindex].order_deductions) == "[object Object]") { // object要用.的方式调用 this.setData({ ["order_data[" + orindex + "].order_deductions." + dindex + ".checked"]: dischecked, }); } else if (Object.prototype.toString.call(this.data.order_data[orindex].order_deductions) == "[object Array]") { this.setData({ ["order_data[" + orindex + "].order_deductions[" + dindex + "].checked"]: dischecked, }); } this._screenDiscount(this.data.order_data[orindex], this.data.order_data[orindex].order_deductions[dindex]); } else if (tag == "serviceFee") { let pre_id = this.data.order_data[orindex].pre_id; this.setData({ ["service_fee." + pre_id]: e.detail, }); console.log(e.detail, this.data.service_fee, 's:::::'); this.serviceFeesHandle(this.data.order_data[orindex], this.data.order_data[orindex].order_deductions[dindex]); } //重新计算 this.handleBuy(2); }, // 留言 noteHandle(e) { let preid = e.target.dataset.preid; let item = e.target.dataset.item; let val = e.detail.value; this.setData({ ["note." + preid]: val, }); // 触发抵扣事件 this.deductionListHandle(item); }, //筛选抵扣 _screenDiscount(item, value) { this.deductionListHandle(item, value); }, serviceFeesHandle(item, value) { //服务费、运费复选框 this.deductionListHandle(item); }, deductionListHandle(item, value) { let checkDeductionList = this.data.checkDeductionList; let service_fee = this.data.service_fee; let note = this.data.note; let isHasPreId = false; if (checkDeductionList.length > 0) { checkDeductionList.map((deduction, index) => { if (deduction && deduction.pre_id == item.pre_id) { isHasPreId = true; if (value && value.checked) { // 选中的时候检查是否有对应的code if (deduction.deduction_ids && deduction.deduction_ids.indexOf(value.code) == -1) { deduction.deduction_ids.push(value.code); } } else if (value && !value.checked) { // 取消选中的时候检查去掉对应的code if (deduction.deduction_ids && deduction.deduction_ids.indexOf(value.code) > -1) { deduction.deduction_ids.splice(deduction.deduction_ids.indexOf(value.code), 1); } } // 留言和安装选项重新赋值 deduction.note = note[item.pre_id]; deduction.service_fee = service_fee[item.pre_id]; } }); } if (!isHasPreId) { checkDeductionList.push({ deduction_ids: value && value.code ? [value.code] : [], pre_id: item.pre_id, note: note[item.pre_id], service_fee: service_fee[item.pre_id], }); } this.setData({ checkDeductionList }); // console.log('checkDeductionList:', this.data.checkDeductionList) }, //选择自定义租期 rentSelfChoose() { this._clearStorage(); this.setData({ currentIndex: "999", }); this.setData({ rentShow: true, }); }, rentShowClose(event) { if (event.detail === "confirm") { if (app._isTextEmpty(this.data.tenancy)) { wx.showToast({ icon: "none", title: "租期不能为空", duration: 1000, }); return; } let obj = { days: this.data.tenancy, lease_term_id: 0, }; wx.setStorage({ key: "rentTimeSelf", data: JSON.stringify(obj), }); this._getRentDataActionCart([], JSON.stringify(obj)); // 异步关闭弹窗 setTimeout(() => { this.setData({ rentShow: false, }); }, 1000); } else { this.setData({ rentShow: false, }); console.log("取消自定义租期!!!"); } }, //自定义租期数值绑定 rentShowinp(e) { let rentval = e.detail; this.setData({ tenancy: rentval, }); }, //自定义租期值清除 rentclear() { this.setData({ tenancy: "", }); }, //选择租期 rentTimeChoose(e) { let item = e.currentTarget.dataset.item; let index = e.currentTarget.dataset.index; if (this.data.currentIndex == index) { this.setData({ currentIndex: "999", }); this._clearStorage(); this._getRentDataActionCart([], []); } else { this._clearStorage(); this.setData({ currentIndex: index, }); let obj = { days: 0, lease_term_id: item.id, }; wx.setStorage({ key: "rentTimeChoose", data: JSON.stringify(obj), }); this._getRentDataActionCart([], JSON.stringify(obj)); } }, //优惠券 showCoupon() { if (this.data.coupon_size == 0) { wx.showToast({ icon: "none", title: "暂无优惠券使用", duration: 1500, }); return; } this.setData({ popupCouponSpecs: true, }); }, //选择优惠券 selectCoupon(e) { let couponBol = e.detail; let index = e.currentTarget.dataset.index; let item = e.currentTarget.dataset.item; console.log(couponBol, index, item, e.type); this.setData({ ["coupons[" + index + "].checked"]: couponBol, }); this._screenCoupon(couponBol, item, e.type); //设置view this._setCouponView(); //重新计算 this.handleBuy(2); }, //筛选数据优惠券状态 _screenCoupon(couponBol, valObj, type) { let tarValue = valObj; let checkCouponList = this.data.checkCouponList; if (this.data.checkCouponList.length > 0) { for (let i = 0; i < this.data.checkCouponList.length; i++) { if (this.data.checkCouponList[i].id == tarValue.id) { checkCouponList.splice(i, 1); } } } if (this.data.is_coupon_SELE && type) { //开启折叠优惠券并且为点击复选框为选中状态 this.data.coupons_temp[tarValue.coupon_id].num = couponBol ? 1 : 0; this.setData({ coupons_temp: this.data.coupons_temp }); } if (couponBol) { //选中添加 checkCouponList.push(tarValue); } else { //取消选中 this.setData({ cup_notice: true }); } this.setData({ checkCouponList: checkCouponList }); }, //设置view _setCouponView() { this.setData({ use_coupon_size: this.data.checkCouponList.length, }); }, mustSelectCoupon() { // 后台设置,下单前判断有优惠券数量但没使用时,是否提示并展开选择优惠券弹窗,只提示一次! if (this.data.openCueCoupon && this.data.coupon_size > 0 && this.data.use_coupon_size < 1 && !this.data.isCueCoupon) { //显示优惠券列表弹窗 // 按钮文字改变 this.setData({ isCueCoupon: true, popupCouponSpecs: true, }); return true; } return false; }, //关闭优惠卷 couponclose() { this.setData({ popupCouponSpecs: false, }); }, //租赁协议 agreementbtn(e) { let agreeBol = e.detail; this.setData({ agreement: agreeBol, }); }, //租赁弹窗显示 showAgreement() { this.setData({ agreementShow: true, }); }, agreementClose() { this.setData({ agreementShow: false, }); }, toSite() { wx.navigateTo({ url: "/packageE/others/application_market/binding_site/binding_site?plugin_id=" + this.data.plugin_id, }); }, //获取模板id getTemplate() { let urlStr = app.getNetAddresss("member.member.getMiniTemplateCorrespond"); let that = this; app._getNetWork({ url: urlStr, data: { small_type: 1, }, success: (resdata) => { var res = resdata.data; if (res.result == 1) { let array = []; for (let i = 0; i < res.data.length; i++) { array.push(res.data[i].template_id); } that.setData({ TemplateArray: array, }); if (that.data.TemplateArray.length > 0) { wx.requestSubscribeMessage({ tmplIds: that.data.TemplateArray, success(res) { that.setData({ clickMiniTemplate: true }); console.log(res, "success"); that.submitBtn(); }, fail(err) { console.log(err, "err"); that.submitBtn(); }, }); } else { that.submitBtn(); } } else { Toast(res.msg); } }, fail: (res) => { console.log(res); }, }); }, //提交订单 submit() { if (this.data.yz_subscribe_disabled) return; if (this.data.clickMiniTemplate) { this.submitBtn(); } else { this.getTemplate(); } }, checkDispatch() { if (this.data.selected == 8 || this.data.selected == 12 || this.data.selected == 15) { if (app._isTextEmpty(this.data.linkinfo.name)) { wx.showModal({ title: "提示", content: "请填写提货人姓名", showCancel: false, confirmText: "确定", confirmColor: "#000000", success: (res) => {}, }); this.data.submit_active = true; return false; } if (app._isTextEmpty(this.data.linkinfo.mobile)) { wx.showModal({ title: "提示", content: "请输入提货人手机", showCancel: false, confirmText: "确定", confirmColor: "#000000", success: (res) => {}, }); this.data.submit_active = true; return false; } } if (this.data.selected == 8 || this.data.selected == 12) { if ((this.data.selected == 8 && app._isTextEmpty(this.data.defaultSelfCarry)) || (this.data.selected == 12 && app._isTextEmpty(this.data.o2oSelfCarry))) { wx.showToast({ title: "该地区暂无自提点", duration: 1000, icon: "none", }); return false; } if ((this.data.selected == 8 && app._isTextEmpty(this.data.defaultSelfCarry.id)) || (this.data.selected == 12 && app._isTextEmpty(this.data.o2oSelfCarry.id))) { wx.showModal({ title: "提示", content: "请选择自提点", showCancel: false, confirmText: "确定", confirmColor: "#000000", success: (res) => {}, }); this.data.submit_active = true; return false; } //保存自提点信息到本地,任务编号: 35632 let _memberInfoes = { distributionUserName: this.data.linkinfo.name ? this.data.linkinfo.name : "", distributionUserMobile: this.data.linkinfo.mobile ? this.data.linkinfo.mobile : "", }; try { wx.setStorageSync("selfCarryInfo", JSON.stringify(_memberInfoes)); } catch (e) { console.log(e); } } if (this.data.store_info.delivery_information == 1) { if (this.data.selected == "2" && (app._isTextEmpty(this.data.linkinfo.name) || app._isTextEmpty(this.data.linkinfo.mobile))) { wx.showToast({ icon: "none", title: "请输入提货人信息", duration: 1500, }); return false; } if (this.data.selected == "2" && !/^[0-9]{1,}$/.test(this.data.linkinfo.mobile)) { wx.showToast({ icon: "none", title: "请输入正确的联系电话", duration: 1500, }); this.data.submit_active = true; return false; } } if (!this.data._show_address && (this.data.selected == 0 || this.data.selected == 1 || this.data.selected == 3) && !this.data.ele_no_showAdress && !this.data.reserve_order) { if ((this.data.selected == 0 || this.data.selected == 1) && this.data.use_wechat_address) { // 页面设计插件和商城设置 - 订单设置 - 调用微信地址开启了 只用于快递 if (app._isTextEmpty(this.data.design_info.userName)) { app.tips('请输入收货人姓名'); this.data.submit_active = true; return false; } if (app._isTextEmpty(this.data.design_info.telNumber)) { app.tips('请填写收货手机号'); this.data.submit_active = true; return false; } if (app._isTextEmpty(this.data.userAdress)) { app.tips('请选择所在区域'); this.data.submit_active = true; return false; } if (app._isTextEmpty(this.data.design_address)) { app.tips('请输入街道、楼牌号等'); this.data.submit_active = true; return false; } return true; } if (app._isTextEmpty(this.data.currentAddId)) { wx.showModal({ title: "提示", content: "请选择收货地址", showCancel: false, confirmText: "确定", confirmColor: "#000000", success: (res) => { this.showAddress(); }, }); this.data.submit_active = true; return false; } } return true; }, checkSubmit() { if (this.mustSelectCoupon()) { // 提示优惠券【51723】 return false; } if (this.data.isDomain) { if (app._isTextEmpty(this.data.domain)) { wx.showToast({ icon: "none", title: "请绑定站点", duration: 1500, }); return false; } } if (this.data.cpstype == "1" && this.data.cpsTxt == "") { wx.showToast({ title: "请输入帐号", duration: 1000, icon: "none", }); return false; } // 手机慢充 if (this.data.show_recharge_mobile && !this.data.recharge_mobile) { wx.showToast({ icon: "none", title: "请输入充值手机号码!", duration: 1500, }); return false; } else if (this.data.show_recharge_mobile && this.data.recharge_mobile) { let reg_txt = /^[1][0-9]{10}$/; if (!reg_txt.test(this.data.recharge_mobile)) { wx.showToast({ icon: "none", title: "请输入正确的充值手机号码!", duration: 1500, }); return false; } } if (this.data.reserve_order != null) { if (this.data.reserve_tel_name == '') return app.tips("请输入联系人"); if (this.data.reserve_mobile == '') return app.tips("请输入联系电话"); } if (this.data.camilo_resources_coupon_type == 1) { // 卡券商品 if (!this.data.recharge_number) { return app.tips("请输入充值账号"); } } if (this.options.tag == "newRetail" && this.options.retailState == 3 && this.data.price == 0) { //新零售-自由发货下单不能为0 wx.showToast({ icon: "none", title: "价格有误", duration: 1500, }); this.data.submit_active = true; return false; } if (this.data.hasGoodOpenDF && !this._checkDiyForm()) { wx.showToast({ icon: "none", title: "请先填写表单", duration: 1500, }); this.data.submit_active = true; return false; } if (!this.checkDispatch()) { return false; } if (this.data.AgreementPay && !this.data.isRent) { if (!this.data.agreementPay) { wx.showToast({ icon: "none", title: "请勾选支付协议", duration: 1500, }); return false; } } if (this.data.isRent && !this.data.agreement) { wx.showToast({ icon: "none", title: "请勾选租赁协议", duration: 1500, }); this.data.submit_active = true; return false; } return true; }, submitBtn() { let that = this; if (!this.checkSubmit()) { return; } let json = this._assembleJson(); if (this.data.store_id && this.options.tag != "reserve") { if (this.isHasInstall()) { //有勾选了上门安装服务,需要填写经纬度和时间 if (!this.data.installDate) { app.tips("请选择预约时间!"); return; } if (!this.data.location && !this.data.location.latitude) { app.tips("请选择地理位置!"); return; } let live_install_json = { live_install: { longitude: this.data.location.longitude, latitude: this.data.location.latitude, reserve_time: this.data.installDate, install_comment: this.data.install_comment, }, }; Object.assign(json, live_install_json); } this.data.order_url = "plugin.store-cashier.frontend.store.create"; } switch (this.data._root_tag) { case "store_projects_goods": //* 门店核销 this.data.order_url = "plugin.store-projects.frontend.order.create"; json.goods_type = "store_projects_goods"; break; } if (this.data.selected == "10") { if (json.supplier_driver_distribution_address) { if (app._isTextEmpty(json.supplier_driver_distribution_address.lat) || app._isTextEmpty(json.supplier_driver_distribution_address.lng)) { app.tips('请选择供应商配送定位'); return; } } } if (this.data.selected == "11") { // selected == "11" 同城配送 if (this.data.cityDelivery.distance_type == 3) { if (!this.data.cityDelivery_community.id) { app.tips("请选择配送社区"); return; } json.community_id = this.data.cityDelivery_community.id; } if (this.data.cityDelivery.future_state == 1) { if (!this.data.cityDelivery_deliveryTime.start_time || !this.data.cityDelivery_deliveryTime.end_time) { app.tips("请选择配送时间"); return; } json.expect_start_time = this.data.cityDelivery_deliveryTime.start_time; json.expect_end_time = this.data.cityDelivery_deliveryTime.end_time; } } console.log(this.data.submit_active); if (this.data.submit_active == true) { this.data.submit_active = false; let urlStr = app.getNetAddresss(this.data.order_url); if (this.data.clicktag == 0) { this.setData({ clicktag: 1, }); app._postNetWork({ url: urlStr, showToastIn: false, data: json, success: (resdata) => { let res = resdata.data; that.data.submit_active = true; if (res.result == 1) { that.setData({ showPage: false, }); wx.showLoading({ title: "跳转中", }); if (that.data.iscps) { wx.redirectTo({ url: "../orderPay/orderPay?order_id=" + res.data.order_ids + "&status=2" + `&iscps=${that.data.iscps ? true : false}`, }); return; } if (that.options.option_level_id) { wx.redirectTo({ url: "../orderPay/orderPay?order_id=" + res.data.order_ids + "&status=2" + "&name=groups", }); return; } if (that.data.store_id) { // 门店 wx.redirectTo({ url: "../orderPay/orderPay?order_id=" + res.data.order_ids + "&status=2&store_id=" + that.data.store_id, }); return; } // 盲盒 if (that.data._root_tag == "blindBox") { wx.redirectTo({ url: "../orderPay/orderPay?order_id=" + res.data.order_ids + "&status=2&name=" + that.data._root_tag, }); return; } wx.redirectTo({ url: "../orderPay/orderPay?order_id=" + res.data.order_ids + "&status=2", }); } else { Toast(res.msg); } setTimeout(() => { that.setData({ clicktag: 0, }); }, 1000); }, fail: (res) => { console.log(res); }, }); } } }, isHasInstall() { //判断是否有勾选了上门安装服务 for (let j = 0; j < this.data.goodsInfo.service_fee_items.length; j++) { if (this.data.goodsInfo.service_fee_items[j].code == "liveInstall") { return true; } } return false; }, inpCpsTxt(e) { console.log(e); let txt = e.detail.value; this.setData({ cpsTxt: txt, }); }, //组装商品信息 _assembleGoods() { let newGoods = []; for (let j = 0; j < this.data.goodsInfo.orders.length; j++) { for (let i = 0; i < this.data.goodsInfo.orders[j].order_goods.length; i++) { let model = {}; model.goods_id = this.data.goodsInfo.orders[j].order_goods[i].goods_id; model.total = this.data.goodsInfo.orders[j].order_goods[i].total; model.option_id = this.data.goodsInfo.orders[j].order_goods[i].goods_option_id; newGoods.push(model); } } return newGoods; }, //组装json数据 _assembleJson() { let json = { //公共数据 address: encodeURIComponent(JSON.stringify(this.data.currentAddress)), goods: JSON.stringify(this._assembleGoods()), member_coupon_ids: JSON.stringify(this._assembleCoupons()), orders: JSON.stringify(this._assembleDeduction()), // 发票 // invoice_type: this.data.invoice_list.invoice_type === "electron" ? 0 : 1, // rise_type: this.data.invoice_list.invoice_status === "person" ? 1 : 0, // call: this.data.invoice_list.call, // email: this.data.invoice_list.email, // company_number: this.data.invoice_list.company_number, //新的发票-发票插件 invoice:this.data.invoice_list, mark: this.data.options.mark ? this.data.options.mark : 0, dispatch_type_id: this.data.selected, //配送方式 ,1:快递 ||2:门店自提||3:门店配送(送货上门)||8:自提点 }; if (this.data.use_wechat_address && (this.data.selected == 1 || (this.data.selected == 0 && !this.data.use_wechat_address))) { // 只用于快递,并且开启了使用微信地址 let usejson = { address: this.data.design_address || "", city: this.data.design_info.cityName, district: this.data.design_info.countyName, id: "", isdefault: "", latitude: "", longitude: "", mobile: this.data.design_info.telNumber, province: this.data.design_info.provinceName, street: "", uid: "", uniacid: "", username: this.data.design_info.userName, zipcode: "", }; // 没有选择微信地址的时候,是整个adress都为空 json.address = usejson.address?encodeURIComponent(JSON.stringify(usejson)):[]; } // 分销活动页面购买的商品,带活动id if (this.data.activity_id) { json.activity_id = this.data.activity_id; } if (this.data.hasGoodOpenDF) { //有商品开启自定义表单 json.order_goods = this._assembleDiyForm(); } if (this.data.show_recharge_mobile) { //有商品开启话费慢充 json.order_goods = JSON.stringify(this.assembleGoodsTELData()); } if (this.options.electricity == "electricity") { //有商品开启话费慢充 json.order_goods = JSON.stringify(this.assembleGoodsTELData()); } //油卡充值 if(this.data.oil_account && this.data.oil_mobile){ json.order_goods = JSON.stringify(this.assembleGoodsTELData()); } if (this.data.cpstype == "1") { json.recharge_number = this.data.cpsTxt; } if (this.data.camilo_resources_coupon_type == 1) { // 直冲需要填写帐号 json.recharge_number = this.data.recharge_number; } json = this.handleDataActionBuyUrl(json, "order"); json = this.handleDataActionCartUrl(json, "order"); if (this.data._root_tag == "store") { json.store_id = this.data.store_id; json.mobile = this.data.linkinfo.mobile; json.realname = this.data.linkinfo.name; json.cart_ids = JSON.stringify(this.data.storeCarts); } else if (this.data._root_tag == "rentCartBuy" || this.data._root_tag == "rentBuy") { let right = wx.getStorageSync("rentTimeRight") || ""; let choose = wx.getStorageSync("rentTimeChoose") || ""; let self = wx.getStorageSync("rentTimeSelf") || ""; let lease_term = {}; if (!app._isTextEmpty(choose)) { lease_term = choose; } else if (!app._isTextEmpty(self)) { lease_term = self; } json.lease_rights = app._isTextEmpty(right) == null ? [] : right; json.lease_term = lease_term; json.cart_ids = JSON.stringify(this.data._cart_ids); } if (this.data.selected == 2 || this.data.selected == 8 || this.data.selected == 12 || this.data.selected == 15) { json.mobile = this.data.linkinfo.mobile; json.realname = this.data.linkinfo.name; if (this.data._root_tag === 'o2oDeposit') { // 门店定金 后端需要把门店的地址给传过去 #86280 this.data.currentAddId = 1; //地址没有id 写死一个 let arr = this.data.store_info.store_address.split(' '); this.setAddressViewData({ province: arr[0], city: arr[1], district: arr[2], street: arr[3], address: arr[4], mobile: this.store_info.store_mobile, username: this.store_info.store_name, address_id: 1 }); json.address = encodeURIComponent(JSON.stringify(currentAddress)); // 设置地址界面 } } if (this.data.selected == 8 || this.data.selected == 12) { json.package_deliver_id = this.data.selected == 8 ? this.data.defaultSelfCarry.id : this.data.o2oSelfCarry.id; delete json.address; } if (this.data.selected == 3) { json.mobile = this.data.store_info.store_mobile; json.realname = this.data.store_info.store_name; } if (this.data.selected == 10) { json.supplier_driver_distribution_address = this.data.supp_point; } Object.assign(json, this.data.orderLocationObj); return json; }, //支付协议 agreementPaybtn(e) { let agreeBol = e.detail; this.setData({ agreementPay: agreeBol, }); }, showPay() { this.setData({ agreementPayShow: true, }); }, showPayClose() { this.setData({ agreementPayShow: false, }); }, showDiy(e) { this.setData({ "diyform.form_id": e.currentTarget.dataset.id, "diyform.pre_id": e.currentTarget.dataset.preid, }); if (this._findDiyForm(e.currentTarget.dataset.preid)) { let diyform_data_id = this._findDiyForm(e.currentTarget.dataset.preid); this.setData({ "diyform.diyform_data_id": diyform_data_id, }); } this.setData({ diyShow: true, }); }, showDiyClose() { this.setData({ diyShow: false, }); }, traCheckedData(data) { console.log(data); this._setDiyForm(data.detail.pre_id, data.detail.diyform_data_id); this.showDiyClose(); }, getList(type) { let that = this; let _type = type; let urlStr = app.getNetAddresss("plugin.package-deliver.frontend.deliver.getList"); if (_type == "o2o") { urlStr = app.getNetAddresss("plugin.package-deliver.frontend.store.deliver.getList"); } let point = app.qqMapTransBMap(parseFloat(that.data.point.lng), parseFloat(that.data.point.lat)); app._getNetWork({ url: urlStr, data: { city_name: that.data.city, lat: point.lat, lng: point.lng, kwd: "", goods: JSON.stringify(this._assembleGoods()), store_id: this.data.options.store_id || 0, deliver_id: this.options.package_deliver_id|| '' }, success: (resdata) => { var res = resdata.data; if (res.result == 1) { if (_type == "shop") { that.setData({ defaultSelfCarry: JSON.stringify(that.data.defaultSelfCarry) == "{}" ? res.data.list.data[0] : that.data.defaultSelfCarry, }); } else if (_type == "o2o") { if (!this.data.o2oSelfCarry.id) { this.setData({ o2odeliverName: res.data.name, o2oSelfCarry: res.data.list.data[0] ? res.data.list.data[0] : "" //没有就取第一个为默认自提点 }); } } } else { wx.showToast({ icon: "none", title: "获取自提点失败", duration: 1000, }); } }, fail: (res) => { console.log(res); }, }); }, //获取经纬度 getCurrentOrderLocation() { wx.getLocation({ type: "gcj02", success: (res) => { console.log("userLocationFlag", res); const latitude = res.latitude; const longitude = res.longitude; this._setOrderLocation({ lat: latitude, lng: longitude, }); }, }); }, //根据经纬度转换具体地址名称 _setOrderLocation(e) { let that = this; app .getReverseGeocoder(e.lat, e.lng) .then((res) => { console.log("userLocationFlag", res); let recommend = res.address_component; let orderLocationObj = { positioning_success: 1, province: recommend.province, city: !app._isTextEmpty(recommend.city) ? recommend.city : recommend.province, }; that.data.orderLocationObj = orderLocationObj; }) .catch((err) => { console.log(err); }); }, async checkAlbum(scopeName) { let writePhotosAlbum = await this.getAuthSetting(scopeName); return new Promise((resolve, reject) => { if (!writePhotosAlbum) { wx.showModal({ title: "请开启授权", content: "是否跳转设置页开启授权", success(res) { if (res.confirm) { wx.openSetting({ success(settingdata) { if (settingdata.authSetting[scopeName]) { resolve(true); } else { resolve(false); } }, }); } else if (res.cancel) { resolve(false); } }, fail: () => { resolve(false); }, }); } else resolve(true); }); }, getAuthSetting(authName) { return new Promise((resolve, reject) => { wx.getSetting({ success(res) { if (!res.authSetting[authName]) { wx.authorize({ scope: authName, success() { resolve(true); }, fail() { resolve(false); }, }); } else resolve(true); }, fail() { resolve(false); }, }); }); }, toO2oSearchDiyBtn() { //门店搜索插件 自定义下单页按钮 try { wx.redirectTo({ url: this.data.storeSearchBtn.app_url, }); } catch (e) { console.log(e); } }, toFullPage() { // 跳转满额包邮页 if (this.data._root_tag == this.data.TAG_ACTION_BUY) { //立即购买的,把他添加到购物车,从包邮页去结算变成购物车结算 // 设置主要参数 let urlStr = app.getNetAddresss("postageIncludedCategory.member-cart.store"); app._postNetWork({ url: urlStr, data: { goods_id: this.data._goodsId, total: this.data._total || 1, option_id: this.data._optionsId || 0 }, success: (resdata) => { let res = resdata.data; if (res.result == 1) { let _cart_ids = []; _cart_ids.push(Number(res.data.cart_id)); wx.navigateTo({ url: '/packageE/orderullPackage/orderullPackage?cart_id=' + JSON.stringify(_cart_ids) }); } }, fail: (res) => { console.log(res); }, }); } else if (this.data._root_tag == this.data.TAG_ACTION_CART) { // 购物车下单 JSON.stringify(this.data._cart_ids) wx.navigateTo({ url: '/packageE/orderullPackage/orderullPackage?cart_id=' + this.options.cart_ids }); } }, // 二开页面开发-胜天半子#79514 onChange(e) { this.setData({ sexSelect: e.detail }); }, cell_from_inp(e) { if (e.currentTarget.dataset.key == 'name') { this.setData({ 'design_info.userName': e.detail.value }); } if (e.currentTarget.dataset.key == 'phone') { this.setData({ 'design_info.telNumber': e.detail.value }); } if (e.currentTarget.dataset.key == 'adress') { this.setData({ design_address: e.detail.value, 'design_info.detailInfo': e.detail.value }); } }, tapShowArea() { this.setData({ showArea: true }); }, confirmArea(e) { this.setData({ userAdress: `${e.detail[0].name} ${e.detail[1].name} ${e.detail[2].name}`, 'design_info.provinceName': e.detail[0].name, 'design_info.cityName': e.detail[1].name, 'design_info.countyName': e.detail[2].name }); }, changeCityDeliveryCommunity(e) { this.setData({ cityDelivery_community_id: e.detail }); }, setCityDeliveryCommunity() { let cityDelivery_community = this.data.cityDelivery.community_setting.community_list.find((item) => { return item.id == this.data.cityDelivery_community_id; }); this.setData({ cityDelivery_community, selectCommunityShow: false }); }, openCityDeliveryDay() { this.selectComponent(`.deliveryTime`).setPopShow(); }, cityDeliveryDayConfirm(evt) { this.setData({ cityDelivery_deliveryTime: evt.detail }); this.handleBuy(); }, });