ERP 供应商搜索工具(重构版)
功能描述
提供供应商搜索、退货单快捷创建、数据汇总和复制等增强功能,优化结构与可维护性。
主要特点
🔍 供应商搜索
- 快速搜索供应商信息
- 自动获取供应商备注信息
- 高亮显示特殊要求
- 支持快捷键操作
📋 退货单管理
- 快捷创建退货单据
- 自动填充供应商信息
- 提供退单确认功能
- 智能处理退货流程
📊 数据汇总
- 今日汇总数据一键生成
- 往日草拟数据快速查询
- 数据自动复制到剪贴板
- 支持自定义日期范围
✂️ 表格复制增强
- 自动为表格添加复制按钮
- 智能识别表格结构
- 支持div表格和标准表格
- 动态监控DOM变化,自动更新按钮
🎨 智能UI设计
- 可拖动窗口,支持位置记忆
- 自动吸附边缘折叠
- 悬停展开,离开自动折叠
- 响应式设计,适配不同屏幕尺寸
🛠️ 表单辅助功能
- 自动选择当前用户
- 智能设置状态和日期
- 自动点击搜索按钮
- 重置表单并重新添加复制按钮
安装说明
方法一:直接从OpenUserJS安装
- 访问脚本页面:ERP 供应商搜索工具
- 点击"Install"按钮
- 在弹出的Tampermonkey安装页面点击"安装"
方法二:手动安装
- 下载脚本文件:ERP_供应商搜索工具.user.js
- 打开Tampermonkey扩展
- 点击"添加新脚本"
- 复制下载的脚本内容到编辑器
- 点击"文件" -> "保存"
使用方法
基本操作
- 搜索供应商:在搜索框中输入搜索词,点击"搜索"按钮或按Enter键
- 创建退单:搜索到供应商后,点击"确认退单"按钮
- 今日汇总:点击"今日汇总"按钮,获取并复制今日汇总数据
- 往日草拟:点击"往日草拟"按钮,查询并显示往日草拟数据
- 重置表单:点击"重置"按钮,重置表单并重新添加复制按钮
表格复制功能
- 脚本会自动为页面中的表格添加"复制"按钮
- 点击表格中的"复制"按钮,即可复制当前行的相关信息
- 支持动态添加的表格,自动监控DOM变化
窗口操作
- 拖动窗口:点击并拖动窗口头部,可自由调整窗口位置
- 自动折叠:窗口靠近屏幕边缘时,会自动折叠
- 悬停展开:鼠标悬停在折叠后的窗口上,会自动展开
- 位置记忆:关闭浏览器后,下次打开会记住上次的位置和状态
更新日志
v3.0.0(重构版)
- ✨ 优化了代码结构,提高可维护性
- ✨ 修复了复制按钮位置错误问题
- ✨ 增强了DOM监控,确保复制按钮正确添加
- ✨ 改进了拖动和折叠功能
- ✨ 优化了API请求处理
- ✨ 增强了表单辅助功能
- ✨ 改进了表格识别和处理逻辑
v2.x
- 实现基本的供应商搜索功能
- 添加退货单创建功能
- 实现数据汇总功能
- 添加表格复制按钮
- 实现窗口拖动功能
支持的网站
- 退货单页面:
https://*.erp321.com/app/scm/purchaseout/purchaseout.aspx?_c=jst-epaas&epaas=true
技术实现
核心技术
- DOM操作:使用querySelector和querySelectorAll实现高效DOM查询
- 事件处理:统一的事件绑定和管理
- API请求:实现了完整的API客户端,支持多种请求类型
- DOM监控:使用MutationObserver实现动态DOM变化监控
- 本地存储:使用localStorage保存用户设置和位置信息
- 拖拽功能:实现了流畅的拖拽体验
- 自适应设计:支持不同屏幕尺寸和浏览器窗口大小
代码结构
├── 工具函数(通用工具和辅助函数)
├── 业务请求(API客户端和请求处理)
├── 状态管理(全局状态和配置)
├── UI组件(窗口创建和管理)
├── 拖动与折叠(窗口交互功能)
├── 表格复制按钮(动态按钮添加)
├── 表单辅助(表单自动填充和操作)
├── 事件绑定(用户交互处理)
└── 初始化(脚本启动和配置)
主要模块
1. API请求模块
- 实现了统一的API客户端
- 支持JSON和FormData请求
- 自动处理跨域请求
- 包含错误处理和重试机制
2. 表格处理模块
- 支持多种表格类型
- 动态添加复制按钮
- 智能识别表格结构
- 监控DOM变化,自动更新
3. UI交互模块
- 可拖动窗口设计
- 自动吸附边缘折叠
- 位置记忆功能
- 响应式布局
4. 表单辅助模块
- 自动填充表单数据
- 智能选择用户和状态
- 自动点击搜索按钮
- 表单重置和刷新
许可证
MIT License
联系方式
贡献
欢迎提交Issue和Pull Request来改进这个脚本!
注意事项
- 本脚本仅在指定的ERP页面生效
- 脚本需要获取ERP系统的cookie信息才能正常工作
- 部分功能可能会受到ERP系统更新的影响
- 如有问题,请查看浏览器控制台的错误信息
隐私声明
本脚本仅在本地运行,不会收集或发送任何用户数据到外部服务器。所有数据处理都在浏览器本地完成。
常见问题
Q: 复制按钮没有显示怎么办?
A: 脚本会自动监控DOM变化并添加复制按钮,如果按钮没有显示,可以尝试刷新页面或点击"重置"按钮。
Q: 搜索供应商失败怎么办?
A: 请检查网络连接和ERP系统登录状态,确保输入的搜索词正确。
Q: 窗口无法拖动怎么办?
A: 请确保鼠标点击的是窗口头部,而不是其他区域。
Q: 自动折叠功能可以关闭吗?
A: 目前不支持关闭自动折叠功能,但可以通过拖动窗口远离边缘来避免折叠。
Q: 脚本在某些页面不工作怎么办?
A: 请检查页面URL是否符合脚本的匹配规则,目前仅支持退货单页面。
浏览器兼容性
- Chrome 60+
- Firefox 55+
- Edge 79+
- Safari 12+
性能优化
- 使用事件委托减少事件监听器数量
- 实现防抖机制,减少不必要的DOM操作
- 优化API请求,避免重复请求
- 使用高效的DOM查询方法
- 实现延迟加载,提高页面加载速度
未来计划
- 添加更多定制化选项
- 支持更多ERP页面
- 增强数据分析功能
- 改进UI设计
- 添加更多辅助功能
致谢
感谢所有使用和支持这个脚本的用户!