| @@ -0,0 +1,92 @@ | |||
| Component({ | |||
| properties: { | |||
| mallList: { | |||
| value: [], | |||
| type: Array | |||
| } | |||
| }, | |||
| data: { | |||
| list: [], // 广场、商户列表 | |||
| mallNum: 0, // 适用商户数量 | |||
| }, | |||
| methods: { | |||
| // 跳转详情页 | |||
| gotoDetail(e) { | |||
| console.log(e); | |||
| wx.navigateTo({ | |||
| url: `/pages/index/searchbar/detail/index?id=${e.currentTarget.dataset.id}&mallTenantId=${e.currentTarget.dataset.tenantid}` | |||
| }) | |||
| }, | |||
| // 跳转资质页面 | |||
| // goCertification(e) { | |||
| // wx.navigateTo({ | |||
| // url: `/pages/shopCertification/index?id=${e.currentTarget.dataset.id}` | |||
| // }) | |||
| // }, | |||
| //跳转地图页面 | |||
| goMap(e) { | |||
| let { | |||
| latitude, | |||
| longitude | |||
| } = e.currentTarget.dataset.item | |||
| console.log(latitude, longitude); | |||
| wx.openLocation({ | |||
| latitude: Number(latitude), | |||
| longitude: Number(longitude), | |||
| scale: 18, | |||
| success() { | |||
| console.log("打开地图成功"); | |||
| }, | |||
| fail(err) { | |||
| console.log("打开地图失败:", err.errMsg); | |||
| }, | |||
| }); | |||
| }, | |||
| goFitShop() { | |||
| const arr = [] | |||
| this.data.list.forEach(item => { | |||
| item.merchantVoList.forEach(el => { | |||
| arr.push(el) | |||
| }) | |||
| }) | |||
| wx.navigateTo({ | |||
| url: `/pages/fitShop/fitShop?list=${JSON.stringify(arr)}`, | |||
| success: (res) => { }, | |||
| fail: (res) => { }, | |||
| }); | |||
| }, | |||
| expandList(e) { | |||
| const index = e.currentTarget.dataset.index | |||
| const arr = this.data.list | |||
| arr[index].expand = !arr[index].expand | |||
| this.setData({ | |||
| list: arr | |||
| }) | |||
| } | |||
| }, | |||
| ready() { | |||
| this.setData({ | |||
| list: JSON.parse(JSON.stringify(this.properties.mallList)) | |||
| }) | |||
| console.log(this.data.mallList, 'mallList'); | |||
| let mallNum = 0 | |||
| this.data.list.forEach(item => { | |||
| mallNum += item.merchantVoList.length | |||
| }) | |||
| this.setData({ | |||
| mallNum: mallNum | |||
| }) | |||
| }, | |||
| created() { | |||
| } | |||
| }) | |||
| @@ -0,0 +1,3 @@ | |||
| { | |||
| "component": true | |||
| } | |||
| @@ -0,0 +1,58 @@ | |||
| <view class="components"> | |||
| <view class="header"> | |||
| <view class='applyshop'>适用门店</view> | |||
| <!-- <image src="../../assets/itemImg/chevron.png" mode="widthFix" class="rightArrow"> | |||
| </image> --> | |||
| <view class="goShop">{{'共'+mallNum+'家门店适用'}}</view> | |||
| </view> | |||
| <view wx:for="{{list}}" wx:for-index="index" wx:key="index" class="body"> | |||
| <view class="mall"> | |||
| <image class="img" src="../../assets/images/merchantImgCover.png"></image> | |||
| <view class="mallItem"> | |||
| <view class="title">{{item.mallName}}</view> | |||
| </view> | |||
| </view> | |||
| <!-- 当商户数量不大于三个时 --> | |||
| <view class="goExpand" catchtap="expandList" data-index="{{index}}"> | |||
| <view> | |||
| <view>{{item.merchantVoList.length+'家门店适用'}}</view> | |||
| <image wx:if="{{!item.expand}}" src="../../assets/images/chevron.png" mode="widthFix" class="rightArrowDown"> | |||
| </image> | |||
| <image wx:else src="../../assets/images/chevron.png" mode="widthFix" class="rightArrowUp"></image> | |||
| </view> | |||
| </view> | |||
| <!-- 当item.expand为true且商户数量不大于三个时 --> | |||
| <view class="shop" wx:if="{{item.expand}}"> | |||
| <view class='posi' wx:for="{{item.merchantVoList}}" wx:key="index"> | |||
| <view class='posi_logo'> | |||
| <view bindtap='gotoDetail' data-id='{{item.id}}' data-tenantId='{{item.tenantId}}'> | |||
| <image class="img" src='{{item.merchantImgUrl}}'></image> | |||
| </view> | |||
| <view bindtap='gotoDetail' data-id='{{item.id}}' data-tenantId='{{item.tenantId}}'> | |||
| <view class='name'>{{item.merchantName}}</view> | |||
| <view class='shopVoList'> | |||
| <view wx:for="{{item.shopVoList}}" wx:key="index" wx:for-item="itemName"> | |||
| <text class="name">{{itemName.buildingName}}{{itemName.floorName}}--{{itemName.shopNumber}}</text> | |||
| <text class='douhao' wx:if="{{item.shopVoList.length>1}}">,</text> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class="telBox" wx:if="{{item.linkLinePhone}}"> | |||
| <image bindtap='phone' data-merchantLinkPhone='{{item.linkLinePhone}}' class="telImg" src="{{teljpgUrl}}" mode="widthFix" /> | |||
| <view class="telText">电话</view> | |||
| </view> | |||
| <!-- <view class="certificationBox" wx:if="{{item.latitude&&item.longitude}}" bindtap="goCertification" data-id="{{item.id}}"> | |||
| <image class="certificationImg" src="../../assets/images/certification.png" mode="widthFix" /> | |||
| <view class="telText">资质</view> | |||
| </view> --> | |||
| </view> | |||
| <view class="siteBox" wx:if="{{item.latitude&&item.longitude}}" bindtap="goMap" data-item="{{item}}"> | |||
| <view class="siteText">{{item.addr}}</view> | |||
| <image class="siteImg" src="../../assets/images/siteImg.png" mode="widthFix" /> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| @@ -0,0 +1,205 @@ | |||
| .components { | |||
| display: block; | |||
| height: auto; | |||
| margin-top: 15rpx; | |||
| background-color: #fff; | |||
| } | |||
| .components .header { | |||
| height: 70rpx; | |||
| } | |||
| .components .header .applyshop { | |||
| float: left; | |||
| font-size: 30rpx; | |||
| line-height: 70rpx; | |||
| text-indent: 1em; | |||
| color: #333; | |||
| background: #fff; | |||
| font-weight: bold; | |||
| } | |||
| .components .header .goShop { | |||
| float: right; | |||
| font-size: 22rpx; | |||
| height: 70rpx; | |||
| line-height: 70rpx; | |||
| text-indent: 1em; | |||
| color: #a6a6a6; | |||
| background: #fff; | |||
| font-weight: bold; | |||
| margin-right: 25rpx; | |||
| } | |||
| .components .header .rightArrow { | |||
| float: right; | |||
| display: block; | |||
| width: 14rpx; | |||
| margin: 24rpx 30rpx 0 10rpx; | |||
| } | |||
| .components .body { | |||
| border-bottom: 10rpx solid #f4f5f9; | |||
| } | |||
| .components .body .mall { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| align-items: center; | |||
| margin-top: 15rpx; | |||
| margin-bottom: 15rpx; | |||
| padding-left: 25rpx; | |||
| padding-right: 65rpx; | |||
| } | |||
| .components .body .mall .img { | |||
| width: 120rpx; | |||
| height: 120rpx; | |||
| } | |||
| .components .body .mall .mallItem { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| align-items: center; | |||
| } | |||
| .components .body .mall .mallItem .title { | |||
| font-size: 35rpx; | |||
| } | |||
| .components .body .goExpand { | |||
| text-align: center; | |||
| font-size: 25rpx; | |||
| color: #a6a6a6; | |||
| } | |||
| .components .body .goExpand .rightArrowDown { | |||
| position: relative; | |||
| left: 50%; | |||
| transform: translate(-50%); | |||
| display: block; | |||
| width: 14rpx; | |||
| transform: rotate(90deg); | |||
| } | |||
| .components .body .goExpand .rightArrowUp { | |||
| position: relative; | |||
| left: 50%; | |||
| transform: translate(-50%); | |||
| display: block; | |||
| width: 14rpx; | |||
| transform: rotate(-90deg); | |||
| } | |||
| .components .body .shop .posi { | |||
| /* position: relative; */ | |||
| width: 100%; | |||
| background: #FFF; | |||
| margin-bottom: 20rpx; | |||
| } | |||
| .components .body .shop .posi .posi_logo { | |||
| position: relative; | |||
| width: 92%; | |||
| display: flex; | |||
| padding: 20rpx 0; | |||
| background: #fff; | |||
| margin: 0 auto; | |||
| } | |||
| .components .body .shop .posi .posi_logo .img { | |||
| display: block; | |||
| width: 100rpx; | |||
| height: 100rpx; | |||
| border-radius: 16rpx; | |||
| margin-right: 16rpx; | |||
| border: 1px solid #e5e5e5; | |||
| } | |||
| .components .body .shop .posi .posi_logo .name { | |||
| font-size: 32rpx; | |||
| color: #333; | |||
| letter-spacing: 0; | |||
| width: 500rpx; | |||
| white-space: nowrap; | |||
| text-overflow: ellipsis; | |||
| overflow: hidden; | |||
| } | |||
| .components .body .shop .posi .posi_logo .shopVoList { | |||
| white-space: nowrap !important; | |||
| overflow-y: scroll; | |||
| height: 90rpx !important; | |||
| width: 360rpx; | |||
| font-size: 16px; | |||
| color: #333; | |||
| letter-spacing: 0; | |||
| } | |||
| .components .body .shop .posi .posi_logo .shopVoList .name { | |||
| font-size: 23rpx !important; | |||
| color: #b8b8b8 !important; | |||
| } | |||
| .components .body .shop .posi .posi_logo .telBox { | |||
| position: absolute; | |||
| right: 0; | |||
| top: 0; | |||
| bottom: 0; | |||
| margin: auto; | |||
| } | |||
| .components .body .shop .posi .posi_logo .telBox .telImg { | |||
| width: 50rpx; | |||
| height: 50rpx; | |||
| margin-top: 20rpx; | |||
| } | |||
| .components .body .shop .posi .posi_logo .telBox .telText { | |||
| text-align: center; | |||
| color: #b8b8b8 !important; | |||
| font-size: 20rpx; | |||
| } | |||
| .components .body .shop .posi .posi_logo .certificationBox { | |||
| position: absolute; | |||
| right: 35rpx; | |||
| top: 0; | |||
| bottom: 0; | |||
| margin: auto; | |||
| } | |||
| .components .body .shop .posi .posi_logo .certificationBox .certificationImg { | |||
| width: 50rpx; | |||
| height: 50rpx; | |||
| margin-top: 20rpx; | |||
| } | |||
| .components .body .shop .posi .posi_logo .certificationBox .telText { | |||
| text-align: center; | |||
| color: #b8b8b8 !important; | |||
| font-size: 20rpx; | |||
| } | |||
| .components .body .shop .posi .siteBox { | |||
| overflow: hidden; | |||
| width: 92%; | |||
| margin: 0 auto 1rpx auto; | |||
| padding-bottom: 10rpx; | |||
| } | |||
| .components .body .shop .posi .siteBox .siteText { | |||
| width: 90%; | |||
| float: left; | |||
| font-size: 24rpx; | |||
| color: #333; | |||
| overflow: hidden; | |||
| white-space: nowrap; | |||
| text-overflow: ellipsis; | |||
| } | |||
| .components .body .shop .posi .siteBox .siteImg { | |||
| float: right; | |||
| width: 40rpx; | |||
| height: 40rpx; | |||
| } | |||
| @@ -1,7 +1,14 @@ | |||
| { | |||
| "ext": { | |||
| "attr": { | |||
| "mchId": "1602801645", | |||
| "car": { | |||
| "etcp": { | |||
| "etcpAppId": "wx192b7d2e8dcbefd0", | |||
| "etcpVersion": "release", | |||
| "etcpCallbackUrl": "https://admintest.malls.iformall.com/api/carCallback/etcpPaidCallback" | |||
| } | |||
| }, | |||
| "mchId": "1604439800", | |||
| "imgProxy": [ | |||
| { | |||
| "newUrl": "https://ctest.malls.iformall.com/img", | |||
| @@ -17,16 +24,12 @@ | |||
| } | |||
| ], | |||
| "configUrl": "https://ctest.malls.iformall.com/C/api", | |||
| "etcpAppId": "wx219a81b9c87aa4f7", | |||
| "etcpVersion": "release", | |||
| "businessSwitch": "1", | |||
| "businessVersion": "1", | |||
| "etcpCallbackUrl": "https://admintest.malls.iformall.com/api/carCallback/etcpPaidCallback", | |||
| "ifHaveWebSocket": "0", | |||
| "ifHaveCarModular": "1" | |||
| }, | |||
| "name": "富茂光谷测试版", | |||
| "weappId": "wx219a81b9c87aa4f7", | |||
| "name": "金泸商务", | |||
| "weappId": "wx649b3be73c1afe47", | |||
| "appVersion": "C.test.5.2.0" | |||
| }, | |||
| "debug": false, | |||
| @@ -74,15 +77,15 @@ | |||
| }, | |||
| "plugins": { | |||
| "auto-points-plugin": { | |||
| "version": "2.4.0", | |||
| "version": "1.3.0", | |||
| "provider": "wxfab2bf944bfc4da6" | |||
| }, | |||
| "live-player-plugin": { | |||
| "version": "1.2.5", | |||
| "version": "1.3.4", | |||
| "provider": "wx2b03c6e691cd7370" | |||
| } | |||
| }, | |||
| "extAppid": "wx219a81b9c87aa4f7", | |||
| "extAppid": "wx649b3be73c1afe47", | |||
| "extEnable": true, | |||
| "permission": { | |||
| "scope.userLocation": { | |||
| @@ -95,6 +95,7 @@ Page({ | |||
| contentType: 0, | |||
| page: 1,//查询商户优惠券page | |||
| idList: [], | |||
| mallList: "" | |||
| }, | |||
| /** | |||
| * 显示分享弹框 | |||
| @@ -600,26 +601,25 @@ Page({ | |||
| couponChannelId: couponChannelId | |||
| } | |||
| }).then(res => { | |||
| if (res.data && res.data.length) { | |||
| let merchantVoList = res.data | |||
| let idList = [] | |||
| merchantVoList.map(item => { | |||
| idList.push(item.id) | |||
| }) | |||
| this.setData({ | |||
| idList: idList | |||
| }) | |||
| this.getCouponList(idList) //获取推荐列表 | |||
| } | |||
| const keys = Object.keys(res.data) | |||
| const mallList = [] | |||
| keys.forEach(item => { | |||
| const arr = item.split('|') | |||
| const obj = { | |||
| tenantId: arr[0], | |||
| mallName: arr[1], | |||
| merchantVoList: res.data[item], | |||
| expand: true | |||
| } | |||
| mallList.push(obj) | |||
| }) | |||
| this.setData({ | |||
| merchantVoList: res.data | |||
| mallList: mallList | |||
| }) | |||
| console.log(this.data.mallList, 'mallList'); | |||
| }) | |||
| }, | |||
| getDetail: function (couponChannelId, flag) { | |||
| let that = this; | |||
| let data = {}; | |||
| @@ -3,6 +3,7 @@ | |||
| "c-shareposter": "../../../../components/shareposter/index", | |||
| "navbar": "../../../../components/navbar/navbar", | |||
| "store": "../../../../components/store/index", | |||
| "shop": "../../../../components/shop/shop", | |||
| "c-coupons": "../../../components/coupons/index" | |||
| }, | |||
| "navigationBarTitleText": "", | |||
| @@ -117,7 +117,8 @@ | |||
| </view> | |||
| </view> | |||
| <!-- 适用门店 --> | |||
| <store merchantVoList="{{merchantVoList}}" wx:if="{{data.type!=12}}"></store> | |||
| <!-- <store merchantVoList="{{merchantVoList}}" wx:if="{{data.type!=12}}"></store> --> | |||
| <shop wx:if="{{mallList.length>0}}" mallList="{{mallList}}"></shop> | |||
| <!-- 券包子券样式 --> | |||
| <!-- <view class="childText">购买须知</view> --> | |||
| <view class="childBox"> | |||
| @@ -21,7 +21,6 @@ | |||
| font-size: 32rpx; | |||
| font-weight: 700; | |||
| margin-left: 10rpx; | |||
| height: 60rpx; | |||
| line-height: 60rpx; | |||
| } | |||
| @@ -55,4 +54,4 @@ | |||
| height: 60rpx; | |||
| line-height: 60rpx; | |||
| color: rgba(0, 0, 0, 0.3); | |||
| } | |||
| } | |||
| @@ -50,15 +50,16 @@ Page({ | |||
| display: "none", | |||
| orderGroupId: '', | |||
| merchantVoList: [], | |||
| goHomeUrl:"", | |||
| goHomeUrl: "", | |||
| mallList: '' | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面加载 | |||
| */ | |||
| */ | |||
| onLoad: function (options) { | |||
| this.setData({ | |||
| mouldType:app.globalData.mouldType, | |||
| mouldType: app.globalData.mouldType, | |||
| mouldConfig: app.globalData.mouldConfig, | |||
| goHomeUrl: app.globalData.goHomeUrl, | |||
| }) | |||
| @@ -163,7 +164,7 @@ Page({ | |||
| }, | |||
| /** | |||
| * 直接购买 | |||
| */ | |||
| */ | |||
| gotoBuy(e) { | |||
| let that = this; | |||
| this.setData({ | |||
| @@ -335,7 +336,7 @@ Page({ | |||
| data: { | |||
| couponId: couponId | |||
| } | |||
| }).then(res => { | |||
| }).then(res => { | |||
| that.setData({ | |||
| disOrderNumber: res.data.orderNumber, | |||
| couponChannelId: res.data.couponChannelId, | |||
| @@ -473,10 +474,33 @@ Page({ | |||
| data.salePrice = (data.salePrice / 100).toFixed(2); | |||
| data.validStartDate = utils.formatTime(data.validStartDate, 'yyyy-MM-dd') | |||
| data.validEndDate = utils.formatTime(data.validEndDate, 'yyyy-MM-dd') | |||
| that.setData({ | |||
| data, | |||
| merchantVoList: data.merchantVoList | |||
| }); | |||
| // that.setData({ | |||
| // data, | |||
| // merchantVoList: data.merchantVoList | |||
| // }); | |||
| Http.get({ | |||
| url: config.api.couponMerchant, | |||
| data: { | |||
| couponChannelId: couponChannelId | |||
| } | |||
| }).then(res => { | |||
| const keys = Object.keys(res.data) | |||
| const mallList = [] | |||
| keys.forEach(item => { | |||
| const arr = item.split('|') | |||
| const obj = { | |||
| tenantId: arr[0], | |||
| mallName: arr[1], | |||
| merchantVoList: res.data[item], | |||
| expand: true | |||
| } | |||
| mallList.push(obj) | |||
| }) | |||
| this.setData({ | |||
| mallList: mallList | |||
| }) | |||
| console.log(this.data.mallList, 'mallList'); | |||
| }) | |||
| }); | |||
| }, | |||
| /** | |||
| @@ -671,7 +695,7 @@ Page({ | |||
| }); | |||
| } | |||
| }).then(res => { | |||
| console.log(res,"123") | |||
| console.log(res, "123") | |||
| if (typeof (res) != "undefined") { | |||
| let orderId = "" + res.data.mainOrderId; | |||
| that.setData({ | |||
| @@ -734,7 +758,7 @@ Page({ | |||
| }) | |||
| .catch(err => { | |||
| that.setData({ | |||
| canSpell: true, | |||
| canSpell: true, | |||
| canBuyIf: true | |||
| }) | |||
| wx.showToast({ | |||
| @@ -762,7 +786,7 @@ Page({ | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面显示 | |||
| @@ -3,6 +3,7 @@ | |||
| "enablePullDownRefresh": true, | |||
| "usingComponents": { | |||
| "navbar": "../../../../components/navbar/navbar", | |||
| "store": "../../../../components/store/index" | |||
| "store": "../../../../components/store/index", | |||
| "shop": "../../../../components/shop/shop" | |||
| } | |||
| } | |||
| @@ -1,12 +1,12 @@ | |||
| <navbar back home text="拼团券" background='#fff'></navbar> | |||
| <view style="height:{{navigationBarHeight}} "></view> | |||
| <view class="content-box" > | |||
| <view class="content-box"> | |||
| <view class='content'> | |||
| <view wx:if="{{coverPicture.length>0}}" class="banner" style="{{mouldConfig.groupSwiperH}}"> | |||
| <swiper class="index-slide swiper-box" style="{{mouldConfig.groupSwiperH}}" bindchange="swiperChange" indicator-dots="true" autoplay="true" circular="false" current="{{swiperCurrent}}"> | |||
| <block wx:for="{{coverPicture}}" wx:key="unique"> | |||
| <swiper-item > | |||
| <image data-data="{{item}}" style="{{mouldConfig.groupSwiperH}}" src="{{item}}" class="index-slide-image" /> | |||
| <swiper-item> | |||
| <image data-data="{{item}}" style="{{mouldConfig.groupSwiperH}}" src="{{item}}" class="index-slide-image" /> | |||
| </swiper-item> | |||
| </block> | |||
| </swiper> | |||
| @@ -15,7 +15,7 @@ | |||
| <view class='text'> | |||
| <view class='remark'>{{data.subTitle}}</view> | |||
| <view class='fenxiang' wx:if="{{data.type!=50&&data.type!=51}}" bindtap='showshare'> | |||
| <image src='{{fenxiang}}' mode="widthFix"></image> | |||
| <image src='{{fenxiang}}' mode="widthFix"></image> | |||
| <text class='gift'>分享</text> | |||
| </view> | |||
| <view class='des'> | |||
| @@ -41,10 +41,11 @@ | |||
| <view class='right-text'>剩余{{data.remainInventory}}张</view> | |||
| </view> | |||
| <view class='status' wx:if="{{spellData!=null}}"> | |||
| <view class='status01 st'> | |||
| <view class='status01 st'> | |||
| <image src='{{spellData.avatarUrl}}'></image> | |||
| </view> | |||
| <view class='status02 st'>{{spellData.nickName}}的团还差<view class='r-p-num'>1人</view></view> | |||
| <view class='status02 st'>{{spellData.nickName}}的团还差<view class='r-p-num'>1人</view> | |||
| </view> | |||
| <view class='status03 st'> | |||
| <view class='mm'>{{day}}</view><text class='day-box' style='font-size:32rpx;'> 天 </text> | |||
| <view class='hh'>{{hour}}</view><text class='mao'>:</text> | |||
| @@ -56,7 +57,8 @@ | |||
| </view> | |||
| </view> | |||
| <!-- 适用门店 --> | |||
| <store wx:if="{{merchantVoList.length>0}}" merchantVoList="{{merchantVoList}}"></store> | |||
| <!-- <store wx:if="{{merchantVoList.length>0}}" merchantVoList="{{merchantVoList}}"></store> --> | |||
| <shop wx:if="{{mallList.length>0}}" mallList="{{mallList}}"></shop> | |||
| <view class='notes'> | |||
| <view> | |||
| <text>购买须知</text> | |||
| @@ -74,7 +76,7 @@ | |||
| <text class='btnTxt'>首页</text> | |||
| </button> | |||
| <form bindsubmit='{{canBuyIf?"gotoBuy":""}}' report-submit='true' wx:if='{{data.id}}'> | |||
| <button class='edit-left' form-type="submit" > | |||
| <button class='edit-left' form-type="submit"> | |||
| <view class='edit-left-top'> | |||
| <view class='price'>{{data.price}}</view> | |||
| <view class='price-unit'>元</view> | |||
| @@ -84,7 +86,7 @@ | |||
| </form> | |||
| <!-- <button class='edit-right' id="shareBtn" open-type="share"></button> --> | |||
| <form bindsubmit='{{canSpell?"gotoSpell":""}}' report-submit='true' wx:if='{{data.id}}'> | |||
| <button class='edit-right' form-type="submit" > | |||
| <button class='edit-right' form-type="submit"> | |||
| <view class='edit-left-top'> | |||
| <view class='price'>{{data.salePrice}}</view> | |||
| <view class='price-unit'>元</view> | |||