From 9f1c7d3f39b302c8ee565e0d40d750f3fea3fee3 Mon Sep 17 00:00:00 2001 From: flowerField Date: Thu, 28 Jan 2021 11:03:06 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/controlHistory.js | 6 ------ src/controllers/select.js | 4 ++++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/controllers/controlHistory.js b/src/controllers/controlHistory.js index d7b12b2..c27d68e 100644 --- a/src/controllers/controlHistory.js +++ b/src/controllers/controlHistory.js @@ -25,7 +25,6 @@ import { getSheetIndex } from '../methods/get'; import Store from '../store'; import { selectHightlightShow } from './select'; import method from '../global/method'; -import {refreshMenuButtonFocus} from "../global/api"; function formulaHistoryHanddler(ctr, type="redo"){ if(ctr==null){ @@ -429,9 +428,6 @@ const controlHistory = { } Store.clearjfundo = true; - /* 刷新当前状态栏 */ - refreshMenuButtonFocus(); - // 撤销的时候curdata 跟 data 数据要调换一下 let newCtr = {...ctr, ...{data: ctr.curdata, curdata: ctr.data}} // 钩子函数 @@ -748,8 +744,6 @@ const controlHistory = { } Store.clearjfundo = true; - /* 刷新当前状态栏 */ - refreshMenuButtonFocus(); } }; diff --git a/src/controllers/select.js b/src/controllers/select.js index 538e652..60690a8 100644 --- a/src/controllers/select.js +++ b/src/controllers/select.js @@ -8,6 +8,7 @@ import { getSheetIndex, getRangetxt } from '../methods/get'; import Store from '../store'; import method from '../global/method'; import locale from '../locale/locale'; +import { refreshMenuButtonFocus } from "../global/api"; //公式函数 选区实体框 function seletedHighlistByindex(id, r1, r2, c1, c2) { @@ -180,6 +181,9 @@ function selectHightlightShow(isRestore = false) { if (Store.luckysheet_select_save.length == 1 && Store.luckysheet_select_save[0].row[0] == Store.luckysheet_select_save[0].row[1] && Store.luckysheet_select_save[0].column[0] == Store.luckysheet_select_save[0].column[1]) { dynamicArrayHightShow(Store.luckysheet_select_save[0].row[0], Store.luckysheet_select_save[0].column[0]); } + + /* 刷新当前状态栏 */ + refreshMenuButtonFocus(); } Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].luckysheet_select_save = Store.luckysheet_select_save; From 2e22012a271d5746b5e257f6af107750d0f0e911 Mon Sep 17 00:00:00 2001 From: flowerField Date: Thu, 28 Jan 2021 11:13:53 +0800 Subject: [PATCH 2/3] add api checkTheStatusOfTheSelectedCells --- docs/guide/api.md | 13 +++++++++++++ docs/zh/guide/api.md | 13 +++++++++++++ src/global/api.js | 18 ++++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/docs/guide/api.md b/docs/guide/api.md index f2ec2e3..78f99ff 100644 --- a/docs/guide/api.md +++ b/docs/guide/api.md @@ -2596,6 +2596,19 @@ Use note: ------------ +### checkTheStatusOfTheSelectedCells(type,status) + +- **Parameter**: + + - {String} type: type + - {String} status: Target state value + +- **Explanation**: + + Check whether the status of all specified types of cells in the selection meets the conditions (mainly bold, italics, strikeouts, underscores, etc.). + +------------ + ## Chart ### insertChart([setting]) diff --git a/docs/zh/guide/api.md b/docs/zh/guide/api.md index 6ffe795..441160a 100644 --- a/docs/zh/guide/api.md +++ b/docs/zh/guide/api.md @@ -2514,6 +2514,19 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 ------------ +### checkTheStatusOfTheSelectedCells(type,status) + +- **参数**: + + - {String} type: 类型 + - {String} status: 目标状态值 + +- **说明**: + + 检查选区内所有cell指定类型的状态是否满足条件(主要是粗体、斜体、删除线和下划线等等)。 + +------------ + ## 图表 ### insertChart([setting]) diff --git a/src/global/api.js b/src/global/api.js index a2a9457..549dfdb 100644 --- a/src/global/api.js +++ b/src/global/api.js @@ -6666,4 +6666,22 @@ export function refreshMenuButtonFocus(data ,r,c , success){ success(); } }) +} + +/** + * 检查选区内所有cell指定类型的状态是否满足条件(主要是粗体、斜体、删除线和下划线等等) + * @param {String} type 类型 + * @param {String} status 目标状态值 + */ +export function checkTheStatusOfTheSelectedCells(type,status){ + + /* 获取选区内所有的单元格-扁平后的处理 */ + let cells = getRangeWithFlatten(); + + let flag = cells.every(({r,c})=>{ + let cell = Store.flowdata[r][c]; + return cell[type] == status; + }) + + return flag; } \ No newline at end of file From 4ddaee617f4a5e4a01b8d08fd97540883bc55106 Mon Sep 17 00:00:00 2001 From: flowerField Date: Thu, 28 Jan 2021 11:32:24 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/menuButton.js | 53 +++++++---------------------------- src/global/api.js | 3 ++ 2 files changed, 13 insertions(+), 43 deletions(-) diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index 820bb10..16fc31f 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -37,6 +37,7 @@ import { replaceHtml, getObjType, rgbTohex, mouseclickposition, luckysheetfontfo import {openProtectionModal,checkProtectionFormatCells,checkProtectionNotEnable} from './protection'; import Store from '../store'; import locale from '../locale/locale'; +import {checkTheStatusOfTheSelectedCells} from '../global/api'; const menuButton = { "menu": '
${item}
', @@ -2171,19 +2172,11 @@ const menuButton = { e.stopPropagation(); }).click(function(e){ let d = editor.deepCopyFlowData(Store.flowdata); - let row_index = Store.luckysheet_select_save[0]["row_focus"], - col_index = Store.luckysheet_select_save[0]["column_focus"]; - let foucsStatus = _this.checkstatus(d, row_index, col_index, "bl"); - - if(foucsStatus == 1){ - foucsStatus = 0; - } - else{ - foucsStatus = 1; - } + + let flag = checkTheStatusOfTheSelectedCells("bl",1); + let foucsStatus = flag ? 0 : 1; _this.updateFormat(d, "bl", foucsStatus); - _this.menuButtonFocus(d, row_index, col_index); }); //斜体 @@ -2192,19 +2185,11 @@ const menuButton = { e.stopPropagation(); }).click(function(){ let d = editor.deepCopyFlowData(Store.flowdata); - let row_index = Store.luckysheet_select_save[0]["row_focus"], - col_index = Store.luckysheet_select_save[0]["column_focus"]; - let foucsStatus = _this.checkstatus(d, row_index, col_index, "it"); - if(foucsStatus == 1){ - foucsStatus = 0; - } - else{ - foucsStatus = 1; - } + let flag = checkTheStatusOfTheSelectedCells("it",1); + let foucsStatus = flag ? 0 : 1; _this.updateFormat(d, "it", foucsStatus); - _this.menuButtonFocus(d, row_index, col_index); }); //删除线 @@ -2213,19 +2198,10 @@ const menuButton = { e.stopPropagation(); }).click(function(){ let d = editor.deepCopyFlowData(Store.flowdata); - let row_index = Store.luckysheet_select_save[0]["row_focus"], - col_index = Store.luckysheet_select_save[0]["column_focus"]; - let foucsStatus = _this.checkstatus(d, row_index, col_index, "cl"); - - if(foucsStatus == 1){ - foucsStatus = 0; - } - else{ - foucsStatus = 1; - } + let flag = checkTheStatusOfTheSelectedCells("cl",1); + let foucsStatus = flag ? 0 : 1; _this.updateFormat(d, "cl", foucsStatus); - _this.menuButtonFocus(d, row_index, col_index); }); //下划线 @@ -2234,19 +2210,10 @@ const menuButton = { e.stopPropagation(); }).click(function(){ let d = editor.deepCopyFlowData(Store.flowdata); - let row_index = Store.luckysheet_select_save[0]["row_focus"], - col_index = Store.luckysheet_select_save[0]["column_focus"]; - let foucsStatus = _this.checkstatus(d, row_index, col_index, "un"); - - if(foucsStatus == 1){ - foucsStatus = 0; - } - else{ - foucsStatus = 1; - } + let flag = checkTheStatusOfTheSelectedCells("un",1); + let foucsStatus = flag ? 0 : 1; _this.updateFormat(d, "un", foucsStatus); - _this.menuButtonFocus(d, row_index, col_index); }); //条件格式 diff --git a/src/global/api.js b/src/global/api.js index 549dfdb..17c6628 100644 --- a/src/global/api.js +++ b/src/global/api.js @@ -6680,6 +6680,9 @@ export function checkTheStatusOfTheSelectedCells(type,status){ let flag = cells.every(({r,c})=>{ let cell = Store.flowdata[r][c]; + if(cell == null){ + return false; + } return cell[type] == status; })