From 5209c2fb7f9b764aed59f827420e151bf649bdb3 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 26 九月 2025 14:33:49 +0800
Subject: [PATCH] 生产派工页面开发联调
---
src/utils/upload.ts | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 73 insertions(+), 0 deletions(-)
diff --git a/src/utils/upload.ts b/src/utils/upload.ts
new file mode 100644
index 0000000..e074689
--- /dev/null
+++ b/src/utils/upload.ts
@@ -0,0 +1,73 @@
+import config from '@/config'
+import { getToken } from '@/utils/auth'
+import errorCode from '@/utils/errorCode'
+import { toast, showConfirm, tansParams } from '@/utils/common'
+import { ResponseData, RequestUploadConfig } from '@/types/request'
+import useUserStore from '@/store/modules/user'
+
+let timeout = 10000
+const baseUrl = config.baseUrl
+
+const upload = <T>(config: RequestUploadConfig): Promise<ResponseData<T>> => {
+ // 鏄惁闇�瑕佽缃� token
+ const isToken = (config.headers || {}).isToken === false
+ config.header = config.header || {}
+ if (getToken() && !isToken) {
+ config.header['Authorization'] = 'Bearer ' + getToken()
+ }
+ // get璇锋眰鏄犲皠params鍙傛暟
+ if (config.params) {
+ let url = config.url + '?' + tansParams(config.params)
+ url = url.slice(0, -1)
+ config.url = url
+ }
+ const userStore = useUserStore()
+ return new Promise((resolve, reject) => {
+ uni.uploadFile({
+ timeout: config.timeout || timeout,
+ url: baseUrl + config.url,
+ filePath: config.filePath,
+ name: config.name || 'file',
+ header: config.header,
+ formData: config.formData,
+ success: (res) => {
+ let result = JSON.parse(res.data)
+ const code = result.code || 200
+ // @ts-ignore
+ const msg = errorCode[code] || result.msg || errorCode['default']
+ if (code === 200) {
+ resolve(result)
+ } else if (code == 401) {
+ showConfirm("鐧诲綍鐘舵�佸凡杩囨湡锛屾偍鍙互缁х画鐣欏湪璇ラ〉闈紝鎴栬�呴噸鏂扮櫥褰�?").then(res => {
+ if (res.confirm) {
+ userStore.logOut().then(res => {
+ uni.reLaunch({ url: '/pages/login' })
+ })
+ }
+ })
+ reject('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�')
+ } else if (code === 500) {
+ toast(msg)
+ reject('500')
+ } else if (code !== 200) {
+ toast(msg)
+ reject(code)
+ }
+ },
+ fail: (error: any) => {
+ let { message } = error
+ if (message == 'Network Error') {
+ message = '鍚庣鎺ュ彛杩炴帴寮傚父'
+ } else if (message.includes('timeout')) {
+ message = '绯荤粺鎺ュ彛璇锋眰瓒呮椂'
+ } else if (message.includes('Request failed with status code')) {
+ message = '绯荤粺鎺ュ彛' + message.substr(message.length - 3) + '寮傚父'
+ }
+ toast(message)
+ reject(error)
+ }
+ })
+ })
+}
+
+export default upload
--
Gitblit v1.9.3