Browse Source

TASK #4742 签字用户展示方式 - 以单位分组

Tony Kang 1 year ago
parent
commit
0738838dbd

+ 5 - 4
app/controller/report_controller.js

@@ -253,7 +253,7 @@ module.exports = app => {
                     stage_status = stage.status;
                 }
                 for (const prjAcc of prjAccList) {
-                    prjAcc.account_group = accountGroup[prjAcc.account_group];
+                    prjAcc.account_group = prjAcc.company;
                 }
                 const cust_select_keys = JSON.stringify(['common', 'customize']); // 因其他地方也有可能保存用户报表的显示选择项,因当初设计问题,不好改数据库结构了,但可以调节内部json来满足需求
                 const rpt_tpl_items = { customize: [], common: [] };
@@ -408,7 +408,7 @@ module.exports = app => {
                 }
 
                 for (const prjAcc of prjAccList) {
-                    prjAcc.account_group = accountGroup[prjAcc.account_group];
+                    prjAcc.account_group = prjAcc.company;
                 }
                 const cust_select_keys = JSON.stringify(['common_safe', 'customize_safe']); // 因其他地方也有可能保存用户报表的显示选择项,因当初设计问题,不好改数据库结构了,但可以调节内部json来满足需求,安全生产费没有这个,就过了
                 const rpt_tpl_items = { customize: [], common: [] };
@@ -538,7 +538,7 @@ module.exports = app => {
                 const stage_status = -1;
 
                 for (const prjAcc of prjAccList) {
-                    prjAcc.account_group = accountGroup[prjAcc.account_group];
+                    prjAcc.account_group = prjAcc.company;
                 }
                 const cust_select_keys = JSON.stringify(['common_dynamic', 'customize_dynamic']); // 因其他地方也有可能保存用户报表的显示选择项,因当初设计问题,不好改数据库结构了,但可以调节内部json来满足需求
                 const rpt_tpl_items = { customize: [], common: [] };
@@ -722,7 +722,8 @@ module.exports = app => {
                 const stage_status = -1;
 
                 for (const prjAcc of prjAccList) {
-                    prjAcc.account_group = accountGroup[prjAcc.account_group];
+                    // prjAcc.account_group = accountGroup[prjAcc.account_group];
+                    prjAcc.account_group = prjAcc.company;
                 }
                 const cust_select_keys = JSON.stringify(['common', 'customize']); // 因其他地方也有可能保存用户报表的显示选择项,因当初设计问题,不好改数据库结构了,但可以调节内部json来满足需求
                 const rpt_tpl_items = { customize: [], common: [] };

+ 8 - 1
app/public/report/js/rpt_signature.js

@@ -232,7 +232,7 @@ let rptSignatureHelper = {
             }
         }
     },
