字段值操作示例

字段数据管理概览

全面的表单字段值操作解决方案,实现数据的读取、设置和批量处理

此示例演示如何使用kinlink API进行表单字段值的操作。通过数据读取值设置批量处理数据验证,实现完整的表单数据管理工作流程。

字段值操作核心功能

  • 📖 值读取:获取单个或多个字段的当前值
  • ✏️ 值设置:动态设置字段值,支持各种数据类型
  • 🔄 批量操作:一次性处理多个字段的值操作
  • 🧹 数据清理:清空字段值或重置为默认状态
  • 🔍 数据验证:在操作过程中验证数据的有效性
  • 性能优化:高效的批量操作和缓存机制

关键功能

  • 获取字段当前值
  • 设置字段新值
  • 批量获取多个字段值
  • 批量设置多个字段值
  • 清空字段值

代码示例

/**
* 示例5: 字段值操作
* 功能:读取、设置、清空表单字段的值
*/
(function () {
kinlink.events.on(kinlink.FormEvents.FORM_LOADED, () => {
  try {
    // 设置字段值
    kinlink.formApi.setFieldValue('文字列__1行__0', '张');
    kinlink.formApi.setFieldValue('文字列__1行__1', '三');
    kinlink.formApi.setFieldValue('单行文本框_8', 'Zhang');
    kinlink.formApi.setFieldValue('单行文本框_9', 'San');

    // 设置日期字段值
    kinlink.formApi.setFieldValue('日期_1', '2024-01-15');
    kinlink.formApi.setFieldValue('日期_2', '2025-12-31');

    // 批量设置字段值
    const fieldValues = {
      '单行文本框_10': 'kinlink科技有限公司',
      '文字列__1行__2': '+86 138 0013 8000',
      '文字列__1行__3': '[email protected]',
    };
    kinlink.formApi.setFieldValues(fieldValues);

    // 创建操作按钮面板
    const controlPanel = document.createElement('div');
    controlPanel.style.margin = '10px 0';
    controlPanel.style.padding = '15px';
    controlPanel.style.backgroundColor = '#f8f9fa';
    controlPanel.style.border = '1px solid #dee2e6';
    controlPanel.style.borderRadius = '6px';

    // 按钮样式
    const buttonStyle = {
      margin: '5px',
      padding: '8px 12px',
      border: 'none',
      borderRadius: '4px',
      cursor: 'pointer',
      fontSize: '14px',
      fontWeight: '500',
    };

    // 获取值按钮
    const getValueBtn = document.createElement('button');
    getValueBtn.textContent = '获取字段值';
    Object.assign(getValueBtn.style, buttonStyle, {
      backgroundColor: '#3498db',
      color: 'white',
    });
    getValueBtn.addEventListener('click', () => {
      // 获取单个字段值
      const firstName = kinlink.formApi.getFieldValue('文字列__1行__0');
      const lastName = kinlink.formApi.getFieldValue('文字列__1行__1');
      
      // 批量获取字段值
      const values = kinlink.formApi.getFieldValues([
        '文字列__1行__0',
        '文字列__1行__1',
        '单行文本框_10',
        '文字列__1行__2',
      ]);
      
      console.log('单个字段值:', { firstName, lastName });
      console.log('批量字段值:', values);
      
      alert(`姓名: ${firstName} ${lastName}\n公司: ${values['单行文本框_10']}`);
    });

    // 清空值按钮
    const clearValueBtn = document.createElement('button');
    clearValueBtn.textContent = '清空字段值';
    Object.assign(clearValueBtn.style, buttonStyle, {
      backgroundColor: '#e74c3c',
      color: 'white',
    });
    clearValueBtn.addEventListener('click', () => {
      // 清空单个字段
      kinlink.formApi.setFieldValue('单行文本框_10', '');
      
      // 批量清空字段
      const fieldsToClear = {
        '文字列__1行__2': '',
        '文字列__1行__3': '',
        '日期_1': '',
      };
      kinlink.formApi.setFieldValues(fieldsToClear);
      
      console.log('字段值已清空');
    });

    // 重置值按钮
    const resetValueBtn = document.createElement('button');
    resetValueBtn.textContent = '重置默认值';
    Object.assign(resetValueBtn.style, buttonStyle, {
      backgroundColor: '#27ae60',
      color: 'white',
    });
    resetValueBtn.addEventListener('click', () => {
      // 重置为初始值
      kinlink.formApi.setFieldValues(fieldValues);
      kinlink.formApi.setFieldValue('日期_1', '2024-01-15');
      
      console.log('字段值已重置');
    });

    // 添加按钮到控制面板
    controlPanel.appendChild(getValueBtn);
    controlPanel.appendChild(clearValueBtn);
    controlPanel.appendChild(resetValueBtn);

    // 添加标题
    const panelTitle = document.createElement('div');
    panelTitle.textContent = '字段值操作演示';
    panelTitle.style.marginBottom = '10px';
    panelTitle.style.fontWeight = 'bold';
    panelTitle.style.color = '#2c3e50';
    controlPanel.insertBefore(panelTitle, controlPanel.firstChild);

    // 添加控制面板到表单
    const formElement = document.querySelector('.ant-form') || document.body;
    formElement.insertBefore(controlPanel, formElement.firstChild);
  } catch (error) {
    console.error('字段值操作失败:', error);
  }
});
})();

使用说明

要使用此功能,只需将代码复制到您的kinlink自定义JavaScript中。根据您的表单字段,修改代码中的字段代码和相应的值。您可以根据业务需求处理字段数据。

完整代码请下载查看:

5-字段值操作.js

注意事项

设置字段值时请确保数据格式正确,特别是日期字段需要使用标准的日期格式(YYYY-MM-DD)。批量操作可以提高性能,建议优先使用。

API参考

此示例使用了以下kinlink API:
  • kinlink.events.on(eventName, callback) - 注册事件监听器

  • kinlink.FormEvents.FORM_LOADED - 表单加载完成事件

  • kinlink.formApi.getFieldValue(fieldCode) - 获取指定字段的值

  • kinlink.formApi.setFieldValue(fieldCode, value) - 设置指定字段的值

  • kinlink.formApi.getFieldValues(fieldCodes) - 批量获取多个字段的值

  • kinlink.formApi.setFieldValues(valuesObject) - 批量设置多个字段的值