TonyKang 4 vuotta sitten
vanhempi
commit
130e385ac8

+ 68 - 9
app/public/report/js/rpt_custom.js

@@ -476,8 +476,7 @@ const rptCustomObj = (function () {
         }
     };
 
-    const initTenderTreeForCross = function (tenders, category, rstItems) {
-        //用户跨标段设置电子签名用
+    const _createTenderTreeForCross = function (tenders, category, rstItems) {
         if (rstItems instanceof Array && rstItems.length === 0) {
             //1. 先确定category方式(‘年份’、‘姓名’、‘类型’)及顺序
             let ctArr = [];
@@ -499,12 +498,14 @@ const rptCustomObj = (function () {
                     }
                     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.id = ctArr[startIdx].id; //这个相当于类型id,如68:年份 69:类型,105:姓名
+                        item.value_id = ctArr[startIdx].value[idx].id; //每个大类下又有小类,如:2018/2019, 土建/房建, 具体用户姓名...
+                        item.cid = ctArr[startIdx].value[idx].cid; //这个值 = item.id
+                        item.pid = ctArr[startIdx].value[idx].pid; //project id?
                         item.tenderId = -1;
                         item.selected = false;
                         item.isParent = true;
+                        item.last_stage = -1;
                         item.items = [];
                         _buildDeftNodes(startIdx + 1, item);
                     }
@@ -514,15 +515,72 @@ const rptCustomObj = (function () {
             //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 _putupTheTender = function (tender) {
+                const _findType = function (parentItem) {
+                    for (let cat of tender.category) {
+                        if (cat.cid === parentItem.cid && cat.value === parentItem.value_id) {
+                            if (parentItem.items.length === 0) {
+                                // 到底了,挂上
+                                let lastStage = -1;
+                                if (tender.lastStage) {
+                                    lastStage = tender.lastStage.times;
+                                }
+                                let item = {
+                                    name: tender.name,
+                                    id  : -1,
+                                    value_id: cat.value,
+                                    cid : cat.cid,
+                                    pid : -1,
+                                    tenderId: tender.id,
+                                    selected : false,
+                                    isParent: true,
+                                    last_stage: lastStage,
+                                    items : [],
+                                }
+                                parentItem.items.push(item);
+                            } else {
+                                for (let nodeItem of parentItem.items) {
+                                    _findType(tender, nodeItem);
+                                }
+                            }
+                            break;
+                        }
+                    }
+                };
+                for (let nodeItem of rstItems) {
+                    _findType(nodeItem);
                 }
+            };
+            for (let tender of tenders) {
+                _putupTheTender(tender);
             }
         }
     };
 
+    const initTenderTreeForCross = function (tenders, category) {
+        //用户跨标段设置电子签名用
+        let rstItems = [];
+        _createTenderTreeForCross(tenders, category, rstItems);
+        _buildTenderRow('batch_projects_individual', rstItems);
+    };
+
+    const _buildTenderRow = function(tbDomId, topTreeNodes) {
+        let tbDom = $("#" + tbDomId);
+        tbDom.empty();
+        tbDom.append('<tr><th>名称</th><th>计量期</th><th>签名</th><th>选择</th></tr>');
+        let _pushRptLine = function (nodeItem, level) {
+            if (nodeItem.isParent) {
+                tbDom.append('<tr><td class="in-'+ (level + 1) + '"><i class="fa fa-folder-o"></i>&nbsp;' + nodeItem.name + '</td><td></td><td></td><td></td></tr>')
+                //<td class="in-1"><i class="fa fa-folder-o"></i>&nbsp;2019</td>
+            } else {
+                //
+            }
+        };
+        for (const topItem of topTreeNodes) {
+            _pushRptLine(topItem, 0);
+        }
+    }
+
     const initTenderTree = function (tenders, category) {
         const gsSpread = SpreadJsObj.createNewSpread($('#gather-source-spread')[0]);
         gsObj.gsSheet = gsSpread.getActiveSheet();
@@ -638,6 +696,7 @@ const rptCustomObj = (function () {
         init,
         resetAuditSelect, resetGatherSelect, resetStageSelect,
         initTenderTree,
+        initTenderTreeForCross,
         getCustomSelect,
         showMaterialSelect, changeMaterial,
     };

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

@@ -617,7 +617,9 @@ let rptSignatureHelper = {
         for (const page of pageData.items) {
             if (page.signature_date_cells) {
                 for (const sCell of page.signature_date_cells) {
-                    sCell.Value = _getSignDateDftName();
+                    if (sCell.Value === undefined || sCell.Value === null && sCell.Value === '') {
+                        sCell.Value = _getSignDateDftName();
+                    }
                     for (const role_rel of currRoleRelList) {
                         if (sCell.signature_name === role_rel.signature_name + '_签字日期') {
                             if (role_rel.sign_date !== '') {

+ 4 - 1
app/view/report/rpt_all_popup.ejs

@@ -226,7 +226,10 @@
             </div>
             <div class="modal-body">
                 <div class="row">
-                    <div class="col-6" id="batch-ProjectsBodyDiv"></div>
+                    <div class="col-6">
+                        <table class="table table-hover table-bordered" id="batch_projects_individual">
+                        </table>
+                    </div>
                     <div class="col-6" id="batch-eSignatureBodyDiv"></div>
                 </div>
                 <div class="alert alert-warning">批量操作会覆盖已设置好的电子签名,请谨慎操作。</div>