// ==UserScript== // @name 志愿云,日期自动填写脚本 // @namespace https://penicillin.github.io/ // @description 对4个日期框做数据同步,修改起始日期会默认对结束日期+7,同时会对“服务时间”框日期部分进行更新。 // @version 0.1.10 // @include *://www.fjvs.org/app/opp/* // @include *://fj.zhiyuanyun.com/app/opp/* // @downloadURL none // ==/UserScript== function getWeekDay(date){ var weekDay = ["星期 日", "星期 一", "星期 二", "星期 三", "星期 四", "星期 五", "星期 六"]; return weekDay[date.getDay()]; } function addDate(date, days) { if (days == undefined || days == '') { days = 0; } return new Date(date.valueOf()+ days * 24 * 60 * 60 * 1000); } function getFormatedDate(str){ var DateStr=str.split('-'); return new Date(DateStr[0],DateStr[1]-1,DateStr[2]); } var Weekdiv = document.createElement('div') //创建div标签 Weekdiv.setAttribute('id',"Weekdiv"); Weekdiv.style.display='inline'; var titileStringEL=document.getElementById('opp_name'); titileStringEL.parentNode.appendChild(Weekdiv) var userV1y=document.getElementById('opp_start_date_year'); var userV1m=document.getElementById('opp_start_date_month'); var userV1d=document.getElementById('opp_start_date_day'); var userV2y=document.getElementById('opp_end_date_year'); var userV2m=document.getElementById('opp_end_date_month'); var userV2d=document.getElementById('opp_end_date_day'); var userV3y=document.getElementById('opp_recruit_start_date_year'); var userV3m=document.getElementById('opp_recruit_start_date_month'); var userV3d=document.getElementById('opp_recruit_start_date_day'); var userV4y=document.getElementById('opp_recruit_end_date_year'); var userV4m=document.getElementById('opp_recruit_end_date_month'); var userV4d=document.getElementById('opp_recruit_end_date_day'); var userOpp_date_desc=document.getElementById('opp_date_desc'); userV3y.parentNode.style.opacity='0.3';//灰色显示 var userWeekDiv=document.getElementById('Weekdiv'); function setOtherDate(){ var calcDate=addDate(new Date(userV1y.value,userV1m.value-1,userV1d.value),6); userV2y.value=calcDate.getFullYear() userV2m.value=calcDate.getMonth()+1; userV2d.value=calcDate.getDate(); userV3y.value=userV1y.value; userV3m.value=userV1m.value; userV3d.value=userV1d.value; userV4y.value=userV2y.value; userV4m.value=userV2m.value; userV4d.value=userV2d.value; userWeekDiv.innerHTML=getWeekDay(calcDate); } function setAllDate(){ var titileStringDate=getFormatedDate(titileStringEL.value.match(/(\(=?)(\S*)(?=\))/)[2]);//拿到标题日期字符串并转为日期格式 var startDate=addDate(titileStringDate, -6);//初始化日期为结束前的6天 userV1y.value=startDate.getFullYear();//设置起始日期-年 userV1m.value=startDate.getMonth()+1;//设置起始日期-月 userV1d.value=startDate.getDate();//设置起始日期-日 setOtherDate();//设置其余日期 userOpp_date_desc.value=userOpp_date_desc.value.replaceAll(/\d{4}-\d{2}-\d{2}/g,titileStringDate.format('yyyy-MM-dd')); } titileStringEL.addEventListener('keyup',function(){setAllDate()});//注册事件 userV1y.addEventListener('change',function(){userV3y.value=userV1y.value;setOtherDate()});//注册事件 userV1m.addEventListener('change',function(){userV3m.value=userV1m.value;setOtherDate()});//注册事件 userV1d.addEventListener('change',function(){userV3d.value=userV1d.value;setOtherDate()});//注册事件 userV2y.addEventListener('change',function(){userV4y.value=userV2y.value});//注册事件 userV2m.addEventListener('change',function(){userV4m.value=userV2m.value});//注册事件 userV2d.addEventListener('change',function(){userV4d.value=userV2d.value});//注册事件 setAllDate();