// ==UserScript==
// @name minerva-online assistant
// @namespace https://space.bilibili.com/17846288
// @version 3.3.3
// @license MIT
// @description 此脚本能更方便使用minerva-online平台,可在顶端菜单栏右下角的按钮处设置功能开关,并查看功能详情
// @author inoki
// @match https://www.minerva-online.com/*
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// @connect www2.deepl.com
// @run-at document-start
// @noframes
// @downloadURL none
// ==/UserScript==
/* VersionInfo 企业微信文档:https://doc.weixin.qq.com/doc/w2_AOMADQamAG8fAzy6aF1RWWmEc2ZhG?scode=AMwAwgcrABEDCapPcV
扣分标记:修正有隐藏题时在审核端填写未提交问卷会无法正常生效的问题
*/
/*jshint esversion: 11*/
(() => {
'use strict';
const SET = {
0: {
'id': 0,
'name': '置顶置底',
'func': () => { GOTOPBOTTOM(); },
'unfunc': () => { unGOTOPBOTTOM(); },
'detail':
'在平台域名所有可滚动页面生效,可快速滚动页面,或记录页面位置
' +
'页面右下方添加【∨】/【∧】按钮
' +
'【∨】/【∧】左键点击会根据页面滚动方向自动置顶或置底,按钮样式可在代码中自定义中修改
' +
'【∨】/【∧】右键点击会在左侧生成【>】按钮,再次右键点击会删除【>】图标
' +
'【>】生成时会记录当前页面位置,点击【>】将回到所记录的页面位置',
'switch': 1
},
1: {
'id': 1,
'name': '菜单遮罩',
'func': () => { COVERMENU(); },
'unfunc': () => { unCOVERMENU(); },
'detail':
'在有顶端菜单栏的页面生效,可优化菜单栏展开逻辑
' +
'让菜单栏需要点击一次后才可展开,防止鼠标经过时误触
' +
'(默认关闭)',
'switch': 0
},
2: {
'id': 2,
'name': '附件下载',
'func': () => { DOWNLOADFILE(); },
'unfunc': () => { unDOWNLOADFILE(); },
'detail':
'在问卷管理页面(alias=smngr.surveyexplorer)生效,可一键下载/预览/删除报告的附件
' +
'每份报告前添加【↓】按钮
' +
'【↓】点击可加载附件列表
' +
'【√】点击可下载全部附件,之后会变为【〇】
' +
'【×】点击可关闭附件列表
' +
'附件名点击可下载单个附件,鼠标悬停可预览图片
' +
'【删除全部附件】点击可将此报告全部附件标记为删除',
'switch': 1
},
3: {
'id': 3,
'name': '扣分标记',
'func': () => { MARKQUESTION(); },
'unfunc': () => { unMARKQUESTION(); },
'detail':
'在单店报告页面(alias=survey.view)和功能【报告预览】中生效,可即时观察选项改动后的分数变化,也方便快速检查相关题
' +
'将报告中题目的每个选项后方显示其分值(如有),在每题右上角显示当前具体分数,并对扣分题和N/A题标记相应颜色
' +
'选项发生变化时,右上角分数会即时更新,并更新颜色标记
' +
'鼠标悬停于每题右上角的分数时,会显示后台设置的得分计算规则
' +
'可在上方设置扣分(默认为红)和N/A(默认为绿)的标记颜色,点击【√】保存更改
' +
'颜色更改后关闭再开启此功能可在报告页面即时刷新颜色
' +
'星期选项与日期不匹配时也将以扣分颜色标记(非即时更新),匹配时将在后方显示绿色√',
'switch': 1
},
4: {
'id': 4,
'name': '评论编辑',
'func': () => { COMMENTEDIT(); },
'unfunc': () => { unCOMMENTEDIT(); },
'detail':
'在单店报告页面(alias=survey.view,v3问卷除外)生效,可对整体评论进行替换/首字大写/翻译等操作
' +
'右下方【问卷图标】按钮展开操作界面
' +
'使用前请注意阅读操作界面最上方的【点击获取提示】
' +
'【匹配/替换内容】框内输入内容将即时显示匹配的评论框数,并标灰评论框且在上方标记^^,鼠标悬停灰色评论框可预览替换后内容
' +
'【匹配内容】支持正则表达式(详见【点击获取提示】),可Ctrl+F使用浏览器自带功能搜索^^标记,以快速定位匹配到的评论框
' +
'【一键替换】点击可将所有匹配到的评论框内容修改为替换后内容,此时鼠标悬停灰色评论框可预览修改前内容
' +
'【首字母大写】点击可智能将所有句首英文字母变为大写,显示修改过的评论框数并标灰,此时鼠标悬停灰色评论框可预览修改前内容
' +
'【评论翻译】点击会调用百度翻译,在每个评论框下方输出目标语言翻译,点击↑可将下方内容添加至评论框',
'switch': 1
},
5: {
'id': 5,
'name': '验证输出',
'func': () => { VERIFYEXPORT(); },
'unfunc': () => { unVERIFYEXPORT(); },
'detail':
'在问卷管理页面(alias=smngr.surveyexplorer)生效,可一键验证输出所有勾选的报告
' +
'在页面内显示报告时,表头上方会添加【验证输出勾选的报告】按钮
' +
'【验证输出勾选的报告】点击并确认后会验证输出当前页面勾选的所有报告,成功输出的报告下方小窗口会显示绿色提示
' +
'(电脑配置较低时一次输出太多份可能导致页面卡死,请根据浏览器最多同时能开几个报告页面量力而行,默认关闭)',
'switch': 0
},
6: {
'id': 6,
'name': '定制汇总',
'func': () => { CUSTOMROLLUP(); },
'unfunc': () => { unCUSTOMROLLUP(); },
'detail':
'在定制汇总页面(alias=clientaccess.customrollups)生效,可对数据表格执行一些便捷功能
' +
'在汇总表格上方添加功能按钮
' +
'【复制表格】点击可一键复制表格全部内容,方便复制到excel等软件中编辑,对alias=client.analysiscustomrollups.3.0页面也生效
' +
'【复制表格】右侧下拉框选择“分数后+%”时,仅在Pivot table界面下生效,点击【复制表格】执行复制前会为所有数据后添加%
' +
'【精确Pts%】点击可在表格右侧添加一列Pts/PtsOf的比值,并根据右侧下拉框选择的数字,进行相应小数位数的四舍五入
' +
'【精确Pts%】需要Pts和PtsOf列同时存在才能正常生效,用以避免默认Pts%的2位小数舍入可能造成的偏差
' +
'【选项统计】点击可自动统计各架构各题选项的数量与占比,并在表格下方的新增行中展示(QuestionText前[AD]标识),百分比值根据左侧下拉框数字四舍五入
' +
'【选项统计】需要QuestionText和AnswerText和#Surveys列同时存在才能正常生效,数量显示在末尾括号内,百分比值显示在#Survsys格
' +
'【选项统计】参与统计的仅为QuestionText/AnswerText左侧非隐藏列和非隐藏行,可在隐藏不必要的列或行后重新点击按钮刷新统计
' +
'【选项统计】在点击问题选项最右侧按钮加载选项后,可在统计中显示数量为0的选项',
'switch': 1
},
7: {
'id': 7,
'name': '报告存档',
'func': () => { SURVEYSAVES(); },
'unfunc': () => { unSURVEYSAVES(); },
'detail':
'在单店报告页面(alias=survey.view,v3问卷除外)生效,可为报告内容实时进行本地存档防止意外丢失
' +
'右下方【书本图标】按钮展开操作界面,可查看自动/手动存档列表
' +
'【存档】点击可进行手动存档,每次对报告内容进行修改时,将在本地进行自动存档
' +
'【预览】点击可查看存档内容,并对需要读档写入的题目进行勾选,存档内容与当前报告不一致的会有红框标出
' +
'【读档】点击可将选中的存档全部内容写入到当前报告,或只写入预览界面勾选的题目
' +
'【删除】点击可删除选中的存档,自动/手动存档上限各为10个,超出时自动删除此类最早存档
' +
'【下载】仅在预览手动存档时显示,可将手动存档内的报告内容下载为.csv格式文件
' +
'【上传】仅在预览手动存档时显示,可将.csv格式文件内容上传为手动存档,内容格式请严格按照【下载】的.csv格式文件
' +
'(“评论编辑”功能造成的修改不会触发自动存档,可在修改后点击任意评论框触发自动存档)',
'switch': 1
},
/*
8:{
'id':8,
'name':'PDF命名',
'func':()=>{PDFRENAME();},
'unfunc':()=>{unPDFRENAME();},
'detail':
'在“以PDF格式下载”的转化页面生效,在高级页添加【命名并下载(全部)】按钮
'+
'可在下方FIle Name处自定义命名格式,在下拉框选择需要的命名元素(无须点merge)
'+
'【命名并下载】点击可下载单个PDF,并按File Name处的自定义命名格式命名
'+
'【命名并下载全部】点击相当于一键点击了所有【命名并下载】
'+
'(默认关闭,因为平台已于2022.10更新中支持了中文命名)',
'switch':0
},
*/
9: {
'id': 9,
'name': '优化表头',
'func': () => { BETTERTHEAD(); },
'unfunc': () => { unBETTERTHEAD(); },
'detail':
'在所有含有页面滚动时自动冻结表头功能的页面生效(例:问卷管理),可优化表头功能
' +
'点击表头上方【标题】行可显示表格所有列的表头内容,根据其勾选状态与否可显示/隐藏对应列
' +
'优化冻结表头的表现,使冻结的表头不再像原先那样闪烁,且在冻结状态下也能执行排序/筛选功能
' +
'(优化冻结表头在部分浏览器可能不支持,若无效建议使用最新版chrome/edge浏览器体验)',
'switch': 1
},
10: {
'id': 10,
'name': '外观效果',
'func': () => { CSSEFFECT(); },
'unfunc': () => { unCSSEFFECT(); },
'detail':
'对所有网页外观效果进行调整
' +
'【夜间模式】开启后整体页面主色调变为黑色,在某些场景下更护眼
' +
'(目前夜间模式为较粗略的反色处理,如有视觉效果差的地方请反馈,后续将调整)
' +
'【隐藏logo】开启后隐藏左上角Minerva&Co的logo区域,节省页面空间',
'switch': 1
},
11: {
'id': 11,
'name': '图片编辑',
'func': () => { IMAGEEDIT(); },
'unfunc': () => { unIMAGEEDIT(); },
'detail':
'在附件图片的编辑页面(/mystservices/MystImageUpload/upload_modify.asp)生效,可扩展功能
' +
'在点击【shape】→【color】为添加的图形选择颜色时,颜色从原本的2种增加至63种',
'switch': 1
},
12: {
'id': 12,
'name': '报告预览',
'func': () => { REPORTCONTENT(); },
'unfunc': () => { unREPORTCONTENT(); },
'detail':
'在执行管理页面(alias=smngr.opermgmt)生效,可批量预览报告内容及分数,方便未上线报告批量复查
' +
'在此页面点击【问卷】→【显示问卷】后,页面内有报告时,右侧会添加一页【报告内容】
' +
'【报告内容】→【显示内容】点击后将自动加载对应报告的内容,并显示在表格中
' +
'报告内的图片附件点击可放大,非图片附件点击可下载
' +
'点击表格上方的excel图标可下载当前表格中的所有显示内容,下载前可根据需要隐藏多余的行和列
' +
'如对报告进行了修改,再次点击【显示内容】即可刷新显示的报告内容
' +
'如要更换显示的报告,需先在【问卷】页内更新显示的报告,再在【报告内容】页内点击【显示内容】',
'switch': 1
},
};
unsafeWindow.MA_SET = SET;
//先执行外观效果功能
let CSSEFFECT_style;
if (GM_getValue(SET[10].name, SET[10].switch)) SET[10].func();
//DOM加载后开始执行其余功能
let $;
document.addEventListener('DOMContentLoaded', () => {
//filemanager页面不执行
if (document.location.href.includes('alias=filemanager')) {
unsafeWindow.userIsEnterpriseAdmin = true;
return;
}
//如网页无jQuery或版本低于1.7则引入1.8.2
$ = unsafeWindow.jQuery;
try {
console.log('jq', $.fn.jquery, 'ui', $.ui?.version);
$().on();//jQuery 1.7版本后才有$().on()
init();
} catch (e) {
const hasUI = $?.ui;
const jq = document.createElement('script');
jq.src = '/lib/jquery/jquery-1.8.2.min.js';//'https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js';
document.head.appendChild(jq);
jq.onload = () => {
if (hasUI) {
const jqui = document.createElement('script');
jqui.src = '/lib/jqueryui/jquery-ui-1.8.21.min.js';
document.head.appendChild(jqui);
jqui.onload = () => console.log('jQueryUI', $.ui.version);
}
$ = unsafeWindow.jQuery;
init();
};
}
collaborationEnterpriseAdmin();
});
//用于打印脚本简介
unsafeWindow.MA_logInfo = () => {
let info = '', i = 0;
for (let s in SET) {
info += `${++i} ${SET[s].name}:\n`;
info += SET[s].detail.replaceAll('
', '');
info += '\n\n';
}
console.log(info);
return info;
};
/*在顶端菜单栏添加MOassist设置按钮*/
function init() {
console.log('jQuery', $.fn.jquery);
for (let i in SET) if (GM_getValue(SET[i].name, SET[i].switch)) SET[i].func();//执行开启的功能
const menu = $('div#menu');
if (menu.length) {
menu.find('ul.tools').append(
`