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();
 | ||
|     }
 | ||
|   });
 | ||
| }
 |