Greasy Fork

Greasy Fork is available in English.

志愿云,日期自动填写脚本

对4个日期框做数据同步,修改起始日期会默认对结束日期+7,同时会对“服务时间”框日期部分进行更新。

当前为 2021-04-02 提交的版本,查看 最新版本

// ==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/*
// ==/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();