ken_nogi/Pleasanter/営業積算システム/docs/新・営業積算システム仕様書_分割/050_新・営業積算システム仕様書_別記資料スクリプト(20/28).md
Kenichiro NOGI ce58cb4be4 初回コミット: dev配下(NodeSrv/Pleasanter等)をGitea管理下に統合
GitHub(nextgroup2706/ken_nogi)は今後使わず自社Gitea運用に切替え。
NodeSrvは旧リポジトリの履歴を破棄しファイルのみ統合(Dokploy用サービスアカウントは
別途mygit-admin/NodeSrv.gitに履歴あり)。notepmエクスポート(12GB)とPleasanter
インストーラzip(208MB)はサイズが大きいため.gitignoreで除外。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 15:37:06 +09:00

4.5 KiB
Raw Blame History

別記資料 スクリプトScripts全文 2028

// ...(前ファイルからの続き)
        if ($('#messageDelete').length) {
            $('#messageDelete').remove();
        }

        let saveData = $('#Results_Description071').val();

        if (saveData) {
            //メッセージデータの取得
            let messageData = JSON.parse(saveData);

            let templateHtml =
                `<table id="messageTable" class="radius-table">
    <tbody>
        {{#messageData}}
        <tr class="{{type}}">
            <td class="shitsugi_type">{{typeStr}} {{num}}</td>
            <td class="shitsugi_userName">{{userName}}</td>
            <td class="shitsugi_messageTime">{{messageTime}}</td>
        </tr>
        <tr class="{{type}}">
            <td colspan="2" class="shitsugi_messageBody">
                <pre class="shitsugi_preWrap">{{{messageBody}}}</pre>
            </td>
            <td class="shitsugi_deleteCheck"><input type="checkbox" name="messageDeleteCheck" value="{{messageID}}"></input></td>
        </tr>
        {{/messageData}}
    </tbody>
</table>`;

            let template = Hogan.compile(templateHtml);
            let outputHtml = template.render({
                "messageData": messageData
            });

            //質疑内容入力欄の直上にメッセージ履歴テーブルを表示する
            //本サイトにはSectionFields番号を直接指定できる根拠がないため、既知の項目=Description075Fieldを起点に挿入
            setTimeout(function () {
                $('#SectionFields8').append(outputHtml);
            }, 300);
        }

        //対応するプロセスボタン「質疑回答削除」が実在する場合のみ削除ボタンを表示Depts・View条件にそのまま追従
        if ($p.ex.processButtonExists('質疑回答削除')) {
            let button3 = document.createElement('button');
            button3.type = 'button';
            button3.id = 'messageDelete';
            button3.innerHTML = '質疑回答削除';
            button3.setAttribute('onclick', "$p.ex.clickProcessByName('質疑回答削除')");
            button3.style.margin = '5px';
            button3.style.float = 'right';
            button3.style.fontSize = '1.3em';

            setTimeout(function () {
                $('#Results_Description075Field').before(button3);
                $('#messageDelete').button({
                    icon: 'ui-icon-document'
                });
            }, 300);
        }
    }
}

//質疑・回答送信ボタン作成
$p.ex.messageSaveButton = function () {
    //対応するプロセスボタン「質疑送信」が実在する場合のみ表示Depts・View条件による表示制御にそのまま追従
    if ($p.ex.processButtonExists('質疑送信') && !$('#saveQuestion').length) {
        let div1 = document.createElement('div');
        div1.style.textAlign = 'right';
        let button1 = document.createElement('button');
        button1.type = 'button';
        button1.id = 'saveQuestion';
        button1.innerHTML = '質疑送信';
        button1.setAttribute('onclick', "$p.ex.clickProcessByName('質疑送信')");
        button1.style.margin = '5px';
        button1.style.fontSize = '1.3em';
        div1.append(button1);
        $('#Results_Attachments071Field').after(div1);
        $('#saveQuestion').button({
            icon: 'ui-icon-document'
        });
    } else {
        //営業積算課以外は質疑入力欄・添付欄を非表示
        $('#Results_Description075Field').hide();
        $('#Results_Attachments071Field').hide();
    }

    //対応するプロセスボタン「積算対応中へ」が実在する場合のみ表示Depts・View条件による表示制御にそのまま追従
    //(ボタンのラベル「営業積算確認」は維持。実行先プロセスは新プロセス仕様で「積算対応中へ」(Id:6)に統合されたため、
    //  clickProcessByNameの対象名のみ変更。confirmAnswerMessage()は04_プロセス処理スクリプト.jsのcase'積算対応中へ'内で呼ぶ)
    if ($p.ex.processButtonExists('積算対応中へ') && !$('#confirmAnswer').length) {
        let div4 = document.createElement('div');
        div4.style.textAlign = 'right';
        let button4 = document.createElement('button');
        button4.type = 'button';
        button4.id = 'confirmAnswer';
        button4.innerHTML = '営業積算確認';
// ...(次ファイルへ続く)