|
@@ -3,14 +3,14 @@
|
|
|
<BaseCard>
|
|
|
<view class="address" @click="handleToAddress">
|
|
|
<uni-icons type="location" size="20" color="#FD9A00"></uni-icons>
|
|
|
- <text>选择您的收货地址</text>
|
|
|
+ <text>{{ deliveryOrderDto.deliveryAddress || '选择您的收货地址' }}</text>
|
|
|
<uni-icons type="right" size="20" color="#949494"></uni-icons>
|
|
|
</view>
|
|
|
</BaseCard>
|
|
|
<SizedBox :height="15" />
|
|
|
<BaseCard>
|
|
|
<view class="order-info">
|
|
|
- <text class="restaurant">美味的黄焖鸡德州店</text>
|
|
|
+ <text class="restaurant">{{ deliveryOrderDto.shopName }}</text>
|
|
|
<view class="info" v-for="item in cartItems" :key="item.id">
|
|
|
<up-image
|
|
|
class="img"
|
|
@@ -32,11 +32,11 @@
|
|
|
</view>
|
|
|
<view class="packing-fee">
|
|
|
<text>打包费</text>
|
|
|
- <text>$2</text>
|
|
|
+ <text>${{ deliveryOrderDto.packCharge }}</text>
|
|
|
</view>
|
|
|
<view class="delivery-fee">
|
|
|
<text>配送费</text>
|
|
|
- <text>$2</text>
|
|
|
+ <text>${{ deliveryOrderDto.deliveryFee }}</text>
|
|
|
</view>
|
|
|
<view class="line"></view>
|
|
|
<view class="total-fee">
|
|
@@ -50,7 +50,7 @@
|
|
|
<view class="remark" @click="handleToRemark">
|
|
|
<text class="label">备注:</text>
|
|
|
<div class="right">
|
|
|
- <text> {{ remark || "填写您的要求" }}</text>
|
|
|
+ <text> {{ remark || '填写您的要求' }}</text>
|
|
|
<uni-icons type="right" size="20" color="#949494"></uni-icons>
|
|
|
</div>
|
|
|
</view>
|
|
@@ -61,7 +61,7 @@
|
|
|
<text class="label">餐具:</text>
|
|
|
<up-number-box
|
|
|
:min="0"
|
|
|
- v-model="value"
|
|
|
+ v-model="deliveryOrderDto.tableware"
|
|
|
icon-style="color: #fd9a00"
|
|
|
></up-number-box>
|
|
|
</view>
|
|
@@ -78,80 +78,96 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { reactive, ref } from "vue";
|
|
|
-import { createOrder } from "@/api/food";
|
|
|
+import { reactive, ref } from 'vue';
|
|
|
+import { createOrder } from '@/api/food';
|
|
|
|
|
|
-import BottomSafeWrapper from "@/components/bottom-safe-wrapper/index.vue";
|
|
|
+import BottomSafeWrapper from '@/components/bottom-safe-wrapper/index.vue';
|
|
|
|
|
|
-const remark = ref("");
|
|
|
-
|
|
|
-const param = reactive({
|
|
|
- deliveryOrderDto:{
|
|
|
- shopName: "黄焖鸡德州店",
|
|
|
- deliveryAddress:"",
|
|
|
- deliveryPhone:"",
|
|
|
- deliveryRemark:"",
|
|
|
- tableware:1,
|
|
|
- orderAmount:100,
|
|
|
- payAmount:"100",
|
|
|
- packCharge:10,
|
|
|
- deliveryFee:5
|
|
|
- },
|
|
|
- deliveryOrderItemsDtoList:[{
|
|
|
- foodName:"羊肉泡馍",
|
|
|
- price:30,
|
|
|
- number:2
|
|
|
- },{
|
|
|
- foodName:"鸡蛋灌饼",
|
|
|
- price:5,
|
|
|
- number:5
|
|
|
- }]
|
|
|
-})
|
|
|
+const remark = ref('');
|
|
|
+const deliveryOrderDto = reactive({
|
|
|
+ shopName: '', // 店铺名称
|
|
|
+ deliveryAddress: '', // 地址
|
|
|
+ deliveryPhone: '', // 电话
|
|
|
+ deliveryRemark: '', // 备注
|
|
|
+ tableware: 0, // 餐具数量
|
|
|
+ orderAmount: 0, // 订单金额
|
|
|
+ payAmount: '0', // 应付金额
|
|
|
+ packCharge: 0, // 打包费
|
|
|
+ deliveryFee: 0, // 配送费
|
|
|
+});
|
|
|
|
|
|
/**
|
|
|
* To the address list page
|
|
|
*/
|
|
|
function handleToAddress() {
|
|
|
- uni.navigateTo({
|
|
|
- url: "/pages/food/submit-order-address-list/index",
|
|
|
- events: {
|
|
|
- getAddress: ({ data }) => {
|
|
|
- console.log(data);
|
|
|
- },
|
|
|
+ wx.chooseAddress({
|
|
|
+ success(res) {
|
|
|
+ deliveryOrderDto.deliveryAddress =
|
|
|
+ res.provinceName + res.cityName + res.countyName + res.detailInfo;
|
|
|
+ deliveryOrderDto.deliveryPhone = res.telNumber;
|
|
|
+ console.log(res.userName);
|
|
|
+ console.log(res.postalCode);
|
|
|
+ console.log(res.provinceName);
|
|
|
+ console.log(res.cityName);
|
|
|
+ console.log(res.countyName);
|
|
|
+ console.log(res.detailInfo);
|
|
|
+ console.log(res.nationalCode);
|
|
|
+ console.log(res.telNumber);
|
|
|
+ },
|
|
|
+ complete(res) {
|
|
|
+ console.log(res);
|
|
|
},
|
|
|
});
|
|
|
+ // uni.navigateTo({
|
|
|
+ // url: "/pages/food/submit-order-address-list/index",
|
|
|
+ // events: {
|
|
|
+ // getAddress: ({ data }) => {
|
|
|
+ // console.log(data);
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // });
|
|
|
}
|
|
|
|
|
|
function handleToRemark() {
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/common/textarea-page/index?input=${remark.value}&title=备注信息`,
|
|
|
events: {
|
|
|
- getInputValues: ({ data }) => (remark.value = data),
|
|
|
+ getInputValues: ({ data }) => {
|
|
|
+ remark.value = data;
|
|
|
+ deliveryOrderDto.deliveryRemark = data;
|
|
|
+ },
|
|
|
},
|
|
|
});
|
|
|
}
|
|
|
|
|
|
async function settlement() {
|
|
|
- const deliveryOrderItemsDtoList = cartItems.value.map(i => {
|
|
|
+ const deliveryOrderItemsDtoList = cartItems.value.map((i) => {
|
|
|
return {
|
|
|
foodName: i.name,
|
|
|
price: i.price,
|
|
|
- number: i.count
|
|
|
- }
|
|
|
- })
|
|
|
- const { data } = await createOrder({deliveryOrderItemsDtoList, deliveryOrderDto:param.deliveryOrderDto})
|
|
|
+ number: i.count,
|
|
|
+ };
|
|
|
+ });
|
|
|
+ const { data } = await createOrder({ deliveryOrderItemsDtoList, deliveryOrderDto });
|
|
|
}
|
|
|
|
|
|
const totalPrice = computed(() => {
|
|
|
- const sum = cartItems.value.reduce((sum, item) => sum + (item.price * item.count), 0);
|
|
|
- return parseFloat((sum).toFixed(2));
|
|
|
+ const sum = cartItems.value.reduce((sum, item) => sum + item.price * item.count, 0);
|
|
|
+ const orderAmount = parseFloat(sum.toFixed(2)) + Number(deliveryOrderDto.packCharge) + Number(deliveryOrderDto.deliveryFee);
|
|
|
+ deliveryOrderDto.orderAmount = orderAmount;
|
|
|
+ deliveryOrderDto.payAmount = orderAmount;
|
|
|
+ return orderAmount;
|
|
|
});
|
|
|
|
|
|
const cartItems = ref([]);
|
|
|
|
|
|
onLoad(async () => {
|
|
|
cartItems.value = await JSON.parse(uni.getStorageSync('cartItems') || '[]');
|
|
|
-})
|
|
|
+ const shopInfo = await JSON.parse(uni.getStorageSync('shopInfo') || '{}');
|
|
|
+ deliveryOrderDto.shopName = shopInfo.name;
|
|
|
+ deliveryOrderDto.deliveryFee = shopInfo.deliveryCharge;
|
|
|
+ deliveryOrderDto.balingCharge = shopInfo.balingCharge;
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|