浏览代码

code sync for test UAT

TonyKang 4 年之前
父节点
当前提交
30994fa78a

+ 1 - 0
app/controller/report_controller.js

@@ -76,6 +76,7 @@ module.exports = app => {
                 const roleList = await ctx.service.signatureRole.getSignatureRolesByTenderId(tender.id);
                 const usedList = await ctx.service.signatureUsed.getSignatureUsedByTenderId(tender.id);
 
+
                 // 分类列表
                 const categoryData = await this.ctx.service.category.getAllCategory(this.ctx.session.sessionProject.id);
                 // 获取用户权限

+ 47 - 0
app/public/report/js/rpt_custom.js

@@ -476,6 +476,53 @@ const rptCustomObj = (function () {
         }
     };
 
+    const initTenderTreeForCross = function (tenders, category, rstItems) {
+        //用户跨标段设置电子签名用
+        if (rstItems instanceof Array && rstItems.length === 0) {
+            //1. 先确定category方式(‘年份’、‘姓名’、‘类型’)及顺序
+            let ctArr = [];
+            for (let cat of category) {
+                if (cat.level) {
+                    ctArr.push(cat);
+                }
+            }
+            ctArr.sort(function (item1, item2) {
+                return parseInt(item1.level) - parseInt(item2.level);
+            }); //保证顺序
+            const _buildDeftNodes = function(startIdx, parentItem) {
+                if (ctArr.length > startIdx) {
+                    let item = {};
+                    if (parentItem instanceof Array) {
+                        parentItem.push(item);
+                    } else {
+                        parentItem.items.push(item);
+                    }
+                    for (let idx = 0; idx < ctArr[startIdx].value.length; idx++) {
+                        item.name = ctArr[startIdx].value[idx].value;
+                        item.id = ctArr[startIdx].value[idx].id;
+                        item.cid = ctArr[startIdx].value[idx].cid;
+                        item.pid = ctArr[startIdx].value[idx].pid;
+                        item.tenderId = -1;
+                        item.selected = false;
+                        item.isParent = true;
+                        item.items = [];
+                        _buildDeftNodes(startIdx + 1, item);
+                    }
+                }
+            };
+            // const _get
+            //2. 创建基本结构
+            _buildDeftNodes(0, rstItems);
+            //3. 挂上标段
+            for (let tender of tenders) {
+                let minAmt = Math.min(tender.category.length, ctArr.length);
+                for (let idx = 0; idx < minAmt; idx++) {
+                    //
+                }
+            }
+        }
+    };
+
     const initTenderTree = function (tenders, category) {
         const gsSpread = SpreadJsObj.createNewSpread($('#gather-source-spread')[0]);
         gsObj.gsSheet = gsSpread.getActiveSheet();

+ 3 - 2
app/public/report/js/rpt_signature.js

@@ -187,8 +187,9 @@ let rptSignatureHelper = {
             }
         }
     },
-    resetESignature: function (pageRst) {
-        let body = $('#eSignatureBodyDiv');
+    resetESignature: function (pageRst, signatureDivId) {
+        // let body = $('#eSignatureBodyDiv');
+        let body = $('#' + signatureDivId);
         body.empty();
         const signature_cells = [];
         const singatureNameArr = [];

+ 5 - 4
app/view/report/index.ejs

@@ -114,7 +114,7 @@
                             </div>
                             <div class="panel" id="pnl_eSignature">
                                 <div class="panel-body">
-                                    <button class="btn btn-outline-primary btn-sm" type="button" data-toggle="modal" data-target="#eSignature" onclick="rptSignatureHelper.resetESignature(zTreeOprObj.currentRptPageRst)">
+                                    <button class="btn btn-outline-primary btn-sm" type="button" data-toggle="modal" data-target="#eSignature" onclick="rptSignatureHelper.resetESignature(zTreeOprObj.currentRptPageRst, 'eSignatureBodyDiv')">
                                         <i class="fa fa-pencil"></i><br>
                                         电子签名
                                     </button>
@@ -226,12 +226,13 @@
     });
 </script>
 <script>
-    const tenders = JSON.parse('<%- JSON.stringify(tenderList) %>');
-    const category = JSON.parse('<%- JSON.stringify(categoryData) %>');
+    const TENDERS = JSON.parse('<%- JSON.stringify(tenderList) %>');
+    const CATEGORY = JSON.parse('<%- JSON.stringify(categoryData) %>');
     const auditConst = JSON.parse('<%- JSON.stringify(auditConst) %>');
     const ledgerAuditConst = JSON.parse('<%- JSON.stringify(ledgerAuditConst) %>');
     $(document).ready(() => {
-        rptCustomObj.initTenderTree(tenders, category);
+        rptCustomObj.initTenderTree(TENDERS, CATEGORY);
+        rptCustomObj.initTenderTreeForCross(TENDERS, CATEGORY);
     });
 </script>
 

+ 33 - 0
app/view/report/rpt_all_popup.ejs

@@ -203,12 +203,41 @@
             <div class="modal-body" id="eSignatureBodyDiv">
             </div>
             <div class="modal-footer">
+                <!--
+                <button type="button" 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')">批量设置其他标段</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>
+                -->
                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal" onclick="rptSignatureHelper.removeSelectSignature()">取消</button>
                 <a href="javascript:void(0);" onclick="rptSignatureHelper.setupAfterSelectSignature()" class="btn btn-primary btn-sm" data-dismiss="modal">确定</a>
             </div>
         </div>
     </div>
 </div>
+<div class="modal fade" id="batch-eSignature" data-backdrop="static">
+    <div class="modal-dialog modal-lg" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">批量设置电子签名</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <div class="row">
+                    <div class="col-6" id="batch-ProjectsBodyDiv"></div>
+                    <div class="col-6" id="batch-eSignatureBodyDiv"></div>
+                </div>
+                <div class="alert alert-warning">批量操作会覆盖已设置好的电子签名,请谨慎操作。</div>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+                <a href="" class="btn btn-sm btn-primary">确定</a>
+            </div>
+        </div>
+    </div>
+</div>
 <!--弹出添加签名人-->
 <div class="modal fade" id="add-sign" data-backdrop="static">
     <div class="modal-dialog modal-sm" role="document">
@@ -431,6 +460,10 @@
     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');
 
+    function buildTendersTree() {
+        //
+    }
+
     function searchAccount() {
         if (event.keyCode == 13) {
             rptSignatureHelper.buildSelectableAccount(this);