25 lines
		
	
	
		
			774 B
		
	
	
	
		
			JavaScript
		
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			774 B
		
	
	
	
		
			JavaScript
		
	
	
|  | import { uniqBy } from "lodash-es"; | |||
|  | import { ElMessage } from "element-plus"; | |||
|  | 
 | |||
|  | /** | |||
|  |  * @param {Array} list - 需要检查重复项的目标数组 | |||
|  |  * @param {string} key - 用于去重判断的对象属性名 | |||
|  |  * @param {string} [message="存在重复项,请勿重复选择"] - 可选的错误提示信息 | |||
|  |  * @returns {Promise<void>} 如果无重复项则 resolve,存在重复项时 reject 并提示错误 | |||
|  |  */ | |||
|  | export default function useIsExistenceDuplicateSelection( | |||
|  |   list, | |||
|  |   key, | |||
|  |   message = "存在重复项,请勿重复选择" | |||
|  | ) { | |||
|  |   return new Promise((resolve, reject) => { | |||
|  |     const newList = uniqBy(list, key); | |||
|  |     if (newList.length !== list.length) { | |||
|  |       ElMessage.error(message); | |||
|  |       reject(new Error(message)); | |||
|  |     } else { | |||
|  |       resolve(); | |||
|  |     } | |||
|  |   }); | |||
|  | } |