| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 | 'use strict';const JV = require('../jpc_value_define');const JE = require('../jpc_rte');const JpcTextHelper = require('./jpc_helper_text');const JpcCommonOutputHelper = require('./jpc_helper_common_output');const JpcAreaHelper = require('./jpc_helper_area');const JpcFieldHelper = require('./jpc_helper_field');const SEG_PAGE_SPLIT_STR = '`';const JpcDiscreteHelper = {    outputDiscreteInfo: function(discreteArray, bands, dataObj, unitFactor, pageStatus, segIdx, segPageIdx, multiCols, multiColIdx, $CURRENT_RPT, customizeCfg, signatureRst, signatureDateRst, signatureAuditRst) {        const rst = [];        if (discreteArray && dataObj) {            for (let i = 0; i < discreteArray.length; i++) {                const band = bands[discreteArray[i][JV.PROP_BAND_NAME]];                if (band && pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {                    if (discreteArray[i][JV.PROP_TEXT]) {                        rst.push(JpcTextHelper.outputText(discreteArray[i][JV.PROP_TEXT], band, unitFactor, 1, 0, 1, 0, multiCols, multiColIdx));                    }                    if (discreteArray[i][JV.PROP_TEXTS]) {                        for (let j = 0; j < discreteArray[i][JV.PROP_TEXTS].length; j++) {                            rst.push(JpcTextHelper.outputText(discreteArray[i][JV.PROP_TEXTS][j], band, unitFactor, 1, 0, 1, 0, multiCols, multiColIdx));                        }                    }                    if (discreteArray[i][JV.PROP_DISCRETE_FIELDS]) {                        let flexiblePrecisionRefObj = null;                        let flexibleRefField = null;                        for (let j = 0; j < discreteArray[i][JV.PROP_DISCRETE_FIELDS].length; j++) {                            const df = discreteArray[i][JV.PROP_DISCRETE_FIELDS][j];                            if (!this.setupSignatureFieldParam(signatureRst, signatureDateRst, signatureAuditRst, $CURRENT_RPT, band, unitFactor, df)) {                                let value = '';                                let isPic = false;                                if (df[JV.PROP_FIELD_ID]) {                                    // let map_data_field = JE.F(df[JV.PROP_FIELD_ID], $CURRENT_RPT);                                    const map_data_field = JE.F(df[JV.PROP_FIELD_ID], $CURRENT_RPT);                                    isPic = (map_data_field.isPic !== undefined && map_data_field.isPic);                                    if (map_data_field.DataSeq !== JV.BLANK_FIELD_INDEX) {                                        const data = dataObj[map_data_field.DataNodeName][map_data_field.DataSeq];                                        if (data && data.length > 0) {                                            if (data.length > segIdx) {                                                value = data[segIdx];                                            } else {                                                value = data[0];                                            }                                            value = this._getSegPageValue(value, segPageIdx);                                            // console.log(value);                                        }                                    } else {                                        if (map_data_field[JV.PROP_AD_HOC_DATA] && map_data_field[JV.PROP_AD_HOC_DATA].length > 0) {                                            const data = map_data_field[JV.PROP_AD_HOC_DATA];                                            if (data && data.length > 0) {                                                if (data.length > segIdx) {                                                    value = data[segIdx];                                                } else {                                                    value = data[0];                                                }                                            }                                            // value = map_data_field[JV.PROP_AD_HOC_DATA][0];                                        } else value = '';                                    }                                    if (map_data_field && map_data_field[JV.PROP_PRECISION] && map_data_field.flexiblePrecisionRefObj) {                                        let pre_ref_data = null;                                        if (flexiblePrecisionRefObj === null) {                                            flexiblePrecisionRefObj = {};                                            flexibleRefField = JE.F(map_data_field[JV.PROP_PRECISION][JV.PROP_FLEXIBLE_REF_FILED_ID], $CURRENT_RPT);                                            pre_ref_data = dataObj[map_data_field.DataNodeName][flexibleRefField.DataSeq]; // 这里的引用指标必须得存在,哪怕不显示,也要存放在指标集合中!                                            for (const decimalObj of map_data_field.flexiblePrecisionRefObj) {                                                flexiblePrecisionRefObj['refUnit_' + decimalObj.unit] = decimalObj.decimal;                                            }                                        }                                        JpcFieldHelper.resetFlexibleFormat(df, pre_ref_data, flexiblePrecisionRefObj, segIdx, customizeCfg);                                    } else {                                        JpcFieldHelper.resetFormat(df, map_data_field, customizeCfg);                                    }                                } else if (df[JV.PROP_PARAM_ID] || df[JV.PROP_ID]) {                                    let pID = df[JV.PROP_PARAM_ID];                                    if (df[JV.PROP_ID]) pID = df[JV.PROP_ID];                                    const param = JE.P(pID, $CURRENT_RPT);                                    value = param[JV.PROP_DFT_VALUE];                                }                                // console.log(value);                                // if (typeof value === 'string') {                                //     if (value.indexOf('清单1101-1') >= 0) {                                //         console.log('before: ' + value);                                //     }                                // }                                const item = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, value, true);                                // position                                item[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, multiCols, multiColIdx, false, false);                                if (isPic && item[JV.PROP_VALUE] !== undefined && item[JV.PROP_VALUE] !== null && item[JV.PROP_VALUE] !== '') {                                    if (Array.isArray(signatureRst)) {                                        if (item[JV.PROP_VALUE][0] !== '/') {                                            item[JV.PROP_VALUE] = '/' + item[JV.PROP_VALUE];                                        }                                        const signatureItem = { signature_name: JV.SIGNATURE_NAME_DUMMY, path: item[JV.PROP_VALUE], pic: null }; // 这里的pic数据在指标中里已经处理过了                                        signatureItem[JV.PROP_CONTROL] = item[[JV.PROP_CONTROL]];                                        signatureItem[JV.PROP_STYLE] = item[[JV.PROP_STYLE]];                                        signatureItem[JV.PROP_AREA] = item[JV.PROP_AREA];                                        signatureRst.push(signatureItem);                                        item[JV.PROP_VALUE] = '';                                    }                                }                                rst.push(item); // 不管是不是Pic,都得保留一个壳子                            }                            /*                            if (JE.isSignature(df[JV.PROP_FIELD_ID], $CURRENT_RPT)) {                                // 这里输出到signatureRst                                if (Array.isArray(signatureRst)) {                                    const map_data_field = JE.F(df[JV.PROP_FIELD_ID], $CURRENT_RPT);                                    const signatureItem = { signature_name: map_data_field[JV.PROP_NAME], path: null, pic: null };                                    signatureItem[JV.PROP_CONTROL] = df[[JV.PROP_CONTROL]];                                    signatureItem[JV.PROP_STYLE] = df[[JV.PROP_STYLE]];                                    signatureItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);                                    signatureRst.push(signatureItem);                                }                            } else if (JE.isDynamicParam(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {                                // 这里输出到signatureDateRst                                // console.log('current sign date df :');                                // console.log(df);                                if (Array.isArray(signatureDateRst)) {                                    let pID = 0;                                    if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {                                        pID = df[JV.PROP_PARAM_ID];                                    } else {                                        pID = df[JV.PROP_ID];                                    }                                    const param = JE.P(pID, $CURRENT_RPT);                                    // const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, param[JV.PROP_DFT_VALUE], true);                                    const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);                                    // console.log('Date param :');                                    // console.log(param);                                    signatureDateItem.signature_name = param[JV.PROP_NAME];                                    signatureDateItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);                                    signatureDateRst.push(signatureDateItem);                                }                            } else if (JE.isSignatureAudit(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {                                if (Array.isArray(signatureAuditRst)) {                                    let pID = 0;                                    if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {                                        pID = df[JV.PROP_PARAM_ID];                                    } else {                                        pID = df[JV.PROP_ID];                                    }                                    const param = JE.P(pID, $CURRENT_RPT);                                    const signatureAuditItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);                                    // console.log('Aidit param :');                                    // console.log(param);                                    signatureAuditItem.signature_name = param[JV.PROP_NAME];                                    signatureAuditItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);                                    signatureAuditRst.push(signatureAuditItem);                                }                            } else {                            }                            /*/                        }                    }                }            }        }        return rst;    },    setupSignatureFieldParam: function(signatureRst, signatureDateRst, signatureAuditRst, $CURRENT_RPT, band, unitFactor, df) {        let rst = false;        if (JE.isSignature(df[JV.PROP_FIELD_ID], $CURRENT_RPT)) {            // 这里输出到signatureRst            if (Array.isArray(signatureRst)) {                const map_data_field = JE.F(df[JV.PROP_FIELD_ID], $CURRENT_RPT);                const signatureItem = { signature_name: map_data_field[JV.PROP_NAME], path: null, pic: null };                signatureItem[JV.PROP_CONTROL] = df[[JV.PROP_CONTROL]];                signatureItem[JV.PROP_STYLE] = df[[JV.PROP_STYLE]];                signatureItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);                signatureRst.push(signatureItem);                rst = true;            }        } else if (JE.isDynamicParam(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {            // 这里输出到signatureDateRst            // console.log('current sign date df :');            // console.log(df);            if (Array.isArray(signatureDateRst)) {                let pID = 0;                if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {                    pID = df[JV.PROP_PARAM_ID];                } else {                    pID = df[JV.PROP_ID];                }                const param = JE.P(pID, $CURRENT_RPT);                // const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, param[JV.PROP_DFT_VALUE], true);                const signatureDateItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);                // console.log('Date param :');                // console.log(param);                signatureDateItem.signature_name = param[JV.PROP_NAME];                signatureDateItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);                signatureDateRst.push(signatureDateItem);                rst = true;            }        } else if (JE.isSignatureAudit(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {            if (Array.isArray(signatureAuditRst)) {                let pID = 0;                if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {                    pID = df[JV.PROP_PARAM_ID];                } else {                    pID = df[JV.PROP_ID];                }                const param = JE.P(pID, $CURRENT_RPT);                const signatureAuditItem = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, df[JV.PROP_DFT_VALUE], true);                // console.log('Aidit param :');                // console.log(param);                signatureAuditItem.signature_name = param[JV.PROP_NAME];                signatureAuditItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);                signatureAuditRst.push(signatureAuditItem);                rst = true;            }        }        return rst;    },    _getSegPageValue: function(orgData, segPageIdx) {        let rst = orgData;        if (typeof orgData === 'string') {            const splitStrs = orgData.split(SEG_PAGE_SPLIT_STR);            if (splitStrs.length > 1) {                if (splitStrs.length > segPageIdx) {                    rst = splitStrs[segPageIdx];                } else {                    rst = splitStrs[splitStrs.length - 1];                }            }        }        return rst;    },    outputPreviewDiscreteInfo: function(discreteArray, bands, unitFactor, pageStatus) {        const rst = [];        for (let i = 0; i < discreteArray.length; i++) {            const band = bands[discreteArray[i][JV.PROP_BAND_NAME]];            if (band && pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {                if (discreteArray[i][JV.PROP_TEXT]) {                    rst.push(JpcTextHelper.outputText(discreteArray[i][JV.PROP_TEXT], band, unitFactor, 1, 0, 1, 0, 1, 0));                }                if (discreteArray[i][JV.PROP_TEXTS]) {                    for (let j = 0; j < discreteArray[i][JV.PROP_TEXTS].length; j++) {                        rst.push(JpcTextHelper.outputText(discreteArray[i][JV.PROP_TEXTS][j], band, unitFactor, 1, 0, 1, 0, 1, 0));                    }                }                if (discreteArray[i][JV.PROP_DISCRETE_FIELDS]) {                    for (let j = 0; j < discreteArray[i][JV.PROP_DISCRETE_FIELDS].length; j++) {                        const df = discreteArray[i][JV.PROP_DISCRETE_FIELDS][j];                        let value = '';                        if (df[JV.PROP_DFT_VALUE]) {                            value = df[JV.PROP_DFT_VALUE];                        }                        const item = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, value, null);                        // position                        item[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);                        rst.push(item);                    }                }            }        }        return rst;    },    outputPreviewSumInfoOutput: function(band, unitFactor, tab) {        const rst = [];        if (tab[JV.PROP_TEXT]) {            rst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXT], band, unitFactor, 1, 0, 1, 0, 1, 0));        }        if (tab[JV.PROP_TEXTS]) {            for (let j = 0; j < tab[JV.PROP_TEXTS].length; j++) {                rst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXTS][j], band, unitFactor, 1, 0, 1, 0, 1, 0));            }        }        if (tab[JV.PROP_SUM_FIELDS]) {            for (let i = 0; i < tab[JV.PROP_SUM_FIELDS].length; i++) {                const tab_field = tab[JV.PROP_SUM_FIELDS][i];                if (!(tab_field[JV.PROP_HIDDEN])) {                    // rst.push(me.outputTabField(band, tab_field, null, -1, -1, 1, 0, 1, 0, unitFactor, true, controls, 0));                    const value = '';                    const item = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(tab_field, value, null);                    // position                    item[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_field[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);                    rst.push(item);                }            }        }        return rst;    },}module.exports = JpcDiscreteHelper;
 |