wangfukang 7 days ago
parent
commit
a1bbc6eae1
  1. 35
      package1/address/addressList.vue
  2. 45
      package1/buyFood/buyFood.vue
  3. 25
      package1/components/delivery-time-op/delivery-time-op.vue
  4. 13
      package1/order/orderDetail.vue
  5. 9
      package1/runErrand/runErrand.vue
  6. 5
      package1/tabbar/fishRelease.vue

35
package1/address/addressList.vue

@ -39,9 +39,10 @@
</view> </view>
<!-- 新增地址弹出层 --> <!-- 新增地址弹出层 -->
<uni-popup ref="addBookPopup" background-color="#fff"> <uni-popup ref="addBookPopup" background-color="#fff">
<view class="book-popup-content"> <view class="book-popup-content" @tap.stop @touchmove.stop>
<view style="height: 80rpx;line-height: 80rpx;font-size: 36rpx;font-weight: 700;text-align: center;"> <view class="book-popup-title">
{{addressForm.id ? '编辑地址' : '填写地址'}} {{addressForm.id ? '编辑地址' : '填写地址'}}
<uni-icons type="closeempty" size="24" color="#333" class="book-popup-close" @tap="closeAddBookPopup"></uni-icons>
</view> </view>
<view class="area-select" @tap="openAreaPopup"> <view class="area-select" @tap="openAreaPopup">
<text v-if="areaTitleInput">{{areaTitleInput}}</text> <text v-if="areaTitleInput">{{areaTitleInput}}</text>
@ -70,7 +71,7 @@
</view> </view>
</uni-popup> </uni-popup>
<uni-popup ref="areaPopup" type="center" background-color="#fff"> <uni-popup ref="areaPopup" type="center" background-color="#fff">
<view class="area-popup-content"> <view class="area-popup-content" @tap.stop @touchmove.stop.prevent>
<view class="area-popup-title"> <view class="area-popup-title">
<text>选择楼座区域</text> <text>选择楼座区域</text>
<uni-icons type="closeempty" size="22" color="#333" @tap="closeAreaPopup"></uni-icons> <uni-icons type="closeempty" size="22" color="#333" @tap="closeAreaPopup"></uni-icons>
@ -86,7 +87,7 @@
:cursor-spacing="160" :cursor-spacing="160"
/> />
</view> </view>
<scroll-view scroll-y class="area-result-list"> <scroll-view scroll-y class="area-result-list" @touchmove.stop>
<view v-if="filteredAreaTitleList.length === 0" class="area-result-empty"> <view v-if="filteredAreaTitleList.length === 0" class="area-result-empty">
未找到匹配的楼座 未找到匹配的楼座
</view> </view>
@ -264,16 +265,19 @@
this.$refs.addBookPopup.open('bottom'); this.$refs.addBookPopup.open('bottom');
}, },
openAreaPopup() { openAreaPopup() {
this.areaSearchInput = this.areaTitleInput; this.areaSearchInput = '';
this.getAreaList(); this.getAreaList();
this.$refs.areaPopup.open(); this.$refs.areaPopup.open();
}, },
closeAreaPopup() { closeAreaPopup() {
this.$refs.areaPopup.close(); this.$refs.areaPopup.close();
}, },
closeAddBookPopup() {
this.$refs.addBookPopup.close();
},
selectAreaTitle(title) { selectAreaTitle(title) {
this.areaTitleInput = title; this.areaTitleInput = title;
this.areaSearchInput = title; this.areaSearchInput = '';
this.closeAreaPopup(); this.closeAreaPopup();
}, },
onFloorInput(e) { onFloorInput(e) {
@ -464,6 +468,25 @@
padding-top: 40rpx; padding-top: 40rpx;
} }
.book-popup-title {
height: 80rpx;
line-height: 80rpx;
font-size: 36rpx;
font-weight: 700;
text-align: center;
position: relative;
}
.book-popup-close {
position: absolute;
right: 0;
top: 0;
width: 80rpx;
height: 80rpx;
line-height: 80rpx;
text-align: center;
}
.area-select { .area-select {
margin-bottom: 20rpx; margin-bottom: 20rpx;
display: flex; display: flex;

45
package1/buyFood/buyFood.vue

@ -1,6 +1,8 @@
<template> <template>
<!-- 代买饭页 --> <!-- 代买饭页 -->
<view class="page1" :class="{'store-group-checkout': isStoreGroupOrder}"> <page-meta :page-style="addressBookVisible ? 'overflow: hidden;' : 'overflow: visible;'"></page-meta>
<view class="page1" :class="{'store-group-checkout': isStoreGroupOrder, 'page1--locked': addressBookVisible}">
<view class="checkout-fixed-header" :class="{'checkout-fixed-header--store': isStoreGroupOrder}">
<view class="title"> <view class="title">
<view class="title-sreach"> <view class="title-sreach">
<view class="back-btn" @tap="back" :style="{'top': menuButtonInfo.top +'px'}"> <view class="back-btn" @tap="back" :style="{'top': menuButtonInfo.top +'px'}">
@ -47,6 +49,8 @@
</view> </view>
</view> </view>
</view> </view>
</view>
<view class="checkout-header-holder" :class="{'checkout-header-holder--store': isStoreGroupOrder}"></view>
<view class="ziqu-box" v-if="isPaotui==false"> <view class="ziqu-box" v-if="isPaotui==false">
<view class="ziqu-xuanfu"> <view class="ziqu-xuanfu">
{{isStoreGroupOrder ? '到店信息' : '取餐信息'}} {{isStoreGroupOrder ? '到店信息' : '取餐信息'}}
@ -346,7 +350,7 @@
</view> </view>
<!-- 地址簿弹出层 --> <!-- 地址簿弹出层 -->
<uni-popup ref="bookPopup" background-color="#fff" @change="onAddressPopupChange"> <uni-popup ref="bookPopup" background-color="#fff" @change="onAddressPopupChange">
<view class="book-popup-content"> <view class="book-popup-content" @tap.stop>
<address-list v-if="addressBookVisible" @selectAddress="handleSelectAddress" @syncAddress="handleSyncAddress" <address-list v-if="addressBookVisible" @selectAddress="handleSelectAddress" @syncAddress="handleSyncAddress"
@close="closeAddressBook"></address-list> @close="closeAddressBook"></address-list>
</view> </view>
@ -603,7 +607,8 @@
freeOrderEffectVisible: false, freeOrderEffectVisible: false,
freeOrderAmount: '0.00', freeOrderAmount: '0.00',
navigatingFromPayPopup: false, navigatingFromPayPopup: false,
isNavigatingToWorkerList: false isNavigatingToWorkerList: false,
isSeckillOrder: false
} }
}, },
components: { components: {
@ -641,6 +646,7 @@
if (option.packageFee) { if (option.packageFee) {
this.totalPackageFee = parseFloat(option.packageFee) || 0; this.totalPackageFee = parseFloat(option.packageFee) || 0;
} }
this.isSeckillOrder = option.seckillOrder == 1 || option.seckillOrder === '1';
if (this.isStoreGroupOrder) { if (this.isStoreGroupOrder) {
this.isPaotui = false; this.isPaotui = false;
this.nowMake = false; this.nowMake = false;
@ -1386,6 +1392,9 @@
if(this.isStoreGroupOrder){ if(this.isStoreGroupOrder){
payload.otherOrder = 2 payload.otherOrder = 2
} }
if(this.isSeckillOrder){
payload.seckillOrder = 1
}
payload.regionId = JSON.parse(uni.getStorageSync('area')).id payload.regionId = JSON.parse(uni.getStorageSync('area')).id
this.tui.request("/mall/order/create", "POST", payload, false, false).then(res => { this.tui.request("/mall/order/create", "POST", payload, false, false).then(res => {
uni.hideLoading(); uni.hideLoading();
@ -1526,11 +1535,41 @@
#F5F8F5; #F5F8F5;
} }
.page1--locked {
height: 100vh;
overflow: hidden;
}
.checkout-fixed-header {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 344rpx;
z-index: 100;
overflow: hidden;
background: #F5F8F5;
}
.checkout-fixed-header--store {
height: 360rpx;
background: #fff0df;
}
.title { .title {
background: url('https://jewel-shop.oss-cn-beijing.aliyuncs.com/8bc15960c2dc40268e295d6dd23aecce.png') no-repeat; background: url('https://jewel-shop.oss-cn-beijing.aliyuncs.com/8bc15960c2dc40268e295d6dd23aecce.png') no-repeat;
width: 100%; width: 100%;
height: 340rpx; height: 340rpx;
background-size: 100% 100%; background-size: 100% 100%;
position: relative;
}
.checkout-header-holder {
height: 344rpx;
}
.checkout-header-holder--store {
height: 360rpx;
} }
.title-sreach { .title-sreach {

25
package1/components/delivery-time-op/delivery-time-op.vue

@ -10,7 +10,10 @@
:class="{ add: model }" :class="{ add: model }"
@tap.stop @tap.stop
> >
<view class="title-model">{{ title }} <text @tap="close">x</text></view> <view class="title-model">
{{ title }}
<text class="title-close" @tap.stop="close">×</text>
</view>
<view class="cont" :style="{ height: barHidth - 80 + 'rpx' }"> <view class="cont" :style="{ height: barHidth - 80 + 'rpx' }">
<!-- --> <!-- -->
<scroll-view class="day" :scroll-y="true"> <scroll-view class="day" :scroll-y="true">
@ -208,15 +211,21 @@ export default {
border-bottom: 2rpx solid #eee; border-bottom: 2rpx solid #eee;
} }
.title-model > text { .title-close {
position: absolute; position: absolute;
right: 14rpx; top: 50%;
width: 46rpx; right: 24rpx;
height: 46rpx; display: flex;
line-height: 38rpx; align-items: center;
background-color: #ccc; justify-content: center;
color: #fff; width: 48rpx;
height: 48rpx;
background-color: #f2f5f3;
border-radius: 50%; border-radius: 50%;
color: #9aa5a0;
font-size: 32rpx;
line-height: 1;
transform: translateY(-50%);
} }
.cont { .cont {

13
package1/order/orderDetail.vue

@ -230,10 +230,10 @@
@tap="makeMeal" style="background: rgba(0, 35, 28, 1);color:rgba(166, 255, 234, 1);"> @tap="makeMeal" style="background: rgba(0, 35, 28, 1);color:rgba(166, 255, 234, 1);">
立即备餐 立即备餐
</view> </view>
<view class="btn" style="width: 40%;" v-if="orderDetail.status == 2 && orderDetail.shopDelivery != 1" @tap="openAddFeePopup"> <view class="btn" :class="{'btn-full': isErrandDeliveryOrder(orderDetail)}" v-if="orderDetail.status == 2 && orderDetail.shopDelivery != 1" @tap="openAddFeePopup">
增加配送佣金 增加配送佣金
</view> </view>
<view class="btn" style="width: 40%;" v-if="orderDetail.status == 2 && orderDetail.shopDelivery != 1" @tap="goAssignWorker"> <view class="btn" v-if="orderDetail.status == 2 && orderDetail.shopDelivery != 1 && !isErrandDeliveryOrder(orderDetail)" @tap="goAssignWorker">
改派配送员 改派配送员
</view> </view>
<!-- <view class="btn"> <!-- <view class="btn">
@ -1421,6 +1421,9 @@
hasNoDeliveryWorker(item) { hasNoDeliveryWorker(item) {
return !item || !item.deliveryInfo || !item.deliveryInfo.workerId || item.deliveryInfo.status === 0; return !item || !item.deliveryInfo || !item.deliveryInfo.workerId || item.deliveryInfo.status === 0;
}, },
isErrandDeliveryOrder(item) {
return item && item.deliveryInfo && item.deliveryInfo.deliveryType == 3;
},
isGroupSuccess(item) { isGroupSuccess(item) {
return item && item.groupInfo && (item.groupInfo.status == 1 || item.groupInfo.successTime); return item && item.groupInfo && (item.groupInfo.status == 1 || item.groupInfo.successTime);
}, },
@ -2689,6 +2692,12 @@
box-shadow: 0 14rpx 28rpx rgba(0, 191, 160, 0.12); box-shadow: 0 14rpx 28rpx rgba(0, 191, 160, 0.12);
} }
.btn-full {
flex-basis: 100%;
width: 100%;
min-width: 100%;
}
.box1 > view[style*="rgba(247, 248, 248"] { .box1 > view[style*="rgba(247, 248, 248"] {
background: linear-gradient(180deg, rgba(250, 255, 252, 0.96) 0%, rgba(255, 255, 255, 0.9) 100%) !important; background: linear-gradient(180deg, rgba(250, 255, 252, 0.96) 0%, rgba(255, 255, 255, 0.9) 100%) !important;
border: 1px solid rgba(166, 255, 234, 0.34); border: 1px solid rgba(166, 255, 234, 0.34);

9
package1/runErrand/runErrand.vue

@ -1,5 +1,6 @@
<template> <template>
<!-- 代跑腿/快递页 --> <!-- 代跑腿/快递页 -->
<page-meta :page-style="isBookPopupOpen ? 'overflow: hidden;' : 'overflow: visible;'"></page-meta>
<view class="page1"> <view class="page1">
<view class="title"> <view class="title">
<view class="title-sreach"> <view class="title-sreach">
@ -32,7 +33,7 @@
</view> </view>
</view> </view>
</view> </view>
<view class="content"> <view class="content" :class="{'content--locked': isBookPopupOpen}">
<view class="" style="background: #fff;padding: 20rpx;"> <view class="" style="background: #fff;padding: 20rpx;">
<!-- 取货地址 --> <!-- 取货地址 -->
<view v-if="isKuaidi" class="dizhi" style="border-bottom: 1px solid #eee; padding-bottom: 20rpx; margin-bottom: 20rpx;"> <view v-if="isKuaidi" class="dizhi" style="border-bottom: 1px solid #eee; padding-bottom: 20rpx; margin-bottom: 20rpx;">
@ -253,7 +254,7 @@
<!-- 收货/取货地址簿弹出层 --> <!-- 收货/取货地址簿弹出层 -->
<uni-popup ref="bookPopup" background-color="#fff" @change="onBookPopupChange"> <uni-popup ref="bookPopup" background-color="#fff" @change="onBookPopupChange">
<view class="book-popup-content"> <view class="book-popup-content" @tap.stop>
<address-list v-if="addressBookVisible" @selectAddress="handleSelectAddress" <address-list v-if="addressBookVisible" @selectAddress="handleSelectAddress"
@syncAddress="handleSyncAddress" @shopAreaList="updateArea" @close="closeAddressBook"></address-list> @syncAddress="handleSyncAddress" @shopAreaList="updateArea" @close="closeAddressBook"></address-list>
</view> </view>
@ -1144,6 +1145,10 @@
height: 100%; height: 100%;
} }
.content--locked {
overflow: hidden;
}
.tab1 { .tab1 {
width: 100%; width: 100%;
height: 160rpx; height: 160rpx;

5
package1/tabbar/fishRelease.vue

@ -16,7 +16,7 @@
<view class="form-card"> <view class="form-card">
<view class="field" id="fieldTitle"> <view class="field" id="fieldTitle">
<view class="label">标题</view> <view class="label">标题</view>
<input v-model.trim="form.title" maxlength="10" placeholder="最多10个字" /> <input v-model.trim="form.title" maxlength="30" placeholder="最多30个字" />
</view> </view>
<view class="field price-row" id="fieldPrice"> <view class="field price-row" id="fieldPrice">
@ -423,11 +423,12 @@
const phone = String(this.form.phone || '').trim() const phone = String(this.form.phone || '').trim()
if (!title) return '请填写标题' if (!title) return '请填写标题'
if (title.length < 2) return '标题至少2个字' if (title.length < 2) return '标题至少2个字'
if (title.length > 10) return '标题最多10个字' if (title.length > 30) return '标题最多30个字'
if (this.selectedCategoryIndex < 0) return '请选择分类' if (this.selectedCategoryIndex < 0) return '请选择分类'
if (!price) return this.publishType == 'sell' ? '请填写售价' : '请填写预算' if (!price) return this.publishType == 'sell' ? '请填写售价' : '请填写预算'
if (!this.isValidPrice(price)) return this.publishType == 'sell' ? '售价必须大于0且最多2位小数' : '预算必须大于0且最多2位小数' if (!this.isValidPrice(price)) return this.publishType == 'sell' ? '售价必须大于0且最多2位小数' : '预算必须大于0且最多2位小数'
if (originPrice && !this.isValidAmount(originPrice)) return '原价最多2位小数' if (originPrice && !this.isValidAmount(originPrice)) return '原价最多2位小数'
if (this.publishType == 'sell' && originPrice && Number(price) > Number(originPrice)) return '售价不得大于原价'
if (this.publishType == 'sell' && this.form.images.length == 0) return '请至少上传1张商品图片' if (this.publishType == 'sell' && this.form.images.length == 0) return '请至少上传1张商品图片'
if (this.publishType == 'want' && this.form.images.length > 1) return '求购最多上传1张图片' if (this.publishType == 'want' && this.form.images.length > 1) return '求购最多上传1张图片'
if (!contentText) return this.publishType == 'sell' ? '请填写商品介绍' : '请填写求购内容' if (!contentText) return this.publishType == 'sell' ? '请填写商品介绍' : '请填写求购内容'

Loading…
Cancel
Save