From caddfd7efaabf86eb2348ae33d9b7a2281a2b167 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 16 十月 2026 21:04:56 +0800
Subject: [PATCH] fix(user): 导入失败明细改用弹窗展示,用户页字段统一叫「用户账号」
---
src/utils/import-result.ts | 54 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 37 insertions(+), 17 deletions(-)
diff --git a/src/utils/import-result.ts b/src/utils/import-result.ts
index ca78840..f51866f 100644
--- a/src/utils/import-result.ts
+++ b/src/utils/import-result.ts
@@ -2,7 +2,7 @@
import { h } from 'vue';
-import { message, notification } from 'ant-design-vue';
+import { message, Modal } from 'ant-design-vue';
export interface ImportResultNotifyOptions {
/** 涓氬姟涓讳綋锛岀敤浜庢嫾鏍囬涓庡缓璁紝濡傘�岃澶囥�嶃�屽鎴枫�� */
@@ -20,8 +20,10 @@
/**
* 缁熶竴灞曠ず Excel 瀵煎叆缁撴灉銆�
*
- * 鍙鍚庣杩斿洖浜嗗け璐ユ槑缁嗭紝灏辩粷涓嶈兘鍐嶆彁绀恒�屾搷浣滄垚鍔熴�嶁�斺�旀敼涓哄父椹婚�氱煡閫愯鍒楀嚭澶辫触鍘熷洜锛�
+ * 鍙鍚庣杩斿洖浜嗗け璐ユ槑缁嗭紝灏辩粷涓嶈兘鍐嶆彁绀恒�屾搷浣滄垚鍔熴�嶁�斺�旀敼涓哄脊绐楅�愯鍒楀嚭澶辫触鍘熷洜锛�
* 骞舵寜澶辫触鍘熷洜缁欏嚭涓嬩竴姝ュ姩浣滐紱鍏ㄩ儴鎴愬姛鏃舵墠鎻愮ず鎴愬姛銆�
+ *
+ * 澶辫触鏄庣粏鍙兘涓婄櫨琛岋紝鎵�浠ョ敤寮圭獥锛堝脊绐楀唴鍒楄〃鍙粴鍔級锛岄伩鍏嶉暱娑堟伅绯婃弧灞忓箷銆�
*
* @returns 瀹為檯鍐欏叆鐨勬潯鏁帮紙鏂板 + 鏇存柊锛夛紝渚涜皟鐢ㄦ柟鍐冲畾鏄惁闇�瑕佸埛鏂板垪琛�
*/
@@ -43,26 +45,41 @@
return importedCount;
}
- const nodes: VNodeChild[] = [
+ const hints = buildFailureHints(
+ failureEntries.map(([, reason]) => reason),
+ { subject, masterDataHint },
+ );
+
+ const content: VNodeChild = h('div', [
h(
'div',
- `鏂板鎴愬姛 ${createCount} 鏉★紝鏇存柊鎴愬姛 ${updateCount} 鏉★紝澶辫触 ${failureEntries.length} 鏉★細`,
+ `鏂板鎴愬姛 ${createCount} 鏉★紝鏇存柊鎴愬姛 ${updateCount} 鏉★紝澶辫触 ${failureEntries.length} 鏉°�俙,
),
- ...failureEntries.map(([name, reason]) => h('div', `${name}锛�${reason}`)),
- ...buildFailureHints(failureEntries.map(([, reason]) => reason), {
- subject,
- masterDataHint,
- }).map((hint) => h('div', { class: 'mt-2 text-red-500' }, hint)),
- ];
+ h(
+ 'div',
+ {
+ class:
+ 'mt-2 max-h-72 overflow-y-auto rounded border border-solid border-gray-200 px-3 py-2 text-sm leading-6',
+ },
+ failureEntries.map(([name, reason]) =>
+ h('div', { class: 'py-0.5' }, `${name}锛�${reason}`),
+ ),
+ ),
+ ...hints.map((hint) =>
+ h('div', { class: 'mt-2 text-red-500' }, hint),
+ ),
+ ]);
- const notify = importedCount === 0 ? notification.error : notification.warning;
- notify({
- message:
+ const openModal = importedCount === 0 ? Modal.error : Modal.warning;
+ openModal({
+ title:
importedCount === 0
? `${subject}瀵煎叆澶辫触锛�${failureEntries.length} 琛屽叏閮ㄦ湭瀵煎叆`
- : `瀵煎叆瀹屾垚锛岄儴鍒�${subject}瀵煎叆澶辫触锛堟垚鍔� ${importedCount} 鏉� / 澶辫触 ${failureEntries.length} 鏉★級`,
- description: () => h('div', nodes),
- duration: null,
+ : `瀵煎叆瀹屾垚锛氭垚鍔� ${importedCount} 鏉★紝澶辫触 ${failureEntries.length} 鏉,
+ content,
+ width: 680,
+ centered: true,
+ okText: '鐭ラ亾浜�',
});
return importedCount;
}
@@ -70,7 +87,10 @@
/** 鎸夊け璐ュ師鍥犲綊绾充笅涓�姝ュ姩浣滐紝閬垮厤鐢ㄦ埛鍙湅鍒般�屽け璐ャ�嶅嵈涓嶇煡閬撴敼鍝噷 */
function buildFailureHints(
reasons: string[],
- { subject, masterDataHint }: Pick<ImportResultNotifyOptions, 'masterDataHint' | 'subject'>,
+ {
+ subject,
+ masterDataHint,
+ }: Pick<ImportResultNotifyOptions, 'masterDataHint' | 'subject'>,
): string[] {
const hints = new Set<string>();
for (const reason of reasons) {
--
Gitblit v1.9.3