まずマニフェストファイルの作成ですが、入力必須項目であるプラグイン名を設定し、
他パラメータは任意に設定してください。
manifest.json
{
"plugin_name": {
"ja": "サンプルプラグイン",
"en": "sample plugin",
"zh": "插件的例子",
"ko": "샘플 플러그인"
},
"note": {
"ja": "グループ階層の顧客の背景色を変更します。"
},
"version":"ver1.0",
"author":"eigyou.tarou"
}
次に特定の顧客階層の場合に、背景色を動的に変更するためのJavaScriptを実装します。
今回は顧客階層が上位階層である「グループ」の顧客の詳細画面で、ヘッダのバーの背景色を緑色に変更します。
まず、顧客階層項目の値を取得します。
デフォルト出力項目のdataには、顧客詳細画面の各項目のHTML要素の配列が格納されています。
eセールスマネージャーSP版の画面では、各項目の要素の識別子として「data-col-name」という属性が付与されています。
顧客階層項目では当該項目が"customer_level"となります。
続いて、顧客階層項目から、顧客階層の設定値を確認します。
eセールスマネージャーSP版の画面では、各項目の値はクラス属性が"tmpl_value"であるspanタグ内に存在します。
顧客階層項目の値は、このspanタグに付与された「data-code」属性で判断することができます。
「グループ」階層の顧客の場合、「data-code」属性が「1」になりますので、その場合にヘッダーのバーの要素を取得し、
background-colorに緑(#008000)を設定する処理を実装します。
ヘッダーのバーの要素は、顧客詳細画面の中のheaderを指定することで取得可能です。
eセールスマネージャーSP版の画面では、divタグの「name」属性に画面名が付与されています。
顧客詳細画面は"customer_detail_page"であり、これを用いて、顧客詳細画面の要素を取得できます。
画面を取得の際は、必ず疑似セレクタ「:visible」を指定し、可視状態の要素を取得するようにしてください。
JavaScript実装時の注意点として、顧客詳細画面読み込み時にプラグインの内容を実行させるため、
必ず$(window).on("esmsp.customer.detail.load", function() {}の内部に処理を実装してください。
実装例を以下に示します。
sample.js
$(window).on("esmsp.customer.detail.load", function(event, param){
// 引数paramから、デフォルト出力項目のdataを取得
$data = param["data"];
for (let i = 0; i < $data.length; i++){
if ($data[i].getAttribute("data-col-name") == "customer_level"){
// 顧客階層項目の場合の処理
if ($data[i].querySelector("span.tmpl_value").getAttribute("data-code") == "1"){
// 「グループ」階層の場合、ヘッダーを取得し背景色を変更
$("div.page[name='customer_detail_page']:visible header.main_header").css('background-color','#008000');
}
break;
}
}
});
作成した「manifest.json」と「sample.js」をzipファイルにパッケージングします。
「manifest.json」はzipファイル直下に配置する必要がありますが、その他のファイルはzipファイル内のフォルダに配置しても問題ありません。
完成したプラグインのzipファイルをeセールスマネージャーRemixに登録します。
管理者メニューのシステムの設定>環境設定からJSプラグイン一覧画面に遷移し、【SP版】プラグイン登録にて対象プラグインのzipファイルを選択してください。
登録完了後、SP版で「グループ」階層の顧客詳細画面を表示すると、以下のようにヘッダのバーの背景色が変更され、
プラグインが反映されていることが確認できます。