Explorar o código

feat(order): 新增通过订单号查询支付地址接口及相关功能

- 在apiDefinitions中添加POST请求路径 /smqjh-oms/api/v1/oil/order/findByPayUrl
- 在globals.d.ts中定义findByPayUrl接口的请求与响应类型
- user store中添加handleCommonMiniProgram跳转小程序方法
- user store中添加handleCommonGoXiaoJuPay调用支付地址接口方法并处理跳转
- 修改orderDetail页面使用handleCommonMiniProgram替代硬编码跳转
- voucher页面分页请求调整,使用reload替代send刷新数据
- voucher页面取消订单、付款功能接入user store对应方法
- voucher页面调整支付倒计时和样式显示
- voucherDetail页面取消订单、付款、联系客服功能接入user store对应方法
zhangtao hai 3 días
pai
achega
da0a5d5728

+ 1 - 0
src/api/apiDefinitions.ts

@@ -112,6 +112,7 @@ export default {
   'general.get_smqjh_oms_api_v1_oil_order_payresultinfo': ['GET', '/smqjh-oms/api/v1/oil/order/payResultInfo'],
   'general.get_api_v1_oil_order_payresultinfo': ['GET', '/api/v1/oil/order/payResultInfo'],
   'general.get_api_v1_oil_order_checkonpayorder': ['GET', '/api/v1/oil/order/checkOnPayOrder'],
+  'general.post_smqjh_oms_api_v1_oil_order_findbypayurl': ['POST', '/smqjh-oms/api/v1/oil/order/findByPayUrl'],
   'general.post_api_v1_oil_callback_third_party': ['POST', '/api/v1/oil/callback/third-party'],
   'general.get_api_v1_order_orderlist': ['GET', '/api/v1/order/orderList'],
   'general.get_smqjh_oms_api_v1_order_orderinfo': ['GET', '/smqjh-oms/api/v1/order/orderInfo'],

+ 42 - 0
src/api/globals.d.ts

@@ -7395,6 +7395,48 @@ declare global {
       get_api_v1_oil_order_checkonpayorder<Config extends Alova2MethodConfig<ResultCheckOnPayOrderVO>>(
         config?: Config
       ): Alova2Method<ResultCheckOnPayOrderVO, 'general.get_api_v1_oil_order_checkonpayorder', Config>;
+      /**
+       * ---
+       *
+       * [POST] 根据订单编号查询支付地址
+       *
+       * **path:** /smqjh-oms/api/v1/oil/order/findByPayUrl
+       *
+       * ---
+       *
+       * **Query Parameters**
+       * ```ts
+       * type QueryParameters = {
+       *   // 订单ID
+       *   orderNumber: string
+       * }
+       * ```
+       *
+       * ---
+       *
+       * **Response**
+       * ```ts
+       * type Response = {
+       *   // 返回状态码
+       *   code?: string
+       *   // 返回数据对象
+       *   data?: string
+       *   msg?: string
+       * }
+       * ```
+       */
+      post_smqjh_oms_api_v1_oil_order_findbypayurl<
+        Config extends Alova2MethodConfig<ResultString> & {
+          params: {
+            /**
+             * 订单ID
+             */
+            orderNumber: string;
+          };
+        }
+      >(
+        config: Config
+      ): Alova2Method<ResultString, 'general.post_smqjh_oms_api_v1_oil_order_findbypayurl', Config>;
       /**
        * ---
        *

+ 1 - 1
src/pages/orderDetail/index.vue

@@ -75,7 +75,7 @@ function handleGoHome() {
   useTabbar().setTabbarItemActive('home')
 }
 function handleContact() {
-  window.location.href = `weixin://dl/business/?appid=wx43b5b906cc30ed0b&path=subPack-xsb/orderDetaile/index&query=${orderInfo.value?.orderNumber}&env_version=release`
+  useUserStore().handleCommonMiniProgram(orderInfo.value?.orderNumber as string)
 }
 </script>
 

+ 13 - 15
src/pages/voucher/index.vue

@@ -32,7 +32,7 @@ const statusMap = new Map([
 ])
 
 // 分页请求
-const { data, send, isLastPage, page } = usePagination(
+const { data, isLastPage, page, reload } = usePagination(
   (pageNum, pageSize) => Apis.app.get_smqjh_system_app_api_membercoupon_page({
     params: { pageNum, pageSize, useStatus: currentTab.value },
   }),
@@ -48,9 +48,8 @@ const { data, send, isLastPage, page } = usePagination(
 // 切换 Tab
 function handleTabChange(value: number) {
   currentTab.value = value
-  data.value = []
   page.value = 1
-  send()
+  reload()
 }
 
 function handleUse(_item: AppMemberCouponVO) {
@@ -59,13 +58,16 @@ function handleUse(_item: AppMemberCouponVO) {
 }
 
 // 取消订单(占位)
-function handleCancelOrder(_item: AppMemberCouponVO) {
-  useGlobalToast().show('功能开发中')
+async function handleCancelOrder(_item: AppMemberCouponVO) {
+  // useGlobalToast().show('功能开发中')
+  await useUserStore().handleCommonCancelOrder(_item.lockOrderId as string)
+  reload()
 }
 
 // 付款(占位)
 function handlePay(_item: AppMemberCouponVO) {
-  useGlobalToast().show('功能开发中')
+  // useGlobalToast().show('功能开发中')
+  useUserStore().handleCommonGoXiaoJuPay(_item.lockOrderId as string)
 }
 
 // 计算倒计时剩余毫秒数
@@ -79,9 +81,8 @@ function getCountdownTime(orderCreateTime?: string): number {
 }
 
 onShow(() => {
-  data.value = []
   page.value = 1
-  send()
+  reload()
 })
 
 onReachBottom(() => {
@@ -89,12 +90,6 @@ onReachBottom(() => {
     page.value++
   }
 })
-
-watch(() => currentTab.value, () => {
-  data.value = []
-  page.value = 1
-  send()
-})
 </script>
 
 <template>
@@ -132,7 +127,7 @@ watch(() => currentTab.value, () => {
               </view>
             </view>
             <!-- 待支付倒计时 -->
-            <view v-if="item.lockStatus === 1 && currentTab === 2" class="text-24rpx text-#1890ff">
+            <view v-if="item.lockStatus === 1 && currentTab === 2" class="flex items-center text-24rpx text-#1890ff">
               待支付(<wd-count-down :time="getCountdownTime(item.orderCreateTime)" format="还剩mm:ss" />)
             </view>
           </view>
@@ -212,4 +207,7 @@ watch(() => currentTab.value, () => {
   color: #333 !important;
   border-radius: 32rpx !important;
 }
+:deep(.wd-count-down){
+  color: #1890ff !important;
+}
 </style>

+ 8 - 4
src/pages/voucherDetail/index.vue

@@ -74,18 +74,22 @@ function handleViewOrder() {
 }
 
 // 取消订单(占位)
-function handleCancelOrder() {
-  useGlobalToast().show('功能开发中')
+async function handleCancelOrder() {
+  // useGlobalToast().show('功能开发中')
+  await useUserStore().handleCommonCancelOrder(couponInfo.value?.orderNumber as string)
+  send(couponId.value)
 }
 
 // 付款(占位)
 function handlePay() {
-  useGlobalToast().show('功能开发中')
+  // useGlobalToast().show('功能开发中')
+  useUserStore().handleCommonGoXiaoJuPay(couponInfo.value?.orderNumber as string)
 }
 
 // 联系客服(占位)
 function handleContact() {
-  useGlobalToast().show('功能开发中')
+  // useGlobalToast().show('功能开发中')
+  useUserStore().handleCommonMiniProgram(couponInfo.value?.orderNumber as string)
 }
 </script>
 

+ 17 - 0
src/store/user.ts

@@ -246,5 +246,22 @@ export const useUserStore = defineStore('user', {
       window.location.href = `${path}&redirectUrl=${url}`
       uni.hideLoading()
     },
+    /**
+     * 跳转小程序
+     * @param orderNumber
+     */
+    handleCommonMiniProgram(orderNumber: string) {
+      window.location.href = `weixin://dl/business/?appid=wx43b5b906cc30ed0b&path=subPack-refueling/orderDetaile/index&query=${orderNumber}&env_version=release`
+    },
+    async handleCommonGoXiaoJuPay(orderNumber: string) {
+      try {
+        const res = await Apis.general.post_smqjh_oms_api_v1_oil_order_findbypayurl({ params: { orderNumber } })
+        this.handleCommonPath(res.data as string)
+      }
+      catch (error) {
+        console.log(error)
+        useGlobalToast().show('获取支付信息失败')
+      }
+    },
   },
 })