From a1773eaa1f070bdb69a286483181873615a47004 Mon Sep 17 00:00:00 2001 From: flowerField Date: Sat, 5 Dec 2020 22:07:36 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E9=99=90=E5=88=B6sheet=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E9=87=8D=E5=91=BD=E5=90=8D=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/sheetBar.js | 15 ++++++++++++++- src/locale/en.js | 1 + src/locale/es.js | 1 + src/locale/zh.js | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/controllers/sheetBar.js b/src/controllers/sheetBar.js index 231b1e9..9aba9a0 100644 --- a/src/controllers/sheetBar.js +++ b/src/controllers/sheetBar.js @@ -20,7 +20,7 @@ import luckysheetConfigsetting from './luckysheetConfigsetting'; //表格底部名称栏区域 相关事件(增、删、改、隐藏显示、颜色等等) -let isInitialSheetConfig = false, luckysheetcurrentSheetitem = null, jfdbclicklagTimeout = null; +let isInitialSheetConfig = false, luckysheetcurrentSheetitem = null, jfdbclicklagTimeout = null,oldSheetFileName = "";; function showsheetconfigmenu() { if (!isInitialSheetConfig) { isInitialSheetConfig = true; @@ -229,6 +229,18 @@ export function initialSheetBar(){ if(Store.allowEdit===false){ return; } + + if(0 === $(this).text().length){ + + alert(locale_sheetconfig.sheetNamecannotIsEmptyError); + setTimeout(()=>{ + $(this).text(oldSheetFileName); + luckysheetsheetnameeditor($(this)); + $(this).focus(); + }, 1); + return; + } + let $t = $(this); let txt = $t.text(), oldtxt = $t.data("oldtxt"); var reg1 = new RegExp("[\\[\\]:\\?*\/'\"]"); @@ -279,6 +291,7 @@ export function initialSheetBar(){ let $t = $(this); if (kcode == keycode.ENTER) { let index = getSheetIndex(Store.currentSheetIndex); + oldSheetFileName = Store.luckysheetfile[index].name || oldSheetFileName; Store.luckysheetfile[index].name = $t.text(); $t.attr("contenteditable", "false"); } diff --git a/src/locale/en.js b/src/locale/en.js index 67589dd..9ccfc13 100644 --- a/src/locale/en.js +++ b/src/locale/en.js @@ -9512,6 +9512,7 @@ export default { noHide:"Can't hide, at least keep one sheet tag", chartEditNoOpt:"This operation is not allowed in chart editing mode!", sheetNameSpecCharError:"The name cannot contain:[ ] : \ ? * / ' \"", + sheetNamecannotIsEmptyError:"Sheet name cannot be empty" }, conditionformat: { conditionformat_greaterThan: 'Conditionformat-GreaterThan', diff --git a/src/locale/es.js b/src/locale/es.js index ce51b35..b08e20c 100644 --- a/src/locale/es.js +++ b/src/locale/es.js @@ -9510,6 +9510,7 @@ export default { noHide:"No se puede ocultar, al menos conserva una etiqueta de hoja", chartEditNoOpt:"¡Esta operación no está permitida en el modo de edición de gráficos!", sheetNameSpecCharError:"El nombre no puede contener:[ ] : \ ? * / ' \"", + sheetNamecannotIsEmptyError:"El nombre de la hoja no puede estar vacío" }, conditionformat: { conditionformat_greaterThan: 'Conditionformat-GreaterThan', diff --git a/src/locale/zh.js b/src/locale/zh.js index dd7b883..cf3a2b7 100644 --- a/src/locale/zh.js +++ b/src/locale/zh.js @@ -9755,6 +9755,7 @@ export default { noHide:"不能隐藏, 至少保留一个sheet标签", chartEditNoOpt:"图表编辑模式下不允许该操作!", sheetNameSpecCharError:"名称不能包含:[ ] : \ ? * / ' \"", + sheetNamecannotIsEmptyError:"名称不能为空" }, conditionformat: { conditionformat_greaterThan: '条件格式——大于', From 255ab84800fd5f7cc1701f7236f574b042b2ba0d Mon Sep 17 00:00:00 2001 From: flowerField Date: Sat, 5 Dec 2020 23:32:41 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=A1=B9=EF=BC=9A=E9=99=90=E5=88=B6=E5=B7=A5=E4=BD=9C=E8=A1=A8?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=9C=80=E5=A4=A7=E9=95=BF=E5=BA=A6=E5=B9=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/guide/config.md | 15 +++++++++++++++ docs/zh/guide/config.md | 16 ++++++++++++++++ src/config.js | 3 ++- src/controllers/sheetBar.js | 33 +++++++++++++++++++++++++++++++++ src/core.js | 2 ++ src/css/luckysheet-core.css | 18 ++++++++++++++++-- 6 files changed, 84 insertions(+), 3 deletions(-) diff --git a/docs/guide/config.md b/docs/guide/config.md index b66ace7..56e871f 100644 --- a/docs/guide/config.md +++ b/docs/guide/config.md @@ -508,6 +508,21 @@ Note that you also need to configure `loadUrl` and `loadSheetUrl` to take effect ------------ +### limitSheetNameLength +- Type: Boolean +- Default: true +- Usage:Is the length of the sheet name limited in scenarios such as sheet renaming + +------------ + +### defaultSheetNameMaxLength +- Type:Number +- Default:31 +- Usage:Default maximum allowed sheet name length + +------------ + + ## Hook Function (TODO) When the hook function is used in secondary development, hooks will be implanted in each common mouse or keyboard operation, and the function passed in by the developer will be called to expand the function of Luckysheet. diff --git a/docs/zh/guide/config.md b/docs/zh/guide/config.md index 460bdd1..bdc59ee 100644 --- a/docs/zh/guide/config.md +++ b/docs/zh/guide/config.md @@ -74,6 +74,8 @@ Luckysheet开放了更细致的自定义配置选项,分别有 - 列标题区域的高度 [columnHeaderHeight](#columnHeaderHeight) - 是否显示公式栏 [sheetFormulaBar](#sheetFormulaBar) - 初始化默认字体大小 [defaultFontSize](#defaultFontSize) +- 是否限制工作表名长度 [limitSheetNameLength](#limitSheetNameLength) +- 默认允许工作表名的最大长度 [defaultSheetNameMaxLength](#defaultSheetNameMaxLength) ### container - 类型:String @@ -599,6 +601,20 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ +### limitSheetNameLength +- 类型:Boolean +- 默认值:true +- 作用:工作表重命名等场景下是否限制工作表名称的长度 + +------------ + +### defaultSheetNameMaxLength +- 类型:Number +- 默认值:31 +- 作用:默认允许的工作表名最大长度 + +------------ + ## 钩子函数 钩子函数应用于二次开发时,会在各个常用鼠标或者键盘操作时植入钩子,调用开发者传入的函数,起到扩展Luckysheet功能的作用。 diff --git a/src/config.js b/src/config.js index e7a69b0..7b53de0 100644 --- a/src/config.js +++ b/src/config.js @@ -57,7 +57,8 @@ export default { defaultColWidth:73, defaultRowHeight:19, defaultFontSize:10, - + limitSheetNameLength:true, //是否限制工作表名的长度 + defaultSheetNameMaxLength:31, //默认工作表名称的最大长度 sheetFormulaBar:true, //是否显示公式栏 showtoolbarConfig:{}, //自定义工具栏 showsheetbarConfig:{}, //自定义底部sheet页 diff --git a/src/controllers/sheetBar.js b/src/controllers/sheetBar.js index 9aba9a0..10673a8 100644 --- a/src/controllers/sheetBar.js +++ b/src/controllers/sheetBar.js @@ -225,6 +225,39 @@ export function initialSheetBar(){ luckysheetsheetnameeditor($(this)); }); + let compositionFlag = true; + $("#luckysheet-sheet-area").on("compositionstart", "span.luckysheet-sheets-item-name", ()=> compositionFlag = false); + $("#luckysheet-sheet-area").on("compositionend", "span.luckysheet-sheets-item-name", ()=> compositionFlag = true); + $("#luckysheet-sheet-area").on("input", "span.luckysheet-sheets-item-name", function () { + if(Store.allowEdit===false){ + return; + } + + if(Store.limitSheetNameLength === false){ + return + } + + let maxLength = Store.defaultSheetNameMaxLength; + if(maxLength === 0){ + return + } + + setTimeout( ()=> { + if (compositionFlag) { + + if ($(this).text().length >= maxLength) { /* 检查:值是否越界 */ + setTimeout(() => { + $(this).text($(this).text().substring(0, maxLength)); + + let range = window.getSelection(); + range.selectAllChildren(this); + range.collapseToEnd(); + }, 0); + } + } + }, 0); + }); + $("#luckysheet-sheet-area").on("blur", "span.luckysheet-sheets-item-name", function (e) { if(Store.allowEdit===false){ return; diff --git a/src/core.js b/src/core.js index ebfa392..9ec44a4 100644 --- a/src/core.js +++ b/src/core.js @@ -74,6 +74,8 @@ luckysheet.create = function (setting) { Store.fullscreenmode = extendsetting.fullscreenmode; Store.lang = extendsetting.lang; //language Store.allowEdit = extendsetting.allowEdit; + Store.limitSheetNameLength = extendsetting.limitSheetNameLength; + Store.defaultSheetNameMaxLength = extendsetting.defaultSheetNameMaxLength; Store.fontList = extendsetting.fontList; server.gridKey = extendsetting.gridKey; server.loadUrl = extendsetting.loadUrl; diff --git a/src/css/luckysheet-core.css b/src/css/luckysheet-core.css index 7877f3e..5c7ad45 100644 --- a/src/css/luckysheet-core.css +++ b/src/css/luckysheet-core.css @@ -2329,8 +2329,14 @@ body:not(.ewa-ipad) .luckysheet-rows-h-cell-sel:hover { padding-right: 10px; padding-left: 12px; } - - +#luckysheet-sheet-list .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { + padding-right: 0px; + max-width: 430px; + min-width: 100px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} .luckysheet-filter-menu div.luckysheet-cols-menuitem { padding-top: 0px; padding-bottom: 0px; @@ -2978,6 +2984,14 @@ fieldset[disabled] .btn-danger.focus { #luckysheet-sheet-list .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { padding-left: 5px; } +/* +#luckysheet-sheet-list .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { + max-width: 420px; + min-width: 190px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} */ #luckysheet-sheet-list .icon { From 5ed073bb10fb391eee11e7b03e9dec18d1d77f70 Mon Sep 17 00:00:00 2001 From: flowerField Date: Sat, 5 Dec 2020 22:07:36 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E9=99=90=E5=88=B6sheet=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E9=87=8D=E5=91=BD=E5=90=8D=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/sheetBar.js | 15 ++++++++++++++- src/locale/en.js | 1 + src/locale/es.js | 1 + src/locale/zh.js | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/controllers/sheetBar.js b/src/controllers/sheetBar.js index 231b1e9..9aba9a0 100644 --- a/src/controllers/sheetBar.js +++ b/src/controllers/sheetBar.js @@ -20,7 +20,7 @@ import luckysheetConfigsetting from './luckysheetConfigsetting'; //表格底部名称栏区域 相关事件(增、删、改、隐藏显示、颜色等等) -let isInitialSheetConfig = false, luckysheetcurrentSheetitem = null, jfdbclicklagTimeout = null; +let isInitialSheetConfig = false, luckysheetcurrentSheetitem = null, jfdbclicklagTimeout = null,oldSheetFileName = "";; function showsheetconfigmenu() { if (!isInitialSheetConfig) { isInitialSheetConfig = true; @@ -229,6 +229,18 @@ export function initialSheetBar(){ if(Store.allowEdit===false){ return; } + + if(0 === $(this).text().length){ + + alert(locale_sheetconfig.sheetNamecannotIsEmptyError); + setTimeout(()=>{ + $(this).text(oldSheetFileName); + luckysheetsheetnameeditor($(this)); + $(this).focus(); + }, 1); + return; + } + let $t = $(this); let txt = $t.text(), oldtxt = $t.data("oldtxt"); var reg1 = new RegExp("[\\[\\]:\\?*\/'\"]"); @@ -279,6 +291,7 @@ export function initialSheetBar(){ let $t = $(this); if (kcode == keycode.ENTER) { let index = getSheetIndex(Store.currentSheetIndex); + oldSheetFileName = Store.luckysheetfile[index].name || oldSheetFileName; Store.luckysheetfile[index].name = $t.text(); $t.attr("contenteditable", "false"); } diff --git a/src/locale/en.js b/src/locale/en.js index 67589dd..9ccfc13 100644 --- a/src/locale/en.js +++ b/src/locale/en.js @@ -9512,6 +9512,7 @@ export default { noHide:"Can't hide, at least keep one sheet tag", chartEditNoOpt:"This operation is not allowed in chart editing mode!", sheetNameSpecCharError:"The name cannot contain:[ ] : \ ? * / ' \"", + sheetNamecannotIsEmptyError:"Sheet name cannot be empty" }, conditionformat: { conditionformat_greaterThan: 'Conditionformat-GreaterThan', diff --git a/src/locale/es.js b/src/locale/es.js index ce51b35..b08e20c 100644 --- a/src/locale/es.js +++ b/src/locale/es.js @@ -9510,6 +9510,7 @@ export default { noHide:"No se puede ocultar, al menos conserva una etiqueta de hoja", chartEditNoOpt:"¡Esta operación no está permitida en el modo de edición de gráficos!", sheetNameSpecCharError:"El nombre no puede contener:[ ] : \ ? * / ' \"", + sheetNamecannotIsEmptyError:"El nombre de la hoja no puede estar vacío" }, conditionformat: { conditionformat_greaterThan: 'Conditionformat-GreaterThan', diff --git a/src/locale/zh.js b/src/locale/zh.js index dd7b883..cf3a2b7 100644 --- a/src/locale/zh.js +++ b/src/locale/zh.js @@ -9755,6 +9755,7 @@ export default { noHide:"不能隐藏, 至少保留一个sheet标签", chartEditNoOpt:"图表编辑模式下不允许该操作!", sheetNameSpecCharError:"名称不能包含:[ ] : \ ? * / ' \"", + sheetNamecannotIsEmptyError:"名称不能为空" }, conditionformat: { conditionformat_greaterThan: '条件格式——大于', From 9b80bc925d9e931fa0584b4a7fa33a7b632b8b6f Mon Sep 17 00:00:00 2001 From: flowerField Date: Sat, 5 Dec 2020 23:32:41 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=A1=B9=EF=BC=9A=E9=99=90=E5=88=B6=E5=B7=A5=E4=BD=9C=E8=A1=A8?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=9C=80=E5=A4=A7=E9=95=BF=E5=BA=A6=E5=B9=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/guide/config.md | 15 +++++++++++++++ docs/zh/guide/config.md | 16 ++++++++++++++++ src/config.js | 3 ++- src/controllers/sheetBar.js | 33 +++++++++++++++++++++++++++++++++ src/core.js | 2 ++ src/css/luckysheet-core.css | 18 ++++++++++++++++-- 6 files changed, 84 insertions(+), 3 deletions(-) diff --git a/docs/guide/config.md b/docs/guide/config.md index b66ace7..56e871f 100644 --- a/docs/guide/config.md +++ b/docs/guide/config.md @@ -508,6 +508,21 @@ Note that you also need to configure `loadUrl` and `loadSheetUrl` to take effect ------------ +### limitSheetNameLength +- Type: Boolean +- Default: true +- Usage:Is the length of the sheet name limited in scenarios such as sheet renaming + +------------ + +### defaultSheetNameMaxLength +- Type:Number +- Default:31 +- Usage:Default maximum allowed sheet name length + +------------ + + ## Hook Function (TODO) When the hook function is used in secondary development, hooks will be implanted in each common mouse or keyboard operation, and the function passed in by the developer will be called to expand the function of Luckysheet. diff --git a/docs/zh/guide/config.md b/docs/zh/guide/config.md index 460bdd1..bdc59ee 100644 --- a/docs/zh/guide/config.md +++ b/docs/zh/guide/config.md @@ -74,6 +74,8 @@ Luckysheet开放了更细致的自定义配置选项,分别有 - 列标题区域的高度 [columnHeaderHeight](#columnHeaderHeight) - 是否显示公式栏 [sheetFormulaBar](#sheetFormulaBar) - 初始化默认字体大小 [defaultFontSize](#defaultFontSize) +- 是否限制工作表名长度 [limitSheetNameLength](#limitSheetNameLength) +- 默认允许工作表名的最大长度 [defaultSheetNameMaxLength](#defaultSheetNameMaxLength) ### container - 类型:String @@ -599,6 +601,20 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ +### limitSheetNameLength +- 类型:Boolean +- 默认值:true +- 作用:工作表重命名等场景下是否限制工作表名称的长度 + +------------ + +### defaultSheetNameMaxLength +- 类型:Number +- 默认值:31 +- 作用:默认允许的工作表名最大长度 + +------------ + ## 钩子函数 钩子函数应用于二次开发时,会在各个常用鼠标或者键盘操作时植入钩子,调用开发者传入的函数,起到扩展Luckysheet功能的作用。 diff --git a/src/config.js b/src/config.js index e7a69b0..7b53de0 100644 --- a/src/config.js +++ b/src/config.js @@ -57,7 +57,8 @@ export default { defaultColWidth:73, defaultRowHeight:19, defaultFontSize:10, - + limitSheetNameLength:true, //是否限制工作表名的长度 + defaultSheetNameMaxLength:31, //默认工作表名称的最大长度 sheetFormulaBar:true, //是否显示公式栏 showtoolbarConfig:{}, //自定义工具栏 showsheetbarConfig:{}, //自定义底部sheet页 diff --git a/src/controllers/sheetBar.js b/src/controllers/sheetBar.js index 9aba9a0..10673a8 100644 --- a/src/controllers/sheetBar.js +++ b/src/controllers/sheetBar.js @@ -225,6 +225,39 @@ export function initialSheetBar(){ luckysheetsheetnameeditor($(this)); }); + let compositionFlag = true; + $("#luckysheet-sheet-area").on("compositionstart", "span.luckysheet-sheets-item-name", ()=> compositionFlag = false); + $("#luckysheet-sheet-area").on("compositionend", "span.luckysheet-sheets-item-name", ()=> compositionFlag = true); + $("#luckysheet-sheet-area").on("input", "span.luckysheet-sheets-item-name", function () { + if(Store.allowEdit===false){ + return; + } + + if(Store.limitSheetNameLength === false){ + return + } + + let maxLength = Store.defaultSheetNameMaxLength; + if(maxLength === 0){ + return + } + + setTimeout( ()=> { + if (compositionFlag) { + + if ($(this).text().length >= maxLength) { /* 检查:值是否越界 */ + setTimeout(() => { + $(this).text($(this).text().substring(0, maxLength)); + + let range = window.getSelection(); + range.selectAllChildren(this); + range.collapseToEnd(); + }, 0); + } + } + }, 0); + }); + $("#luckysheet-sheet-area").on("blur", "span.luckysheet-sheets-item-name", function (e) { if(Store.allowEdit===false){ return; diff --git a/src/core.js b/src/core.js index ebfa392..9ec44a4 100644 --- a/src/core.js +++ b/src/core.js @@ -74,6 +74,8 @@ luckysheet.create = function (setting) { Store.fullscreenmode = extendsetting.fullscreenmode; Store.lang = extendsetting.lang; //language Store.allowEdit = extendsetting.allowEdit; + Store.limitSheetNameLength = extendsetting.limitSheetNameLength; + Store.defaultSheetNameMaxLength = extendsetting.defaultSheetNameMaxLength; Store.fontList = extendsetting.fontList; server.gridKey = extendsetting.gridKey; server.loadUrl = extendsetting.loadUrl; diff --git a/src/css/luckysheet-core.css b/src/css/luckysheet-core.css index 7877f3e..5c7ad45 100644 --- a/src/css/luckysheet-core.css +++ b/src/css/luckysheet-core.css @@ -2329,8 +2329,14 @@ body:not(.ewa-ipad) .luckysheet-rows-h-cell-sel:hover { padding-right: 10px; padding-left: 12px; } - - +#luckysheet-sheet-list .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { + padding-right: 0px; + max-width: 430px; + min-width: 100px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} .luckysheet-filter-menu div.luckysheet-cols-menuitem { padding-top: 0px; padding-bottom: 0px; @@ -2978,6 +2984,14 @@ fieldset[disabled] .btn-danger.focus { #luckysheet-sheet-list .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { padding-left: 5px; } +/* +#luckysheet-sheet-list .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { + max-width: 420px; + min-width: 190px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} */ #luckysheet-sheet-list .icon { From bb397fcb474e146be20a6c67f5d105dc45ca4a9f Mon Sep 17 00:00:00 2001 From: flowerField Date: Mon, 7 Dec 2020 09:24:02 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E9=83=A8=E5=88=86eval?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=A4=84=E7=90=86[BABEL]=20Note?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gulpfile.js | 1 + src/controllers/server.js | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 77e640c..d99bc18 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -41,6 +41,7 @@ const uglifyOptions = { // babel config const babelConfig = { + compact:false, babelHelpers: 'bundled', exclude: 'node_modules/**', // Only compile our source code plugins: [ diff --git a/src/controllers/server.js b/src/controllers/server.js index d66aea8..bc5c9c1 100644 --- a/src/controllers/server.js +++ b/src/controllers/server.js @@ -169,7 +169,7 @@ const server = { //客户端接收服务端数据时触发 _this.websocket.onmessage = function(result){ Store.result = result - let data = eval('(' + result.data + ')'); + let data = new Function("return " + result.data)(); console.info(data); let type = data.type; let {message,id} = data; @@ -522,7 +522,7 @@ const server = { let op = item.op, pos = item.pos; if(getObjType(value) != "object"){ - value = eval('('+ value +')'); + value = new Function("return " + value)(); } let r = value.r, c = value.c; @@ -995,7 +995,7 @@ const server = { // console.log("request"); if(_this.updateUrl != ""){ $.post(_this.updateUrl, { compress: iscommpress, gridKey: _this.gridKey, data: params }, function (data) { - let re = eval('('+ data +')') + let re = new Function("return " + data)(); if(re.status){ $("#luckysheet_info_detail_update").html("最近存档时间:"+ dayjs().format("M-D H:m:s")); $("#luckysheet_info_detail_save").html("同步成功"); @@ -1055,7 +1055,7 @@ const server = { if(_this.updateImageUrl != ""){ // $.post(_this.updateImageUrl, { compress: true, gridKey: _this.gridKey, data:data1 }, function (data) { $.post(_this.updateImageUrl, { compress: false, gridKey: _this.gridKey, data:data1 }, function (data) { - let re = eval('('+ data +')') + let re = new Function("return " + data)(); if(re.status){ imageRequestLast = dayjs(); }