|
@@ -115,13 +115,9 @@
|
|
|
<picker mode="multiSelector" :value="form.reachPeriod" :range="timeOptions" @change="bindTimeChange">
|
|
<picker mode="multiSelector" :value="form.reachPeriod" :range="timeOptions" @change="bindTimeChange">
|
|
|
<view class="uni-input" style="width:450upx;">{{form.reachPeriod}}<text style="margin-left:10upx;">前</text></view>
|
|
<view class="uni-input" style="width:450upx;">{{form.reachPeriod}}<text style="margin-left:10upx;">前</text></view>
|
|
|
</picker>
|
|
</picker>
|
|
|
- </tui-list-cell>
|
|
|
|
|
-
|
|
|
|
|
|
|
+ </tui-list-cell>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
<!-- 省市联动 -->
|
|
<!-- 省市联动 -->
|
|
|
<simple-address ref="simpleAddress" :region="orderShop.region" :pickerValueDefault="cityPickerValueDefault" @onConfirm="onCityConfirm" >
|
|
<simple-address ref="simpleAddress" :region="orderShop.region" :pickerValueDefault="cityPickerValueDefault" @onConfirm="onCityConfirm" >
|
|
|
</simple-address>
|
|
</simple-address>
|
|
@@ -223,7 +219,15 @@ export default {
|
|
|
computed: {
|
|
computed: {
|
|
|
...mapGetters({ orderShop: "getOrderShop" }),
|
|
...mapGetters({ orderShop: "getOrderShop" }),
|
|
|
...mapGetters({ shopUser: "getShopUser" }),
|
|
...mapGetters({ shopUser: "getShopUser" }),
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 是否免跑腿费
|
|
|
|
|
+ * @returns {boolean}
|
|
|
|
|
+ */
|
|
|
isFreeDelivery(){
|
|
isFreeDelivery(){
|
|
|
|
|
+ if(this.isFreight){
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
const distanceInKm = Number(this.showDistance) || 0;
|
|
const distanceInKm = Number(this.showDistance) || 0;
|
|
|
const freeKm = Number(this.hsFreeKm) || 0;
|
|
const freeKm = Number(this.hsFreeKm) || 0;
|
|
|
|
|
|
|
@@ -233,24 +237,6 @@ export default {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
return false;
|
|
|
- },
|
|
|
|
|
- /**
|
|
|
|
|
- * 计算跑腿费(使用 prop 的 showDistance)
|
|
|
|
|
- * 新规则:距离 <= 免费公里数时免费,距离 > 免费公里数时按超出部分计费
|
|
|
|
|
- */
|
|
|
|
|
- calculatedDeliveryCost(){
|
|
|
|
|
- const distanceInKm = Number(this.showDistance) || 0;
|
|
|
|
|
- const freeKm = Number(this.hsFreeKm) || 0;
|
|
|
|
|
- const addFee = Number(this.hsAddFee) || 0;
|
|
|
|
|
-
|
|
|
|
|
- // 距离大于免费公里数时,计算超出部分的费用
|
|
|
|
|
- if(distanceInKm > freeKm){
|
|
|
|
|
- const extraKm = distanceInKm - freeKm;
|
|
|
|
|
- const cost = extraKm * addFee;
|
|
|
|
|
- return parseFloat(cost.toFixed(2));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return 0;
|
|
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
watch: {
|
|
watch: {
|
|
@@ -312,33 +298,8 @@ export default {
|
|
|
modifyShow(){
|
|
modifyShow(){
|
|
|
this.form.showAddress = this.form.province+this.form.city+this.form.address+this.form.floor
|
|
this.form.showAddress = this.form.province+this.form.city+this.form.address+this.form.floor
|
|
|
},
|
|
},
|
|
|
- /**
|
|
|
|
|
- * 根据指定距离计算跑腿费
|
|
|
|
|
- * @param {Number} distanceInKm - 距离(单位:公里)
|
|
|
|
|
- * @returns {Number} 跑腿费
|
|
|
|
|
- */
|
|
|
|
|
- calculateDeliveryCostByDistance(distanceInKm){
|
|
|
|
|
- const freeKm = Number(this.hsFreeKm) || 0;
|
|
|
|
|
- const addFee = Number(this.hsAddFee) || 0;
|
|
|
|
|
-
|
|
|
|
|
- // 距离小于等于免费公里数时,免费
|
|
|
|
|
- if(distanceInKm <= freeKm){
|
|
|
|
|
- return 0;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 距离大于免费公里数时,计算超出部分的费用
|
|
|
|
|
- if(distanceInKm > freeKm){
|
|
|
|
|
- let extraKm = distanceInKm - freeKm;
|
|
|
|
|
- //向上取整,不足1公里的按1公里算
|
|
|
|
|
- extraKm = Math.ceil(extraKm)
|
|
|
|
|
- const cost = extraKm * addFee;
|
|
|
|
|
- return parseFloat(cost.toFixed(2));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return 0;
|
|
|
|
|
- },
|
|
|
|
|
triggerGetDeliveryQuotes() {
|
|
triggerGetDeliveryQuotes() {
|
|
|
- if (this.form.receiveUserName && this.form.receiveMobile && this.form.address) {
|
|
|
|
|
|
|
+ if (this.openIntraCity == 1 && this.form.receiveUserName && this.form.receiveMobile && this.form.address) {
|
|
|
this.getDeliveryQuotes();
|
|
this.getDeliveryQuotes();
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
@@ -402,7 +363,7 @@ export default {
|
|
|
|
|
|
|
|
// 使用当前选择的配送平台的距离来计算跑腿费
|
|
// 使用当前选择的配送平台的距离来计算跑腿费
|
|
|
const distanceInKm = item.distance ? parseFloat((item.distance / 1000).toFixed(2)) : 0;
|
|
const distanceInKm = item.distance ? parseFloat((item.distance / 1000).toFixed(2)) : 0;
|
|
|
- const calculatedCost = this.calculateDeliveryCostByDistance(distanceInKm);
|
|
|
|
|
|
|
+ const calculatedCost = this.calculateDeliveryCostByDistance(item.priceNumber, distanceInKm);
|
|
|
|
|
|
|
|
this.form.sendCost = calculatedCost;
|
|
this.form.sendCost = calculatedCost;
|
|
|
this.form.deliveryPlatform = item.en_name;
|
|
this.form.deliveryPlatform = item.en_name;
|
|
@@ -418,6 +379,35 @@ export default {
|
|
|
deliveryBracketContent: item.bracketContent
|
|
deliveryBracketContent: item.bracketContent
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 根据指定距离计算跑腿费
|
|
|
|
|
+ * @param {Number} distanceInKm - 距离(单位:公里)
|
|
|
|
|
+ * @returns {Number} 跑腿费
|
|
|
|
|
+ */
|
|
|
|
|
+ calculateDeliveryCostByDistance(sendCost, distanceInKm){
|
|
|
|
|
+ if(this.isFreight){
|
|
|
|
|
+ return sendCost
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const freeKm = Number(this.hsFreeKm) || 0;
|
|
|
|
|
+ const addFee = Number(this.hsAddFee) || 0;
|
|
|
|
|
+
|
|
|
|
|
+ // 距离小于等于免费公里数时,免费
|
|
|
|
|
+ if(distanceInKm <= freeKm){
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 距离大于免费公里数时,计算超出部分的费用
|
|
|
|
|
+ if(distanceInKm > freeKm){
|
|
|
|
|
+ let extraKm = distanceInKm - freeKm;
|
|
|
|
|
+ //向上取整,不足1公里的按1公里算
|
|
|
|
|
+ extraKm = Math.ceil(extraKm)
|
|
|
|
|
+ const cost = extraKm * addFee;
|
|
|
|
|
+ return parseFloat(cost.toFixed(2));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|