You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写Tampermonkey脚本拆分物料编码并重组输出

Tampermonkey脚本实现物料编码解析与重组

以下是符合需求的Tampermonkey脚本,包含编码拆分、映射匹配、格式重组及填入目标输入框的完整逻辑:

// ==UserScript==
// @name         物料编码自动解析重组
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  拆分物料编码并重组为指定格式填入输入框
// @author       You
// @match        替换为你的目标网页URL
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 定义各段编码的映射关系,根据实际需求补充更多条目
    const statusMap = {
        'F': 'FRESH',
        'C': 'C&T',
        'P': 'PDMG',
        'D': 'DMG'
    };
    const typeMap = {
        'PPUTHP': 'PPC'
        // 在这里添加更多类型编码与名称的映射
    };
    const categoryMap = {
        '110': 'ACS'
        // 在这里添加更多类别编码与名称的映射
    };
    const attributeMap = {
        '0000': 'MRP',
        '5000': 'NON MRP'
        // 在这里添加更多属性编码与名称的映射
    };

    // 替换为实际物料编码输入框的选择器(如ID、class等)
    const sourceInput = document.querySelector('#material-code-input');
    // 替换为实际目标空输入框的选择器
    const targetInput = document.querySelector('#target-input');

    if (!sourceInput || !targetInput) {
        console.log('未找到指定的输入框');
        return;
    }

    // 处理编码的核心函数
    function processCode() {
        const code = sourceInput.value.trim();
        if (code.length !== 14) { // 首字母1位+6+3+4=14位,根据实际长度调整
            targetInput.value = '';
            console.log('物料编码长度不符合要求');
            return;
        }

        // 拆分编码各段
        const statusCode = code[0];
        const typeCode = code.slice(1, 7);
        const categoryCode = code.slice(7, 10);
        const attributeCode = code.slice(10);

        // 获取映射后的名称,未匹配则显示"未知"
        const statusName = statusMap[statusCode] || '未知';
        const typeName = typeMap[typeCode] || '未知';
        const categoryName = categoryMap[categoryCode] || '未知';
        const attributeName = attributeMap[attributeCode] || '未知';

        // 重组为指定格式:类别-类型-属性-状态
        const formattedStr = `${categoryName}-${typeName}-${attributeName}-${statusName}`;
        targetInput.value = formattedStr;
    }

    // 方式1:当物料编码输入框内容变化时自动处理
    sourceInput.addEventListener('input', processCode);

    // 方式2:页面加载时如果输入框已有值,自动处理
    // if (sourceInput.value.trim()) {
    //     processCode();
    // }

    // 方式3:添加按钮手动触发(可选)
    // const triggerBtn = document.createElement('button');
    // triggerBtn.textContent = '解析编码';
    // triggerBtn.style.marginLeft = '10px';
    // sourceInput.parentNode.appendChild(triggerBtn);
    // triggerBtn.addEventListener('click', processCode);
})();

关键部分说明

  • 映射关系配置:statusMap、typeMap等对象用于存储编码与对应名称的映射,你可以根据实际业务需求补充更多条目。
  • 输入框选择器:需要将sourceInput和targetInput的选择器替换为目标网页中实际的元素选择器(比如通过ID、class或标签定位)。
  • 编码拆分逻辑:根据固定结构拆分字符串,若编码长度不符合14位(1+6+3+4),会清空目标输入框并在控制台提示。
  • 触发方式:脚本默认监听物料编码输入框的内容变化事件,自动解析重组;也可以选择页面加载时自动处理或添加手动触发按钮,按需启用对应代码块。

内容的提问来源于stack exchange,提问作者Sachin Agrawal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:58:28