Browse Source

补充文档,UI适配、保护表逻辑补充

master
CN\wuwx26 5 years ago
parent
commit
1c445df30b
  1. 24
      docs/zh/guide/api.md
  2. 14
      docs/zh/guide/config.md
  3. 2
      src/controllers/constant.js
  4. 10
      src/controllers/protection.js
  5. 25
      src/css/luckysheet-core.css
  6. 13
      src/global/api.js
  7. 35
      src/global/format.js
  8. 2
      src/global/refresh.js
  9. 3
      src/locale/en.js
  10. 3
      src/locale/es.js
  11. 3
      src/locale/zh.js
  12. 3
      src/locale/zh_tw.js
  13. 4
      src/plugins/jquery.sPage.css
  14. 4
      src/plugins/js/jquery.sPage.min.js

24
docs/zh/guide/api.md

@ -2486,6 +2486,30 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开
------------ ------------
### pagerInit([setting])
- **参数**
- {PlainObject} [setting]: 参数配置
+ {Number} [pageIndex]: 当前的页码(必填)。
+ {Number} [pageSize]: 每页显示多少条数据(必填)。
+ {Number} [total]: 总条数(必填)。
+ {Boolean} [showTotal]: 是否显示总数,默认关闭:false。
+ {Boolean} [showSkip]: 是否显示跳页,默认关闭:false。
+ {Boolean} [showPN]: 是否显示上下翻页,默认开启:true。
+ {Array} [selectOption]: 选择分页的条数。
+ {String} [prevPage]: 上翻页文字描述,默认"上一页"。
+ {String} [nextPage]: 下翻页文字描述,默认"下一页"。
+ {String} [totalTxt]: 数据总条数文字描述,默认"总共:{total}"。
- **说明**
初始化分页器。ps:create阶段,可以直接配置options.pager参数,渲染阶段会将options.pager作为参数来初始化分页器,可通过钩子函数onTogglePager来监听页码的切换
------------
## 图表 ## 图表
### insertChart([setting]) ### insertChart([setting])

14
docs/zh/guide/config.md

@ -669,10 +669,16 @@ Luckysheet开放了更细致的自定义配置选项,分别有
点击分页按钮会触发钩子函数 `onTogglePager`,返回当前页码,同`sPage`的`backFun`方法,此分页器设置只负责UI部分,具体切换分页后的数据请求和数据渲染,请在`onTogglePager`钩子行数里自定义处理。 点击分页按钮会触发钩子函数 `onTogglePager`,返回当前页码,同`sPage`的`backFun`方法,此分页器设置只负责UI部分,具体切换分页后的数据请求和数据渲染,请在`onTogglePager`钩子行数里自定义处理。
```js ```js
pager: { pager: {
pageIndex: 1, //当前的页码 pageIndex: 1, //当前页码,必填
pageSize: 10, //每页显示多少行数据 total: 100, //数据总条数,必填
total: 50, //数据总行数 selectOption: [10, 20, 30], // 选择每页的行数,
selectOption: [10, 20] //允许设置每页行数的选项 pageSize: 10, //每页显示多少条数据,默认10条
showTotal: false, // 是否显示总数,默认关闭:false
showSkip: false, //是否显示跳页,默认关闭:false
showPN: false, //是否显示上下翻页,默认开启:true
prevPage: '', //上翻页文字描述,默认"上一页"
nextPage: '', //下翻页文字描述,默认"下一页"
totalTxt: '', // 数据总条数文字描述,默认"总共:{total}"
} }
``` ```

2
src/controllers/constant.js

