ken_nogi/pleasanter/develop2/承認図回覧板システム/sample.js
Kenichiro NOGI 88a402ce0f up
2026-07-10 18:13:30 +09:00

70 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//返信予定日 Date085 変更イベントを検知して実行
$p.on('change', 'Date085', function () {
if ($('#Results_Date085').val() != '') {
console.log('返信予定日が変更されました。');
//返信予定日を取得
let date085 = $('#Results_Date085').val();
//遅延理由メッセージを取得
let content081 = $('#Results_Description081').val();
//%返信予定日% を置換する
let newContent = content081.replace(/%返信予定日%/g, date085);
//遅延理由を再設定する
$p.set($('#Results_Description081'), newContent);
}
});
/*
//----------------------------------------------------------------------
//日付文字列を「年/月/日(曜日)」形式に整形する(例:"2026/06/25" → "2026/6/25(木)"
function formatDateWithWeekday(dateStr) {
if (!dateStr) return '';
let datePart = dateStr.split(' ')[0]; //時刻が付いている場合は日付部分のみ取り出す
let parts = datePart.split('/');
if (parts.length < 3) return datePart; //想定外の形式の場合はそのまま返す
let year = parseInt(parts[0], 10);
let month = parseInt(parts[1], 10);
let day = parseInt(parts[2], 10);
let dateObj = new Date(year, month - 1, day);
let weekdays = ['日', '月', '火', '水', '木', '金', '土'];
let weekday = weekdays[dateObj.getDay()];
return year + '/' + month + '/' + day + '(' + weekday + ')'; //例2026/6/25(木)
}
//----------------------------------------------------------------------
//返信予定日を遅延連絡内容に反映する共通処理
function reflectReplyDate() {
let replyDateRaw = $('#Results_Date085').val(); //返信予定日
if (!replyDateRaw) return; //未入力の場合は何もしない
let replyDate = formatDateWithWeekday(replyDateRaw); //「2026/6/25(木)」の形式に整形
let content = $('#Results_Description081').val(); //遅延連絡内容
if (!content) return; //テンプレがまだ反映されていない場合は何もしない
//「見積り返信が【○○】の予定です」の【○○】部分を、現在の中身に関わらず新しい日付に置き換える
let newContent = content.replace(/【.*?】の予定です/, '【' + replyDate + '】の予定です');
$p.set($('#Results_Description081'), newContent);
}
//----------------------------------------------------------------------
//返信予定日が変更された時
$p.events.on_change_Date085 = function (args) {
reflectReplyDate();
};
//----------------------------------------------------------------------
//遅延理由が変更された時Lookupでテンプレが上書きされた直後に再反映
$p.events.on_change_Class086 = function (args) {
reflectReplyDate();
};
*/