rhchInit.js 3.77 KB
import Store from '../store';
import { computeRowlenByContent,computeColWidthByContent } from './getRowlen';
import luckysheetConfigsetting from '../controllers/luckysheetConfigsetting';

export default function rhchInit(rowheight, colwidth) {
    zoomSetting();//Zoom sheet on first load
    //行高
    if(rowheight != null){
        Store.visibledatarow = [];
        Store.rh_height = 0;

        for (let r = 0; r < rowheight; r++) {
            let rowlen = Store.defaultrowlen;

            if (Store.config["rowlen"] != null && Store.config["rowlen"][r] != null) {
                rowlen = Store.config["rowlen"][r];
            }

            if (Store.config["rowhidden"] != null && Store.config["rowhidden"][r] != null) {
                Store.visibledatarow.push(Store.rh_height);
                continue;
            }

            // 自动行高计算
            if (rowlen === 'auto') {
                rowlen = computeRowlenByContent(Store.flowdata, r);
            }
            Store.rh_height += Math.round((rowlen + 1) * Store.zoomRatio);

            Store.visibledatarow.push(Store.rh_height); //行的临时长度分布
        }

        // 如果增加行和回到顶部按钮隐藏,则减少底部空白区域,但是预留足够空间给单元格下拉按钮
        if (!luckysheetConfigsetting.enableAddRow && !luckysheetConfigsetting.enableAddBackTop) {
            Store.rh_height += 29;
        } else {
            Store.rh_height += 80;  //最底部增加空白
        }

    }

    //列宽
    if(colwidth != null){
        Store.visibledatacolumn = [];
        Store.ch_width = 0;

        let maxColumnlen = 120;

        for (let c = 0; c < colwidth; c++) {
            let firstcolumnlen = Store.defaultcollen;

            if (Store.config["columnlen"] != null && Store.config["columnlen"][c] != null) {
                firstcolumnlen = Store.config["columnlen"][c];
            }
            else {
                if (Store.flowdata[0] != null && Store.flowdata[0][c] != null) {
                    if (firstcolumnlen > 300) {
                        firstcolumnlen = 300;
                    }
                    else if (firstcolumnlen < Store.defaultcollen) {
                        firstcolumnlen = Store.defaultcollen;
                    }

                    if (firstcolumnlen != Store.defaultcollen) {
                        if (Store.config["columnlen"] == null) {
                            Store.config["columnlen"] = {};
                        }

                        Store.config["columnlen"][c] = firstcolumnlen;
                    }
                }
            }

            if(Store.config["colhidden"] != null && Store.config["colhidden"][c] != null){
                Store.visibledatacolumn.push(Store.ch_width);
                continue;
            }

            // 自动行高计算
            if (firstcolumnlen === 'auto') {
                firstcolumnlen = computeColWidthByContent(Store.flowdata, c, rowheight);
            }
            Store.ch_width += Math.round((firstcolumnlen + 1)*Store.zoomRatio);

            Store.visibledatacolumn.push(Store.ch_width);//列的临时长度分布

            // if(maxColumnlen < firstcolumnlen + 1){
            //     maxColumnlen = firstcolumnlen + 1;
            // }
        }

        // Store.ch_width += 120;
        Store.ch_width += maxColumnlen;
    }
}


export function zoomSetting(){
    //zoom
    Store.rowHeaderWidth = luckysheetConfigsetting.rowHeaderWidth * Store.zoomRatio;
    Store.columnHeaderHeight = luckysheetConfigsetting.columnHeaderHeight *Store.zoomRatio;
    $("#luckysheet-rows-h").width((Store.rowHeaderWidth-1.5));
    $("#luckysheet-cols-h-c").height((Store.columnHeaderHeight-1.5));
    $("#luckysheet-left-top").css({width:Store.rowHeaderWidth-1.5, height:Store.columnHeaderHeight-1.5});
}