自定义页面提交子表单数据

本文详细讲解了如何在Vue项目中设置数据源,绑定表单按钮,以及使用`onSaveData`和`tableToTable`函数实现子表单数据的提交与转换。
摘要由CSDN通过智能技术生成

 自定义页面增加子表单组件

配置数据源

绑定按钮事件

编写代码实现效果

// 提交数据
export async function onSaveData() {
  const tableData = this.$('tableField_lboikgjj').getValue();
  if (tableData.length === 1 && (!tableData[0].textField_lboikgjl && !tableData[0].numberField_lboikgjm)) {
    this.utils.toast({
      title: '请至少输入一条数据',
      type: 'warring'
    });
    return;
  };
  const loading = this.utils.toast({
    title: '数据提交中...',
    type: 'loading'
  });
  this.$('button_lboilnqx').set('loading', true);
  await this.dataSourceMap.saveData.load({
    formUuid: 'FORM-D2B665D13MU56OUNA26OY50SUEMP3ATXEIOBL63',
    appType: window.pageConfig.appType,
    formDataJson: JSON.stringify({
      tableField_lboihyyq: this.tableToTable(tableData, [{
        target: 'textField_lboikgjl',
        current: 'textField_lboihyyr'
      }, {
        target: 'numberField_lboikgjm',
        current: 'numberField_lboihyys'
      }])
    })
  }).then(res => {
    loading();
    this.utils.toast({
      title: '数据提交成功',
      type: 'success'
    });
    this.$('button_lboilnqx').set('loading', false);
    this.$('tableField_lboikgjj').reset();
  }).catch(error => {
    loading();
    this.utils.toast({
      title: error.message,
      type: 'error'
    });
    this.$('button_lboilnqx').set('loading', false);
  });
}

// 子表单填充子表单,快速生成子表单数据
// tableData:目标子表单组件数据
// relation:字段映射关系 target:目标子表单字段唯一标识,current:当前子表单字段唯一标识
export function tableToTable(tableData = [], relation = []) {
  const result = []; // 数据处理结果
  if (!tableData.length || !relation.length) { return result };
  for (let i = 0; i < tableData.length; i++) {
    const itemObj = {};
    for (let j = 0; j < relation.length; j++) {
      itemObj[relation[j].current] = tableData[i][relation[j].target]
    };
    result.push(itemObj);
  };
  return result;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值