wangfukang 1 month ago
parent
commit
bb5bc7b72f
  1. 6
      package2/group/groupBuySingle.vue
  2. 13
      package2/myCenter/partTimeJobRegister.vue
  3. 121
      package2/shop/afterService.vue
  4. 19
      package2/shop/selfDeliveryOrderList.vue
  5. 49
      package2/shop/shopOrderList.vue
  6. 15
      package2/shop/transferDeliveryOrderList.vue

6
package2/group/groupBuySingle.vue

@ -591,7 +591,7 @@
<view style="color: #777;width: 500rpx;">
拼团成功后立即出餐
</view>
<view class="pack-options">
<view class="pack-options" v-if="nowMake">
<view class="pack-option" @tap="isPack = 0">
<view :class="isPack === 0 ? 'radio-check' : 'radio-no-check'">
<uni-icons v-if="isPack === 0" type="checkmarkempty" size="12"></uni-icons>
@ -607,8 +607,8 @@
</view>
</view>
<view style="width: 36rpx;padding-top: 20rpx;">
<view :class="nowMake ? 'radio-check' : 'radio-no-check'">
<uni-icons type="checkmarkempty" @tap="nowMakeMethod" size="12"></uni-icons>
<view :class="nowMake ? 'radio-check' : 'radio-no-check'" @tap="nowMakeMethod">
<uni-icons v-if="nowMake" type="checkmarkempty" size="12"></uni-icons>
</view>
</view>
</view>

13
package2/myCenter/partTimeJobRegister.vue

