yiwaima / ERP 波次自动全选

Published:

Version: 1.1+f08bd27 updated

Summary: 在ERP波次创建页面自动处理URL参数并选中全选复选框和仓库名称

Homepage: https://openuserjs.org/scripts/yiwaima/ERP_波次自动全选

Support: https://github.com/yiwaima/erp-wave-auto-select-all/issues

License: MIT

Antifeature: unspecified

ERP 波次自动全选工具

脚本简介

这是一个 Tampermonkey 脚本,专为 ERP 系统的波次创建页面设计。当用户访问波次创建页面时,脚本会自动选中 SKU 列表中的全选复选框,提高用户操作效率,减少重复点击操作。

功能说明

  • 自动全选:每次页面刷新或动态加载内容时,自动选中 SKU 列表的全选复选框
  • 智能监听:使用 MutationObserver 监听 DOM 变化,确保动态加载的内容也能被正确处理
  • 事件触发:选中复选框后自动触发必要的事件,确保选中状态在系统中生效
  • 稳定可靠:多重执行机制,确保在各种情况下都能正确执行

安装方法

方法一:直接安装

  1. 确保已安装 Tampermonkey
  2. 访问 脚本安装页面
  3. 点击 "Install" 按钮

方法二:手动安装

  1. 确保已安装 Tampermonkey
  2. 复制脚本完整代码
  3. 在 Tampermonkey 中点击 "添加新脚本"
  4. 粘贴代码并保存

使用说明

  1. 安装脚本后,访问 ERP 波次创建页面:
    https://ww.erp321.com/app/wms/Wave/CreateOffPick.aspx*
    
  2. 页面加载完成后,脚本会自动选中 //*[@id="cbx_all"] 全选复选框
  3. 如果页面内容是动态加载的,脚本会监听 DOM 变化并自动处理
  4. 选中后会在控制台输出日志:已自动选中全选复选框

版本历史

v1.0 (2026-01-09)

  • 初始版本发布
  • 实现自动选中全选复选框功能
  • 添加 MutationObserver 监听机制
  • 添加事件触发逻辑
  • 支持动态加载内容

技术实现

核心代码

// 自动选择全选复选框的函数
function autoSelectAll() {
    // 查找目标复选框
    const checkbox = document.evaluate('//*[@id="cbx_all"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    
    if (checkbox && checkbox.type === 'checkbox' && !checkbox.checked) {
        checkbox.checked = true;
        console.log('已自动选中全选复选框');
        
        // 触发必要的事件,确保选中状态生效
        checkbox.dispatchEvent(new Event('change', { bubbles: true }));
        checkbox.dispatchEvent(new Event('click', { bubbles: true }));
    }
}

执行机制

  1. 页面加载完成后执行window.addEventListener('load', autoSelectAll);
  2. DOM 变化监听:使用 MutationObserver 监听整个页面的 DOM 变化
  3. 初始立即执行:脚本加载后立即执行一次,确保页面加载时就处理

许可证

MIT License

支持与反馈

兼容性

  • 支持所有现代浏览器
  • 需配合 Tampermonkey 或其他 Greasemonkey 兼容插件使用
  • 仅适用于指定的 ERP 波次创建页面

注意事项

  1. 脚本仅在指定 URL 上运行,不会影响其他页面
  2. 脚本使用了安全的权限设置,仅请求必要的权限
  3. 脚本不会收集或发送任何用户数据
  4. 如有问题,请查看浏览器控制台日志获取更多信息

贡献

欢迎提交 Issue 或 Pull Request 来改进脚本功能。


作者:yiwaima
最后更新:2026-01-09

Rating: 0