zy-vue-library/hooks/useIsExistenceDuplicateSele.../index.js

25 lines
774 B
JavaScript
Raw Normal View History

2025-10-22 11:19:51 +08:00
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();
}
});
}