Browse Source

KERNEL-14045 refactor: calendar和pager文件es6化

es6
Joker.Wang-王顺 2 years ago
parent
commit
7074a0dcbe
  1. 68
      src/case/calendar/calendar.date.item.js
  2. 223
      src/case/calendar/calendar.js
  3. 180
      src/case/calendar/calendar.year.js
  4. 3
      src/case/calendar/index.js
  5. 6
      src/case/index.js
  6. 3
      src/case/pager/index.js
  7. 186
      src/case/pager/pager.all.count.js
  8. 224
      src/case/pager/pager.detail.js
  9. 167
      src/case/pager/pager.direction.js

68
src/case/calendar/calendar.date.item.js

@ -1,16 +1,23 @@
/**
* 专门为calendar的视觉加的button作为私有button,不能配置任何属性也不要用这个玩意
*/
BI.CalendarDateItem = BI.inherit(BI.BasicButton, {
props: function() {
import { shortcut } from "../../core";
import { BasicButton } from "../../base/single/button/button.basic";
@shortcut()
export class CalendarDateItem extends BasicButton {
props() {
return {
baseCls: "bi-calendar-date-item",
height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT + 8,
};
}
},
render: function () {
var self = this, o = this.options;
static xtype = "bi.calendar_date_item";
render () {
const { text, value, lgap, rgap, tgap, bgap } = this.options;
return {
type: "bi.absolute",
items: [{
@ -18,41 +25,40 @@ BI.CalendarDateItem = BI.inherit(BI.BasicButton, {
type: "bi.text_item",
cls: "bi-border-radius bi-list-item-select",
textAlign: "center",
text: o.text,
value: o.value,
ref: function () {
self.text = this;
}
text,
value,
ref: _ref => {
this.text = _ref;
},
left: o.lgap,
right: o.rgap,
top: o.tgap,
bottom: o.bgap
}]
};
},
left: lgap,
right: rgap,
top: tgap,
bottom: bgap,
}],
};
}
doHighLight: function () {
this.text.doHighLight.apply(this.text, arguments);
},
doHighLight () {
this.text.doHighLight(...arguments);
}
unHighLight: function () {
this.text.unHighLight.apply(this.text, arguments);
},
unHighLight () {
this.text.unHighLight(...arguments);
}
setValue: function () {
setValue () {
if (!this.isReadOnly()) {
this.text.setValue.apply(this.text, arguments);
this.text.setValue(...arguments);
}
}
},
setSelected: function (b) {
BI.CalendarDateItem.superclass.setSelected.apply(this, arguments);
setSelected (b) {
super.setSelected(...arguments);
this.text.setSelected(b);
},
}
getValue: function () {
getValue () {
return this.text.getValue();
}
});
BI.shortcut("bi.calendar_date_item", BI.CalendarDateItem);
}

223
src/case/calendar/calendar.js