-    resetESignature: function (pageRst, signatureDivId) {
+    resetESignature: function (pageRst, signatureDivId, cleanSignDate = false) {
         // let body = $('#eSignatureBodyDiv');
         if (pageRst !== null) {
             let body = $('#' + signatureDivId);
@@ -470,6 +470,13 @@ let rptSignatureHelper = {
             }
         }
     },
+
+    setupAfterSelectMultiChanges: async function (selectedChanges, signatureDivId) {
+        alert('hoho~~~');
+        //
+    },
+
+
     setupAfterSelectMultiTenders: function (selectedTenders, signatureDivId) {
         //跨标段选择,有不少要注意的交互:
         //0. 签名日期

+ 46 - 9
app/view/report/rpt_all_popup.ejs

@@ -203,14 +203,12 @@
             <div class="modal-body" id="eSignatureBodyDiv">
             </div>
             <div class="modal-footer">
-                <% if ((pageShow !== null) && (parseInt(pageShow.openSign) === 1)) { %>
+                <% if ( stg_id !== -300 && pageShow !== null && parseInt(pageShow.openSign) === 1) { %>
                     <button type="button" id="btn_cross_tender" class="btn btn-sm btn-link float-left" data-dismiss="modal" data-toggle="modal" data-target="#batch-eSignature" id="batch-setupProjSignature" onclick="rptSignatureHelper.resetESignature(zTreeOprObj.currentRptPageRst, 'batch-eSignatureBodyDiv'); buildTendersTree();">批量设置其他标段</button>
                 <% } %>
-                <!--
-
-                <button type="button" class="btn btn-sm btn-link float-left" data-toggle="modal" data-target="#batch-eSignature" id="hidden_show_batch_eSignature" style="display:none"></button>
-                <button type="button" class="btn btn-sm btn-link float-left" data-dismiss="modal" onclick="setTimeout(function(){$('#hidden_show_batch_eSignature').trigger('click');}, 50);">批量设置其他标段</button>
-                -->
+                <% if (stg_id === -300) { %>
+                    <button type="button" id="btn_cross_tender" class="btn btn-sm btn-link float-left" data-dismiss="modal" data-toggle="modal" data-target="#batch-eSignature" id="batch-setupChangeSignature" onclick="rptSignatureHelper.resetESignature(zTreeOprObj.currentRptPageRst, 'batch-eSignatureBodyDiv', true); buildChangeTree();">批量设置其他变更令</button>
+                <% } %>
                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal" onclick="rptSignatureHelper.removeSelectSignature()">取消</button>
                 <a href="javascript:void(0);" onclick="rptSignatureHelper.setupAfterSelectSignature('eSignatureBodyDiv')" class="btn btn-primary btn-sm" data-dismiss="modal">确定</a>
             </div>
@@ -236,11 +234,19 @@
                         <div class="col-8" id="batch-eSignatureBodyDiv"></div>
                     </div>
                 </div>
-                <div class="alert alert-warning">批量操作会覆盖已设置好的签字,请谨慎操作。</div>
+                <% if (stg_id !== -300) { %>
+                    <div class="alert alert-warning">批量操作会覆盖已设置好的签字,请谨慎操作。</div>
+                <% } else { %>
+                    <div class="alert alert-warning">批量操作会覆盖已设置好的签字,请谨慎操作;<b>已选签名的审核时间只对当前变更令有效</b></div>
+                <% } %>
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
-                <a href="javascript:void(0);" onclick="rptSignatureHelper.setupAfterSelectMultiTenders(SELECTED_TENDERS, 'batch-eSignatureBodyDiv')" class="btn btn-sm btn-primary" data-dismiss="modal">确定</a>
+                <% if (stg_id !== -300) { %>
+                    <a href="javascript:void(0);" onclick="rptSignatureHelper.setupAfterSelectMultiTenders(SELECTED_TENDERS, 'batch-eSignatureBodyDiv')" class="btn btn-sm btn-primary" data-dismiss="modal">确定</a>
+                <% } else { %>
+                    <a href="javascript:void(0);" onclick="rptSignatureHelper.setupAfterSelectMultiChanges(SELECTED_TENDERS, 'batch-eSignatureBodyDiv')" class="btn btn-sm btn-primary" data-dismiss="modal">确定</a>
+                <% } %>
             </div>
         </div>
     </div>
@@ -748,7 +754,7 @@
     zTreeOprObj.getCustomerCfg();
     zTreeOprObj.iniFontCfgDom(CUST_CFG);
     
-    <% if (stg_id === -200 || (stg_id !== -100 && stg_id !== -300)) { %>
+    <% if (stg_id === -200 || stg_id > 0) { %>
     buildCustRptCommon('report_cust_group_common', ORG_TOP_TREE_NODES[1], CUST_TREE_NODES.common, 'true');
     buildCustRptCommon('report_cust_group_individual', ORG_TOP_TREE_NODES[0], CUST_TREE_NODES.customize, 'false');
     <% } %>
@@ -971,6 +977,23 @@
         );
     }
 
+    let SELECTED_CHANGES = [];
+
+    function buildChangeTree() {
+        let tbDom = $("#batch_tenders_individual");
+        tbDom.empty();
+        let domStrs = [];
+        domStrs.push('<thead><tr><th>变更令名称</th><th width="40">选择</th></tr></thead>');
+        domStrs.push('<tbody>');
+        const report_id = zTreeOprObj.currentNode.refId;
+        for (const dtlChange of ALL_CHANGES) {
+            domStrs.push(`<tr><td>${dtlChange.code}</td><td><input type="checkbox" onclick="amendChange(this, SELECTED_CHANGES, TENDER_ID, '${dtlChange.cid}', ${report_id})"></td></tr>`);
+        }
+        domStrs.push('</tbody>');
+        tbDom.append(domStrs.join(''));
+        $('[data-toggle="tooltip"]').tooltip();
+    }
+
     function searchAccount() {
         if (event.keyCode == 13) {
             rptSignatureHelper.buildSelectableAccount(this);
@@ -1128,6 +1151,20 @@
         buildCustRptCommon('report_cust_group_individual', ORG_TOP_TREE_NODES[0], CUST_TREE_NODES.customize, 'false');
     }
 
+    function amendChange(dom, rstArr, tenderId, changeCid, reportId) {
+        if (dom.checked) {
+            let item = [tenderId, '-300', changeCid, reportId];
+            rstArr.push(item);
+        } else {
+            for (let idx = rstArr.length - 1; idx >= 0; idx--) {
+                if (rstArr[idx][2] === changeCid) {
+                    rstArr.splice(idx, 1); // 删除变更令选择(这里变更令cid一定是唯一的)
+                    //这里不break,防止一些冗余数据
+                }
+            }
+        }
+    }
+
     function changeCrossTender(dom, rstArr, tenderId, stageId, reportId) {
         if (dom.checked) {
             let item = [tenderId, stageId, reportId];