您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Модификация страницы "Снабжение"
// ==UserScript== // @name Virtonomica:Diyacom_Supply // @namespace Violentmonkey Scripts // @grant none // @version 1.7 // @author Diyacom // @description Модификация страницы "Снабжение" // @include http*://*virtonomic*.*/*/main/unit/view/*/supply* // @include http*://*virtonomic*.*/api/*/main/unit/supply/summary* // @include http*://*virtonomic*.*/api/*/main/unit/supply/set* // @match https://virtonomica.ru/api/vera/main/unit/supply/summary // ==/UserScript== var run = function () { var href = location.href; var id_shop = /(\d+)/.exec(location.href)[0]; var realm = href.replace('https://virtonomica.ru/',''); realm = realm.substr(0,4); var link_api = `https://virtonomica.ru/api/${realm}/main/unit/summary?id=${id_shop}`; function p_q_f(price, quality) { if (price == undefined){ return; } if (!parseInt(price) && price != '' ) { price = price.replace(/\s/g, ''); price = /(\d+\.*\d*)/.exec(price); price = price[1]; } if (!parseInt(quality) && quality != '' ) { quality = quality.replace(/\s/g, ''); quality = /(\d+\.\d+)/.exec(quality); if ( quality != null ) { quality = quality[1]; } else return ''; } return (price / quality).toFixed(2); } function Edit_item(selector){ var price_s = $("td.text-right.text-middle.offer_price", selector); if (price_s.text().length > 0 ) { var price_a = /(\d+\.*\d*)/.exec(price_s.text().replace(/\s/g, '')); if ( price_a != null ) { var price = price_a[1]; var quality_s = $("td.text-right.text-middle.quality", selector); if (quality_s.text().length > 0 ) { var quality_a = /(\d+\.\d+)/.exec(quality_s.text()); if ( quality_a != null ) { quality = quality_a[1]; if ( quality != null ) { }; var p_q = (price / quality).toFixed(2); console.log(price, quality ); price_s.append('<span> / '+p_q+'</span>').css('color', 'blue'); }; }; } else {console.log('false price_a', price_s.text().replace(/\s/g, ''))} } }; function Edit_card(selector){ $('thead > tr > th:nth-child(4)', selector).after('<th class="mob-hide">Ц/К</th>'); var line = $('tbody > tr', selector); line.each(function(id){ var price_s = $('td.text-right.text-middle.offer_price', this) var price = price_s.text(); var quality = $('td.text-right.text-middle.quality', this).text(); var p_q = p_q_f(price, quality); p_q = $(`<td class="mob-hide">${p_q}</td>`).css('color', 'blue').addClass('text-middle') price_s.after(p_q) }) } var TC = document.querySelector('div#wrapper'); if (TC != null) { Edit_card(TC); } var OC = new MutationObserver(function(MC) { MC.forEach(function(m_c) { if (m_c.addedNodes.length > 1) { m_c.addedNodes.forEach(function(mc_an) { if (mc_an.nodeName == 'DIV') { TC = document.querySelector('div.tabbable-custom'); } }) } }) // console.log('MC.addedNodes', MC.addedNodes); }) var CC = { attributes: false, childList: true, characterData: false, subtree: true } OC.observe(TC, CC); $(window).load(function(){ // $(document).ready(function() { // $(document).load(function() { var target_card = document.querySelector('div#mainContent'); // console.log(target_card); // console.log(target_card.childNodes); if (target_card != null) { Edit_card(target_card); } var observer_card = new MutationObserver(function(mutations_card) { // console.log('MC', mutations_card); mutations_card.forEach(function(mutation_card) { if (mutation_card.addedNodes.length > 3) { // console.log(mutation_card.addedNodes); mutation_card.addedNodes.forEach(function(card) { // console.log(card); card = $('div.col-sm-12 > div.table-responsive', card); if (card.length > 0) { // console.log(card); Edit_card(card); } //else {console.log('l=0', card)} }) } }) }) var config_card = { attributes: false, childList: true, characterData: false, subtree: true } // console.log(target_card, config_card) observer_card.observe(target_card, config_card); // Отслеживаем нажатие кнопки "заказ" var target = document.querySelector('div.modal'); // создаем экземпляр наблюдателя var observer = new MutationObserver(function(mutations) { var modal = $('#materials-offer-list > div > table', target); // console.log(modal); mutations.forEach(function(mutation) { // console.log(mutation.addedNodes.length); if (mutation.type == 'childList' && mutation.addedNodes.length > 1) { console.log('Debug', mutation); mutation.addedNodes.forEach(function(mc_an) { if (mc_an.nodeName == 'DIV') { console.log('mc_an = ', mc_an); console.log($('thead > tr', this)); console.log('DL = ', $('div.table-responsive').length) $('thead > tr', mc_an).append('<th class="mob-hide">Ц/К</th>'); } }) // console.log('Debug', $('thead', modal)); var line = $('tbody > tr', modal); line.each(function(id){ var price = $('td.text-right.text-middle.money.trans-price-total', this).text(); var quality = $('td.text-right.text-middle.money.trans-quality', this).text(); var p_q = p_q_f(price, quality); $(this).append(`<td class="mob-hide" style = "background-color:#e4fffe">${p_q}</td>`); }) } }); }); // настраиваем наблюдатель var config = { attributes: false, childList: true, characterData: false, subtree: true } // передаем элемент и настройки в наблюдатель observer.observe(target, config); // позже можно остановить наблюдение // observer.disconnect(); }); }; run(); /* // Хак, что бы получить полноценный доступ к DOM >:] var script = document.createElement("script"); script.textContent = '(' + run.toString() + ')();'; document.documentElement.appendChild(script); */