@ -3,32 +3,36 @@
* @class BI.Calendar
* @extends BI.Widget
*/
BI.Calendar = BI.inherit(BI.Widget, {
_defaultConfig: function () {
var conf = BI.Calendar.superclass._defaultConfig.apply(this, arguments);
return BI.extend(conf, {
import { shortcut, Widget, getDate, each, range, extend, isLeapYear, Date, StartOfWeek, checkDateVoid, map, createWidget, createItems, LogicFactory, Controller, getShortDayName, getOffsetDate, isNotEmptyString, parseInt } from "../../core";
@shortcut()
export class Calendar extends Widget {
static xtype = "bi.calendar";
_defaultConfig () {
const conf = super._defaultConfig(...arguments);
return extend(conf, {
baseCls: "bi-calendar",
logic: {
dynamic: false
dynamic: false,
},
min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期
year: 2015,
month: 8,
day: 25
day: 25,
});
},
_dateCreator: function (Y, M, D) {
var self = this, o = this.options, log = {}, De = BI.getDate();
var mins = o.min.match(/\d+/g);
var maxs = o.max.match(/\d+/g);
}
_dateCreator (Y, M, D) {
const { min, max } = this.options, log = {}, De = getDate();
const mins = min.match(/\d+/g);
const maxs = max.match(/\d+/g);
De.setFullYear(Y, M, D);
log.ymd = [De.getFullYear(), De.getMonth(), De.getDate()];
var MD = BI.Date._MD.slice(0);
MD[1] = BI.isLeapYear(log.ymd[0]) ? 29 : 28;
const MD = Date._MD.slice(0);
MD[1] = isLeapYear(log.ymd[0]) ? 29 : 28;
// 日期所在月第一天
De.setFullYear(log.ymd[0], log.ymd[1], 1);
@ -36,15 +40,16 @@ BI.Calendar = BI.inherit(BI.Widget, {
log.FDay = De.getDay();
// 当前BI.StartOfWeek与周日对齐后的FDay是周几
var offSetFDay = (7 - BI.StartOfWeek + log.FDay) % 7;
const offSetFDay = (7 - StartOfWeek + log.FDay) % 7;
// 当前月页第一天是几号
log.PDay = MD[M === 0 ? 11 : M - 1] - offSetFDay + 1;
log.NDay = 1;
var items = [];
BI.each(BI.range(42), function (i) {
var td = {}, YY = log.ymd[0], MM = log.ymd[1] + 1, DD;
const items = [];
each(range(42), i => {
const td = {};
let YY = log.ymd[0], MM = log.ymd[1] + 1, DD;
// 上个月的日期
if (i < offSetFDay) {
td.lastMonth = true;
@ -63,89 +68,92 @@ BI.Calendar = BI.inherit(BI.Widget, {
MM === 12 && (YY += 1);
MM = MM === 12 ? 1 : MM + 1;
}
if (BI.checkDateVoid(YY, MM, DD, mins, maxs)[0]) {
if (checkDateVoid(YY, MM, DD, mins, maxs)[0]) {
td.disabled = true;
}
td.text = DD;
items.push(td);
});
return items;
},
}
_init: function () {
BI.Calendar.superclass._init.apply(this, arguments);
var self = this, o = this.options;
var items = BI.map(this._getWeekLabel(), function (i, value) {
_init () {
super._init(...arguments);
const { year, month, day, logic } = this.options;
const items = map(this._getWeekLabel(), (i, value) => {
return {
type: "bi.label",
height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT,
text: value
text: value,
};
});
var title = BI.createWidget({
const title = createWidget({
type: "bi.button_group",
height: 44,
items: items,
items,
layouts: [{
type: "bi.center",
hgap: 5,
vgap: 10
}]
vgap: 10,
}],
});
this.days = BI.createWidget({
this.days = createWidget({
type: "bi.button_group",
items: BI.createItems(this._getItems(), {}),
value: o.year + "-" + o.month + "-" + o.day,
layouts: [BI.LogicFactory.createLogic("table", BI.extend({}, o.logic, {
items: createItems(this._getItems(), {}),
value: `${year}-${month}-${day}`,
layouts: [LogicFactory.createLogic("table", extend({}, logic, {
columns: 7,
rows: 6,
columnSize: [1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7],
rowSize: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT + 8
}))]
rowSize: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT + 8,
}))],
});
this.days.on(BI.Controller.EVENT_CHANGE, function () {
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
this.days.on(Controller.EVENT_CHANGE, () => {
this.fireEvent(Controller.EVENT_CHANGE, arguments);
});
BI.createWidget(BI.extend({
element: this
createWidget(extend({
element: this,
}, BI.LogicFactory.createLogic("vertical", BI.extend({}, o.logic, {
items: BI.LogicFactory.createLogicItemsByDirection("top", title, {
}, LogicFactory.createLogic("vertical", extend({}, logic, {
items: LogicFactory.createLogicItemsByDirection("top", title, {
el: this.days,
tgap: -5
})
tgap: -5,
}),
}))));
},
}
_getWeekLabel: function () {
return BI.map(BI.range(0, 7), function (idx, v) {
return BI.getShortDayName((v + BI.StartOfWeek) % 7);
});
},
_getWeekLabel () {
return map(range(0, 7), (idx, v) => getShortDayName((v + StartOfWeek) % 7));
}
isFrontDate: function () {
var o = this.options, c = this._const;
var Y = o.year, M = o.month, De = BI.getDate(), day = De.getDay();
isFrontDate () {
const { year, month, min, max } = this.options;
let Y = year;
const M = month, De = getDate(), day = De.getDay();
Y = Y | 0;
De.setFullYear(Y, M, 1);
var newDate = BI.getOffsetDate(De, -1 * (day + 1));
return !!BI.checkDateVoid(newDate.getFullYear(), newDate.getMonth(), newDate.getDate(), o.min, o.max)[0];
},
const newDate = getOffsetDate(De, -1 * (day + 1));
isFinalDate: function () {
var o = this.options, c = this._const;
var Y = o.year, M = o.month, De = BI.getDate(), day = De.getDay();
return !!checkDateVoid(newDate.getFullYear(), newDate.getMonth(), newDate.getDate(), min, max)[0];
}
isFinalDate () {
const { year, month, min, max } = this.options;
let Y = year;
const M = month, De = getDate(), day = De.getDay();
Y = Y | 0;
De.setFullYear(Y, M, 1);
var newDate = BI.getOffsetDate(De, 42 - day);
return !!BI.checkDateVoid(newDate.getFullYear(), newDate.getMonth(), newDate.getDate(), o.min, o.max)[0];
},
const newDate = getOffsetDate(De, 42 - day);
return !!checkDateVoid(newDate.getFullYear(), newDate.getMonth(), newDate.getDate(), min, max)[0];
}
_getItems: function () {
var o = this.options;
var days = this._dateCreator(o.year, o.month - 1, o.day);
var items = [];
_getItems () {
const o = this.options;
const days = this._dateCreator(o.year, o.month - 1, o.day);
const items = [];
items.push(days.slice(0, 7));
items.push(days.slice(7, 14));
items.push(days.slice(14, 21));
@ -153,10 +161,9 @@ BI.Calendar = BI.inherit(BI.Widget, {
items.push(days.slice(28, 35));
items.push(days.slice(35, 42));
return BI.map(items, function (i, item) {
return BI.map(item, function (j, td) {
var month = td.lastMonth ? o.month - 1 : (td.nextMonth ? o.month + 1 : o.month);
var year = o.year;
return map(items, (i, item) => map(item, (j, td) => {
let month = td.lastMonth ? o.month - 1 : (td.nextMonth ? o.month + 1 : o.month);
let year = o.year;
if (month > 12) {
month = 1;
year++;
@ -164,82 +171,84 @@ BI.Calendar = BI.inherit(BI.Widget, {
month = 12;
year--;
}
return BI.extend(td, {
return extend(td, {
type: "bi.calendar_date_item",
once: false,
forceSelected: true,
value: year + "-" + month + "-" + td.text,
value: `${year}-${month}-${td.text}`,
disabled: td.disabled,
cls: td.lastMonth || td.nextMonth ? "bi-tips" : "",
lgap: 2,
rgap: 2,
tgap: 4,
bgap: 4
bgap: 4,
// selected: td.currentDay
});
});
});
},
}));
}
_populate: function() {
_populate() {
this.days.populate(this._getItems());
},
}
setMinDate: function (minDate) {
var o = this.options;
if (BI.isNotEmptyString(o.min)) {
setMinDate (minDate) {
const o = this.options;
if (isNotEmptyString(o.min)) {
o.min = minDate;
this._populate();
}
},
}
setMaxDate: function (maxDate) {
var o = this.options;
if (BI.isNotEmptyString(o.max)) {
setMaxDate (maxDate) {
const o = this.options;
if (isNotEmptyString(o.max)) {
o.max = maxDate;
this._populate();
}
},
}
setValue: function (ob) {
this.days.setValue([ob.year + "-" + ob.month + "-" + ob.day]);
},
setValue (ob) {
this.days.setValue([`${ob.year}-${ob.month}-${ob.day}`]);
}
getValue () {
const date = this.days.getValue()[0].match(/\d+/g);
getValue: function () {
var date = this.days.getValue()[0].match(/\d+/g);
return {
year: date[0] | 0,
month: date[1] | 0,
day: date[2] | 0
day: date[2] | 0,
};
}
});
}
BI.extend(BI.Calendar, {
getPageByDateJSON: function (json) {
var year = BI.getDate().getFullYear();
var month = BI.getDate().getMonth();
var page = (json.year - year) * 12;
extend(Calendar, {
getPageByDateJSON (json) {
const year = getDate().getFullYear();
const month = getDate().getMonth();
let page = (json.year - year) * 12;
page += json.month - 1 - month;
return page;
},
getDateJSONByPage: function (v) {
var months = BI.getDate().getMonth();
var page = v;
getDateJSONByPage (v) {
const months = getDate().getMonth();
let page = v;
// 对当前page做偏移,使到当前年初
page = page + months;
var year = BI.parseInt(page / 12);
if(page < 0 && page % 12 !== 0) {
let year = parseInt(page / 12);
if (page < 0 && page % 12 !== 0) {
year--;
}
var month = page >= 0 ? (page % 12) : ((12 + page % 12) % 12);
const month = page >= 0 ? (page % 12) : ((12 + page % 12) % 12);
return {
year: BI.getDate().getFullYear() + year,
month: month + 1
year: getDate().getFullYear() + year,
month: month + 1,
};
}
},
});
BI.shortcut("bi.calendar", BI.Calendar);

180
src/case/calendar/calendar.year.js

@ -3,99 +3,104 @@
* @class BI.YearCalendar
* @extends BI.Widget
*/
BI.YearCalendar = BI.inherit(BI.Widget, {
_defaultConfig: function () {
var conf = BI.YearCalendar.superclass._defaultConfig.apply(this, arguments);
return BI.extend(conf, {
import { shortcut, Widget, extend, parseDateTime, range, checkDateVoid, print, getDate, each, createWidget, createItems, LogicFactory, Controller, makeArray, map, isNotEmptyString } from "../../core";
@shortcut()
export class YearCalendar extends Widget {
static xtype = "bi.year_calendar";
_defaultConfig () {
const conf = super._defaultConfig(...arguments);
return extend(conf, {
baseCls: "bi-year-calendar",
behaviors: {},
logic: {
dynamic: false
dynamic: false,
},
min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期
year: null
year: null,
});
},
}
_yearCreator: function (Y) {
var o = this.options;
_yearCreator (Y) {
const { min, max } = this.options;
Y = Y | 0;
var start = BI.YearCalendar.getStartYear(Y);
var items = [];
const start = YearCalendar.getStartYear(Y);
const items = [];
// 对于年控件来说,只要传入的minDate和maxDate的year区间包含v就是合法的
var startDate = BI.parseDateTime(o.min, "%Y-%X-%d");
var endDate = BI.parseDateTime(o.max, "%Y-%X-%d");
BI.each(BI.range(BI.YearCalendar.INTERVAL), function (i) {
var td = {};
if (BI.checkDateVoid(start + i, 1, 1, BI.print(BI.getDate(startDate.getFullYear(), 0, 1), "%Y-%X-%d"), BI.print(BI.getDate(endDate.getFullYear(), 0, 1), "%Y-%X-%d"))[0]) {
const startDate = parseDateTime(min, "%Y-%X-%d");
const endDate = parseDateTime(max, "%Y-%X-%d");
each(range(YearCalendar.INTERVAL), i => {
const td = {};
if (checkDateVoid(start + i, 1, 1, print(getDate(startDate.getFullYear(), 0, 1), "%Y-%X-%d"), print(getDate(endDate.getFullYear(), 0, 1), "%Y-%X-%d"))[0]) {
td.disabled = true;
}
td.text = start + i;
items.push(td);
});
return items;
},
_init: function () {
BI.YearCalendar.superclass._init.apply(this, arguments);
var self = this, o = this.options;
this.currentYear = BI.getDate().getFullYear();
return items;
}
_init () {
super._init(...arguments);
const { behaviors, logic } = this.options;
this.currentYear = getDate().getFullYear();
this.years = BI.createWidget({
this.years = createWidget({
type: "bi.button_group",
behaviors: o.behaviors,
items: BI.createItems(this._getItems(), {}),
layouts: [BI.LogicFactory.createLogic("table", BI.extend({}, o.logic, {
behaviors,
items: createItems(this._getItems(), {}),
layouts: [LogicFactory.createLogic("table", extend({}, logic, {
columns: 2,
rows: 6,
columnSize: [1 / 2, 1 / 2],
rowSize: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT,
})), {
type: "bi.center_adapt",
vgap: 2
}]
vgap: 2,
}],
});
this.years.on(BI.Controller.EVENT_CHANGE, function () {
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
this.years.on(Controller.EVENT_CHANGE, (...args) => {
this.fireEvent(Controller.EVENT_CHANGE, ...args);
});
BI.createWidget(BI.extend({
element: this
}, BI.LogicFactory.createLogic("vertical", BI.extend({}, o.logic, {
createWidget(extend({
element: this,
}, LogicFactory.createLogic("vertical", extend({}, logic, {
scrolly: true,
vgap: 5,
hgap: 6,
items: BI.LogicFactory.createLogicItemsByDirection("top", this.years)
items: LogicFactory.createLogicItemsByDirection("top", this.years),
}))));
},
}
isFrontYear: function () {
var o = this.options;
var Y = o.year;
isFrontYear () {
const { min, max } = this.options;
let Y = this.options.year;
Y = Y | 0;
return !!BI.checkDateVoid(BI.YearCalendar.getStartYear(Y) - 1, 1, 1, o.min, o.max)[0];
},
isFinalYear: function () {
var o = this.options, c = this._const;
var Y = o.year;
return !!checkDateVoid(YearCalendar.getStartYear(Y) - 1, 1, 1, min, max)[0];
}
isFinalYear () {
const { min, max } = this.options;
let Y = this.options.year;
Y = Y | 0;
return !!BI.checkDateVoid(BI.YearCalendar.getEndYear(Y) + 1, 1, 1, o.min, o.max)[0];
},
_getItems: function () {
var o = this.options;
var years = this._yearCreator(o.year || this.currentYear);
return !!checkDateVoid(YearCalendar.getEndYear(Y) + 1, 1, 1, min, max)[0];
}
_getItems () {
const { year } = this.options;
const years = this._yearCreator(year || this.currentYear);
// 纵向排列年
var len = years.length, tyears = BI.makeArray(len, "");
var map = [0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11];
BI.each(years, function (i, y) {
tyears[i] = years[map[i]];
const len = years.length, tyears = makeArray(len, "");
const mapArr = [0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11];
each(years, (i, y) => {
tyears[i] = years[mapArr[i]];
});
var items = [];
const items = [];
items.push(tyears.slice(0, 2));
items.push(tyears.slice(2, 4));
items.push(tyears.slice(4, 6));
@ -103,9 +108,7 @@ BI.YearCalendar = BI.inherit(BI.Widget, {
items.push(tyears.slice(8, 10));
items.push(tyears.slice(10, 12));
return BI.map(items, function (i, item) {
return BI.map(item, function (j, td) {
return BI.extend(td, {
return map(items, (i, item) => map(item, (j, td) => extend(td, {
type: "bi.text_item",
cls: "bi-list-item-select bi-border-radius",
textAlign: "center",
@ -115,59 +118,60 @@ BI.YearCalendar = BI.inherit(BI.Widget, {
height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT,
width: 45,
value: td.text,
disabled: td.disabled
});
});
});
},
disabled: td.disabled,
})));
}
_populate: function () {
_populate () {
this.years.populate(this._getItems());
},
}
setMinDate: function (minDate) {
var o = this.options;
if (BI.isNotEmptyString(o.min)) {
setMinDate (minDate) {
const o = this.options;
if (isNotEmptyString(o.min)) {
o.min = minDate;
this._populate();
}
},
}
setMaxDate: function (maxDate) {
var o = this.options;
if (BI.isNotEmptyString(this.options.max)) {
setMaxDate (maxDate) {
const o = this.options;
if (isNotEmptyString(this.options.max)) {
o.max = maxDate;
this._populate();
}
},
}
setValue: function (val) {
setValue (val) {
this.years.setValue([val]);
},
}
getValue: function () {
getValue () {
return this.years.getValue()[0];
}
});
}
// 类方法
BI.extend(BI.YearCalendar, {
extend(YearCalendar, {
INTERVAL: 12,
// 获取显示的第一年
getStartYear: function (year) {
var cur = BI.getDate().getFullYear();
return year - ((year - cur + 3) % BI.YearCalendar.INTERVAL + 12) % BI.YearCalendar.INTERVAL;
getStartYear (year) {
const cur = getDate().getFullYear();
return year - ((year - cur + 3) % YearCalendar.INTERVAL + 12) % YearCalendar.INTERVAL;
},
getEndYear: function (year) {
return BI.YearCalendar.getStartYear(year) + BI.YearCalendar.INTERVAL - 1;
getEndYear (year) {
return YearCalendar.getStartYear(year) + YearCalendar.INTERVAL - 1;
},
getPageByYear: function (year) {
var cur = BI.getDate().getFullYear();
year = BI.YearCalendar.getStartYear(year);
return (year - cur + 3) / BI.YearCalendar.INTERVAL;
}
getPageByYear (year) {
const cur = getDate().getFullYear();
year = YearCalendar.getStartYear(year);
return (year - cur + 3) / YearCalendar.INTERVAL;
},
});
BI.shortcut("bi.year_calendar", BI.YearCalendar);

3
src/case/calendar/index.js

@ -0,0 +1,3 @@
export { CalendarDateItem } from "./calendar.date.item";
export { Calendar } from "./calendar";
export { YearCalendar } from "./calendar.year";

6
src/case/index.js

@ -1,7 +1,13 @@
import * as button from "./button";
import * as calendarItem from "./calendar";
import * as pager from "./pager";
Object.assign(BI, {
...button,
...calendarItem,
...pager,
});
export * from "./button";
export * from "./calendar";
export * from "./pager";

3
src/case/pager/index.js

@ -0,0 +1,3 @@
export { AllCountPager } from "./pager.all.count";
export { DetailPager } from "./pager.detail";
export { DirectionPager } from "./pager.direction";

186
src/case/pager/pager.all.count.js

@ -2,10 +2,15 @@
* 有总页数和总行数的分页控件
* Created by Young's on 2016/10/13.
*/
BI.AllCountPager = BI.inherit(BI.Widget, {
_defaultConfig: function () {
return BI.extend(BI.AllCountPager.superclass._defaultConfig.apply(this, arguments), {
import { shortcut, Widget, extend, isPositiveInteger, createWidget, parseInt, HorizontalAlign, isNotEmptyObject } from "../../core";
// import { TextEditor } from "../../widget/editor/editor.text";
import { Pager } from "../../base/pager/pager";
@shortcut()
export class AllCountPager extends Widget {
static xtype = "bi.all_count_pager";
static EVENT_CHANGE = "EVENT_CHANGE";
_defaultConfig () {
return extend(super._defaultConfig(...arguments), {
extraCls: "bi-all-count-pager",
pagerDirection: "vertical", // 翻页按钮方向,可选值:vertical/horizontal
height: 24,
@ -16,36 +21,36 @@ BI.AllCountPager = BI.inherit(BI.Widget, {
showRowCount: true,
showRowInfo: true,
});
},
_init: function () {
BI.AllCountPager.superclass._init.apply(this, arguments);
var self = this, o = this.options, pagerIconCls = this._getPagerIconCls();
this.editor = BI.createWidget({
}
_init () {
super._init(...arguments);
const { pages, curr, hasPrev, hasNext, firstPage, lastPage, height, showRowCount } = this.options, pagerIconCls = this._getPagerIconCls();
this.editor = createWidget({
type: "bi.small_text_editor",
cls: "pager-editor bi-border-radius",
validationChecker: function (v) {
return (o.pages === 0 && v === "0") || BI.isPositiveInteger(v);
validationChecker (v) {
return (pages === 0 && v === "0") || isPositiveInteger(v);
},
hgap: 4,
vgap: 0,
value: o.curr,
value: curr,
errorText: BI.i18nText("BI-Please_Input_Positive_Integer"),
width: 40,
height: 24,
invisible: o.pages <= 1
invisible: pages <= 1,
});
this.pager = BI.createWidget({
this.pager = createWidget({
type: "bi.pager",
width: 58,
layouts: [{
type: "bi.horizontal",
lgap: 5
lgap: 5,
}],
dynamicShow: false,
pages: o.pages,
curr: o.curr,
pages,
curr,
groups: 0,
first: false,
@ -57,7 +62,7 @@ BI.AllCountPager = BI.inherit(BI.Widget, {
warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
height: 22,
width: 22,
cls: "bi-border bi-border-radius all-pager-prev bi-list-item-select2 " + pagerIconCls.preCls
cls: `bi-border bi-border-radius all-pager-prev bi-list-item-select2 ${pagerIconCls.preCls}`,
},
next: {
type: "bi.icon_button",
@ -66,42 +71,43 @@ BI.AllCountPager = BI.inherit(BI.Widget, {
warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
height: 22,
width: 22,
cls: "bi-border bi-border-radius all-pager-next bi-list-item-select2 " + pagerIconCls.nextCls
cls: `bi-border bi-border-radius all-pager-next bi-list-item-select2 ${pagerIconCls.nextCls}`,
},
hasPrev: o.hasPrev,
hasNext: o.hasNext,
firstPage: o.firstPage,
lastPage: o.lastPage,
invisible: o.pages <= 1
hasPrev,
hasNext,
firstPage,
lastPage,
invisible: pages <= 1,
});
this.editor.on(BI.TextEditor.EVENT_CONFIRM, function () {
self.pager.setValue(BI.parseInt(self.editor.getValue()));
self.fireEvent(BI.AllCountPager.EVENT_CHANGE);
// TODO:需等到TextEditor 完成es6化后才可替换BI.TextEditor
this.editor.on(BI.TextEditor.EVENT_CONFIRM, () => {
this.pager.setValue(parseInt(this.editor.getValue()));
this.fireEvent(AllCountPager.EVENT_CHANGE);
});
this.pager.on(BI.Pager.EVENT_CHANGE, function () {
self.fireEvent(BI.AllCountPager.EVENT_CHANGE);
this.pager.on(Pager.EVENT_CHANGE, () => {
this.fireEvent(AllCountPager.EVENT_CHANGE);
});
this.pager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
self.editor.setValue(self.pager.getCurrentPage());
this.pager.on(Pager.EVENT_AFTER_POPULATE, () => {
this.editor.setValue(this.pager.getCurrentPage());
});
this.allPages = BI.createWidget({
this.allPages = createWidget({
type: "bi.label",
title: o.pages,
height: o.height,
text: "/" + o.pages,
title: pages,
height,
text: `/${pages}`,
lgap: 5,
invisible: o.pages <= 1
invisible: pages <= 1,
});
BI.createWidget(o.showRowCount ? {
createWidget(showRowCount ? {
type: "bi.vertical_adapt",
element: this,
scrollx: false,
columnSize: ["fill", ""],
horizontalAlign: BI.HorizontalAlign.Right,
horizontalAlign: HorizontalAlign.Right,
items: [
this._getRowCountObject(),
this.editor, this.allPages, this.pager
@ -109,126 +115,124 @@ BI.AllCountPager = BI.inherit(BI.Widget, {
} : {
type: "bi.vertical_adapt",
element: this,
items: [this.editor, this.allPages, this.pager]
items: [this.editor, this.allPages, this.pager],
});
},
}
_getPagerIconCls: function () {
var o = this.options;
switch (o.pagerDirection) {
_getPagerIconCls () {
const { pagerDirection } = this.options;
switch (pagerDirection) {
case "horizontal":
return {
preCls: "row-pre-page-h-font ",
nextCls: "row-next-page-h-font "
nextCls: "row-next-page-h-font ",
};
case "vertical":
default:
return {
preCls: "column-pre-page-h-font ",
nextCls: "column-next-page-h-font "
nextCls: "column-next-page-h-font ",
};
}
},
}
_getRowCountObject: function() {
var self = this, o = this.options;
_getRowCountObject() {
const { height, count, rowInfoObject } = this.options;
return {
type: "bi.left",
height: o.height,
height,
scrollable: false,
ref: function (_ref) {
self.rowCountObject = _ref;
ref: _ref => {
this.rowCountObject = _ref;
},
items: [{
type: "bi.label",
height: o.height,
height,
text: BI.i18nText("BI-Basic_Total"),
ref: function (_ref) {
self.prevText = _ref;
}
ref: _ref => {
this.prevText = _ref;
},
}, {
el: {
type: "bi.label",
ref: function (_ref) {
self.rowCount = _ref;
ref: _ref => {
this.rowCount = _ref;
},
cls: "row-count",
height: o.height,
text: o.count,
title: o.count
height,
text: count,
title: count,
},
hgap: 5,
}, {
type: "bi.label",
height: o.height,
height,
text: BI.i18nText("BI-Tiao_Data"),
textAlign: "left"
}, BI.isNotEmptyObject(o.rowInfoObject) ? o.rowInfoObject : null]
textAlign: "left",
}, isNotEmptyObject(rowInfoObject) ? rowInfoObject : null],
};
},
}
setAllPages: function (v) {
this.allPages.setText("/" + v);
setAllPages (v) {
this.allPages.setText(`/${v}`);
this.allPages.setTitle(v);
this.options.pages = v;
this.pager.setAllPages(v);
this.editor.setEnable(v >= 1);
this.setPagerVisible(v > 1);
},
}
setShowRowInfo: function (b) {
setShowRowInfo (b) {
this.options.showRowInfo = b;
this.rowCountObject.setVisible(b);
},
}
setValue: function (v) {
setValue (v) {
this.pager.setValue(v);
},
}
setVPage: function (v) {
setVPage (v) {
this.pager.setValue(v);
},
}
setCount: function (count) {
setCount (count) {
if (this.options.showRowCount) {
this.rowCount.setText(count);
this.rowCount.setTitle(count);
}
},
}
setCountPrevText: function (text) {
setCountPrevText (text) {
if (this.options.showRowCount) {
this.prevText.setText(text);
}
},
}
getCurrentPage: function () {
getCurrentPage () {
return this.pager.getCurrentPage();
},
}
hasPrev: function () {
hasPrev () {
return this.pager.hasPrev();
},
}
hasNext: function () {
hasNext () {
return this.pager.hasNext();
},
}
isShowPager: function () {
isShowPager () {
return this.options.showRowInfo || this.options.pages > 1;
},
}
setPagerVisible: function (b) {
setPagerVisible (b) {
this.editor.setVisible(b);
this.allPages.setVisible(b);
this.pager.setVisible(b);
},
}
populate: function () {
populate () {
this.pager.populate();
this.setPagerVisible(this.options.pages > 1);
}
});
BI.AllCountPager.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.all_count_pager", BI.AllCountPager);
}

224
src/case/pager/pager.detail.js

@ -5,9 +5,15 @@
* @class BI.DetailPager
* @extends BI.Widget
*/
BI.DetailPager = BI.inherit(BI.Widget, {
_defaultConfig: function () {
return BI.extend(BI.DetailPager.superclass._defaultConfig.apply(this, arguments), {
import { shortcut, Widget, extend, emptyFn, result, debounce, isKey, createWidget, createItems, Controller, Events, MIN, MAX } from "../../core";
@shortcut()
export class DetailPager extends Widget {
static xtype = "bi.detail_pager";
static EVENT_CHANGE = "EVENT_CHANGE";
static EVENT_AFTER_POPULATE = "EVENT_AFTER_POPULATE";
_defaultConfig () {
return extend(super._defaultConfig(...arguments), {
baseCls: "bi-detail-pager",
behaviors: {},
layouts: [{
@ -19,11 +25,11 @@ BI.DetailPager = BI.inherit(BI.Widget, {
dynamicShowFirstLast: false, // 是否动态显示首页、尾页
dynamicShowPrevNext: false, // 是否动态显示上一页、下一页
pages: false, // 总页数
curr: function () {
curr () {
return 1;
}, // 初始化当前页
groups: 0, // 连续显示分页数
jump: BI.emptyFn, // 分页的回调函数
jump: emptyFn, // 分页的回调函数
first: false, // 是否显示首页
last: false, // 是否显示尾页
@ -31,35 +37,34 @@ BI.DetailPager = BI.inherit(BI.Widget, {
next: "下一页",
firstPage: 1,
lastPage: function () { // 在万不得已时才会调用这个函数获取最后一页的页码, 主要作用于setValue方法
lastPage () { // 在万不得已时才会调用这个函数获取最后一页的页码, 主要作用于setValue方法
return 1;
},
hasPrev: BI.emptyFn, // pages不可用时有效
hasNext: BI.emptyFn // pages不可用时有效
hasPrev: emptyFn, // pages不可用时有效
hasNext: emptyFn, // pages不可用时有效
});
},
_init: function () {
BI.DetailPager.superclass._init.apply(this, arguments);
var self = this;
this.currPage = BI.result(this.options, "curr");
}
_init () {
super._init(...arguments);
this.currPage = result(this.options, "curr");
// 翻页太灵敏
this._lock = false;
this._debouce = BI.debounce(function () {
self._lock = false;
this._debouce = debounce(() => {
this._lock = false;
}, 300);
this._populate();
},
_populate: function () {
var self = this, o = this.options, view = [], dict = {};
}
_populate () {
const o = this.options, view = [], dict = {};
const { dynamicShow, dynamicShowPrevNext, hasPrev, dynamicShowFirstLast, hasNext, behaviors, layouts, jump } = this.options;
this.empty();
var pages = BI.result(o, "pages");
var curr = BI.result(this, "currPage");
var groups = BI.result(o, "groups");
var first = BI.result(o, "first");
var last = BI.result(o, "last");
var prev = BI.result(o, "prev");
var next = BI.result(o, "next");
const pages = result(o, "pages");
const curr = result(this, "currPage");
let groups = result(o, "groups");
let first = result(o, "first");
let last = result(o, "last");
const prev = result(o, "prev");
const next = result(o, "next");
if (pages === false) {
groups = 0;
@ -73,32 +78,32 @@ BI.DetailPager = BI.inherit(BI.Widget, {
dict.index = Math.ceil((curr + ((groups > 1 && groups !== pages) ? 1 : 0)) / (groups === 0 ? 1 : groups));
// 当前页非首页,则输出上一页
if (((!o.dynamicShow && !o.dynamicShowPrevNext) || curr > 1) && prev !== false) {
if (BI.isKey(prev)) {
if (((!dynamicShow && !dynamicShowPrevNext) || curr > 1) && prev !== false) {
if (isKey(prev)) {
view.push({
text: prev,
value: "prev",
disabled: pages === false ? o.hasPrev(curr) === false : !(curr > 1 && prev !== false)
disabled: pages === false ? hasPrev(curr) === false : !(curr > 1 && prev !== false),
});
} else {
view.push(BI.extend({
disabled: pages === false ? o.hasPrev(curr) === false : !(curr > 1 && prev !== false)
view.push(extend({
disabled: pages === false ? hasPrev(curr) === false : !(curr > 1 && prev !== false),
}, prev));
}
}
// 当前组非首组,则输出首页
if (((!o.dynamicShow && !o.dynamicShowFirstLast) || (dict.index > 1 && groups !== 0)) && first) {
if (((!dynamicShow && !dynamicShowFirstLast) || (dict.index > 1 && groups !== 0)) && first) {
view.push({
text: first,
value: "first",
disabled: !(dict.index > 1 && groups !== 0)
disabled: !(dict.index > 1 && groups !== 0),
});
if (dict.index > 1 && groups !== 0) {
view.push({
type: "bi.label",
cls: "page-ellipsis",
text: "\u2026"
text: "\u2026",
});
}
}
@ -107,13 +112,14 @@ BI.DetailPager = BI.inherit(BI.Widget, {
dict.poor = Math.floor((groups - 1) / 2);
dict.start = dict.index > 1 ? curr - dict.poor : 1;
dict.end = dict.index > 1 ? (function () {
var max = curr + (groups - dict.poor - 1);
const max = curr + (groups - dict.poor - 1);
return max > pages ? pages : max;
}()) : groups;
if (dict.end - dict.start < groups - 1) { // 最后一组状态
dict.start = dict.end - groups + 1;
}
var s = dict.start, e = dict.end;
let s = dict.start, e = dict.end;
if (first && last && (dict.index > 1 && groups !== 0) && (pages > groups && dict.end < pages && groups !== 0)) {
s++;
e--;
@ -123,164 +129,166 @@ BI.DetailPager = BI.inherit(BI.Widget, {
view.push({
text: s,
value: s,
selected: true
selected: true,
});
} else {
view.push({
text: s,
value: s
value: s,
});
}
}
// 总页数大于连续分页数,且当前组最大页小于总页,输出尾页
if (((!o.dynamicShow && !o.dynamicShowFirstLast) || (pages > groups && dict.end < pages && groups !== 0)) && last) {
if (((!dynamicShow && !dynamicShowFirstLast) || (pages > groups && dict.end < pages && groups !== 0)) && last) {
if (pages > groups && dict.end < pages && groups !== 0) {
view.push({
type: "bi.label",
cls: "page-ellipsis",
text: "\u2026"
text: "\u2026",
});
}
view.push({
text: last,
value: "last",
disabled: !(pages > groups && dict.end < pages && groups !== 0)
disabled: !(pages > groups && dict.end < pages && groups !== 0),
});
}
// 当前页不为尾页时,输出下一页
dict.flow = !prev && groups === 0;
if (((!o.dynamicShow && !o.dynamicShowPrevNext) && next) || (curr !== pages && next || dict.flow)) {
if (((!dynamicShow && !dynamicShowPrevNext) && next) || (curr !== pages && next || dict.flow)) {
view.push((function () {
if (BI.isKey(next)) {
if (isKey(next)) {
if (pages === false) {
return {text: next, value: "next", disabled: o.hasNext(curr) === false};
return { text: next, value: "next", disabled: hasNext(curr) === false };
}
return (dict.flow && curr === pages)
?
{text: next, value: "next", disabled: true}
{ text: next, value: "next", disabled: true }
:
{text: next, value: "next", disabled: !(curr !== pages && next || dict.flow)};
{ text: next, value: "next", disabled: !(curr !== pages && next || dict.flow) };
}
return BI.extend({
disabled: pages === false ? o.hasNext(curr) === false : !(curr !== pages && next || dict.flow)
}, next);
return extend({
disabled: pages === false ? hasNext(curr) === false : !(curr !== pages && next || dict.flow),
}, next);
}()));
}
this.button_group = BI.createWidget({
this.button_group = createWidget({
type: "bi.button_group",
element: this,
items: BI.createItems(view, {
items: createItems(view, {
cls: "page-item bi-border bi-list-item-active",
height: 23
height: 23,
}),
behaviors: o.behaviors,
layouts: o.layouts
behaviors,
layouts,
});
this.button_group.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
if (self._lock === true) {
this.button_group.on(Controller.EVENT_CHANGE, (type, value, obj, ...args) => {
if (this._lock === true) {
return;
}
self._lock = true;
self._debouce();
if (type === BI.Events.CLICK) {
var v = self.button_group.getValue()[0];
this._lock = true;
this._debouce();
if (type === Events.CLICK) {
const v = this.button_group.getValue()[0];
switch (v) {
case "first":
self.currPage = 1;
this.currPage = 1;
break;
case "last":
self.currPage = pages;
this.currPage = pages;
break;
case "prev":
self.currPage--;
this.currPage--;
break;
case "next":
self.currPage++;
this.currPage++;
break;
default:
self.currPage = v;
this.currPage = v;
break;
}
o.jump.apply(self, [{
pages: pages,
curr: self.currPage
jump.apply(this, [{
pages,
curr: this.currPage,
}]);
self._populate();
self.fireEvent(BI.DetailPager.EVENT_CHANGE, obj);
this._populate();
this.fireEvent(DetailPager.EVENT_CHANGE, obj);
}
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
this.fireEvent(Controller.EVENT_CHANGE, type, value, obj, ...args);
});
this.fireEvent(BI.DetailPager.EVENT_AFTER_POPULATE);
},
this.fireEvent(DetailPager.EVENT_AFTER_POPULATE);
}
getCurrentPage: function () {
getCurrentPage () {
return this.currPage;
},
}
setAllPages: function (pages) {
setAllPages (pages) {
this.options.pages = pages;
this._populate();
},
}
hasPrev: function (v) {
hasPrev (v) {
v || (v = 1);
var o = this.options;
var pages = this.options.pages;
return pages === false ? o.hasPrev(v) : v > 1;
},
const { hasPrev } = this.options;
const pages = this.options.pages;
hasNext: function (v) {
return pages === false ? hasPrev(v) : v > 1;
}
hasNext (v) {
v || (v = 1);
var o = this.options;
var pages = this.options.pages;
return pages === false ? o.hasNext(v) : v < pages;
},
const { hasNext } = this.options;
const pages = this.options.pages;
return pages === false ? hasNext(v) : v < pages;
}
setValue: function (v) {
var o = this.options;
setValue (v) {
const o = this.options;
const { pages } = this.options;
v = v || 0;
v = v < 1 ? 1 : v;
if (o.pages === false) {
var lastPage = BI.result(o, "lastPage"), firstPage = 1;
this.currPage = v > lastPage ? lastPage : ((firstPage = BI.result(o, "firstPage")), (v < firstPage ? firstPage : v));
if (pages === false) {
const lastPage = result(o, "lastPage");
let firstPage = 1;
this.currPage = v > lastPage ? lastPage : ((firstPage = result(o, "firstPage")), (v < firstPage ? firstPage : v));
} else {
v = v > o.pages ? o.pages : v;
v = v > pages ? pages : v;
this.currPage = v;
}
this._populate();
},
}
getValue: function () {
var val = this.button_group.getValue()[0];
getValue () {
const val = this.button_group.getValue()[0];
switch (val) {
case "prev":
return -1;
case "next":
return 1;
case "first":
return BI.MIN;
return MIN;
case "last":
return BI.MAX;
return MAX;
default :
return val;
}
},
}
attr: function (key, value) {
BI.DetailPager.superclass.attr.apply(this, arguments);
attr (key, value) {
super.attr(...arguments);
if (key === "curr") {
this.currPage = BI.result(this.options, "curr");
this.currPage = result(this.options, "curr");
}
}
},
populate: function () {
populate () {
this._populate();
}
});
BI.DetailPager.EVENT_CHANGE = "EVENT_CHANGE";
BI.DetailPager.EVENT_AFTER_POPULATE = "EVENT_AFTER_POPULATE";
BI.shortcut("bi.detail_pager", BI.DetailPager);
}

167
src/case/pager/pager.direction.js

@ -5,80 +5,83 @@
* @class BI.DirectionPager
* @extends BI.Widget
*/
BI.DirectionPager = BI.inherit(BI.Widget, {
_defaultConfig: function () {
return BI.extend(BI.DirectionPager.superclass._defaultConfig.apply(this, arguments), {
import { shortcut, Widget, extend, emptyFn, createWidget } from "../../core";
import { Pager } from "../../base/pager/pager";
@shortcut()
export class DirectionPager extends Widget {
static EVENT_CHANGE = "EVENT_CHANGE";
static xtype = "bi.direction_pager";
_defaultConfig () {
return extend(super._defaultConfig(...arguments), {
baseCls: "bi-direction-pager",
height: 24,
horizontal: {
pages: false, // 总页数
curr: 1, // 初始化当前页, pages为数字时可用
hasPrev: BI.emptyFn,
hasNext: BI.emptyFn,
hasPrev: emptyFn,
hasNext: emptyFn,
firstPage: 1,
lastPage: BI.emptyFn
lastPage: emptyFn,
},
vertical: {
pages: false, // 总页数
curr: 1, // 初始化当前页, pages为数字时可用
hasPrev: BI.emptyFn,
hasNext: BI.emptyFn,
hasPrev: emptyFn,
hasNext: emptyFn,
firstPage: 1,
lastPage: BI.emptyFn
}
});
lastPage: emptyFn,
},
_init: function () {
BI.DirectionPager.superclass._init.apply(this, arguments);
var self = this, o = this.options;
var v = o.vertical, h = o.horizontal;
});
}
_init () {
super._init(...arguments);
this._createVPager();
this._createHPager();
this.layout = BI.createWidget({
this.layout = createWidget({
type: "bi.absolute",
scrollable: false,
element: this,
items: [{
el: this.vpager,
top: 0,
right: 86
right: 86,
}, {
el: this.vlabel,
top: 0,
right: 110
right: 110,
}, {
el: this.hpager,
top: 0,
right: 0
right: 0,
}, {
el: this.hlabel,
top: 0,
right: 24
}]
right: 24,
}],
});
},
}
_createVPager: function () {
var self = this, o = this.options;
var v = o.vertical;
this.vlabel = BI.createWidget({
_createVPager () {
const v = this.options.vertical;
this.vlabel = createWidget({
type: "bi.label",
width: 24,
height: 24,
value: v.curr,
title: v.curr,
invisible: true
invisible: true,
});
this.vpager = BI.createWidget({
this.vpager = createWidget({
type: "bi.pager",
width: 72,
layouts: [{
type: "bi.horizontal",
scrollx: false,
rgap: 24
rgap: 24,
}],
invisible: true,
@ -96,7 +99,7 @@ BI.DirectionPager = BI.inherit(BI.Widget, {
warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
height: 22,
width: 22,
cls: "bi-border bi-border-radius direction-pager-prev column-pre-page-h-font bi-list-item-select2"
cls: "bi-border bi-border-radius direction-pager-prev column-pre-page-h-font bi-list-item-select2",
},
next: {
type: "bi.icon_button",
@ -105,42 +108,40 @@ BI.DirectionPager = BI.inherit(BI.Widget, {
warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
height: 22,
width: 22,
cls: "bi-border bi-border-radius direction-pager-next column-next-page-h-font bi-list-item-select2"
cls: "bi-border bi-border-radius direction-pager-next column-next-page-h-font bi-list-item-select2",
},
hasPrev: v.hasPrev,
hasNext: v.hasNext,
firstPage: v.firstPage,
lastPage: v.lastPage
lastPage: v.lastPage,
});
this.vpager.on(BI.Pager.EVENT_CHANGE, function () {
self.fireEvent(BI.DirectionPager.EVENT_CHANGE);
this.vpager.on(Pager.EVENT_CHANGE, () => {
this.fireEvent(DirectionPager.EVENT_CHANGE);
});
this.vpager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
self.vlabel.setValue(this.getCurrentPage());
self.vlabel.setTitle(this.getCurrentPage());
this.vpager.on(Pager.EVENT_AFTER_POPULATE, () => {
this.vlabel.setValue(this.vpager.getCurrentPage());
this.vlabel.setTitle(this.vpager.getCurrentPage());
});
},
_createHPager: function () {
var self = this, o = this.options;
var h = o.horizontal;
this.hlabel = BI.createWidget({
}
_createHPager () {
const h = this.options.horizontal;
this.hlabel = createWidget({
type: "bi.label",
width: 24,
height: 24,
value: h.curr,
title: h.curr,
invisible: true
invisible: true,
});
this.hpager = BI.createWidget({
this.hpager = createWidget({
type: "bi.pager",
width: 72,
layouts: [{
type: "bi.horizontal",
scrollx: false,
rgap: 24
rgap: 24,
}],
invisible: true,
@ -158,7 +159,7 @@ BI.DirectionPager = BI.inherit(BI.Widget, {
warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
height: 22,
width: 22,
cls: "bi-border bi-border-radius direction-pager-prev row-pre-page-h-font bi-list-item-select2"
cls: "bi-border bi-border-radius direction-pager-prev row-pre-page-h-font bi-list-item-select2",
},
next: {
type: "bi.icon_button",
@ -167,74 +168,74 @@ BI.DirectionPager = BI.inherit(BI.Widget, {
warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
height: 22,
width: 22,
cls: "bi-border bi-border-radius direction-pager-next row-next-page-h-font bi-list-item-select2"
cls: "bi-border bi-border-radius direction-pager-next row-next-page-h-font bi-list-item-select2",
},
hasPrev: h.hasPrev,
hasNext: h.hasNext,
firstPage: h.firstPage,
lastPage: h.lastPage
lastPage: h.lastPage,
});
this.hpager.on(BI.Pager.EVENT_CHANGE, function () {
self.fireEvent(BI.DirectionPager.EVENT_CHANGE);
this.hpager.on(Pager.EVENT_CHANGE, () => {
this.fireEvent(DirectionPager.EVENT_CHANGE);
});
this.hpager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
self.hlabel.setValue(this.getCurrentPage());
self.hlabel.setTitle(this.getCurrentPage());
this.hpager.on(Pager.EVENT_AFTER_POPULATE, () => {
this.hlabel.setValue(this.hpager.getCurrentPage());
this.hlabel.setTitle(this.hpager.getCurrentPage());
});
},
}
getVPage: function () {
getVPage () {
return this.vpager.getCurrentPage();
},
}
getHPage: function () {
getHPage () {
return this.hpager.getCurrentPage();
},
}
setVPage: function (v) {
setVPage (v) {
this.vpager.setValue(v);
this.vlabel.setValue(v);
this.vlabel.setTitle(v);
},
}
setHPage: function (v) {
setHPage (v) {
this.hpager.setValue(v);
this.hlabel.setValue(v);
this.hlabel.setTitle(v);
},
}
hasVNext: function () {
hasVNext () {
return this.vpager.hasNext();
},
}
hasHNext: function () {
hasHNext () {
return this.hpager.hasNext();
},
}
hasVPrev: function () {
hasVPrev () {
return this.vpager.hasPrev();
},
}
hasHPrev: function () {
hasHPrev () {
return this.hpager.hasPrev();
},
}
setHPagerVisible: function (b) {
setHPagerVisible (b) {
this.hpager.setVisible(b);
this.hlabel.setVisible(b);
},
}
setVPagerVisible: function (b) {
setVPagerVisible (b) {
this.vpager.setVisible(b);
this.vlabel.setVisible(b);
},
}
populate: function () {
populate () {
this.vpager.populate();
this.hpager.populate();
var vShow = false, hShow = false;
let vShow = false, hShow = false;
if (!this.hasHNext() && !this.hasHPrev()) {
this.setHPagerVisible(false);
} else {
@ -248,8 +249,8 @@ BI.DirectionPager = BI.inherit(BI.Widget, {
vShow = true;
}
this.setVisible(hShow || vShow);
var num = [86, 110, 0, 24];
var items = this.layout.attr("items");
const num = [86, 110, 0, 24];
const items = this.layout.attr("items");
if (vShow === true && hShow === true) {
items[0].right = num[0];
@ -265,12 +266,10 @@ BI.DirectionPager = BI.inherit(BI.Widget, {
}
this.layout.attr("items", items);
this.layout.resize();
},
}
clear: function () {
clear () {
this.vpager.attr("curr", 1);
this.hpager.attr("curr", 1);
}
});
BI.DirectionPager.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.direction_pager", BI.DirectionPager);
}

Loading…
Cancel
Save