diff --git a/app.js b/app.js index f8afd78..53235e3 100644 --- a/app.js +++ b/app.js @@ -38,7 +38,7 @@ App({ // 获取前端配置文件 commonApi._post("pbservice/Other/getClientConfig", {unique_key: "wechatxcx"}).then(res => { let data = JSON.parse(res.data); - data.isTest = data.isTest142? true : false; + data.isTest = data.isTest154? true : false; data.indexSeason = null this.globalData.configJson = data }).then(() => { diff --git a/app.json b/app.json index 0847ea2..e9fa437 100644 --- a/app.json +++ b/app.json @@ -204,7 +204,9 @@ "feiyiNew/CGCLetter/index", "feiyiNew/CGCTime/index", "foodListNew/index", - "foodNew/index" + "foodNew/index", + "goods/memberCard/index", + "techanNew/selfPickPoint/index" ] }, { diff --git a/app.wxss b/app.wxss index 5d7cb40..4e78857 100644 --- a/app.wxss +++ b/app.wxss @@ -45,7 +45,7 @@ page{ position: relative; z-index: 1; width: 80%; - max-height: 1000rpx; + max-height: 1200rpx; background: white; border-radius: 12rpx; overflow-y: auto; @@ -171,6 +171,12 @@ page{ .flex-shrink-0{ flex-shrink: 0; } + +.hidden{ + opacity: 0; + display: none; +} + /* page { filter: grayscale(100%); } */ \ No newline at end of file diff --git a/pages/component/TitleHeader.wxss b/pages/component/TitleHeader.wxss index 1b8616b..d0d8a97 100644 --- a/pages/component/TitleHeader.wxss +++ b/pages/component/TitleHeader.wxss @@ -12,7 +12,7 @@ font-size: 32rpx; line-height: 90rpx; background: #f9f9f9; - z-index: 2; + z-index: 99; top: 0; } .title-header .icon-fanhui1 { diff --git a/pages/component/proRec/proRec.js b/pages/component/proRec/proRec.js index cb14dc9..d2b7f87 100644 --- a/pages/component/proRec/proRec.js +++ b/pages/component/proRec/proRec.js @@ -31,8 +31,8 @@ Component({ }, observers:{ 'ids': function(newVal,oldVal){ - console.log('newVal--------',newVal) - console.log('oldVal--------',oldVal) + // console.log('newVal--------',newVal) + // console.log('oldVal--------',oldVal) if (newVal && this.data.tjList.length<=0) { this.getTj(newVal) } diff --git a/pages/index/index.js b/pages/index/index.js index f15e290..23652be 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -409,6 +409,8 @@ Page({ cityIndex: 0, scrollItem: "scrollItem-0", + aiStr: "", + // ---------------2025-5-26改版没用到的------------------ fourProduct: [], hotIndex: 0, @@ -444,8 +446,10 @@ Page({ this.getHeight() this.getWeather() // 天气 this.getIndexSeason() - this.getBanner() - + this.getBanner() + + this.setAiStr() + this.getXpthList() // 限时特惠 this.getList() // 回购榜 @@ -469,6 +473,20 @@ Page({ this.getUrlToPage() this.getShowMore() }, + + setAiStr :function () { + let str = "你好啊,我是卿卿,我来带你游苏州~"; + let i = 0; + let timer = setInterval(()=>{ + i++ + this.setData({ + aiStr: str.slice(0,i) + }) + if (i>str.length) { + clearInterval(timer) + } + },125) + }, showImg (img) { if (!img) { return img } diff --git a/pages/index/index.wxml b/pages/index/index.wxml index c69fb11..8feeb80 100644 --- a/pages/index/index.wxml +++ b/pages/index/index.wxml @@ -63,14 +63,18 @@ --> + + + {{aiStr}} + - + + bindchange="changeBannerIndex" data-keyname="ztBannerIndex" circular> @@ -180,7 +184,7 @@ + bindchange="changeBannerIndex" data-keyname="smBannerIndex" circular> @@ -358,7 +362,7 @@ - + diff --git a/pages/index/index.wxss b/pages/index/index.wxss index 0e33f6c..5209040 100644 --- a/pages/index/index.wxss +++ b/pages/index/index.wxss @@ -1041,13 +1041,30 @@ margin-right: 0rpx; } + .ai-box{ + margin: 15rpx 0 40rpx; + width: 100%; + position: relative; + } + .ai-text{ + position: absolute; + font-weight: 500; + font-size: 25rpx; + color: #111111; + top: 97rpx; + left: 210rpx; + width: 320rpx; + } + .ai-fix{ - position: fixed; + /* position: fixed; width: 150.33rpx; height: 200rpx; bottom: 30rpx; right: 24rpx; - z-index: 100; + z-index: 100; */ + width: 100%; + display: block; } .hot-prod-new{ display: flex; diff --git a/pages/info/foodProductInfo/index.wxml b/pages/info/foodProductInfo/index.wxml index 3491c6f..5e5ce93 100644 --- a/pages/info/foodProductInfo/index.wxml +++ b/pages/info/foodProductInfo/index.wxml @@ -4,14 +4,17 @@ + - @@ -28,6 +31,7 @@ + @@ -28,6 +32,7 @@ + + + > @@ -187,7 +194,7 @@ - {{info.supplier_name}} + {{info.shop_name}} 进店 @@ -296,6 +303,27 @@ {{item.sku_name}} + + + 配送方式 + + + + + + + 邮寄 + + + + + + + 自提 + + + + diff --git a/pages/info/postProductInfo/index.wxss b/pages/info/postProductInfo/index.wxss index 74cd9b1..1f5ccf0 100644 --- a/pages/info/postProductInfo/index.wxss +++ b/pages/info/postProductInfo/index.wxss @@ -438,6 +438,7 @@ page { justify-content: space-between; text-align: center; padding-left: 0; + z-index: 77; } .fixed-bottom .iconfont { @@ -550,9 +551,10 @@ page { flex-wrap: wrap; margin-bottom: 20rpx; justify-content: space-between; - max-height: 800rpx; - min-height: 400rpx; + height: 400rpx; align-content: flex-start; + overflow-y: auto; + overflow-x: hidden; } .sku-name-item { @@ -697,7 +699,7 @@ width: 250rpx; border-radius: 50%; right: 20rpx; bottom: 166rpx; - z-index: 15; + z-index: 88; } .cart-box image { @@ -1264,4 +1266,46 @@ color: #010101; font-weight: 500; font-size: 27rpx; color: #000000; -} \ No newline at end of file +} + +.delivery-method{ + font-weight: 400; + font-size: 29rpx; + color: #1E1E1E; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 25rpx 40rpx; +} +.delivery-method .select-cycle{ + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 1px solid #999999; + overflow: hidden; + flex-shrink: 0; + +} +.delivery-method .select-cycle image{ + width: 100%; + height: 100%; +} +.delivery-method .select-cycle.selected { + border: none; +} +.delivery-method .select-cycle.selected image{ + width: 32rpx; + height: 32rpx; + border-radius: 50%; +} +.delivery-method .method-str{ + padding-left: 10rpx; + flex-shrink: 0; +} +.delivery-method .flex-center{ + width: 150rpx; + justify-content: flex-end; + display: flex; + align-items: center; +} + diff --git a/pages/info/roadInfo/index.js b/pages/info/roadInfo/index.js index 1508b5c..4eaf2b0 100644 --- a/pages/info/roadInfo/index.js +++ b/pages/info/roadInfo/index.js @@ -218,7 +218,7 @@ Page({ if (res&&Array.isArray(res.data)&&res.data.length>0) { res.data.forEach(v => { v.sku.is_compose = 1; - v.num = this.data.producNum; + v.num = this.data.producNum * v.num; v.sku.compose_sku_id = v.compose_sku_id }); app.globalData.list = [] diff --git a/pages/info/sceneProductInfo/index.js b/pages/info/sceneProductInfo/index.js index fe8ccb4..6514471 100644 --- a/pages/info/sceneProductInfo/index.js +++ b/pages/info/sceneProductInfo/index.js @@ -62,6 +62,8 @@ Page({ skuShowDomId: "", skuDays: 30, + + advList: [], }, /** @@ -211,6 +213,9 @@ Page({ }, 1) this.BroswerRecord() }) + + this.getAdv() + // 获取收藏的状态 if (wx.getStorageSync("jstrip_token")) { commonApi.user_post("scene/is_scene_collection", { @@ -261,6 +266,83 @@ Page({ }, + + // 获取广告 + getAdv() { + commonApi._post("adv/getAdv", { + position: 9, + type_id: 3, + scenic_id: this.data.id + }).then(res => { + try { + this.setData({advList: res.data || []}) + } catch (error) { + console.log(error); + } + }) + }, + + bannerClick: function(e) { + if (this.data.isTest) return; + let item = e.currentTarget.dataset.item; + switch (item.jump_type) { + case 0: + break; + case 1: + util.gotoDetail(item.product_model) + break; + case 2: + if (item.front_model && item.front_model.mini) { + wx.navigateTo({ + url: "/" + item.front_model.mini + }) + } + break; + case 3: + // 外部h5 + console.log(item) + app.globalData.weburl = item.tdata.url; + wx.navigateTo({ + url: "/pages/pbService/web/index?weburl=" + encodeURIComponent(item.tdata + .url) + }) + + + break; + case 4: + if (item.tdata.appid == 'wxe5ca0f71e918e352' && wx.getStorageSync('jstrip_userid')) { + // 如果是苏心游的小程序 直接把authCode带过去 + userApi.user_post("user/getJumpThirdAppCode", {}).then(res => { + let weburl = item.tdata.page + if (weburl.indexOf('?') != -1) { + weburl += '&authCode=' + res.data; + } else { + weburl += '?authCode=' + res.data + } + wx.navigateToMiniProgram({ + appId: item.tdata.appid, + path: weburl + }) + }).catch(err => { + wx.navigateToMiniProgram({ + appId: item.tdata.appid, + path: item.tdata.page + }) + }) + } else { + wx.navigateToMiniProgram({ + appId: item.tdata.appid, + path: item.tdata.page + }) + } + break; + default: + break; + } + return; + + }, + // 获取日期 changeDate: function (e) { // 2025-7-2 合并票日期变更 需要获取sku并重新赋值 diff --git a/pages/info/sceneProductInfo/index.wxml b/pages/info/sceneProductInfo/index.wxml index 6975956..4a52486 100644 --- a/pages/info/sceneProductInfo/index.wxml +++ b/pages/info/sceneProductInfo/index.wxml @@ -6,7 +6,7 @@ - @@ -47,6 +47,17 @@ {{info.garden_flag_text}} + + + + + + + + + + + 预订 详情/政策 diff --git a/pages/info/sceneProductInfo/index.wxss b/pages/info/sceneProductInfo/index.wxss index d02a1b6..44aad27 100644 --- a/pages/info/sceneProductInfo/index.wxss +++ b/pages/info/sceneProductInfo/index.wxss @@ -1068,4 +1068,18 @@ line-height: 93rpx; .mask-scroll-content{ flex: 1; height: 100rpx; +} + +.adv-container{ + padding-top: 20rpx; + width: 100%; +} +.adv-container image{ + width: 672rpx; + height: 166.67rpx; + margin: 0 auto; + display: block; +} +.adv-swiper{ + height: 166.67rpx; } \ No newline at end of file diff --git a/pages/list/six/index.wxml b/pages/list/six/index.wxml index 74e84bb..15b06fc 100644 --- a/pages/list/six/index.wxml +++ b/pages/list/six/index.wxml @@ -1,6 +1,6 @@ - + diff --git a/pages/order/components/address/index.wxml b/pages/order/components/address/index.wxml index 950f01c..ad0299e 100644 --- a/pages/order/components/address/index.wxml +++ b/pages/order/components/address/index.wxml @@ -1,4 +1,4 @@ - + 收货地址 选择 diff --git a/pages/order/components/address/index.wxss b/pages/order/components/address/index.wxss index 2065a88..41a4d12 100644 --- a/pages/order/components/address/index.wxss +++ b/pages/order/components/address/index.wxss @@ -49,8 +49,8 @@ flex-shrink: 0; font-size: 37rpx; } -.box { - margin: 30rpx 25rpx; +.address-box { + margin: 30rpx 0rpx; background: white; border-radius: 9rpx; } diff --git a/pages/order/orderList/index.js b/pages/order/orderList/index.js index 6715052..17844ef 100644 --- a/pages/order/orderList/index.js +++ b/pages/order/orderList/index.js @@ -9,7 +9,11 @@ Page({ data: { goodsList: [], ticketList: [], - productPrice: 0, + // 仅展示用,区分邮寄自提 + postList: [], + pickUpList: [], + + productPrice: 0, ticketPrice: 0, product:"", sku_id: '', @@ -26,6 +30,10 @@ Page({ finalPrice: 0, showCoupon: true, + + explainDataList: [], + showContent: null, + }, /** @@ -33,8 +41,8 @@ Page({ */ onLoad: function (options) { this.setData({ - goodsList: app.globalData.postProduct, - ticketList: app.globalData.list, + goodsList: app.globalData.postProduct || [], + ticketList: app.globalData.list || [], kjId: app.globalData.kjId, gp_id: app.globalData.gp_id || app.globalData.team_id, flag:options.flag, @@ -44,7 +52,7 @@ Page({ console.log('-------------',this.data.ticketList, this.data.goodsList); // debugger let price = 0, sku_id = [] ,postFee= 0; - app.globalData.postProduct.map(item => { + this.data.goodsList.map(item => { try { item.postFee = parseFloat(item.postFee) } catch(e){ @@ -60,7 +68,7 @@ Page({ } sku_id.push(item.sku.id) }) - app.globalData.list.map(item => { + this.data.ticketList.map(item => { // price = price + item.sku.price * item.linkmanList.length; price = price + item.sku.price * item.num; sku_id.push(item.sku.id) @@ -70,12 +78,36 @@ Page({ postFee:postFee, sku_id: sku_id.join(",") }) + + this.handlePostData() + if (!this.data.kjId && !this.data.gp_id) { this.couponCom = this.selectAllComponents("#coupon")[0]; } + + this.getExplain() + }, + + handlePostData () { + let postList = this.data.goodsList.filter(x=>x.user_select_type === 0) + let pickUpList = this.data.goodsList.filter(x=>x.user_select_type === 1) + this.setData({ + postList: postList, + pickUpList: pickUpList, + }) }, + order: function (){ console.log(app.globalData.createDate); + let explainData = (this.data.explainDataList || []).filter(x=>x.selectExplain).map(x=>{ + return { + product_id: x.product.id, + product_num: 1, + sku_id: x.sku.id, + type: x.product.type, + } + }) + app.globalData.createDate.product_list = app.globalData.createDate.product_list.concat(explainData) app.globalData.createDate.coupon_id= this.data.coupon ? this.data.coupon.id : null; let service = "order/create", postData = {data: JSON.stringify(app.globalData.createDate)} @@ -130,6 +162,50 @@ Page({ }) }, + // 讲解 + getExplain () { + if (this.data.ticketList.length>0) { + let explainArr = [] + let productId = this.data.ticketList.map(x=>x.product.id) + Promise.all( + productId.map(x=>commonApi._post("product/get_product_compose_list", { + product_id: x + })) + ).then(res=>{ + if (res) { + res.forEach(x=>{ + if (x.data && x.data[0] && !explainArr.find(v=>v.sku.id == x.data[0].sku.id)) { + explainArr.push(x.data[0]) + } + }) + this.setData({ + explainDataList: explainArr + }) + } + console.log(res) + }) + } + }, + + changeSeletExplain (e) { + let val = e.currentTarget.dataset.val; + let index = e.currentTarget.dataset.index; + + let explainDataList = this.data.explainDataList + let explainData = this.data.explainDataList[index] + explainData.selectExplain = val + + this.setData({ + explainDataList: explainDataList + }) + }, + + changeContent (e) { + let val = e.currentTarget.dataset.val; + this.setData({ + showContent: val + }) + }, /** diff --git a/pages/order/orderList/index.wxml b/pages/order/orderList/index.wxml index b571935..785d25f 100644 --- a/pages/order/orderList/index.wxml +++ b/pages/order/orderList/index.wxml @@ -1,6 +1,8 @@ + - - + + + {{item.product.title}} ¥{{item.sku.price/100}} @@ -26,6 +28,31 @@ + + + + + {{item.product.title}} + ¥{{item.sku.price/100}} + + + {{item.sku.sku_name}} + X{{item.productNum}} + + 自提信息 + + 预留手机号:{{item.phone}} + + 自提地址: + + {{item.pickupAddress.title}} + {{item.pickupAddress.address}} + + + + + + @@ -37,7 +64,7 @@ X{{item.num}} 出行人信息 - + 姓名:{{items.name}} @@ -46,7 +73,7 @@ - + 手机号:{{item.phone}} @@ -58,6 +85,28 @@ --> + + + 景点讲解服务 + + + + {{item.product.title}} + {{item.sku.sku_name}} + 0 + + + 详情 > + + + + + + + + + @@ -72,4 +121,25 @@ 下一步 - \ No newline at end of file + + + + + + + 产品详情 + + + + {{showContent.product.title}} + + + + 产品详情 + + + + + + + \ No newline at end of file diff --git a/pages/order/orderList/index.wxss b/pages/order/orderList/index.wxss index fdf5877..2d2b10d 100644 --- a/pages/order/orderList/index.wxss +++ b/pages/order/orderList/index.wxss @@ -66,6 +66,9 @@ page{ font-size: 27rpx; color: #666666; } +.text .text-left{ + flex-shrink: 0; +} .goods-item{ @@ -94,4 +97,80 @@ color: #666666; .item-box.item-title .price{ color: #D62828; font-weight: bold; -} \ No newline at end of file +} + +.explain-box{ + width: 699rpx; + background: #FFFFFF; + border-radius: 9rpx; + margin: 0 auto; + padding: 26rpx 22rpx; + box-sizing: border-box; +} +.explain-box .explain-title{ + font-weight: bold; + font-size: 32rpx; + color: #000000; + /* margin-bottom: 26rpx; */ +} +.explain-box .explain-prod{ + display: flex; + width: 100%; + align-items: center; + margin-top: 25rpx; +} +.explain-box .explain-img{ + width: 135.33rpx; + height: 112rpx; + flex-shrink: 0; +} +.explain-box .explain-content{ + flex: 1; + width: 1rpx; + padding: 0 36rpx; + box-sizing: border-box; + line-height: 1; +} +.explain-box .explain-goods{ + font-weight: 500; +font-size: 31rpx; +color: #000000; +} +.explain-box .explain-sku{ + font-weight: 500; + font-size: 24rpx; + color: #999999; + padding: 20rpx 0; +} +.explain-box .explain-price{ + font-weight: 500; + font-size: 33.33rpx; + color: #E30000; +} +.explain-box .explain-price::before{ + content: "¥"; + font-size: 24rpx; +} +.icon-quan{ + font-size: 33rpx; +} +.icon-gou1{ + color: #D62828; + font-size: 33rpx; +} + +.mask-content2 { + position: absolute; + left: 0; + right: 0; + bottom: 0; + width: 100%; + background: white; + border-radius: 12rpx; + min-height: 1100rpx; + } + .icon-close { + position: absolute; + top: 30rpx; + right: 30rpx; + } \ No newline at end of file diff --git a/pages/order/pay/index.js b/pages/order/pay/index.js index 387593c..57db0a2 100644 --- a/pages/order/pay/index.js +++ b/pages/order/pay/index.js @@ -441,11 +441,11 @@ Page({ title: '您的支付密码已过期', content: resCode, cancelText: '修改密码', - confirmText:'忘记密码', + confirmText:'重置密码', confirmColor:"#0E8790", success(res){ if (res.confirm) { - console.log('忘记密码') + console.log('重置密码') _this.goReset() } else if (res.cancel) { console.log('修改密码') diff --git a/pages/order/pay/index.wxml b/pages/order/pay/index.wxml index e943460..c7781e9 100644 --- a/pages/order/pay/index.wxml +++ b/pages/order/pay/index.wxml @@ -137,7 +137,7 @@ - 忘记密码 + 重置密码 diff --git a/pages/order/postOrder/index.js b/pages/order/postOrder/index.js index 425694b..c9e6397 100644 --- a/pages/order/postOrder/index.js +++ b/pages/order/postOrder/index.js @@ -7,6 +7,9 @@ Page({ * 页面的初始数据 */ data: { + pageUseType: 0, // 0 邮寄 1 自提 3邮寄或自提 购物车用 不考虑3 + allProduct: [], + product: [], showPrice: 0, from: null, @@ -23,7 +26,9 @@ Page({ showAllowance: false, flag:null, isCar:'single', - showYhq:null + showYhq:null, + + pickupIndex: null, }, /** @@ -39,28 +44,85 @@ Page({ isCar:options.isCar, showYhq:app.globalData.listName?false:true }) - let price = 0, sku_id = []; - app.globalData.postProduct.map(item => { - if (!app.globalData.kjId && !this.data.gp_id) { - price = price + item.sku.price * item.productNum; - } - else if (this.data.gp_id) { - price = price + item.sku.event_price * item.productNum; - } + this.handleProduct() + }, + + handleProduct () { + app.globalData.postProduct.forEach((item,index) => { + item.keyIndex = index item.sku.batch_shipment = item.sku.batch_shipment?item.sku.batch_shipment:0; - sku_id.push(item.sku.id) + // 用户选择的配送方式 + item.user_select_type = item.sku.use_type === 1 ? 1 : 0 }) + this.setData({ - product: app.globalData.postProduct, - showPrice: app.globalData.kjId ? 0 : price, - sku_id: sku_id.join(",") + allProduct: app.globalData.postProduct, }) - console.log(this.data.product) + + if (this.data.from == "cart") { + if (this.data.pageUseType == 0) { + let pageUseType = app.globalData.postProduct.some(x=>x.user_select_type==0)?0:1 + let productList = app.globalData.postProduct.filter(x=>x.user_select_type == pageUseType) + this.setData({ + product: productList, + pageUseType: pageUseType, + }) + } else { + let productList = app.globalData.postProduct.filter(x=>x.user_select_type == 1) + this.setData({ + product: productList, + pageUseType: 1, + }) + } + } else { + this.setData({ + product: app.globalData.postProduct, + }) + } + + console.log(this.data.product, "页面数据") + + let price = 0, sku_id = []; + this.data.product.forEach(item=>{ + if (!app.globalData.kjId && !this.data.gp_id) { + price = price + item.sku.price * item.productNum; + } + else if (this.data.gp_id) { + price = price + item.sku.event_price * item.productNum; + } + sku_id.push(item.sku.id) + }) + + this.setData({ + showPrice: app.globalData.kjId ? 0 : price, + sku_id: sku_id.join(","), + }) + + if (!this.data.kjId && !this.data.gp_id) { - this.couponCom = this.selectAllComponents("#coupon")[0]; + this.couponCom = this.selectAllComponents("#coupon")[0]; } - console.log(this.data.showPrice) + + this.getPostFee() + this.changePrice() + + }, + + changeUserPost (e) { + let item = e.currentTarget.dataset.item + let value = e.currentTarget.dataset.value + let index = e.currentTarget.dataset.index + item.user_select_type = value + + this.data.product[index] = item + + this.setData({ + product: this.data.product + }) + this.getPostFee() + this.changePrice() }, + price() { let allPrice if (this.data.coupon) { @@ -83,6 +145,23 @@ Page({ product: product }) }, + + phoneInput: function (e) { + let index = e.currentTarget.dataset.index, product = this.data.product; + product[index].phone = e.detail.value; + this.setData({ + product: product + }) + }, + + delTel: function(e) { + let index = e.currentTarget.dataset.index, product = this.data.product; + product[index].phone = ""; + this.setData({ + product: product + }) + }, + setAddress: function (e) { console.log('我触发了'); this.setData({ @@ -90,6 +169,31 @@ Page({ }) this.getPostFee() }, + + changePickup:function (e) { + let index = e.currentTarget.dataset.index; + let item = e.currentTarget.dataset.item + this.setData({ + pickupIndex: index + }) + + wx.navigateTo({ + url:`/subPackages/techanNew/selfPickPoint/index?pickupId=null&goodsId=${item.product.id}&skuId=${item.sku.id}` + }) + + }, + + setPickUpPoint: function (data) { + console.log(data) + let goods = this.data.product[this.data.pickupIndex] + if (goods) { + goods.pickupAddress = data + } + this.setData({ + product: this.data.product + }) + }, + minus: function (e) { let index = e.currentTarget.dataset.index, product = this.data.product; let productNum = product[index].productNum; @@ -140,27 +244,81 @@ Page({ }) }, order: function () { - if (!this.data.address) { - wx.showToast({ - title: '请选择收货地址!', - icon: 'none' - }) - return; + + for(let info of this.data.product) { + if (info.user_select_type == 0) { + if (!this.data.address) { + wx.showToast({title: '请选择收货地址',icon: 'none'}); + return; + } + } + if (info.user_select_type == 1) { + if (!info.pickupAddress||!info.pickupAddress.id) { + wx.showToast({title: '请选择自提点',icon: 'none'}); + return; + } + if (!info.phone) { + wx.showToast({title: '请输入预留手机号',icon: 'none'}); + return; + } + } + + let allProductIndex = this.data.allProduct.findIndex(x=>x.keyIndex == info.keyIndex) + if (allProductIndex>=0) { + this.data.allProduct[allProductIndex] = info + } } - let product = this.data.product, product_list = []; - product.map(item => { - let productItem = { - type: item.product.type, - product_id: item.product.id, - sku_id: item.sku.id, - post: this.data.address.id, - product_num: item.productNum, - remark: item.remark, - is_batch_shipment: item.sku.batch_shipment, - compose_sku_id: item.sku.compose_sku_id, - } - product_list.push(productItem) - }) + + + + // 判断邮寄自提下单结束 + let canEnd = this.data.from == "cart"?false:true; + if (!canEnd) { + // 还有自提的产品 + if (this.data.pageUseType==0 && this.data.allProduct.some(x=>x.user_select_type==1)) { + canEnd = false + } else { + canEnd = true + } + } + + if (!canEnd) { + this.setData({ + pageUseType: 1 + }) + this.handleProduct() + return + } + + + // 真下单 + let product_list = []; + for(let info of this.data.allProduct) { + let param = { + type: info.product.type, + product_id: info.product.id, + sku_id: info.sku.id, + // post: this.data.address.id, + product_num: info.productNum, + remark: info.remark, + is_batch_shipment: info.sku.batch_shipment, + compose_sku_id: info.sku.compose_sku_id, + supplier_id: info.product.supplier_id, + } + if (info.user_select_type == 0) { + param.use_type = 0 + param.post = this.data.address.id + } + if (info.user_select_type == 1) { + param.use_type = 1 + param.pickup_shop_id = info.pickupAddress.id + param.pickup_shop_info = info.pickupAddress + param.phone = info.phone + + } + product_list.push(param) + } + let data = { source: "WECHATXCX", product_list: product_list, @@ -189,8 +347,19 @@ Page({ data.partner_code = ZTPointProduct.product.ZTPoint data.channel = ZTPointProduct.product.ZTPoint } - console.log(app.globalData.list) + console.log(app.globalData.list,this.data.flag) if(!app.globalData.list || app.globalData.list.length == 0){ + // 判断混合下单 + let use_type = product_list[0].use_type + if (product_list.some(x=>x.use_type!=use_type)) { + app.globalData.productPrice = (this.data.showPrice + this.data.postFee - (this.data.coupon?this.data.coupon.activity.money:0))/100; + app.globalData.createDate = data + wx.redirectTo({ + url: '/pages/order/orderList/index?flag=mix' + }) + return + } + commonApi.user_post("order/create", { data: JSON.stringify(data) }).then(res => { @@ -199,22 +368,22 @@ Page({ this.setData({ kjId: null }) - this.onLoad({}) + // this.onLoad({}) } app.globalData.gp_id = null; app.globalData.team_id = null; this.setData({ gp_id: null }) - this.onLoad({}); + // this.onLoad({}); }) }else{ app.globalData.productPrice = (this.data.showPrice + this.data.postFee - (this.data.coupon?this.data.coupon.activity.money:0))/100; app.globalData.createDate = data - console.log(app.globalData.product) - if (!app.globalData.product) { - app.globalData.product = app.globalData.list[0] - } + console.log(app.globalData.product) + if (!app.globalData.product) { + app.globalData.product = app.globalData.list[0] + } wx.redirectTo({ url: '/pages/order/scene/index?flag='+this.data.flag+'&isCar='+this.data.isCar, }) @@ -222,7 +391,39 @@ Page({ }, getPostFee: function () { if (!this.data.address) return; - let product = this.data.product, list = [], that = this; + let list = [], indexList = [],that = this; + let product = this.data.product.filter((x,i)=>{ + if (x.user_select_type == 0) { + indexList.push(i) + return x + } + }); + + if (product.length<=0) { + let postFee = 0; + this.data.product.forEach(x=>{ + x.postFee = 0; + }) + if (this.data.coupon && this.data.postFee != postFee) { + wx.showToast({ + title: '订单价格发生变化,请重新选择优惠券', + icon: 'none' + }) + app.globalData.couponInfo = null; + if (!this.data.kjId && !this.data.gp_id) { + this.couponCom.setNullCoupon() + } + this.setData({ + coupon: null + }) + } + this.setData({ + postFee: postFee, + product: this.data.product, + }) + return + } + product.map(item => { list.push(commonApi.user_post("order/get_post_price", { sku_id: item.sku.id, @@ -268,9 +469,13 @@ Page({ coupon: null }) } + for(let i=0;i -
- - - 供应商:{{item.product.supplier_name}} - - - - - - {{item.product.title}} - {{item.sku.price/100}} - - - {{item.sku.sku_name}} - x{{item.productNum}} - - + + + + + 邮寄 + 自提 - - - 购票数量 - - {{item.productNum}} - - - - 收货方式 - - - - - 一次性收货 - - - - - 分批收货(共{{item.sku.batch_count}}次) + +
+ + + + 自提点 + + 选择提货地址 + {{item.pickupAddress.title}} + + - {{item.sku.batch_remark}} + + 预留手机号 + + + + + + -
- - 运费 - - - {{item.postFee?("¥"+(item.postFee/100)):"包邮"}} - - x{{item.sku.batch_count}} - ¥{{(item.postFee/100)*item.sku.batch_count}} + + + 供应商:{{item.product.supplier_name}} + + + + + + {{item.product.title}} + {{item.sku.price/100}} + + + {{item.sku.sku_name}} + x{{item.productNum}} + + + + + + 购票数量 + + {{item.productNum}} + + + + 收货方式 + + + + + 一次性收货 + + + + + 分批收货(共{{item.sku.batch_count}}次) + + + {{item.sku.batch_remark}} + + + + + 运费 + + + {{item.postFee?("¥"+(item.postFee/100)):"包邮"}} + + x{{item.sku.batch_count}} + ¥{{(item.postFee/100)*item.sku.batch_count}} + + + + + 订单备注: + + + + 小计: + {{(item.sku.price * item.productNum + item.postFee*item.sku.batch_count || 0) /100}} + {{(item.sku.price * item.productNum + item.postFee || 0) /100}} + - - - 订单备注: - - - - 小计: - {{(item.sku.price * item.productNum + item.postFee*item.sku.batch_count || 0) /100}} - {{(item.sku.price * item.productNum + item.postFee || 0) /100}} - - 惠民补贴 diff --git a/pages/order/postOrder/index.wxss b/pages/order/postOrder/index.wxss index b85f0ea..f391cfc 100644 --- a/pages/order/postOrder/index.wxss +++ b/pages/order/postOrder/index.wxss @@ -3,10 +3,34 @@ page { background: #f6f6f6; } +.sendwayArea{ + display: flex; + justify-content: space-between; + box-sizing: border-box; +} +.sendwayArea .sendway-item{ + font-weight: 500; + font-size: 27rpx; + color: #111111; + width: 333rpx; + text-align: center; + height: 57rpx; + line-height: 57rpx; + background: #FFFFFF; + border-radius: 29rpx; +} +.sendwayArea .sendway-item.active{ + border: 1px solid #0E8790; + color: #0E8790; +} + +.sku-info-container{ + background: #FFFFFF; + border-radius: 9rpx; +} + .box { margin: 30rpx 25rpx; - background: white; - border-radius: 9rpx; } .box-title { @@ -19,6 +43,30 @@ page { align-items: center; } +.sku-info-container .box-title{ + border-bottom: 1px solid #CCCCCC; +} + +.pickup-container .box-title{ + justify-content: space-between; + background: #FFFFFF; + margin: 26rpx 0; + border-radius: 13rpx; + padding: 0 20rpx; +} +.pickup-container .flex-1{ + display: flex; + align-items: center; + justify-content: flex-end; + padding-right: 34rpx; + text-align: right; +} +.cha { + width: 20rpx; + height: 20rpx; +} + + .allowance { justify-content: space-between; } @@ -56,7 +104,6 @@ page { display: flex; justify-content: space-between; padding: 30rpx 20rpx; - margin-bottom: 30rpx; } .skuinfo image { @@ -129,10 +176,6 @@ page { height: 1rpx; } -.topbox .box-title { - border-top: 1rpx solid #ccc; -} - .box-title input { flex: 1; display: block; @@ -187,7 +230,7 @@ page { font-size: 27rpx; height: 80rpx; align-items: center; - border-top: 1rpx solid #ccc; + /* border-top: 1rpx solid #ccc; */ color: #000; } diff --git a/pages/order/scene/index.js b/pages/order/scene/index.js index 9d4f7ff..b460fb6 100644 --- a/pages/order/scene/index.js +++ b/pages/order/scene/index.js @@ -48,6 +48,10 @@ Page({ couponFlag:false, skuDays: 30, + + selectExplain: false, + explainData: null, + showContent: false, }, /** @@ -63,7 +67,7 @@ Page({ flag:options.flag, date:null, ticket_type:app.globalData.product.sku.ticket_type || 1, - isCar:options.isCar, + isCar:options.isCar || 'single', is_need_idcard:app.globalData.product.sku.sku_model.is_need_idcard, is_authentication:app.globalData.product.sku.sku_model.is_authentication || 0, is_real_name:app.globalData.product.sku.sku_model.is_real_name, @@ -71,7 +75,7 @@ Page({ time: app.globalData.product.time || {}, showYhq:app.globalData.listName?false:true }) - console.log('-------',this.data.product,this.data.time); + console.log('-------',this.data.product,this.data.time, app.globalData); // debugger console.log('-------',app.globalData.product.sku.sku_model.is_need_idcard); console.log('---是否实名----',app.globalData.product.sku.sku_model.is_authentication); @@ -115,7 +119,13 @@ Page({ // singlePrice: this.data.gp_id ? app.globalData.product.sku.event_price : app.globalData.product.sku.price }) console.log(this.data.singlePrice); - this.getNewCoupon() + + this.getExplain() + + try { + this.getNewCoupon() + } catch (e) {} + // this.showAllPrice() // console.log('********',this.data.product); if (!this.data.kjId && !this.data.gp_id && this.data.product.isGroup != 1 && this.data.type!='museum') { @@ -520,6 +530,17 @@ changeDate: function (e) { team_id: app.globalData.team_id, linkmanList:this.data.is_authentication == 1?this.data.linkmanList:[] } + if (this.data.selectExplain && this.data.explainData) { + let explainData = this.data.explainData + let explain_prod = { + type: explainData.product.type, + product_id: explainData.product.id, + sku_id: explainData.sku.id, + product_num: 1, + } + data.product_list.push(explain_prod) + } + if (app.globalData.from) { data.system_name = app.globalData.from; } @@ -842,6 +863,34 @@ changeDate: function (e) { this.showAllPrice() }, + // 讲解 + getExplain () { + console.log(this.data.product) + commonApi._post("product/get_product_compose_list", { + product_id: this.data.product.product.id + }).then(res => { + if (res.data && res.data.length>0) { + this.setData({ + explainData: res.data[0] + }) + } + }) + }, + + changeSeletExplain (e) { + let val = e.currentTarget.dataset.val; + this.setData({ + selectExplain: val + }) + }, + + changeContent (e) { + let val = e.currentTarget.dataset.val; + this.setData({ + showContent: val + }) + }, + /** * 生命周期函数--监听页面初次渲染完成 */ diff --git a/pages/order/scene/index.wxml b/pages/order/scene/index.wxml index 32de400..e0d01d4 100644 --- a/pages/order/scene/index.wxml +++ b/pages/order/scene/index.wxml @@ -1,4 +1,5 @@ + - + + + 景点讲解服务 + + + + {{explainData.product.title}} + {{explainData.sku.sku_name}} + 0 + + + 详情 > + + + + + + + + + + + + + + 合计:¥0 @@ -150,4 +177,26 @@ + + + + + + + 产品详情 + + + + {{explainData.product.title}} + + + + 产品详情 + + + + + + + \ No newline at end of file diff --git a/pages/order/scene/index.wxss b/pages/order/scene/index.wxss index c3e18f0..36c3e24 100644 --- a/pages/order/scene/index.wxss +++ b/pages/order/scene/index.wxss @@ -450,4 +450,63 @@ page { .s-price::before { content: "¥"; font-size: 24rpx; +} + +.explain-box{ + width: 699rpx; + background: #FFFFFF; + border-radius: 9rpx; + margin: 0 auto; + padding: 26rpx 22rpx; + box-sizing: border-box; +} +.explain-box .explain-title{ + font-weight: bold; + font-size: 32rpx; + color: #000000; + margin-bottom: 26rpx; +} +.explain-box .explain-prod{ + display: flex; + width: 100%; + align-items: center; +} +.explain-box .explain-img{ + width: 135.33rpx; + height: 112rpx; + flex-shrink: 0; +} +.explain-box .explain-content{ + flex: 1; + width: 1rpx; + padding: 0 36rpx; + box-sizing: border-box; + line-height: 1; +} +.explain-box .explain-goods{ + font-weight: 500; +font-size: 31rpx; +color: #000000; +} +.explain-box .explain-sku{ + font-weight: 500; + font-size: 24rpx; + color: #999999; + padding: 20rpx 0; +} +.explain-box .explain-price{ + font-weight: 500; + font-size: 33.33rpx; + color: #E30000; +} +.explain-box .explain-price::before{ + content: "¥"; + font-size: 24rpx; +} +.icon-quan{ + font-size: 33rpx; +} +.icon-gou1{ + color: #D62828; + font-size: 33rpx; } \ No newline at end of file diff --git a/pages/search/list/index.wxml b/pages/search/list/index.wxml index a6b8cce..f2d4c5f 100644 --- a/pages/search/list/index.wxml +++ b/pages/search/list/index.wxml @@ -48,7 +48,7 @@ - {{item.title}} + {{item.title}} {{item.ext.rate}}分月销{{item.ext.sales_number}}份 {{item}} diff --git a/pages/user/bindtel/index.js b/pages/user/bindtel/index.js index 82055f8..65e8932 100644 --- a/pages/user/bindtel/index.js +++ b/pages/user/bindtel/index.js @@ -110,31 +110,41 @@ Page({ sendFlag: false, codeId: res.data.id }) - // 获取成功之后需要马上改变成倒计时 - let time = 59; - var timer = setInterval(() => { - // 倒计时结束需要重置可发送验证码状态和按钮文字 - if (time < 0) { - // 清除定时器 - clearInterval(timer) - this.setData({ - buttonText: "重新发送", - sendFlag: true - }) - return false; - } + } + else { + this.changeImgCode() this.setData({ - buttonText: time + "秒后重新发送" + picCode: "" + }) + wx.showModal({ + content: res.msg, + showCancel: false, }) - time--; - }, 1000) + + // this.setData({ + // buttonText: "重新发送", + // sendFlag: true + // }) } - else { + + // 获取成功之后需要马上改变成倒计时 + let time = 59; + var timer = setInterval(() => { + // 倒计时结束需要重置可发送验证码状态和按钮文字 + if (time < 0) { + // 清除定时器 + clearInterval(timer) + this.setData({ + buttonText: "重新发送", + sendFlag: true + }) + return false; + } this.setData({ - buttonText: "重新发送", - sendFlag: true + buttonText: time + "秒后重新发送" }) - } + time--; + }, 1000) }) // wx.navigateToMiniProgram({ diff --git a/pages/user/bindtel/index.wxml b/pages/user/bindtel/index.wxml index 2d12221..229442b 100644 --- a/pages/user/bindtel/index.wxml +++ b/pages/user/bindtel/index.wxml @@ -8,7 +8,7 @@ 图形验证码 - + diff --git a/pages/user/cartlist/list.js b/pages/user/cartlist/list.js index 55d0b1c..4317760 100644 --- a/pages/user/cartlist/list.js +++ b/pages/user/cartlist/list.js @@ -67,6 +67,15 @@ Page({ limit:999, }).then(res => { let resData = this.data.list.concat((res.data || [])) + resData.forEach(x=>{ + if (x.product&&x.product.type == 'post'&&x.product.is_package===0&&x.delivery_method===null) { + if (x.sku.sku_model.use_type == 1) { + x.delivery_method = 1 + } else { + x.delivery_method = 0 + } + } + }) this.setData({ list: resData }) @@ -143,7 +152,7 @@ Page({ }, changeNumber(item) { commonApi.user_post("cart/update_sku", { - sku_id: item.sku.id, + id: item.id, num: item.num }).then(res => { }) }, @@ -160,6 +169,8 @@ Page({ }) }, order: function () { + + commonApi.user_post('wx/get_user_keep', { jumpurl: '/pages/user/cartlist/list', title: '购物车', @@ -179,13 +190,15 @@ Page({ price = 0, product = [], product1 = [] - list.map(item => { + list.map((item,index) => { if (item.checked) { // item.product.type="post"; if (item.product.type == 'post') { product.push({ product: item.product, - sku: item.sku, + // todo + // sku: {...item.sku, use_type: item.sku.sku_model.use_type||index}, + sku: {...item.sku, use_type: item.delivery_method||0}, productNum: item.num }) } else { @@ -205,14 +218,37 @@ Page({ return; } - this.setData({flag:''}) + let repeatSku = product.find(x=>product.filter(v=>v.sku.id == x.sku.id).length>1) + if(repeatSku) { + let str = `${repeatSku.product.title}-${repeatSku.sku.sku_name}邮寄和自提只能选择一种` + wx.showModal({ + content: str, + showCancel: false, + complete: (res) => {} + }) + return + } + + this.setData({flag:''}) + if (product.length>0) { + let use_type = product[0].sku.use_type + if (product.some(x=>x.sku.use_type!=use_type)) { + this.setData({ + flag: 'mix', + isCar: 'multiple' + }) + } + } + if (product.length > 0 && product1.length > 0) { this.setData({ flag: 'mix', isCar: 'multiple' }) } + + if (product1.length > 1) { this.setData({ isCar: 'multiple' @@ -239,9 +275,18 @@ Page({ url: '/pages/order/postOrder/index?from=cart&flag=' + this.data.flag, }) } else { - wx.navigateTo({ - url: '/subPackages/gwcOrder/index?isCar=' + this.data.isCar, - }) + if (this.data.isCar == "single") { + console.log("123") + wx.navigateTo({ + url: '/pages/order/scene/index?isCar=' + this.data.isCar, + }) + } else { + wx.navigateTo({ + url: '/subPackages/gwcOrder/index?isCar=' + this.data.isCar, + }) + } + + } } }) @@ -330,7 +375,7 @@ Page({ let index = e.currentTarget.dataset.index, list = this.data.list; commonApi.user_post("cart/del_sku", { - sku_id: list[index].sku_id + id: list[index].id }).then(res => { if (res.code == 1) { wx.showToast({ @@ -350,7 +395,7 @@ Page({ let suid = [] arr.forEach(item => { if (item.checked) { - suid.push(item.sku_id) + suid.push(item.id) } }); let skuids = suid.join(',') @@ -360,7 +405,7 @@ Page({ success: function (res) { if (res.confirm) { commonApi.user_post("cart/del_sku", { - sku_id: skuids + id: skuids }).then(res => { if (res.code == 1) { wx.showToast({ diff --git a/pages/user/cartlist/list.wxml b/pages/user/cartlist/list.wxml index d05a364..085d857 100644 --- a/pages/user/cartlist/list.wxml +++ b/pages/user/cartlist/list.wxml @@ -5,7 +5,12 @@ - + + + + {{item.delivery_method===1?"自提":"邮寄"}} + + {{item.product.title}} diff --git a/pages/user/cartlist/list.wxss b/pages/user/cartlist/list.wxss index c5c40fd..82942ff 100644 --- a/pages/user/cartlist/list.wxss +++ b/pages/user/cartlist/list.wxss @@ -58,12 +58,34 @@ page { flex-shrink: 0; font-size: 40rpx; } -.item image { +.item .img-container{ margin: 0 25rpx; flex-shrink: 0; width: 173rpx; height: 173rpx; border-radius: 7rpx; + overflow: hidden; + position: relative; +} + +.item .img-container image { + width: 173rpx; + height: 173rpx; + border-radius: 7rpx; +} +.item .img-container .use-type{ + position: absolute; + left: 0; + bottom: 0; + width: 100%; + border-radius: 0rpx 0rpx 7rpx 7rpx; + height: 33rpx; + background: rgba(0,0,0,0.3); + font-weight: 400; + font-size: 24rpx; + color: #FFFFFF; + text-align: center; + line-height: 33rpx; } .item-info { flex: 1; diff --git a/pages/user/likes/index.js b/pages/user/likes/index.js index 44d3ca6..a0aca10 100644 --- a/pages/user/likes/index.js +++ b/pages/user/likes/index.js @@ -149,6 +149,12 @@ Page({ }); return } + if (item.product &&item.product.is_package==3) { + wx.navigateTo({ + url: '/subPackages/goods/memberCard/index?id='+item.product.id + }); + return + } switch(type){ diff --git a/pages/user/order/list.js b/pages/user/order/list.js index 978a08f..573bb1c 100644 --- a/pages/user/order/list.js +++ b/pages/user/order/list.js @@ -94,7 +94,10 @@ Page({ res.data.list.map((item,index)=>{ let orderNum = 0; item.order_product_list.map(order=>{ - orderNum = orderNum + order.product_num; + if (!order.is_bind_agent) { + orderNum = orderNum + order.product_num; + } + /// // 景点线路场馆酒店四类产品的订单 如果是已支付未出票的显示出票中 if(order.state=='PAID' && (order.product_model=='venue' || order.product_model=='ticket' || order.product_model=='hotel' || order.product_model=='line')){ @@ -118,7 +121,6 @@ Page({ if (item.is_order_card_product==1) { item.order_product_list = [item.order_product_list[0]] } - item.orderNum = orderNum; }) console.log(ajaxes) diff --git a/pages/user/order/list.wxml b/pages/user/order/list.wxml index 7d50a4d..63433d9 100644 --- a/pages/user/order/list.wxml +++ b/pages/user/order/list.wxml @@ -18,18 +18,21 @@ - + 订单号:{{item.order_id}} {{item.orderStateText?item.orderStateText:orderState[item.state]}} - - - {{item.product_model=='movie'?item.product_title:(item.product_title+item.sku_name)}} - - ¥{{item.product_price/100}} - x{{item.product_num}} + + + + {{order.product_model=='movie'?order.product_title:(order.product_title+order.sku_name)}} + + ¥{{order.paid_money/100}} + 共{{order.product_num}}件 + + 共{{item.orderNum}}件商品 diff --git a/pages/user/order/list.wxss b/pages/user/order/list.wxss index 2d1b215..7c2fd89 100644 --- a/pages/user/order/list.wxss +++ b/pages/user/order/list.wxss @@ -84,7 +84,7 @@ page { line-height: 40rpx; } .sku-tips .sku-price { - margin-bottom: 10rpx; + /* margin-bottom: 10rpx; */ } .total { text-align: right; diff --git a/pages/user/order/postOrderInfo/index.js b/pages/user/order/postOrderInfo/index.js index 75339e3..bce81f4 100644 --- a/pages/user/order/postOrderInfo/index.js +++ b/pages/user/order/postOrderInfo/index.js @@ -10,6 +10,8 @@ Page({ */ data: { info:null, + isPickup: false, // 是否自提 + orderState:app.globalData.orderState, productState:app.globalData.productState, product_model:null, @@ -17,6 +19,7 @@ Page({ feeInfoFlag:false, codeIndex:0, codeImgs:[], + imgLen: [], minute:"", second:"", id:null, @@ -99,26 +102,40 @@ Page({ }) }, getCodeImg:function(){ - let code = "111"; - let that = this,sys =wx.getSystemInfoSync(),radio = sys.screenWidth / 750,qrcode=this.data.info.order_product_list[0].qrcode,codeImgs=[]; - qrcode.map((item,index)=>{ - new QRCode('damocode'+index,{ - text: item.use_code, - width: 300 * radio, - height: 300 * radio, - padding: 12, // 生成二维码四周自动留边宽度,不传入默认为0 - correctLevel: QRCode.CorrectLevel.L, // 二维码可辨识度 - callback: (res) => { - codeImgs.push(res.path); - if(codeImgs.length==qrcode.length){ + let that = this,sys =wx.getSystemInfoSync(),radio = sys.screenWidth / 750, + qrcode=this.data.info.order_product_list[0].qrcode,codeImgs=[],codeId=0,arr = []; + + this.data.info.order_product_list.forEach(qrcode=>{ + qrcode.qrcode.map((item,index)=>{ + console.log(qrcode.is_force_display_code); + item.is_force_display_code = qrcode.is_force_display_code + console.log(item.is_force_display_code); + arr.push(index) + this.setData({imgLen:arr}) + if(item.use_url&&item.use_code){ + codeImgs.push({img:item.use_url,code:item.use_code,text:item.use_code_display_text,state:item.stateText,is_force_display_code:item.is_force_display_code,flag:item.state}); that.setData({ codeImgs:codeImgs }) } - console.log(res) - } + else { + new QRCode('damocode'+codeId,{ + text: item.use_code, + width: 300 * radio, + height: 300 * radio, + padding:10, // 生成二维码四周自动留边宽度,不传入默认为0 + correctLevel: QRCode.CorrectLevel.H, // 二维码可辨识度 + callback: (res) => { + codeImgs.push({img:res.path,code:item.use_code,text:item.use_code_display_text,state:item.stateText,is_force_display_code:item.is_force_display_code,flag:item.state}); + that.setData({ + codeImgs:codeImgs + }) + } + }) + codeId = codeId + 1 + } + }) }) - }) }, prevCodeImg:function(){ let qrcode=this.data.info.order_product_list[0].qrcode,codeIndex = this.data.codeIndex; @@ -212,6 +229,11 @@ Page({ url: '/subPackages/goods/oneCardTour/info/index?id='+item.scene_id }); return + } else if (item.is_package==3) { + wx.navigateTo({ + url: '/subPackages/goods/memberCard/index?id='+item.product_id + }); + return } if (item.product_model=='ticket') { @@ -313,8 +335,28 @@ getInfo () { order.consignee_info = order.consignee_info?JSON.parse(order.consignee_info):null; state = state + order.state; order.contacts_info = order.contacts_info?JSON.parse(order.contacts_info):[] - }) + if (order.pickup_shop_id>0) { + try { + order.pickupShop = JSON.parse(order.pickup_shop_info) + } catch(e) { + order.pickupShop = null + } + } + + }) + + // 2025-7-21能否确认收货 + res.data.is_all_confirm = true; + if (res.data.state=='PAID' && res.data.stateNums.WAIT_DELIVERY==res.data.order_product_list.length) { + res.data.order_product_list.forEach(v=>{ + if (v.shipped_batch_count < v.batch_count ) { + res.data.is_all_confirm = false + } + }) + } else { + res.data.is_all_confirm = false; + } // 权益卡 let cardPostList = []; let isCard= false; @@ -326,18 +368,19 @@ getInfo () { cardPostList.forEach(v=>{ console.log(v) if (v.order_card_product) { - v.order_card_product.month = new Date(v.order_card_product.delivery_start_date).getMonth()+1 - v.order_card_product.delivery_start_date = v.order_card_product.delivery_start_date.slice(0,10) - v.order_card_product.delivery_end_date = v.order_card_product.delivery_end_date.slice(0,10) + v.order_card_product.month = new Date(v.order_card_product.delivery_start_date).getMonth()+1 + v.order_card_product.delivery_start_date = v.order_card_product.delivery_start_date.slice(0,10) + v.order_card_product.delivery_end_date = v.order_card_product.delivery_end_date.slice(0,10) } if (['WAIT_DELIVERY', 'WAIT_COMMENT', 'COMPLETED'].includes(v.state)) { - deliveryNum += 1 + deliveryNum += 1 } }) } - + console.log(res.data, 'aaa') this.setData({ isRefund:state.indexOf("REFUND")!=-1, + isPickup: res.data.order_product_list.some(v=>v.pickup_shop_id>0), info:res.data, product_model:res.data.order_product_list[0].product_model, ids: proId.join(","), @@ -367,78 +410,30 @@ getInfo () { util.gotoDetail(item); } }, + + callPhone: function (e) { + let item = e.currentTarget.dataset.item + let phone = item.pickupShop.tel + wx.makePhoneCall({ + phoneNumber: phone + }) + }, + + gotolocation: function(e) { + let item = e.currentTarget.dataset.item + let info = item.pickupShop + wx.openLocation({ + latitude: Number(info.lat), + longitude: Number(info.lon), + name:info.title, + address:info.address + }) + }, /** * 生命周期函数--监听页面显示 */ onShow: function () { - commonApi.user_post("order/query",{ - order_id:this.data.id - }).then(res=>{ - if(res.data.create_time && res.data.auto_close_time && res.data.state=='UNPAID'){ - let time = (new Date(res.data.create_time.replace(/-/g,'/')).getTime() + Number(res.data.auto_close_time) * 1000); - this.daojishi(time); - } - let proId = [] - res.data.order_product_list.forEach(item => { - proId.push(item.product_id) - }) - let state = ""; - res.data.stateNums = {} - res.data.order_product_list.map(order=>{ - if(res.data.stateNums[order.state]){ - res.data.stateNums[order.state]++; - } - else { - res.data.stateNums[order.state] = 1; - } - order.consignee_info = order.consignee_info?JSON.parse(order.consignee_info):null; - state = state + order.state; - order.contacts_info = order.contacts_info?JSON.parse(order.contacts_info):[] - }) - - // 2025-7-21能否确认收货 - res.data.is_all_confirm = true; - if (res.data.state=='PAID' && res.data.stateNums.WAIT_DELIVERY==res.data.order_product_list.length) { - res.data.order_product_list.forEach(v=>{ - if (v.shipped_batch_count < v.batch_count ) { - res.data.is_all_confirm = false - } - }) - } else { - res.data.is_all_confirm = false; - } - // 权益卡 - let cardPostList = []; - let isCard= false; - let deliveryNum = 0; - if (res.data.order_product_list.some(v=>v.order_card_product)) { - cardPostList = res.data.order_product_list.slice(1) - res.data.order_product_list = [res.data.order_product_list[0]] - isCard = true; - cardPostList.forEach(v=>{ - console.log(v) - if (v.order_card_product) { - v.order_card_product.month = new Date(v.order_card_product.delivery_start_date).getMonth()+1 - v.order_card_product.delivery_start_date = v.order_card_product.delivery_start_date.slice(0,10) - v.order_card_product.delivery_end_date = v.order_card_product.delivery_end_date.slice(0,10) - } - if (['WAIT_DELIVERY', 'WAIT_COMMENT', 'COMPLETED'].includes(v.state)) { - deliveryNum += 1 - } - }) - } - console.log(res.data, 'aaa') - this.setData({ - isRefund:state.indexOf("REFUND")!=-1, - info:res.data, - product_model:res.data.order_product_list[0].product_model, - ids: proId.join(","), - cardPostList: cardPostList, - isCard: isCard, - deliveryNum: deliveryNum - }) - this.getCodeImg() - }) + this.getInfo() }, /** diff --git a/pages/user/order/postOrderInfo/index.wxml b/pages/user/order/postOrderInfo/index.wxml index 563d837..f2845b8 100644 --- a/pages/user/order/postOrderInfo/index.wxml +++ b/pages/user/order/postOrderInfo/index.wxml @@ -2,8 +2,9 @@ + {{info.state_text}} - + 您的退款已成功,退款金额预计在1-7个工作日内退还到您支付的账户 您已成功发起退款申请,请耐心等待 请在00:{{minute}}:{{second}}内支付,逾期订单将自动取消 @@ -13,6 +14,25 @@ {{info.order_product_list[0].consignee_info.address}} + + + + + + + + {{item.state}} + + + + + + 核销码:{{codeImgs[codeIndex].code}} + + + + + @@ -30,47 +50,96 @@ {{item.state_text}} - - 收货方式: - 分批收货 (共{{item.batch_count}}次) - 一次性收货 - - - 运费: - - ¥{{item.post_fee/item.batch_count/100}} x{{info.order_product_list[0].batch_count}} - {{item.post_fee?("¥"+item.post_fee/100):"包邮"}} - - - - 小计: - ¥{{item.paid_money/100}} - - - - - 物流信息 - - {{item.showMore?"收起":"展开"}} - + + 收货方式:自提 + + + 收货方式: + 分批收货 (共{{item.batch_count}}次) + 一次性收货 - - - - 当前已发:{{item.shipped_batch_count}} + + + + + + 商品总价: + ¥{{info.total_money/100}} + + + 运费: + + ¥{{info.total_post_fee/info.order_product_list[0].batch_count/100}} x{{info.order_product_list[0].batch_count}} + {{info.total_post_fee?("¥"+info.total_post_fee/100):"包邮"}} - - 物流备注:{{item.batch_remark}} + + + 优惠券: + -¥{{info.preference_money/100}} + + + 实付款 + ¥{{info.paid_money/100}} + + + + + + 物流信息 + + {{item.showMore?"收起":"展开"}} + + + + + 当前已发:{{item.shipped_batch_count}} + + + 当前待发:{{item.batch_count - item.shipped_batch_count}} + + + 物流备注:{{item.batch_remark}} + + + + + 快递{{shipIndex+1}} + + 快递公司:{{shipment.express_name}} + + + 快递单号: + + {{shipment.courier_number}} 复制 + + + + 发货时间:{{shipment.post_time}} + + + - + + + + + + + - 快递{{shipIndex+1}} 快递公司:{{shipment.express_name}} @@ -81,45 +150,24 @@ - 发货时间:{{shipment.post_time}} + 发货时间:{{shipment.post_time}} + - - - - - - - - - - 快递公司:{{shipment.express_name}} - - - 快递单号: - - {{shipment.courier_number}} 复制 - - - - 发货时间:{{shipment.post_time}} - + + + + 使用说明 + + {{item.showMsg?"收起":"展开"}} + - + - - - 使用说明 - - {{item.showMsg?"收起":"展开"}} - - - - @@ -174,29 +222,46 @@ - - 订单信息 - - 商品总价: - ¥{{info.total_money/100}} - - - 运费: - - ¥{{info.total_post_fee/info.order_product_list[0].batch_count/100}} x{{info.order_product_list[0].batch_count}} - {{info.total_post_fee?("¥"+info.total_post_fee/100):"包邮"}} + + 自提信息 + + + + + 预留手机号:{{info.order_product_list[0].phone}} + + + + {{info.order_product_list[0].pickupShop.title}} + {{info.order_product_list[0].pickupShop.address}} + + + + + 电话 + + + + + 导航 + + + + - - 优惠券: - -¥{{info.preference_money/100}} - - - 实付款 - ¥{{info.paid_money/100}} - - + + + + + + 订单信息 + + + 订单编号: diff --git a/pages/user/order/postOrderInfo/index.wxss b/pages/user/order/postOrderInfo/index.wxss index e02e564..c1bd603 100644 --- a/pages/user/order/postOrderInfo/index.wxss +++ b/pages/user/order/postOrderInfo/index.wxss @@ -16,6 +16,18 @@ page { color: #fff; font-size: 48rpx; } +.copy-box { + width: 73rpx; + line-height: 35rpx; + border-radius: 7rpx; + border: 1rpx solid #09898C; + margin-left: 15rpx; + text-align: center; + font-weight: 500; + font-size: 23rpx; + color: #0E8790; + height: 40rpx; +} .box { padding: 20rpx; background: white; @@ -202,8 +214,8 @@ page { top: 30rpx; } .code-box { - text-align: center; - height: 530rpx; + text-align: center; + min-height: 340rpx; position: relative; } .code-box .iconfont { @@ -240,6 +252,8 @@ page { font-size: 30rpx; font-weight: 500; margin: 25rpx; + display: flex; + justify-content: center; } .code-btn { width: 220rpx; @@ -439,4 +453,37 @@ color: #333333; width: 100%; height: 100%; border-radius: 50%; +} + + +.mask-shop-info{ + font-weight: 500; + font-size: 31rpx; + color: #000000; +} +.shop-info-item{ + display: flex; + align-items: flex-start; + font-family: PingFang SC; + font-weight: bold; + font-size: 27rpx; + color: #000000; + padding: 20rpx 0; + word-wrap: break-all; +} +.shop-info-item .start-icon{ + width: 33.33rpx; + height: 33.33rpx; + margin: 4rpx 17rpx 0 0; + flex-shrink: 0; +} +.shop-info-item .subtitle{ + font-weight: 500; + font-size: 24rpx; + color: #666666; + margin-top: 26rpx; +} +.shop-info-item .icon-phone{ + width: 56rpx; + height: 56rpx; } \ No newline at end of file diff --git a/pages/user/order/sceneOrderInfo/index.js b/pages/user/order/sceneOrderInfo/index.js index d00901b..248e463 100644 --- a/pages/user/order/sceneOrderInfo/index.js +++ b/pages/user/order/sceneOrderInfo/index.js @@ -245,6 +245,11 @@ Page({ url: '/subPackages/goods/oneCardTour/info/index?id='+item.scene_id }); return + } else if (item.is_package==3) { + wx.navigateTo({ + url: '/subPackages/goods/memberCard/index?id='+item.product_id + }); + return } if (item.product_model=='ticket') { diff --git a/pages/user/order/showOrderInfo/index.js b/pages/user/order/showOrderInfo/index.js index 428abb1..3888ad1 100644 --- a/pages/user/order/showOrderInfo/index.js +++ b/pages/user/order/showOrderInfo/index.js @@ -240,6 +240,11 @@ Page({ url: '/subPackages/goods/oneCardTour/info/index?id='+item.scene_id }); return + } else if (item.is_package==3) { + wx.navigateTo({ + url: '/subPackages/goods/memberCard/index?id='+item.product_id + }); + return } if (item.product_model=='ticket') { diff --git a/pages/user/order/showOrderInfo/index.wxml b/pages/user/order/showOrderInfo/index.wxml index 2cbad7f..414660c 100644 --- a/pages/user/order/showOrderInfo/index.wxml +++ b/pages/user/order/showOrderInfo/index.wxml @@ -48,6 +48,7 @@ 再次购买 再次购买 + 再次购买 再次购买 diff --git a/pages/user/user.wxml b/pages/user/user.wxml index 7437bc7..6d1dc76 100644 --- a/pages/user/user.wxml +++ b/pages/user/user.wxml @@ -66,9 +66,10 @@ - + 中奖记录 + diff --git a/project.config.json b/project.config.json index 744f8a8..e04ed97 100644 --- a/project.config.json +++ b/project.config.json @@ -1,102 +1,102 @@ { - "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", - "packOptions": { - "ignore": [], - "include": [] - }, - "setting": { - "urlCheck": false, - "es6": true, - "enhance": true, - "postcss": true, - "preloadBackgroundData": false, - "minified": true, - "newFeature": true, - "coverView": true, - "nodeModules": false, - "autoAudits": false, - "showShadowRootInWxmlPanel": true, - "packNpmRelationList": [ - { - "packageJsonPath": "./package.json", - "miniprogramNpmDistDir": "./miniprogram/" - } - ], - "scopeDataCheck": false, - "uglifyFileName": false, - "checkInvalidKey": true, - "checkSiteMap": true, - "uploadWithSourceMap": true, - "compileHotReLoad": false, - "useMultiFrameRuntime": true, - "useApiHook": true, - "useApiHostProcess": true, - "babelSetting": { - "ignore": [], - "disablePlugins": [], - "outputPath": "" + "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "packOptions": { + "ignore": [], + "include": [] }, - "enableEngineNative": false, - "bundle": false, - "useIsolateContext": true, - "useCompilerModule": false, - "userConfirmedUseCompilerModuleSwitch": false, - "userConfirmedBundleSwitch": false, - "packNpmManually": false, - "minifyWXSS": true, - "lazyloadPlaceholderEnable": false, - "useStaticServer": true, - "showES6CompileOption": false, - "disableUseStrict": false, - "useCompilerPlugins": false, - "minifyWXML": true, - "condition": false, - "ignoreUploadUnusedFiles": true - }, - "compileType": "miniprogram", - "libVersion": "3.8.9", - "appid": "wx4bb7b6050831f585", - "projectname": "%E8%8B%8F%E5%B7%9E%E6%96%87%E6%97%85", - "simulatorType": "wechat", - "simulatorPluginLibVersion": {}, - "condition": { - "miniprogram": { - "list": [ - { - "name": "pages/user/bindtel/index", - "pathName": "pages/user/bindtel/index", - "query": "id=0000000000LINELINEINFO18082257199008", - "scene": null + "setting": { + "urlCheck": false, + "es6": true, + "enhance": true, + "postcss": true, + "preloadBackgroundData": false, + "minified": true, + "newFeature": true, + "coverView": true, + "nodeModules": false, + "autoAudits": false, + "showShadowRootInWxmlPanel": true, + "packNpmRelationList": [ + { + "packageJsonPath": "./package.json", + "miniprogramNpmDistDir": "./miniprogram/" + } + ], + "scopeDataCheck": false, + "uglifyFileName": false, + "checkInvalidKey": true, + "checkSiteMap": true, + "uploadWithSourceMap": true, + "compileHotReLoad": false, + "useMultiFrameRuntime": true, + "useApiHook": true, + "useApiHostProcess": true, + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" }, - { - "name": "好行", - "pathName": "pages/list/haoxing/index", - "query": "", - "scene": null - }, - { - "name": "pages/list/activitynew/index", - "pathName": "pages/list/activitynew/index", - "query": "id=0000000000LINELINEINFO18082257199008", - "scene": null - }, - { - "name": "微旅行", - "pathName": "pages/list/minitrip/index", - "query": "", - "scene": null - }, - { - "name": "一日游", - "pathName": "pages/list/oneday/index", - "query": "", - "scene": null + "enableEngineNative": false, + "bundle": false, + "useIsolateContext": true, + "useCompilerModule": false, + "userConfirmedUseCompilerModuleSwitch": false, + "userConfirmedBundleSwitch": false, + "packNpmManually": false, + "minifyWXSS": true, + "lazyloadPlaceholderEnable": false, + "useStaticServer": true, + "showES6CompileOption": false, + "disableUseStrict": false, + "useCompilerPlugins": false, + "minifyWXML": true, + "condition": false, + "ignoreUploadUnusedFiles": true + }, + "compileType": "miniprogram", + "libVersion": "3.8.9", + "appid": "wx4bb7b6050831f585", + "projectname": "%E8%8B%8F%E5%B7%9E%E6%96%87%E6%97%85", + "simulatorType": "wechat", + "simulatorPluginLibVersion": {}, + "condition": { + "miniprogram": { + "list": [ + { + "name": "pages/user/bindtel/index", + "pathName": "pages/user/bindtel/index", + "query": "id=0000000000LINELINEINFO18082257199008", + "scene": null + }, + { + "name": "好行", + "pathName": "pages/list/haoxing/index", + "query": "", + "scene": null + }, + { + "name": "pages/list/activitynew/index", + "pathName": "pages/list/activitynew/index", + "query": "id=0000000000LINELINEINFO18082257199008", + "scene": null + }, + { + "name": "微旅行", + "pathName": "pages/list/minitrip/index", + "query": "", + "scene": null + }, + { + "name": "一日游", + "pathName": "pages/list/oneday/index", + "query": "", + "scene": null + } + ] } - ] + }, + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 2 } - }, - "editorSetting": { - "tabIndent": "insertSpaces", - "tabSize": 2 - } } \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json index 0e91f87..a2d084f 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -6,6 +6,83 @@ "condition": { "miniprogram": { "list": [ + { + "name": "pages/info/roadInfo/index", + "pathName": "pages/info/roadInfo/index", + "query": "id=465058", + "scene": null, + "launchMode": "default" + }, + { + "name": "pages/pbService/web/index", + "pathName": "pages/pbService/web/index", + "query": "weburl=https://test.m.cloud.sz-trip.com/selectedHotels", + "launchMode": "default", + "scene": null + }, + { + "name": "pages/group/index", + "pathName": "pages/group/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "pages/info/sceneProductInfo/index", + "pathName": "pages/info/sceneProductInfo/index", + "query": "id=5257", + "launchMode": "default", + "scene": null + }, + { + "name": "subPackages/postSearch/index", + "pathName": "subPackages/postSearch/index", + "query": "type_id=1&ids=", + "launchMode": "default", + "scene": null + }, + { + "name": "pages/info/postProductInfo/index", + "pathName": "pages/info/postProductInfo/index", + "query": "id=462080", + "launchMode": "default", + "scene": null + }, + { + "name": "pages/info/postProductInfo/index", + "pathName": "pages/info/postProductInfo/index", + "query": "id=464888", + "launchMode": "default", + "scene": null + }, + { + "name": "pages/order/orderList/index", + "pathName": "pages/order/orderList/index", + "query": "flag=mix", + "launchMode": "default", + "scene": null + }, + { + "name": "subPackages/techanNew/selfPickPoint/index", + "pathName": "subPackages/techanNew/selfPickPoint/index", + "query": "pickupId=null&goodsId=457654&skuId=190836", + "launchMode": "default", + "scene": null + }, + { + "name": "pages/info/postProductInfo/index", + "pathName": "pages/info/postProductInfo/index", + "query": "id=457654", + "launchMode": "default", + "scene": null + }, + { + "name": "subPackages/goods/memberCard/index", + "pathName": "subPackages/goods/memberCard/index", + "query": "id=464704", + "launchMode": "default", + "scene": null + }, { "name": "subPackages/foodListNew/index", "pathName": "subPackages/foodListNew/index", diff --git a/subPackageCheckPoint/app.js b/subPackageCheckPoint/app.js index 8133c65..3031fe6 100644 --- a/subPackageCheckPoint/app.js +++ b/subPackageCheckPoint/app.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./common/vendor.js");Math;const o={globalData:{baseUrl:null,innerAudioContext:t.index.createInnerAudioContext(),T:""},onLaunch:function(){this.globalData.baseUrl="https://jdsz.ispush.com",this.globalData.innerAudioContext.src=`${this.globalData.baseUrl}/static/audio/bg.mp3`,this.globalData.innerAudioContext.obeyMuteSwitch=!1,this.globalData.innerAudioContext.autoplay=!1,this.globalData.innerAudioContext.loop=!0,console.log("App Launch")},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")},onShareAppMessage:t=>({title:"君到苏州最美打卡点",path:"pages/index/index"}),onShareTimeline:()=>({title:"君到苏州最美打卡点",path:"pages/index/index"})};function e(){return{app:t.createSSRApp(o)}}e().app.mount("#app"),exports.createApp=e; +"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./common/vendor.js");Math;const o={globalData:{baseUrl:null,innerAudioContext:t.index.createInnerAudioContext(),T:""},onLaunch:function(){this.globalData.baseUrl="https://jdsz.ispush.com",this.globalData.innerAudioContext.src=`${this.globalData.baseUrl}/static/audio/bg.mp3`,this.globalData.innerAudioContext.obeyMuteSwitch=!1,this.globalData.innerAudioContext.autoplay=!1,this.globalData.innerAudioContext.loop=!0,console.log("App Launch")},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")},onShareAppMessage:t=>({title:"君到苏州最美打卡点",path:"subPackageCheckPoint/pages/index/index"}),onShareTimeline:()=>({title:"君到苏州最美打卡点",path:"subPackageCheckPoint/pages/index/index"})};function e(){return{app:t.createSSRApp(o)}}e().app.mount("#app"),exports.createApp=e; diff --git a/subPackageCheckPoint/pages/detailsmap/index.wxml b/subPackageCheckPoint/pages/detailsmap/index.wxml index f8c29b6..0a3b35a 100644 --- a/subPackageCheckPoint/pages/detailsmap/index.wxml +++ b/subPackageCheckPoint/pages/detailsmap/index.wxml @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + \ No newline at end of file diff --git a/subPackageCheckPoint/pages/detailsmap/index.wxss b/subPackageCheckPoint/pages/detailsmap/index.wxss index 3fbae8c..8da2eab 100644 --- a/subPackageCheckPoint/pages/detailsmap/index.wxss +++ b/subPackageCheckPoint/pages/detailsmap/index.wxss @@ -1,2 +1,8 @@ @import "../../app.wxss"; -.content.data-v-5f2d6979{background:#eeeeed}.detailsMap.data-v-5f2d6979{width:100%;height:100%}.detailsMap>image.data-v-5f2d6979{width:100%;height:100%}.detailsMapPoint.data-v-5f2d6979{position:absolute}.detailsMapPoint>image.data-v-5f2d6979{width:100%;height:100%}.stickyMask.data-v-5f2d6979{position:absolute;pointer-events:none;width:750rpx;height:1334rpx;z-index:999;top:0}.stickyMask .stickyItem.data-v-5f2d6979{position:absolute;left:0;top:0;width:750rpx;height:1334rpx}.stickyMask .stickyItem .stickyTitle.data-v-5f2d6979{position:absolute;width:calc(var(--base-width)*1188rpx);height:calc(var(--base-width)*378rpx);left:calc(var(--base-width)*708rpx);top:calc(var(--base-width)*200rpx);transform:translate(150%);opacity:0;animation:1s stickyTitleAnime-5f2d6979 ease-in-out forwards}.stickyMask .stickyItem .stickyTitle>image.data-v-5f2d6979{width:100%;height:100%}.stickyMask .stickyItem .stickyGusuLeft.data-v-5f2d6979{position:absolute;width:calc(var(--base-width)*1067rpx);height:calc(var(--base-width)*759rpx);left:calc(var(--base-width)*0rpx);top:calc(var(--base-width)*2388rpx);transform:translate(-150%);opacity:0;animation:1s stickyGusuLeftAnime-5f2d6979 ease-in-out forwards}.stickyMask .stickyItem .stickyGusuLeft>image.data-v-5f2d6979{width:100%;height:100%}.stickyMask .stickyItem .stickyGusuRight.data-v-5f2d6979{position:absolute;width:calc(var(--base-width)*601rpx);height:calc(var(--base-width)*258rpx);right:0;top:calc(var(--base-width)*3260rpx);transform:translate(150%);opacity:0;animation:1s ease-in-out stickyGusuRightAnime-5f2d6979 forwards}.stickyMask .stickyItem .stickyGusuRight>image.data-v-5f2d6979{width:100%;height:100%}.bgBox.data-v-5f2d6979{position:absolute;width:calc(var(--base-width) * 2160rpx);height:calc(var(--base-width) * 3840rpx);top:0}.bgBox .bgItem.data-v-5f2d6979{width:100%;height:100%;top:0}.bgBox .bgItem>image.data-v-5f2d6979{width:100%;height:100%}@keyframes stickyTitleAnime-5f2d6979{0%{transform:translate(150%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes stickyGusuLeftAnime-5f2d6979{0%{transform:translate(-150%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes stickyGusuRightAnime-5f2d6979{0%{transform:translate(150%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes bgGusuItemAnime-5f2d6979{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}} +.content.data-v-5f2d6979{background:#eeeeed;overflow: hidden;} +.detailsMap.data-v-5f2d6979{width:100%;height:100%;overflow: hidden;} +.detailsMap>image.data-v-5f2d6979{width:100%;height:100%} +.detailsMapPoint.data-v-5f2d6979{position:absolute} +.detailsMapPoint>image.data-v-5f2d6979{width:100%;height:100%} +.stickyMask.data-v-5f2d6979{position:absolute;pointer-events:none;width:750rpx;height:1334rpx;z-index:999;top:0} +.stickyMask .stickyItem.data-v-5f2d6979{position:absolute;left:0;top:0;width:750rpx;height:1334rpx}.stickyMask .stickyItem .stickyTitle.data-v-5f2d6979{position:absolute;width:calc(var(--base-width)*1188rpx);height:calc(var(--base-width)*378rpx);left:calc(var(--base-width)*708rpx);top:calc(var(--base-width)*200rpx);transform:translate(150%);opacity:0;animation:1s stickyTitleAnime-5f2d6979 ease-in-out forwards}.stickyMask .stickyItem .stickyTitle>image.data-v-5f2d6979{width:100%;height:100%}.stickyMask .stickyItem .stickyGusuLeft.data-v-5f2d6979{position:absolute;width:calc(var(--base-width)*1067rpx);height:calc(var(--base-width)*759rpx);left:calc(var(--base-width)*0rpx);top:calc(var(--base-width)*2388rpx);transform:translate(-150%);opacity:0;animation:1s stickyGusuLeftAnime-5f2d6979 ease-in-out forwards}.stickyMask .stickyItem .stickyGusuLeft>image.data-v-5f2d6979{width:100%;height:100%}.stickyMask .stickyItem .stickyGusuRight.data-v-5f2d6979{position:absolute;width:calc(var(--base-width)*601rpx);height:calc(var(--base-width)*258rpx);right:0;top:calc(var(--base-width)*3260rpx);transform:translate(150%);opacity:0;animation:1s ease-in-out stickyGusuRightAnime-5f2d6979 forwards}.stickyMask .stickyItem .stickyGusuRight>image.data-v-5f2d6979{width:100%;height:100%}.bgBox.data-v-5f2d6979{position:absolute;width:calc(var(--base-width) * 2160rpx);height:calc(var(--base-width) * 3840rpx);top:0}.bgBox .bgItem.data-v-5f2d6979{width:100%;height:100%;top:0}.bgBox .bgItem>image.data-v-5f2d6979{width:100%;height:100%}@keyframes stickyTitleAnime-5f2d6979{0%{transform:translate(150%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes stickyGusuLeftAnime-5f2d6979{0%{transform:translate(-150%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes stickyGusuRightAnime-5f2d6979{0%{transform:translate(150%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes bgGusuItemAnime-5f2d6979{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}} diff --git a/subPackageCheckPoint/pages/index/index.js b/subPackageCheckPoint/pages/index/index.js index 46a57d2..6fced32 100644 --- a/subPackageCheckPoint/pages/index/index.js +++ b/subPackageCheckPoint/pages/index/index.js @@ -1,2 +1,2 @@ require('../../app.js'); -"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),o={components:{audioCom:()=>"../../components/audioCom.js"},data:()=>({comDom:!0,homeShowState:!0,scopeMapShowState:!1,x:0,y:0,old:{x:0,y:0},scopePointList:[{w:"76rpx",h:"55rpx",x:"270rpx",y:"715rpx",tag:"姑苏区",source:"/subPackageCheckPoint/static/images/scopeMap/gusuqu.png",state:!0},{w:"76rpx",h:"54rpx",x:"177rpx",y:"667rpx",tag:"高新区",source:"/subPackageCheckPoint/static/images/scopeMap/gaoxinqu.png",state:!0},{w:"73rpx",h:"60rpx",x:"520rpx",y:"710rpx",tag:"昆山市",source:"/subPackageCheckPoint/static/images/scopeMap/kunshanshi.png",state:!0},{w:"76rpx",h:"58rpx",x:"616rpx",y:"510rpx",tag:"太仓市",source:"/subPackageCheckPoint/static/images/scopeMap/taicangshi.png",state:!0},{w:"100rpx",h:"56rpx",x:"360rpx",y:"706rpx",tag:"工业园区",source:"/subPackageCheckPoint/static/images/scopeMap/gongyeyuanqu.png",state:!0},{w:"75rpx",h:"58rpx",x:"390rpx",y:"464rpx",tag:"常熟市",source:"/subPackageCheckPoint/static/images/scopeMap/changshushi.png",state:!0},{w:"76rpx",h:"55rpx",x:"343rpx",y:"940rpx",tag:"吴江区",source:"/subPackageCheckPoint/static/images/scopeMap/wujiangqu.png",state:!0},{w:"75rpx",h:"54rpx",x:"220rpx",y:"810rpx",tag:"吴中区",source:"/subPackageCheckPoint/static/images/scopeMap/wuzhongqu.png",state:!0},{w:"76rpx",h:"56rpx",x:"278rpx",y:"613rpx",tag:"相城区",source:"/subPackageCheckPoint/static/images/scopeMap/xiangchengqu.png",state:!0},{w:"101rpx",h:"49rpx",x:"236rpx",y:"284rpx",tag:"张家港市",source:"/subPackageCheckPoint/static/images/scopeMap/zhangjiagangshi.png",state:!0}]}),async onLoad(){},onShareAppMessage:e=>({title:"君到苏州最美打卡点",path:"pages/index/index"}),onShareTimeline:()=>({title:"君到苏州最美打卡点",path:"pages/index/index"}),onShow(){this.comDom=!0},onHide(){this.comDom=!1},methods:{openMap(){e.index.navigateTo({url:"/subPackageCheckPoint/pages/scopemap/index"})},getClass:e=>`scopePoint${e+1}`,showScopeMap(){this.homeShowState=!1,this.scopeMapShowState=!0},getScopePointStyle:e=>({width:e.w,height:e.h,left:e.x,top:e.y}),openDetailsMap(t){t.state?e.index.navigateTo({url:`/subPackageCheckPoint/pages/detailsmap/index?tag=${t.tag}`}):e.index.showToast({title:"暂未开放",icon:"error",duration:2e3})},onChange(e){this.old.x=e.detail.x,this.old.y=e.detail.y}}};if(!Array){e.resolveComponent("audio-com")()}const a=e._export_sfc(o,[["render",function(o,a,p,s,i,r){return e.e({a:i.comDom},i.comDom?{b:e.sr("audioCom","46c0ccd2-0")}:{},{c:t._imports_0,d:t._imports_1,e:i.homeShowState,f:e.o(((...e)=>r.showScopeMap&&r.showScopeMap(...e))),g:t._imports_2,h:t._imports_3,i:i.scopeMapShowState,j:t._imports_4,k:e.f(i.scopePointList,((t,o,a)=>({a:t.source,b:e.n(r.getClass(o)),c:o,d:e.s(r.getScopePointStyle(t)),e:t.tag,f:e.o((e=>r.openDetailsMap(t)),o)}))),l:"750rpx",m:"1334rpx",n:i.x,o:i.y,p:e.o(((...e)=>r.onChange&&r.onChange(...e))),q:i.scopeMapShowState,r:t._imports_5,s:i.scopeMapShowState,t:t._imports_6,v:i.scopeMapShowState})}],["__scopeId","data-v-46c0ccd2"]]);o.__runtimeHooks=6,wx.createPage(a); +"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),o={components:{audioCom:()=>"../../components/audioCom.js"},data:()=>({comDom:!0,homeShowState:!0,scopeMapShowState:!1,x:0,y:0,old:{x:0,y:0},scopePointList:[{w:"76rpx",h:"55rpx",x:"270rpx",y:"715rpx",tag:"姑苏区",source:"/subPackageCheckPoint/static/images/scopeMap/gusuqu.png",state:!0},{w:"76rpx",h:"54rpx",x:"177rpx",y:"667rpx",tag:"高新区",source:"/subPackageCheckPoint/static/images/scopeMap/gaoxinqu.png",state:!0},{w:"73rpx",h:"60rpx",x:"520rpx",y:"710rpx",tag:"昆山市",source:"/subPackageCheckPoint/static/images/scopeMap/kunshanshi.png",state:!0},{w:"76rpx",h:"58rpx",x:"616rpx",y:"510rpx",tag:"太仓市",source:"/subPackageCheckPoint/static/images/scopeMap/taicangshi.png",state:!0},{w:"100rpx",h:"56rpx",x:"360rpx",y:"706rpx",tag:"工业园区",source:"/subPackageCheckPoint/static/images/scopeMap/gongyeyuanqu.png",state:!0},{w:"75rpx",h:"58rpx",x:"390rpx",y:"464rpx",tag:"常熟市",source:"/subPackageCheckPoint/static/images/scopeMap/changshushi.png",state:!0},{w:"76rpx",h:"55rpx",x:"343rpx",y:"940rpx",tag:"吴江区",source:"/subPackageCheckPoint/static/images/scopeMap/wujiangqu.png",state:!0},{w:"75rpx",h:"54rpx",x:"220rpx",y:"810rpx",tag:"吴中区",source:"/subPackageCheckPoint/static/images/scopeMap/wuzhongqu.png",state:!0},{w:"76rpx",h:"56rpx",x:"278rpx",y:"613rpx",tag:"相城区",source:"/subPackageCheckPoint/static/images/scopeMap/xiangchengqu.png",state:!0},{w:"101rpx",h:"49rpx",x:"236rpx",y:"284rpx",tag:"张家港市",source:"/subPackageCheckPoint/static/images/scopeMap/zhangjiagangshi.png",state:!0}]}),async onLoad(){},onShareAppMessage:e=>({title:"君到苏州最美打卡点",path:"subPackageCheckPoint/pages/index/index"}),onShareTimeline:()=>({title:"君到苏州最美打卡点",path:"subPackageCheckPoint/pages/index/index"}),onShow(){this.comDom=!0},onHide(){this.comDom=!1},methods:{openMap(){e.index.navigateTo({url:"/subPackageCheckPoint/pages/scopemap/index"})},getClass:e=>`scopePoint${e+1}`,showScopeMap(){this.homeShowState=!1,this.scopeMapShowState=!0},getScopePointStyle:e=>({width:e.w,height:e.h,left:e.x,top:e.y}),openDetailsMap(t){t.state?e.index.navigateTo({url:`/subPackageCheckPoint/pages/detailsmap/index?tag=${t.tag}`}):e.index.showToast({title:"暂未开放",icon:"error",duration:2e3})},onChange(e){this.old.x=e.detail.x,this.old.y=e.detail.y}}};if(!Array){e.resolveComponent("audio-com")()}const a=e._export_sfc(o,[["render",function(o,a,p,s,i,r){return e.e({a:i.comDom},i.comDom?{b:e.sr("audioCom","46c0ccd2-0")}:{},{c:t._imports_0,d:t._imports_1,e:i.homeShowState,f:e.o(((...e)=>r.showScopeMap&&r.showScopeMap(...e))),g:t._imports_2,h:t._imports_3,i:i.scopeMapShowState,j:t._imports_4,k:e.f(i.scopePointList,((t,o,a)=>({a:t.source,b:e.n(r.getClass(o)),c:o,d:e.s(r.getScopePointStyle(t)),e:t.tag,f:e.o((e=>r.openDetailsMap(t)),o)}))),l:"750rpx",m:"1334rpx",n:i.x,o:i.y,p:e.o(((...e)=>r.onChange&&r.onChange(...e))),q:i.scopeMapShowState,r:t._imports_5,s:i.scopeMapShowState,t:t._imports_6,v:i.scopeMapShowState})}],["__scopeId","data-v-46c0ccd2"]]);o.__runtimeHooks=6,wx.createPage(a); diff --git a/subPackages/feiyiNew/index.js b/subPackages/feiyiNew/index.js index 8402dc5..eb5bb0d 100644 --- a/subPackages/feiyiNew/index.js +++ b/subPackages/feiyiNew/index.js @@ -44,7 +44,9 @@ Page({ seachFlag:false, //搜索模式 totalPrice:0, //获取购物车总价 name:'非遗专卖', - nowAddListId:[] + nowAddListId:[], + + user_type: null, }, /** @@ -69,10 +71,10 @@ Page({ delAll() { let ids = [] this.data.gwcList.forEach(item => { - ids.push(item.sku_id) + ids.push(item.id) }) commonApi.user_post("cart_within/del_sku", { - sku_id: ids+'', + id: ids+'', type:'2' }).then(res => { if (res.code == 1) { @@ -92,10 +94,11 @@ Page({ del(e) { let item = e.currentTarget.dataset.item let gwcList = this.data.gwcList + let valueNum = e.currentTarget.dataset.value commonApi.user_post("cart_within/update_sku", { - num:item.num-1, - sku_id: item.sku_id, - type:'2' + num:item.num + valueNum, + id: item.id, + type:'1' }).then(res => { if (res.code == 1) { // this.getCount() @@ -117,6 +120,9 @@ Page({ if (item.selected ==1) { totalPrice += item.num*item.sku.price } + if (item.delivery_method === null) { + item.delivery_method = item.sku.sku_model.use_type == 1?1:0 + } }) } let status = res.data.every(el => el.selected === 1) @@ -132,6 +138,13 @@ Page({ }, // 添加产品到购物车 addCart: function (e) { + if (![0,1].includes(this.data.user_type)) { + wx.showToast({ + title: "请选择配送方式", + icon:"none" + }) + return + } let item = e.currentTarget.dataset.item app.globalData.postProduct = [] app.globalData.list = [] @@ -144,7 +157,8 @@ Page({ commonApi.user_post("cart_within/add_sku", { sku_id: this.data.showPopup ? item.sku.id :this.data.info.sku[this.data.skuIndex].id, num: this.data.producNum, - type:"2" + type:"2", + delivery_method: this.data.user_type }).then(res => { if (res.code == 1) { let sku_id = this.data.showPopup ? item.sku.id :this.data.info.sku[this.data.skuIndex].id @@ -187,6 +201,9 @@ Page({ if (element.selected == 1) { totalPrice += Number(element.num*element.sku.price) } + if (element.delivery_method === null) { + element.delivery_method = element.sku.sku_model.use_type == 1?1:0 + } }) let status = res.data.every(el => el.selected === 1) this.setData({ @@ -252,7 +269,7 @@ Page({ if (item.product.type == 'post') { product.push({ product: item.product, - sku: item.sku, + sku: {...item.sku, use_type: item.delivery_method||0}, productNum: item.num }) } else { @@ -271,21 +288,27 @@ Page({ // }) return; } - if (product.length > 0 && product1.length > 0) { - this.setData({ - flag: 'mix', - isCar: 'multiple' - }) - } - if (product1.length > 1) { - this.setData({ - isCar: 'multiple' - }) - } else { - this.setData({ - isCar: 'single' + let repeatSku = product.find(x=>product.filter(v=>v.sku.id == x.sku.id).length>1) + if(repeatSku) { + let str = `${repeatSku.product.title}-${repeatSku.sku.sku_name}邮寄和自提只能选择一种` + wx.showModal({ + content: str, + showCancel: false, + complete: (res) => {} }) + return + } + + let useType = product[0].sku.use_type + let flag = this.data.flag, isCar = "single"; + if (product.some(x=>x.sku.use_type!=useType)) { + flag = "mix" + isCar = "multiple" } + this.setData({ + flag: flag, + isCar: isCar + }) console.log(product1); app.globalData.postProduct = product; if (app.globalData.list) { @@ -427,6 +450,9 @@ Page({ if(item.selected == 1) { totalPrice += item.num*item.sku.price } + if (item.delivery_method === null) { + item.delivery_method = item.sku.sku_model.use_type == 1?1:0 + } }) } this.setData({ @@ -581,6 +607,9 @@ Page({ }, // 添加产品弹窗 1.首先获取到该产品下的规格 addBuyCart(e) { + this.setData({ + user_type: null + }) let item = e.currentTarget.dataset.item console.log(item); commonApi._post("product/get_product_detail", { @@ -594,6 +623,7 @@ Page({ this.setData({ info: res.data, // skuFlag: "cart" + user_type: res.data.sku[0].use_type>1?null:res.data.sku[0].use_type, }) this.showCart() this.BroswerRecord() @@ -637,9 +667,16 @@ Page({ selectSku: function (e) { let index = e.currentTarget.dataset.index; this.setData({ - skuIndex: index - }) + skuIndex: index, + user_type: this.data.info.sku[index].use_type>1?null:this.data.info.sku[index].use_type, + }) }, + changeSelectSkuPost: function(e) { + let value = e.currentTarget.dataset.value; + this.setData({ + user_type: value, + }) +}, // 关闭弹窗 hideSku: function () { this.setData({ diff --git a/subPackages/feiyiNew/index.wxml b/subPackages/feiyiNew/index.wxml index 39b1351..d8511f2 100644 --- a/subPackages/feiyiNew/index.wxml +++ b/subPackages/feiyiNew/index.wxml @@ -197,6 +197,25 @@ {{producNum}} + + 配送方式 + + + + + + + 邮寄 + + + + + + + 自提 + + + - + @@ -228,7 +247,10 @@ - + + + {{item.delivery_method==1?"自提":"邮寄"}} + {{item.product.title}} @@ -237,9 +259,9 @@ {{item.sku.price/100}} - + {{item.num}} - + diff --git a/subPackages/feiyiNew/index.wxss b/subPackages/feiyiNew/index.wxss index 2a0bd5b..94b4285 100644 --- a/subPackages/feiyiNew/index.wxss +++ b/subPackages/feiyiNew/index.wxss @@ -440,7 +440,7 @@ page { display: flex; font-size: 29rpx; color: #333; - margin: 0 40rpx; + margin: 0 30rpx; text-align: center; flex-wrap: wrap; margin-bottom: 20rpx; @@ -777,3 +777,57 @@ page { .phcolor { color: #ccc; } +.delivery-method{ + font-weight: 400; + font-size: 29rpx; + color: #1E1E1E; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 40rpx 40rpx; +} +.delivery-method .select-cycle{ + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 1px solid #999999; + overflow: hidden; + flex-shrink: 0; + +} +.delivery-method .select-cycle image{ + width: 100%; + height: 100%; +} +.delivery-method .select-cycle.selected { + border: none; +} +.delivery-method .select-cycle.selected image{ + width: 32rpx; + height: 32rpx; + border-radius: 50%; +} +.delivery-method .method-str{ + padding-left: 10rpx; + flex-shrink: 0; +} +.delivery-method .flex-center{ + width: 150rpx; + justify-content: flex-end; + display: flex; + align-items: center; +} + .use-type{ + position: absolute; + left: 0; + bottom: 0; + width: 100%; + border-radius: 0rpx 0rpx 7rpx 7rpx; + height: 33rpx; + background: rgba(0,0,0,0.3); + font-weight: 400; + font-size: 24rpx; + color: #FFFFFF; + text-align: center; + line-height: 33rpx; +} \ No newline at end of file diff --git a/subPackages/foodNew/index.js b/subPackages/foodNew/index.js index aa44650..04c4f3d 100644 --- a/subPackages/foodNew/index.js +++ b/subPackages/foodNew/index.js @@ -167,15 +167,16 @@ Page({ } catch(e) {} - // let swiperRange = this.data.swiperRange; - // swiperRange.video = resData.videourl? { min: 0, max: 0 } : { min: -1, max: -1 } - // swiperRange.picture = {min:swiperRange.video.max+1, max:swiperRange.video.max+1+resData.listimg.length-1} - // swiperRange.sku = {min:swiperRange.picture.max+1,max:swiperRange.picture.max+1+resData.sku.length-1} + let swiperRange = this.data.swiperRange; + swiperRange.video = resData.videourl? { min: 0, max: 0 } : { min: -1, max: -1 } + swiperRange.picture = {min:swiperRange.video.max+1, max:swiperRange.video.max+1+resData.listimg.length-1} + swiperRange.sku = {min:swiperRange.picture.max+1,max:swiperRange.picture.max+1+resData.sku.length-1} this.setData({ info: resData, - // swiperRange: swiperRange, + swiperRange: swiperRange, shareImg: null, - prod_phone: resData.scene_tel + prod_phone: resData.scene_tel, + swiperCurrent: 0 }) this.drawImg() diff --git a/subPackages/foodNew/index.wxml b/subPackages/foodNew/index.wxml index 46f0ced..725d622 100644 --- a/subPackages/foodNew/index.wxml +++ b/subPackages/foodNew/index.wxml @@ -34,14 +34,17 @@ + - @@ -58,6 +61,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{info.title}} + + ¥{{info.sku[skuIndex].price / 100}} + ¥{{info.sku[skuIndex].market_price / 100}} + + + + + + + + + {{info.sku[skuIndex].display_tags}} + 增值权益 + + + + + + + + + + + + + + + + + + 客服 + + + + 收藏 + + + + + + 加入购物车 + 立即购买 + + + + + + {{cartCount}} + + + + + + + + + + {{info.sku[skuIndex].price/100}} + + + 已选择:{{info.sku[skuIndex].sku_name}} + + + + + {{producNum}} + + + 限购{{info.sku[skuIndex].sku_model.traveller_limit_num}}件 + + + + 产品分类({{info.sku.length}}) + + + + {{item.sku_name}} + + + + + + + {{skuFlag=='cart'?'确认':'立即购买'}} + + 该商品已下架 + + + + + + + + + + + + + + + + {{allowance_data.title}} + + + + + + + + + + + + {{otherInfoShow==3?"产品参数":otherInfoShow==2?"服务说明":"发货说明"}} + + + + + + + + + + + + + + + + + + + + + + + 确定 + + + \ No newline at end of file diff --git a/subPackages/goods/memberCard/index.wxss b/subPackages/goods/memberCard/index.wxss new file mode 100644 index 0000000..fdeb6c2 --- /dev/null +++ b/subPackages/goods/memberCard/index.wxss @@ -0,0 +1,1025 @@ +/* pages/info/hotelProductInfo/index.wxss */ +page { + background: #F7F7F7; +} + +.swiper { + width: 100%; + height: 367.33rpx; +} +.swiper swiper-item{ + width: 100%; + height: 100%; + background: #F7F7F7; + padding: 26rpx 27rpx 0; + box-sizing: border-box; +} + +.swiper image,.swiper video { + height: 340rpx; + display: block; + width: 100%; + border-radius: 27rpx 27rpx 0rpx 0rpx; +} +.swiper-bottom{ + position: absolute; + /* top: 750rpx; */ + bottom: 77rpx; + right: 0; + width: 90rpx; + height: fit-content; + display: flex; + flex-direction: column; + align-items: center; + font-weight: 500; + font-size: 24rpx; + color: rgba(255,255,255,0.5); + z-index: 10; +} +.swuper-bottom-bg{ + background: rgba(1, 0, 0, 0.6); + border-radius: 20rpx 0rpx 0rpx 20rpx; + display: flex; + flex-direction: column; + width: 100%; + padding: 8rpx 0; + margin-bottom: 12rpx; +} +.swiper-bottom-item{ + width: 100%; + text-align: center; + padding: 14rpx 0; +} +.swiper-bottom-item.active{ + color: #fff; +} +.swiper-bottom-item.bottom-number{ + max-width: 100%; + width: fit-content; + background: rgba(1, 0, 0, 0.6); + border-radius: 13rpx; + height: 40rpx; + line-height: 40rpx; + padding: 0 10rpx; + overflow: hidden; + box-sizing: border-box; +} + +.top-info { + background:#FFEDD8; + position: relative; + z-index: 1; + width: 696rpx; + margin: 0 auto; + padding: 26rpx 28rpx 120rpx; + box-sizing: border-box; + min-height: 200rpx; + display: flex; + justify-content: space-between; +} + +.top-info .title { + font-weight: bold; + font-size: 32rpx; + color: #000000; + flex: 1; + width: 100rpx; + padding-right: 20rpx; +} + +.top-info .price-box{ + flex-shrink: 0; +} + +.top-info .top-price{ + font-weight: bold; + font-size: 39rpx; + color: #FF0000; + padding-right: 6rpx; +} +.top-info .old-price{ + font-weight: 400; + font-size: 24rpx; + color: #999999; + text-decoration-line: line-through; +} + +.box { + /* margin: 20rpx; */ + /* background: white; */ + /* border-radius: 13rpx; */ + background: #f2f2f2; + padding: 20rpx; +} + + +.scroll-all-box { +} + +.scroll-menus { + + position: relative; + margin-top: -120rpx; + z-index: 3; + width: 100%; + height: 654rpx; + background-image: url(https://static.ticket.sz-trip.com/jundaosuzhou/images/aiPlay/equityCardBg.png); + background-size: 100% 100%; + font-weight: bold; + font-size: 39rpx; + color: #D4A974; + padding: 130rpx 26rpx; + box-sizing: border-box; +} +.scroll-menus .type-box{ + width: 100%; + border-bottom: 2rpx solid #D4A974; + display: flex; + justify-content: space-between; + padding: 0 66rpx 0 46rpx; + box-sizing: border-box; +} + +.scroll-menu-item { + position: relative; + line-height: 84rpx; +} +.scroll-menu-item.active{ + color: #FFFFFF; +} + +.scroll-menu-item.active::after { + content: "1"; + font-size: 0; + display: block; + position: absolute; + left: 50%; + margin-left: -42rpx; + bottom: -6rpx; + width: 84rpx; + height: 12rpx; + background: #FFEDD8; + +} + +.fixed-menus { + position: fixed; + left: 0; + right: 0; + background: white; + z-index: 1; +} +.info-box { + position: relative; + margin-top: -380rpx; + z-index: 7; + width: 100%; + box-sizing: border-box; + /* background: #000; */ +} + +.fixed-bottom { + position: fixed; + left: 0; + right: 0; + bottom: 0; + height: 151rpx; + box-sizing: border-box; + background: white; + display: flex; + align-items: center; + box-shadow: 0px 0px 16rpx 0px rgba(6, 0, 1, 0.1); + padding: 0 40rpx; + color: #666666; + font-size: 23rpx; + justify-content: space-between; + text-align: center; + padding-left: 0; + z-index: 10; +} + +.fixed-bottom .iconfont { + font-size: 34rpx; + line-height: 40rpx; +} + +.btns { + color: #fff; + font-size: 32rpx; + font-weight: 500; + border-radius: 39rpx; + text-align: center; + display: flex; + align-items: center; + justify-content: center; +} + +.btns .btn { + width: 216rpx; + line-height: 78rpx; + background: #D62828; +} + +.btns .btn:nth-child(1) { + /* margin-right: 3rpx; */ + border-radius: 39rpx 0 0 39rpx; + background: #FD7601; +} + +.btns .btn:nth-child(2) { + border-radius: 0 39rpx 39rpx 0; +} + +.btns .btn.disable { + background: #ccc; +} + +.mask-content { + position: absolute; + left: 0; + right: 0; + bottom: 0; + width: 100%; +} + +.mask-content .icon-close { + position: absolute; + right: 40rpx; + top: 40rpx; +} + +.sku-info-box { + margin: 50rpx 25rpx; + display: flex; + justify-content: space-between; +} + +.sku-info-box image { + width: 173rpx; + height: 173rpx; + border-radius: 13rpx; + display: block; + margin-right: 15rpx; + flex-shrink: 0; +} + +.sku-info { + flex: 1; + width: 100rpx; + height: 173rpx; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.sku-price { + font-size: 40rpx; + font-weight: bold; + color: #F84A56; +} + +.sku-price::before { + content: "¥"; + font-size: 24rpx; + vertical-align: baseline; +} + +.sku-price view { + font-size: 24rpx; + color: #FFFFFF; + background-color: #D62828; + border-radius: 22rpx; + line-height: 44rpx; + margin-left: 7rpx; + padding: 0 20rpx; +} + +.sku-name { + font-size: 27rpx; + color: #666666; +} + +.sku-names { + display: flex; + font-weight: 500; + font-size: 27rpx; + color: #333333; + margin: 0 25rpx; + flex-wrap: wrap; + margin-bottom: 20rpx; + justify-content: space-between; + max-height: 800rpx; + min-height: 400rpx; + align-content: flex-start; +} + +.sku-name-item { + min-height: 67rpx; + border-radius: 13rpx; + margin-bottom: 34rpx; + max-width: 100%; + padding-right:15rpx; + min-width: 340rpx; + background: #EFEFEF; + display: flex; + align-items: center; + box-sizing: border-box; +} +.sku-name-item>image{ + width: 67rpx; + height: 100%; + border-radius: 13rpx; + flex-shrink: 0; +} +.sku-name-item .sku-name{ + flex:1; + /* width: 100rpx; */ + padding-left: 15rpx; + color: #333; +} + +.sku-name-item.active{ + color: #0B898E; + border: 1px solid #0B898E; + background: rgba(11, 137, 142, 0.1); +} +.sku-name-item.active .sku-name{ + color: #0B898E; + } + +.number-box { + display: flex; + align-items: center; + justify-content: space-between; + background: #EFEFEF; +border-radius: 13rpx; +padding: 10rpx 0; +box-sizing: border-box; +height: 53rpx; +width: 250rpx; + +} + +.number-box text { + flex: 1; + font-size: 29rpx; + color: #333; +} + +.number-box view { + text-align: center; + width: 80rpx; + height: 33rpx; + line-height: 33rpx; + font-size: 31rpx; + color: #000; +} + +.number-box view.number { + width: 94rpx; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; +} +.limit-number{ + font-weight: 500;font-size: 27rpx;color: #666666;padding-left:20rpx; +} + +.btn-box { + height: 138rpx; + background: #FFFFFF; + box-shadow: 0px 0px 16rpx 0px rgba(6, 0, 1, 0.1); + display: flex; + align-items: center; + justify-content: center; + position: fixed; + left: 0; + right: 0; + bottom: 0; +} + +.mask-btn { + width: 670rpx; + line-height: 78rpx; + background: #D62828; + border-radius: 39rpx; + color: #fff; + text-align: center; + font-size: 33rpx; + font-weight: 500; +} + +.mask-btn.disable { + background: #ccc; +} + +/* .icon-xin,.icon-shoucang { + position: absolute; + right: 20rpx; + margin-top: 20rpx; + width: 60rpx; + line-height: 60rpx; + background: rgba(0, 0, 0, 0.4); + border-radius: 50%; + text-align: center; + color: #fff; + font-size: 36rpx; + z-index: 1; +} */ +.share-icon { + position: absolute; + right: 20rpx; + margin-top: 20rpx; + width: 60rpx; + height: 60rpx; + z-index: 1; + background-image: url("https://static.ticket.sz-trip.com/uploads/20250826/81287df192b80ea03318e06b2b19ebe1.png"); + background-size: 100% 100%; +} + +.icon-shoucang { + color: #D62828; + font-size: 40rpx !important; + +} + +/* 购物车 */ +.cart-box { + position: fixed; + display: flex; + align-items: center; + justify-content: center; + width: 80rpx; + height: 80rpx; + background: #FFFFFF; + box-shadow: 0px 0px 20rpx 0px rgba(0, 0, 0, 0.2); + border-radius: 50%; + right: 20rpx; + bottom: 166rpx; + z-index: 15; +} + +.cart-box image { + display: block; + width: 49rpx; +} + +.cart-num { + width: 26rpx; + border-radius: 50%; + line-height: 26rpx; + text-align: center; + font-size: 23rpx; + background: #D62828; + position: absolute; + right: -2rpx; + top: -5rpx; + color: #fff; +} + +.headimg { + position: fixed; + z-index: 3; + left: -218rpx; + width: 218rpx; + height: 180rpx; + top: 0; +} + +.headimg.active { + transition: left .6s linear, top .6s cubic-bezier(0.5, -0.5, 1, 1), width .6s ease, height .6s ease; + width: 80rpx; + height: 80rpx; + left: 650rpx; + border-radius: 50%; +} + +.share-img-box { + /* width: 551rpx; */ + position: static; + background: none; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.share-img { + display: block; + width: 551rpx; +} + +.share-tips { + width: 426rpx; + height: 150rpx; + background: #FFFFFF; + border-radius: 25rpx; + margin-top: 25rpx; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 65rpx; + color: #999; + font-size: 24rpx; + text-align: center; + line-height: 40rpx; +} + +.share-tips .img { + display: block; + width: 55rpx; + margin: 0 auto; + margin-bottom: 4rpx; +} + +.tipimg { + position: absolute; + left: 50%; + margin-left: 16rpx; + width: 24rpx; + height: 24rpx; + background: #D62828; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + top: 34rpx; +} + +.tipimg image { + width: 21rpx; + display: block; + +} + +.save-btn { + width: 403rpx; + line-height: 77rpx; + background: #D62828; + border-radius: 39rpx; + text-align: center; + color: #fff; + font-size: 31rpx; + font-weight: 500; + margin-top: 50rpx; +} + +.allowance-box { + height: 113rpx; + background: url("https://static.ticket.sz-trip.com/uploads/20220602/7762b9c4be5adac1f3d0ab5228569821.png"); + background-size: 100% auto; + background-repeat: no-repeat; + padding: 30rpx 30rpx 10rpx; + font-size: 24rpx; + color: #FFFFFF; + margin-top: -60rpx; + position: relative; + display: flex; + justify-content: start; + align-items: baseline; +} + +.allowance-box .com-price { + font-size: 30rpx; + color: #FFFFFF; +} + +.allowance-box .com-price:before { + font-size: 18rpx; + color: #FFFFFF; +} + +.allowance-box .com-price:after { + font-size: 18rpx; + color: #FFFFFF; +} + +.allowance-box .yellow { + color: #DF2115; + padding: 8rpx 14rpx; + background-color: #FDEDD4; + margin-left: 20rpx; + border-radius: 30rpx; +} + +.mask-allowance .mask-content { + margin: auto; + width: auto; + top: initial; + bottom: initial; + padding: 20rpx; + width: 80%; +} + +.mask-allowance .mask-content .rule-title { + text-align: center; + margin-bottom: 20rpx; +} +.imgs{ + width: 133rpx; + height: 133rpx; + border-radius: 13rpx; +} +.img-box{ + width: 133rpx; +height: 133rpx; + position: relative; + overflow: hidden; +} +.img-box .more-img{ + height: 37rpx; + line-height: 37rpx; + background: #000; + border-radius: 13rpx 0rpx 13rpx 0rpx; + box-sizing: border-box; + padding: 0 5rpx; + font-weight: 500; + font-size: 23rpx; + color: #FFFFFF; + position: absolute; + bottom: 0; + right: 0; + opacity: 0.8; +} +.all{ + color: #fff; + position:absolute; + bottom: 17rpx; + right: 10rpx; + width: 200rpx; + height: 200rpx; + border-radius: 8rpx; + background-color: rgba(0, 0, 0, .5); +} +.all view{ + text-align: center; +} +.all view:first-child{ + font-size: 45rpx; + margin-top: 40rpx; +} +.all view:last-child{ + margin-top: 10rpx; +} +.sku{ + margin-left: 10rpx; + color: #666; + font-size: 24rpx; + margin-top: 8rpx; +} +.proad{ + margin: 20rpx; +} +.proad-title{ + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 16rpx; +} +.proad-title image{ + width: 292rpx; + height: 34rpx; +} +.pro-list{ + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; +} +.proitem{ + width: 334rpx; + height: 497rpx; + background: #FFFFFF; + border-radius: 10rpx; + margin-top: 20rpx; +} +.item-hd image{ + width: 334rpx; + height: 342rpx; + border-radius: 13rpx 13rpx; +} +.item-bm{ + padding: 8rpx 12rpx; +} +.protitle{ + font-size: 28rpx; + font-family: PingFang SC; + font-weight: 400; + color: #000000; +} +.pro-price{ + color: #D62828; + font-weight: 500; + font-size: 30rpx; +} +.pro-price:before { + display: inline-block; + content:"¥"; + color: #D62828; + font-size: 20rpx; +} + +.pro-price:after { + display: inline-block; + content:'起'; + color: #999999; + font-size: 10px; +} +.icon-shop{ + width: 34rpx; + height: 36rpx; +} +.left-img{ + display: flex; + width: 290rpx; + flex-shrink: 0; + justify-content: space-between; + padding: 0 40rpx; + box-sizing: border-box; +} +.no-shop{ + width: 230rpx; +} +.shop-box{ + display:flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + height: 70rpx; +} + + .wineScene-price-container { + width: 750rpx; + height: 100rpx; + /* background: linear-gradient(-90deg,#FF413B, #FFAB2E); */ + background: #FD3856; + /* border-radius: 20rpx 20rpx 0rpx 0rpx; */ + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 26rpx; + box-sizing: border-box; + color: #FFFFFF; + font-size: 24rpx; + } + + .wineScene-price-container .wineSecne-price { + font-weight: bold; + font-size: 48rpx; + color: #FFFFFF; +} +.wineScene-price-container .wineSecne-money { + font-size: 24rpx; + font-weight: 500; + /* text-decoration-line: line-through; */ + padding-left: 14rpx; +} +.wineScene-price-container .wineSecne-price::before { + font-size: 24rpx; + content: '¥'; +} + +.hotel-custom-detail{ + display: flex; + /* justify-content: space-between; */ + height: fit-content; + font-family: PingFang SC; + font-weight: 500; + font-size: 24rpx; + color: #666666; + margin-bottom: 20rpx; +} +.hotel-custom-detail .tip-info{ + width: 33rpx; + position: relative; + display: flex; + justify-content: center; + flex-shrink: 0; +} +.hotel-custom-detail .tip-info .tip{ + font-family: PingFang SC; + font-weight: 500; + font-size: 23rpx; + color: #FFFFFF; + width: 33rpx; + height: 33rpx; + background: #6394FD; + border-radius: 50%; + position: absolute; + top: 0; + left: 0; + text-align: center; + line-height: 33rpx; +} +.hotel-custom-detail .tip-info .info{ + width: 11rpx; + height: 100%; + background: #D0DFFE; + border-radius: 5rpx; +} + +.hotel-custom-right>view{ + margin-bottom: 20rpx; +} +.hotel-custom-right>view:last-of-type{ + margin-bottom: 0; +} +.map-container{ + background-image: url('https://static.ticket.sz-trip.com/jundaosuzhou/images/wineScene/locationBg.png'); + background-size: 100% 100%; + width: 100%; + height: 128rpx; + padding: 30rpx 26rpx; + display: flex; + align-items: center; + justify-content: space-between; + font-family: PingFang SC; + font-weight: 500; + font-size: 24rpx; + color: #666666; + box-sizing: border-box; +} +.map-container image{ + width: 29rpx; + height: 29rpx; +} + +.select-img{ + display: flex; + height: 80rpx; + position: relative; + margin-bottom: 26rpx; +} +.select-img image{ + width: 80rpx; + height: 80rpx; + border-radius: 13rpx; + margin-right:20rpx; + flex-shrink: 0; + box-sizing: border-box; +} +.select-img image.active{ + border: 2px solid #DC2525; +} +.select-img image.no-stock{ + border: none; + opacity: 0.5; +} +.select-img .select-img-text{ + font-weight: bold; + font-size: 24rpx; + color: #000000; + width: 51rpx; + height: 80rpx; + margin-right:20rpx; + display: flex; + align-items: center; +} +.select-img .other-imgs{ + flex: 1; + width: 100rpx; + overflow-x: auto; + display: flex; +} +.select-img .select-sku{ + position: absolute; + top: 0; + right: 0; + width: 25rpx; + height: 80rpx; + line-height: 80rpx; + text-align: center; + background: white; + font-family: fangsong; + color: #999; +} +.sku-tips{ + width: 100%; + position: absolute; + bottom: 73rpx; + left: 0; + right: 0; + display: flex; + justify-content: center; +} +.sku-tips>view{ + width: fit-content; + max-width: 533rpx; + height: 53rpx; + background: rgba(1, 0, 0, 0.6); + border-radius: 27rpx; + padding: 0 28rpx; + line-height: 53rpx; + font-weight: 500; + font-size: 24rpx; + color: #FFFFFF; + margin: 0 auto; +} + +.shop-container{ + display: flex; + align-items: center; + margin-top: 20rpx; + padding: 32rpx 23rpx; + width: 100%; + background: white; + box-sizing: border-box; +} +.shop-container .shop-img{ + width: 113rpx; + height: 113rpx; + flex-shrink: 0; +} +.shop-container .shop-btn{ + width: 135rpx; +height: 57rpx; +border-radius: 13rpx; +border: 1px solid #0B898E; +font-weight: 500; +font-size: 31rpx; +color: #0B898E; +text-align: center; +line-height: 57rpx; +flex-shrink: 0; +} +.shop-container .textOver2{ + flex: 1; + width: 100rpx; + padding: 0 50rpx 0 20rpx; + font-weight: bold; +font-size: 32rpx; +color: #010101; +} + + + +.other-info-box{ +} +.other-info-box .other-info-item{ + display: flex; + align-items: center; + font-weight: 500; + font-size: 27rpx; + color: #666666; + margin-top: 30rpx; +} +.other-info-box .other-info-item image{ + width: 32rpx; + height: 32rpx; + flex-shrink: 0; +} +.other-info-box .view-arrow{ + font-family: fangsong; + color: #999; + width: 25rpx; + flex-shrink: 0; +} +.other-info-box .other-content{ + padding: 0 20rpx; + overflow: hidden; + flex: 1; + width: 100rpx; + +} + +.other-info-content{ + min-height: 600rpx; + padding: 32rpx 23rpx; +} +.other-info-content .title{ + font-weight: bold; + font-size: 33rpx; + color: #060001; + text-align: center; + margin-bottom: 36rpx; +} +.other-info-content .key-title{ + color: #060001; + font-size: 27.67rpx; + line-height: 40rpx; + font-weight: bold; +} +.other-info-content .key-content{ + color: #666; + font-size: 27.67rpx; + line-height: 40rpx; + margin-top: 6rpx; +} +.prod-param{ + display: flex; + align-items: flex-start; + margin-bottom: 45rpx; +} +.prod-param .prod-key{ + flex: 1; + flex-shrink: 0; + font-weight: 500; + font-size: 27rpx; + color: #666666; +} +.prod-param .prod-content{ + flex: 1; + flex-shrink: 0; + font-weight: 500; +font-size: 27rpx; +color: #000000; +} \ No newline at end of file diff --git a/subPackages/password/overview/overview.wxml b/subPackages/password/overview/overview.wxml index 6f8d57c..8d587e0 100644 --- a/subPackages/password/overview/overview.wxml +++ b/subPackages/password/overview/overview.wxml @@ -14,7 +14,7 @@ - 忘记密码 + 重置密码 diff --git a/subPackages/password/setting/setting.js b/subPackages/password/setting/setting.js index f1a03b2..8ec34be 100644 --- a/subPackages/password/setting/setting.js +++ b/subPackages/password/setting/setting.js @@ -41,7 +41,7 @@ Page({ onLoad: function (options) { this.setData({ type: options.type||'add', - title: options.type=='reset'?'忘记密码':options.type=='edit'?'修改密码':'设置支付密码', + title: options.type=='reset'?'重置密码':options.type=='edit'?'修改密码':'设置支付密码', editConfrim: options.type == 'edit'?true:false }) }, diff --git a/subPackages/postSearch/index.js b/subPackages/postSearch/index.js index 2f9224d..0ca1297 100644 --- a/subPackages/postSearch/index.js +++ b/subPackages/postSearch/index.js @@ -26,7 +26,9 @@ Page({ totalPrice:0, //获取购物车总价--打开购物车后勾选的产品价格 nowAddListId:[], type:'', //购物车分类1文创,2非遗 - show:false + show:false, + + user_type: null, }, /** @@ -60,6 +62,14 @@ Page({ }, // 添加产品到购物车 addCart: function (e) { + if (![0,1].includes(this.data.user_type)) { + wx.showToast({ + title: "请选择配送方式", + icon:"none" + }) + return + } + let item = e.currentTarget.dataset.item app.globalData.postProduct = [] app.globalData.list = [] @@ -72,7 +82,8 @@ Page({ commonApi.user_post("cart_within/add_sku", { sku_id: this.data.showPopup ? item.sku.id :this.data.info.sku[this.data.skuIndex].id, num: this.data.producNum, - type:this.data.type + type:this.data.type, + delivery_method: this.data.user_type }).then(res => { if (res.code == 1) { let sku_id = this.data.showPopup ? item.sku.id :this.data.info.sku[this.data.skuIndex].id @@ -107,6 +118,9 @@ Page({ if (element.selected == 1) { totalPrice += Number(element.num*element.sku.price) } + if (element.delivery_method === null) { + element.delivery_method = element.sku.sku_model.use_type == 1?1:0 + } }) console.log(res.data); let status = res.data.every(el => el.selected === 1) @@ -173,7 +187,7 @@ Page({ if (item.product.type == 'post') { product.push({ product: item.product, - sku: item.sku, + sku: {...item.sku, use_type: item.delivery_method||0}, productNum: item.num }) } else { @@ -207,6 +221,29 @@ Page({ isCar: 'single' }) } + + let repeatSku = product.find(x=>product.filter(v=>v.sku.id == x.sku.id).length>1) + if(repeatSku) { + let str = `${repeatSku.product.title}-${repeatSku.sku.sku_name}邮寄和自提只能选择一种` + wx.showModal({ + content: str, + showCancel: false, + complete: (res) => {} + }) + return + } + + + let useType = product[0].sku.use_type + let flag = this.data.flag, isCar = "single"; + if (product.some(x=>x.sku.use_type!=useType)) { + flag = "mix" + isCar = "multiple" + } + this.setData({ + flag: flag, + isCar: isCar + }) console.log(product1); app.globalData.postProduct = product; if (app.globalData.list) { @@ -248,10 +285,10 @@ selectedIt(e) { delAll() { let ids = [] this.data.gwcList.forEach(item => { - ids.push(item.sku_id) + ids.push(item.id) }) commonApi.user_post("cart_within/del_sku", { - sku_id: ids+'', + id: ids+'', type:this.data.type }).then(res => { if (res.code == 1) { @@ -270,9 +307,10 @@ delAll() { del(e) { let item = e.currentTarget.dataset.item let gwcList = this.data.gwcList + let valueNum = e.currentTarget.dataset.value commonApi.user_post("cart_within/update_sku", { - num:item.num-1, - sku_id: item.sku_id, + num:item.num + valueNum, + id: item.id, type:this.data.type }).then(res => { if (res.code == 1) { @@ -295,6 +333,9 @@ del(e) { if (item.selected ==1) { totalPrice += item.num*item.sku.price } + if (item.delivery_method === null) { + item.delivery_method = item.sku.sku_model.use_type == 1?1:0 + } }) } let status = res.data.every(el => el.selected === 1) @@ -367,6 +408,9 @@ openPopup() { if (item.selected == 1) { totalPrice += item.num*item.sku.price } + if (item.delivery_method === null) { + item.delivery_method = item.sku.sku_model.use_type == 1?1:0 + } }) // console.log(arr); // debugger @@ -380,7 +424,8 @@ openPopup() { }, search() { this.setData({ - list:[] + list:[], + show:false }) this.getList() }, @@ -390,9 +435,6 @@ openPopup() { }) }, getList() { - this.setData({ - show:false - }) let list= this.data.list; if (this.data.keywords == '' || this.data.keywords.indexOf(' ')!==-1) { return @@ -458,6 +500,8 @@ openPopup() { this.setData({ info: res.data, // skuFlag: "cart" + skuIndex: 0, + user_type: res.data.sku[0].use_type>1?1:res.data.sku[0].use_type }) this.showCart() this.BroswerRecord() @@ -501,9 +545,16 @@ openPopup() { selectSku: function (e) { let index = e.currentTarget.dataset.index; this.setData({ - skuIndex: index + skuIndex: index, + user_type: this.data.info.sku[index].use_type>1?null:this.data.info.sku[index].use_type, }) }, + changeSelectSkuPost: function(e) { + let value = e.currentTarget.dataset.value; + this.setData({ + user_type: value, + }) +}, // 关闭弹窗 hideSku: function () { this.setData({ diff --git a/subPackages/postSearch/index.wxml b/subPackages/postSearch/index.wxml index e6bcff6..88569f7 100644 --- a/subPackages/postSearch/index.wxml +++ b/subPackages/postSearch/index.wxml @@ -1,18 +1,18 @@ - + | - 搜索 + 搜索 - + @@ -83,6 +83,25 @@ {{producNum}} + + 配送方式 + + + + + + + 邮寄 + + + + + + + 自提 + + + - + @@ -114,7 +133,10 @@ - + + + {{item.delivery_method==1?"自提":"邮寄"}} + {{item.product.title}} @@ -123,9 +145,9 @@ {{item.sku.price/100}} - + {{item.num}} - + diff --git a/subPackages/postSearch/index.wxss b/subPackages/postSearch/index.wxss index b6f55f5..4786b53 100644 --- a/subPackages/postSearch/index.wxss +++ b/subPackages/postSearch/index.wxss @@ -318,7 +318,7 @@ display: flex; font-size: 29rpx; color: #333; - margin: 0 40rpx; + margin: 0 30rpx; text-align: center; flex-wrap: wrap; margin-bottom: 20rpx; @@ -472,3 +472,57 @@ font-size: 24rpx; font-weight: 500; } +.delivery-method{ + font-weight: 400; + font-size: 29rpx; + color: #1E1E1E; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 40rpx 40rpx; +} +.delivery-method .select-cycle{ + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 1px solid #999999; + overflow: hidden; + flex-shrink: 0; + +} +.delivery-method .select-cycle image{ + width: 100%; + height: 100%; +} +.delivery-method .select-cycle.selected { + border: none; +} +.delivery-method .select-cycle.selected image{ + width: 32rpx; + height: 32rpx; + border-radius: 50%; +} +.delivery-method .method-str{ + padding-left: 10rpx; + flex-shrink: 0; +} +.delivery-method .flex-center{ + width: 150rpx; + justify-content: flex-end; + display: flex; + align-items: center; +} + .use-type{ + position: absolute; + left: 0; + bottom: 0; + width: 100%; + border-radius: 0rpx 0rpx 7rpx 7rpx; + height: 33rpx; + background: rgba(0,0,0,0.3); + font-weight: 400; + font-size: 24rpx; + color: #FFFFFF; + text-align: center; + line-height: 33rpx; +} \ No newline at end of file diff --git a/subPackages/techanNew/index.js b/subPackages/techanNew/index.js index ee85e0f..ffa6c76 100644 --- a/subPackages/techanNew/index.js +++ b/subPackages/techanNew/index.js @@ -52,7 +52,9 @@ Page({ seachFlag:false, //搜索模式 totalPrice:0, //获取购物车总价--打开购物车后勾选的产品价格 name:'文创特产', - nowAddListId:[] + nowAddListId:[], + + user_type: null, }, /** @@ -87,10 +89,10 @@ Page({ delAll() { let ids = [] this.data.gwcList.forEach(item => { - ids.push(item.sku_id) + ids.push(item.id) }) commonApi.user_post("cart_within/del_sku", { - sku_id: ids+'', + id: ids+'', type:'1' }).then(res => { if (res.code == 1) { @@ -107,11 +109,12 @@ Page({ }, // 减少一个 del(e) { - let item = e.currentTarget.dataset.item - let gwcList = this.data.gwcList + let item = e.currentTarget.dataset.item; + let gwcList = this.data.gwcList; + let valueNum = e.currentTarget.dataset.value commonApi.user_post("cart_within/update_sku", { - num:item.num-1, - sku_id: item.sku_id, + num:item.num + valueNum, + id: item.id, type:'1' }).then(res => { if (res.code == 1) { @@ -134,6 +137,9 @@ Page({ if (item.selected ==1) { totalPrice += item.num*item.sku.price } + if (item.delivery_method === null) { + item.delivery_method = item.sku.sku_model.use_type == 1?1:0 + } }) } let status = res.data.every(el => el.selected === 1) @@ -149,6 +155,14 @@ Page({ }, // 添加产品到购物车 addCart: function (e) { + if (![0,1].includes(this.data.user_type)) { + wx.showToast({ + title: "请选择配送方式", + icon:"none" + }) + return + } + let item = e.currentTarget.dataset.item app.globalData.postProduct = [] app.globalData.list = [] @@ -161,7 +175,8 @@ Page({ commonApi.user_post("cart_within/add_sku", { sku_id: this.data.showPopup ? item.sku.id :this.data.info.sku[this.data.skuIndex].id, num: this.data.producNum, - type:"1" + type:"1", + delivery_method: this.data.user_type }).then(res => { if (res.code == 1) { let sku_id = this.data.showPopup ? item.sku.id :this.data.info.sku[this.data.skuIndex].id @@ -195,6 +210,9 @@ Page({ if (element.selected == 1) { totalPrice += Number(element.num*element.sku.price) } + if (element.delivery_method === null) { + element.delivery_method = element.sku.sku_model.use_type == 1?1:0 + } }) console.log(res.data); let status = res.data.every(el => el.selected === 1) @@ -261,7 +279,7 @@ Page({ if (item.product.type == 'post') { product.push({ product: item.product, - sku: item.sku, + sku: {...item.sku, use_type: item.delivery_method||0}, productNum: item.num }) } else { @@ -280,21 +298,28 @@ Page({ // }) return; } - if (product.length > 0 && product1.length > 0) { - this.setData({ - flag: 'mix', - isCar: 'multiple' - }) - } - if (product1.length > 1) { - this.setData({ - isCar: 'multiple' - }) - } else { - this.setData({ - isCar: 'single' + let repeatSku = product.find(x=>product.filter(v=>v.sku.id == x.sku.id).length>1) + if(repeatSku) { + let str = `${repeatSku.product.title}-${repeatSku.sku.sku_name}邮寄和自提只能选择一种` + wx.showModal({ + content: str, + showCancel: false, + complete: (res) => {} }) + return + } + + let useType = product[0].sku.use_type + let flag = this.data.flag, isCar = "single"; + if (product.some(x=>x.sku.use_type!=useType)) { + flag = "mix" + isCar = "multiple" } + this.setData({ + flag: flag, + isCar: isCar + }) + console.log(product1); app.globalData.postProduct = product; if (app.globalData.list) { @@ -414,14 +439,12 @@ Page({ }, // 获取历史购物车详情 getCount() { - // debugger commonApi.user_post('cart_within/get_list', { type:'1' }).then(res => { let arr = res.data,totalPrice = 0,cartCount=0 if (arr.length>0) { arr.forEach(item=> { - // totalPrice += item.num*item.sku.price cartCount += item.num }) } @@ -433,15 +456,17 @@ Page({ } }) }) - // debugger + arr.forEach(item=> { if(item.selected == 1) { totalPrice += item.num*item.sku.price } + if (item.delivery_method === null) { + item.delivery_method = item.sku.sku_model.use_type == 1?1:0 + } }) } - // console.log(arr); - // debugger + this.setData({ cartCount: cartCount, //1 gwcList:arr, @@ -605,6 +630,7 @@ Page({ }, // 添加产品弹窗 1.首先获取到该产品下的规格 addBuyCart(e) { + let item = e.currentTarget.dataset.item console.log(item); commonApi._post("product/get_product_detail", { @@ -617,6 +643,8 @@ Page({ res.data.flag = res.data.sku.find(item => item.flag == 'on') ? res.data.flag : 0 this.setData({ info: res.data, + skuIndex: 0, + user_type: res.data.sku[0].use_type>1?null:res.data.sku[0].use_type // skuFlag: "cart" }) this.showCart() @@ -661,9 +689,18 @@ Page({ selectSku: function (e) { let index = e.currentTarget.dataset.index; this.setData({ - skuIndex: index + skuIndex: index, + user_type: this.data.info.sku[index].use_type>1?null:this.data.info.sku[index].use_type, }) }, + + changeSelectSkuPost: function(e) { + let value = e.currentTarget.dataset.value; + this.setData({ + user_type: value, + }) +}, + // 关闭弹窗 hideSku: function () { this.setData({ diff --git a/subPackages/techanNew/index.wxml b/subPackages/techanNew/index.wxml index 0a7fe57..106f2fc 100644 --- a/subPackages/techanNew/index.wxml +++ b/subPackages/techanNew/index.wxml @@ -177,6 +177,27 @@ {{producNum}} + + + 配送方式 + + + + + + + 邮寄 + + + + + + + 自提 + + + + - + @@ -208,7 +229,10 @@ - + + + {{item.delivery_method==1?"自提":"邮寄"}} + {{item.product.title}} @@ -217,9 +241,9 @@ {{item.sku.price/100}} - + {{item.num}} - + diff --git a/subPackages/techanNew/index.wxss b/subPackages/techanNew/index.wxss index 3c7b928..06663f1 100644 --- a/subPackages/techanNew/index.wxss +++ b/subPackages/techanNew/index.wxss @@ -442,7 +442,7 @@ page { display: flex; font-size: 29rpx; color: #333; - margin: 0 40rpx; + margin: 0 30rpx; text-align: center; flex-wrap: wrap; margin-bottom: 20rpx; @@ -740,3 +740,57 @@ page { .phcolor { color: #ccc; } +.delivery-method{ + font-weight: 400; + font-size: 29rpx; + color: #1E1E1E; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 40rpx 40rpx; +} +.delivery-method .select-cycle{ + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 1px solid #999999; + overflow: hidden; + flex-shrink: 0; + +} +.delivery-method .select-cycle image{ + width: 100%; + height: 100%; +} +.delivery-method .select-cycle.selected { + border: none; +} +.delivery-method .select-cycle.selected image{ + width: 32rpx; + height: 32rpx; + border-radius: 50%; +} +.delivery-method .method-str{ + padding-left: 10rpx; + flex-shrink: 0; +} +.delivery-method .flex-center{ + width: 150rpx; + justify-content: flex-end; + display: flex; + align-items: center; +} + .use-type{ + position: absolute; + left: 0; + bottom: 0; + width: 100%; + border-radius: 0rpx 0rpx 7rpx 7rpx; + height: 33rpx; + background: rgba(0,0,0,0.3); + font-weight: 400; + font-size: 24rpx; + color: #FFFFFF; + text-align: center; + line-height: 33rpx; +} \ No newline at end of file diff --git a/subPackages/techanNew/selfPickPoint/index.js b/subPackages/techanNew/selfPickPoint/index.js new file mode 100644 index 0000000..beab8bc --- /dev/null +++ b/subPackages/techanNew/selfPickPoint/index.js @@ -0,0 +1,152 @@ +// subPackages/techanNew/selfPickPoint/index.js +import commonApi from "../../../utils/https/common" +let device = wx.getSystemInfoSync(); +const ratio = device.windowWidth / 750; +let app = getApp() +Page({ + + /** + * 页面的初始数据 + */ + data: { + list: [], + pickupId: null, + goodsId: null, + skuId: null, + selectIndex: null, + + lat:23, + lon:113, + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.setData({ + goodsId: options.goodsId, + skuId: options.skuId, + }) + + let _this = this + wx.getLocation({ + type: 'gcj02', + success: function (res) { + _this.getList() + }, + fail: function(e) { + _this.getList() + }, + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + getList() { + let param = { + product_id: this.data.goodsId, + lon: this.data.lon || '113', + lat: this.data.lat || '23', + } + commonApi.user_post("product/getDeliverShop", param).then(res => { + let resData = res.data || [] + resData.forEach(x=>{ + if (x.distance) { + x.distance = (x.distance / 1000).toFixed(2) + } + }) + this.setData({ + list: res.data || [] + }) + }) + }, + + selectPoint (e) { + let index = e.currentTarget.dataset.index; + this.setData({ + selectIndex: index + }) + }, + + goMap (e) { + let item = e.currentTarget.dataset.item; + console.log(123) + wx.openLocation({ + latitude: Number(item.lat), + longitude: Number(item.lon), + name:item.title, + address:item.address, + + fail: function (e) { + console.log(e) + } + }) + }, + + confirmPoint () { + if(this.data.selectIndex==null) { + wx.showToast({icon: "none",title: "请先选择自提点"}) + return; + } + // 返回上一个页面并带回selectItem + let selectItem = this.data.list[this.data.selectIndex] + + const pages = getCurrentPages(); + const prevPage = pages[pages.length - 2]; + if (prevPage && prevPage.setPickUpPoint) { + console.log(prevPage) + prevPage.setPickUpPoint(selectItem) + } + + wx.navigateBack() + }, + + + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/subPackages/techanNew/selfPickPoint/index.json b/subPackages/techanNew/selfPickPoint/index.json new file mode 100644 index 0000000..35cf02f --- /dev/null +++ b/subPackages/techanNew/selfPickPoint/index.json @@ -0,0 +1,5 @@ +{ + "usingComponents": { + "title":"/pages/component/TitleHeader" + } +} \ No newline at end of file diff --git a/subPackages/techanNew/selfPickPoint/index.wxml b/subPackages/techanNew/selfPickPoint/index.wxml new file mode 100644 index 0000000..a27a10e --- /dev/null +++ b/subPackages/techanNew/selfPickPoint/index.wxml @@ -0,0 +1,35 @@ + + + + + + + {{item.title}} + + 地址:{{item.address}} + + + + + + + 去这里 + + + + + + + + 暂无自提点地址 + + + + + 确定 + + + + + \ No newline at end of file diff --git a/subPackages/techanNew/selfPickPoint/index.wxss b/subPackages/techanNew/selfPickPoint/index.wxss new file mode 100644 index 0000000..4fb3687 --- /dev/null +++ b/subPackages/techanNew/selfPickPoint/index.wxss @@ -0,0 +1,124 @@ + +.bg { + /* position: relative; */ + background: #F7F7F7; + padding-bottom: 170rpx; + box-sizing: border-box; + min-height: 100vh; + padding-top: 20rpx; +} +.flex-shrink-0{ + flex-shrink: 0; +} +.item-bg{ + width: 697rpx; + min-height: 160rpx; + height: 160rpx; + background: #FFFFFF; + border-radius: 13rpx; + margin: 0 auto; + margin-bottom: 28rpx; +} +.item-bg.active{ + border:1px solid #0E8790; +} + +.item { + padding: 24rpx; + padding-right: 0; + display: flex; + background: #FFFFFF; + border-radius: 13rpx; + width: 100%; + height: 100%; + box-sizing: border-box; +} +.item .item-point-title{ + flex: 1; + width: 10rpx; + padding-right: 78rpx; + display: flex; + flex-direction: column; + justify-content: space-between; + font-weight: 500; + font-size: 27rpx; + color: #999999; +} +.item .item-point-guide{ + width:140rpx; + flex-shrink: 0; + border-left: 1px solid #D8D8D8; + color: #515150; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: 24rpx; +} +.item .mapPoint{ + width: 33rpx; + height: 33rpx; +} +.name { + display: flex; + font-size: 31rpx; + font-weight: bold; + color: #333333; +} + + +.no-data { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 300rpx 0; +} +.no-data view:nth-child(2) { + font-size: 30rpx; + font-family: PingFang SC; + font-weight: 500; + color: #333333; + margin-top: 25rpx; +} + +.no-data image { + width: 160rpx; + height: 160rpx; +} + +.btn-bottom{ + position: fixed; + bottom: 0; + width: 750rpx; + height: 150rpx; + background: #FFFFFF; + box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(6, 0, 1, 0.1); + display: flex; + justify-content: space-between; + padding: 30rpx 50rpx 30rpx 50rpx; + box-sizing: border-box; +} + +.btn-bottom .addBox{ + margin: 0 auto; + width: 697rpx; + height: 73rpx; + background: #D62828; + border-radius: 39rpx; + font-size: 36rpx; + font-family: PingFang SC; + font-weight: 500; + color: #FFFFFF; + line-height: 80rpx; + text-align: center; +} +.distance{ + font-weight: 500; + font-size: 24rpx; + color: #0E8790; + text-align: center; + padding-top: 11rpx; + word-wrap: break-all; +} diff --git a/utils/util.js b/utils/util.js index 8756297..4f1ac45 100644 --- a/utils/util.js +++ b/utils/util.js @@ -199,6 +199,11 @@ const gotoDetail = (item,isPagePoint,queryStr="") =>{ url: '/subPackages/goods/oneCardTour/info/index?id='+item.scene_id+queryStr }); return +} else if (item.is_package==3) { + wx.navigateTo({ + url: '/subPackages/goods/memberCard/index?id='+item.id+queryStr + }); + return } console.log(item) @@ -370,6 +375,11 @@ const orderMoreTime = function(item){ url: '/subPackages/goods/oneCardTour/info/index?id='+info.scene_id }); return + } else if (info.is_package==3) { + wx.navigateTo({ + url: '/subPackages/goods/memberCard/index?id='+info.product_id + }); + return } else if(info.product_model=='movie'){ // wx.navigateTo({ @@ -397,8 +407,13 @@ const gotoOrder = function(item){ if (item.order_product_list.length>1) { wx.navigateTo({ url: "/pages/pbService/web/index?weburl=" + encodeURIComponent("https://m.cloud.sz-trip.com/TicketCartOrderDetail?order_id="+item.order_id), - }) - return; + }) + return; + + // wx.navigateTo({ + // url: "/pages/pbService/web/index?weburl=" + encodeURIComponent("https://test.m.cloud.sz-trip.com/TicketCartOrderDetail?order_id="+item.order_id), + // }) + // return; } if(item.order_product_list[0].product_model=='ticket'){ wx.navigateTo({ @@ -559,7 +574,6 @@ const pagePointPostUrl = [ const detailPagePoint = function (url, res) { try { - console.log(res) let pagePointRoute = pagePointPostUrl.find(v=>url.indexOf(v.url)>=0) if (pagePointRoute) { // 如果是产品详情的话 需要加埋点