maruさん
必要になりそうな処理を羅列します。長文になりますがご了承ください。
【ルックアップダイアログの要素を取得する】
const el = document.getElementsByClassName('el-dialog__body');
この場合は、class「el-dialog__body」を持つ要素を全て取得した配列となります。
今回のケースでは、一番最初の要素で良いと思いますので、[0]番目を取得します。
const el = document.getElementsByClassName('el-dialog__body')[0];
【ルックアップ検索結果の行要素を取得する】
const tr = el.querySelectorAll('tbody tr');
HTML上の<tr>タグが各行の要素です。
ルックアップダイアログ要素の配下にある「tbody」の更に配下にある「tr」を全て取得します。
【テーブル行追加ボタンを取得して押す】
const plusButton = document.getElementsByClassName('plus icon')[0];
テーブルが1つしかなければ、行追加ボタンは常に1つしか出てきません。
上記のように、[0]番目を指定し、追加ボタンを取得できます。
plusButton.click();
これでボタンを押したことになるので、空行が追加されます。
このボタン取得と押下処理を上記trの配列長分ループします。
※この時にテーブルの1行目から上書きする場合は、「配列長 - 1」回のループです。
【各行にルックアップの結果を入力する】
const tableRow = document.querySelectorAll('.ui.table.collapsing.celled.unstackable>tbody>tr');
テーブルの各行の要素を取得します。
for (let i = 0; i < tr.length; i++) {
state.record.テーブル名.value[tableRow.length - tr.length + i].value.フィールド名.value = tr[i].getElementsByTagName('td')[★].textContent;
}
★はルックアップ検索結果のうち、入力したいフィールドの列番号です。左から0, 1, 2・・・
【ルックアップダイアログを閉じる】
const closeButton = document.getElementsByClassName('el-dialog__close el-icon el-icon-close')[0];
右上の×ボタンの要素を取得します。
closeButton.click();
これを押す処理を入れて、ダイアログが閉じます。
要素の取得は上記のような形でできますが
表示までに若干の遅延があるため、これだけでは一筋縄ではいきません。
以下のような遅延処理を挟みながら処理します。
【一定時間間隔で繰り返し実行する】
let intervalId1 = setInterval(function() {
// 1000ミリ秒間隔で行う処理
// 繰り返しを停止する場合
clearInterval(intervalId1);
}, 1000);
【一定時間後に実行する】
setTimeout(function() {
// 1000ミリ秒後に行う処理
}, 1000);