204 lines
6.1 KiB
JavaScript
204 lines
6.1 KiB
JavaScript
let pageLoading = 0;
|
|
let apiKey = '6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d';
|
|
let mssData;
|
|
|
|
window.addEventListener('load', function () {
|
|
if (pageLoading == 0) {
|
|
console.log('load Event');
|
|
onLoad();
|
|
}
|
|
});
|
|
|
|
$p.events.on_editor_load = function () {
|
|
if (pageLoading == 1) {
|
|
console.log('on Editor Load');
|
|
onLoad();
|
|
}
|
|
}
|
|
|
|
function onLoad() {
|
|
pageLoading = 1;
|
|
|
|
//MSSデータ取得ボタンを追加
|
|
if ($('#Results_Status').text() === '新規登録' || $('#Results_Status').text() === '差戻し') {
|
|
$p.getMSSdataButton();
|
|
}
|
|
|
|
//各種項目にコメントを追加
|
|
columnsComments('Class001', '#900');
|
|
columnsComments('Class002', '#900');
|
|
columnsComments('Class003', '#900');
|
|
columnsComments('Class004', '#900');
|
|
columnsComments('Class005', '#900');
|
|
|
|
columnsComments('NumA', '#009');
|
|
columnsComments('DateA', '#009');
|
|
|
|
//添付ファイル入力欄にコメントを追加
|
|
attachmentComments('AttachmentsA', '#009');
|
|
attachmentComments('AttachmentsB', '#009');
|
|
}
|
|
|
|
|
|
//添付ファイル入力欄にコメントを追加する汎用関数
|
|
function attachmentComments(attach, color) {
|
|
let comments = '';
|
|
|
|
//説明欄にコメントがある場合、追加
|
|
if ($('#Results_' + attach + 'Field>div.field-control').attr('title')) {
|
|
comments = $('#Results_' + attach + 'Field>div.field-control').attr('title');
|
|
}
|
|
|
|
if (comments) {
|
|
let div1 = document.createElement('div');
|
|
div1.innerHTML = comments;
|
|
div1.style.marginLeft = '121px';
|
|
div1.style.fontWeight = 'bold';
|
|
div1.style.color = color;
|
|
|
|
//位置調整とコメント追加
|
|
$('#Results_' + attach + 'Field').append(div1);
|
|
$('#Results_' + attach + 'Field').css('margin-bottom', '10px');
|
|
}
|
|
|
|
}
|
|
|
|
function columnsComments(column, color) {
|
|
let comments = '';
|
|
|
|
//説明欄にコメントがある場合、追加
|
|
if ($('#Results_' + column + 'Field>div.field-control').attr('title')) {
|
|
comments = $('#Results_' + column + 'Field>div.field-control').attr('title');
|
|
}
|
|
let div1 = document.createElement('div');
|
|
div1.innerHTML = comments;
|
|
div1.style.marginLeft = '121px';
|
|
div1.style.fontWeight = 'bold';
|
|
div1.style.color = color;
|
|
|
|
//位置調整とコメント追加
|
|
$('#Results_' + column + 'Field').append(div1);
|
|
if ($('#Results_' + column + 'Field').hasClass('field-normal')) {
|
|
$('#Results_' + column + 'Field').css('margin-bottom', '15px');
|
|
}
|
|
|
|
if ($('#Results_' + column + 'Field').hasClass('field-wide')) {
|
|
$('#Results_' + column + 'Field').css('margin-bottom', '0px');
|
|
}
|
|
}
|
|
|
|
$p.getMSSdataButton = function () {
|
|
if ($('#getMSSdataButton').length) {
|
|
return;
|
|
}
|
|
let button = document.createElement("button");
|
|
button.id = 'getMSSdataButton';
|
|
button.type = "button";
|
|
button.innerHTML = "MSSデータ取得";
|
|
button.setAttribute('onclick', '$p.ex.getMSSdata()');
|
|
button.style.margin = '3px';
|
|
button.style.float = 'left';
|
|
$('#Results_ClassB').after(button);
|
|
$('#getMSSdataButton').button({
|
|
icon: 'ui-icon-document'
|
|
});
|
|
}
|
|
|
|
$p.ex.getMSSdata = async function () {
|
|
let mssRecordId = $('#Results_ClassB').val();
|
|
if (mssRecordId == '') {
|
|
return;
|
|
}
|
|
|
|
//MSSテーブルからレコードを取得
|
|
const getUrl = 'https://' + location.hostname + '/pleasanter/api/items/' + mssRecordId + '/get';
|
|
const getJson = {
|
|
'ApiVersion': 1.1,
|
|
'ApiKey': apiKey,
|
|
}
|
|
|
|
const getRes = await fetch(getUrl, {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify(getJson)
|
|
});
|
|
const getResData = await getRes.json();
|
|
console.log(getResData);
|
|
|
|
if (getResData.StatusCode != 200) {
|
|
$p.ex.setMyMessage('status-red', 'MSSデータの取得に失敗しました。');
|
|
return;
|
|
}
|
|
|
|
if (getResData.Response.TotalCount != 1) {
|
|
$p.ex.setMyMessage('status-yellow', 'MSSデータが見つかりません。契約コードを確認してください。');
|
|
return;
|
|
}
|
|
|
|
let mssData = getResData.Response.Data[0];
|
|
|
|
//契約コード、施主名
|
|
$p.set($('#Results_ClassC'), mssData.ClassHash.ClassA);
|
|
$p.set($('#Results_ClassD'), mssData.ClassHash.ClassQ);
|
|
|
|
//完成引渡日
|
|
$p.set($('#Results_DateA'), $p.ex.dateToString(mssData.DateHash.DateQ));
|
|
|
|
//所長 Results_ClassY
|
|
//役員 Results_Class122
|
|
$p.set($('#Results_Class001'), mssData.ClassHash.ClassY);
|
|
$p.set($('#Results_Class003'), mssData.ClassHash.Class122);
|
|
|
|
$p.ex.setMyMessage('status-blue', 'MSSからデータを取得しました。');
|
|
}
|
|
|
|
//メッセージ追加表示
|
|
$p.ex.setMyMessage = function (cssColor = 'alert-success', message, clear = 1) {
|
|
//クリアが指定されていたら事前にメッセージ消去
|
|
clear && $p.clearMessage();
|
|
|
|
$p.setMessage('#Message', JSON.stringify({
|
|
Css: 'alert-success ' + cssColor,
|
|
Text: message
|
|
}));
|
|
|
|
}
|
|
|
|
$p.ex.dateToString = function (date) {
|
|
if (date == null || date == '' || date == '1899-12-30T00:00:00') {
|
|
return '';
|
|
}
|
|
let dateString = date.split('T')[0];
|
|
let dateVar = new Date(dateString);
|
|
let year = dateVar.getFullYear();
|
|
let month = (dateVar.getMonth() + 1);
|
|
let day = dateVar.getDate();
|
|
|
|
return year + '/' + month + '/' + day;
|
|
}
|
|
|
|
$p.on('change', 'Class001', function () {
|
|
if ($('#Results_Class001').val() != '') {
|
|
$p.set($('#Results_Class021'), JSON.stringify([$('#Results_Class001').val()]));
|
|
} else {
|
|
$p.set($('#Results_Class021'), '')
|
|
}
|
|
});
|
|
|
|
$p.on('change', 'Class003', function () {
|
|
if ($('#Results_Class003').val() != '') {
|
|
$p.set($('#Results_Class022'), JSON.stringify([$('#Results_Class003').val()]));
|
|
} else {
|
|
$p.set($('#Results_Class022'), '')
|
|
}
|
|
});
|
|
|
|
$p.on('change', 'Class004', function () {
|
|
if ($('#Results_Class004').val() != '') {
|
|
$p.set($('#Results_Class023'), JSON.stringify([$('#Results_Class004').val()]));
|
|
} else {
|
|
$p.set($('#Results_Class023'), '')
|
|
}
|
|
});
|
|
|