• luckysheet的使用——13.开启表格非编辑模式(指定单元格可编辑,除此以外其他单元格全部不可编辑)


    对指定单元格进行设置为可编辑,在开启非编辑模式后,只有指定的单元格才可以进行编辑,其余单元格全部无法编辑。
    1.修改系统,在对应的前端页面代码中对右键菜单新增功能:

    {
         title: '设置可编辑',
         onClick: function (clickEvent, event, params) {
         window.luckysheet.setCellEditable(params.rowIndex, params.columnIndex)
       }
    },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.在luckysheet源码中,找到src/global/api.js,在其中新增方法:

    /**
     * 设置单元格可编辑
     * @param r
     * @param c
     */
    export function setCellEditable(r, c) {
        //获取单元格的值
        let cellValue = {
            ct: {
                "fa": "General",
                "t": "g"
            },
            m: '',
            v: '',
            expand: 'allowEdit',
        }
        setCellValue(r, c, cellValue)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    /**
     * 开启工作表非编辑模式(指定单元格可编辑)
     */
    export function setWorkBookEditMode() {
        luckysheetConfigsetting.editMode = true
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.找到src/global/validate.js,找到isEditMode()方法并进行修改:

    //是否为非编辑模式
    function isEditMode() {
        if (luckysheetConfigsetting.editMode || !Store.allowEdit) {
            return true;
        } else {
            return false;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.找到src/controllers/updateCell.js,找到luckysheetupdateCell()方法并进行修改:

    	//非编辑模式下禁用单元格编辑
        if (isEditMode()) {
            let result = true
            //判断该单元格是否在非编辑模式下可编辑
            let targetSheetData = Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].data
            let cellValue = targetSheetData[row_index1][col_index1]
            if (cellValue != null) {
                let expand = cellValue.expand
                if (expand != null) {
                    if (expand == 'allowEdit') {
                        result = false
                    }
                }
            }
    
    
            if (result) {
                return;
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    5.在项目对应的前端页面代码中调用方法开启非编辑模式:

    window.luckysheet.setWorkBookEditMode()
    
    • 1
  • 相关阅读:
    HBase 知识手册
    CentOS基Docker容器时区配置解决方案
    Linux程序的地址空间
    基于maven+ssm 框架(SpringMVC、Spring、MyBatis)的图书管理系统
    手撕JavaScript面试题
    简单学习LVM、LVM的实践、通俗易懂的LVM
    【LeetCode动态规划#08】完全背包问题实战与分析(零钱兑换II--求组合、组合总和IV--求排列)
    VMware虚拟机+Centos7 配置静态,动态IP
    使用Qt轻量的QTextBrowser为taskBus SDR显示丰富的图文帮助
    js学习笔记
  • 原文地址:https://blog.csdn.net/a519525531/article/details/134272227