tools.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /**
  2. * 判断值是否为空
  3. * @param value 值
  4. * @returns {boolean}
  5. */
  6. export function isValueEmpty(value: any): boolean {
  7. if (value === null || value === undefined) {
  8. return true;
  9. }
  10. if (typeof value === "string" && value.trim() === "") {
  11. return true;
  12. }
  13. if (Array.isArray(value) && value.length === 0) {
  14. return true;
  15. }
  16. if (
  17. typeof value === "object" &&
  18. !Array.isArray(value) &&
  19. Object.keys(value).length === 0
  20. ) {
  21. return true;
  22. }
  23. if (typeof value === "symbol" && value.toString() === "Symbol()") {
  24. return true;
  25. }
  26. return false;
  27. }
  28. /**
  29. * 获取表单数据中有值的数据
  30. * @param formData 表单数据
  31. * @returns {T}
  32. */
  33. export function getFromValue<T>(formData: T): T {
  34. const result: any = {};
  35. for (const key in formData) {
  36. if (!isValueEmpty(formData[key])) {
  37. result[key] = formData[key];
  38. }
  39. }
  40. return result;
  41. }
  42. export function resetFromValue<T>(formData: T) {
  43. const result: any = {};
  44. for (const key in formData) {
  45. result[key] = '';
  46. }
  47. }
  48. /**
  49. * 对部门数据进行二次处理
  50. * @param arr 部门数组
  51. * @returns {any[]}
  52. */
  53. export function updateDepTreeData(arr: any, flag: boolean = false) {
  54. const result = []; // 创建一个新数组来存储结果
  55. for (let i = 0; i < arr.length; i++) {
  56. if (arr[i].id !== -1 && arr[i].id !== 0) {
  57. if (Array.isArray(arr[i].children) && arr[i].children.length > 0) {
  58. arr[i].children = updateDepTreeData(arr[i].children); // 递归更新子节点
  59. }
  60. arr[i].value = arr[i].id; // 更新value字段
  61. result.push(arr[i]); // 将更新后的节点添加到结果数组
  62. }
  63. }
  64. if(flag) {
  65. result.splice(0, 0, {
  66. id: -1,
  67. label: '全部人员',
  68. });
  69. result.push({
  70. id: 0,
  71. label: '未分配',
  72. });
  73. return result;
  74. }
  75. return result; // 返回更新后的数组,不包含id为-1或0的节点
  76. }