前端通用submit方法

/**

  • 封装公共的submit方法(适配场景中)

  • Tong

    */

    export const handleSubmit = (

    form: any,

    record: any,

    onCallback: any,

    setVisibleModal: any,

    saveModel: any,

    dateFields?: string[], // 添加日期字段名数组参数

    labelInValueFields?: string[], // 添加 labelInValue 字段名数组参数

    multipleFields?: string[], // 添加多选字段名数组参数

    ) => {

    form.validateFields().then((formParams: any) => {

    let formattedParams = { ...formParams };

    // 处理日期类型字段

    if (dateFields && Array.isArray(dateFields)) {

    formattedParams = convertStringsToDates(formattedParams, dateFields)

    // dateFields.forEach(field => {

    // if (formattedParams[field]) {

    // // 假设使用 moment 进行日期格式化,您可以根据实际情况调整

    // formattedParams[field] = moment(formattedParams[field]).format('YYYY-MM-DD HH:mm:ss');

    // }

    // });

    }

    // 处理 labelInValue 格式字段

    if (labelInValueFields && Array.isArray(labelInValueFields)) {

    formattedParams = stringFieldsFromRecord(formattedParams, labelInValueFields)

    // labelInValueFields.forEach(field => {

    // if (formattedParams[field] && Object.prototype.toString.call(formattedParams[field]) === "[object Object]") {

    // formattedParams[field] = JSON.stringify(formattedParams[field]);

    // }

    // });

    }

    // 处理多选字段

    if (multipleFields && Array.isArray(multipleFields)) {

    formattedParams = multipleFieldsFromRecords(formattedParams, multipleFields)

    // multipleFields.forEach(field => {

    // if (formattedParams[field] && Array.isArray(formattedParams[field])) {

    // // 如果是多选字段且值为数组,则转换为逗号分隔的字符串

    // formattedParams[field] = formattedParams[field].join(',');

    // }

    // });

    }

    const params = {

    ...formattedParams,

    id: record?.id,

    };

    saveModel(params).then((res: any) => {

    if (res && res.status === 0) {

    setVisibleModal(false)

    message.success('操作成功');

    form.resetFields();

    if(onCallback) onCallback();

    } else {

    message.error(res.message || '操作失败');

    }

    });

    });

    };

相关推荐
我还记得那天几秒前
C语言递归实现汉诺塔问题
c语言·开发语言
不吃土豆的马铃薯2 分钟前
Spdlog 入门:日志记录器与日志槽基础详解
服务器·开发语言·c++·c·日志·spdlog
凯瑟琳.奥古斯特11 分钟前
传输层核心功能解析
开发语言·网络·职场和发展
Fuyo_111926 分钟前
C++中的活字印刷术——模板·初阶
开发语言·c++·笔记
在角落发呆27 分钟前
跨越网络鸿沟:传统文件传输与现代内网穿透的奇妙交响
开发语言·php
Season45031 分钟前
C++之模板元编程(前置知识 constexpr)
开发语言·c++
坚定信念,勇往无前32 分钟前
electron-vite 安装better-sqlite3
javascript·数据库·electron
AI玫瑰助手33 分钟前
Python运算符:比较运算符(等于不等等于大于小于)与返回值
android·开发语言·python
@菜菜_达40 分钟前
jquery.inputmask插件介绍
前端·javascript·jquery
QuZhengRong40 分钟前
【Luck-Report】缓存
java·前端·后端·vue·excel