From 1617b094000271ca58c647e225983eb92c726696 Mon Sep 17 00:00:00 2001 From: jqtmviyu Date: Sun, 11 May 2025 11:48:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20:sparkles:=20=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E4=BA=A4=E4=BA=92=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages.json | 12 ++ src/pagesOrder/create/create.vue | 37 +++- src/pagesOrder/detail/detail.vue | 263 ++++++++++++++++++++++---- src/pagesOrder/payment/payment.vue | 95 ++++++++++ src/services/order.ts | 118 +++++++++++- src/services/pay.ts | 25 +++ src/stores/modules/selectedAddress.ts | 38 +++- 7 files changed, 520 insertions(+), 68 deletions(-) create mode 100644 src/pagesOrder/payment/payment.vue create mode 100644 src/services/pay.ts diff --git a/src/pages.json b/src/pages.json index e8cffb3..966154d 100644 --- a/src/pages.json +++ b/src/pages.json @@ -159,6 +159,18 @@ "navigationBarTitleText": "订单详情", "navigationStyle": "custom" } + }, + { + "path": "payment/payment", + "style": { + "navigationBarTitleText": "支付结果" + } + }, + { + "path": "list/list", + "style": { + "navigationBarTitleText": "订单列表" + } } ] } diff --git a/src/pagesOrder/create/create.vue b/src/pagesOrder/create/create.vue index 3a3b84c..f246ccd 100644 --- a/src/pagesOrder/create/create.vue +++ b/src/pagesOrder/create/create.vue @@ -95,7 +95,12 @@ diff --git a/src/services/order.ts b/src/services/order.ts index e51ba0b..5b02332 100644 --- a/src/services/order.ts +++ b/src/services/order.ts @@ -1,23 +1,31 @@ -import type { OrderCreateParams, OrderCreateResult, OrderPreResult } from '@/types/order' +import type { + OrderCreateParams, + OrderCreateResult, + OrderListParams, + OrderListResult, + OrderLogisticResult, + OrderPreResult, + OrderResult, +} from '@/types/order' import { http } from '@/utils/http' /** 订单状态枚举 */ export enum OrderState { /** 待付款 */ - DaiFuKuan = 1, + PendingPayment = 1, /** 待发货 */ - DaiFaHuo = 2, + PendingShipment = 2, /** 待收货 */ - DaiShouHuo = 3, + PendingDelivery = 3, /** 待评价 */ - DaiPingJia = 4, + PendingReview = 4, /** 已完成 */ - YiWanCheng = 5, + Completed = 5, /** 已取消 */ - YiQuXiao = 6, + Cancelled = 6, } /** 订单状态列表 */ -export const orderStateList = [ +export const OrderStateList = [ { id: 0, text: '' }, { id: 1, text: '待付款' }, { id: 2, text: '待发货' }, @@ -54,6 +62,17 @@ export const getMemberOrderPreNowAPI = (data: getMemberOrderPreNowParams) => { }) } +/** + * 填写订单-再次购买 + * @param id 订单id + */ +export const getMemberOrderRepurchaseByIdAPI = (id: string) => { + return http({ + method: 'GET', + url: `/member/order/repurchase/${id}`, + }) +} + /** * 提交订单 * @param data - 订单信息 @@ -65,3 +84,86 @@ export const postCreateOrderAPI = (data: OrderCreateParams) => { data, }) } + +/** + * 获取订单详情 + * @param id - 订单ID + */ +export const getMemberOrderDetailAPI = (id: string) => { + return http({ + url: `/member/order/${id}`, + method: 'GET', + }) +} + +/** + * 模拟发货: 只在测试环境且待发货状态时生效 + * @param id - 订单ID + */ +export const getMockOrderConsignmentAPI = (id: string) => { + return http({ + url: `/member/order/consignment/${id}`, + method: 'GET', + }) +} + +/** + * 确认收货 + * @param id - 订单ID + */ +export const putMemberOrderReceiptAPI = (id: string) => { + return http({ + url: `/member/order/${id}/receipt`, + method: 'PUT', + }) +} + +/** + * 获取物流信息: 在待收货、待评价、已完成状态时生效 + * @param id - 订单ID + */ +export const getMemberOrderLogisticsAPI = (id: string) => { + return http({ + url: `/member/order/${id}/logistics`, + method: 'GET', + }) +} + +/** + * 删除订单 + * @param id - 订单ID + */ +export const deleteMemberOrderAPI = (data: { ids: string[] }) => { + return http({ + url: '/member/order', + method: 'DELETE', + data, + }) +} + +/** + * 取消订单 + * @param id - 订单ID + */ +export const putMemberOrderCancleAPI = (id: string, data: { cancelReason: string }) => { + return http({ + url: `/member/order/${id}/cancel`, + method: 'PUT', + data, + }) +} + +/** + * 获取订单列表 + * @param data - 订单列表参数 + * @param data.page - 页码 + * @param data.pageSize - 每页条数 + * @param data.orderState - 订单状态:1待付款 2待发货 3待收货 4待评价 5已完成 6已取消 + */ +export const getMemberOrderListAPI = (data: OrderListParams) => { + return http({ + url: '/member/order', + method: 'GET', + data, + }) +} diff --git a/src/services/pay.ts b/src/services/pay.ts new file mode 100644 index 0000000..3803655 --- /dev/null +++ b/src/services/pay.ts @@ -0,0 +1,25 @@ +import { http } from '@/utils/http' + +/** + * 获取微信支付参数 + * @param data 订单Id + */ +export const getWechatPayParamsAPI = (data: { orderId: string }) => { + return http({ + url: '/pay/wxpay/miniapp', + method: 'GET', + data, + }) +} + +/** + * 模拟支付: 只在测试环境且待发货状态时生效 + * @param data 订单Id + */ +export const getMockPayParamsAPI = (data: { orderId: string }) => { + return http({ + url: '/pay/mock', + method: 'GET', + data, + }) +} diff --git a/src/stores/modules/selectedAddress.ts b/src/stores/modules/selectedAddress.ts index 41374a3..4c467dc 100644 --- a/src/stores/modules/selectedAddress.ts +++ b/src/stores/modules/selectedAddress.ts @@ -5,15 +5,33 @@ import { ref } from 'vue' /** * 选中的地址 */ -export const useSelectedAddressStore = defineStore('selectedAddress', () => { - const selectedAddress = ref(null) +export const useSelectedAddressStore = defineStore( + 'selectedAddress', + () => { + const selectedAddress = ref(null) - const setSelectedAddress = (address: AddressItem) => { - selectedAddress.value = address - } + const setSelectedAddress = (address: AddressItem) => { + selectedAddress.value = address + } - return { - selectedAddress, - setSelectedAddress, - } -}) + return { + selectedAddress, + setSelectedAddress, + } + }, + { + // 网页端配置 + // persist: true, + // 小程序端配置 + persist: { + storage: { + getItem(key) { + return uni.getStorageSync(key) + }, + setItem(key, value) { + uni.setStorageSync(key, value) + }, + }, + }, + }, +)