消息提示演示示例

消息提示系统概览

全面的用户反馈消息系统,实现多类型、多场景的信息提示功能

此示例演示如何使用kinlink API实现各种类型的消息提示功能。通过成功提示错误警告信息通知警告消息,为用户提供清晰的操作反馈和状态指示。

消息提示核心功能

  • 成功消息:操作成功时的确认反馈
  • 错误消息:错误情况的明确提示和解决建议
  • ℹ️ 信息消息:一般性信息和操作引导
  • ⚠️ 警告消息:重要提醒和注意事项
  • ⏱️ 自定义持续时间:根据消息重要性调整显示时长
  • 🎨 视觉反馈:不同类型消息的视觉区分

关键功能

  • 显示成功消息提示
  • 显示错误消息提示
  • 显示信息消息提示
  • 显示警告消息提示
  • 控制消息显示持续时间

代码示例

/**
* 示例10: 消息提示演示
* 功能:演示各种类型的消息提示功能
*/
(function () {
kinlink.events.on(kinlink.FormEvents.FORM_LOADED, () => {
  try {
    // 创建消息提示演示面板
    const messagePanel = document.createElement('div');
    messagePanel.style.margin = '10px 0';
    messagePanel.style.padding = '20px';
    messagePanel.style.backgroundColor = '#f8f9fa';
    messagePanel.style.border = '1px solid #dee2e6';
    messagePanel.style.borderRadius = '8px';
    messagePanel.style.boxShadow = '0 2px 4px rgba(0,0,0,0.1)';

    // 面板标题
    const panelTitle = document.createElement('h3');
    panelTitle.textContent = '消息提示演示面板';
    panelTitle.style.margin = '0 0 15px 0';
    panelTitle.style.color = '#2c3e50';
    panelTitle.style.fontSize = '18px';
    panelTitle.style.fontWeight = 'bold';

    // 按钮容器
    const buttonContainer = document.createElement('div');
    buttonContainer.style.display = 'grid';
    buttonContainer.style.gridTemplateColumns = 'repeat(auto-fit, minmax(200px, 1fr))';
    buttonContainer.style.gap = '10px';
    buttonContainer.style.marginBottom = '15px';

    // 通用按钮样式
    const buttonStyle = {
      padding: '10px 15px',
      border: 'none',
      borderRadius: '6px',
      cursor: 'pointer',
      fontSize: '14px',
      fontWeight: '500',
      color: 'white',
      transition: 'all 0.2s ease',
    };

    // 成功消息按钮
    const successBtn = document.createElement('button');
    successBtn.textContent = '✅ 显示成功消息';
    Object.assign(successBtn.style, buttonStyle, {
      backgroundColor: '#27ae60',
    });
    successBtn.addEventListener('click', () => {
      kinlink.formApi.showMessage(
        'success',
        '操作成功完成!数据已保存。',
        4
      );
    });

    // 错误消息按钮
    const errorBtn = document.createElement('button');
    errorBtn.textContent = '❌ 显示错误消息';
    Object.assign(errorBtn.style, buttonStyle, {
      backgroundColor: '#e74c3c',
    });
    errorBtn.addEventListener('click', () => {
      kinlink.formApi.showMessage(
        'error',
        '操作失败:请检查网络连接并重试。',
        5
      );
    });

    // 信息消息按钮
    const infoBtn = document.createElement('button');
    infoBtn.textContent = 'ℹ️ 显示信息消息';
    Object.assign(infoBtn.style, buttonStyle, {
      backgroundColor: '#3498db',
    });
    infoBtn.addEventListener('click', () => {
      kinlink.formApi.showMessage(
        'info',
        '温馨提示:建议在网络稳定的环境下操作。',
        3
      );
    });

    // 警告消息按钮
    const warningBtn = document.createElement('button');
    warningBtn.textContent = '⚠️ 显示警告消息';
    Object.assign(warningBtn.style, buttonStyle, {
      backgroundColor: '#f39c12',
    });
    warningBtn.addEventListener('click', () => {
      kinlink.formApi.showMessage(
        'warning',
        '注意:此操作将影响现有数据,请谨慎操作。',
        6
      );
    });

    // 综合演示按钮
    const demoBtn = document.createElement('button');
    demoBtn.textContent = '🎭 综合演示';
    Object.assign(demoBtn.style, buttonStyle, {
      backgroundColor: '#9b59b6',
    });
    demoBtn.addEventListener('click', () => {
      // 依次显示不同类型的消息
      setTimeout(() => {
        kinlink.formApi.showMessage('info', '开始处理您的请求...', 2);
      }, 0);
      
      setTimeout(() => {
        kinlink.formApi.showMessage('warning', '正在验证数据,请稍候...', 2);
      }, 2500);
      
      setTimeout(() => {
        kinlink.formApi.showMessage('success', '数据验证通过,处理完成!', 3);
      }, 5000);
    });

    // 添加按钮到容器
    buttonContainer.appendChild(successBtn);
    buttonContainer.appendChild(errorBtn);
    buttonContainer.appendChild(infoBtn);
    buttonContainer.appendChild(warningBtn);
    buttonContainer.appendChild(demoBtn);

    // 使用说明
    const instructions = document.createElement('div');
    instructions.innerHTML = `
      <div style="background: #e8f4fd; padding: 12px; border-radius: 6px; border-left: 4px solid #3498db;">
        <strong>使用说明:</strong><br>
        • 点击不同按钮可以看到各种类型的消息提示<br>
        • 每种消息类型都有对应的颜色和图标<br>
        • 消息会在指定时间后自动消失<br>
        • 综合演示展示了消息的时序控制
      </div>
    `;

    // 组装面板
    messagePanel.appendChild(panelTitle);
    messagePanel.appendChild(buttonContainer);
    messagePanel.appendChild(instructions);

    // 添加面板到表单
    const formElement = document.querySelector('.ant-form') || document.body;
    formElement.insertBefore(messagePanel, formElement.firstChild);

  } catch (error) {
    console.error('消息提示演示初始化失败:', error);
  }
});
})();

使用说明

要使用此功能,只需将代码复制到您的kinlink自定义JavaScript中。您可以在表单的任何地方调用消息提示功能,为用户提供及时的操作反馈。

完整代码请下载查看:

10-消息提示演示.js

注意事项

消息持续时间以秒为单位。建议成功消息3-4秒,错误消息5-6秒,重要警告消息6-8秒,以确保用户有足够时间阅读。

API参考

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

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

  • kinlink.formApi.showMessage('success', message, duration) - 显示成功消息

  • kinlink.formApi.showMessage('error', message, duration) - 显示错误消息

  • kinlink.formApi.showMessage('info', message, duration) - 显示信息消息

  • kinlink.formApi.showMessage('warning', message, duration) - 显示警告消息