您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
fast switch account cookies
// ==UserScript== // @name MEST Sidebar // @namespace joyings.com.cn // @version 1.1.9 // @description fast switch account cookies // @author zmz125000 // @match http://*/mest/* // @icon http://www.google.com/s2/favicons?domain=openwrt.org // @grant none // @license MIT // @run-at document-end // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js // ==/UserScript== (function () { 'use strict'; // Your code here... document.onkeydown = function (e) { if (e.ctrlKey && e.code == 'KeyF') { // ctrl+f e.preventDefault(); document.querySelector("input.search-filter").select(); } }; function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } window.mini = true async function insertDiv() { var div = document.createElement('div'); div.id = "mySidebar"; div.className = "sidebar"; var radio = document.createElement('div'); radio.innerHTML = ` <div class="InputContainer"> <input placeholder="Search..." class ="search-filter"/> </div> <div id="sidebar-filter" class="radio filter"> <input label="全部" type="radio" name="materialType" data-filter="all"> <input label="原料" type="radio" name="materialType" data-filter="material"> <input label="包装物料" type="radio" name="materialType" data-filter="packaging"> </div> ` div.appendChild(radio) while (!$('#app')) { await sleep(200); } $('#app')[0].appendChild(div); // filter action var $filters = $('.filter [data-filter]'); $filters.on('click', function (e) { $('.grid-container').removeClass("grid-expanded"); var $this = $(this); var $item = $('.grid-container [data-type]'); var $filterType = $this.attr('data-filter'); if ($filterType == 'all') { $item.addClass('item'); $item.removeClass('item-hidden'); } else { $item.removeClass('item'); $item.addClass('item-hidden'); $item.filter('[data-type =' + $filterType + ']').addClass('item'); $item.filter('[data-type =' + $filterType + ']').removeClass('item-hidden'); } }); // search action document.querySelector("input.search-filter").addEventListener("input", function () { if (this.value == '' && $('input[name="materialType"]').filter(':checked').length != 0) { $('input[name="materialType"]').filter(':checked').click(); } else { var items = $('.grid-container [data-type]'); for (let elm of items) { if (elm.innerHTML.toLowerCase().includes(this.value.toLowerCase())) { elm.classList.remove("item-hidden"); elm.classList.add("item"); } else { elm.classList.remove("item"); elm.classList.add("item-hidden"); } } $('.grid-container').addClass("grid-expanded"); } }) // load data var data = loadData(); if (data && data['record']['orders']) { updateSidebar(data); } getLatestMat(); } function getLatestMat() { fetch('https://api.jsonbin.io/v3/b/637eceb165b57a31e6c15f19/latest') .then((response) => response.json() ) .then((data) => { updateSidebar(data); saveData(data); return data; }) .catch(console.error); } function updateSidebar(data) { if ($('ul', $('#mySidebar')[0])[0]) { $('#mySidebar')[0].removeChild($('ul', $('#mySidebar')[0])[0]); } var chkcount = 0; var topUL = document.createElement('ul'); $('#mySidebar')[0].appendChild(topUL); var orderArray = data['record']['orders']; for (let order of orderArray) { let oElm = document.createElement('li'); oElm.className = "order"; topUL.appendChild(oElm); let ielm = document.createElement("input"); ielm.className = "toggle"; ielm.type = "radio"; ielm.name = "order"; ielm.id = "collapsible" + chkcount; oElm.appendChild(ielm); let lelm = document.createElement("label"); lelm.htmlFor = "collapsible" + chkcount++; lelm.className = "lbl-toggle"; lelm.innerText = order['order']; oElm.appendChild(lelm); // osElm customer 下的 orders let gElm = document.createElement('div'); gElm.className = "grid-container"; oElm.appendChild(gElm); for (let item of order['material']) { let iElm = document.createElement('div'); iElm.className = 'item'; gElm.appendChild(iElm); switch (item['type']) { case 'material': iElm.setAttribute('data-type', 'material'); break; case 'packaging': iElm.setAttribute('data-type', 'packaging'); break; } for (let property in item) { if (property != 'code' && property != 'type') { let selm = document.createElement('span'); selm.setAttribute('data-code', item['code']); selm.innerText = item[property]; iElm.appendChild(selm); } } iElm.onclick = function () { event.stopPropagation(); if (document.querySelector('[placeholder*="订单号"]')) { document.querySelector('[placeholder*="订单号"]').value = order['order']; document.querySelector('[placeholder*="订单号"]').dispatchEvent(new Event('input', { bubbles: true })); } if (document.querySelector('[placeholder*="物料名称、编码、别名"]')) { document.querySelector('[placeholder*="物料名称、编码、别名"]').value = item['code']; document.querySelector('[placeholder*="物料名称、编码、别名"]').dispatchEvent(new Event('input', { bubbles: true })); } let sbtn = null; if ($('button:contains("查询")')[0]) { sbtn = $('button:contains("查询")')[0]; } else if ($('button:contains("搜索")')[0]) { sbtn = $('button:contains("搜索")')[0]; } else if ($('button:contains("搜 索")')[0]) { sbtn = $('button:contains("搜 索")')[0]; } if (sbtn) { sbtn.click(); } } } } } // 保存 读取 导入 切换 删除cookie // cookieData={ name:cookie,...} function loadData() { try { return JSON.parse(localStorage["matjson"]); } catch (e) { localStorage["matjson"] = null; return {}; } } function saveData(data) { localStorage["matjson"] = JSON.stringify(data); } function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); // style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } // init insertDiv(); addGlobalStyle(` .sidebar { height: 100%; position: fixed; z-index: 5000; top: 0; right: 0; background-color: #111; max-width: 0px; transition: all 0.5s; overflow-x: hidden; white-space: nowrap; color: #ffffff; background: #009578; box-shadow: 0 0 10px rgba(0, 0, 0, 0.35); padding: 5px; } .search-filter::selection { background: #1e1f28; color: white; } #app .sidebar { position: absolute; top: 0; right: 0px; } .sidebar .grid-container { max-height: 0px; transition: all 0.3s ease-in-out; } .sidebar .grid-container div { margin: 7px; grid-template-columns: auto auto auto auto; grid-gap: 10px; background-color: #2196F3; padding: 8px; border-radius: 5px; color: aliceblue; box-shadow: 0 3px #999; cursor: pointer; } .sidebar .grid-container div:hover { background-color: rgb(0, 102, 255); } .sidebar .grid-container>div:active { background-color: #3b693d; box-shadow: 0 1px #666; transform: translateY(2px); } .sidebar .order { width: auto; background-color: azure; border-radius: 5px; color: #111; overflow-y: hidden; font-size: smaller; } .sidebar .order::-webkit-scrollbar { display: none; } .sidebar .orderNo { padding: 5px; font-size: larger; } .sidebar:hover, .sidebar:focus-within { max-width: 600px; } .sidebar .order:hover { background-color: beige; } .sidebar li { list-style: none; margin-left: 15px; margin-right: 15px; margin: 10px; } .sidebar ul { padding: 0; list-style-type: none; } .sidebar label { margin: 10px; } .sidebar span { margin-left: 2px; } .sidebar .item-hidden { display: none; } .sidebar .item { display: grid; } .sidebar::-webkit-scrollbar { display: none; } .sidebar .radio { margin: 10px; margin-left: 5px; padding: 0; position: relative; } .sidebar .radio input { width: auto; -webkit-appearance: none; -moz-appearance: none; appearance: none; outline: none; cursor: pointer; border-radius: 5px; padding: 4px 8px; background: #1e1f28; color: white; font-size: 14px; transition: all 100ms linear; } .sidebar .radio input:checked { background-image: linear-gradient(180deg, #95d891, #74bbad); color: #fff; box-shadow: 0 1px 1px #0000002e; text-shadow: 0 1px 0px #79485f7a; } .sidebar .radio input:before { content: attr(label); display: inline-block; text-align: center; width: 100%; } .sidebar .InputContainer input { background-color: #e3edf7; padding: 8px 16px; border: none; display: block; font-family: 'Orbitron', sans-serif; font-weight: 600; color: #a9b8c9; transition: all 240ms ease-out; width: 100%; } .sidebar .InputContainer input::placeholder { color: #6d7f8f; } .sidebar .InputContainer input:focus { outline: none; color: #6d7f8f; background-color: #eff5fa; } .sidebar .InputContainer { margin: 5px; --top-shadow: inset 1px 1px 3px #c5d4e3, inset 2px 2px 6px #c5d4e3; --bottom-shadow: inset -2px -2px 4px rgba(255, 255, 255, 0.7); position: relative; border-radius: var(--border-radius); overflow: hidden; } .sidebar .InputContainer:before, .sidebar .InputContainer:after { pointer-events: none; width: 100%; height: 100%; position: absolute; } .sidebar .InputContainer:before { box-shadow: var(--bottom-shadow); } .sidebar .InputContainer:after { box-shadow: var(--top-shadow); } .sidebar .order input[type="radio"] { display: none; } .sidebar .lbl-toggle { display: block; cursor: pointer; font-size: larger; } .sidebar .grid-container.grid-expanded { max-height: 10000px; } .sidebar .toggle:checked+.lbl-toggle+.grid-container { max-height: 10000px; } `); })();