|
@@ -237,6 +237,14 @@ const SpreadJsObj = {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ selChangedRefreshBackColor: function (sheet) {
|
|
|
+ sheet.bind(spreadNS.Events.SelectionChanged, function (e, info) {
|
|
|
+ const rows = [];
|
|
|
+ if (info.oldSelections && info.oldSelections[0]) rows.push(info.oldSelections[0].row);
|
|
|
+ if (info.newSelections && info.newSelections[0]) rows.push(info.newSelections[0].row);
|
|
|
+ if (rows.length > 0) SpreadJsObj.reloadRowsBackColor(info.sheet, rows);
|
|
|
+ });
|
|
|
+ },
|
|
|
/**
|
|
|
* 获取写入sheet的数据序列
|
|
|
* data:sheet.zh_data, tree: sheet.zh_tree.nodes
|
|
@@ -354,6 +362,9 @@ const SpreadJsObj = {
|
|
|
sheet.extendCellType = {};
|
|
|
sheet.borderLine = new spreadNS.LineBorder('#cccccc', spreadNS.LineStyle.thin);
|
|
|
sheet.getRange(0, 0, sheet.getRowCount(), sheet.getColumnCount()).locked(setting.readOnly).setBorder(sheet.borderLine, {all: true});
|
|
|
+ if (setting.selectedBackColor) {
|
|
|
+ SpreadJsObj.selChangedRefreshBackColor(sheet);
|
|
|
+ }
|
|
|
this.endMassOperation(sheet);
|
|
|
},
|
|
|
reLoadSheetHeader: function (sheet) {
|
|
@@ -363,6 +374,21 @@ const SpreadJsObj = {
|
|
|
this.endMassOperation(sheet);
|
|
|
}
|
|
|
},
|
|
|
+ _getBackColor: function (sheet, data, row, col) {
|
|
|
+ let backColor = sheet.getDefaultStyle().backColor;
|
|
|
+ let sels = sheet.getSelections();
|
|
|
+ if (sheet.zh_setting.selectedBackColor && sels && sels[0].row === row ) {
|
|
|
+ return sheet.zh_setting.selectedBackColor;
|
|
|
+ } else {
|
|
|
+ if (sheet.zh_setting.tree.getColor && Object.prototype.toString.apply(sheet.zh_setting.tree.getColor) === "[object Function]") {
|
|
|
+ backColor = sheet.zh_setting.tree.getColor(sheet, data, row, col, backColor);
|
|
|
+ }
|
|
|
+ if (sheet.zh_setting.getColor && Object.prototype.toString.apply(sheet.zh_setting.getColor) === "[object Function]") {
|
|
|
+ backColor = sheet.zh_setting.getColor(sheet, data, row, col, backColor);
|
|
|
+ }
|
|
|
+ return backColor;
|
|
|
+ }
|
|
|
+ },
|
|
|
_loadRowData: function (sheet, data, row) {
|
|
|
// 单元格重新写入数据
|
|
|
if (!data) { return }
|
|
@@ -403,14 +429,7 @@ const SpreadJsObj = {
|
|
|
cell.formatter(SpreadJsObj.Formatter.getNumberFormatter('0.######'));
|
|
|
}
|
|
|
|
|
|
- let backColor = sheet.getDefaultStyle().backColor;
|
|
|
- if (sheet.zh_setting.tree.getColor && Object.prototype.toString.apply(sheet.zh_setting.tree.getColor) === "[object Function]") {
|
|
|
- backColor = sheet.zh_setting.tree.getColor(sheet, data, row, col, backColor);
|
|
|
- }
|
|
|
- if (sheet.zh_setting.getColor && Object.prototype.toString.apply(sheet.zh_setting.getColor) === "[object Function]") {
|
|
|
- backColor = sheet.zh_setting.getColor(sheet, data, row, col, backColor);
|
|
|
- }
|
|
|
- cell.backColor(backColor);
|
|
|
+ cell.backColor(SpreadJsObj._getBackColor(sheet, data, row, col));
|
|
|
|
|
|
cell.setBorder(sheet.borderLine, {all: true});
|
|
|
});
|
|
@@ -620,14 +639,7 @@ const SpreadJsObj = {
|
|
|
if (row < 0) { continue; }
|
|
|
const data = sortData[row];
|
|
|
for (const [iCol, col] of sheet.zh_setting.cols.entries()) {
|
|
|
- let backColor = sheet.getDefaultStyle().backColor;
|
|
|
- if (sheet.zh_setting.tree.getColor && Object.prototype.toString.apply(sheet.zh_setting.tree.getColor) === "[object Function]") {
|
|
|
- backColor = sheet.zh_setting.tree.getColor(sheet, data, row, col, backColor);
|
|
|
- }
|
|
|
- if (sheet.zh_setting.getColor && Object.prototype.toString.apply(sheet.zh_setting.getColor) === "[object Function]") {
|
|
|
- backColor = sheet.zh_setting.getColor(sheet, data, row, col, backColor);
|
|
|
- }
|
|
|
- sheet.getCell(row, iCol).backColor(backColor);
|
|
|
+ sheet.getCell(row, iCol).backColor(SpreadJsObj._getBackColor(sheet, data, row, col));
|
|
|
}
|
|
|
};
|
|
|
this.endMassOperation(sheet);
|