From 1c4e88c1cb0639663f77a33dbab26c3cac71ad93 Mon Sep 17 00:00:00 2001 From: zhang_12370 <z2864490065@outlook.com> Date: 星期四, 26 六月 2025 13:28:05 +0800 Subject: [PATCH] 开发通用 删除 优化文档管理模块 --- src/hooks/useDelete.js | 53 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 48 insertions(+), 5 deletions(-) diff --git a/src/hooks/useDelete.js b/src/hooks/useDelete.js index 7c6df82..60615b3 100644 --- a/src/hooks/useDelete.js +++ b/src/hooks/useDelete.js @@ -7,8 +7,8 @@ /** * 鍒涘缓鍒犻櫎鍔熻兘 * @param {Object} options 閰嶇疆閫夐」 - * @param {Function} options.deleteApi 鍒犻櫎API鍑芥暟 - * @param {Function} options.getList 閲嶆柊鑾峰彇鍒楄〃鏁版嵁鐨勫嚱鏁� + * @param {Function|Function} options.deleteApi 鍒犻櫎API鍑芥暟鎴栬繑鍥濧PI鍑芥暟鐨勫嚱鏁� + * @param {Function|Function} options.getList 閲嶆柊鑾峰彇鍒楄〃鏁版嵁鐨勫嚱鏁版垨杩斿洖鍑芥暟鐨勫嚱鏁� * @param {Ref} options.selectedRows 閫変腑琛岀殑鍝嶅簲寮忓紩鐢� * @param {Ref} options.tableData 琛ㄦ牸鏁版嵁鐨勫搷搴斿紡寮曠敤 * @param {Ref} options.total 鎬绘暟鐨勫搷搴斿紡寮曠敤 @@ -28,6 +28,41 @@ successText = "鍒犻櫎鎴愬姛", useLocalUpdate = false } = options; + + /** + * 鑾峰彇瀹為檯鐨勫垹闄PI鍑芥暟 + * 鏀寔鐩存帴浼犲叆鍑芥暟鎴栬繑鍥炲嚱鏁扮殑鍑芥暟 + */ + const getDeleteApi = () => { + if (typeof deleteApi === 'function') { + // 灏濊瘯璋冪敤鐪嬫槸鍚﹁繑鍥炲嚱鏁� + try { + const result = deleteApi(); + return typeof result === 'function' ? result : deleteApi; + } catch (error) { + // 濡傛灉璋冪敤鍑洪敊锛岃鏄庤繖鏈韩灏辨槸API鍑芥暟 + return deleteApi; + } + } + return deleteApi; + }; + + /** + * 鑾峰彇瀹為檯鐨勮幏鍙栧垪琛ㄥ嚱鏁� + * 鏀寔鐩存帴浼犲叆鍑芥暟鎴栬繑鍥炲嚱鏁扮殑鍑芥暟 + */ + const getListFunction = () => { + if (typeof getList === 'function') { + try { + const result = getList(); + return typeof result === 'function' ? result : getList; + } catch (error) { + // 濡傛灉璋冪敤鍑洪敊锛岃鏄庤繖鏈韩灏辨槸鍒楄〃鍑芥暟 + return getList; + } + } + return getList; + }; /** * 鎵归噺鍒犻櫎鏂规硶 @@ -55,9 +90,16 @@ // 鎻愬彇ID const ids = rowsToDelete.map(item => item.id); + + // 鑾峰彇褰撳墠鐨勫垹闄PI鍑芥暟 + const currentDeleteApi = getDeleteApi(); + if (!currentDeleteApi) { + ElMessage.error("鍒犻櫎API鏈厤缃�"); + return false; + } // 璋冪敤鍒犻櫎API - const res = await deleteApi(ids); + const res = await currentDeleteApi(ids); if (res.code === 200) { // 鏍规嵁閰嶇疆閫夋嫨鏇存柊鏂瑰紡 @@ -69,8 +111,9 @@ } } else { // 閲嶆柊鑾峰彇鏁版嵁 - if (getList) { - await getList(); + const currentGetList = getListFunction(); + if (currentGetList) { + await currentGetList(); } } -- Gitblit v1.9.3