-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMRHelper.min.js
27 lines (26 loc) · 25.4 KB
/
MRHelper.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// ==UserScript==
// @name 出勤助手
// @namespace https://github.com/qwe1187292926/
// @version 1001
// @icon https://www.agemys.com/favicon.ico
// @description A script enhance MR attendance management
// @homepageURL https://github.com/qwe1187292926/MuRongManagementAssist
// @supportURL https://github.com/qwe1187292926/MuRongManagementAssist/issue
// @updateURL https://cdn.jsdelivr.net/gh/qwe1187292926/MuRongManagementAssist/MRHelper.min.js
// @downloadURL https://cdn.jsdelivr.net/gh/qwe1187292926/MuRongManagementAssist/MRHelper.min.js
// @author NOBODY
// @match https://mis.murongtech.com/mrmis/toMenu.do?menu_id=332005
// @match https://mis.murongtech.com/mrmis/toMenu.do?menu_id=332015
// @match https://mis.murongtech.com/mrmis/login.do
// @match https://mis.murongtech.com/mrmis/
// @match https://mis.murongtech.com/mrmis/toHome.do
// @match https://mis.murongtech.com/mrmis/logOut.do
// @require https://mis.murongtech.com/mrmis/js/bootstrap-datatable/bootstrap-table.js?t=202009080152320
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_xmlhttpRequest
// ==/UserScript==
// 用webpack-cli
// 工作日字典:let dict={"1":"休","0":"班"};
// 0为工作日,1为休息日
var nzhcn,t,e;t=this,nzhcn=(e=function(){"use strict";function n(n,a){var o=s.getNumbResult(n);if(!o)return n;a=a||{};var i=this.ch,r=this.ch_u,l=this.ch_f||"",c=this.ch_d||".",d=i.charAt(0),u=o.int,g=o.decimal,f=o.minus,p="",m="",h=f?l:"";if(g){g=s.clearZero(g,"0","$");for(var y=0;y<g.length;y++)m+=i.charAt(+g.charAt(y));m=m?c+m:""}if(p=function n(o,l,c){o=s.getNumbResult(o).int;var u="",g=arguments.length>1?arguments[1]:a.tenMin,f=o.length;if(1==f)return i.charAt(+o);if(f<=4)for(var p=0,m=f;m--;){var h=+o.charAt(p);u+=g&&2==f&&0==p&&1==h?"":i.charAt(h),u+=h&&m?r.charAt(m):"",p++}else{for(var y=o.length/4>>0,b=o.length%4;0==b||!r.charAt(3+y);)b+=4,y--;var w=o.substr(0,b),C=o.substr(b);u=n(w,g)+r.charAt(3+y)+("0"==C.charAt(0)?d:"")+n(C,C.length>4&&g)}return s.clearZero(u,d)}(u),a.ww&&r.length>5){var b=r.charAt(4),w=r.charAt(5),C=p.lastIndexOf(w);~C&&(p=p.substring(0,C).replace(RegExp(w,"g"),b+b)+p.substring(C))}return h+p+m}function a(n){var a=(n=n.toString()).split(this.ch_d),o=a[0].replace(this.ch_f,""),i=a[1],r=!!~a[0].indexOf(this.ch_f),l=this.ch_u.charAt(1),c=this.ch_u.charAt(4),d=this.ch_u.charAt(5);o=o.replace(RegExp(c+"{2}","g"),d);for(var u=o.split(""),g=0,f=0,p=[],m=[],h=[],y=0;y<u.length;y++){var b=u[y],w=0,C=0;if(~(w=this.ch.indexOf(b)))w>0&&h.unshift(w);else if(~(C=this.ch_u.indexOf(b))){var M=s.getDigit(C);g>C?(s.unshiftZero(h,M),s.centerArray(m,h)):C>=f?(0==y&&(h=[1]),s.centerArray(p,m,h),p.length>0&&s.unshiftZero(p,M),f=C):(0==h.length&&l==b&&(h=[1]),s.centerArray(m,h),s.unshiftZero(m,s.getDigit(C)),g=C)}}s.centerArray(p,m,h).reverse(),0==p.length&&p.push(0);var _=0;if(i){p.push("."),_="0.";for(var y=0;y<i.length;y++)_+=this.ch.indexOf(i.charAt(y)),p.push(this.ch.indexOf(i.charAt(y)));_=+_}return r&&p.unshift("-"),parseFloat(p.join(""))}function o(a,o){var i={ww:!0,complete:!1,outSymbol:!0,unOmitYuan:!1},r=s.getNumbResult(a),l=this.ch.charAt(0);if(o="object"==typeof o?o:{},!r)return a;o=s.extend(i,o);var c=r.int,d=r.decimal||"",u=o.outSymbol?this.m_t:"",g=r.minus?this.ch_f:"",f="";if(o.complete){for(var p=1;p<this.m_u.length;p++)f+=n.call(this,d.charAt(p-1)||"0")+this.m_u.charAt(p);g+=n.call(this,c,o)+this.m_u.charAt(0)}else{var m=o.unOmitYuan||"0"!==c;if(d=d.substr(0,this.m_u.length-1),d=s.clearZero(d,"0","$"))for(var h,p=0;p<this.m_u.length-1;p++)d.charAt(p)&&"0"!=d.charAt(p)&&(f+=n.call(this,d.charAt(p))+this.m_u.charAt(p+1),h=!1),"0"!==d.charAt(p)||h||(0==p&&"0"===c||(f+=l),h=!0);!m&&f||(g+=n.call(this,c,o)+this.m_u.charAt(0)+(r.decimal?"":this.m_z))}return u+g+f}function i(n,a){return{encodeS:function(a,o){return o=s.extend({ww:!0,tenMin:!0},o),c.CL.call(n,a,o)},encodeB:function(n,o){return o=s.extend({ww:!0},o),c.CL.call(a,n,o)},decodeS:function(){return c.unCL.apply(n,arguments)},decodeB:function(){return c.unCL.apply(a,arguments)},toMoney:function(n,o){return o=s.extend({ww:!0},o),c.toMoney.call(a,n,o)}}}var r,l,s=((r=function(n,a){var o=/^([+-])?0*(\d+)(\.(\d+))?$/,i=/^([+-])?0*(\d+)(\.(\d+))?e(([+-])?(\d+))$/i,r=a.e2ten=function(n){var a=i.exec(n.toString());if(!a)return n;var o=a[2],r=a[4]||"",l=a[5]?+a[5]:0;if(l>0){var s=r.substr(0,l);s=s.length<l?s+Array(l-s.length+1).join("0"):s,r=r.substr(l),o+=s}else{l=-l;var c=o.length-l;c=c<0?0:c;var d=o.substr(c,l);d=d.length<l?Array(l-d.length+1).join("0")+d:d,o=o.substring(0,c),r=d+r}return o=""==o?"0":o,("-"==a[1]?"-":"")+o+(r?"."+r:"")};a.getNumbResult=function(n){var a=o.exec(n.toString());if(!a&&i.test(n.toString())&&(a=o.exec(r(n.toString()))),a)return{int:a[2],decimal:a[4],minus:"-"==a[1],num:a.slice(1,3).join("")}},a.centerArray=function n(a,o){if(a.splice.apply(a,[0,o.length].concat(o.splice(0,o.length))),arguments.length>2){var i=[].slice.call(arguments,2);i.unshift(a),n.apply(null,i)}return a};var l=a.hasAttr=function(n,a){return Object.prototype.hasOwnProperty.call(n,a)};a.extend=function(n){for(var a,o=arguments[0]||{},i=Array.prototype.slice.call(arguments,1),r=0;r<i.length;r++){var s=i[r];for(a in s)l(s,a)&&(o[a]=s[a])}return o},a.getDigit=function(n){return n>=5?4*(n-4)+4:n},a.unshiftZero=function(n,a){if(null==a&&(a=1),!(a<=0))for(;a--;)n.unshift(0)},a.clearZero=function(n,a,o){if(null==n)return"";var i=~"*.?+$^[](){}|\\/".indexOf(a)?"\\"+a:a,r=RegExp("^"+i+"+"),l=RegExp(i+"+$"),s=RegExp(i+"{2}","g");return n=n.toString(),"^"==o&&(n=n.replace(r,"")),o&&"$"!=o||(n=n.replace(l,"")),o&&"nto1"!=o||(n=n.replace(s,a)),n}})(l={exports:{}},l.exports),l.exports),c=(s.e2ten,s.getNumbResult,s.centerArray,s.hasAttr,s.extend,s.getDigit,s.unshiftZero,s.clearZero,{CL:n,unCL:a,toMoney:o}),d={s:{ch:"零一二三四五六七八九",ch_u:"个十百千万亿",ch_f:"负",ch_d:"点"},b:{ch:"零壹贰叁肆伍陆柒捌玖",ch_u:"个拾佰仟万亿",ch_f:"负",ch_d:"点",m_t:"人民币",m_z:"整",m_u:"元角分"}};return i(d.s,d.b)})();const WORK_DAY="0",ON_WORK="01",TRAVEL_DICT={1:"出差",0:"正常"},WORK_DICT={3:"事假",4:"病假",5:"婚假",2:"调休",0:"未出勤",12:"居家办公",14:"育儿假",11:"远程",6:"丧假",7:"陪产假",8:"产假",13:"病休",10:"产检假",9:"年假",1:"√"};let loginUser={oper_no:"",oper_pwd:"",oper_log_mod:"1",rad:""},MRCfg={IamBusinessTrip:!1,resetFirstLoadRows:0,enableSavedPwd:!1,defaultLoginUser:{username:"",password:""},savedUsers:[],proId:"",welcomeWords:"智能出勤脚本加载成功!",order:""},readConfigArray=[void 0];function initMRCfg(){let n=GM_getValue("MR_CONFIG","");""==n?(GM_setValue("MR_CONFIG",MRCfg),n=MRCfg):mergeObject(n,MRCfg),MRCfg=n}function saveMRCfg(){GM_setValue("MR_CONFIG",MRCfg)}function setSavedUsers(n,a){console.log(n,a);let o={username:n,password:a};MRCfg.savedUsers.push(o),saveMRCfg()}function delSavedUser(n){MRCfg.savedUsers.splice(getIndexOfUser(n),1),saveMRCfg()}function getIndexOfUser(n){return MRCfg.savedUsers.findIndex(a=>a.username===n)}function setWorkStatus(){let n=getMRTable();n.bootstrapTable("checkAll");let a=n.bootstrapTable("getSelections"),o=a.length;for(let i=1;i<=o;i++){let r=a[i-1];r.hld_flg==WORK_DAY&&(r.att_typ=ON_WORK),MRCfg.IamBusinessTrip&&(r.travel_flg=1)}MRCfg.IamBusinessTrip&¬ify("出差辛苦了~已勾选全部自然日为出差!"),refreshTable(),notify("已自动勾选工作日为出勤!")}function gbkToUtf8(n){let a="";for(let o=0;o<n.length;o++){let i=n.charCodeAt(o);if(i>=128&&i<=255){let r,l=(255&n.charCodeAt(o++))<<8|255&n.charCodeAt(o);a+=String.fromCharCode(l>>8&255|l<<8&65280)}else a+=n.charAt(o)}return a}function setProductInfo(proId,rows,isSave=!0){$HTTP("post","https://mis.murongtech.com/mrmis/attProjectQuery.do","search=&t="+Date.now()+"&limit=10&offset=0&totalRows=2507&flag=1&pro_nm="+proId,function(res){console.log(res,"res");let text;res=JSON.parse(res);let data;try{data=res.rec[0]}catch(e){notify(`获取项目信息失败:${res.gda.msg_inf}`);return}if("1"==res.rec_num||confirm("当前项目包含多个项目编号,是否选用最相近的结果:\n项目编号:"+data.pro_id+"\n项目名称:《"+data.pro_nm+"》\n项目负责人:"+data.att_man_nm)){console.log(res);let length=rows.length;for(let n=1;n<=length;n++){let row=rows[n-1];for(let key in data)eval("row."+key+"= data['"+key+"']")}refreshTable(),isSave&&(MRCfg.proId=proId,saveMRCfg(),notify(`${proId} 项目编号已记录`)),notify(`已应用${proId}到选中行`)}else console.log("ads",res),notify("项目查询结果包含多个或无结果!")},function(n){console.log(n),notify("请求失败,详见控制台!")})}function $HTTP(n,a,o,i,r){$.post(a,o,i)}!function(){"use strict";initMRCfg();let n=MRCfg.order,a="undefined"==typeof unsafeWindow?window:unsafeWindow;if(""!==n){let o=n.split("|"),i=o[0],r=o[1];"r"===i&&(MRCfg.order="",saveMRCfg(),window.location.href=r)}if(isLoginPage()){let l=$("#oper_no"),s=$("#oper_pwd1");""!=MRCfg.defaultLoginUser.password&&""!=MRCfg.defaultLoginUser.username&&(notify("已自动填充默认登录账号"),s.val(MRCfg.defaultLoginUser.password),l.val(MRCfg.defaultLoginUser.username)),MRCfg.savedUsers.length>1&&""==MRCfg.defaultLoginUser.password&¬ify("你可以点击标题设置自动填充登录用户或者进行多账号管理!");let c=$($("button[type=submit]")[0]);$("body").append($("<input type='file' id='Hoyoung_config_file' style='display:none'>"));let d=$("#Hoyoung_config_file");d.on("change",importConfig);let u=$(`<a>导出脚本配置</a>`),g=$(`<a style="margin-left: 1rem">导入脚本配置</a>`),f=$(`<a style="margin-left: 1rem">恢复默认配置</a>`);u.click(()=>{exportConfig(MRCfg)}),f.click(()=>{MRCfg="",saveMRCfg(),notify("已清空配置文件,将在三秒后刷新页面"),setTimeout(()=>{a.location.reload()},3e3)}),g.click(()=>{readConfigArray[1]=$.Deferred(),d.click(),readConfigArray[1].then(()=>{MRCfg=readConfigArray[0].MY_CONFIG,saveMRCfg(),notify("配置导入成功,3秒后将自动刷新页面"),setTimeout(()=>{a.location.reload()},3e3)})}),$($("a[data-toggle]")[0]).parent().parent().append(u),$($("a[data-toggle]")[0]).parent().parent().append(g),$($("a[data-toggle]")[0]).parent().parent().append(f),c.removeAttr("type"),c.text("Save and login"),c.click(n=>{n.preventDefault();let a=$("#oper_no").val(),o=$("#oper_pwd1").val(),i=MRCfg.savedUsers.find(n=>n.username===a);void 0!=i&&MRCfg.enableSavedPwd?o!=i.password&&setSavedUsers(a,o):MRCfg.enableSavedPwd&&setSavedUsers(a,o),login(a,o)}),$("h3.form-title").click(function(){initTableSavedUsers()});return}welcome();let p=$("#toolbar");0!==p.length&&(p.prepend(btnGenerator("hoyoung_status_data_count"," 状态统计","purple-stripe","fa fa-check-square-o","自动统计当月差旅费、加班天数明细等")),p.prepend(btnGenerator("hoyoung_set_status_data"," 自选条件填充","yellow-stripe","fa fa-check-square-o","将选中行应用这个出勤状态")),p.prepend(btnGenerator("hoyoung_set_product_data"," 智慧填充","green-stripe","fa fa-rocket","将该项目编号填入到所有项目,并自动勾选出勤状态")),p.prepend('<input id="search_proid" placeholder="请输入项目编号" style="margin: 0 5px !important;max-width: 8rem" class="m-wrap span5" type="text" value="'+MRCfg.proId+'"/>'),p.find("#hoyoung_set_product_data").click(function(){let n=getMRTable();n.bootstrapTable("checkAll");let a=n.bootstrapTable("getSelections");setProductInfo(p.find("#search_proid").val(),a),setWorkStatus()}),p.find("#hoyoung_set_status_data").click(function(){initConditionApply()}),p.find("#hoyoung_status_data_count").click(function(){initStateCount()}),0!=MRCfg.resetFirstLoadRows&&isChuQingPage()&&($("table#murong-table").bootstrapTable("getOptions").pageSize=MRCfg.resetFirstLoadRows,conditionQuery()),jQuery(".popovers").popover());let m=`<li id="multiAccount"><a href="#"><i class="icon-user"></i>多账号管理</a></li>`;$("ul.nav li.user").before(m),m=`<li id="hoyoung_setting"><a href="#"><i class="icon-cogs"></i>脚本设置</a></li>`,$("ul.nav li.user").before(m),$("#multiAccount").click(()=>{initTableSavedUsers()}),$("#hoyoung_setting").click(()=>{initSettingModal()})}();let modalCurView="";function customMyModelView(n,a){if(0==$("#hoyoungModal").length){modalCurView=a;let o='<div aria-hidden="false"aria-labelledby="myModalLabel"role="dialog"tabindex="-1"id="hoyoungModal"class="modal fade ui-draggable in"style="display: block;"><div class="modal-dialog"style="width: 600px;"><div class="portlet box blue"><div class="portlet-title"><div class="caption"><i class="icon-reorder"></i><span id="closeM">'+a+'</span></div></div><div class="portlet-body modal-body"id="mmmmodal-body">'+n+"</div></div></div></div>";$("body").append(o),$("#hoyoungModal").hide(),$("#hoyoungModal").modal("show"),$("#closeM").click(()=>{hideModal()})}else modalCurView!==a&&(modalCurView=a,$("#closeM").text(a),$("#mmmmodal-body").html(n)),$("#hoyoungModal").modal("show")}let getMRTable=()=>$("#murong-table");function initStateCount(){let n=getMRTable().bootstrapTable("getOptions").data,a=[],o=0,i="";n.filter(n=>{""===i&&(i=n.att_dt.substring(0,6)),"1"===n.travel_flg&&(o+=.5)}),n.filter(n=>{n.att_typ==ON_WORK&&"1"==n.hld_flg&&a.push(n.att_dt+" "+("01"===n.att_tm?"上午":"下午"))});let r='<div class="tab-pane profile-classic row-fluid active"><ul class="unstyled span10"><li>';a.length>0?(r+="<span>当月休日加班天数:</span>"+a.length/2+"天</li>",r+="<li><span>当月休日加班明细:</span>"+a.join(" / ")+"</li>"):r+="<span>这个月没有加班哦~ 996可是打工人的福报啊</span></li>",r+='<li xmlns="http://www.w3.org/1999/html"><span>当月出差天数:</span><input id="outWorkDate" type="number" value="'+o+'" />天</li>';let l=80*o;r+=`<li id="lowerAmount"><span>当月出差金额:</span> 80元/天 * ${o}天 = `+l+"元</li>",r+='<li id="upperAmount"><span>当月出差金额大写:</span>'+nzhcn.toMoney(l).replace("人民币","")+"</li>",r+="<li><span></span></li>",r+="<li><span>不知道其他等级的差补是多少钱,用的是我的80一天,有其他档位的欢迎email补充: [email protected]</span></li>",customMyModelView(r+="</ul></div>",i+"状态统计"),$("#outWorkDate").change(()=>{let n=80*$("#outWorkDate").val();$("#upperAmount").text("当月出差金额大写:"+nzhcn.toMoney(n).replace("人民币","")),$("#lowerAmount").text("当月出差金额:80元/天 * "+$("#outWorkDate").val()+"天 = "+n+"元")})}function initConditionApply(){let n="",a=`<div>出勤情况:<select name="chk_sts" id="hoyoung_custom_status_data" class="m-wrap span5" style="margin: 0 0px 0 1rem;padding:0;max-width: 5rem">`,o=Object.keys(WORK_DICT),i=Object.values(WORK_DICT);for(let r=0;r<o.length;r++)a+=`<option value=${o[r]}>${i[r]}</option>`;a+="</select></div>",a+=`<div>是否出差:<select name="chk_sts" id="hoyoung_custom_travel_data" class="m-wrap span5" style="margin:0 0px 0 1rem;padding:0;max-width: 5rem">`,o=Object.keys(TRAVEL_DICT),i=Object.values(TRAVEL_DICT);for(let l=0;l<o.length;l++)a+=`<option value=${o[l]}>${i[l]}</option>`;a+="</select></div>",customMyModelView('<div style="/* display:flex; *//* justify-content: flex-start; *//* align-content: center; *//* flex-wrap: nowrap; *//* flex-direction: row; */"><div class="span3"style="width: 100%;display: flex;margin-left: 0;align-content: center;justify-content: space-between;flex-wrap: wrap;flex-direction: row;align-items: center;"><div><label class="btn green-stripe" style="margin: 0;">起始日期</label><input class="span5 m-wrap" placeholder="日期格式: YYmmdd" id="hoyoung_custom_start_date" value="'+dateFormat("YYmm",new Date)+'01" style="margin: 0 0 0 1rem;width: fit-content;"></div>—<div><label class="btn green-stripe"style="margin: 0;">结束日期</label><input class="span5 m-wrap" placeholder="日期格式: YYmmdd" value="'+dateFormat("YYmmdd",new Date)+'" id="hoyoung_custom_end_date" style="margin: 0 0 0 1rem;width: fit-content;"></div></div><div class="span3"style="width: 100%;padding-top: 1rem;display: flex;margin-left: 0;align-content: center;justify-content: space-between;flex-wrap: wrap;flex-direction: row;align-items: center;">'+a+'</div><div class="pull-right"><label for="skipHoliday"style="width: fit-content;margin-top: 2rem;margin-left: auto;"><input type="checkbox"id="skipHoliday"style="margin: 0;"> 忽略节假日</label><label for="applyProduct" style="width: fit-content;margin-left: auto;"><input type="checkbox" id="applyProduct" style="margin: 0;"><span id="apSpan"> 另设项目编号</span></label><button class="pull-right btn yellow-stripe"style=""id="hoyoung_custom_apply">应用到所选日期区间</button></div><div class="span3"style="width: 100%;padding-top: 1rem;display: flex;margin-left: 0;align-content: center;justify-content: space-between;flex-wrap: wrap;flex-direction: row;color: green;align-items: center;">*日期的填写格式为YYmmdd,即年月日,需要满足八位长度(例如2022年1月1日对应的是20220101),毋须携带横杠</div></div>',"按自选规则填充"),$("#applyProduct").unbind().click(()=>{$("#applyProduct").prop("checked")?""!==(n=prompt("输入项目编号"))&&null!=n&&$("#apSpan").text(" 另设项目编号("+n+")"):$("#apSpan").text(" 另设项目编号")}),$("#hoyoung_custom_apply").unbind().click(function(){let a=-1,o=getMRTable();o.bootstrapTable("uncheckAll");let i=o.bootstrapTable("getOptions").data,r=$("#skipHoliday").prop("checked"),l=$("#hoyoung_custom_start_date").val(),s=$("#hoyoung_custom_end_date").val();$.each(i,function(n,o){let i=parseInt(o.att_dt);if(i>=l&&i<=s){if(r&&o.hld_flg!==WORK_DAY)return!0;-1===a&&(a=n),o.state=!0,o.att_typ=$("#hoyoung_custom_status_data").val(),o.travel_flg=$("#hoyoung_custom_travel_data").val()}}),""!==n&&null!=n&&(i=o.bootstrapTable("getSelections"),notify("请稍后,正在应用项目编号,禁止操作"),setProductInfo(n,i,!1)),hideModal(),refreshTable(),console.log($("tbody tr")[a]),$("tbody tr")[a].scrollIntoView()})}function initSettingModal(){let checkedAble=MRCfg.IamBusinessTrip?"checked":"";customMyModelView('<div style="/* display:flex; *//* justify-content: flex-start; *//* align-content: center; *//* flex-wrap: nowrap; *//* flex-direction: row; */"><div class="span3"style="width: 100%;display: flex;margin-left: 0;align-content: center;justify-content: space-between;flex-wrap: wrap;flex-direction: row;align-items: center;"><label class="btn green-stripe"style="margin: 0;">修改默认加载数据的条数</label><input class="span5 m-wrap"name="hoyoung-setting"id="resetFirstLoadRows"value="'+MRCfg.resetFirstLoadRows+'"style="margin: 0 1rem 0 0;width: fit-content;"></div><div class="span3"style="width: 100%;display: flex;margin-left: 0;margin-top: 1rem;align-content: center;justify-content: space-between;flex-wrap: wrap;flex-direction: row;align-items: center;"><label class="btn blue-stripe"style="margin: 0;">脚本启动提示</label><input class="span5 m-wrap"name="hoyoung-setting"id="welcomeWords"value="'+MRCfg.welcomeWords+'"style="margin: 0 1rem 0 0;width: fit-content;"></div><div class="span3" style="width: 100%;display: flex;margin-left: 0;margin-top: 1rem;align-content: center;justify-content: space-between;flex-wrap: wrap;flex-direction: row;align-items: center;"><label class="btn blue-stripe" style="margin: 0;">出差设置</label><label for="IamBusinessTrip" style="width: fit-content;margin-left: auto;"><input type="checkbox" name="hoyoung-setting" id="IamBusinessTrip" '+checkedAble+' style="vertical-align: middle;margin: auto;"> 我在出差</label></div><button class="btn pull-right yellow-stripe"style="margin-top: 1rem;"id="hoyoung-save-setting">保存设置</button><div class="span3"style="width: 100%;padding-top: 1rem;display: flex;margin-left: 0;align-content: center;justify-content: space-between;flex-wrap: wrap;color: green;flex-direction: row;align-items: center;"><p style="margin: 0">* 数据默认加载条数,默认为10条,当该值被设置为0时,不再劫持默认加载条数。</p><p style="margin: 0"> 当脚本启动提示参数被设置为空时,启动完毕不再发出提醒。</p></div></div>',"出勤脚本设置"),$("#hoyoung-save-setting").unbind().click(function(){$("input[name=hoyoung-setting]").each((i,obj)=>{let v=getValue(obj);eval("MRCfg."+$(obj).attr("id")+"="+v),saveMRCfg(),hideModal()}),console.log(MRCfg)})}function getValue(n){return"checkbox"==$(n).attr("type")?$(n).prop("checked"):("NaN"===parseFloat(v=$(n).val()).toString()&&(v="'"+v+"'"),v)}function hideModal(){$("#hoyoungModal").modal("hide")}function initTableSavedUsers(){customMyModelView('<div style="display: flex;justify-content: space-between;flex-wrap: wrap;"><button class="btn btn-primary"id="hoyoung_set_dfl_login_user"><i class="fa fa-check-square-o"></i>默认登录用户</button><button class="btn btn-primary"id="hoyoung_login"><i class="fa fa-check-square-o"></i>Login</button><button class="btn btn-primary"id="hoyoung_del_user"><i class="fa fa-check-square-o"></i>delete</button></div><table class="murong-table table table-hover"id="hoyoung_table"data-toggle="table"data-click-to-select="true"data-show-columns="false"data-select-item-name="myRadioName"></table>',"切换登录用户"),($table=$("#hoyoung_table")).on("click-row.bs.table",function(n,a,o){$(".success").removeClass("success"),$(o).addClass("success")}),$table.bootstrapTable({columns:[{fileid:"state",checkbox:!0},{title:"序号",field:"index",align:"center",valign:"middle",sortable:"true"},{title:"用户名",field:"username",align:"center",valign:"middle",sortable:"true"}]}),$table.on("click-row.bs.table",function(n,a,o){$(".success").removeClass("success"),$(o).addClass("success")}),$table.bootstrapTable("load",getWarpedSavedUsers()),$("#hoyoung_set_dfl_login_user").unbind().click(function(){let n=$table.bootstrapTable("getSelections");if(n.length>1)notify("坑爹呢,你默认登录这么多个用户吗?");else for(let a=0;a<n.length;a++)MRCfg.defaultLoginUser=MRCfg.savedUsers[getIndexOfUser(n[a].username)],saveMRCfg(),notify("默认账号已设置为:"+n[a].username)}),$("#hoyoung_login").unbind().click(function(){let n=$table.bootstrapTable("getSelections");n.length>1?notify("坑爹呢,你默认登录这么多个用户吗?"):(MRCfg.order="r|https://mis.murongtech.com/mrmis/toMenu.do?menu_id=332005#",saveMRCfg(),login(n[0].username,MRCfg.savedUsers[getIndexOfUser(n[0].username)].password))}),$("#hoyoung_del_user").unbind().click(function(){let n=$table.bootstrapTable("getSelections");for(let a=0;a<n.length;a++)delSavedUser(n[a].username);$table.bootstrapTable("load",MRCfg.savedUsers)})}function getWarpedSavedUsers(){return MRCfg.savedUsers.concat()}function exportConfig(n){let a={VERSION:GM_info.script.version,MY_CONFIG:n};return downFile("MRHelper_CONFIG.json",a)}function importConfig(){let n=document.getElementById("Hoyoung_config_file").files[0],a=new FileReader;function o(n="文件格式错误"){return notify(n)}a.onload=function(){try{if(readConfigArray[0]=JSON.parse(decodeURIComponent(this.result)),"object"!=typeof readConfigArray[0]||!readConfigArray[0])return o();{let n=["VERSION","MY_CONFIG"];for(let a of n)if(!readConfigArray[0].hasOwnProperty(a))return o();return readConfigArray[1].resolve()}}catch(i){return o()}},a.readAsText(n)}function downFile(n,a){let o=document.createElement("a");o.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(JSON.stringify(a))),o.setAttribute("download",n),o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o)}function login(n,a){setLoginUserData(n,a),moniFormSubmit("https://mis.murongtech.com/mrmis/login.do",loginUser)}function setLoginUserData(n,a){$.ajax({url:"/mrmis/common/srand_num.jsp?"+new Date().getTime(),type:"POST",async:!1,success:function(o){console.log("1234"),loginUser.oper_pwd=strEnc(a,o),loginUser.oper_no=n,loginUser.rad=o}})}function refreshTable(){let n=getMRTable();n.bootstrapTable("load",n.bootstrapTable("getData"))}function moniFormSubmit(n,a){$(document.body);var o,i=$("<form method='post'></form>");i.attr({action:n}),$.each(a,function(n,a){(o=$("<input type='hidden'>")).attr({name:n}),o.val(a),i.append(o)}),i.appendTo(document.body),i.submit()}function getLocation(){return location.toString()}function btnGenerator(n,a,o="",i="",r=""){return $(`<button class='btn btn-primary ${o} popovers' data-trigger='hover' data-original-title="沐融管理系统考勤助手 v0.49" data-placement='top' data-content='${r}' style='margin-left: 10px' id='${n}'><i class='${i}'/> ${a}</button><span style='display: inline-block;margin: 0 2rem;border-left: 2px solid #8080805e;'>1</span>`)}function welcome(){""!==MRCfg.welcomeWords&¬ify(MRCfg.welcomeWords)}function mergeObject(n,a){function o(n,a){for(let i in a)void 0===n[i]||null===n[i]?n[i]=a[i]:Array.isArray(n[i])||"object"!=typeof n[i]||o(n[i],a[i])}function i(n,a){for(let o in n)void 0===a[o]||null===a[o]?delete n[o]:Array.isArray(n[o])||"object"!=typeof n[o]||i(n[o],a[o])}o(n,a),i(n,a)}function notify(n){Messenger().post({singleton:!0,message:n})}function isLoginPage(){return"https://mis.murongtech.com/mrmis/"==getLocation()||-1!==getLocation().indexOf("https://mis.murongtech.com/mrmis/login.do")||-1!==getLocation().indexOf("https://mis.murongtech.com/mrmis/logOut.do")}function isChuQingPage(){return -1!==getLocation().indexOf("https://mis.murongtech.com/mrmis/toMenu.do?menu_id=332005")||-1!==getLocation().indexOf("https://mis.murongtech.com/mrmis/toMenu.do?menu_id=332015")}function dateFormat(n,a){let o,i={"Y+":a.getFullYear().toString(),"m+":(a.getMonth()+1).toString(),"d+":a.getDate().toString(),"H+":a.getHours().toString(),"M+":a.getMinutes().toString(),"S+":a.getSeconds().toString()};for(let r in i)(o=RegExp("("+r+")").exec(n))&&(n=n.replace(o[1],1==o[1].length?i[r]:i[r].padStart(o[1].length,"0")));return n}