@ -192,11 +192,11 @@
class="official-qr" />
<view class="official-info">
<view class="official-title">长按 关注公众号</view>
<view class="official-desc">关注后可提现佣金有新订单会及时通知</view>
<view class="official-desc">关注后可提现佣金有新订单会及时通知下线后不再接收通知</view>
</view>
</view>
<view class="btn" @click="submit">
提交注册
{{worker ? '保存规则' : '提交注册'}}
</view>
</view>
<!-- 查看大图弹出层 -->
@ -331,6 +331,7 @@
songcan: [],
shopArea: [],
waimaRuleList: [],
worker:{},
paotuiRuleList: [],
currentConfigType: '',
defaultRoutePrice: '1',
@ -351,8 +352,8 @@
incomeRange: '¥0'
}
}
const lowOrders = Math.max(1, Math.ceil(count * 0.25))
const highOrders = Math.max(lowOrders, Math.ceil(count * 0.6))
const lowOrders = Math.max(1, Math.ceil(count * 2.5))
const highOrders = Math.max(lowOrders, Math.ceil(count * 6))
const lowIncome = Math.floor(lowOrders * commissionPerOrder * 100) / 100
const highIncome = Math.floor(highOrders * commissionPerOrder * 100) / 100
return {
@ -365,6 +366,7 @@
this.getShopArea()
this.getWorkerMessage()
this.showOnboardingOnce()
this.worker = uni.getStorageSync('worker')
},
onShow() {
this.menuButtonInfo = uni.getMenuButtonBoundingClientRect()
@ -690,6 +692,9 @@
title: '提交成功'
});
}
uni.reLaunch({
url: '/pages/index/index?tabIndex=1&deliveryRuleEdited=1'
})
} else {
uni.showToast({
title: res.message,

121
package2/shop/afterService.vue

@ -109,9 +109,9 @@
</view>
</view>
<view class="group-fee-row">
餐盒费{{item.packageFee || 0}} 配送费{{item.deliveryFee || 0}}
<text v-if="shouldShowPackageFee(item)">餐盒费{{formatMoney(item.packageFee)}} </text>配送费{{formatMoney(item.deliveryFee)}}
</view>
<view class="group-total-row">总计{{item.totalAmount || 0}}</view>
<!-- <view class="group-total-row">总计{{getGroupTotalAmount(item)}}</view> -->
</view>
<view class="group-popup-empty" v-if="tuanzhangOrder.length == 0">暂无拼团订单</view>
</scroll-view>
@ -138,7 +138,7 @@
</view>
<view class="product-popup-price-row">
<text>单价{{item1.price != null ? item1.price : 0}}</text>
<text v-if="item1.packageFee != null && item1.packageFee !== ''" class="product-popup-package-fee">餐盒费{{item1.packageFee}}</text>
<text v-if="shouldShowPackageFee(orderDetail) && item1.packageFee != null && item1.packageFee !== ''" class="product-popup-package-fee">餐盒费{{formatMoney(item1.packageFee)}}</text>
</view>
</view>
<view class="product-popup-quantity">
@ -172,6 +172,17 @@
</view>
</view>
</uni-popup>
<uni-popup ref="rejectPopup" background-color="transparent">
<view class="reject-popup">
<view class="reject-popup-title">拒绝原因</view>
<textarea class="reject-textarea" placeholder="请输入拒绝原因" maxlength="100"
v-model="rejectReason"></textarea>
<view class="reject-popup-actions">
<view class="reject-popup-btn reject-popup-cancel" @tap="closeRejectPopup">取消</view>
<view class="reject-popup-btn reject-popup-confirm" @tap="confirmReject">确认拒绝</view>
</view>
</view>
</uni-popup>
</view>
</view>
</template>
@ -197,7 +208,9 @@
returnCount:0,
submitLoading:false,
submitRefundId:'',
contactItem:{}
contactItem:{},
rejectItem:null,
rejectReason:''
}
},
filters:{
@ -256,6 +269,23 @@
if (!item) return ''
return item.status == 0?'待支付':item.status == 2?'待配送员接单':(item.status == 3 && item.deliveryType == 1 && item.shopMakeTime == null) || (item.status == 3 && item.deliveryType == 2 && item.userRequireMake == 1)?'待出餐':(item.status == 3 && item.deliveryType == 1 && item.shopMakeTime != null)?'待取货':(item.status == 3 && item.deliveryType == 2)?'待消费':item.status == 4?'待送达':item.status == 5?'已完成':item.status == 7?'待同意退款':item.status == 8?'已退款':item.status == 6?'已取消':item.status == 11?'售后中':item.status == 12?'已售后':''
},
toNumber(value) {
let amount = parseFloat(value);
return isNaN(amount) ? 0 : amount;
},
formatMoney(value) {
return this.toNumber(value).toFixed(2);
},
shouldShowPackageFee(order) {
return !!order && (order.deliveryType == 1 || order.isPack == 1);
},
getGroupTotalAmount(item) {
let total = this.toNumber(item && item.totalAmount);
if (this.shouldShowPackageFee(item)) {
total += this.toNumber(item && item.packageFee);
}
return this.formatMoney(total);
},
orderDetailOpen(item){
this.returnFormData.id = item.id;
this.returnFormData.linkId = item.linkId;
@ -333,6 +363,33 @@
},
returnAmountAllow(item,status){
if (this.submitLoading) return;
if (status == 0) {
this.openRejectPopup(item);
return;
}
this.submitReturnAmountAllow(item, status);
},
openRejectPopup(item) {
this.rejectItem = item;
this.rejectReason = '';
this.$refs.rejectPopup.open('center');
},
closeRejectPopup() {
this.rejectItem = null;
this.rejectReason = '';
this.$refs.rejectPopup.close();
},
confirmReject() {
const reason = (this.rejectReason || '').trim();
if (reason === '') {
this.tui.toast('请输入拒绝原因');
return;
}
const item = this.rejectItem;
this.$refs.rejectPopup.close();
this.submitReturnAmountAllow(item, 0, reason);
},
submitReturnAmountAllow(item,status,rejectReason){
let titleText = status == 1 ? '确定同意该申请吗?' : '确定拒绝该申请吗?';
//退
this.groupOrderIdList = [];
@ -362,10 +419,10 @@
let requestList = [];
if(this.groupOrderIdList != [] && this.groupOrderIdList.length > 0){
for(let i = 0; i < this.groupOrderIdList.length;i++){
requestList.push(this.processReturn(this.groupOrderIdList[i], status));
requestList.push(this.processReturn(this.groupOrderIdList[i], status, rejectReason));
}
}else{
requestList.push(this.processReturn(item, status));
requestList.push(this.processReturn(item, status, rejectReason));
}
Promise.all(requestList).then((messageList) => {
const successMessage = messageList[0] || '操作成功';
@ -384,7 +441,7 @@
}
});
},
processReturn(item,status){
processReturn(item,status,rejectReason){
let returnFormData = {}
//退
if(item.status == 0){
@ -410,6 +467,9 @@
returnFormData.refundAmount = item.refundAmount;
returnFormData.refundType = item.refundType;
returnFormData.refundTypeStatus = item.refundTypeStatus;
if (status == 0) {
returnFormData.rejectReason = rejectReason;
}
return this.tui.request("/mall/refund/allowOrReject", "POST", returnFormData, false, false).then((res) => {
if (res.code == 200) {
@ -940,4 +1000,51 @@
font-weight: 700;
text-align: center;
}
.reject-popup {
width: 620rpx;
padding: 34rpx 28rpx 30rpx;
box-sizing: border-box;
border-radius: 28rpx;
background: #fff;
}
.reject-popup-title {
color: #00231C;
font-size: 34rpx;
font-weight: 900;
text-align: center;
}
.reject-textarea {
width: 100%;
height: 180rpx;
margin-top: 26rpx;
padding: 20rpx;
box-sizing: border-box;
border-radius: 18rpx;
background: #F5F8F5;
color: #00231C;
font-size: 28rpx;
line-height: 38rpx;
}
.reject-popup-actions {
display: flex;
gap: 18rpx;
margin-top: 28rpx;
}
.reject-popup-btn {
flex: 1;
height: 72rpx;
border-radius: 16rpx;
font-size: 28rpx;
font-weight: 800;
line-height: 72rpx;
text-align: center;
}
.reject-popup-cancel {
background: #eef3f1;
color: #55716a;
}
.reject-popup-confirm {
background: rgba(0, 35, 28, 1);
color: rgba(166, 255, 234, 1);
}
</style>

19
package2/shop/selfDeliveryOrderList.vue

@ -15,7 +15,10 @@
<scroll-view class="list" :style="{'top': listTop + 'px'}" scroll-y @scrolltolower="loadMore">
<view class="card" v-for="(item,index) in list" :key="item.id" @tap="productDetail(item)">
<view class="card-head">
<view class="tag">商家自配送</view>
<view class="tag-row">
<view class="tag">商家自配送</view>
<view class="appointment-delivery-tag" v-if="item.appointmentDelivery == 1">预约配送</view>
</view>
<view class="time">{{item.mustFinishTime | formatTime}}前送达</view>
</view>
<view class="order-code" v-if="item.numberCode">#{{item.numberCode}}</view>
@ -325,6 +328,10 @@
align-items: center;
justify-content: space-between;
}
.tag-row{
display: flex;
align-items: center;
}
.tag{
background: rgba(255, 111, 44, 0.1);
color: #ff6f2c;
@ -332,6 +339,16 @@
border-radius: 18rpx;
font-weight: 700;
}
.appointment-delivery-tag{
margin-left: 12rpx;
padding: 8rpx 16rpx;
border-radius: 18rpx;
background: linear-gradient(135deg, #ff8f1f 0%, #ff6a3d 100%);
color: #fff;
font-size: 22rpx;
font-weight: 800;
box-shadow: 0 8rpx 18rpx rgba(255, 106, 61, 0.16);
}
.time{
color: #666;
}

49
package2/shop/shopOrderList.vue

@ -37,6 +37,12 @@
{{item.status == 0?'待支付':item.status == 2?'待配送员接单':(item.status == 3 && item.deliveryType == 1 && item.shopMakeTime == null) || (item.status == 3 && item.deliveryType == 2 && item.userRequireMake == 1)?'待出餐':(item.status == 3 && item.deliveryType == 1 && item.shopMakeTime != null)?'待取货':(item.status == 3 && item.deliveryType == 1 && item.shopMakeTime != null) || (item.status == 3 && item.deliveryType == 2 && item.userRequireMake != 1)?'待消费':item.status == 4?'待送达':item.status == 5?'已完成':item.status == 7?'待同意退款':item.status == 8?'已退款':item.status == 6?'已取消':item.status == 11?'售后中':item.status == 12?'已售后':""}}
</view>
</view>
<view class="delivery-info-row" v-if="item.deliveryType == 1 && (isAppointmentDelivery(item) || getDeliveryMustFinishTime(item))">
<view class="appointment-delivery-tag" v-if="isAppointmentDelivery(item)">预约配送</view>
<view class="delivery-required-time" v-if="getDeliveryMustFinishTime(item)">
要求送达{{getDeliveryMustFinishTime(item) | formatISOTime}}
</view>
</view>
<view class="goods-box">
<view class="goods-title">
<text>商品</text>
@ -283,6 +289,18 @@
if (item.mallOrder && item.mallOrder.id) return item.mallOrder.id
return item.orderId || item.mallOrderId || item.id || ''
},
getDeliveryInfo(item) {
return item && item.deliveryInfo ? item.deliveryInfo : {}
},
isAppointmentDelivery(item) {
const deliveryInfo = this.getDeliveryInfo(item)
return item && item.deliveryType == 1 && (item.appointmentDelivery == 1 || deliveryInfo.appointmentDelivery == 1)
},
getDeliveryMustFinishTime(item) {
if (!item || item.deliveryType != 1) return ''
const deliveryInfo = this.getDeliveryInfo(item)
return deliveryInfo.mustFinishTime || item.mustFinishTime || ''
},
getStatusText(item) {
if (!item) return ''
return item.status == 0?'待支付':item.status == 2?'待配送员接单':(item.status == 3 && item.deliveryType == 1 && item.shopMakeTime == null) || (item.status == 3 && item.deliveryType == 2 && item.userRequireMake == 1)?'待出餐':(item.status == 3 && item.deliveryType == 1 && item.shopMakeTime != null)?'待取货':(item.status == 3 && item.deliveryType == 2)?'待消费':item.status == 4?'待送达':item.status == 5?'已完成':item.status == 7?'待同意退款':item.status == 8?'已退款':item.status == 6?'已取消':item.status == 11?'售后中':item.status == 12?'已售后':''
@ -514,6 +532,37 @@
white-space: nowrap;
}
.delivery-info-row {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 12rpx;
padding: 16rpx 0 0;
}
.appointment-delivery-tag {
height: 44rpx;
line-height: 44rpx;
padding: 0 16rpx;
border-radius: 14rpx;
background: linear-gradient(135deg, #ff8f1f 0%, #ff6a3d 100%);
color: #fff;
font-size: 22rpx;
font-weight: 800;
box-shadow: 0 8rpx 18rpx rgba(255, 106, 61, 0.16);
}
.delivery-required-time {
height: 44rpx;
line-height: 44rpx;
padding: 0 16rpx;
border-radius: 14rpx;
background: rgba(166, 255, 234, 0.36);
color: #0b6b5a;
font-size: 22rpx;
font-weight: 800;
}
.goods-box {
padding: 22rpx 0 16rpx;
}

15
package2/shop/transferDeliveryOrderList.vue

@ -8,6 +8,7 @@
<view class="card" v-for="(item,index) in list" :key="item.id" @tap="productDetail(item)">
<view class="card-head">
<view class="tag">中转配送</view>
<view class="appointment-delivery-tag" v-if="item.appointmentDelivery == 1">预约配送</view>
<view class="code" v-if="item.numberCode">#{{item.numberCode}}</view>
</view>
<view class="row">
@ -18,6 +19,14 @@
<view class="label">下单时间</view>
<view class="value">{{formatTime(item.createTime)}}</view>
</view>
<view class="row" v-if="item.mustFinishTime">
<view class="label">要求送达</view>
<view class="value">{{formatTime(item.mustFinishTime)}}</view>
</view>
<view class="row" v-if="getTransferArriveText(item)">
<view class="label">中转送达</view>
<view class="value">{{getTransferArriveText(item)}}前需要送达中转点</view>
</view>
<view class="row">
<view class="label">取餐码</view>
<view class="value pickup-code">{{item.transferPickupCode || '配送员接单后生成'}}</view>
@ -193,6 +202,11 @@
this.productData = goodsList
this.$refs.productPopup.open()
},
getTransferArriveText(item) {
const address = item && item.shopAddress ? String(item.shopAddress) : ''
const match = address.match(/商家预计(.+?)配送到-/)
return match && match[1] ? match[1] : ''
},
formatTime(value) {
if (!value) return '';
const date = new Date(value)
@ -227,6 +241,7 @@
.card{background:#fff;border-radius:24rpx;padding:24rpx;margin-bottom:20rpx;box-shadow:0 10rpx 26rpx rgba(0,35,28,.08);}
.card-head{display:flex;align-items:center;margin-bottom:20rpx;}
.tag{background:#fff2e9;color:#f36c21;border-radius:12rpx;padding:8rpx 14rpx;font-weight:700;}
.appointment-delivery-tag{margin-left:12rpx;padding:8rpx 14rpx;border-radius:12rpx;background:linear-gradient(135deg,#ff8f1f 0%,#ff6a3d 100%);color:#fff;font-size:22rpx;font-weight:800;box-shadow:0 8rpx 18rpx rgba(255,106,61,.16);}
.code{margin-left:auto;font-weight:800;font-size:32rpx;}
.row{display:flex;line-height:46rpx;}
.label{width:120rpx;color:#7a8582;}

Loading…
Cancel
Save