123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /**
- * 判断值是否为空
- * @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<T>(formData: T): T {
- const result: any = {};
- for (const key in formData) {
- if (!isValueEmpty(formData[key])) {
- result[key] = formData[key];
- }
- }
- return result;
- }
- export function resetFromValue<T>(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的节点
- }
|