|
@@ -142,15 +142,33 @@ class LuckySheet extends React.Component {
|
|
|
getSheetJson() {
|
|
|
let data = JSON.parse(JSON.stringify(this.luckysheet.toJson()));
|
|
|
data.data.forEach(sheet => {
|
|
|
+ let allCell = {},
|
|
|
+ unknowCid = [];
|
|
|
+ // 将cell以cid为界分别存储
|
|
|
(sheet.celldata || []).forEach(cell => {
|
|
|
- // 添加cid
|
|
|
- if (!cell.v.cid) cell.v.cid = this.getUUID();
|
|
|
+ if (!cell.v.cid) {
|
|
|
+ unknowCid.push(cell);
|
|
|
+ } else {
|
|
|
+ allCell[cell.v.cid] = cell;
|
|
|
+ }
|
|
|
// 清除比对样式
|
|
|
if (cell.v.bg == DIFF_COLOR || cell.v.bg == ADD_COLOR) {
|
|
|
delete cell.v.bg;
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+ unknowCid.forEach(cell => {
|
|
|
+ // 根据坐标生成唯一key,重复则增加后缀直至不重复
|
|
|
+ let key = `${cell.r}-${cell.c}`;
|
|
|
+ while (allCell[key]) {
|
|
|
+ key += '|c';
|
|
|
+ }
|
|
|
+ cell.v.cid = key;
|
|
|
+ allCell[key] = cell;
|
|
|
+ });
|
|
|
+ sheet.celldata = Object.values(allCell);
|
|
|
});
|
|
|
+
|
|
|
return data;
|
|
|
}
|
|
|
|