配送时段,以及各种 修改

This commit is contained in:
2025-03-04 20:38:05 +08:00
parent 858470cb47
commit f90ed54775
15 changed files with 230 additions and 69 deletions

View File

@ -9,7 +9,8 @@ export default {
/**
*data:{community_id,latitude,longitude}
* */
wxGroup:(community_id,data)=>request.get(`/api/community/${community_id}/qrcode`,data)
wxGroup:(community_id,data)=>request.get(`/api/community/${community_id}/qrcode`,data),
timePeriods:(community_id)=>request.get(`/api/community-time-periods/community/${community_id}`)
},
address:{
list(commityId){

View File

@ -60,7 +60,8 @@ export default {
unused:'UNUSED',used:'USED',expired:'EXPIRED'
},
list:(data)=>request.get('/api/coupon/user/list',data),
use:(coupon_id)=>request.put(`/api/coupon/${coupon_id}/use`)
use:(coupon_id)=>request.put(`/api/coupon/${coupon_id}/use`),
check:(activity_id)=>request.get(`/api/coupon-activities/${activity_id}/check_receive`)
},
point:{
list:(data)=>request.get('/api/point/records',data)

View File

@ -5,6 +5,9 @@ page{
--main-bgclolor:#F5F5F5;
--main-color:#FEC400;
--main-hover-color:#fcce39;
--safe-bottom:constant(safe-area-inset-bottom);
--safe-bottom:env(safe-area-inset-bottom);
color:var(--main-font-color);
background-color:var(--main-bgclolor);
overflow: hidden;
@ -281,6 +284,7 @@ page-container .content{
height:100rpx;
width:100%;
}
.cells picker{flex:1}
.cells .cell-ft{
display: flex;
align-items: center;

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

11
assets/imgs/test.html Normal file
View File

@ -0,0 +1,11 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + Vue + TS</title>
</head>
<body>
<div id="app">123</div>
</body>
</html>

View File

@ -4,16 +4,22 @@ const app = getApp();
Page({
savedTimePeriodId:'',
/**
* 页面的初始数据
*/
data: {
stationList:[],
sendType:'DELIVERY_AT_DOORSTEP',
sendType:'DELIVERY_AT_DOORSTEP',//默认方式
tempImgs:[],
imgUploading:false,
imgOrderCount:0,
maxChooseImgCount:10
maxChooseImgCount:10,
sendTypeKV:userApi.order.orderDeliverStatusKV,
timePeriods:[],
timePeriodsIndex:0,
isShowDeliverType:false
},
validator:{
imgOrderCount:{min:1,shake:true}
@ -64,11 +70,22 @@ Page({
priceRequest.pickup_images_count = this.data.imgOrderCount;
priceRequest.pickup_images = imgs.join(',')
}
if(this.data.timePeriodsIndex==-1){
wx.showToast({
icon:'none',
title:'请选择配送时段'
});
this.setData({
scrollToViewId:'scrollViewDispatch'
})
return;
}
wx.setStorage({
key:'pre-order',
data:{
price_request:priceRequest,
delivery_method:this.data.sendType
delivery_method:this.data.sendType,
timePeriodId:this.data.timePeriods[this.data.timePeriodsIndex].time_period_id
},
success(){
wx.navigateBack();
@ -130,10 +147,20 @@ Page({
* 生命周期函数--监听页面加载
*/
onLoad(options) {
//获取配送时段
commonApi.community.timePeriods(options.communityId).then((data)=>{
this.setData({
timePeriods:data
});
this.findTimePeriodId();
});
commonApi.station.list(options.communityId).then((data)=>{
wx.getStorage({
key:'pre-order',
success:(res)=>{
this.savedTimePeriodId = res.data.timePeriodId;
this.findTimePeriodId();
data.items.map((item,index)=>{
const __item = res.data.price_request.packages.find((_item)=>_item.station_id==item.id);
if(__item){
@ -151,7 +178,6 @@ Page({
});
imgOrderCount = res.data.price_request.pickup_images_count||0;
}
console.log(tempImgs);
this.setData({
sendType:res.data.delivery_method,
stationList:data.items,
@ -173,10 +199,17 @@ Page({
});
});
},
sendTypeChange(event){
this.setData({
sendType:event.detail.value
findTimePeriodId(){
const timePeriodsIndex = this.data.timePeriods.findIndex((item)=>{
console.log(item.time_period_id,this.savedTimePeriodId);
return item.time_period_id==this.savedTimePeriodId;
});
if(timePeriodsIndex>-1){
this.setData({
timePeriodsIndex
})
}
console.log(timePeriodsIndex);
},
chooseImage(){
wx.chooseMedia({
@ -250,6 +283,26 @@ Page({
imgOrderCount:this.data.imgOrderCount+1
})
},
showSendType(){
this.setData({
isShowDeliverType:true
})
},
confirmDeliverType(){
this.setData({
isShowDeliverType:false
})
},
chooseDeliverType(event){
this.setData({
sendType:event.currentTarget.dataset.index
})
},
chooseTime(event){
this.setData({
timePeriodsIndex:event.currentTarget.dataset.index
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/

View File

@ -1,5 +1,5 @@
<view class="custom-scroll-view">
<view class="main">
<scroll-view class="main" scroll-y scroll-with-animation scroll-into-view="{{scrollToViewId}}">
<view class="page-container img-area">
<view class="head">
<view class="title">
@ -61,7 +61,20 @@
<label>添加取件码</label>
</button>
</view>
<view class="page-container send-way">
<view class="cells cells-access" bind:tap="showSendType">
<view class="cell">
<view class="cell-hd">配送</view>
<view class="cell-bd">
<view class="line1">
{{sendTypeKV[sendType]}}
</view>
<view>配送时段:{{timePeriods[timePeriodsIndex].time_period_name}}</view>
</view>
<view class="cell-ft"></view>
</view>
</view>
<view class="scroll-view-dispatch" id="scrollViewDispatch"></view>
<!-- <view class="page-container send-way">
<view class="title">投递方式</view>
<radio-group bindchange="sendTypeChange" class="radio">
<label class="item">
@ -73,9 +86,28 @@
<label>放在门口</label>
</label>
</radio-group>
</view>
</view>
</view> -->
</scroll-view>
<view class="bottom-bar-v2">
<button class="button" type="primary" loading="{{imgUploading}}" disabled="{{imgUploading}}" bind:tap="bottomBarButtonTap">保存并使用</button>
</view>
</view>
</view>
<page-container model:show="{{isShowDeliverType}}" position="bottom" round>
<view class="content deliver-type-content">
<view class="title">投递方式</view>
<view class="deliver-list">
<view wx:for="{{sendTypeKV}}" wx:key="index" class="item {{index==sendType?'current':''}}" bind:tap="chooseDeliverType" data-index="{{index}}">
{{item}}
</view>
</view>
<view class="title">配送时段</view>
<view class="time-list">
<view wx:for="{{timePeriods}}" wx:key="index" bind:tap="chooseTime" data-index="{{index}}"
class="item {{timePeriodsIndex==index?'current':''}}">
{{item.time_period_name}}
</view>
</view>
<button type="primary" class="button" bind:tap="confirmDeliverType">确定</button>
</view>
</page-container>

View File

@ -26,19 +26,6 @@
background: rgba(124, 134, 149, 0.08);
}
.send-way .radio{
display: flex;
justify-content: space-between;
padding-top:30rpx;
}
.send-way .title{
font-size: 34prx;
font-weight: 500;
}
.send-way .radio .item{
padding:14rpx 30rpx;
}
.page-container .tips{
@ -192,4 +179,71 @@
height:50%;
left:22rpx;top:25%;
z-index: 100;
}
.cells .cell{
position: relative;
}
.cells .cell .cell-hd{
font-size: 34rpx;
}
.cells .cell .cell-bd{
display: block;
display: flex;
flex-direction: column;
align-items: flex-end;
justify-content: center;
gap: 26rpx;
min-height: auto;
padding:36rpx 40rpx 36rpx 0;
}
.cells .cell .cell-ft{
padding: 0;
}
.cells .cell .line1{
font-size: 32rpx;
}
.deliver-type-content{
padding:0 30rpx calc(var(--safe-bottom) + 24rpx) 30rpx;
background-color: #fff!important;
}
.deliver-type-content .title{
padding-top:50rpx;
font-size: 36rpx;
font-weight: 500;
}
.deliver-type-content .deliver-list{
display: flex;
gap: 30rpx;
margin-top:40rpx;
}
.deliver-type-content .deliver-list .item{
border: 1rpx solid rgba(136, 136, 136, 0.5);
background: rgba(153, 153, 153, 0.05);
border-radius:12rpx;
padding:18rpx 24rpx;
}
.deliver-type-content .deliver-list .item.current{
border: 0.5px solid #FFC300;
background: rgba(255, 195, 0, 0.05);
color: #FFC300;
}
.deliver-type-content .time-list{
margin-top:40rpx;
display: flex;
flex-direction: column;
gap: 24rpx;
}
.deliver-type-content .time-list .item{
border: 1rpx solid rgba(136, 136, 136, 0.5);
border-radius: 18rpx;
padding:30rpx;
}
.deliver-type-content .time-list .item.current{
border: 2rpx solid #FFC300;
}
.deliver-type-content .button{
margin-top:40rpx;
}

View File

@ -42,12 +42,13 @@ Page({
// bgHeight:'100%'
// });
},
applyPartnert(){
applyPartnert(event){
let type = event.currentTarget.dataset.type;
let url = this.data.appConfig.url_partner_apply;
if(url.indexOf('?')>-1){
url = `${url}&userid=${this.data.userInfo.userid}`
url = `${url}&userid=${this.data.userInfo.userid}&type=${type}`
}else{
url = `${url}?userid=${this.data.userInfo.userid}`
url = `${url}?userid=${this.data.userInfo.userid}&type=${type}`
}
wx.navigateTo({
url: `/pages/browser/index?url=${encodeURIComponent(url)}`,

View File

@ -67,11 +67,25 @@
<view class="cell-ft"></view>
</button>
</view>
<view class="recruit-view">
<view class="title">
<view class="text">招募城市合伙人</view>
<button class="button" type="primary" size="mini" bind:tap="applyPartnert">立即申请</button>
<view class="cells cells-access">
<view class="cell" bind:tap="applyPartnert" data-type="community">
<view class="cell-hd">
<image class="icon" src="/assets/icon/my/partner-community.png"></image>
</view>
<view class="cell-bd">
<view>小区服务商</view>
</view>
<view class="cell-ft"></view>
</view>
<view class="cell" bind:tap="applyPartnert" data-type="city">
<view class="cell-hd">
<image class="icon" src="/assets/icon/my/partner-city.png"></image>
</view>
<view class="cell-bd">
<view>城市运营商</view>
</view>
<view class="cell-ft"></view>
</view>
<view class="sub-title">人人都有金饭碗, 钱多事好离家近</view>
</view>
</scroll-view>

View File

@ -96,34 +96,3 @@
.cell.is-button:hover{
background-color: #fff;
}
.recruit-view{
box-shadow: 0px 3px 6px 2px rgba(0, 0, 0, 0.04);
background: linear-gradient(270deg, #FCF7E8 34%, #FCF1CE 76%);
margin:30rpx 20rpx;
border-radius: 20rpx;
color: #DFAB00;
padding:30rpx 30rpx 30rpx 40rpx;
}
.recruit-view .title{
display: flex;
align-items: center;
}
.recruit-view .title .button{
font-size: 26rpx;
font-weight: normal;
background: linear-gradient(180deg, #FFE285 0%, #FFC91B 100%);
box-shadow: 0px 3px 4px 0px rgba(196, 149, 0, 0.2);
padding:14rpx 26rpx;
line-height: 1;
color: #664E00;
}
.recruit-view .title .text{
font-size: 42rpx;
flex:1
}
.recruit-view .sub-title{
font-size: 29rpx;
margin-top:26rpx;
font-style: italic;
}

View File

@ -1,4 +1,5 @@
import commonApi from '../../../../api/common';
import userApi from '../../../../api/user';
Page({
@ -9,7 +10,10 @@ Page({
detail:{},
activityId:'',
detailLoading:false,
getting:true
getting:true,
isShowModal:false,
errorMsg:''
},
/**
@ -20,6 +24,14 @@ Page({
activityId:options.id||2
});
this.getActivityDetail();
userApi.coupon.check(options.id||2).then((data)=>{
if(!data.can_receive){
this.setData({
isShowModal:true,
errorMsg:data.message
})
}
})
},
getActivityDetail(){
this.setData({
@ -57,6 +69,11 @@ Page({
})
})
},
navToIndex(){
wx.reLaunch({
url: '/pages/help/index/index',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/

View File

@ -1,6 +1,7 @@
{
"usingComponents": {
"nav-bar":"/components/navbar"
"nav-bar":"/components/navbar",
"modal-view":"/components/modalView"
},
"navigationStyle": "custom"
}

View File

@ -26,4 +26,7 @@
loading="{{getting}}" type="primary"
class="button" bind:tap="getActivity" wx:else>一键领取</button>
</view>
<image src="/assets/imgs/login/main.png" class="bottom-img"/>
<image src="/assets/imgs/login/main.png" class="bottom-img"/>
<modal-view titleText="{{errorMsg}}" okButtonText="回首页" bind:ok="navToIndex"
model:show="{{isShowModal}}"/>