From 3522957b1071778596e4fee81e2704478f9c79d1 Mon Sep 17 00:00:00 2001 From: weicw <594098497@qq.com> Date: Sun, 1 Nov 2026 17:20:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(approval):=20=E6=96=87=E4=BB=B6=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E5=A4=B1=E8=B4=A5=E6=97=B6=E6=8F=90=E7=A4=BA=E5=AE=8C?= =?UTF-8?q?=E6=95=B4=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 8 张单据表单页原来把 chooseFile/chooseMessageFile/chooseImage 的 fail 吞成 () => undefined,手机上点上传附件没反应时无从判断。改为统一的 chooseFail:优先弹平台 errMsg,缺省时序列化整个 fail 入参。 --- src/packageApproval/pages/form-completion.vue | 18 +++++++++++++++--- .../pages/form-coordination.vue | 18 +++++++++++++++--- src/packageApproval/pages/form-coupon.vue | 18 +++++++++++++++--- src/packageApproval/pages/form-facility.vue | 18 +++++++++++++++--- src/packageApproval/pages/form-receipt.vue | 18 +++++++++++++++--- src/packageApproval/pages/form-settlement.vue | 18 +++++++++++++++--- src/packageApproval/pages/form-vehicle.vue | 18 +++++++++++++++--- src/packageApproval/pages/form-venue.vue | 18 +++++++++++++++--- 8 files changed, 120 insertions(+), 24 deletions(-) diff --git a/src/packageApproval/pages/form-completion.vue b/src/packageApproval/pages/form-completion.vue index 825b333..7b42fb5 100644 --- a/src/packageApproval/pages/form-completion.vue +++ b/src/packageApproval/pages/form-completion.vue @@ -261,6 +261,18 @@ async function submit() { }); } +/** 文件选择失败时把平台返回的完整错误信息提示出来,便于定位机型/平台限制 */ +function chooseFail(res: any) { + let detail = ''; + try { + detail = + res && typeof res.errMsg === 'string' ? res.errMsg : JSON.stringify(res); + } catch (error) { + detail = String(res); + } + showError('选择文件失败:' + (detail || '未知错误'), null); +} + function chooseAttachment() { if (attachments.value.length >= 9) { showError('每单最多上传9张附件', null); @@ -272,7 +284,7 @@ function chooseAttachment() { count: remaining, extension: ['.jpg', '.jpeg', '.png', '.pdf', '.doc', '.docx', '.xls', '.xlsx'], success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef MP-WEIXIN @@ -280,7 +292,7 @@ function chooseAttachment() { count: remaining, type: 'file', success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef APP-PLUS @@ -292,7 +304,7 @@ function chooseAttachment() { (result.tempFilePaths || []).forEach((path: string) => uploadFiles([{ path, name: path.split('/').pop() || '附件' }]) ), - fail: () => undefined + fail: chooseFail }); // #endif } diff --git a/src/packageApproval/pages/form-coordination.vue b/src/packageApproval/pages/form-coordination.vue index af578e0..b9e43be 100644 --- a/src/packageApproval/pages/form-coordination.vue +++ b/src/packageApproval/pages/form-coordination.vue @@ -333,6 +333,18 @@ async function submit() { }); } +/** 文件选择失败时把平台返回的完整错误信息提示出来,便于定位机型/平台限制 */ +function chooseFail(res: any) { + let detail = ''; + try { + detail = + res && typeof res.errMsg === 'string' ? res.errMsg : JSON.stringify(res); + } catch (error) { + detail = String(res); + } + showError('选择文件失败:' + (detail || '未知错误'), null); +} + function chooseAttachment() { if (attachments.value.length >= 9) { showError('每单最多上传9张附件', null); @@ -344,7 +356,7 @@ function chooseAttachment() { count: remaining, extension: ['.jpg', '.jpeg', '.png', '.pdf', '.doc', '.docx', '.xls', '.xlsx'], success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef MP-WEIXIN @@ -352,7 +364,7 @@ function chooseAttachment() { count: remaining, type: 'file', success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef APP-PLUS @@ -364,7 +376,7 @@ function chooseAttachment() { (result.tempFilePaths || []).forEach((path: string) => uploadFiles([{ path, name: path.split('/').pop() || '附件' }]) ), - fail: () => undefined + fail: chooseFail }); // #endif } diff --git a/src/packageApproval/pages/form-coupon.vue b/src/packageApproval/pages/form-coupon.vue index acb64bb..7fe5cf6 100644 --- a/src/packageApproval/pages/form-coupon.vue +++ b/src/packageApproval/pages/form-coupon.vue @@ -345,6 +345,18 @@ async function submit() { }); } +/** 文件选择失败时把平台返回的完整错误信息提示出来,便于定位机型/平台限制 */ +function chooseFail(res: any) { + let detail = ''; + try { + detail = + res && typeof res.errMsg === 'string' ? res.errMsg : JSON.stringify(res); + } catch (error) { + detail = String(res); + } + showError('选择文件失败:' + (detail || '未知错误'), null); +} + function chooseAttachment() { if (attachments.value.length >= 9) { showError('每单最多上传9张附件', null); @@ -356,7 +368,7 @@ function chooseAttachment() { count: remaining, extension: ['.jpg', '.jpeg', '.png', '.pdf', '.doc', '.docx', '.xls', '.xlsx'], success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef MP-WEIXIN @@ -364,7 +376,7 @@ function chooseAttachment() { count: remaining, type: 'file', success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef APP-PLUS @@ -376,7 +388,7 @@ function chooseAttachment() { (result.tempFilePaths || []).forEach((path: string) => uploadFiles([{ path, name: path.split('/').pop() || '附件' }]) ), - fail: () => undefined + fail: chooseFail }); // #endif } diff --git a/src/packageApproval/pages/form-facility.vue b/src/packageApproval/pages/form-facility.vue index 8f2dad9..d930503 100644 --- a/src/packageApproval/pages/form-facility.vue +++ b/src/packageApproval/pages/form-facility.vue @@ -420,6 +420,18 @@ async function submit() { }); } +/** 文件选择失败时把平台返回的完整错误信息提示出来,便于定位机型/平台限制 */ +function chooseFail(res: any) { + let detail = ''; + try { + detail = + res && typeof res.errMsg === 'string' ? res.errMsg : JSON.stringify(res); + } catch (error) { + detail = String(res); + } + showError('选择文件失败:' + (detail || '未知错误'), null); +} + function chooseAttachment() { if (attachments.value.length >= 9) { showError('每单最多上传9张附件', null); @@ -431,7 +443,7 @@ function chooseAttachment() { count: remaining, extension: ['.jpg', '.jpeg', '.png', '.pdf', '.doc', '.docx', '.xls', '.xlsx'], success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef MP-WEIXIN @@ -439,7 +451,7 @@ function chooseAttachment() { count: remaining, type: 'file', success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef APP-PLUS @@ -451,7 +463,7 @@ function chooseAttachment() { (result.tempFilePaths || []).forEach((path: string) => uploadFiles([{ path, name: path.split('/').pop() || '附件' }]) ), - fail: () => undefined + fail: chooseFail }); // #endif } diff --git a/src/packageApproval/pages/form-receipt.vue b/src/packageApproval/pages/form-receipt.vue index 6f95788..cf650b4 100644 --- a/src/packageApproval/pages/form-receipt.vue +++ b/src/packageApproval/pages/form-receipt.vue @@ -271,6 +271,18 @@ async function submit() { }); } +/** 文件选择失败时把平台返回的完整错误信息提示出来,便于定位机型/平台限制 */ +function chooseFail(res: any) { + let detail = ''; + try { + detail = + res && typeof res.errMsg === 'string' ? res.errMsg : JSON.stringify(res); + } catch (error) { + detail = String(res); + } + showError('选择文件失败:' + (detail || '未知错误'), null); +} + function chooseAttachment() { if (attachments.value.length >= 9) { showError('每单最多上传9张附件', null); @@ -282,7 +294,7 @@ function chooseAttachment() { count: remaining, extension: ['.jpg', '.jpeg', '.png', '.pdf', '.doc', '.docx', '.xls', '.xlsx'], success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef MP-WEIXIN @@ -290,7 +302,7 @@ function chooseAttachment() { count: remaining, type: 'file', success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef APP-PLUS @@ -302,7 +314,7 @@ function chooseAttachment() { (result.tempFilePaths || []).forEach((path: string) => uploadFiles([{ path, name: path.split('/').pop() || '附件' }]) ), - fail: () => undefined + fail: chooseFail }); // #endif } diff --git a/src/packageApproval/pages/form-settlement.vue b/src/packageApproval/pages/form-settlement.vue index 5dc8aa5..7111a4a 100644 --- a/src/packageApproval/pages/form-settlement.vue +++ b/src/packageApproval/pages/form-settlement.vue @@ -466,6 +466,18 @@ async function submit() { }); } +/** 文件选择失败时把平台返回的完整错误信息提示出来,便于定位机型/平台限制 */ +function chooseFail(res: any) { + let detail = ''; + try { + detail = + res && typeof res.errMsg === 'string' ? res.errMsg : JSON.stringify(res); + } catch (error) { + detail = String(res); + } + showError('选择文件失败:' + (detail || '未知错误'), null); +} + function chooseAttachment() { if (attachments.value.length >= 9) { showError('每单最多上传9张附件', null); @@ -477,7 +489,7 @@ function chooseAttachment() { count: remaining, extension: ['.jpg', '.jpeg', '.png', '.pdf', '.doc', '.docx', '.xls', '.xlsx'], success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef MP-WEIXIN @@ -485,7 +497,7 @@ function chooseAttachment() { count: remaining, type: 'file', success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef APP-PLUS @@ -497,7 +509,7 @@ function chooseAttachment() { (result.tempFilePaths || []).forEach((path: string) => uploadFiles([{ path, name: path.split('/').pop() || '附件' }]) ), - fail: () => undefined + fail: chooseFail }); // #endif } diff --git a/src/packageApproval/pages/form-vehicle.vue b/src/packageApproval/pages/form-vehicle.vue index 909fb8e..77ad191 100644 --- a/src/packageApproval/pages/form-vehicle.vue +++ b/src/packageApproval/pages/form-vehicle.vue @@ -448,6 +448,18 @@ async function submit() { }); } +/** 文件选择失败时把平台返回的完整错误信息提示出来,便于定位机型/平台限制 */ +function chooseFail(res: any) { + let detail = ''; + try { + detail = + res && typeof res.errMsg === 'string' ? res.errMsg : JSON.stringify(res); + } catch (error) { + detail = String(res); + } + showError('选择文件失败:' + (detail || '未知错误'), null); +} + function chooseAttachment() { if (attachments.value.length >= 9) { showError('每单最多上传9张附件', null); @@ -459,7 +471,7 @@ function chooseAttachment() { count: remaining, extension: ['.jpg', '.jpeg', '.png', '.pdf', '.doc', '.docx', '.xls', '.xlsx'], success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef MP-WEIXIN @@ -467,7 +479,7 @@ function chooseAttachment() { count: remaining, type: 'file', success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef APP-PLUS @@ -479,7 +491,7 @@ function chooseAttachment() { (result.tempFilePaths || []).forEach((path: string) => uploadFiles([{ path, name: path.split('/').pop() || '附件' }]) ), - fail: () => undefined + fail: chooseFail }); // #endif } diff --git a/src/packageApproval/pages/form-venue.vue b/src/packageApproval/pages/form-venue.vue index 5507937..7547b67 100644 --- a/src/packageApproval/pages/form-venue.vue +++ b/src/packageApproval/pages/form-venue.vue @@ -416,6 +416,18 @@ async function submit() { }); } +/** 文件选择失败时把平台返回的完整错误信息提示出来,便于定位机型/平台限制 */ +function chooseFail(res: any) { + let detail = ''; + try { + detail = + res && typeof res.errMsg === 'string' ? res.errMsg : JSON.stringify(res); + } catch (error) { + detail = String(res); + } + showError('选择文件失败:' + (detail || '未知错误'), null); +} + function chooseAttachment() { if (attachments.value.length >= 9) { showError('每单最多上传9张附件', null); @@ -427,7 +439,7 @@ function chooseAttachment() { count: remaining, extension: ['.jpg', '.jpeg', '.png', '.pdf', '.doc', '.docx', '.xls', '.xlsx'], success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef MP-WEIXIN @@ -435,7 +447,7 @@ function chooseAttachment() { count: remaining, type: 'file', success: (result: any) => uploadFiles(result.tempFiles || []), - fail: () => undefined + fail: chooseFail }); // #endif // #ifdef APP-PLUS @@ -447,7 +459,7 @@ function chooseAttachment() { (result.tempFilePaths || []).forEach((path: string) => uploadFiles([{ path, name: path.split('/').pop() || '附件' }]) ), - fail: () => undefined + fail: chooseFail }); // #endif }