| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387 | /** * Created by CSL on 2017-07-04. *///modified by zhong on 2017-08-30// Tab panes 下有多个Spread时,相互之间不能正确显示。改成一个Spread下多个Sheet。//特征及内容spread,解决不能正确显示spread//zhang 5-31  删除附注条件、辅助定额tab,增加子目换算tabcontentOprObj.buildSheet($("#jobSpread")[0]);characterOprObj.buildSheet($("#itemSpread")[0]);$("#tzjnrCon").hide();$("#subSpread").show();var subSpread = sheetCommonObj.createSpread($("#subSpread")[0], 4);subSpread.options.allowUserDragDrop = false;subSpread.options.allowUserDragFill = false;subSpread.getSheet(2).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.initDetailSheet(subSpread.getSheet(1));SheetDataHelper.protectdSheet(subSpread.getSheet(1));//安装增加费installationFeeObj.initRationInstallSheet(subSpread.getSheet(3));SheetDataHelper.protectdSheet(subSpread.getSheet(3));gljContextMenu.loadGLJSpreadContextMenu();$("#linkGLJ").click(function(){    $("#subItems").children().hide();//控制显示subSpread,隐藏特征及内容spread    $("#subSpread").show();    pageCCOprObj.active = false;    subSpread.options.allowUserDragFill = false;    refreshSubSpread();    subSpread.setActiveSheetIndex(0);    gljOprObj.activeTab='#linkGLJ';    // for test    //subSpread.getActiveSheet().setValue(0, 0, "工料机");});$("#linkAZZJF").click(function(){    $("#subItems").children().hide();    $("#subSpread").show();    pageCCOprObj.active = false;    refreshSubSpread();    subSpread.setActiveSheetIndex(3);    gljOprObj.activeTab='#linkAZZJF';});$("#linkGCLMX").click(function(){    $("#subItems").children().hide();    $("#subSpread").show();    subSpread.options.allowUserDragFill = true;    pageCCOprObj.active = false;    refreshSubSpread();    subSpread.setActiveSheetIndex(1);    gljOprObj.activeTab='#linkGCLMX';});$("#linkJSCX").click(function(){        // 计算程序    $("#subItems").children().hide();    $("#subSpread").show();    pageCCOprObj.active = false;    refreshSubSpread();    subSpread.setActiveSheetIndex(2);    calcProgramObj.initSheet(subSpread.getSheet(2));    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';});$("#linkZMHS").click(function(){        // 子目换算    $("#subItems").children().hide();    $("#tabZMHS").show();    pageCCOprObj.active = false;    refreshSubSpread();    gljOprObj.activeTab='#linkZMHS';});tabZMHS//特征及内容$("#linkTZJNR").click(function () {    $("#subItems").children().hide();    $("#tzjnrCon").show();    $("#add-rule").show();    $("#add-rule p").not(":first").css('margin-bottom', 4);    pageCCOprObj.active = true;    refreshSubSpread();    let selectedNode = projectObj.mainController.tree.selected;    if (projectObj.project.property.addRule !== undefined) {        setRule(projectObj.project.property.addRule);    }    pageCCOprObj.mainActiveCell = projectObj.mainSpread.getActiveSheet().getSelections()[0];    pageCCOprObj.setCacheAndShow(selectedNode);   /* 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;    function findBill(node){        while(node && node.sourceType !== projectObj.project.Bills.getSourceType()){            node = node.parent;        }        return node;    }    let billsNode = findBill(selectedNode);    // 操作内容    pageCCOprObj.setCharacterBySetting(billsNode, 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 || item.data.code === undefined) {            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");    const serialTypeEle = $("#serial-type");    switch (selected) {        case '4':            // 分别添加到对应列            // 当“添加位置”是“分别添加到对应列”,则“添加内容”恢复默认“无”,且灰显;“显示格式”恢复默认“换行分隔”,且灰显。            addContentEle.val('');            addContentEle.attr('disabled', 'disabled');            displayFormatEle.val(1);            characterFormatEle.val(2);            serialTypeEle.val(1);            break;        default:            addContentEle.removeAttr('disabled');            displayFormatEle.removeAttr('disabled');            characterFormatEle.removeAttr('disabled');            addContentEle.val(1);            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');            if (serialTypeEle.val() === '') {                serialTypeEle.val(1);            }            serialTypeEle.removeAttr('disabled');            childDisplayFormatEle.attr('disabled', 'disabled');            break;        case '4':            // 当“添加内容”是“定额子目”或“工作内容”,则“特征生成方式”灰显,不需选择;否则有效可选。            characterFormatEle.attr('disabled', 'disabled');            characterFormatEle.val(2);        default:            serialTypeEle.removeAttr('disabled');            if (serialTypeEle.val() === '') {                serialTypeEle.val(1);            }            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) {        let comments = [];        let commentText = '';        if (node) {            if (node.sourceType === projectObj.project.Bills.getSourceType() &&                (node.data.type === billType.FX || node.data.type === billType.BX || node.data.type === billType.BILL)) {                if(node.data.comments && node.data.comments !== ''){                    comments.push('清单注释:');                    comments.push(node.data.comments);                }                if(node.data.ruleText && node.data.ruleText !== ''){                    comments.push('工程量计算规则:');                    comments.push(node.data.ruleText);                }            } else if (node.sourceType === projectObj.project.Ration.getSourceType()) {                if(node.data.content && node.data.content !== ''){                    comments.push('工作内容:');                    comments.push(node.data.content);                }                if(node.data.annotation && node.data.annotation !== ''){                    comments.push('附注:');                    comments.push(node.data.annotation);                }            }            commentText = comments.join('\n');        }        $('#comments>textarea').val(commentText);    },    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);$('#linkGLJ').on('shown.bs.tab', function () {    gljOprObj.showDataIfRationSelect(projectObj.project.mainTree.selected, '111111');});$('#linkZMHS').on('shown.bs.tab', function (e) {    if(zmhs_obj.coeSpread == null || zmhs_obj.assSpread == null){        zmhs_obj.initSpread();    }    zmhs_obj.refresh();    zmhs_obj.showZMHSData();});$('#linkComments').on('shown.bs.tab', function () {    subViewObj.loadComments(projectObj.project.mainTree.selected);});$('#linkGCLMX').on('shown.bs.tab', function () {    gljOprObj.showDataIfRationSelect(projectObj.project.mainTree.selected, '111111');});$('#linkAZZJF').on('shown.bs.tab', function () {    gljOprObj.showDataIfRationSelect(projectObj.project.mainTree.selected, '111111');});
 |