您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
根据域名默认选择 Jenkins 分支下拉选项,并将关键字行置顶且高亮,左上角显示环境标签
当前为
// ==UserScript== // @name Jenkins Select Default Option & Table Sort (高亮关键字行+左上角环境标签) // @namespace http://tampermonkey.net/ // @version 1.7 // @description 根据域名默认选择 Jenkins 分支下拉选项,并将关键字行置顶且高亮,左上角显示环境标签 // @match https://jenkins-dev.dachensky.com/* // @match https://jenkins-pro.dachensky.com/* // @license MIT // @grant none // ==/UserScript== (function() { 'use strict'; // 添加高亮样式和环境标签样式 function addHighlightStyle() { if (document.getElementById('copilot-highlight-style')) return; const style = document.createElement('style'); style.id = 'copilot-highlight-style'; style.innerHTML = ` .jenkins-table > tbody > tr.copilot-highlight-row > td { background-color: #fff9f7 !important; } .copilot-env-tag { position: fixed; top: 20px; left: 500px; z-index: 9999; padding: 6px 18px; border-radius: 18px; font-size: 16px; font-weight: bold; color: #fff; background: #ffb980; box-shadow: 0 2px 8px rgba(0,0,0,0.08); letter-spacing: 2px; user-select: none; pointer-events: none; } .copilot-env-tag.pre { background: #ff7979; } `; document.head.appendChild(style); } // 左上角环境标签 function addEnvTag() { if (document.getElementById('copilot-env-tag')) return; let env = ''; let envClass = ''; if (location.hostname === 'jenkins-dev.dachensky.com') { env = 'DEV环境'; envClass = ''; } else if (location.hostname === 'jenkins-pro.dachensky.com') { env = 'PRE环境'; envClass = 'pre'; } if (env) { const tag = document.createElement('div'); tag.id = 'copilot-env-tag'; tag.className = `copilot-env-tag${envClass ? ' ' + envClass : ''}`; tag.innerText = env; document.body.appendChild(tag); } } // 默认选择下拉选项 function selectDefaultOption() { const select = document.getElementById('gitParameterSelect'); if (!select) return; let defaultValue = ''; if (location.hostname === 'jenkins-dev.dachensky.com') { defaultValue = 'dev'; } else if (location.hostname === 'jenkins-pro.dachensky.com') { defaultValue = 'pre'; } if (defaultValue) { select.value = defaultValue; select.dispatchEvent(new Event('change', { bubbles: true })); } } // 表格行排序并高亮关键字行 function sortTableRows() { const keywords = [ 'qlchat-admin','qlchat-admin-front','qlchat-app-server','qlchat-h5-server','qlchat-task','qlchat-wap', 'qlchat-common-dubbo-provider','qlchat-common-service','qlchat-ops-weapp-server','qlchat-bigdata-feedback-gateway', 'qlchat-censor','qlchat-comment','qlchat-coupon-server','qlchat-crm','qlchat-search-server', 'qlchat-unity-server', 'qlchat-kaifang', 'qlchat-payment' ]; const table = document.getElementById('projectstatus'); if (!table) return; const tbody = table.tBodies[0] || table; const rows = Array.from(tbody.querySelectorAll('tr[id]')); // 按关键字分组并高亮 const matchRows = []; const otherRows = []; rows.forEach(row => { row.classList.remove('copilot-highlight-row'); // 先移除高亮 if (keywords.some(keyword => row.id.includes(keyword))) { matchRows.push(row); row.classList.add('copilot-highlight-row'); // 添加高亮 } else { otherRows.push(row); } }); // matchRows 按 keywords 顺序排序 matchRows.sort((a, b) => { const aIndex = keywords.findIndex(keyword => a.id.includes(keyword)); const bIndex = keywords.findIndex(keyword => b.id.includes(keyword)); return aIndex - bIndex; }); // 重新排序 const allRows = matchRows.concat(otherRows); allRows.forEach(row => tbody.appendChild(row)); } // 监听下拉框的出现(全局监听,防抖) function observeSelect() { let timer = null; const observer = new MutationObserver(() => { clearTimeout(timer); timer = setTimeout(selectDefaultOption, 100); }); observer.observe(document.body, { childList: true, subtree: true }); } // 监听表格变化(只监听表格,防抖,排序后断开监听) function observeTable() { const table = document.getElementById('projectstatus'); if (!table) return; const tbody = table.tBodies[0] || table; let timer = null; const observer = new MutationObserver(() => { clearTimeout(timer); timer = setTimeout(() => { sortTableRows(); observer.disconnect(); // 排序后断开监听 }, 100); }); observer.observe(tbody, { childList: true, subtree: true }); } // 初始执行 addHighlightStyle(); addEnvTag(); selectDefaultOption(); sortTableRows(); observeSelect(); observeTable(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址