您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
此脚本能更方便使用minerva-online平台,可在顶端菜单栏右下角的按钮处设置功能开关,并查看功能详情
当前为
// ==UserScript== // @name minerva-online assistant // @namespace https://space.bilibili.com/17846288 // @version 2.1.0 // @description 此脚本能更方便使用minerva-online平台,可在顶端菜单栏右下角的按钮处设置功能开关,并查看功能详情 // @author inoki // @match https://www.minerva-online.com/* // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js // @grant GM_setValue // @grant GM_getValue // @noframes // ==/UserScript== /*jshint esversion: 6 */ (()=>{ 'use strict'; const $=window.$; const SET=[ { 'id':0, 'name':'置顶置底', 'func':()=>{GOTOPBOTTOM();}, 'unfunc':()=>{unGOTOPBOTTOM();}, 'detail':'在平台域名所有页面生效,右下角添加置顶置底按钮,会根据页面滚动方向自动切换置顶和置底,按钮样式可在代码中自定义中修改', 'switch':1, }, { 'id':1, 'name':'菜单遮罩', 'func':()=>{COVERMENU();}, 'unfunc':()=>{unCOVERMENU();}, 'detail':'在有顶端菜单栏的页面生效,让菜单栏需要点击一次后才可展开,防止鼠标经过时误触(默认关闭)', 'switch':0, }, { 'id':2, 'name':'附件下载', 'func':()=>{DOWNLOADFILE();}, 'unfunc':()=>{unDOWNLOADFILE();}, 'detail':'在问卷管理页面生效,每份报告前添加↓按钮,点↓加载附件列表,点√下载全部附件,点附件名下载单个附件,鼠标悬停可预览图片', 'switch':1, }, { 'id':3, 'name':'扣分标记', 'func':()=>{MARKQUESTION();}, 'unfunc':()=>{unMARKQUESTION();}, 'detail':'在单店报告页面生效,将题目选项中勾选n/a的标橙,扣分的标红,选项更改后需保存报告才会刷新标记,方便快速检查扣分题评论', 'switch':1, }, ]; for(let i in SET) if(GM_getValue(SET[i].name,SET[i].switch)) SET[i].func(); /*在顶端菜单栏添加MOassist设置按钮*/ const menu=$('div#menu'); if(menu.length){ menu.find('ul.tools').append(` <li id="MOassist"> <a class="toolsLink"> <div class="iconTools" style="background: url('/images/icons/menu/x16/tools-settings.png')"></div> <ul class="textArea" style="visibility:visible; display:none;"><li>MO助手设置</li></ul> <ul id="MOoption" class="innerItemFirst" style="z-index: 11; display:none; visibility:hidden; top:25px">` ); menu.find('li#MOassist').on('click',function(){ $(this).find('ul#MOoption').css({visibility: "visible"}).show(); }); menu.find('li#MOassist').on('mouseleave',function(){ $(this).find('ul#MOoption').css({visibility: "hidden"}).hide(); }); //导入所有功能列表并显示开关状态 for(let i in SET){ menu.find('ul#MOoption').append(` <li id="MOassist"> <div class="menuItemText" style="color:#4c5057">${SET[i].name}</div> <input type=checkbox id=${SET[i].id} class=menuIconSmall></input> <ul class="textArea" style="visibility: visible; display: none; margin-top:0px; right:110px;"><li>${SET[i].detail}</li>` ); if(GM_getValue(SET[i].name,SET[i].switch)){ menu.find('input#'+SET[i].id).attr('checked',true); } } //根据是否选中即时启用或卸载功能并记录开关状态 menu.find('input').on('click',function(){ const id=$(this).attr('id'); if($(this).attr('checked')){ SET[id].unfunc(); $(this).attr('checked',false); GM_setValue(SET[id].name,0); } else{ SET[id].func(); $(this).attr("checked",true); GM_setValue(SET[id].name,1); } }); //鼠标聚焦时显示详情 【https://www.minerva-online.com/portal/menu/js/v2/menuRender.js?version=21-08 createToolOption : 】 menu.find('li#MOassist').hover(function(){ $(this).addClass("liHover"); $(this).find('ul:first').css({visibility: "visible"}).stop().show(250); },function(){ $(this).removeClass("liHover"); $(this).find('ul:first').css({visibility: "visible"}).stop().hide(250); }); } /*在顶端菜单栏添加MOassist设置按钮*/ /*置顶置底*/ function GOTOPBOTTOM(){ const scrollBar=$(document).height()>(window.innerHeight+1||document.documentElement.clientHeight);//如有滚动条 if(scrollBar&&document.location.href.indexOf('alias=knowledgebase')===-1){//knowledgebase页面自带置顶按钮,不启用 const goTopBottomButton=document.createElement('div'); const toggleButton=document.createElement('img'); $(toggleButton).appendTo(goTopBottomButton); $(goTopBottomButton).appendTo($('body')[0]); $(goTopBottomButton).css({'position':'fixed','zIndex':10000}).attr('id','goTopBottom'); $(toggleButton).css({'display':'block','cursor':'pointer'}).attr('src','/knowledgebase/images/arrow_back_to_top.svg');//按钮显示图片(向下箭头) //以下按钮参数可自定义修改 goTopBottomButton.style.bottom='50px';//按钮距离网页底部50px goTopBottomButton.style.right='30px';//按钮距离网页右边30px toggleButton.style.width='25px';//按钮图片宽25px toggleButton.style.height='25px';//按钮图片高25px toggleButton.style.opacity=0.5;//按钮不透明度,0.0(完全透明)到1.0(完全不透明) toggleButton.style.backgroundColor='grey';//按钮背景颜色,也可使用在excel等软件的自定义颜色界面的16进制代码 const clickScrollTime=500;//点击按钮时,网页滚动到顶部或底部需要的时间,单位是毫秒 //点击按钮时网页滚动到顶部或底部 let scrollDirection='down'; toggleButton.addEventListener('click',()=>{ if (scrollDirection==='up'){ $('html,body').animate({scrollTop:'0px'},clickScrollTime); } else{ $('html,body').animate({scrollTop:$(document).height()},clickScrollTime); } }); //页面滚动监听 let scrollAction=window.pageYOffset; $(window).scroll(()=>{ let diffY=scrollAction-window.pageYOffset; scrollAction=window.pageYOffset; scrollDirection= diffY<0? 'down' : 'up'; toggleButton.style.transform= diffY<0? 'rotate(0deg)' : 'rotate(180deg)'; if(getScrollTop()===0){ scrollDirection='down'; toggleButton.style.transform='rotate(0deg)'; } if(getScrollTop()+window.innerHeight+20>=$(document).height()){ scrollDirection='up'; toggleButton.style.transform='rotate(180deg)'; } }); } } //获取垂直方向滑动距离 function getScrollTop(){ let scrollTop=0; if(document.documentElement&&document.documentElement.scrollTop){ scrollTop=document.documentElement.scrollTop; } else if(document.body){ scrollTop=document.body.scrollTop; } return scrollTop; } /*置顶置底*/ /*卸载置顶置底*/ function unGOTOPBOTTOM(){ if($('div#goTopBottom').length) $('div#goTopBottom').remove(); } /*卸载置顶置底*/ /*菜单遮罩*/ function COVERMENU(){ const menu=$('div#menu'); if(menu.length){ //若存在menu则添加cover层 const cover = document.createElement('div'); cover.className = 'layout'; cover.style = 'top:57px;opacity:0.3;z-index:10000'; $(cover).appendTo($('body')[0]).attr('id','cover'); //点击时将cover层下置 cover.addEventListener('click',()=>{ cover.style.zIndex = -1; }); //离开menu时cover层还原 menu[0].addEventListener('mouseleave',()=>{ cover.style.zIndex = 10000; }); //cover层位置跟随menu 【https://www.minerva-online.com/portal/menu/js/v2/menuRender.js?version=21-08 onScrollEventHandler : 】 $(window).scroll(()=>{ const SM=unsafeWindow.SM; const ind = SM.ui.headerHeight - SM.ui.getScrollTop(); cover.style.top= ind>0? ind+'px' : '0px'; }); } } /*菜单遮罩*/ /*卸载菜单遮罩*/ function unCOVERMENU(){ if($('div#cover').length) $('div#cover').remove(); } /*卸载菜单遮罩*/ /*附件下载*/ function DOWNLOADFILE(){ if (document.location.href.indexOf('alias=smngr.surveyexplorer')>=0&&$('tr.persist-header').length){ $('tr.persist-header').each(function(){ $(this).children().first().after($(this).children().first().clone(true)); }); $('div.sticky-wrap').find(':checkbox').each(function(){//checkbox后添加下载按钮 let surveyid=$(this).val(); $(this).parent().after('<td><button type=button id='+surveyid+' class=download><b>↓</td>'); $('#'+surveyid+'.download').one('click',()=>{ DownloadButton(surveyid); }); }); } } //获取附件列表 function DownloadButton(surveyid){ $('button#'+surveyid+'.download').hide(); $('button#'+surveyid+'.download').after('<p id='+surveyid+' class=loading><b>......'); $.get('/open/data.asp?post={"action":"exec","dataset":{"datasetname":"/Apps/SM/Survey/SurveyInstanceGetData"},"parameters":[{"name":"SurveyInstanceID","value":"'+surveyid+'"}]}',(data,status)=>{//调用API获取当前survey数据[SurveyInstanceGetData] if (status==='success'){ let filedata=data.dataset.data[3]; let fileno=filedata.length; $('p#'+surveyid+'.loading').after('<ol id='+surveyid+' class=filelist>\t#='+fileno+''); if (fileno>0){ for(let i in filedata){ let filename=filedata[i].FileName+'.'+filedata[i].FileExtension; let fileid=filedata[i].AttachmentID; let fileurl='/mystservices/Attachments/getAttachment.asp?Attachment='+fileid+'&Password='+filedata[i].Password+''; let filesize=Number(filedata[i].FileSizeInBytes)/1024; filesize= (filesize>1024)? (filesize/1024).toFixed(2)+' MB' : filesize.toFixed(2)+' KB'; $('<tr id='+fileid+'>').appendTo('ol#'+surveyid+'.filelist'); $(`<td><li><a id=${surveyid} class='${filedata[i].AttachmentType} mailboxlink' href=${fileurl}>${filename}</a>`).appendTo('tr#'+fileid); $('<td>'+filesize+'</td>').appendTo('tr#'+fileid); } $('a#'+surveyid+'.I,a#'+surveyid+'.V').mouseenter(function(){ FilePreview(1,$(this).attr('href')); }); $('a#'+surveyid+'.I,a#'+surveyid+'.V').mouseleave(function(){ FilePreview(0); }); $('ol#'+surveyid+'.filelist').prepend('<button type=button id='+surveyid+' class=yes><b>√'); $('button#'+surveyid+'.yes').on('click',()=>{ DownloadAll(surveyid); }); DownloadButton0(surveyid); } else { DownloadButton0(surveyid); } } else { DownloadButton0(surveyid); } },"json"); } //预览附件图片 function FilePreview(show,src){ if(show){ let imgid=src.split('=')[2]; if($('img#'+imgid+'.filepreview').length===0){ $('<div><img id='+imgid+' class=filepreview>').appendTo('body'); $('img#'+imgid+'.filepreview').attr('src',src+'&getThumbnail=1').css('height','200px') .parent().css({'position':'fixed','zIndex':10000,'height':'200px','background':'url(/images/icons/filtersv2/loading06.gif)'}); } $('img#'+imgid+'.filepreview').parent().css({'top':event.clientY-200+'px','left':event.clientX+100+'px'}); $('img#'+imgid+'.filepreview').show(); } else{ $('img.filepreview').hide(); } } //按钮变为关闭 function DownloadButton0(surveyid){ $('p#'+surveyid+'.loading').remove(); $('button#'+surveyid+'.download').one('click',()=>{ DownloadButton1(surveyid); }); $('button#'+surveyid+'.download').text('×'); $('button#'+surveyid+'.download').show(); } //按钮重置为初始 function DownloadButton1(surveyid){ $('ol').remove('#'+surveyid); $('button#'+surveyid+'.download').one('click',()=>{ DownloadButton(surveyid); }); $('button#'+surveyid+'.download').text('↓'); } //下载全部 function DownloadAll(surveyid){ $('button#'+surveyid+'.yes').hide(); let iframe=$('ol#'+surveyid+'.filelist').find('iframe'); if(iframe)iframe.remove(); setTimeout(()=>{ $('button#'+surveyid+'.yes').show(); },1000*$('ol#'+surveyid+'.filelist').find('a').length); $('ol#'+surveyid+'.filelist').find('a').each(function(){ $('<iframe src='+$(this).attr('href')+'>').appendTo(this).hide(); }); $('button#'+surveyid+'.yes').text('〇'); } /*附件下载*/ /*卸载附件下载*/ function unDOWNLOADFILE(){ if (document.location.href.indexOf('alias=smngr.surveyexplorer')>=0&&$('tr.persist-header').length){ $('tr.persist-header').each(function(){ $(this).children().first().remove(); }); $('button.download').each(function(){ $(this).parent().remove(); }); } } /*卸载附件下载*/ /*扣分标记*/ function MARKQUESTION(){ if(document.location.href.indexOf('alias=survey.view')>=0){ $('span.surveyansweroption').each(function(){//标橙n/a项 if($(this).prev('input').is(':checked')){ if($(this).prev('input').val()==='__na__'){ $(this).css('color','orange'); } } }); //获取所有扣分的题目 let qidmark=[]; $.get('/mystservices/v2new/getSurvey.asp?InstanceID='+$('input#instanceID').val(),(data,status)=>{ if (status==='success'){ $(data).find('nobr').each(function(){ let score=$(this).text(); if(score!=''&&score.indexOf('%')===-1){ let pts=score.split('/'); if(pts[0]<pts[1]){ let QidANS=$(this).parent().parent().parent().parent().parent('td.surveyquestioncell').prev().find('div').attr('id'); qidmark.push(QidANS); } } }); for(let i in qidmark){//标红扣分项 $('div#'+qidmark[i]).find('span.surveyansweroption').css('color','red'); } } }); } } /*扣分标记*/ /*卸载扣分标记*/ function unMARKQUESTION(){ if(document.location.href.indexOf('alias=survey.view')>=0){ $('span.surveyansweroption').removeAttr('style'); } } /*卸载扣分标记*/ })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址