您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
автосортировка подразделений по колонке "специализация"
当前为
// ==UserScript== // @name Virtonomica: автосортировка подразделений по колонке "специализация" // @namespace virtonomica // @version 1.2 // @description автосортировка подразделений по колонке "специализация" // @include http://*virtonomic*.*/*/main/company/view/*/unit_list // @include http://*virtonomic*.*/*/main/company/view/* // ==/UserScript== var run = function() { var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window); $ = win.$; function trim(str) { return str.replace(/^\s+|\s+$/g,""); } function getLvl(str) { var first = str.indexOf('</') + 4; var perc = trim(str.substr(0, first)); var second = str.substr(first+1).indexOf('</') + 4; var lvl = parseInt(trim(str.substr(first+1, second)).replace("<b>","").replace("</b>","").replace(".",""),10); // console.log("'"+ lvl+"'" ); return lvl; } function getName(str) { var first = str.indexOf('</') + 4; var perc = trim(str.substr(0, first)); var second = str.substr(first+1).indexOf('</') + 4; var lvl = trim(str.substr(first+1, second)); var name = trim(str.substr(first+1 +second + 1).replace("</div>","")); // console.log( "'"+name +"'"); return name; } function getPerc(str) { var first = str.indexOf('</') + 4; var perc = parseInt(trim(str.substr(0, first)).replace("<div class=\"lab\"><b style=\"color:red\">","").replace("<div class=\"lab\"><b style=\"color:brown\">","").replace("<div class=\"lab\"><b style=\"color:green\">","").replace("%</b>","").replace(".",""),10); // console.log( "'"+ perc +"'"); return perc; } function compareEq(left, right){ //console.log("'"+ getName(left)+"' localeCompare '" + getName(right)+"'" + (getName(left).localeCompare(getName(right)) == 0)); //console.log("'"+ getLvl(left)+"' == '" + getLvl(right)+"'" + (getLvl(left) == getLvl(right))); if(getName(left).localeCompare(getName(right)) == 0 && getLvl(left) == getLvl(right) && getPerc(left) == getPerc(right)) return true; else return false; } function compareGreater(left, right){ // console.log("'"+ getLvl(left)+"' > '" + getLvl(right)+"'" + (getLvl(left) > getLvl(right))); var nameCmp = getName(left).localeCompare(getName(right)); if(nameCmp == 1) return true; else if(nameCmp == -1) return false; var lvlCmp = getLvl(left) - getLvl(right); if(lvlCmp > 0) return true; else if(lvlCmp < 0) return false; var percCmp = getPerc(left) - getPerc(right); if(percCmp > 0) return true; else if(percCmp < 0) return false; return false; } function sort_table(tbody, col, asc){ var rows = tbody.rows; var rlen = rows.length; var arr = []; var i, j, cells; // fill the array with values from the table for(i = 0; i < rlen; i++){ cells = rows[i].cells; arr.push([rows[i], cells[col].innerHTML]); } // sort the array by the specified column number (col) and order (asc) arr.sort(function(a, b){ return (compareEq(a[1], b[1])) ? 0 : ((compareGreater(a[1], b[1])) ? asc : -1*asc); }); for(i = 0; i < rlen; i++){ tbody.appendChild(arr[i][0]); } } // Список с ячейками, содержащими названия подразделений var td_specs = $('td.spec'); //alert(td_specs[0].innerHTML); // alert(td_spec.parentNode.parentNode.innerHTML); sort_table(td_specs[0].parentNode.parentNode, 5, 1); } if(window.top == window) { var script = document.createElement("script"); script.textContent = '(' + run.toString() + ')();'; document.documentElement.appendChild(script); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址