| @@ -1,11 +1,92 @@ | |||
| Component({ | |||
| properties: { | |||
| mallList: { | |||
| value: [], | |||
| type: Array | |||
| } | |||
| }, | |||
| data: { | |||
| list: [], // 广场、商户列表 | |||
| mallNum: 0, // 适用商户数量 | |||
| }, | |||
| methods: { | |||
| // 跳转详情页 | |||
| gotoDetail(e) { | |||
| console.log(e); | |||
| tt.navigateTo({ | |||
| url: `/pages/index/searchbar/detail/index?id=${e.currentTarget.dataset.id}&mallTenantId=${e.currentTarget.dataset.tenantid}` | |||
| }) | |||
| }, | |||
| // 跳转资质页面 | |||
| goCertification(e) { | |||
| tt.navigateTo({ | |||
| url: `/pages/shopCertification/shopCertification?id=${e.currentTarget.dataset.id}` | |||
| }) | |||
| }, | |||
| //跳转地图页面 | |||
| goMap(e) { | |||
| let { | |||
| latitude, | |||
| longitude | |||
| } = e.currentTarget.dataset.item | |||
| console.log(latitude, longitude); | |||
| tt.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) | |||
| }) | |||
| }) | |||
| tt.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 | |||
| }) | |||
| } | |||
| }, | |||
| properties: { | |||
| 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 | |||
| }) | |||
| }, | |||
| methods: { | |||
| created() { | |||
| } | |||
| }) | |||
| @@ -0,0 +1,211 @@ | |||
| .components { | |||
| display: block; | |||
| height: auto; | |||
| margin-top: 15rpx; | |||
| background-color: #fff; | |||
| .header { | |||
| height: 70rpx; | |||
| .applyshop { | |||
| float: left; | |||
| font-size: 30rpx; | |||
| line-height: 70rpx; | |||
| text-indent: 1em; | |||
| color: #333; | |||
| background: #fff; | |||
| font-weight: bold; | |||
| } | |||
| .goShop { | |||
| float: right; | |||
| font-size: 22rpx; | |||
| height: 70rpx; | |||
| line-height: 70rpx; | |||
| text-indent: 1em; | |||
| color: #a6a6a6; | |||
| background: #fff; | |||
| font-weight: bold; | |||
| margin-right: 25rpx; | |||
| } | |||
| .rightArrow { | |||
| float: right; | |||
| display: block; | |||
| width: 14rpx; | |||
| margin: 24rpx 30rpx 0 10rpx; | |||
| } | |||
| } | |||
| .body { | |||
| border-bottom: 10rpx solid #f4f5f9; | |||
| .mall { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| align-items: center; | |||
| margin-top: 15rpx; | |||
| margin-bottom: 15rpx; | |||
| padding-left: 25rpx; | |||
| padding-right: 65rpx; | |||
| .img { | |||
| width: 120rpx; | |||
| height: 120rpx; | |||
| } | |||
| .mallItem { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| align-items: center; | |||
| .title { | |||
| font-size: 35rpx; | |||
| } | |||
| } | |||
| } | |||
| .goExpand { | |||
| text-align: center; | |||
| font-size: 25rpx; | |||
| color: #a6a6a6; | |||
| .rightArrowDown { | |||
| position: relative; | |||
| left: 50%; | |||
| transform: translate(-50%); | |||
| display: block; | |||
| width: 14rpx; | |||
| transform: rotate(90deg); | |||
| } | |||
| .rightArrowUp { | |||
| position: relative; | |||
| left: 50%; | |||
| transform: translate(-50%); | |||
| display: block; | |||
| width: 14rpx; | |||
| transform: rotate(-90deg); | |||
| } | |||
| } | |||
| .shop { | |||
| .posi { | |||
| /* position: relative; */ | |||
| width: 100%; | |||
| background: #FFF; | |||
| margin-bottom: 20rpx; | |||
| .posi_logo { | |||
| position: relative; | |||
| width: 92%; | |||
| display: flex; | |||
| padding: 20rpx 0; | |||
| background: #fff; | |||
| margin: 0 auto; | |||
| view { | |||
| &:nth-child(1) { | |||
| image { | |||
| display: block; | |||
| width: 100rpx; | |||
| height: 100rpx; | |||
| border-radius: 16rpx; | |||
| margin-right: 16rpx; | |||
| border: 1px solid #e5e5e5; | |||
| } | |||
| } | |||
| } | |||
| .name { | |||
| font-size: 32rpx; | |||
| color: #333; | |||
| letter-spacing: 0; | |||
| width: 500rpx; | |||
| white-space: nowrap; | |||
| text-overflow: ellipsis; | |||
| overflow: hidden; | |||
| } | |||
| .shopVoList { | |||
| white-space: nowrap !important; | |||
| overflow-y: scroll; | |||
| height: 90rpx !important; | |||
| width: 360rpx; | |||
| font-size: 16px; | |||
| color: #333; | |||
| letter-spacing: 0; | |||
| text { | |||
| font-size: 20rpx !important; | |||
| color: #b8b8b8 !important; | |||
| } | |||
| } | |||
| .telBox { | |||
| position: absolute; | |||
| right: 0; | |||
| top: 0; | |||
| bottom: 0; | |||
| margin: auto; | |||
| .telImg { | |||
| width: 50rpx; | |||
| height: 50rpx; | |||
| margin-top: 20rpx; | |||
| } | |||
| .telText { | |||
| text-align: center; | |||
| color: #b8b8b8 !important; | |||
| font-size: 20rpx; | |||
| } | |||
| } | |||
| .certificationBox { | |||
| position: absolute; | |||
| right: 80rpx; | |||
| top: 0; | |||
| bottom: 0; | |||
| margin: auto; | |||
| .certificationImg { | |||
| width: 50rpx; | |||
| height: 50rpx; | |||
| margin-top: 20rpx; | |||
| } | |||
| .telText { | |||
| text-align: center; | |||
| color: #b8b8b8 !important; | |||
| font-size: 20rpx; | |||
| } | |||
| } | |||
| } | |||
| .siteBox { | |||
| overflow: hidden; | |||
| width: 92%; | |||
| margin: 0 auto 1rpx auto; | |||
| padding-bottom: 10rpx; | |||
| .siteText { | |||
| width: 90%; | |||
| float: left; | |||
| font-size: 24rpx; | |||
| color: #333; | |||
| overflow: hidden; | |||
| white-space: nowrap; | |||
| text-overflow: ellipsis; | |||
| } | |||
| .siteImg { | |||
| float: right; | |||
| width: 40rpx; | |||
| height: 40rpx; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @@ -1 +1,57 @@ | |||
| <view>123</view> | |||
| <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 tt:for="{{list}}" tt:for-index="index" tt:key="index" class="body"> | |||
| <view class="mall"> | |||
| <image class="img" src="../../assets/itemImg/merchantImgCover.png"></image> | |||
| <view class="mallItem"> | |||
| <view class="title">{{item.mallName}}</view> | |||
| </view> | |||
| </view> | |||
| <view class="goExpand" catchtap="expandList" data-index="{{index}}"> | |||
| <view>{{item.merchantVoList.length+'家门店适用'}}</view> | |||
| <image tt:if="{{!item.expand}}" src="../../assets/itemImg/chevron.png" mode="widthFix" | |||
| class="rightArrowDown"> | |||
| </image> | |||
| <image tt:else src="../../assets/itemImg/chevron.png" mode="widthFix" class="rightArrowUp"></image> | |||
| </view> | |||
| <view class="shop" tt:if="{{item.expand}}"> | |||
| <view class='posi' tt:for="{{item.merchantVoList}}" tt:key="index"> | |||
| <view class='posi_logo'> | |||
| <view bindtap='gotoDetail' data-id='{{item.id}}' data-tenantId='{{item.tenantId}}'> | |||
| <image 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 tt:for="{{item.shopVoList}}" tt:key="{{index}}" tt:for-item="itemName"> | |||
| <text>{{itemName.buildingName}}{{itemName.floorName}}--{{itemName.shopNumber}}</text> | |||
| <text class='douhao' tt:if="{{item.shopVoList.length>1}}">,</text> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class="telBox" tt:if="{{item.linkLinePhone}}"> | |||
| <image bindtap='phone' data-merchantLinkPhone='{{item.linkLinePhone}}' class="telImg" | |||
| src="{{teljpgUrl}}" mode="widthFix" /> | |||
| <view class="telText">电话</view> | |||
| </view> | |||
| <view class="certificationBox" tt:if="{{item.latitude&&item.longitude}}" bindtap="goCertification" | |||
| data-id="{{item.id}}"> | |||
| <image class="certificationImg" src="../../assets/imgData/certification.png" mode="widthFix" /> | |||
| <view class="telText">资质</view> | |||
| </view> | |||
| </view> | |||
| <view class="siteBox" tt:if="{{item.latitude&&item.longitude}}" bindtap="goMap" data-item="{{item}}"> | |||
| <view class="siteText">{{item.addr}}</view> | |||
| <image class="siteImg" src="../../assets/imgData/siteImg.png" mode="widthFix" /> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| @@ -1 +1,178 @@ | |||
| /* c:\Users\Holy-Knight-IX\Desktop\Working Space\3.TikTok-MiniPro\ttc\components\shop\shop.ttss */ | |||
| .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 view:nth-child(1) image { | |||
| 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 text { | |||
| font-size: 20rpx !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: 80rpx; | |||
| 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; | |||
| } | |||
| @@ -15,47 +15,49 @@ Component({ | |||
| */ | |||
| data: { | |||
| teljpgUrl: imgurl.teljpg.url, | |||
| showMore:false, | |||
| showMore: false, | |||
| more: "点击查看更多", | |||
| hidden:"hidden", | |||
| hidden: "hidden", | |||
| height: "" | |||
| }, | |||
| /** | |||
| * 组件的方法列表 | |||
| */ | |||
| methods: { | |||
| /** | |||
| * 跳转到门店列表的详情页面 | |||
| */ | |||
| * 跳转到门店列表的详情页面 | |||
| */ | |||
| gotoDetail(e) { | |||
| tt.navigateTo({ | |||
| url: `/pages/index/searchbar/detail/index?id=${e.currentTarget.dataset.id}` | |||
| }) | |||
| }, | |||
| goCertification(e){ | |||
| goCertification(e) { | |||
| tt.navigateTo({ | |||
| url: `/pages/shopCertification/shopCertification?id=${e.currentTarget.dataset.id}` | |||
| }) | |||
| }, | |||
| goFitShop(){ | |||
| goFitShop() { | |||
| tt.navigateTo({ | |||
| url: `/pages/fitShop/fitShop?list=${JSON.stringify(this.data.merchantVoList)}`, | |||
| success: (res) => { | |||
| success: (res) => { | |||
| }, | |||
| fail: (res) => { | |||
| }, | |||
| }); | |||
| }, | |||
| goMap(e){ | |||
| let {latitude,longitude} = e.currentTarget.dataset.item | |||
| console.log(latitude,longitude); | |||
| goMap(e) { | |||
| let { | |||
| latitude, | |||
| longitude | |||
| } = e.currentTarget.dataset.item | |||
| console.log(latitude, longitude); | |||
| tt.openLocation({ | |||
| latitude:Number(latitude), | |||
| longitude:Number(longitude), | |||
| latitude: Number(latitude), | |||
| longitude: Number(longitude), | |||
| scale: 18, | |||
| success() { | |||
| console.log("打开地图成功"); | |||
| @@ -64,11 +66,10 @@ Component({ | |||
| console.log("打开地图失败:", err.errMsg); | |||
| }, | |||
| }); | |||
| }, | |||
| // 点击查看更多 | |||
| more: function () { | |||
| console.log(this.properties.merchantVoList,"merchantVoList"); | |||
| console.log(this.properties.merchantVoList, "merchantVoList"); | |||
| let that = this; | |||
| if (that.data.more == '点击查看更多') { | |||
| this.setData({ | |||
| @@ -92,17 +93,17 @@ Component({ | |||
| phoneNumber: e.target.dataset.merchantlinkphone | |||
| }); | |||
| }, | |||
| }, | |||
| ready: function () { | |||
| let merchantVoList = this.properties.merchantVoList; | |||
| if (merchantVoList.length>0){ | |||
| if (merchantVoList.length > 0) { | |||
| if (merchantVoList.length <= 4) { | |||
| this.setData({ | |||
| height: merchantVoList.length * 140 + 'rpx', | |||
| showMore: false, | |||
| hidden:"hidden" | |||
| hidden: "hidden" | |||
| }) | |||
| } else if (merchantVoList && merchantVoList.length > 4) { | |||
| this.setData({ | |||
| @@ -111,4 +112,4 @@ Component({ | |||
| } | |||
| } | |||
| } | |||
| }); | |||
| }); | |||
| @@ -1,10 +1,9 @@ | |||
| <view class="applyshopBox" bindtap="goFitShop"> | |||
| <view class='applyshop'>适用门店</view> | |||
| <image src="https://formall.oss-accelerate.aliyuncs.com/cimg/chevron.png" mode="widthFix" class="genduoImg"> | |||
| <image src="https://formall.oss-accelerate.aliyuncs.com/cimg/chevron.png" mode="widthFix" class="genduoImg"> | |||
| </image> | |||
| <view class="goShop">{{merchantVoList.length+'家店适用'}}</view> | |||
| </view> | |||
| <!-- style='overflow:{{hidden}};height:{{height}}' --> | |||
| <view class='posi'> | |||
| @@ -22,15 +21,18 @@ | |||
| </view> | |||
| </view> | |||
| <view class="telBox" tt:if="{{merchantVoList[0].linkLinePhone}}"> | |||
| <image bindtap='phone' data-merchantLinkPhone='{{merchantVoList[0].linkLinePhone}}' class="telImg" src="{{teljpgUrl}}" mode="widthFix" /> | |||
| <image bindtap='phone' data-merchantLinkPhone='{{merchantVoList[0].linkLinePhone}}' class="telImg" | |||
| src="{{teljpgUrl}}" mode="widthFix" /> | |||
| <view class="telText">电话</view> | |||
| </view> | |||
| <view class="certificationBox" tt:if="{{merchantVoList[0].latitude&&merchantVoList[0].longitude}}" bindtap="goCertification" data-id="{{merchantVoList[0].id}}"> | |||
| <image class="certificationImg" src="../../assets/imgData/certification.png" mode="widthFix" /> | |||
| <view class="certificationBox" tt:if="{{merchantVoList[0].latitude&&merchantVoList[0].longitude}}" | |||
| bindtap="goCertification" data-id="{{merchantVoList[0].id}}"> | |||
| <image class="certificationImg" src="../../assets/imgData/certification.png" mode="widthFix" /> | |||
| <view class="telText">资质</view> | |||
| </view> | |||
| </view> | |||
| <view class="siteBox" tt:if="{{merchantVoList[0].latitude&&merchantVoList[0].longitude}}" bindtap="goMap" data-item="{{merchantVoList[0]}}"> | |||
| <view class="siteBox" tt:if="{{merchantVoList[0].latitude&&merchantVoList[0].longitude}}" bindtap="goMap" | |||
| data-item="{{merchantVoList[0]}}"> | |||
| <view class="siteText">{{merchantVoList[0].addr}}</view> | |||
| <image class="siteImg" src="../../assets/imgData/siteImg.png" mode="widthFix" /> | |||
| </view> | |||
| @@ -96,7 +96,8 @@ Page({ | |||
| idList: [], | |||
| showBox: false, //手机号授权框 | |||
| spuIdObj: {}, | |||
| mallTenantId: '' | |||
| mallTenantId: '', | |||
| mallList: [] | |||
| }, | |||
| /** | |||
| @@ -598,7 +599,6 @@ Page({ | |||
| couponChannelId: couponChannelId | |||
| } | |||
| }).then(res => { | |||
| console.log(res.data, 'Merchant') | |||
| const keys = Object.keys(res.data) | |||
| const mallList = [] | |||
| keys.forEach(item => { | |||
| @@ -606,11 +606,14 @@ Page({ | |||
| const obj = { | |||
| tenantId: arr[0], | |||
| mallName: arr[1], | |||
| merchantVoList: res.data[item] | |||
| merchantVoList: res.data[item], | |||
| expand: false | |||
| } | |||
| mallList.push(obj) | |||
| }) | |||
| console.log(mallList, 'mallList'); | |||
| this.setData({ | |||
| mallList: mallList | |||
| }) | |||
| // if (res.data && res.data.length) { | |||
| // let merchantVoList = res.data | |||
| // let idList = [] | |||
| @@ -136,7 +136,7 @@ | |||
| <!-- 适用门店 --> | |||
| <!-- <store merchantVoList="{{merchantVoList}}" tt:if="{{data.type!=12}}"></store> --> | |||
| <shop></shop> | |||
| <shop tt:if="{{mallList.length>0}}" mallList="{{mallList}}"></shop> | |||
| <view class='notes'> | |||
| <view class="notesH">购买须知</view> | |||
| @@ -60,6 +60,46 @@ Page({ | |||
| } | |||
| }, | |||
| getCouponMerchant(couponChannelId) { //获取适用门店 | |||
| 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 | |||
| }) | |||
| // 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) //获取推荐列表 | |||
| // } | |||
| // this.setData({ | |||
| // merchantVoList: res.data | |||
| // }) | |||
| }) | |||
| }, | |||
| getHtml(couponOrderId) { | |||
| Http.get({ | |||
| url: config.api.couponHtmlDetailForPkg, | |||
| @@ -1,9 +1,10 @@ | |||
| { | |||
| "navigationBarTitleText": "使用优惠券", | |||
| "navigationBarBackgroundColor": "#fff", | |||
| "navigationBarTextStyle": "black", | |||
| "usingComponents": { | |||
| "navbar": "../../../components/navbar/navbar", | |||
| "store":"../../../components/store/index" | |||
| } | |||
| "navigationBarTitleText": "使用优惠券", | |||
| "navigationBarBackgroundColor": "#fff", | |||
| "navigationBarTextStyle": "black", | |||
| "usingComponents": { | |||
| "navbar": "../../../components/navbar/navbar", | |||
| "store": "../../../components/store/index", | |||
| "shop": "../../../components/shop/shop" | |||
| } | |||
| } | |||
| @@ -1,11 +1,11 @@ | |||
| <view class="BoxBg"> | |||
| <!-- <navbar back home text="使用优惠券" background='#fff' color="#000"></navbar> | |||
| <view style="height:{{navigationBarHeight}} "></view> --> | |||
| <view class="container"> | |||
| <view class="logoBox"> | |||
| <image src="{{data.coverImg}}" class="logo" mode='aspectFill'/> | |||
| <image src="{{data.coverImg}}" class="logo" mode='aspectFill' /> | |||
| </view> | |||
| <view class="quanDataBox"> | |||
| <view class="qianTitle">{{data.title}}</view> | |||
| @@ -13,7 +13,7 @@ | |||
| <view class="payBox"> | |||
| <view class="selling">¥{{data.couponPrice/100}}</view> | |||
| <view class="original">¥{{data.price/100}}</view> | |||
| <view class="past" tt:if="{{data.autoRefund==1}}" >过期不退款</view> | |||
| <view class="past" tt:if="{{data.autoRefund==1}}">过期不退款</view> | |||
| </view> | |||
| <view class="timevalidity">有效期至:{{expiredTime}}</view> | |||
| <view class="manjian" tt:if="{{data.usePrice}}">满{{data.usePrice/100}}元可用</view> | |||
| @@ -23,7 +23,8 @@ | |||
| <image tt:if="{{couponorderstatus==1}}" src="../../../assets/itemImg/wm01.jpg" mode='widthFix'></image> | |||
| <image tt:if="{{couponorderstatus==2}}" src="../../../assets/itemImg/wm02.jpg" mode='widthFix'></image> | |||
| <image tt:if="{{couponorderstatus==3}}" src="../../../assets/itemImg/wm03.jpg" mode='widthFix'></image> | |||
| <image tt:if="{{couponorderstatus==0&&validStatus==0}}" src="../../../assets/itemImg/wm04.jpg" mode='widthFix'></image> | |||
| <image tt:if="{{couponorderstatus==0&&validStatus==0}}" src="../../../assets/itemImg/wm04.jpg" | |||
| mode='widthFix'></image> | |||
| <view class="panel" tt:if="{{couponorderstatus==0&&validStatus!=0}}"> | |||
| <view class="rqImg"> | |||
| <canvas canvas-id="qrcode" style="width: 420rpx;; height: 420rpx;margin: 28rpx auto;" /> | |||
| @@ -34,24 +35,25 @@ | |||
| <view class="upDataRq">点一点刷新二维码</view> | |||
| </view> | |||
| <view class="coedTiem" tt:if="{{!showhieRq&&expiredSeconds>1}}">二维码在 | |||
| <text style="color:red">{{expiredSeconds}}s</text> | |||
| 后失效 | |||
| <text style="color:red">{{expiredSeconds}}s</text> | |||
| 后失效 | |||
| </view> | |||
| <view class="barnum"> | |||
| <view class="barnumtext">{{showIdFalg?code:codeS}}</view> | |||
| <image class="barnumImg" src="../../../assets/images/password.png" bindtap="showId"></image> | |||
| <image class="barnumImg" src="../../../assets/images/password.png" bindtap="showId"></image> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class="shopData"> | |||
| <store merchantVoList="{{data.merchantVoList}}"></store> | |||
| </view> | |||
| <view class="shopData"> | |||
| <shop tt:if="{{mallList.length>0}}" mallList="{{mallList}}"></shop> | |||
| </view> | |||
| <image class="line" mode="widthFix" src="../../../assets/itemImg/topLine.png" /> | |||
| <view class="note"> | |||
| <view style='height:60rpx;line-height:60rpx;'> | |||
| <text class="shiji">实付金额:</text> | |||
| <text style='font-size:24rpx;text-align:right;color: #FF4949;float: right;margin-right: 50rpx;'>元</text> | |||
| <text | |||
| style='font-size:24rpx;text-align:right;color: #FF4949;float: right;margin-right: 50rpx;'>元</text> | |||
| <text class='moneys'>{{data.couponPrice/100}}</text> | |||
| </view> | |||
| <view class="orderDate" tt:if="{{data.couponOrderStatus==0}}">{{createDate}}</view> | |||
| @@ -65,7 +67,7 @@ | |||
| <view class="notesText">购买须知</view> | |||
| <text class="introduce" tt:if="{{curHtml==''}}"> {{data.remark}}</text> | |||
| <!-- <text class="notesText" tt:if="{{curHtml==""}}">{{detailObj.remark}}</text> --> | |||
| <rich-text class="rich_text" tt:if="{{curHtml!=''}}" nodes="{{curHtml}}"></rich-text> | |||
| <rich-text class="rich_text" tt:if="{{curHtml!=''}}" nodes="{{curHtml}}"></rich-text> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| @@ -34,7 +34,7 @@ Page({ | |||
| canvasScale: 1.0, // 画布放大的倍数,因为如果保存的是一倍的分享图片的话,分享图会有点虚。所以保存的时候,canvasScale设置为2.0,wxss 里面的left: 500%;打开注释。就可保存两倍的分享图 | |||
| }, | |||
| //关闭海报 | |||
| closePoste: function() { | |||
| closePoste: function () { | |||
| this.setData({ | |||
| showpost: false | |||
| }) | |||
| @@ -47,13 +47,13 @@ Page({ | |||
| /** | |||
| * 生命周期函数--监听页面加载 | |||
| */ | |||
| onLoad: function(options) { | |||
| onLoad: function (options) { | |||
| let that = this; | |||
| if (options && options.id) { | |||
| this.setData({ | |||
| id: options.id | |||
| }); | |||
| that.getList(options.id); | |||
| that.getList(options.id, options.mallTenantId); | |||
| that.getCouponList(options.id); | |||
| this.setData({ | |||
| currentTab: 0 | |||
| @@ -63,7 +63,7 @@ Page({ | |||
| /** | |||
| * 拨打电话 | |||
| */ | |||
| phone: function(e) { | |||
| phone: function (e) { | |||
| let that = this; | |||
| tt.makePhoneCall({ | |||
| phoneNumber: e.target.dataset.merchantlinkphone | |||
| @@ -72,7 +72,7 @@ Page({ | |||
| /** | |||
| * 显示分享弹框 | |||
| */ | |||
| showshare: function() { | |||
| showshare: function () { | |||
| this.setData({ | |||
| isshare: true, | |||
| }) | |||
| @@ -80,13 +80,13 @@ Page({ | |||
| /** | |||
| * 隐藏分享弹框 | |||
| */ | |||
| hidemodal: function() { | |||
| hidemodal: function () { | |||
| this.setData({ | |||
| isshare: false, | |||
| }) | |||
| }, | |||
| //滑动切换 | |||
| swiperTabView: function(e) { | |||
| swiperTabView: function (e) { | |||
| this.setData({ | |||
| currentTab: e.detail.current | |||
| }); | |||
| @@ -100,32 +100,32 @@ Page({ | |||
| url: `/pages/canvas/index?merchantId=${this.data.id}` | |||
| }) | |||
| }, */ | |||
| showPoster: function() { | |||
| showPoster: function () { | |||
| //跳转到海报生成页 | |||
| let that = this; | |||
| Http.get({ | |||
| url: config.api.checkUserStatus, | |||
| data: { | |||
| token: app.globalData.token | |||
| } | |||
| }).then(res => { | |||
| tt.navigateTo({ | |||
| url: `/pages/canvas/index?merchantId=${that.data.id}` | |||
| }) | |||
| }).catch(err => { | |||
| console.log(err) | |||
| if (err.code == 11004) { | |||
| // 用户昵称未授权 | |||
| tt.redirectTo({ | |||
| url: `/pages/getuserinfo/index?couponChannelId=${that.data.id}&fromflag=poster` | |||
| }) | |||
| } | |||
| Http.get({ | |||
| url: config.api.checkUserStatus, | |||
| data: { | |||
| token: app.globalData.token | |||
| } | |||
| }).then(res => { | |||
| tt.navigateTo({ | |||
| url: `/pages/canvas/index?merchantId=${that.data.id}` | |||
| }) | |||
| }).catch(err => { | |||
| console.log(err) | |||
| if (err.code == 11004) { | |||
| // 用户昵称未授权 | |||
| tt.redirectTo({ | |||
| url: `/pages/getuserinfo/index?couponChannelId=${that.data.id}&fromflag=poster` | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| //点击切换 | |||
| clickTab: function(e) { | |||
| clickTab: function (e) { | |||
| if (this.data.currentTab === e.target.dataset.current) { | |||
| return false; | |||
| } else { | |||
| @@ -137,24 +137,25 @@ Page({ | |||
| /** | |||
| * 获取商户详情 | |||
| */ | |||
| getList: function(id) { | |||
| getList: function (id, mallTenantId) { | |||
| let that = this; | |||
| let data; | |||
| data = { | |||
| pageNum: that.data.page, | |||
| pageSize: 15, | |||
| id: id | |||
| id: id, | |||
| mallTenantId: mallTenantId | |||
| } | |||
| Http.get({ | |||
| url: config.api.merchantList, | |||
| data: data | |||
| }).then(res => { | |||
| if (res.data.list.length==0){ | |||
| if (res.data.list.length == 0) { | |||
| tt.showModal({ | |||
| title: '提示', | |||
| content: '此商户已经停用', | |||
| confirmText: "返回", | |||
| showCancel:false, | |||
| showCancel: false, | |||
| success: function (res) { | |||
| if (res.confirm) { | |||
| tt.navigateBack({ | |||
| @@ -185,12 +186,12 @@ Page({ | |||
| * 获取商户活动信息 券类型(1.满减券,2.代金券,3.团购券,4.礼品券,5.停车券,6.多商户券,8.砍价券,9.团购券,50.积分券,51.积分停车券 100.消费卡) | |||
| * 投放频道:(1.列表, 2.限时抢购, 3. banner图 4. 游戏 5.卡频道 6.砍价频道 7.拼团频道 8专题) | |||
| */ | |||
| getCouponList: function(id) { | |||
| getCouponList: function (id) { | |||
| let that = this; | |||
| let data; | |||
| data = { | |||
| status: 0, | |||
| merchantId: id, | |||
| // merchantId: id, | |||
| pageNum: that.data.page, | |||
| pageSize: 15, | |||
| } | |||
| @@ -201,7 +202,7 @@ Page({ | |||
| that.setData({ | |||
| couponList: res.data.page.list, | |||
| }) | |||
| // if (res.data && res.data.qrCode){ | |||
| // that.setData({ | |||
| // qrCode: res.data.qrCode, | |||
| @@ -220,16 +221,16 @@ Page({ | |||
| /** | |||
| * 获取多商铺列表 | |||
| */ | |||
| onShareAppMessage: function(res) { | |||
| onShareAppMessage: function (res) { | |||
| app.globalData.previewFlag = true | |||
| let that = this; | |||
| let shareObj = { | |||
| title: that.data.data.merchantName, | |||
| path: `/pages/index/index?id=${that.data.id}&frommd=md&type=md`, | |||
| success: function(res) { | |||
| success: function (res) { | |||
| if (res.errMsg == 'shareAppMessage:ok') {} | |||
| }, | |||
| fail: function(error) { | |||
| fail: function (error) { | |||
| if (res.errMsg == 'shareAppMessage:fail cancel') {} else if (res.errMsg == 'shareAppMessage:fail') {} | |||
| } | |||
| }; | |||
| @@ -51,7 +51,8 @@ Page({ | |||
| cardIf: false, | |||
| contentType: 0, | |||
| orderFlag: false, //判断是不是线上配送 | |||
| tenantId: '' | |||
| tenantId: '', | |||
| mallList: [] | |||
| }, | |||
| handleRefund(event) { | |||
| const { | |||
| @@ -144,6 +145,42 @@ Page({ | |||
| }) | |||
| }, | |||
| getCouponMerchant() { //获取适用门店 | |||
| Http.get({ | |||
| url: config.api.orderDetail, | |||
| data: { | |||
| orderId: this.data.orderId, | |||
| mallTenantId: this.data.mallTenantId || '' | |||
| } | |||
| }).then(res => { | |||
| const couponChannelId = res.data.orders[0].couponChannelId | |||
| 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: false | |||
| } | |||
| mallList.push(obj) | |||
| }) | |||
| this.setData({ | |||
| mallList: mallList | |||
| }) | |||
| }) | |||
| }).catch(err => { | |||
| }) | |||
| }, | |||
| goDetail() { | |||
| tt.navigateTo({ | |||
| url: `/pages/coupon/detail/index?couponChannelId=${this.data.order.couponChannelId}&mallTenantId=${this.data.mallTenantId}`, | |||
| @@ -648,7 +685,6 @@ Page({ | |||
| */ | |||
| onLoad: function (options) { | |||
| this.getSeUrl() | |||
| if (options.mallTenantId) { | |||
| this.setData({ | |||
| mallTenantId: options.mallTenantId, | |||
| @@ -664,7 +700,6 @@ Page({ | |||
| // } | |||
| that.setData({ | |||
| orderId: options.orderId, | |||
| }); | |||
| tt.hideShareMenu() | |||
| if (options.cardIf) { //转赠 展示不需 | |||
| @@ -676,8 +711,7 @@ Page({ | |||
| title: "加载中" | |||
| }); | |||
| this.getCouponMerchant() //获取可用商户 | |||
| }, | |||
| onShow: function () { | |||
| let that = this; | |||
| @@ -1,9 +1,10 @@ | |||
| { | |||
| "navigationBarTitleText": "订单详情", | |||
| "navigationBarBackgroundColor": "#fff", | |||
| "navigationBarTextStyle": "black", | |||
| "usingComponents": { | |||
| "navbar": "../../../components/navbar/navbar", | |||
| "store": "../../../components/store/index" | |||
| } | |||
| } | |||
| "navigationBarBackgroundColor": "#fff", | |||
| "navigationBarTextStyle": "black", | |||
| "usingComponents": { | |||
| "navbar": "../../../components/navbar/navbar", | |||
| "store": "../../../components/store/index", | |||
| "shop": "../../../components/shop/shop" | |||
| } | |||
| } | |||
| @@ -161,7 +161,7 @@ | |||
| </view> | |||
| </view> | |||
| <!-- 适用门店 --> | |||
| <store merchantVoList="{{order.merchantVoList}}" tt:if="{{order.type!=12}}"></store> | |||
| <shop tt:if="{{mallList.length>0}}" mallList="{{mallList}}"></shop> | |||
| <vieW class="groupTitleBox"> | |||
| <view class="groupTitle" tt:if="{{order.itemGroup.length>0}}">团购详情</view> | |||
| @@ -1,24 +1,34 @@ | |||
| { | |||
| "setting": { | |||
| "urlCheck": false, | |||
| "es6": true, | |||
| "newFeature": false, | |||
| "postcss": false, | |||
| "mockUpdate": true, | |||
| "minified": false, | |||
| "autoPush": false, | |||
| "scripts": false, | |||
| "mockLogin": false, | |||
| "autoCompile": true, | |||
| "localPlugins": false, | |||
| "IDEPreviewHotRestartCache": false | |||
| }, | |||
| "appid": "ttde7ca8c141425a2301", | |||
| "projectname": "tt富茂C", | |||
| "condition": { | |||
| "miniprogram": { | |||
| "current": -1, | |||
| "list": [] | |||
| "setting": { | |||
| "urlCheck": false, | |||
| "es6": true, | |||
| "newFeature": false, | |||
| "postcss": false, | |||
| "mockUpdate": true, | |||
| "minified": false, | |||
| "autoPush": false, | |||
| "scripts": false, | |||
| "mockLogin": false, | |||
| "autoCompile": true, | |||
| "localPlugins": false, | |||
| "IDEPreviewHotRestartCache": false | |||
| }, | |||
| "appid": "ttde7ca8c141425a2301", | |||
| "projectname": "tt富茂C", | |||
| "condition": { | |||
| "miniprogram": { | |||
| "current": -1, | |||
| "list": [ | |||
| { | |||
| "id": 1670551556787, | |||
| "name": "pages/coupon/detail/index", | |||
| "pathName": "pages/coupon/detail/index", | |||
| "query": "couponChannelId=760764417613029376&couponId=760349248090595328", | |||
| "scene": "990001", | |||
| "launchFrom": "scan", | |||
| "location": "qr_code" | |||
| } | |||
| ] | |||
| } | |||
| } | |||
| } | |||