对指定单元格进行设置为可编辑,在开启非编辑模式后,只有指定的单元格才可以进行编辑,其余单元格全部无法编辑。
1.修改系统,在对应的前端页面代码中对右键菜单新增功能:
{
title: '设置可编辑',
onClick: function (clickEvent, event, params) {
window.luckysheet.setCellEditable(params.rowIndex, params.columnIndex)
}
},
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)
}
/**
* 开启工作表非编辑模式(指定单元格可编辑)
*/
export function setWorkBookEditMode() {
luckysheetConfigsetting.editMode = true
}
3.找到src/global/validate.js,找到isEditMode()方法并进行修改:
//是否为非编辑模式
function isEditMode() {
if (luckysheetConfigsetting.editMode || !Store.allowEdit) {
return true;
} else {
return false;
}
}
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;
}
}
5.在项目对应的前端页面代码中调用方法开启非编辑模式:
window.luckysheet.setWorkBookEditMode()