/** * 判断值是否为空 * @param value 值 * @returns {boolean} */ export function isValueEmpty(value: any): boolean { if (value === null || value === undefined) { return true; } if (typeof value === "string" && value.trim() === "") { return true; } if (Array.isArray(value) && value.length === 0) { return true; } if ( typeof value === "object" && !Array.isArray(value) && Object.keys(value).length === 0 ) { return true; } if (typeof value === "symbol" && value.toString() === "Symbol()") { return true; } return false; } /** * 获取表单数据中有值的数据 * @param formData 表单数据 * @returns {T} */ export function getFromValue(formData: T): T { const result: any = {}; for (const key in formData) { if (!isValueEmpty(formData[key])) { result[key] = formData[key]; } } return result; } export function resetFromValue(formData: T) { const result: any = {}; for (const key in formData) { result[key] = ''; } } /** * 对部门数据进行二次处理 * @param arr 部门数组 * @returns {any[]} */ export function updateDepTreeData(arr: any, flag: boolean = false) { const result = []; // 创建一个新数组来存储结果 for (let i = 0; i < arr.length; i++) { if (arr[i].id !== -1 && arr[i].id !== 0) { if (Array.isArray(arr[i].children) && arr[i].children.length > 0) { arr[i].children = updateDepTreeData(arr[i].children); // 递归更新子节点 } arr[i].value = arr[i].id; // 更新value字段 result.push(arr[i]); // 将更新后的节点添加到结果数组 } } if(flag) { result.splice(0, 0, { id: -1, label: '全部人员', }); result.push({ id: 0, label: '未分配', }); return result; } return result; // 返回更新后的数组,不包含id为-1或0的节点 }