Browse Source

uploaf

shopAdd
HolyKnightIX 2 years ago
parent
commit
934051fc70
16 changed files with 439 additions and 50 deletions
  1. BIN
      assets/images/certification.png
  2. BIN
      assets/images/chevron.png
  3. BIN
      assets/images/merchantImgCover.png
  4. BIN
      assets/images/siteImg.png
  5. +92
    -0
      components/shop/shop.js
  6. +3
    -0
      components/shop/shop.json
  7. +58
    -0
      components/shop/shop.wxml
  8. +205
    -0
      components/shop/shop.wxss
  9. +13
    -10
      ext.json
  10. +15
    -15
      pages/coupon/detail/index.js
  11. +1
    -0
      pages/coupon/detail/index.json
  12. +2
    -1
      pages/coupon/detail/index.wxml
  13. +1
    -2
      pages/dateLsit/dateLsit.wxss
  14. +36
    -12
      pages/spellGroup/mySpellGroup/index.js
  15. +2
    -1
      pages/spellGroup/mySpellGroup/index.json
  16. +11
    -9
      pages/spellGroup/mySpellGroup/index.wxml

BIN
assets/images/certification.png View File

Before After
Width: 32  |  Height: 32  |  Size: 979 B

BIN
assets/images/chevron.png View File

Before After
Width: 16  |  Height: 30  |  Size: 376 B

BIN
assets/images/merchantImgCover.png View File

Before After
Width: 200  |  Height: 200  |  Size: 8.3 KiB

BIN
assets/images/siteImg.png View File

Before After
Width: 32  |  Height: 32  |  Size: 985 B

+ 92
- 0
components/shop/shop.js View File

@@ -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() {

}
})

+ 3
- 0
components/shop/shop.json View File

@@ -0,0 +1,3 @@
{
"component": true
}

+ 58
- 0
components/shop/shop.wxml View File

@@ -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>

+ 205
- 0
components/shop/shop.wxss View File

@@ -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;
}

+ 13
- 10
ext.json View File

@@ -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": {


+ 15
- 15
pages/coupon/detail/index.js View File

@@ -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 = {};


+ 1
- 0
pages/coupon/detail/index.json View File

@@ -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": "",


+ 2
- 1
pages/coupon/detail/index.wxml View File

@@ -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">


+ 1
- 2
pages/dateLsit/dateLsit.wxss View File

@@ -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);
}
}

+ 36
- 12
pages/spellGroup/mySpellGroup/index.js View File

@@ -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({
})
}
})
},
/**
* 生命周期函数--监听页面显示


+ 2
- 1
pages/spellGroup/mySpellGroup/index.json View File

@@ -3,6 +3,7 @@
"enablePullDownRefresh": true,
"usingComponents": {
"navbar": "../../../../components/navbar/navbar",
"store": "../../../../components/store/index"
"store": "../../../../components/store/index",
"shop": "../../../../components/shop/shop"
}
}

+ 11
- 9
pages/spellGroup/mySpellGroup/index.wxml View File

@@ -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>


Loading…
Cancel
Save