mengshukeji 5 years ago
parent
commit
2f84ab1bfa
  1. 6
      docs/zh/guide/api.md
  2. 45
      src/controllers/keyboard.js
  3. 7
      src/controllers/server.js
  4. 33
      src/controllers/sheetmanage.js
  5. 12
      src/global/api.js
  6. 33
      src/utils/util.js

6
docs/zh/guide/api.md

@ -2550,6 +2550,12 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开
传入目标语言,切换到对应的语言界面
### closeWebsocket()
- **说明**
关闭websocket连接
### getRangeByTxt([txt])
- **说明**

45
src/controllers/keyboard.js

@ -18,10 +18,12 @@ import imageCtrl from './imageCtrl';
import {
getByteLen,
getNowDateTime,
luckysheetactiveCell,
} from '../utils/util';
import { getSheetIndex } from '../methods/get';
import { hasPartMC, isEditMode } from '../global/validate';
import { luckysheetRangeLast } from '../global/cursorPos';
import formula from '../global/formula';
import cleargridelement from '../global/cleargridelement';
import tooltip from '../global/tooltip';
@ -273,7 +275,7 @@ export function keyboardInitial(){
let altKey = event.altKey;
let shiftKey = event.shiftKey;
let kcode = event.keyCode;
if ($("#luckysheet-modal-dialog-mask").is(":visible") || $(event.target).hasClass("luckysheet-mousedown-cancel") || $(event.target).hasClass("sp-input") || (parseInt($("#luckysheet-input-box").css("top")) > 0 && $(event.target).closest(".luckysheet-input-box").length > 0 && kcode != keycode.ENTER && kcode != keycode.TAB && kcode != keycode.UP && kcode != keycode.DOWN && kcode != keycode.LEFT && kcode != keycode.RIGHT)) {
let anchor = $(window.getSelection().anchorNode);
@ -435,6 +437,17 @@ export function keyboardInitial(){
luckysheetMoveHighlightRange2("right", "rangeOfSelect");
}
else if (kcode == 186 || kcode == 222) {
let last = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1];
let row_index = last["row_focus"],
col_index = last["column_focus"];
luckysheetupdateCell(row_index, col_index, Store.flowdata, true);
let value = getNowDateTime(2);
$("#luckysheet-rich-text-editor").html(value);
luckysheetRangeLast($("#luckysheet-rich-text-editor")[0]);
formula.functionInputHanddler($("#luckysheet-functionbox-cell"), $("#luckysheet-rich-text-editor"), kcode);
}
}
else if (kcode == 66) {//Ctrl + B 加粗
$("#luckysheet-icon-bold").click();
@ -695,6 +708,28 @@ export function keyboardInitial(){
luckysheetMoveHighlightCell2("right", "rangeOfSelect");
}
else if (kcode == 186) {//Ctrl + ; 填充系统日期
let last = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1];
let row_index = last["row_focus"],
col_index = last["column_focus"];
luckysheetupdateCell(row_index, col_index, Store.flowdata, true);
let value = getNowDateTime(1);
$("#luckysheet-rich-text-editor").html(value);
luckysheetRangeLast($("#luckysheet-rich-text-editor")[0]);
formula.functionInputHanddler($("#luckysheet-functionbox-cell"), $("#luckysheet-rich-text-editor"), kcode);
}
else if (kcode == 222) {//Ctrl + ' 填充系统时间
let last = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1];
let row_index = last["row_focus"],
col_index = last["column_focus"];
luckysheetupdateCell(row_index, col_index, Store.flowdata, true);
let value = getNowDateTime(2);
$("#luckysheet-rich-text-editor").html(value);
luckysheetRangeLast($("#luckysheet-rich-text-editor")[0]);
formula.functionInputHanddler($("#luckysheet-functionbox-cell"), $("#luckysheet-rich-text-editor"), kcode);
}
else if (String.fromCharCode(kcode).toLocaleUpperCase() == "A") {//Ctrl + A 全选
// $("#luckysheet-left-top").trigger("mousedown");
// $(document).trigger("mouseup");
@ -780,7 +815,7 @@ export function keyboardInitial(){
event.preventDefault();
}
else if (kcode == keycode.UP) {
if (parseInt($inputbox.css("top")) > 0 || $(event.target).hasClass("formulaInputFocus") || $("#luckysheet-singleRange-dialog").is(":visible") || $("#luckysheet-multiRange-dialog").is(":visible")) {
if (parseInt($inputbox.css("top")) > 0 || Store.luckysheet_cell_selected_move || Store.luckysheet_cell_selected_extend || $(event.target).hasClass("formulaInputFocus") || $("#luckysheet-singleRange-dialog").is(":visible") || $("#luckysheet-multiRange-dialog").is(":visible")) {
return;
}
@ -788,7 +823,7 @@ export function keyboardInitial(){
event.preventDefault();
}
else if (kcode == keycode.DOWN) {
if (parseInt($inputbox.css("top")) > 0 || $(event.target).hasClass("formulaInputFocus") || $("#luckysheet-singleRange-dialog").is(":visible") || $("#luckysheet-multiRange-dialog").is(":visible")) {
if (parseInt($inputbox.css("top")) > 0 || Store.luckysheet_cell_selected_move || Store.luckysheet_cell_selected_extend || $(event.target).hasClass("formulaInputFocus") || $("#luckysheet-singleRange-dialog").is(":visible") || $("#luckysheet-multiRange-dialog").is(":visible")) {
return;
}
@ -796,7 +831,7 @@ export function keyboardInitial(){
event.preventDefault();
}
else if (kcode == keycode.LEFT) {
if (parseInt($inputbox.css("top")) > 0 || $(event.target).hasClass("formulaInputFocus") || $("#luckysheet-singleRange-dialog").is(":visible") || $("#luckysheet-multiRange-dialog").is(":visible")) {
if (parseInt($inputbox.css("top")) > 0 || Store.luckysheet_cell_selected_move || Store.luckysheet_cell_selected_extend || $(event.target).hasClass("formulaInputFocus") || $("#luckysheet-singleRange-dialog").is(":visible") || $("#luckysheet-multiRange-dialog").is(":visible")) {
return;
}
@ -804,7 +839,7 @@ export function keyboardInitial(){
event.preventDefault();
}
else if (kcode == keycode.RIGHT) {
if (parseInt($inputbox.css("top")) > 0 || $(event.target).hasClass("formulaInputFocus") || $("#luckysheet-singleRange-dialog").is(":visible") || $("#luckysheet-multiRange-dialog").is(":visible")) {
if (parseInt($inputbox.css("top")) > 0 || Store.luckysheet_cell_selected_move || Store.luckysheet_cell_selected_extend || $(event.target).hasClass("formulaInputFocus") || $("#luckysheet-singleRange-dialog").is(":visible") || $("#luckysheet-multiRange-dialog").is(":visible")) {
return;
}

7
src/controllers/server.js

@ -157,10 +157,9 @@ const server = {
//连接建立时触发
_this.websocket.onopen = function() {
console.info(locale().websocket.success);
hideloading();
_this.wxErrorCount = 0;
console.info(locale().websocket.success);
hideloading();
_this.wxErrorCount = 0;
//防止websocket长时间不发送消息导致断连
setInterval(function(){

33
src/controllers/sheetmanage.js

@ -274,21 +274,38 @@ const sheetmanage = {
},
setSheetHide: function(index) {
let _this = this;
Store.luckysheetfile[_this.getSheetIndex(index)].hide = 1;
let currentIdx = _this.getSheetIndex(index);
Store.luckysheetfile[currentIdx].hide = 1;
let luckysheetcurrentSheetitem = $("#luckysheet-sheets-item" + index);
luckysheetcurrentSheetitem.hide();
$("#luckysheet-sheet-area div.luckysheet-sheets-item").removeClass("luckysheet-sheets-item-active");
let indicator = luckysheetcurrentSheetitem.nextAll(":visible");
if (luckysheetcurrentSheetitem.nextAll(":visible").length > 0) {
indicator = indicator.eq(0).data("index");
}
else {
indicator = luckysheetcurrentSheetitem.prevAll(":visible").eq(0).data("index");
let indicator;
if(luckysheetConfigsetting.showsheetbarConfig.sheet){
indicator = luckysheetcurrentSheetitem.nextAll(":visible");
if (luckysheetcurrentSheetitem.nextAll(":visible").length > 0) {
indicator = indicator.eq(0).data("index");
}
else {
indicator = luckysheetcurrentSheetitem.prevAll(":visible").eq(0).data("index");
}
}else{
let nextActiveIdx , showSheetIdxs = [];
Store.luckysheetfile.forEach((ele,index)=>{
if(1 !== ele.hide) showSheetIdxs.push(index);
});
let len = showSheetIdxs.length;
if(1 === len){
nextActiveIdx = showSheetIdxs[0];
}else{
nextActiveIdx = showSheetIdxs[len-1] > currentIdx ? showSheetIdxs.find(e => e>currentIdx ) : showSheetIdxs[len-1];
}
indicator = Store.luckysheetfile[nextActiveIdx].index;
}
$("#luckysheet-sheets-item" + indicator).addClass("luckysheet-sheets-item-active");
_this.changeSheetExec(indicator);

12
src/global/api.js

@ -6284,6 +6284,18 @@ export function changLang(lang = 'zh'){
}
/**
* 关闭websocket连接
*/
export function closeWebsocket(){
if(server.websocket == null){
return;
}
server.websocket.close();
}
/**
* 根据范围字符串转换为range数组
* @param {String} txt 范围字符串

33
src/utils/util.js

@ -74,6 +74,38 @@ function getObjType(obj) {
return map[toString.call(obj)];
}
//获取当前日期时间
function getNowDateTime(format) {
let now = new Date();
let year = now.getFullYear(); //得到年份
let month = now.getMonth(); //得到月份
let date = now.getDate(); //得到日期
let day = now.getDay(); //得到周几
let hour = now.getHours(); //得到小时
let minu = now.getMinutes(); //得到分钟
let sec = now.getSeconds(); //得到秒
month = month + 1;
if (month < 10) month = "0" + month;
if (date < 10) date = "0" + date;
if (hour < 10) hour = "0" + hour;
if (minu < 10) minu = "0" + minu;
if (sec < 10) sec = "0" + sec;
let time = '';
//日期
if(format == 1) {
time = year + "-" + month + "-" + date;
}
//日期时间
else if(format == 2) {
time = year + "-" + month + "-" + date+ " " + hour + ":" + minu + ":" + sec;
}
return time;
}
//颜色 16进制转rgb
function hexToRgb(hex) {
let color = [], rgb = [];
@ -807,6 +839,7 @@ export {
common_extend,
replaceHtml,
getObjType,
getNowDateTime,
hexToRgb,
rgbTohex,
ABCatNum,

Loading…
Cancel
Save