diff --git a/api/common.js b/api/common.js
index 07b215c..225ab73 100644
--- a/api/common.js
+++ b/api/common.js
@@ -13,11 +13,7 @@ const commonApi = {
timePeriods:(community_id)=>request.get(`/api/community-time-periods/community/${community_id}`)
},
address:{
- list(commityId){
- const data = {};
- if(commityId){
- data.community_id = commityId;
- }
+ list(data){
return request.get('/api/address',data)
},
add:(data)=>request.post('/api/address',data),
diff --git a/api/request.js b/api/request.js
index 561e1b4..63c0830 100644
--- a/api/request.js
+++ b/api/request.js
@@ -7,6 +7,7 @@ if(envVersion=='develop'){
baseUrl = 'https://api.beefast.co'
}
let app = getApp();
+let navLoginPromise = null;
const sendRequest = (options)=>{
@@ -32,13 +33,24 @@ const sendRequest = (options)=>{
}else if(result.statusCode==401){
const pages = getCurrentPages();
const currentPages = pages[pages.length-1];
- if(currentPages&¤tPages.route.indexOf('pages/login')>-1){
+
+ if(navLoginPromise){
return;
}
if(app)app = getApp();
const code = app?.globalData?.shared_user_code||'';
- wx.navigateTo({
+ if(currentPages&¤tPages.route.indexOf('pages/login')>-1){
+ //用户先打开了小程序,然后又点开了朋友的分享页
+ navLoginPromise = wx.redirectTo({
+ url: '/pages/login/login?shared_user_code='+code,
+ });
+ return;
+ }
+ navLoginPromise = wx.navigateTo({
url: '/pages/login/login?shared_user_code='+code,
+ });
+ navLoginPromise.then(()=>{
+ navLoginPromise = null;
})
}else{
wx.showToast({
diff --git a/api/shop.js b/api/shop.js
index 7ab2e4e..9fff943 100644
--- a/api/shop.js
+++ b/api/shop.js
@@ -12,7 +12,7 @@ export default {
return request.get(`/api/merchant/${id}`,data);
},
product:{
- list:(merchant_id)=>request.get('/api/merchant/product/list',merchant_id?{merchant_id}:{}),
+ list:(data)=>request.get('/api/merchant/product/list',data),
detail:(product_id)=>request.get(`/api/merchant/product/${product_id}`)
},
orderList:(data)=>request.get('/api/merchant-pay',data),
diff --git a/app.js b/app.js
index dac99d6..c29f628 100644
--- a/app.js
+++ b/app.js
@@ -13,7 +13,7 @@ App({
wx.onAppRoute((res)=>{
const page = getCurrentPages();
const currentPage = page[page.length-1];
- if(currentPage){
+ if(currentPage&&!currentPage.useCustomShare){
currentPage.onShareAppMessage = async()=>{
if(!(this.globalData.appConfig&&this.globalData.appConfig.share_card_title)){
await this.getAppConfig();
@@ -21,10 +21,14 @@ App({
if(!(this.globalData.userInfo&&this.globalData.userInfo.user_code)){
await this.getUserInfo();
}
+ let path = '/pages/help/index/index';
+ if(this.globalData.userInfo.user_code){
+ path = `${path}?shared_user_code=${this.globalData.userInfo.user_code}`;
+ }
return {
title:this.globalData.appConfig.share_card_title,
imageUrl:'/assets/imgs/login/share.jpg',
- path:`/pages/help/index/index?shared_user_code=${this.globalData.userInfo.user_code||''}`
+ path:path
}
}
}
diff --git a/app.wxss b/app.wxss
index 84aed10..a64df77 100644
--- a/app.wxss
+++ b/app.wxss
@@ -29,7 +29,7 @@ button .icon,button label{
vertical-align: middle;
}
button:not([size=mini]){
- width:auto!important;
+ width:auto;
padding:30rpx 25rpx;
font-size: 36rpx;
}
@@ -214,6 +214,13 @@ page-container .content{
padding-bottom:calc(constant(safe-area-inset-bottom) + 24rpx);
padding-bottom:calc(env(safe-area-inset-bottom) + 24rpx);
}
+.bottom-bar.float,.bottom-bar-v2.float{
+ padding:0;
+ border:0;
+ margin: 0 24rpx;
+ margin-bottom:calc(constant(safe-area-inset-bottom) + 24rpx);
+ margin-bottom:calc(env(safe-area-inset-bottom) + 24rpx);
+}
.custom-scroll-view{
height:100vh;
display: flex;
diff --git a/assets/icon/navbar/back-round.png b/assets/icon/navbar/back-round.png
new file mode 100644
index 0000000..8987d76
Binary files /dev/null and b/assets/icon/navbar/back-round.png differ
diff --git a/assets/icon/shop/share.png b/assets/icon/shop/share.png
new file mode 100644
index 0000000..c660475
Binary files /dev/null and b/assets/icon/shop/share.png differ
diff --git a/components/navbar/index.js b/components/navbar/index.js
index edef0b9..a0e092b 100644
--- a/components/navbar/index.js
+++ b/components/navbar/index.js
@@ -1,5 +1,8 @@
// components/navBar.js
Component({
+ options:{
+ multipleSlots:true
+ },
/**
* 组件的属性列表
diff --git a/components/navbar/index.json b/components/navbar/index.json
index c07b0d2..8b37bbf 100644
--- a/components/navbar/index.json
+++ b/components/navbar/index.json
@@ -1,5 +1,5 @@
{
"component": true,
"usingComponents": {},
- "styleIsolation": "shared"
+ "styleIsolation": "apply-shared"
}
\ No newline at end of file
diff --git a/components/navbar/index.wxml b/components/navbar/index.wxml
index fbd66c3..aac06c3 100644
--- a/components/navbar/index.wxml
+++ b/components/navbar/index.wxml
@@ -3,13 +3,17 @@
-
+
+
+
+
{{backTitle}}
+
diff --git a/components/navbar/index.wxss b/components/navbar/index.wxss
index 6cc5fad..46aaacd 100644
--- a/components/navbar/index.wxss
+++ b/components/navbar/index.wxss
@@ -1,5 +1,8 @@
/* components/navBar.wxss */
-.nav-bar{}
+.nav-bar{
+ transition-duration: .4s;
+ overflow: hidden;
+}
.nav-bar .title{
font-size: 36rpx;
font-weight: 600;
@@ -15,6 +18,8 @@
flex:1;
display: flex;
align-items: center;
+ text-overflow: ellipsis;
+ max-width: calc(100vw - 140rpx);
}
.nav-bar-content .left .btns{
display: inline-flex;
@@ -29,10 +34,11 @@
/*单一一个返回或者加上 backTitle的时候*/
.nav-bar-content .back{
width:40rpx;height:40rpx;
- padding:12rpx 14rpx 12rpx 0;
+ padding:12rpx 14rpx 12rpx 12rpx;
}
.nav-bar-content .back.home{
width:56rpx;height:56rpx;
+ padding:0;
}
.nav-bar-content .left .btns.border{
border: 1.2px solid #D8D8D8;
@@ -46,6 +52,8 @@
font-size: 36rpx;
font-weight: 600;
white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
.nav-bar-content .share{
width:30rpx;height:34rpx;
diff --git a/pages/help/address/index/index.js b/pages/help/address/index/index.js
index 7488e77..d1e6cf0 100644
--- a/pages/help/address/index/index.js
+++ b/pages/help/address/index/index.js
@@ -20,7 +20,8 @@ Page({
onLoad(options) {
this.setData({
communityId:options.community_id,
- communityName:options.community_name
+ communityName:options.community_name,
+ type:options.type
})
},
@@ -36,7 +37,14 @@ Page({
*/
onShow() {
wx.showNavigationBarLoading();
- commonApi.address.list(this.data.communityId).then((data)=>{
+ let params = {};
+ if(this.data.type=='pickup'){
+ params.community_id = this.data.communityId;
+ params.address_type = 'PICKUP';
+ }else{
+ params.address_type = 'COMMON';
+ }
+ commonApi.address.list(params).then((data)=>{
wx.hideNavigationBarLoading();
this.setData({
addressList:data,
diff --git a/pages/help/index/index.js b/pages/help/index/index.js
index 57f238c..2ef2f4a 100644
--- a/pages/help/index/index.js
+++ b/pages/help/index/index.js
@@ -117,7 +117,10 @@ Page({
}
},
getAddress(communityId){
- commonApi.address.list(communityId).then((data)=>{
+ commonApi.address.list({
+ community_id:communityId,
+ address_type:'PICKUP'
+ }).then((data)=>{
let currentAddress = data[0]||{};
data.map((item,index)=>{
if(item.is_default){
@@ -340,7 +343,7 @@ Page({
if(app.globalData.accessToken){
if(this.data.currentCommunity&&this.data.currentCommunity.id){
wx.navigateTo({
- url: `/pages/help/address/index/index?community_id=${this.data.currentCommunity.id}&community_name=${this.data.currentCommunity.name}`,
+ url: `/pages/help/address/index/index?type=pickup&community_id=${this.data.currentCommunity.id}&community_name=${this.data.currentCommunity.name}`,
})
}else{
wx.showToast({
diff --git a/pages/help/package/index.js b/pages/help/package/index.js
index 00e4b76..abb7ee5 100644
--- a/pages/help/package/index.js
+++ b/pages/help/package/index.js
@@ -214,6 +214,13 @@ Page({
},
manuallyAdd(){
let stationNames = this.data.stationList.map((item)=>item.name);
+ if(stationNames.length==0){
+ wx.showToast({
+ icon:'none',
+ title: '该小区未配置驿站',
+ })
+ return;
+ }
wx.showActionSheet({
itemList: stationNames,
success:(res)=>{
diff --git a/pages/my/promation/activities/index.js b/pages/my/promation/activities/index.js
index f082bd8..f841ee7 100644
--- a/pages/my/promation/activities/index.js
+++ b/pages/my/promation/activities/index.js
@@ -20,27 +20,20 @@ Page({
* 生命周期函数--监听页面加载
*/
onLoad(options) {
+ const { miniProgram } = wx.getAccountInfoSync();
+ const envVersion = miniProgram.envVersion;
+ if(envVersion=='develop'){
+ this.setData({
+ activityId:2
+ })
+ return;
+ }
this.setData({
- activityId:options.id||2
+ activityId:options.id
});
},
getActivityDetail(){
- this.setData({
- detailLoading:true
- })
- commonApi.activities.detail(this.data.activityId).then((data)=>{
- this.setData({
- detailLoading:false,
- getting:false
- })
- this.setData({
- detail:data
- })
- }).catch(()=>{
- this.setData({
- detailLoading:false
- })
- })
+
},
getActivity(){
this.setData({
@@ -80,15 +73,38 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow() {
- this.getActivityDetail();
- userApi.coupon.check(this.data.activityId).then((data)=>{
+ this.setData({
+ detailLoading:true
+ })
+ commonApi.activities.detail(this.data.activityId).then((data)=>{
+ this.setData({
+ detailLoading:false,
+ getting:false,
+ detail:data
+ });
+ return userApi.coupon.check(this.data.activityId);
+ }).then((data)=>{
if(!data.can_receive){
this.setData({
isShowModal:true,
errorMsg:data.message
})
}
+ }).catch((res)=>{
+ this.setData({
+ detailLoading:false
+ })
})
+
+
+ // userApi.coupon.check(this.data.activityId).then((data)=>{
+ // if(!data.can_receive){
+ // this.setData({
+ // isShowModal:true,
+ // errorMsg:data.message
+ // })
+ // }
+ // })
},
/**
diff --git a/pages/shop/detail/index.js b/pages/shop/detail/index.js
index 1d05eb7..291ba08 100644
--- a/pages/shop/detail/index.js
+++ b/pages/shop/detail/index.js
@@ -1,5 +1,6 @@
import shopApi from '../../../api/shop';
import userApi from '../../../api/user';
+import {rpxToPx} from '../../../utils/util'
const app = getApp();
@@ -19,7 +20,13 @@ Page({
scrollViewHeight:0,
windowInfo:{},
- markdown:null
+ markdown:null,
+
+ productInfoMD:{},
+ productGuideMD:{},
+
+ scrollOverTop:false,
+ navBarHeight:0
},
showConfirm(event){
@@ -40,6 +47,9 @@ Page({
// }).catch(()=>{
this.getDetail();
// })
+ this.createSelectorQuery().select('#navBar').boundingClientRect((res)=>{
+ this.data.navBarHeight = res.height;
+ }).exec();
},
getDetail(lng,lat){
shopApi.product.detail(this.data.productId,lng,lat).then((data)=>{
@@ -51,7 +61,9 @@ Page({
}
}
this.setData({
- detail:data
+ detail:data,
+ productInfoMD:app.towxml('## 详情 \n- 第一项','markdown'),
+ productGuideMD:app.towxml('## 须知 \n- 第一项','markdown')
});
});
},
@@ -65,9 +77,21 @@ Page({
},
makePhoneCall(){
wx.makePhoneCall({
- phoneNumber:this.data.detail.phone,
+ phoneNumber:this.data.detail.merchant.phone,
})
},
+ scrollViewScroll(event){
+
+ if(event.detail.scrollTop+this.data.navBarHeight>rpxToPx(500)){
+ this.setData({
+ scrollOverTop:true
+ })
+ }else{
+ this.setData({
+ scrollOverTop:false
+ })
+ }
+ },
/**
* 生命周期函数--监听页面初次渲染完成
*/
@@ -113,7 +137,12 @@ Page({
/**
* 用户点击右上角分享
*/
+ useCustomShare:true,
onShareAppMessage() {
-
+ return {
+ title:this.data.detail.name,
+ imageUrl:this.data.detail.optimized_image_url,
+ path:`/pages/shop/detail/index?id=${this.data.productId}&shared_user_code=${app.globalData.userInfo.user_code||''}`
+ }
}
})
\ No newline at end of file
diff --git a/pages/shop/detail/index.wxml b/pages/shop/detail/index.wxml
index 77631c4..eaa8667 100644
--- a/pages/shop/detail/index.wxml
+++ b/pages/shop/detail/index.wxml
@@ -1,53 +1,84 @@
-
-
-
-
-
- {{detail.name}}
-
- 定时达
- 已售100丨自提
-
-
-
-
-
-
- 仙人模斗
- 七栋二单元
+
+
+
+
+
+
+
-
-
-
-
- 配送地址
-
- 请选择收货地址
-
-
-
- 配送地址
-
-
-
- 朝阳时代西锦12栋1单元2072
+
+ {{detail.name}}
+
+ 定时达
+ 已售100丨自提
+
+
+
+
+
+
+ {{detail.merchant.name}}
+ {{detail.merchant.address}}
+
+
+
-
-
- 周先生 18583236782
+
+ 配送地址
+
+ 请选择收货地址
+
+
+
+ 配送地址
+
+
+
+ 朝阳时代西锦12栋1单元2072
+
+
+
+ 周先生 18583236782
+
+
-
-
-
-
- 自提点
-
-
-
-
- 朝阳时代西锦12栋1单元2072
+
+
+ 自提点
+
+
+
+
+ 朝阳时代西锦12栋1单元2072
+
+
-
+
+
+ 商品详情
+
+
+
+
+
+ 购买须知
+
+
+
+
+
+
+
+
+
+
+
+ {{detail.sale_price}}
+ 赠蜂蜜{{detail.gift_points}}克
+
diff --git a/pages/shop/detail/index.wxss b/pages/shop/detail/index.wxss
index e69baef..f522e3b 100644
--- a/pages/shop/detail/index.wxss
+++ b/pages/shop/detail/index.wxss
@@ -1,3 +1,12 @@
+.nav-bar{
+ z-index:100;
+ position: relative;
+}
+.custom-scroll-view{
+ position: absolute;
+ width: 100%;
+ top:0;left:0;
+}
.swiper-container{
height:600rpx;
position: relative;
@@ -50,15 +59,34 @@
top:0;left:0;
z-index: -1;
}
+.top .share{
+ position: absolute;
+ bottom:24rpx;right:24rpx;
+ width:66rpx;height:66rpx;
+ background-color:rgba(0, 0, 0, 0.6);
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ padding:0;
+ justify-content: center;
+}
+.top .share .icon{
+ width:54rpx;height:52rpx;
+
+}
+.product-info{
+ padding-top:20rpx;
+}
.product-info .p-name{
- font-size: 34rpx;
+ font-size: 36rpx;
+ line-height: 56rpx;
font-weight: 600;
}
.product-info .info{
display: flex;
align-items: center;
font-size: 26rpx;
- margin-top:32rpx;
+ margin-top:22rpx;
}
.product-info .info .tag{
border: 1.2rpx solid rgba(255, 140, 18, 0.5);
@@ -69,6 +97,7 @@
.product-info .info .desc{
flex:1;
margin-left:14rpx;
+ color:#888888;
}
.product-info .spliter{
margin:30rpx 0;
@@ -85,6 +114,12 @@
.product-info .user .center{
flex:1;
margin-left:22rpx;
+ overflow: hidden;
+}
+.product-info .user .u-name,.product-info .user .building{
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow:ellipsis;
}
.product-info .user .building{
font-size: 27rpx;
@@ -117,4 +152,31 @@
.address .text{
font-size: 27rpx;
margin-left: 20rpx;
+}
+
+.bottom-bar.float{
+ display: flex;
+ align-items: center;
+ border-radius: 60rpx;
+ overflow: hidden;
+ padding-left: 40rpx;
+ box-shadow: 0px 3px 6px 2px rgba(0, 0, 0, 0.05);
+}
+.bottom-bar .money{
+ font-size: 52rpx;
+}
+.bottom-bar .tips{
+ padding-top:14rpx;
+ font-size: 27rpx;
+ color:#FF8C12;
+ margin-left: 20rpx;
+ flex:1;
+}
+.bottom-bar .button{
+ border-radius: 0;
+ height: 100rpx;
+ min-width: 240rpx;
+}
+.scroll-view-dispatch{
+ height:calc(var(--safe-bottom) + 124rpx);
}
\ No newline at end of file
diff --git a/pages/shop/index/index.js b/pages/shop/index/index.js
index d8610e8..0dad098 100644
--- a/pages/shop/index/index.js
+++ b/pages/shop/index/index.js
@@ -10,13 +10,13 @@ Page({
*/
data: {
tabIndex:0,
- categories:[],
shopList:[],
userInfo:{},
lng:null,
lat:null,
- scrollViewHeight:0,
- pager:{limit:10,loading:false,loadAll:false,pageIndex:0,refreshTrigger:false}
+ pager:{limit:10,loading:false,loadAll:false,pageIndex:0,refreshTrigger:false},
+
+ choosedCommunity:{}
},
changeTab(event){
const tabIndex = event.currentTarget.dataset.index;
@@ -42,18 +42,15 @@ Page({
this.setData({
pager:this.data.pager
});
- const cid = this.data.categories.length>0?this.data.categories[this.data.tabIndex].id:0;
const params = {
skip:this.data.pager.pageIndex*this.data.pager.limit,
- limit:this.data.pager.limit
+ limit:this.data.pager.limit,
+ community_id:this.data.choosedCommunity.id
}
if(this.data.lng&&this.data.lat){
params.longitude = this.data.lng;
params.latitude = this.data.lat;
}
- if(cid){
- params.category_id = cid;
- }
shopApi.product.list().then((data)=>{
if(this.data.pager.pageIndex==0){
this.data.shopList = data.items;
@@ -80,35 +77,57 @@ Page({
shopList:this.data.shopList,
pager:this.data.pager
})
+ }).catch(()=>{
+ this.setData({
+ "pager.loading":false
+ })
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
- const windowInfo = wx.getWindowInfo();
- this.setData({
- scrollViewHeight:windowInfo.windowHeight-windowInfo.statusBarHeight-44-174
- })
- app.getLocation().then((data)=>{
- this.setData({
- lng:data.longitude,
- lat:data.latitude
- });
- this.loadList();
- }).catch(()=>{
- this.loadList();
- })
- shopApi.category().then((data)=>{
- this.setData({
- categories:[{id:0,name:'全部'},...data.items]
- });
- })
app.getUserInfo().then((data)=>{
this.setData({
userInfo:data
})
+ this.data.choosedCommunity = {
+ id:data.community_id,
+ name:data.community_name
+ };
+ return wx.getStorage({key:'community-shop'});
+ }).then((res)=>{
+ this.data.choosedCommunity = res.data;
+ this.loadList();
+ },(error)=>{
+ this.loadList();
+ }).finally(()=>{
+ this.setData({
+ choosedCommunity:this.data.choosedCommunity
+ })
+ })
+ },
+
+ //供选择社区页面用
+ changeCommunity(community){
+ wx.setStorage({
+ key:'community-shop',
+ data:{
+ id:community.id,
+ name:community.name
+ }
+ });
+ this.setData({
+ choosedCommunity:community
+ })
+ this.refreshList();
+ },
+ chooseCommunity(){
+ const currentId = this.data.choosedCommunity.id||this.data.userInfo.community_id;
+ console.log(currentId);
+ wx.navigateTo({
+ url: `/pages/help/community/index?communityId=${currentId}`,
})
},
diff --git a/pages/shop/index/index.wxml b/pages/shop/index/index.wxml
index d16473e..427f074 100644
--- a/pages/shop/index/index.wxml
+++ b/pages/shop/index/index.wxml
@@ -1,21 +1,13 @@
-
-
- 蜂蜜 (克)
- {{userInfo.points}}
- 取快递自动抵扣
-
-
-
-
-
+
+
+
+
+
{
const year = date.getFullYear()
const month = date.getMonth() + 1
@@ -14,11 +15,15 @@ const formatNumber = n => {
return n[1] ? n : `0${n}`
}
const getStatusNavBarHeight = ()=>{
- const windowInfo = wx.getWindowInfo();
return windowInfo.statusBarHeight+44;
}
+const rpxToPx = (rpx) => {
+ return (rpx / 750) * windowInfo.windowWidth;
+}
+
module.exports = {
formatTime,
- getStatusNavBarHeight
+ getStatusNavBarHeight,
+ rpxToPx
}