|
@@ -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> ' + nodeItem.name + '</td><td></td><td></td><td></td></tr>')
|
|
|
+ //<td class="in-1"><i class="fa fa-folder-o"></i> 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,
|
|
|
};
|