123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- /**
- * 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;
- // 缓存原名称
- if (pageCCOprObj.nameCache === '') {
- let libId = projectInfoObj.projectInfo.engineeringInfo.bill_lib[0].id;
- let orgCode = selectedNode.data.code.substr(0, 9);
- CommonAjax.post('/stdBillsEditor/getStdBillsByCode', {userId: userID, billsLibId: libId, code: orgCode}, function (data) {
- if (data) {
- pageCCOprObj.nameCache = data.name;
- }
- });
- }
- if (projectObj.project.property.addRule !== undefined) {
- setRule(projectObj.project.property.addRule);
- }
- 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");
- const serialTypeEle = $("#serial-type");
- switch (selected) {
- case '5':
- // 当“添加内容”是“定额子目”或“工作内容”,则“特征生成方式”灰显,不需选择;否则有效可选。
- characterFormatEle.attr('disabled', 'disabled');
- characterFormatEle.val(2);
- // 当“添加内容”是“定额子目”,则“子目生成方式”有效可选;否则灰显,不需选择。
- childDisplayFormatEle.removeAttr('disabled');
- serialTypeEle.val('');
- serialTypeEle.attr('disabled', 'disabled');
- break;
- case '1':
- case '2':
- case '3':
- characterFormatEle.removeAttr('disabled');
- break;
- case '4':
- // 当“添加内容”是“定额子目”或“工作内容”,则“特征生成方式”灰显,不需选择;否则有效可选。
- characterFormatEle.attr('disabled', 'disabled');
- characterFormatEle.val(2);
- default:
- serialTypeEle.removeAttr('disabled');
- 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("");
- serialTypeEle.attr('disabled', 'disabled');
- } else {
- serialTypeEle.val(1);
- 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 childDisplayFormat = $("#child-display-format").val();
- // 序号格式
- const serialType = $("#serial-type").val();
- const setting = {
- serialType,
- characterFormat,
- addContent,
- position,
- displayFormat,
- childDisplayFormat,
- };
- return setting;
- }
- /**
- * 根据配置设置规则
- *
- * @param {Object} setting - 数据库中读取的数据
- * @return {void}
- */
- function setRule(setting) {
- if (Object.keys(setting).length <= 0) {
- return;
- }
- $("#add-position").val(setting.position);
- $("#add-position").change();
- $("#add-content").val(setting.addContent);
- $("#add-content").change();
- $("#display-format").val(setting.displayFormat);
- $("#character-format").val(setting.characterFormat);
- $("#child-display-format").val(setting.childDisplayFormat);
- $("#child-display-format").change();
- $("#serial-type").val(setting.serialType);
- }
- 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);
|