@ -209,6 +209,7 @@ const gridHTML = function(){
</table> </table>
</div> </div>
<div class="luckysheet-sheet-area luckysheet-noselected-text" id="luckysheet-sheet-area"> <div class="luckysheet-sheet-area luckysheet-noselected-text" id="luckysheet-sheet-area">
<div id="luckysheet-sheet-content">
<div id="luckysheet-sheets-add" class="luckysheet-sheets-add lucky-button-custom"><i class="iconfont luckysheet-iconfont-jia1"></i></div> <div id="luckysheet-sheets-add" class="luckysheet-sheets-add lucky-button-custom"><i class="iconfont luckysheet-iconfont-jia1"></i></div>
<div id="luckysheet-sheets-m" class="luckysheet-sheets-m lucky-button-custom"><i class="iconfont luckysheet-iconfont-caidan2"></i></div> <div id="luckysheet-sheets-m" class="luckysheet-sheets-m lucky-button-custom"><i class="iconfont luckysheet-iconfont-caidan2"></i></div>
<div class="luckysheet-sheet-container" id="luckysheet-sheet-container"> <div class="luckysheet-sheet-container" id="luckysheet-sheet-container">
@ -228,6 +229,7 @@ const gridHTML = function(){
<div id="luckysheet-sheets-rightscroll" class="luckysheet-sheets-scroll lucky-button-custom"><i class="fa fa-caret-right"></i></div> <div id="luckysheet-sheets-rightscroll" class="luckysheet-sheets-scroll lucky-button-custom"><i class="fa fa-caret-right"></i></div>
</div> </div>
</div> </div>
</div>
<div class="luckysheet-stat-area"> <div class="luckysheet-stat-area">
<div class="luckysheet-sta-c"> <div class="luckysheet-sta-c">
<div class="luckysheet-zoom-content" id="luckysheet-zoom-content"> <div class="luckysheet-zoom-content" id="luckysheet-zoom-content">

10
src/controllers/protection.js

@ -909,7 +909,7 @@ export function checkProtectionLocked(r, c, sheetIndex){
return true; return true;
} }
if(cell && cell.lo === 0){ if(cell && cell.lo === 0){ // lo为0的时候才是可编辑
return true; return true;
} }
@ -945,10 +945,6 @@ export function checkProtectionCellHidden(r, c, sheetIndex){
//cell range locked state //cell range locked state
export function checkProtectionLockedRangeList(rangeList, sheetIndex){ export function checkProtectionLockedRangeList(rangeList, sheetIndex){
//EPM-BUDGET-START
if (rangeList[0].column[0] !== rangeList[0].column[1]) return true;
//EPM-BUDGET-END
let sheetFile = sheetmanage.getSheetByIndex(sheetIndex); let sheetFile = sheetmanage.getSheetByIndex(sheetIndex);
if(sheetFile==null){ if(sheetFile==null){
@ -978,7 +974,7 @@ export function checkProtectionLockedRangeList(rangeList, sheetIndex){
for(let r=r1;r<=r2;r++){ for(let r=r1;r<=r2;r++){
for(let c=c1;c<=c2;c++){ for(let c=c1;c<=c2;c++){
let isLock = sheetFile.data[r][c].lo === undefined || sheetFile.data[r][c].lo === 1, let isLock = sheetFile.data[r][c].lo === undefined || sheetFile.data[r][c].lo === 1, // 单元格是否锁定
isPass = checkProtectionLockedSqref(r, c , aut, local_protection, true, isLock); isPass = checkProtectionLockedSqref(r, c , aut, local_protection, true, isLock);
if(!isPass){ if(!isPass){
return false; return false;
@ -1009,7 +1005,7 @@ export function checkProtectionSelectLockedOrUnLockedCells(r, c, sheetIndex){
return true; return true;
} }
if(cell && cell.lo === 0){//unlocked if(cell && cell.lo === 0){ // lo为0的时候才是可编辑
if(aut.selectunLockedCells==1 || aut.selectunLockedCells==null){ if(aut.selectunLockedCells==1 || aut.selectunLockedCells==null){
return true; return true;
} }

25
src/css/luckysheet-core.css

@ -957,6 +957,8 @@
} }
.luckysheet-sheet-area { .luckysheet-sheet-area {
width: 100%;
box-sizing: border-box;
position: absolute; position: absolute;
right: 0; right: 0;
bottom: 0; bottom: 0;
@ -970,6 +972,26 @@
-webkit-touch-callout: none; -webkit-touch-callout: none;
cursor: default; cursor: default;
transition: .3s ease all; transition: .3s ease all;
display: flex;
align-items: center;
justify-content: space-between;
}
#luckysheet-sheet-content {
width: 0;
flex: 3;
display: flex;
align-items: center;
}
#luckysheet-sheet-content .lucky-button-custom {
}
#luckysheet-bottom-pager {
width: 0;
background-color: #fafafc;
z-index: 1;
flex: 2;
text-align: right;
white-space: nowrap;
} }
.luckysheet-sheet-area>div, .luckysheet-sheet-area>div,
@ -1047,8 +1069,9 @@ div.luckysheet-sheets-m:hover {
padding: 0px 0px; padding: 0px 0px;
margin-left: 0px; margin-left: 0px;
position: relative; position: relative;
max-width: 50%; max-width: 70%;
vertical-align: bottom; vertical-align: bottom;
display: inline-block;
} }
.luckysheet-sheet-area div.luckysheet-sheet-container div.luckysheet-sheet-container-c { .luckysheet-sheet-area div.luckysheet-sheet-container div.luckysheet-sheet-container-c {

13
src/global/api.js

@ -6548,16 +6548,21 @@ export function getTxtByRange(range=Store.luckysheet_select_save){
* @param {Number} config.total 总条数 * @param {Number} config.total 总条数
*/ */
export function pagerInit (config) { export function pagerInit (config) {
const {prevPage, nextPage, total} = locale().button;
console.log(locale().button, prevPage, locale())
$('#luckysheet-bottom-pager').remove() $('#luckysheet-bottom-pager').remove()
$('#luckysheet-sheet-area').append('<div id="luckysheet-bottom-pager" style="font-size: 14px; margin-left: 10px; display: inline-block;"></div>') $('#luckysheet-sheet-content').after('<div id="luckysheet-bottom-pager" style="font-size: 14px; margin-left: 10px; display: inline-block;"></div>')
$("#luckysheet-bottom-pager").sPage({ $("#luckysheet-bottom-pager").sPage({
page: config.pageIndex, //当前页码,必填 page: config.pageIndex, //当前页码,必填
total: config.total, //数据总条数,必填 total: config.total, //数据总条数,必填
selectOption: config.selectOption, // 选择每页的行数, selectOption: config.selectOption, // 选择每页的行数,
pageSize: config.pageSize, //每页显示多少条数据,默认10条 pageSize: config.pageSize, //每页显示多少条数据,默认10条
showTotal: true, // 是否显示总数 showTotal: config.showTotal, // 是否显示总数,默认关闭:false
showSkip: config.showSkip || true, //是否显示跳页,默认关闭:false showSkip: config.showSkip, //是否显示跳页,默认关闭:false
showPN: config.showPN || true, //是否显示上下翻页,默认开启:true showPN: config.showPN, //是否显示上下翻页,默认开启:true
prevPage: config.prevPage || prevPage, //上翻页文字描述,默认"上一页"
nextPage: config.nextPage || nextPage, //下翻页文字描述,默认"下一页"
totalTxt: config.totalTxt || total + config.total, // 数据总条数文字描述,{total}为占位符,默认"总共:{total}"
backFun: function (page) { backFun: function (page) {
page.pageIndex = page.page page.pageIndex = page.page
if(!method.createHookFunction("onTogglePager", page)){ return; } if(!method.createHookFunction("onTogglePager", page)){ return; }

35
src/global/format.js

@ -1787,26 +1787,21 @@ export function genarate(value) {//万 单位格式增加!!!
ct = { "fa": "@", "t": "s" }; ct = { "fa": "@", "t": "s" };
} }
else if(isRealNum(value) && Math.abs(parseFloat(value)) > 0 && (Math.abs(parseFloat(value)) >= 1e+11 || Math.abs(parseFloat(value)) < 1e-9)){ else if(isRealNum(value) && Math.abs(parseFloat(value)) > 0 && (Math.abs(parseFloat(value)) >= 1e+11 || Math.abs(parseFloat(value)) < 1e-9)){
// 科学计数法还是保持文本格式 v = numeral(value).value();
v = value var str = v.toExponential();
m = value if(str.indexOf(".") > -1){
ct= {"fa": '@', "t": "n"} var strlen = str.split(".")[1].split("e")[0].length;
if(strlen > 5){
// v = numeral(value).value(); strlen = 5;
// var str = v.toExponential(); }
// if(str.indexOf(".") > -1){
// var strlen = str.split(".")[1].split("e")[0].length; ct = { "fa": "#0."+ new Array(strlen + 1).join("0") +"E+00", "t": "n" };
// if(strlen > 5){ }
// strlen = 5; else{
// } ct = { "fa": "#0.E+00", "t": "n" };
}
// ct = { "fa": "#0."+ new Array(strlen + 1).join("0") +"E+00", "t": "n" };
// } m = SSF.format(ct.fa, v);
// else{
// ct = { "fa": "#0.E+00", "t": "n" };
// }
// m = SSF.format(ct.fa, v);
} }
else if(value.toString().indexOf("%") > -1){ else if(value.toString().indexOf("%") > -1){
var index = value.toString().indexOf("%"); var index = value.toString().indexOf("%");

2
src/global/refresh.js

@ -102,7 +102,6 @@ function jfrefreshgrid(data, range, allParam, isRunExecFunction = true, isRefres
"data": Store.flowdata, "data": Store.flowdata,
"curData": data, "curData": data,
"sheetIndex": Store.currentSheetIndex, "sheetIndex": Store.currentSheetIndex,
"range": range,
"config": $.extend(true, {}, Store.config), "config": $.extend(true, {}, Store.config),
"curConfig": curConfig, "curConfig": curConfig,
"cdformat": $.extend(true, [], file["luckysheet_conditionformat_save"]), "cdformat": $.extend(true, [], file["luckysheet_conditionformat_save"]),
@ -112,6 +111,7 @@ function jfrefreshgrid(data, range, allParam, isRunExecFunction = true, isRefres
"curDataVerification": curDataVerification, "curDataVerification": curDataVerification,
"dynamicArray": $.extend(true, [], file["dynamicArray"]), "dynamicArray": $.extend(true, [], file["dynamicArray"]),
"curDynamicArray": curDynamicArray, "curDynamicArray": curDynamicArray,
"range": range,
"dataRange": [...file.luckysheet_select_save]// 保留操作时的选区 "dataRange": [...file.luckysheet_select_save]// 保留操作时的选区
}); });
} }

3
src/locale/en.js

@ -8919,6 +8919,9 @@ export default {
update:"Update", update:"Update",
delete:"Delete", delete:"Delete",
insert:"Insert", insert:"Insert",
prevPage: "Previous",
nextPage: "Next",
total: "total:"
}, },
paint:{ paint:{
start: 'Paint format start', start: 'Paint format start',

3
src/locale/es.js

@ -8918,6 +8918,9 @@ export default {
update:"Actualizar", update:"Actualizar",
delete:"Eliminar", delete:"Eliminar",
insert:"Insertar", insert:"Insertar",
prevPage: "Previous",
nextPage: "Next",
total: "total:"
}, },
paint:{ paint:{
start: 'Inicio clonar formato', start: 'Inicio clonar formato',

3
src/locale/zh.js

@ -9144,6 +9144,9 @@ export default {
update:"Update", update:"Update",
delete:"Delete", delete:"Delete",
insert:"新建", insert:"新建",
prevPage: "上一页",
nextPage: "下一页",
total: "总共:"
}, },
paint: { paint: {
start: '格式刷开启', start: '格式刷开启',

3
src/locale/zh_tw.js

@ -9140,6 +9140,9 @@ export default {
update : "Update", update : "Update",
delete : "Delete", delete : "Delete",
insert : "新建", insert : "新建",
prevPage: "上一頁",
nextPage: "下一頁",
total: "總共:"
}, },
paint: { paint: {
start : '格式刷開啟', start : '格式刷開啟',

4
src/plugins/jquery.sPage.css

@ -1,7 +1,3 @@
#luckysheet-bottom-pager {
margin-right: 10px;
float: right;
}
.spage-total { .spage-total {
display: inline-block; display: inline-block;
margin-right: 10px; margin-right: 10px;

4
src/plugins/js/jquery.sPage.min.js

@ -6,7 +6,7 @@
pageSize: 200, pageSize: 200,
total: 0, total: 0,
showTotal: false, showTotal: false,
totalTxt: "共{total}条", totalTxt: '',
noData: false, noData: false,
showSkip: false, showSkip: false,
showPN: true, showPN: true,
@ -50,7 +50,7 @@
this.pageTatol = e; this.pageTatol = e;
this.pageNum = t.page; this.pageNum = t.page;
if (t.showTotal) { if (t.showTotal) {
a.push('<div class="spage-total">' + t.totalTxt.replace(/\{(\w+)\}/gi, t.total) + "</div>") a.push('<div class="spage-total">' + t.totalTxt + "</div>")
} }
a.push('<div class="spage-number">'); a.push('<div class="spage-number">');
this.pageList = []; this.pageList = [];

Loading…
Cancel
Save