宜搭(子表单增加一项序号加1)

该篇文章介绍了如何在Vue项目中,使用`setOrderNum`函数为表格组件中的字段设置动态序号,包括普通序号、带前缀和后缀的序号。主要关注点在于处理表格数据的更新和页面加载时的序号初始化。
摘要由CSDN通过智能技术生成

// 生成子表单序号
// tableFieldId:子表单组件唯一标识
// orderFieldId:序号字段唯一标识
// beforeText:序号前缀文案
// afterText:序号后缀文案
export function setOrderNum(tableFieldId, orderFieldId, beforeText = '', afterText = '') {
  if (!tableFieldId || !orderFieldId) { return };
  const tableField = this.$(tableFieldId);
  const items = tableField.getItems();
  items.forEach((item, index) => {
    const updateObject = {};
    updateObject[orderFieldId] = `${beforeText}${index + 1}${afterText}`;
    tableField.updateItemValue(item, updateObject);
  });
}

export function onTableChange({ value, extra }) {
  const { formGroupId, from, changes = {}, tableFieldId } = extra || {};
  // 必须,避免使用 updateItemValue 更新子表数据后,再次触发 onChange 陷入死循环
  if (from === 'setItemValue' || from === 'form_change') { return };
  this.setOrderNum('tableField_lblkphmo', 'textField_lblyqnvb'); // 普通序号
  this.setOrderNum('tableField_lblkphmo', 'textField_lblyqnvc', '前文案-'); // 带前缀序号
  this.setOrderNum('tableField_lblkphmo', 'textField_lblyqnvd', '', '-后文案'); // 带后缀序号
  this.setOrderNum('tableField_lblkphmo', 'textField_lblyqnvg', '前文案-', '-后文案'); // 带前后缀序号
}

// 当页面渲染完毕后马上调用下面的函数,这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
  // 详情页不触发
  if (!this.utils.isSubmissionPage()) { return };
  this.setOrderNum('tableField_lblkphmo', 'textField_lblyqnvb'); // 普通序号
  this.setOrderNum('tableField_lblkphmo', 'textField_lblyqnvc', '前文案-'); // 带前缀序号
  this.setOrderNum('tableField_lblkphmo', 'textField_lblyqnvd', '', '-后文案'); // 带后缀序号
  this.setOrderNum('tableField_lblkphmo', 'textField_lblyqnvg', '前文案-', '-后文案'); // 带前后缀序号
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以在宜搭表单中添一个自定义操作按钮,然后使用JavaScript代码编写一个函数来实现编辑当前行的功能。具体步骤如下: 1. 在宜搭中打开您的表单,点击右上角的“设置”按钮,在“操作”选项卡中添一个自定义操作按钮。 2. 在“操作”选项卡中找到您刚刚添的自定义操作按钮,点击“编辑”按钮,在“操作类型”下拉框中选择“自定义操作”。 3. 在“操作类型”下拉框中选择“自定义操作”后,会出现“按钮文本”和“按钮点击事件”两个选项。在“按钮文本”中填写您希望在按钮上显示的文字,比如“编辑”。 4. 在“按钮点击事件”中编写JavaScript代码,实现编辑当前行的功能。具体代码如下: ```javascript function editCurrentRow() { // 获取当前行的数据 var currentRowData = $subTable.getCurrentRowData(); // TODO: 编写您的编辑逻辑,比如弹出一个编辑框,将当前行的数据填充到编辑框中 // 提示用户编辑成功 $ui.toast('编辑成功'); } ``` 在这段代码中,我们首先使用 `$subTable.getCurrentRowData()` 获取当前行的数据。然后根据您的实际需求,编写编辑逻辑。最后使用 `$ui.toast('编辑成功')` 提示用户编辑成功。 5. 点击“保存”按钮保存您的表单设置,然后在页面中预览您的表单,点击自定义操作按钮,即可触发编辑当前行的功能。 希望这个回答能够帮助您解决问题。如果您还有其他问题,欢迎随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值