diff --git a/app.json b/app.json
index 0847ea2..cae3269 100644
--- a/app.json
+++ b/app.json
@@ -204,7 +204,8 @@
"feiyiNew/CGCLetter/index",
"feiyiNew/CGCTime/index",
"foodListNew/index",
- "foodNew/index"
+ "foodNew/index",
+ "goods/memberCard/index"
]
},
{
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/index/index.js b/pages/index/index.js
index f15e290..357fc06 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)
+ }
+ },100)
+ },
showImg (img) {
if (!img) { return img }
diff --git a/pages/index/index.wxml b/pages/index/index.wxml
index c69fb11..04f80b0 100644
--- a/pages/index/index.wxml
+++ b/pages/index/index.wxml
@@ -63,12 +63,16 @@
-->
+
+
+ {{aiStr}}
+
-
+
@@ -358,7 +362,7 @@
-
+
diff --git a/pages/index/index.wxss b/pages/index/index.wxss
index 0e33f6c..4c53e3e 100644
--- a/pages/index/index.wxss
+++ b/pages/index/index.wxss
@@ -1041,13 +1041,30 @@
margin-right: 0rpx;
}
+ .ai-box{
+ margin: 30rpx 0 30rpx;
+ 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/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/postOrderInfo/index.js b/pages/user/order/postOrderInfo/index.js
index 75339e3..758a3e6 100644
--- a/pages/user/order/postOrderInfo/index.js
+++ b/pages/user/order/postOrderInfo/index.js
@@ -212,6 +212,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/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/project.private.config.json b/project.private.config.json
index 0e91f87..7920a32 100644
--- a/project.private.config.json
+++ b/project.private.config.json
@@ -6,6 +6,13 @@
"condition": {
"miniprogram": {
"list": [
+ {
+ "name": "subPackages/goods/memberCard/index",
+ "pathName": "subPackages/goods/memberCard/index",
+ "query": "id=464704",
+ "scene": null,
+ "launchMode": "default"
+ },
{
"name": "subPackages/foodListNew/index",
"pathName": "subPackages/foodListNew/index",
diff --git a/subPackages/goods/memberCard/index.js b/subPackages/goods/memberCard/index.js
new file mode 100644
index 0000000..e280c4d
--- /dev/null
+++ b/subPackages/goods/memberCard/index.js
@@ -0,0 +1,743 @@
+// pages/info/roadInfo/index.js
+let device = wx.getSystemInfoSync();
+const ratio = device.windowWidth / 750;
+import commonApi from "../../../utils/https/common"
+import QRCode from '../../../utils/weapp-qrcode.js'
+import util from '../../../utils/util'
+let app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ autoPlay: false,
+ fixed: false,
+ type: 1,
+ top: 0,
+ isLike: 0,
+
+ info: null,
+ skuFlag: null,
+ producNum: 1,
+ skuIndex: 0,
+ aniSkuIndex: -1,
+ retailId: "",
+ cartTop: 0,
+ cartImgInfo: null,
+ cartCount: 0,
+ shareImg: null,
+ showShareFlag: false,
+ allowance_data: null,
+ showAllowance: false,
+
+ showQrCode: false,
+ wxqrcode: null,
+
+ ZTPoint:'',
+ swiperCurrent: 0,
+ swiperRange: {
+ video: {min:0,max:0},
+ picture: {min:0,max:0},
+ sku: {min:0,max:0}
+ },
+ otherInfoShow: 0,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ console.log(options)
+ //删除临时存储的联系人
+ wx.removeStorageSync('linkMan')
+ let rect = wx.getMenuButtonBoundingClientRect(),
+ that = this;
+ let height = (rect.top - device.statusBarHeight) * 2 + rect.height + device.statusBarHeight;
+ this.setData({
+ top: height,
+ id: options.id
+ })
+ // 获取购物车按钮的位置
+ wx.createSelectorQuery().select('#cart').boundingClientRect(function (res) {
+ console.log(res)
+ that.setData({
+ cartTop: res.top
+ })
+ }).exec()
+ if (options.ZTPoint) {
+ this.setData({
+ ZTPoint: options.ZTPoint
+ })
+ }
+
+ if (options.retailId) {
+ this.setData({
+ retailId: options.retailId
+ })
+ }
+ commonApi._post("product/get_product_detail", {
+ id: options.id
+ }).then(res => {
+ res.data.display_tags = (res.data.display_tags ? res.data.display_tags.split(",") : []).splice(0, 2);
+ if (options.skuid) {
+ let sku = res.data.sku.find(item => item.id == options.skuid);
+ res.data.sku = [sku];
+ }
+
+ res.data.sku.forEach(x=>{
+ x.display_tags = (x.display_tags ? x.display_tags.split(",")[0] : "");
+ })
+
+
+ let resData = res.data
+ 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}
+ console.log(swiperRange)
+ this.setData({
+ info: resData,
+
+ swiperRange: swiperRange,
+ })
+ this.BroswerRecord()
+ })
+ },
+
+ showImg (img) {
+ if (!img) { return img }
+ if (img.indexOf('https://') != -1 || img.indexOf('http://') != -1) {
+ return img;
+ } else {
+ // return "https://test.api.cloud.sz-trip.com"+img
+ return "https://static.ticket.sz-trip.com" + img;
+ }
+ },
+
+ changeAllowance: function () {
+ this.setData({
+ showAllowance: !this.data.showAllowance
+ })
+ },
+ BroswerRecord: function () {
+ setTimeout(() => {
+ if (app.globalData.uuid) {
+ commonApi._post('browse/browse_record', {
+ type: "goods",
+ title: this.data.info.title,
+ drive: "mini",
+ source_id: this.data.info.id,
+ url: "/pages/info/postProductInfo/index?id=" + this.data.info.id,
+ uuid: app.globalData.uuid
+ }).then(res => {})
+ } else {
+ this.BroswerRecord();
+ }
+ }, 500)
+ },
+ like: function () {
+ let id = this.data.id,
+ isLike = this.data.isLike;
+ commonApi.user_post("product/" + (isLike == 1 ? "product_cancel_collection" : "product_collection"), {
+ product_id: id
+ }).then(res => {
+ if (res.code == 1) {
+ this.setData({
+ isLike: isLike == 1 ? 0 : 1
+ })
+ }
+ })
+ },
+ changeMenu: function (e) {
+ let index = e.currentTarget.dataset.index;
+ this.setData({
+ type: index
+ })
+
+ },
+
+ showCart: function () {
+ commonApi.user_post('wx/get_user_keep', {
+ jumpurl: '/pages/info/postProductInfo/index?id=' + this.data.id,
+ title: this.data.info.title,
+ type: 'mini'
+ }).then(res => {
+ if (res.data.subscribe == 0) {
+ this.setData({
+ wxqrcode: res.data.qrcode,
+ showQrCode: true
+ })
+ } else {
+ if (this.data.info.sku.length == 0) {
+ wx.showToast({
+ title: '该产品未设置规格,不能加购',
+ icon: 'none'
+ })
+ return;
+ }
+ this.setData({
+ skuFlag: "cart"
+ })
+ let that = this
+ wx.createSelectorQuery().select('#skuImg').boundingClientRect(function (res) {
+ console.log(res)
+ that.setData({
+ cartImgInfo: 'top:' + res.top + 'px;left:' + res.left + 'px;'
+ })
+ }).exec()
+ }
+ })
+ },
+ hideSku: function () {
+ this.setData({
+ skuFlag: null,
+ cartImgInfo: null
+ })
+ },
+ minus: function () {
+ if (this.data.producNum == 1) return;
+ this.setData({
+ producNum: this.data.producNum - 1
+ })
+ },
+ add: function () {
+ this.setData({
+ producNum: this.data.producNum + 1
+ })
+ },
+ selectSku: function (e) {
+ let index = e.currentTarget.dataset.index;
+ this.setData({
+ skuIndex: index,
+ swiperCurrent: index+this.data.swiperRange.picture.max+1
+ })
+ },
+ showOrder: function () {
+ commonApi.user_post('wx/get_user_keep', {
+ jumpurl: '/pages/info/postProductInfo/index?id=' + this.data.id,
+ title: this.data.info.title,
+ type: 'mini'
+ }).then(res => {
+ if (res.data.subscribe == 0) {
+ this.setData({
+ wxqrcode: res.data.qrcode,
+ showQrCode: true
+ })
+ } else {
+ if (this.data.info.sku.length == 0) {
+ wx.showToast({
+ title: '该产品未设置规格,不能购买',
+ icon: 'none'
+ })
+ return;
+ }
+ let swiperCurrent = this.data.swiperCurrent;
+ let skuIndex = swiperCurrent - this.data.swiperRange.sku.min
+ console.log(swiperCurrent, skuIndex)
+ if (skuIndex<0) {skuIndex=0}
+ this.setData({
+ skuFlag: 'order',
+ skuIndex: skuIndex,
+ swiperCurrent: skuIndex+this.data.swiperRange.picture.max+1
+ })
+ }
+ })
+ },
+ order: function () {
+ app.globalData.postProduct = []
+ app.globalData.list = []
+ commonApi.user_post("/product/checkStock", {
+ sku_id: this.data.info.sku[this.data.skuIndex].id,
+ }).then(res => {
+ if (res && res.code != 1) {
+ return;
+ } else {
+ if (this.data.skuFlag == 'order') {
+ util.pagePoint({
+ event: 'product_order',
+ param: {
+ id: this.data.info.id,
+ type: this.data.info.type
+ }
+ }, 1)
+ wx.setStorageSync('login_from', 'product_order_login')
+ wx.setStorageSync('order_from', 'product_order_submit')
+ app.globalData.couponInfo = null;
+ // 购买
+ let product = [{
+ product: {...this.data.info,ZTPoint:this.data.ZTPoint},
+ sku: this.data.info.sku[this.data.skuIndex],
+ productNum: this.data.producNum
+ }];
+ app.globalData.postProduct = product;
+ app.globalData.retailId = this.data.retailId;
+ app.globalData.listName = null
+
+
+ wx.navigateTo({
+ url: '/pages/order/postOrder/index',
+ })
+
+ } else {
+ let tag_id = this.data.info.tag_id,type = ''
+ if (tag_id.includes(20) || tag_id.includes(19)) { //文创
+ type = '1'
+ }else if (tag_id.includes(5)) { //非遗
+ type = '2'
+ }else {
+ type = ''
+ }
+ commonApi.user_post("cart/add_sku", {
+ sku_id: this.data.info.sku[this.data.skuIndex].id,
+ num: this.data.producNum,
+ type:type
+ }).then(res => {
+ if (res.code == 1) {
+ commonApi.user_post('cart/get_list', {}).then(res => {
+ this.setData({
+ cartCount: res.data.length
+ })
+ })
+ // 加动效
+ this.setData({
+ skuFlag: null,
+ aniSkuIndex: this.data.skuIndex,
+ cartImgInfo: null
+ })
+ setTimeout(() => {
+ this.setData({
+ aniSkuIndex: -1
+ })
+ wx.showModal({
+ title: "提示",
+ content: "去购物车结算?",
+ success: function (res) {
+ if (res.confirm) {
+ wx.navigateTo({
+ url: '/pages/user/cartlist/list',
+ })
+ }
+ }
+ })
+ }, 650)
+ }
+ })
+ }
+ }
+ })
+
+ },
+ // 分享
+ share: function () {
+ if (!wx.getStorageSync("jstrip_token")) {
+ util.pagePoint({
+ event: 'product_share_login',
+ type: this.data.info.type,
+ id: this.data.info.id
+ }, 1)
+ commonApi.user_post("user/getMyInfo", {}).then(res => {
+
+ })
+ return;
+ }
+ if (!this.data.shareImg) {
+ wx.showToast({
+ title: '图片生成中,稍后再试',
+ icon: 'none'
+ })
+ return;
+ }
+ this.setData({
+ showShareFlag: !this.data.showShareFlag
+ })
+ },
+ // 保存
+ save() {
+ let url = this.data.shareImg,
+ that = this;
+ wx.authorize({
+ /* 这个就是保存相册的 */
+ scope: 'scope.writePhotosAlbum',
+ success() {
+ wx.saveImageToPhotosAlbum({
+ filePath: url,
+ success(res) {
+ wx.showToast({
+ title: '保存成功',
+ icon: "success"
+ })
+ that.setData({
+ showShareFlag: !this.data.showShareFlag
+ })
+ util.pagePoint({
+ event: 'product_share_save',
+ type: that.data.info.type,
+ id: that.data.info.id
+ }, 1)
+ },
+ fail(res) {
+ wx.showToast({
+ title: '保存失败',
+ icon: 'none'
+ })
+ }
+ })
+ },
+ complete(res) {
+ console.log(res);
+ /* 这里判断一下如果没有授权重新打开设置选项 */
+ wx.getSetting({
+ success(res) {
+ if (!res.authSetting['scope.writePhotosAlbum']) {
+ /* 打开设置的方法 */
+ // opensit();
+ wx.showToast({
+ title: '请打开权限后再试',
+ icon: 'none'
+ })
+ }
+ }
+ });
+ }
+ });
+
+ },
+ pagePoint: function (e) {
+ util.pagePoint(e)
+ },
+ // 绘制海报
+ drawImg: function () {
+ var that = this,
+ userinfo = wx.getStorageSync('jstrip_userInfo');
+ if (!userinfo) {
+ // 去登录
+ return false;
+ }
+ const ctx = wx.createCanvasContext('imageCanvas');
+ // const device = wx.getSystemInfoSync();
+ // const ratio = device.screenWidth / 750;
+
+ // 先获取到图片信息
+ let promise2 = new Promise(function (resolve, reject) {
+ wx.getImageInfo({
+ src: that.data.info.headimg,
+ success: function (res) {
+ resolve(res);
+ },
+ fail: function (res) {
+ reject(res);
+ }
+ })
+ })
+ let promise3 = new Promise(function (resolve, reject) {
+ let userid = wx.getStorageSync('jstrip_userid')
+ new QRCode('myQrcode', {
+ text: 'https://m.cloud.sz-trip.com/MailMerchandiseDetail?id=' + that.data.info.id + '&sharedUserId=' + userid + '&channel=-1',
+ width: 500,
+ height: 500,
+ padding: 12, // 生成二维码四周自动留边宽度,不传入默认为0
+ correctLevel: QRCode.CorrectLevel.H, // 二维码可辨识度
+ callback: (res) => {
+ resolve(res);
+ }
+ })
+ })
+ //成功得到图片信息后,开始绘图
+ Promise.all([promise2, promise3]).then(imgs => {
+ ctx.save();
+ ctx.beginPath(); //开始绘制
+ that.handleBorderRect(ctx, 0, 0, 551 * ratio, 407 * ratio, 25 * ratio, '#ccc')
+ ctx.clip(); //画好了圆 剪切 原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内 这也是我们要save上下文的原因
+ ctx.drawImage(imgs[0].path, 0, 0, 551 * ratio, 407 * ratio);
+ ctx.restore();
+ ctx.save();
+ that.handleBorderRect2(ctx, 0, 407 * ratio, 551 * ratio, 236 * ratio, 25 * ratio, '#fff')
+ ctx.restore();
+ // 绘制二维码
+ ctx.drawImage(imgs[1].path, 373 * ratio, 495 * ratio, 137 * ratio, 137 * ratio);
+ // 开始文字绘制
+ ctx.setFillStyle("#000");
+ ctx.setFontSize(30 * ratio); //字大小
+ ctx.setTextAlign('left'); //是否居中显示,参考点画布中线
+ that.drawText(ctx, that.data.info.title, 25 * ratio, 450 * ratio, 480 * ratio, ratio);
+ // 售价
+ ctx.setFillStyle("#D62828");
+ ctx.setFontSize(40 * ratio); //字大小
+ ctx.setTextAlign('left'); //是否居中显示,参考点画布中线
+ let price = "¥" + (that.data.info.price / 100);
+ let width = ctx.measureText(price).width;
+ ctx.fillText(price, 25 * ratio, 620 * ratio);
+ // 副标题
+ ctx.setFillStyle("#999999");
+ ctx.setFontSize(28 * ratio); //字大小
+ ctx.setTextAlign('left'); //是否居中显示,参考点画布中线
+ let subtitle = that.data.info.subtitle;
+ if (that.data.info.subtitle.length > 10) {
+ subtitle = that.data.info.subtitle.substr(0, 10) + '...'
+ }
+ ctx.fillText(subtitle, 25 * ratio, 540 * ratio);
+ // ctx.draw();
+ // 划线价
+ ctx.setFillStyle("#999999");
+ ctx.setFontSize(32 * ratio); //字大小
+ ctx.setTextAlign('left'); //是否居中显示,参考点画布中线
+ let market_price = "¥" + (that.data.info.market_price / 100)
+ ctx.fillText(market_price, 40 * ratio + width, 620 * ratio);
+ let market_price_width = ctx.measureText(market_price).width;
+ // 划线
+ ctx.beginPath()
+ ctx.setLineWidth(1)
+ ctx.moveTo(40 * ratio + width, 608 * ratio)
+ ctx.lineTo(45 * ratio + width + market_price_width, 608 * ratio)
+ ctx.stroke();
+ // 长按识别二维码
+ // ctx.setFillStyle("#666");
+ // ctx.setFontSize(22 * ratio); //字大小
+ // ctx.setTextAlign('left'); //是否居中显示,参考点画布中线
+ // ctx.fillText("长按识别二维码", 404*ratio, 710*ratio);
+ // 长按图片转发或保存
+ // ctx.setFillStyle("#000");
+ // ctx.setFontSize(24 * ratio); //字大小
+ // ctx.setTextAlign('left'); //是否居中显示,参考点画布中线
+ // ctx.fillText("长按图片保存到本地",(592*ratio - ctx.measureText("长按图片保存到本地").width)/2, 740*ratio);
+ ctx.draw();
+ // 转为图片
+ setTimeout(() => {
+ wx.canvasToTempFilePath({
+ x: 0,
+ y: 0,
+ canvasId: 'imageCanvas',
+ success: function (res) {
+ that.setData({
+ shareImg: res.tempFilePath
+ })
+ },
+ fail(err) {
+ console.log('agdgjgdajhg', err)
+ }
+ })
+ }, 500)
+ return false;
+ }).catch(err => {
+ console.log("this err", err)
+ })
+ },
+ // 圆角矩形
+ handleBorderRect(ctx, x, y, w, h, r, color) {
+ ctx.beginPath();
+ ctx.moveTo(x + w, y + h);
+ ctx.lineTo(x, y + h)
+ // 左上角
+ ctx.arc(x + r, y + r, r, Math.PI, 1.5 * Math.PI);
+ ctx.moveTo(x + r, y);
+ ctx.lineTo(x + w - r, y);
+ ctx.lineTo(x + w, y + r);
+ // 右上角
+ ctx.arc(x + w - r, y + r, r, 1.5 * Math.PI, 2 * Math.PI);
+ ctx.lineTo(x + w, y + h);
+ ctx.lineTo(x + w - r, y + h);
+ ctx.fillStyle = color;
+ ctx.fill();
+ ctx.closePath();
+ },
+ handleBorderRect2(ctx, x, y, w, h, r, color) {
+ ctx.beginPath();
+ ctx.moveTo(x, y);
+ ctx.lineTo(x + w, y)
+ // 右下角
+ ctx.arc(x + w - r, y + h - r, r, 0, 0.5 * Math.PI);
+ ctx.lineTo(x + r, y + h);
+ ctx.lineTo(x, y + h - r);
+ // 左下角
+ ctx.arc(x + r, y + h - r, r, 0.5 * Math.PI, Math.PI);
+ ctx.lineTo(x, y);
+ ctx.lineTo(x, y);
+ ctx.fillStyle = color;
+ ctx.fill();
+ ctx.closePath();
+ },
+ // 绘制两行文字
+ drawText: function (ctx, str, x, y, canvasWidth, ratio) {
+ let row = [],
+ temp = "",
+ chr = str.split("");
+ for (var a = 0; a < chr.length; a++) {
+ if (ctx.measureText(temp).width < canvasWidth) {
+ temp += chr[a];
+ } else {
+ a--; //这里添加了a-- 是为了防止字符丢失,效果图中有对比
+ row.push(temp);
+ temp = "";
+ }
+ }
+ row.push(temp);
+
+ //如果数组长度大于2 则截取前两个
+ if (row.length > 2) {
+ var rowCut = row.slice(0, 2);
+ var rowPart = rowCut[1];
+ var test = "";
+ var empty = [];
+ for (var a = 0; a < rowPart.length; a++) {
+ if (ctx.measureText(test).width < canvasWidth - 30 * ratio) {
+ test += rowPart[a];
+ } else {
+ break;
+ }
+ }
+ empty.push(test);
+ var group = empty[0] + "..." //这里只显示两行,超出的用...表示
+ rowCut.splice(1, 1, group);
+ row = rowCut;
+ }
+ for (var b = 0; b < row.length; b++) {
+ ctx.fillText(row[b], x, y + b * 40 * ratio, canvasWidth);
+ }
+ },
+ gotoDetail: function (e) {
+ let item = e.currentTarget.dataset.item;
+ util.pagePoint({
+ event: 'recommend_click',
+ param: {
+ id: item.id,
+ type: item.type
+ }
+ }, 1)
+ if (item.type == 'travels') {
+ // 游记做特殊处理 其他都按照原来的来
+ wx.navigateTo({
+ url: '/pages/info/strategyInfo/index?id=' + item.s_id,
+ })
+ } else {
+ util.gotoDetail(item);
+ }
+ },
+
+ gotolocation: function () {
+ let info = this.data.info;
+ wx.openLocation({
+ latitude: Number(info.scene_lat),
+ longitude: Number(info.scene_lon),
+ name:info.scene_name,
+ address:info.scene_address
+ })
+ },
+
+ viewImg:function(e){
+ let item = e.currentTarget.dataset.item;
+ if (item.img_list.length>0) {
+ wx.previewImage({
+ urls: item.img_list
+ })
+ }
+ },
+
+ swiperChange (e) {
+ return
+ if(e.detail.source == "touch") {
+ let index = e.detail.current
+ this.setData({
+ swiperCurrent: index
+ })
+ }
+ console.log(e, this.data.swiperCurrent)
+ },
+ changeSwiperCurrent (e) {
+ let index = e.currentTarget.dataset.index
+ this.setData({
+ swiperCurrent: index
+ })
+ },
+ changeSimpleVal (e) {
+ let keyname = e.currentTarget.dataset.keyname;
+ let val = e.currentTarget.dataset.val;
+ let param = {}
+ param[keyname] = val
+ this.setData(param)
+ console.log(this.data)
+ },
+
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ app.globalData.postProduct = []
+ if (!wx.getStorageSync('jstrip_token')) {
+ return;
+ }
+ if (this.data.info && this.data.info.id) {
+ commonApi.user_post("product/is_product_collection", {
+ product_id: this.data.info.id
+ }).then(res => {
+ this.setData({
+ isLike: res.data
+ })
+ this.drawImg()
+ })
+ // commonApi.user_post('cart/get_list', {}).then(res => {
+ // this.setData({
+ // cartCount: res.data.length
+ // })
+ // })
+ commonApi.user_post('cart/get_count', {noLogin: true}).then(res => {
+ this.setData({
+ cartCount: res.data //1
+ })
+ })
+ } else {
+ setTimeout(() => {
+ this.onShow()
+ }, 200)
+ }
+ },
+ playVideo() {
+ // 播放视频需要把autoplay暂停
+ this.setData({
+ autoPlay: false
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/subPackages/goods/memberCard/index.json b/subPackages/goods/memberCard/index.json
new file mode 100644
index 0000000..35cf02f
--- /dev/null
+++ b/subPackages/goods/memberCard/index.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents": {
+ "title":"/pages/component/TitleHeader"
+ }
+}
\ No newline at end of file
diff --git a/subPackages/goods/memberCard/index.wxml b/subPackages/goods/memberCard/index.wxml
new file mode 100644
index 0000000..a6d34a6
--- /dev/null
+++ b/subPackages/goods/memberCard/index.wxml
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{info.title}}
+
+ ¥{{info.sku[skuIndex].price / 100}}
+ ¥{{info.sku[skuIndex].market_price / 100}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 客服
+
+
+
+ 收藏
+
+
+
+
+
+ 加入购物车
+ 立即购买
+
+
+
+
+
+ {{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/utils/util.js b/utils/util.js
index 8756297..7a1dd16 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({