|
@@ -203,8 +203,8 @@
|
|
|
<div class="modal-body" id="eSignatureBodyDiv">
|
|
|
</div>
|
|
|
<div class="modal-footer">
|
|
|
- <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" 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>
|
|
@@ -225,12 +225,14 @@
|
|
|
</button>
|
|
|
</div>
|
|
|
<div class="modal-body">
|
|
|
- <div class="row">
|
|
|
- <div class="col-6">
|
|
|
- <table class="table table-hover table-bordered" id="batch_tenders_individual">
|
|
|
- </table>
|
|
|
+ <div class="modal-height-300">
|
|
|
+ <div class="row">
|
|
|
+ <div class="col-6">
|
|
|
+ <table class="table table-hover table-bordered" id="batch_tenders_individual">
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ <div class="col-6" id="batch-eSignatureBodyDiv"></div>
|
|
|
</div>
|
|
|
- <div class="col-6" id="batch-eSignatureBodyDiv"></div>
|
|
|
</div>
|
|
|
<div class="alert alert-warning">批量操作会覆盖已设置好的电子签名,请谨慎操作。</div>
|
|
|
</div>
|
|
@@ -523,78 +525,102 @@
|
|
|
_createItems(treeCache, 0);
|
|
|
}
|
|
|
//2. 建立treeNodes
|
|
|
+ let hasCat = false;
|
|
|
for (const tender of tenders) {
|
|
|
if (tender.category && tender.category.length > 0) {
|
|
|
- for (const cat of tender.category) {
|
|
|
-
|
|
|
- }
|
|
|
+ hasCat = true;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
//3. 把标段挂上去
|
|
|
let tmpCacheArr = []; //这个临时用来储存相应标段节点挂接信息
|
|
|
let _putTender = function (catLv, tender, parentItems) {
|
|
|
- if (catLv < tender.category.length && tender.lastStage !== undefined && tender.lastStage !== null) {
|
|
|
- let isSorted = false;
|
|
|
- for (let sCat of sortedCat) {
|
|
|
- if (sCat.id === tender.category[catLv].cid && sCat.level > 0) {
|
|
|
- isSorted = true;
|
|
|
- break;
|
|
|
+ if (tender.lastStage !== undefined && tender.lastStage !== null) {
|
|
|
+ if (hasCat) {
|
|
|
+ let isSorted = false;
|
|
|
+ for (let sCat of sortedCat) {
|
|
|
+ if (sCat.id === tender.category[catLv].cid && sCat.level > 0) {
|
|
|
+ isSorted = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- if (isSorted) {
|
|
|
- for (const item of parentItems) {
|
|
|
- if (item.cid === tender.category[catLv].cid && item.id === tender.category[catLv].value) {
|
|
|
- if (item.items.length > 0) {
|
|
|
- //递归循环
|
|
|
- _putTender(catLv + 1, tender, item.items);
|
|
|
- } else {
|
|
|
- //就是这个了
|
|
|
- let tdItem = {
|
|
|
- name: tender.name,
|
|
|
- id : -1,
|
|
|
- cid : -1,
|
|
|
- tender_id: tender.id,
|
|
|
- last_stage: tender.lastStage.order,
|
|
|
- last_stage_id: tender.lastStage.id,
|
|
|
- report_id: zTreeOprObj.currentNode.refId,
|
|
|
- signature: '临时',
|
|
|
- items: [],
|
|
|
- isParent: false
|
|
|
- }; //标段节点
|
|
|
- //
|
|
|
- tmpCacheArr.push([item, tdItem]);
|
|
|
+ if (isSorted) {
|
|
|
+ for (const item of parentItems) {
|
|
|
+ if (item.cid === tender.category[catLv].cid && item.id === tender.category[catLv].value) {
|
|
|
+ if (item.items.length > 0) {
|
|
|
+ //递归循环
|
|
|
+ _putTender(catLv + 1, tender, item.items);
|
|
|
+ } else {
|
|
|
+ //就是这个了
|
|
|
+ let tdItem = {
|
|
|
+ name: tender.name,
|
|
|
+ id : -1,
|
|
|
+ cid : -1,
|
|
|
+ tender_id: tender.id,
|
|
|
+ last_stage: tender.lastStage.order,
|
|
|
+ last_stage_id: tender.lastStage.id,
|
|
|
+ report_id: zTreeOprObj.currentNode.refId,
|
|
|
+ signature: '临时',
|
|
|
+ items: [],
|
|
|
+ isParent: false
|
|
|
+ }; //标段节点
|
|
|
+ //
|
|
|
+ tmpCacheArr.push([item, tdItem]);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ // 没有设置category
|
|
|
+ let tdItem = {
|
|
|
+ name: tender.name,
|
|
|
+ id : -1,
|
|
|
+ cid : -1,
|
|
|
+ tender_id: tender.id,
|
|
|
+ last_stage: tender.lastStage.order,
|
|
|
+ last_stage_id: tender.lastStage.id,
|
|
|
+ report_id: zTreeOprObj.currentNode.refId,
|
|
|
+ signature: '临时',
|
|
|
+ items: [],
|
|
|
+ isParent: false
|
|
|
+ }; //标段节点
|
|
|
+ //
|
|
|
+ tmpCacheArr.push([null, tdItem]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
for (const tender of tenders) {
|
|
|
_putTender(0, tender, treeCache);
|
|
|
}
|
|
|
- for (const pairItem of tmpCacheArr) {
|
|
|
- pairItem[0].items.push(pairItem[1]);
|
|
|
+ if (hasCat) {
|
|
|
+ for (const pairItem of tmpCacheArr) {
|
|
|
+ pairItem[0].items.push(pairItem[1]);
|
|
|
+ }
|
|
|
}
|
|
|
//4. 剔除空items的项
|
|
|
- let _removeEmptyItems = function (parentItem) {
|
|
|
- let rst = false;
|
|
|
- if (parentItem.items.length === 0) {
|
|
|
- if (parentItem.isParent) {
|
|
|
- rst = true;
|
|
|
- }
|
|
|
- } else {
|
|
|
- for (let idx = parentItem.items.length - 1; idx >= 0; idx--) {
|
|
|
- if (_removeEmptyItems(parentItem.items[idx])) {
|
|
|
- parentItem.items.splice(idx, 1);
|
|
|
+ if (hasCat) {
|
|
|
+ let _removeEmptyItems = function (parentItem) {
|
|
|
+ let rst = false;
|
|
|
+ if (parentItem.items.length === 0) {
|
|
|
+ if (parentItem.isParent) {
|
|
|
+ rst = true;
|
|
|
}
|
|
|
+ } else {
|
|
|
+ for (let idx = parentItem.items.length - 1; idx >= 0; idx--) {
|
|
|
+ if (_removeEmptyItems(parentItem.items[idx])) {
|
|
|
+ parentItem.items.splice(idx, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ rst = parentItem.items.length === 0;
|
|
|
}
|
|
|
- rst = parentItem.items.length === 0;
|
|
|
+ return rst;
|
|
|
}
|
|
|
- return rst;
|
|
|
- }
|
|
|
- for (let idx = treeCache.length - 1; idx >= 0; idx--) {
|
|
|
- if (_removeEmptyItems(treeCache[idx])) {
|
|
|
- treeCache.splice(idx, 1);
|
|
|
+ for (let idx = treeCache.length - 1; idx >= 0; idx--) {
|
|
|
+ if (hasCat) {
|
|
|
+ if (_removeEmptyItems(treeCache[idx])) {
|
|
|
+ treeCache.splice(idx, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//console.log(treeCache);
|
|
@@ -638,8 +664,15 @@
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
- for (let idx = treeCache.length - 1; idx >= 0; idx--) {
|
|
|
- _getTenderRelatedInfos(treeCache[idx], params.selectedTenders);
|
|
|
+ if (hasCat) {
|
|
|
+ for (let idx = treeCache.length - 1; idx >= 0; idx--) {
|
|
|
+ _getTenderRelatedInfos(treeCache[idx], params.selectedTenders);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (let idx = tmpCacheArr.length - 1; idx >= 0; idx--) {
|
|
|
+ _getTenderRelatedInfos(tmpCacheArr[idx][1], params.selectedTenders);
|
|
|
+ treeCache.push(tmpCacheArr[idx][1]);
|
|
|
+ }
|
|
|
}
|
|
|
$.bootstrapLoading.start();
|
|
|
CommonAjax.postXsrfEx("/tender/report_api/getMultiRoleRelationships", params, 30000, true, getCookie('csrfToken'),
|
|
@@ -673,13 +706,14 @@
|
|
|
function _buildTenderTree(tbDomId, tendersArr) {
|
|
|
let tbDom = $("#" + tbDomId);
|
|
|
tbDom.empty();
|
|
|
- //tbDom.append('<tr><th>类别</th><th>包含报表</th><th>显示</th></tr>');
|
|
|
- tbDom.append('<thead><tr><th>名称</th><th width="50">计量期</th><th width="40">签名</th><th width="40">选择</th></tr></thead>');
|
|
|
- tbDom.append('<tbody>');
|
|
|
+ let domStrs = [];
|
|
|
+ domStrs.push('<thead><tr><th>名称</th><th width="50">计量期</th><th width="40">签名</th><th width="40">选择</th></tr></thead>');
|
|
|
+ domStrs.push('<tbody>');
|
|
|
const _createRow = function (rowItem, lv) {
|
|
|
let tdClassStr = 'in-' + lv;
|
|
|
if (rowItem.isParent) {
|
|
|
- tbDom.append('<tr><td class="' + tdClassStr + '"><i class="fa fa-folder-o"></i> ' + rowItem.name + '</td><td></td><td></td><td></td></tr>');
|
|
|
+ //tbDom.append('<tr><td class="' + tdClassStr + '"><i class="fa fa-folder-o"></i> ' + rowItem.name + '</td><td></td><td></td><td></td></tr>');
|
|
|
+ domStrs.push('<tr><td class="' + tdClassStr + '"><i class="fa fa-folder-o"></i> ' + rowItem.name + '</td><td></td><td></td><td></td></tr>');
|
|
|
} else {
|
|
|
let hrefStr = '/tender/' + rowItem.tender_id;
|
|
|
//<a href="biaoduan-panel.html" target="_blank">WWUJ-1</a>
|
|
@@ -692,9 +726,9 @@
|
|
|
//let chgStr = 'changeCrossTender(this, SELECTED_TENDERS,' + rowItem.tender_id + ', ' + rowItem.last_stage_id + ', ' + rowItem.report_id + ')';
|
|
|
if (rowItem.signature !== undefined && rowItem.signature !== null && rowItem.signature !== '') {
|
|
|
let hintStr = '<i class="fa fa-exclamation-circle text-primary" data-container="body" data-toggle="tooltip" data-placement="bottom" data-original-title="' + rowItem.signature + '"></i>';
|
|
|
- tbDom.append('<tr><td class="' + tdClassStr + '"><a href="' + hrefStr + '" target="_blank">' + rowItem.name + '</a></td><td>' + lastStgStr + '</td><td>' + hintStr + '</td><td><input type="checkbox" onclick="changeCrossTender(this, SELECTED_TENDERS, ' + rowItem.tender_id + ', ' + rowItem.last_stage_id + ', ' + rowItem.report_id + ')' + '"></td></tr>');
|
|
|
+ domStrs.push('<tr><td class="' + tdClassStr + '"><a href="' + hrefStr + '" target="_blank">' + rowItem.name + '</a></td><td>' + lastStgStr + '</td><td>' + hintStr + '</td><td><input type="checkbox" onclick="changeCrossTender(this, SELECTED_TENDERS, ' + rowItem.tender_id + ', ' + rowItem.last_stage_id + ', ' + rowItem.report_id + ')' + '"></td></tr>');
|
|
|
} else {
|
|
|
- tbDom.append('<tr><td class="' + tdClassStr + '"><a href="' + hrefStr + '" target="_blank">' + rowItem.name + '</a></td><td>' + lastStgStr + '</td><td></td><td><input type="checkbox" onclick="changeCrossTender(this, SELECTED_TENDERS, ' + rowItem.tender_id + ', ' + rowItem.last_stage_id + ', ' + rowItem.report_id + ')' + '"></td></tr>');
|
|
|
+ domStrs.push('<tr><td class="' + tdClassStr + '"><a href="' + hrefStr + '" target="_blank">' + rowItem.name + '</a></td><td>' + lastStgStr + '</td><td></td><td><input type="checkbox" onclick="changeCrossTender(this, SELECTED_TENDERS, ' + rowItem.tender_id + ', ' + rowItem.last_stage_id + ', ' + rowItem.report_id + ')' + '"></td></tr>');
|
|
|
}
|
|
|
}
|
|
|
if (rowItem.items && rowItem.items.length > 0) {
|
|
@@ -707,7 +741,9 @@
|
|
|
for (const tItem of tendersArr) {
|
|
|
_createRow(tItem, grpLv);
|
|
|
}
|
|
|
- tbDom.append('</tbody>');
|
|
|
+ domStrs.push('</tbody>');
|
|
|
+ tbDom.append(domStrs.join(''));
|
|
|
+
|
|
|
}
|
|
|
|
|
|
function buildCustRptCommon(tbDomId, topTreeNode, checkingArr, isCommonStr) {
|