Эх сурвалжийг харах

Merge branch 'development'

liangan 2 долоо хоног өмнө
parent
commit
cb947e6450

+ 0 - 1
openapi-ts-request.config.ts

@@ -4,7 +4,6 @@ export default [
   {
     schemaPath: 'http://petstore.swagger.io/v2/swagger.json',
     serversPath: './src/service/app',
-    requestLibPath: `import request from '@/utils/request';\n import { CustomRequestOptions } from '@/interceptors/request';`,
     requestOptionsType: 'CustomRequestOptions',
     isGenReactQuery: true,
     reactQueryMode: 'vue',

+ 2 - 3
src/locale/bn.json

@@ -61,7 +61,6 @@
   "orderDetail.cancel.loading": "অর্ডার বাতিল করা হচ্ছে...",
   "orderDetail.cancel.success": "অর্ডার সফলভাবে বাতিল করা হয়েছে!",
   "orderDetail.cancel.error": "অর্ডার বাতিল করতে ব্যর্থ হয়েছে। আবার চেষ্টা করুন।",
-  "orderDetail.cancel.network": "নেটওয়ার্ক ত্রুটি। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।",
   "orderDetail.payment.success": "পেমেন্ট সফল হয়েছে",
   "wallet.withdraw.success": "উত্তোলনের অনুরোধ সফলভাবে জমা দেওয়া হয়েছে",
   "wallet.withdraw.fail": "উত্তোলনের অনুরোধ জমা দিতে ব্যর্থ হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
@@ -73,7 +72,6 @@
   "addressBook.select.binding": "ঠিকানা বাইন্ড করা হচ্ছে...",
   "addressBook.select.success": "ঠিকানা সফলভাবে বাইন্ড হয়েছে!",
   "addressBook.select.failed": "ঠিকানা বাইন্ড করতে ব্যর্থ। অনুগ্রহ করে আবার চেষ্টা করুন।",
-  "addressBook.select.networkError": "নেটওয়ার্ক ত্রুটি। অনুগ্রহ করে আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।",
   "myProfile.title": "আমার প্রোফাইল",
   "myProfile.avatar": "অবতার",
   "myProfile.userId": "ইউজার আইডি",
@@ -233,6 +231,8 @@
   "common.saving": "সংরক্ষণ করা হচ্ছে...",
   "common.success": "সফল",
   "common.error": "ত্রুটি",
+  "common.error.request": "অনুরোধ ত্রুটি",
+  "common.error.network": "নেটওয়ার্ক ত্রুটি, অন্য নেটওয়ার্ক চেষ্টা করুন",
   "common.confirm": "নিশ্চিত করুন",
   "common.cancel": "বাতিল",
   "common.submit": "জমা দিন",
@@ -368,7 +368,6 @@
   "checkout.dialog.viewOrder": "অর্ডার দেখুন",
   "checkout.dialog.paymentFailed": "পেমেন্ট ব্যর্থ!\nঅনুগ্রহ করে আবার চেষ্টা করুন বা সমর্থন যোগাযোগ করুন।",
   "checkout.dialog.retryPayment": "পেমেন্ট আবার চেষ্টা করুন",
-  "checkout.dialog.networkError": "নেটওয়ার্ক সংযোগ ব্যর্থ।\nঅনুগ্রহ করে আপনার নেটওয়ার্ক সেটিংস পরীক্ষা করুন।",
   "checkout.dialog.retry": "আবার চেষ্টা করুন",
   "checkout.dialog.gotIt": "বুঝেছি",
   "checkout.toast.redirecting": "অর্ডারে পুনঃনির্দেশিত হচ্ছে...",

+ 2 - 3
src/locale/en.json

@@ -61,7 +61,6 @@
   "orderDetail.cancel.loading": "Cancelling order...",
   "orderDetail.cancel.success": "Order cancelled successfully!",
   "orderDetail.cancel.error": "Failed to cancel order. Please try again.",
-  "orderDetail.cancel.network": "Network error. Please check your connection and try again.",
   "orderDetail.payment.success": "Payment Successful",
   "wallet.withdraw.success": "Withdrawal request submitted successfully",
   "wallet.withdraw.fail": "Failed to submit withdrawal request, please try again",
@@ -73,7 +72,6 @@
   "addressBook.select.binding": "Binding address...",
   "addressBook.select.success": "Address bound successfully!",
   "addressBook.select.failed": "Failed to bind address. Please try again.",
-  "addressBook.select.networkError": "Network error. Please check your connection and try again.",
   "myProfile.title": "My Profile",
   "myProfile.avatar": "Avatar",
   "myProfile.userId": "User ID",
@@ -233,6 +231,8 @@
   "common.saving": "Saving...",
   "common.success": "Success",
   "common.error": "Error",
+  "common.error.request": "Request error",
+  "common.error.network": "Network error, please try another network",
   "common.confirm": "Confirm",
   "common.cancel": "Cancel",
   "common.submit": "Submit",
@@ -368,7 +368,6 @@
   "checkout.dialog.viewOrder": "View Order",
   "checkout.dialog.paymentFailed": "Payment failed!\nPlease try again or contact support.",
   "checkout.dialog.retryPayment": "Retry Payment",
-  "checkout.dialog.networkError": "Network connection failed.\nPlease check your network settings.",
   "checkout.dialog.retry": "Retry",
   "checkout.dialog.gotIt": "Got it",
   "checkout.toast.redirecting": "Redirecting to orders...",

+ 2 - 3
src/locale/zh-Hans.json

@@ -61,7 +61,6 @@
   "orderDetail.cancel.loading": "正在取消订单...",
   "orderDetail.cancel.success": "订单已成功取消!",
   "orderDetail.cancel.error": "取消订单失败,请重试。",
-  "orderDetail.cancel.network": "网络错误,请检查网络连接后重试。",
   "orderDetail.payment.success": "支付成功",
   "wallet.withdraw.success": "提现申请提交成功",
   "wallet.withdraw.fail": "提现申请提交失败,请重试",
@@ -73,7 +72,6 @@
   "addressBook.select.binding": "正在绑定地址...",
   "addressBook.select.success": "地址绑定成功!",
   "addressBook.select.failed": "绑定地址失败,请重试。",
-  "addressBook.select.networkError": "网络错误,请检查网络连接后重试。",
   "myProfile.title": "个人资料",
   "myProfile.avatar": "头像",
   "myProfile.userId": "用户ID",
@@ -233,6 +231,8 @@
   "common.saving": "保存中...",
   "common.success": "成功",
   "common.error": "错误",
+  "common.error.request": "请求错误",
+  "common.error.network": "网络错误,换个网络试试",
   "common.confirm": "确认",
   "common.cancel": "取消",
   "common.submit": "提交",
@@ -368,7 +368,6 @@
   "checkout.dialog.viewOrder": "查看订单",
   "checkout.dialog.paymentFailed": "支付失败!\n请重试或联系客服。",
   "checkout.dialog.retryPayment": "重试支付",
-  "checkout.dialog.networkError": "网络连接失败。\n请检查您的网络设置。",
   "checkout.dialog.retry": "重试",
   "checkout.dialog.gotIt": "知道了",
   "checkout.toast.redirecting": "正在跳转到订单...",

+ 1 - 1
src/pages/mine/addressBook.vue

@@ -86,7 +86,7 @@ async function selectAddressForOrder(address: any) {
   }
   catch (error: any) {
     console.error('Bind address error:', error)
-    toast.error(t('addressBook.select.networkError'))
+    toast.error(t('addressBook.select.failed'))
   }
   finally {
     uni.hideLoading()

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

@@ -191,7 +191,7 @@ async function cancelOrder() {
   catch (error: any) {
     console.error('Cancel order error:', error)
     // 显示错误提示
-    toast.error(t('orderDetail.cancel.network'))
+    toast.error(t('orderDetail.cancel.error'))
   }
   finally {
     uni.hideLoading()

+ 1 - 0
src/pages/wallet/myWallet.vue

@@ -99,6 +99,7 @@ onShow(() => {
   getEnum()
   getWalletInfo()
   getUnpaidOrder()
+  paging.value.reload()
 })
 </script>
 

+ 2 - 1
src/typings.d.ts

@@ -3,7 +3,8 @@
 declare global {
   interface IResData<T> {
     code: number | string
-    message: string
+    message?: string
+    msg?: string
     data: T
   }
 

+ 10 - 5
src/utils/http.ts

@@ -1,4 +1,6 @@
 import type { CustomRequestOptions } from '@/interceptors/request'
+import { t } from '@/locale'
+import { useUserStore } from '@/store/user'
 import { toPage } from '@/utils/page'
 import { getLastPageUrl } from './index'
 import { toast } from './toast'
@@ -14,6 +16,7 @@ export function http<T>(options: CustomRequestOptions) {
       // #endif
       // 响应成功
       success(res: any) {
+        const userStore = useUserStore()
         // 状态码 2xx,参考 axios 的设计
         if (res.statusCode >= 200 && res.statusCode < 300) {
           // 2.1 提取核心数据 res.data
@@ -21,31 +24,33 @@ export function http<T>(options: CustomRequestOptions) {
             resolve(res.data as IResData<T>)
           }
           else if (res.data.code === '598') {
-            toast.error((res.data as IResData<T>).message)
+            console.log('598', res.data)
+            userStore.removeUserInfo()
+            toast.error((res.data as IResData<T>).msg || (res.data as IResData<T>).message)
             const redirect = getLastPageUrl()
             toPage({ url: '/pages/login/login', params: { redirect }, isReLaunch: true })
           }
           else {
-            toast.error((res.data as IResData<T>).message || '请求错误')
+            toast.error((res.data as IResData<T>).msg || (res.data as IResData<T>).message || t('common.error.request'))
             reject(res.data)
           }
         }
         else if (res.statusCode === 401) {
           // 401错误  -> 清理用户信息,跳转到登录页
-          // userStore.clearUserInfo()
+          // userStore.removeUserInfo()
           // uni.navigateTo({ url: '/pages/login/login' })
           reject(res)
         }
         else {
           // 其他错误 -> 根据后端错误信息轻提示
           !options.hideErrorToast
-          && toast.info((res.data as IResData<T>).message)
+          && toast.info((res.data as IResData<T>).msg || (res.data as IResData<T>).message || t('common.error.request'))
           reject(res)
         }
       },
       // 响应失败
       fail(err) {
-        toast.error('网络错误,换个网络试试')
+        toast.error(t('common.error.network'))
         reject(err)
       },
     })

+ 0 - 78
src/utils/request.ts

@@ -1,78 +0,0 @@
-import type { CustomRequestOptions } from '@/interceptors/request'
-
-/**
- * 请求方法: 主要是对 uni.request 的封装,去适配 openapi-ts-request 的 request 方法
- * @param options 请求参数
- * @returns 返回 Promise 对象
- */
-function http<T>(options: CustomRequestOptions) {
-  // 1. 返回 Promise 对象
-  return new Promise<T>((resolve, reject) => {
-    uni.request({
-      ...options,
-      dataType: 'json',
-      // #ifndef MP-WEIXIN
-      responseType: 'json',
-      // #endif
-      // 响应成功
-      success(res) {
-        // 状态码 2xx,参考 axios 的设计
-        if (res.statusCode >= 200 && res.statusCode < 300) {
-          // 2.1 提取核心数据 res.data
-          resolve(res.data as T)
-        }
-        else if (res.statusCode === 401) {
-          // 401错误  -> 清理用户信息,跳转到登录页
-          // userStore.clearUserInfo()
-          // uni.navigateTo({ url: '/pages/login/login' })
-          reject(res)
-        }
-        else {
-          // 其他错误 -> 根据后端错误信息轻提示
-          !options.hideErrorToast
-          && uni.showToast({
-            icon: 'none',
-            title: (res.data as T & { msg?: string })?.msg || '请求错误',
-          })
-          reject(res)
-        }
-      },
-      // 响应失败
-      fail(err) {
-        uni.showToast({
-          icon: 'none',
-          title: '网络错误,换个网络试试',
-        })
-        reject(err)
-      },
-    })
-  })
-}
-
-/*
- * openapi-ts-request 工具的 request 跨客户端适配方法
- */
-export default function request<T = unknown>(
-  url: string,
-  options: Omit<CustomRequestOptions, 'url'> & {
-    params?: Record<string, unknown>
-    headers?: Record<string, unknown>
-  },
-) {
-  const requestOptions = {
-    url,
-    ...options,
-  }
-
-  if (options.params) {
-    requestOptions.query = requestOptions.params
-    delete requestOptions.params
-  }
-
-  if (options.headers) {
-    requestOptions.header = options.headers
-    delete requestOptions.headers
-  }
-
-  return http<T>(requestOptions)
-}