Browse Source

Merge pull request #497 from flowerField/master

优化代码
master
文顶顶 5 years ago
committed by GitHub
parent
commit
22353a0c03
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      docs/guide/api.md
  2. 13
      docs/zh/guide/api.md
  3. 6
      src/controllers/controlHistory.js
  4. 53
      src/controllers/menuButton.js
  5. 4
      src/controllers/select.js
  6. 21
      src/global/api.js

13
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])

13
docs/zh/guide/api.md

@ -2514,6 +2514,19 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开
------------
### checkTheStatusOfTheSelectedCells(type,status)
- **参数**
- {String} type: 类型
- {String} status: 目标状态值
- **说明**
检查选区内所有cell指定类型的状态是否满足条件(主要是粗体、斜体、删除线和下划线等等)。
------------
## 图表
### insertChart([setting])

6
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();
}
};

53
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": '<div class="luckysheet-cols-menu luckysheet-rightgclick-menu luckysheet-menuButton ${subclass} luckysheet-mousedown-cancel" id="luckysheet-icon-${id}-menuButton">${item}</div>',
@ -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);
});
//条件格式

4
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;

21
src/global/api.js

@ -6666,4 +6666,25 @@ 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];
if(cell == null){
return false;
}
return cell[type] == status;
})
return flag;
}
Loading…
Cancel
Save