/** * Created by CSL on 2017-07-04. */ //modified by zhong on 2017-08-30 // Tab panes 下有多个Spread时,相互之间不能正确显示。改成一个Spread下多个Sheet。 //特征及内容spread,解决不能正确显示spread contentOprObj.buildSheet($("#jobSpread")[0]); characterOprObj.buildSheet($("#itemSpread")[0]); $("#tzjnrCon").hide(); $("#subSpread").show(); var subSpread = sheetCommonObj.createSpread($("#subSpread")[0], 5); subSpread.getSheet(4).name('JSCX'); pageCCOprObj.active = false; // 工料机 gljOprObj.initSheet(subSpread.getSheet(0)); //sheetCommonObj.shieldAllCells(subSpread.getSheet(0), gljOprObj.setting); SheetDataHelper.protectdSheet(subSpread.getSheet(0)); // assistOprObj.initSheet(subSpread.getSheet(1)); // sheetCommonObj.shieldAllCells(subSpread.getSheet(1), assistOprObj.setting); //附注条件 gljOprObj.initCoeSheet(subSpread.getSheet(2)); SheetDataHelper.protectdSheet(subSpread.getSheet(2)); //辅助定额 gljOprObj.initAssSheet(subSpread.getSheet(1)); SheetDataHelper.protectdSheet(subSpread.getSheet(1)); //工程量明细 gljOprObj.initDetailSheet(subSpread.getSheet(3)); SheetDataHelper.protectdSheet(subSpread.getSheet(3)); $("#linkGLJ").click(function(){ $("#subItems").children().hide();//控制显示subSpread,隐藏特征及内容spread $("#subSpread").show(); pageCCOprObj.active = false; refreshSubSpread(); subSpread.setActiveSheetIndex(0); $.contextMenu( 'destroy', "#subSpread" ); gljContextMenu.loadGLJSpreadContextMenu(); gljOprObj.activeTab='#linkGLJ'; // for test //subSpread.getActiveSheet().setValue(0, 0, "工料机"); }); $("#linkFZDE").click(function(){ $("#subItems").children().hide(); $("#subSpread").show(); pageCCOprObj.active = false; refreshSubSpread(); subSpread.setActiveSheetIndex(1); $.contextMenu( 'destroy', "#subSpread" ); gljOprObj.activeTab='#linkFZDE'; // for test // subSpread.getActiveSheet().setValue(0, 0, "辅助定额"); }); $("#linkFZTJ").click(function(){ $("#subItems").children().hide(); $("#subSpread").show(); pageCCOprObj.active = false; refreshSubSpread(); subSpread.setActiveSheetIndex(2); $.contextMenu( 'destroy', "#subSpread" ); gljOprObj.activeTab='#linkFZTJ'; // for test //subSpread.getActiveSheet().setValue(0, 0, "附注条件"); }); $("#linkGCLMX").click(function(){ $("#subItems").children().hide(); $("#subSpread").show(); pageCCOprObj.active = false; refreshSubSpread(); subSpread.setActiveSheetIndex(3); $.contextMenu( 'destroy', "#subSpread" ); gljContextMenu.loadQuantityDetailMenu(); gljOprObj.activeTab='#linkGCLMX'; // for test //subSpread.getActiveSheet().setValue(0, 0, "工程量明细"); }); $("#linkJSCX").click(function(){ // 计算程序 $("#subItems").children().hide(); $("#subSpread").show(); pageCCOprObj.active = false; refreshSubSpread(); subSpread.setActiveSheetIndex(4); calcProgramObj.initSheet(subSpread.getSheet(4)); if (!projectObj.mainController.tree.selected) projectObj.mainController.tree.selected = projectObj.mainController.tree.firstNode(); let sel = projectObj.mainController.tree.selected; calcProgramObj.showData(sel); gljOprObj.activeTab='#linkJSCX'; }); //特征及内容 $("#linkTZJNR").click(function () { $("#subItems").children().hide(); $("#tzjnrCon").show(); $("#add-rule").show(); pageCCOprObj.active = true; refreshSubSpread(); let selectedNode = projectObj.mainController.tree.selected; pageCCOprObj.mainActiveCell = projectObj.mainSpread.getActiveSheet().getSelections()[0]; if(selectedNode && selectedNode.sourceType === projectObj.project.Bills.getSourceType()){ pageCCOprObj.setCacheAndShow(selectedNode); } else{ pageCCOprObj.clearData(); } gljOprObj.activeTab='#linkTZJNR'; }); // 应用到选中清单 let isSaving = false; $("#use-to-current").click(function() { if (isSaving) { return false; } const setting = getAddRuleSetting(); isSaving = true; const self = $(this); self.attr('disabled', 'disabled'); let selectedNode = projectObj.mainController.tree.selected; pageCCOprObj.setCharacterBySetting(selectedNode, setting); // 防止连续点击1秒后才能再次发起请求 setTimeout(function() { isSaving = false; self.removeAttr('disabled'); }, 1000); }); // 应用到所有的清单 $("#use-to-all").click(function() { let treeNode = projectObj.mainController.tree; const setting = getAddRuleSetting(); if (treeNode.items === undefined || treeNode.items.length <= 0) { return false; } for (const item of treeNode.items) { if (item.data.jobContent === undefined || item.data.jobContent.length <= 0 || item.data.itemCharacter === undefined || item.data.itemCharacter.length <= 0) { continue; } pageCCOprObj.setCharacterBySetting(item, setting); } }); // 添加位置选择 $("#add-position").change(function() { const selected = $(this).children(":selected").val(); const addContentEle = $("#add-content"); const displayFormatEle = $("#display-format"); const characterFormatEle = $("#character-format"); switch (selected) { case '4': // 分别添加到对应列 // 当“添加位置”是“分别添加到对应列”,则“添加内容”恢复默认“无”,且灰显;“显示格式”恢复默认“换行分隔”,且灰显。 addContentEle.val(''); addContentEle.attr('disabled', 'disabled'); displayFormatEle.val(1); displayFormatEle.attr('disabled', 'disabled'); characterFormatEle.val(2); characterFormatEle.attr('disabled', 'disabled'); break; default: addContentEle.removeAttr('disabled'); displayFormatEle.removeAttr('disabled'); characterFormatEle.removeAttr('disabled'); break; } }); // 添加内容选择 $("#add-content").change(function() { const selected = $(this).children(":selected").val(); const characterFormatEle = $("#character-format"); const childDisplayFormatEle = $("#child-display-format"); switch (selected) { case '4': // 当“添加内容”是“定额子目”或“工作内容”,则“特征生成方式”灰显,不需选择;否则有效可选。 characterFormatEle.attr('disabled', 'disabled'); characterFormatEle.val(2); break; case '5': // 当“添加内容”是“定额子目”或“工作内容”,则“特征生成方式”灰显,不需选择;否则有效可选。 characterFormatEle.attr('disabled', 'disabled'); characterFormatEle.val(2); // 当“添加内容”是“定额子目”,则“子目生成方式”有效可选;否则灰显,不需选择。 childDisplayFormatEle.removeAttr('disabled'); break; default: childDisplayFormatEle.attr('disabled', 'disabled'); break; } }); // 子目生成方式选择事件 $("#child-display-format").change(function() { const selected = $(this).children(":selected").val(); const serialTypeEle = $("#serial-type"); // 如果是编号+定额名称则序号格式不能选择 if (selected === '1') { // 默认选中数字显示模式 serialTypeEle.val(1); serialTypeEle.attr('disabled', 'disabled'); } else { serialTypeEle.removeAttr('disabled'); } }); /** * 获取添加规则的设置 * * @return {Object} - 返回设置内容 */ function getAddRuleSetting() { // 添加位置 const position = $("#add-position").val(); // 添加内容 const addContent = $("#add-content").val(); // 显示格式 const displayFormat = $("#display-format").val(); // 特征生成方式 const characterFormat = $("#character-format").val(); // 序号格式 const serialType = $("#serial-type").val(); const setting = { serialType, characterFormat, addContent, position, displayFormat, }; return setting; } function activeSubSheetIs(idx){ let rst = subSpread.getActiveSheetIndex() == idx; return rst; } //弹出清单规则或定额库后导致subSpread和特征及内容spread显示出问题 function refreshSubSpread(){ if(pageCCOprObj.active){ contentOprObj.workBook.refresh(); characterOprObj.workBook.refresh(); } else{ subSpread.refresh(); } } let subViewObj = { linkTabClick: function () { $("#subItems").children().hide(); $($(this).attr('href')).show(); }, loadComments: function (node) { if (node) { if (node.sourceType === projectObj.project.Bills.getSourceType()) { $('#comments>textarea').val(node.data.comments) } else if (node.sourceType === projectObj.project.Ration.getSourceType()) { $('#comments>textarea').val(node.data.content); } } }, saveComments: function (node) { let text = $('#comments>textarea').val(); if (node && node.sourceType === projectObj.project.Bills.getSourceType()) { if (node.data.comments !== text) { projectObj.project.Bills.updateField(node.source, "comments", text); } } else if (node && node.sourceType === projectObj.project.Ration.getSourceType()) { if (node.data.comments !== text) { projectObj.project.Ration.updateField(node.source, "comments", text); } } } } $("#linkComments").click(subViewObj.linkTabClick);