diff --git a/src/hooks/useUpload.ts b/src/hooks/useUpload.ts index d14e1f1..469aef0 100644 --- a/src/hooks/useUpload.ts +++ b/src/hooks/useUpload.ts @@ -1,3 +1,6 @@ +// TODO: 别忘加更改环境变量的 VITE_UPLOAD_BASEURL 地址。 +const VITE_UPLOAD_BASEURL = import.meta.env.VITE_UPLOAD_BASEURL + /** * useUpload 是一个定制化的请求钩子,用于处理上传图片。 * @param formData 额外传递给后台的数据,如{name: '菲鸽'}。 @@ -7,7 +10,6 @@ export default function useUpload(formData: Record = {}) { const loading = ref(false) const error = ref(false) const data = ref() - const url = import.meta.env.VITE_UPLOAD_BASEURL const run = () => { // #ifdef MP-WEIXIN // 微信小程序从基础库 2.21.0 开始, wx.chooseImage 停止维护,请使用 uni.chooseMedia 代替。 @@ -19,23 +21,7 @@ export default function useUpload(formData: Record = {}) { console.log(res) loading.value = true const tempFilePath = res.tempFiles[0].tempFilePath - uni.uploadFile({ - url, - filePath: tempFilePath, - name: 'file', - formData, - success: (uploadFileRes) => { - console.log(uploadFileRes.data) - data.value = uploadFileRes.data as T - }, - fail: (err) => { - console.log('uni.uploadFile err->', err) - error.value = true - }, - complete: () => { - loading.value = false - }, - }) + uploadFile({ tempFilePath, formData, data, error, loading }) }, fail: (err) => { console.log('uni.chooseMedia err->', err) @@ -50,23 +36,7 @@ export default function useUpload(formData: Record = {}) { console.log(res) loading.value = true const tempFilePath = res.tempFilePaths[0] - uni.uploadFile({ - url, - filePath: tempFilePath, - name: 'file', - formData, - success: (uploadFileRes) => { - console.log(uploadFileRes.data) - data.value = uploadFileRes.data as T - }, - fail: (err) => { - console.log('uni.uploadFile err->', err) - error.value = true - }, - complete: () => { - loading.value = false - }, - }) + uploadFile({ tempFilePath, formData, data, error, loading }) }, fail: (err) => { console.log('uni.chooseImage err->', err) @@ -78,3 +48,23 @@ export default function useUpload(formData: Record = {}) { return { loading, error, data, run } } + +function uploadFile({ tempFilePath, formData, data, error, loading }) { + uni.uploadFile({ + url: VITE_UPLOAD_BASEURL, + filePath: tempFilePath, + name: 'file', + formData, + success: (uploadFileRes) => { + console.log(uploadFileRes, typeof uploadFileRes.data) + data.value = JSON.parse(uploadFileRes.data) as T + }, + fail: (err) => { + console.log('uni.uploadFile err->', err) + error.value = true + }, + complete: () => { + loading.value = false + }, + }) +} diff --git a/src/hooks/useUpload2.ts b/src/hooks/useUpload2.ts deleted file mode 100644 index b99e374..0000000 --- a/src/hooks/useUpload2.ts +++ /dev/null @@ -1,82 +0,0 @@ -/** - * useUpload 是一个定制化的请求钩子,用于处理上传图片。 - * @param url 上传图片的后台地址,如 https://ukw0y1.laf.run/upload。 - * 如果上传地址是固定的,那就可以配置到 .env 里面,函数里面不需要再传了。 - * @param formData 额外传递给后台的数据,如{name: '菲鸽'}。 - * @returns 返回一个对象{loading, error, data, run},包含请求的加载状态、错误信息、响应数据和手动触发请求的函数。 - */ -export default function useUpload(url: string, formData: Record = {}) { - const loading = ref(false) - const error = ref(false) - const data = ref() - - const run = () => { - // #ifdef MP-WEIXIN - // 微信小程序从基础库 2.21.0 开始, wx.chooseImage 停止维护,请使用 uni.chooseMedia 代替。 - // 微信小程序在2023年10月17日之后,使用本API需要配置隐私协议 - uni.chooseMedia({ - count: 1, - mediaType: ['image'], - success: (res) => { - console.log(res) - loading.value = true - const tempFilePath = res.tempFiles[0].tempFilePath - uni.uploadFile({ - url, - filePath: tempFilePath, - name: 'file', - formData, - success: (uploadFileRes) => { - console.log(uploadFileRes.data) - data.value = uploadFileRes.data as T - }, - fail: (err) => { - console.log('uni.uploadFile err->', err) - error.value = true - }, - complete: () => { - loading.value = false - }, - }) - }, - fail: (err) => { - console.log('uni.chooseMedia err->', err) - error.value = true - }, - }) - // #endif - // #ifndef MP-WEIXIN - uni.chooseImage({ - count: 1, - success: (res) => { - console.log(res) - loading.value = true - const tempFilePath = res.tempFilePaths[0] - uni.uploadFile({ - url, - filePath: tempFilePath, - name: 'file', - formData, - success: (uploadFileRes) => { - console.log(uploadFileRes.data) - data.value = uploadFileRes.data as T - }, - fail: (err) => { - console.log('uni.uploadFile err->', err) - error.value = true - }, - complete: () => { - loading.value = false - }, - }) - }, - fail: (err) => { - console.log('uni.chooseImage err->', err) - error.value = true - }, - }) - // #endif - } - - return { loading, error, data, run } -} diff --git a/src/manifest.json b/src/manifest.json index 0999421..bbd76ff 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,5 +1,5 @@ { - "name": "unibest-base", + "name": "unibest", "appid": "H57F2ACE4", "description": "", "versionName": "1.0.0", diff --git a/src/pages.json b/src/pages.json index d62bd4a..4f69a5f 100644 --- a/src/pages.json +++ b/src/pages.json @@ -52,38 +52,6 @@ "style": { "navigationBarTitleText": "关于" } - }, - { - "path": "pages/index/request", - "type": "page", - "layout": "demo", - "style": { - "navigationBarTitleText": "请求" - } - }, - { - "path": "pages/index/request2", - "type": "page", - "layout": "demo", - "style": { - "navigationBarTitleText": "请求-状态一体化" - } - }, - { - "path": "pages/index/upload", - "type": "page", - "layout": "default", - "style": { - "navigationBarTitleText": "上传" - } - }, - { - "path": "pages/index/upload2", - "type": "page", - "layout": "default", - "style": { - "navigationBarTitleText": "上传-状态一体化" - } } ], "subPackages": [] diff --git a/src/pages/index/about.vue b/src/pages/index/about.vue index fe28eed..2ba2e3c 100644 --- a/src/pages/index/about.vue +++ b/src/pages/index/about.vue @@ -11,44 +11,21 @@ class="bg-white overflow-hidden pt-2 px-4" :style="{ marginTop: safeAreaInsets?.top + 'px' }" > - 关于页面 鸽友们好,我是 菲鸽 - - 去请求页 - - 去请求页2 (状态一体) - - - - - 上传demo - - 上传demo2(状态一体) - - - - iconfont: - - - - - - + + diff --git a/src/service/index/foo.ts b/src/service/index/foo.ts index dac3519..acf5aa8 100644 --- a/src/service/index/foo.ts +++ b/src/service/index/foo.ts @@ -6,28 +6,10 @@ export interface IFooItem { /** GET 请求 */ export const getFooAPI = (name: string) => { - return http({ - url: `/foo`, - method: 'GET', - query: { name }, - }) -} - -/** GET 请求 - 再次简化,看大家是否喜欢这种简化 */ -export const getFooAPI2 = (name: string) => { return http.get('/foo', { name }) } /** POST 请求 */ export const postFooAPI = (name: string) => { - return http({ - url: `/foo`, - method: 'POST', - query: { name }, // post 请求也支持 query - data: { name }, - }) -} -/** POST 请求 - 再次简化,看大家是否喜欢这种简化 */ -export const postFooAPI2 = (name: string) => { return http.post('/foo', { name }, { name }) } diff --git a/src/types/auto-import.d.ts b/src/types/auto-import.d.ts index a822be5..6351212 100644 --- a/src/types/auto-import.d.ts +++ b/src/types/auto-import.d.ts @@ -170,7 +170,6 @@ declare module 'vue' { readonly useCssVars: UnwrapRef readonly useRequest: UnwrapRef readonly useSlots: UnwrapRef - readonly useUpload2: UnwrapRef readonly useUpload: UnwrapRef readonly watch: UnwrapRef readonly watchEffect: UnwrapRef @@ -254,7 +253,6 @@ declare module '@vue/runtime-core' { readonly useCssVars: UnwrapRef readonly useRequest: UnwrapRef readonly useSlots: UnwrapRef - readonly useUpload2: UnwrapRef readonly useUpload: UnwrapRef readonly watch: UnwrapRef readonly watchEffect: UnwrapRef diff --git a/src/types/uni-pages.d.ts b/src/types/uni-pages.d.ts index aea295e..3cf23ca 100644 --- a/src/types/uni-pages.d.ts +++ b/src/types/uni-pages.d.ts @@ -5,11 +5,7 @@ interface NavigateToOptions { url: "/pages/index/index" | - "/pages/index/about" | - "/pages/index/request" | - "/pages/index/request2" | - "/pages/index/upload" | - "/pages/index/upload2"; + "/pages/index/about"; } interface RedirectToOptions extends NavigateToOptions {}