投稿初めてです、不備など多いかもしれませんがご教授お願い致します。
実行したいこと:開始日~終了日を入力した時点で、テーブルへ土日祝除いた日程を入力したい
PC版ではテーブルへ入力される挙動を確認できましたが、
スマホで行うとテーブルが空白のままになります。
下図はPC版での挙動です(これと同じ動作をスマホで行いたいです)
試したこと:イベントにモバイル版のハンドラーを追加。
修正後スマホで挙動を確認しましたが、上記図のようにテーブルへ日付が追加することができませんでした。
記述コード:javascript
(function() {
luxon.Settings.defaultLocale = 'ja';
'use strict';
var events = [
//'app.record.create.show',
'app.record.create.change.開始',
'app.record.create.change.終了',
'app.record.edit.show',
'app.record.edit.change.開始',
'app.record.edit.change.終了',
'mobile.app.record.create.change.開始',
'mobile.app.record.create.change.終了',
'mobile.app.record.edit.show',
'mobile.app.record.edit.change.開始',
'mobile.app.record.edit.change.終了',
'mobile.app.record.edit.submit'
];
kintone.events.on(events, function(event) {
//開始日・終了日の入力値取得
var record = event.record;
var start = new Date(record.開始.value);
var end = new Date(record.終了.value);
//日付計算(数値化⇒日付)
var deiff = end.getTime()-start.getTime();
var days =Math.floor(deiff / (1000 * 60 * 60 *24))
//console.log(deiff)
//console.log(days)
if (days !== NaN){
//テーブルを作成
//初期化/1行目の準備
record.テーブル.value=[];
record.テーブル.value.push({
value: {
"日付": {
value: '',
type: 'DATE',
}
}
});
//祝日でテーブル数と、rowがズレるので代理数を設定
var count_row = 0
//日付計算で算出した日程まで、テーブルへ日付を入れる
for(var row = 0;days > row-1;row++){
//開始日から〇日を加算⇒テーブルへ
var oneDayLater = luxon.DateTime.fromISO(record.開始.value).plus({ day: row}).toFormat('yyyy-MM-dd')
//console.log(oneDayLater)
//oneDayLaterの曜日の取得
//var week = oneDayLater.setLocale('ja').toFormat('EEEE');
var week = dateFns.isWeekend(oneDayLater);
//console.log(week)
//oneDayLaterが祝日か調べる
var holiday = holiday_jp.isHoliday(oneDayLater);
//console.log(holiday)
//曜日・祝日判定
if (week == false && holiday == false) {
console.log(oneDayLater)
var tablerecord = event.record.テーブル;
tablerecord.value[count_row].value['日付'].value = oneDayLater
count_row++;
console.log('For文通過')
//行追加/最終行は追加しない
if (days !== row-1){
record.テーブル.value.push({
value: {
"日付": {
value: '',
type: 'DATE',
}
}
});
}
}
};
return event;
}
});
})();
参考サイト:日付の計算時に、土日祝日であれば直前の平日を指定する