From 957c28baeed11b9499f66b9d0d7b9a5868995c7e Mon Sep 17 00:00:00 2001 From: flowerField Date: Thu, 4 Feb 2021 14:23:09 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8D=8F=E4=BD=9C?= =?UTF-8?q?=E6=92=A4=E9=80=80=E5=92=8C=E8=BF=87=E7=A8=8B=E4=B8=AD=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E7=9A=84=E6=95=B0=E6=8D=AE=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/controlHistory.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/controllers/controlHistory.js b/src/controllers/controlHistory.js index c27d68e..71bc6af 100644 --- a/src/controllers/controlHistory.js +++ b/src/controllers/controlHistory.js @@ -85,7 +85,11 @@ const controlHistory = { "dataVerification": ctr.dataVerification, "dynamicArray": ctr.dynamicArray } - jfrefreshgrid(ctr.data, ctr.range, allParam); + // jfrefreshgrid(ctr.data, ctr.range, allParam); + + /* ⚠️ 这个🌶️ dataRange表示的才是数据更新的位置 */ + jfrefreshgrid(ctr.data, ctr.dataRange, allParam); + // formula.execFunctionGroup(null, null, null, null, ctr.data);//取之前的数据 } else if (ctr.type == "pasteCut") { From 3eb11f8e4dc76a74ddb5a29dbe171f53ea821b08 Mon Sep 17 00:00:00 2001 From: flowerField Date: Thu, 4 Feb 2021 14:26:10 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8D=8F=E4=BD=9C?= =?UTF-8?q?=E9=97=AE=E9=A2=98(=E9=85=8D=E7=BD=AE=E7=AD=89)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/server.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/controllers/server.js b/src/controllers/server.js index 813fc50..5eb9fbe 100644 --- a/src/controllers/server.js +++ b/src/controllers/server.js @@ -427,9 +427,21 @@ const server = { file["config"][k] = {}; } - for(let key in value){ - file["config"][k][key] = value[key]; - } + // for(let key in value){ + // file["config"][k][key] = value[key]; + // } + + // ⚠️ 上面的处理方式会导致部分配置项被遗漏,以致协同编辑的时候多视图出现不一致的情况,调整处理的策略为直接替换配置项: + // 可能的配置项为: + // columnlen: {0: 65, 1: 186, 2: 52} + // customHeight: {0: 1, 5: 1, 6: 1} + // customWidth: {0: 1, 1: 1, 2: 1} + // merge: {2_1: {…}, 4_2: {…}, 6_2: {…}} + // rowlen: {0: 19, 5: 93, 6: 117} + if(value && (typeof value == "object")){ + file["config"][k] = value; + } + } if(index == Store.currentSheetIndex){//更新数据为当前表格数据 From b4789e5d71f26ed00ae42b0fb92977cf8441a6aa Mon Sep 17 00:00:00 2001 From: flowerField Date: Thu, 4 Feb 2021 14:34:21 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=8D=8F=E4=BD=9C=E5=92=8C0.0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/server.js | 9 ++++++++- src/global/format.js | 12 ++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/controllers/server.js b/src/controllers/server.js index 5eb9fbe..f7cd526 100644 --- a/src/controllers/server.js +++ b/src/controllers/server.js @@ -706,7 +706,14 @@ const server = { file["column"] += len; for(let i = 0; i < data.length; i++){ - data[i].splice(st_i, 0, addData[i]); + // data[i].splice(st_i, 0, addData[i]); + + // 备注:区分插入的位置(可能是左侧插入或者右侧插入) + if(direction == "lefttop"){ + data[i].splice(st_i, 0, addData[i]); + }else{ + data[i].splice(st_i + 1, 0, addData[i]); + } } } diff --git a/src/global/format.js b/src/global/format.js index a50781f..8549bc3 100644 --- a/src/global/format.js +++ b/src/global/format.js @@ -1353,8 +1353,16 @@ var make_ssf = function make_ssf(SSF) { } // var retval = ""; var retval = tempV === 0 ? "0" : ""; - for (i = 0; i !== out.length; ++i) - if (out[i] != null) retval += out[i].v; + // for (i = 0; i !== out.length; ++i) + // if (out[i] != null) retval += out[i].v; + for (i = 0; i !== out.length; ++i){ + if (out[i] != null && out[i].v.startsWith(".")){ + retval += out[i].v; + }else{ + retval = out[i].v || retval; + } + } + return retval; } SSF._eval = eval_fmt;