設計思想
html
基於面向對象的設計思想。git
源代碼分3個部分:github
單元格類--CSheetCell數組
表格類--CSheet函數
插件主體spa
單元格類--CSheetCell.net
私有成員:
插件
state -- 單元格的狀態,只能取值 0 或 1,默認 0;設計
toggleCallback(state) -- 改變單元格狀態時的回調函數,默認 false;code
settingCallback() -- 設置單元格狀態時的回調函數,默認 false;
公有成員:
toggle() -- 改變單元格的狀態;
set(state) -- 設置單元格狀態爲指定值;
get() -- 獲取單元格狀態;
表格類--CSheet
私有成員:
dimensions -- 表格的維度,二元數組,[行數,列數],默認 undefined;
sheetData -- 表格的數據,二維數組,默認 undefined;
toggleCallback() -- 改變指定區域狀態時的回調函數,默認 false;
settingCallback() -- 設置指定區域狀態時的回調函數,默認 false;
cells -- 表格所持有的 CSheetCell 實例,二維數組,與 sheetData 元素一 一對應;
initCells() -- 使用 sheetData 初始化 cells;
areaOperate(area, opt) -- 選定一個區域,對其執行 toggle 或 set 操做;
公有成員:
toggle(area) -- 改變指定區域內單元格的狀態;
set(state, area) -- 設置指定區域內單元格狀態爲指定值;
getCellState(cellIndex) -- 獲取指定單元格狀態;
getRowStates(rowIndex) -- 獲取指定行全部單元格狀態;
getSheetStates() -- 獲取整個表格全部單元格狀態;
插件主體
CSheetCell 與 CSheet 封裝了一些數據和方法以方便插件的實現。在使用場合,CSheetCell 與 CSheet 對用戶是不可見的,API 最終由插件主體提供。
open API:
getCellState(cellIndex) -- 獲取單元格狀態,封裝了 CSheet :: getCellState;
getRowStates(rowIndex) -- 獲取指定行全部單元格狀態,封裝了 CSheet :: getRowStates;
getSheetStates() -- 獲取整個表格全部單元格狀態,封裝了 CSheet :: getSheetStates;
setRemark(row, text) -- 設置指定行的說明文字;
clean() -- 將表格重置爲未設置狀態;
disable() -- 禁止操做表格;
enable() -- 容許操做表格;
isFull() -- 判斷表格是否全部單元格狀態都是1;
getDefaultRemark() -- 獲取行註釋的默認值
開源項目
項目地址:https://github.com/lbbc1117/TimeSheet
也能夠在這裏下載源碼: http://www.oschina.net/code/snippet_1047422_50906
演示視頻:http://v.youku.com/v_show/id_XMTMzNzcxMzI0NA==.html
選擇超清模式看的更清楚。
源碼中提供了樣例,展現了 TimeSheet 全部主要功能: