前端通用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 || '操作失败');

    }

    });

    });

    };

相关推荐
子兮曰1 分钟前
同样做中文平台自动化:为什么你越跑越贵,而 OpenCLI 越跑越稳
前端·github·命令行
jf加菲猫1 分钟前
第10章 数据处理
xml·开发语言·数据库·c++·qt·ui
小陈工2 分钟前
2026年4月1日技术资讯洞察:AI芯片革命、数据库智能化与云原生演进
前端·数据库·人工智能·git·python·云原生·开源
酉鬼女又兒4 分钟前
零基础快速入门前端深入掌握箭头函数、Promise 与 Fetch API —— 蓝桥杯 Web 考点全解析(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·css·职场和发展·蓝桥杯·es6·js
木斯佳4 分钟前
前端八股文面经大全:字节广告交易前端一面(2026-03-31)·面经深度解析
前端·markdown·虚拟列表·流式数据
迷藏4947 分钟前
**发散创新:Go语言中基于上下文的优雅错误处理机制设计与实战**在现代后端开发中,**错误处理**早已不是简单
java·开发语言·后端·python·golang
2301_764441337 分钟前
基于python实现的便利店投资分析财务建模评估
开发语言·python·数学建模
Cache技术分享8 分钟前
370. Java IO API - POSIX 文件权限
前端·后端
杰克尼10 分钟前
知识点总结--day10(Spring-Cloud框架)
java·开发语言
程序员小寒11 分钟前
JavaScript设计模式(七):迭代器模式实现与应用
前端·javascript·设计模式·迭代器模式