From 7074a0dcbeca2179560858ffbd025e439864bc1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joker=2EWang-=E7=8E=8B=E9=A1=BA?= Date: Tue, 10 Jan 2023 14:00:18 +0800 Subject: [PATCH 1/4] =?UTF-8?q?KERNEL-14045=20refactor:=20calendar?= =?UTF-8?q?=E5=92=8Cpager=E6=96=87=E4=BB=B6es6=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/case/calendar/calendar.date.item.js | 70 ++++--- src/case/calendar/calendar.js | 255 ++++++++++++----------- src/case/calendar/calendar.year.js | 198 +++++++++--------- src/case/calendar/index.js | 3 + src/case/index.js | 6 + src/case/pager/index.js | 3 + src/case/pager/pager.all.count.js | 206 ++++++++++--------- src/case/pager/pager.detail.js | 260 ++++++++++++------------ src/case/pager/pager.direction.js | 167 ++++++++------- 9 files changed, 605 insertions(+), 563 deletions(-) create mode 100644 src/case/calendar/index.js create mode 100644 src/case/pager/index.js diff --git a/src/case/calendar/calendar.date.item.js b/src/case/calendar/calendar.date.item.js index 3b2d865a0..eaac1234e 100644 --- a/src/case/calendar/calendar.date.item.js +++ b/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, - } - }, + }; + } + + static xtype = "bi.calendar_date_item"; - render: function () { - var self = this, o = this.options; + 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); +} diff --git a/src/case/calendar/calendar.js b/src/case/calendar/calendar.js index 5645fb1f5..fdbd6b984 100644 --- a/src/case/calendar/calendar.js +++ b/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)); + + return !!checkDateVoid(newDate.getFullYear(), newDate.getMonth(), newDate.getDate(), min, max)[0]; + } - isFinalDate: function () { - var o = this.options, c = this._const; - var Y = o.year, M = o.month, De = BI.getDate(), day = De.getDay(); + 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,93 +161,94 @@ 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; - if (month > 12) { - month = 1; - year++; - } else if (month < 1) { - month = 12; - year--; - } - return BI.extend(td, { - type: "bi.calendar_date_item", - once: false, - forceSelected: true, - value: year + "-" + month + "-" + td.text, - disabled: td.disabled, - cls: td.lastMonth || td.nextMonth ? "bi-tips" : "", - lgap: 2, - rgap: 2, - tgap: 4, - bgap: 4 - // selected: td.currentDay - }); + 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++; + } else if (month < 1) { + month = 12; + year--; + } + + return extend(td, { + type: "bi.calendar_date_item", + once: false, + forceSelected: true, + value: `${year}-${month}-${td.text}`, + disabled: td.disabled, + cls: td.lastMonth || td.nextMonth ? "bi-tips" : "", + lgap: 2, + rgap: 2, + tgap: 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: function () { - var date = this.days.getValue()[0].match(/\d+/g); + getValue () { + const 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); diff --git a/src/case/calendar/calendar.year.js b/src/case/calendar/calendar.year.js index 95fcaccdb..b225c3e8a 100644 --- a/src/case/calendar/calendar.year.js +++ b/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(); + } + _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]; - }, + + return !!checkDateVoid(YearCalendar.getStartYear(Y) - 1, 1, 1, min, max)[0]; + } - isFinalYear: function () { - var o = this.options, c = this._const; - var Y = o.year; + 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]; - }, + + return !!checkDateVoid(YearCalendar.getEndYear(Y) + 1, 1, 1, min, max)[0]; + } - _getItems: function () { - var o = this.options; - var years = this._yearCreator(o.year || this.currentYear); + _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,71 +108,70 @@ 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, { - type: "bi.text_item", - cls: "bi-list-item-select bi-border-radius", - textAlign: "center", - whiteSpace: "normal", - once: false, - forceSelected: true, - height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT, - width: 45, - value: td.text, - disabled: td.disabled - }); - }); - }); - }, + 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", + whiteSpace: "normal", + once: false, + forceSelected: true, + height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT, + width: 45, + value: td.text, + 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); + diff --git a/src/case/calendar/index.js b/src/case/calendar/index.js new file mode 100644 index 000000000..17c7f5fac --- /dev/null +++ b/src/case/calendar/index.js @@ -0,0 +1,3 @@ +export { CalendarDateItem } from "./calendar.date.item"; +export { Calendar } from "./calendar"; +export { YearCalendar } from "./calendar.year"; diff --git a/src/case/index.js b/src/case/index.js index 5e8b11baf..40247c96e 100644 --- a/src/case/index.js +++ b/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"; diff --git a/src/case/pager/index.js b/src/case/pager/index.js new file mode 100644 index 000000000..ec62a806d --- /dev/null +++ b/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"; diff --git a/src/case/pager/pager.all.count.js b/src/case/pager/pager.all.count.js index 8e03d57ca..2b8f0f9b5 100644 --- a/src/case/pager/pager.all.count.js +++ b/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) { - case "horizontal": - return { - preCls: "row-pre-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 " - }; + } + + _getPagerIconCls () { + const { pagerDirection } = this.options; + switch (pagerDirection) { + case "horizontal": + return { + preCls: "row-pre-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 ", + }; } - }, + } - _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); \ No newline at end of file +} diff --git a/src/case/pager/pager.detail.js b/src/case/pager/pager.detail.js index 36e8392f6..2516aac1c 100644 --- a/src/case/pager/pager.detail.js +++ b/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) + + 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; - break; - case "last": - self.currPage = pages; - break; - case "prev": - self.currPage--; - break; - case "next": - self.currPage++; - break; - default: - self.currPage = v; - break; + case "first": + this.currPage = 1; + break; + case "last": + this.currPage = pages; + break; + case "prev": + this.currPage--; + break; + case "next": + this.currPage++; + break; + default: + 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; + + return pages === false ? hasPrev(v) : v > 1; + } - hasNext: function (v) { + 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; - case "last": - return BI.MAX; - default : - return val; + case "prev": + return -1; + case "next": + return 1; + case "first": + return MIN; + case "last": + 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); +} diff --git a/src/case/pager/pager.direction.js b/src/case/pager/pager.direction.js index dcc0ab96b..ab375792c 100644 --- a/src/case/pager/pager.direction.js +++ b/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); \ No newline at end of file +} From 95ccea46754dd75d1696a5c0af686833fb4f146d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joker=2EWang-=E7=8E=8B=E9=A1=BA?= Date: Tue, 10 Jan 2023 15:09:07 +0800 Subject: [PATCH 2/4] =?UTF-8?q?KERNEL-14045=20refactor:=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=BC=95=E7=94=A8=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/case/calendar/calendar.date.item.js | 2 +- src/case/pager/pager.all.count.js | 2 +- src/case/pager/pager.direction.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/case/calendar/calendar.date.item.js b/src/case/calendar/calendar.date.item.js index eaac1234e..217fad14e 100644 --- a/src/case/calendar/calendar.date.item.js +++ b/src/case/calendar/calendar.date.item.js @@ -3,7 +3,7 @@ */ import { shortcut } from "../../core"; -import { BasicButton } from "../../base/single/button/button.basic"; +import { BasicButton } from "../../base"; @shortcut() export class CalendarDateItem extends BasicButton { props() { diff --git a/src/case/pager/pager.all.count.js b/src/case/pager/pager.all.count.js index 2b8f0f9b5..9475772c5 100644 --- a/src/case/pager/pager.all.count.js +++ b/src/case/pager/pager.all.count.js @@ -4,7 +4,7 @@ */ import { shortcut, Widget, extend, isPositiveInteger, createWidget, parseInt, HorizontalAlign, isNotEmptyObject } from "../../core"; // import { TextEditor } from "../../widget/editor/editor.text"; -import { Pager } from "../../base/pager/pager"; +import { Pager } from "../../base"; @shortcut() export class AllCountPager extends Widget { static xtype = "bi.all_count_pager"; diff --git a/src/case/pager/pager.direction.js b/src/case/pager/pager.direction.js index ab375792c..731b7655b 100644 --- a/src/case/pager/pager.direction.js +++ b/src/case/pager/pager.direction.js @@ -7,7 +7,7 @@ */ import { shortcut, Widget, extend, emptyFn, createWidget } from "../../core"; -import { Pager } from "../../base/pager/pager"; +import { Pager } from "../../base"; @shortcut() export class DirectionPager extends Widget { static EVENT_CHANGE = "EVENT_CHANGE"; From 9f6d614bdd8b82b03477b9eb639386c0eb20b4ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joker=2EWang-=E7=8E=8B=E9=A1=BA?= Date: Tue, 10 Jan 2023 15:55:27 +0800 Subject: [PATCH 3/4] =?UTF-8?q?KERNEL-14045=20refactor:=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=88=AB=E5=90=8D=E4=BF=AE=E6=94=B9=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/case/calendar/calendar.date.item.js | 4 ++-- src/case/calendar/calendar.js | 2 +- src/case/calendar/calendar.year.js | 2 +- src/case/pager/pager.all.count.js | 2 +- src/case/pager/pager.detail.js | 2 +- src/case/pager/pager.direction.js | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/case/calendar/calendar.date.item.js b/src/case/calendar/calendar.date.item.js index 217fad14e..3322de754 100644 --- a/src/case/calendar/calendar.date.item.js +++ b/src/case/calendar/calendar.date.item.js @@ -2,8 +2,8 @@ * 专门为calendar的视觉加的button,作为私有button,不能配置任何属性,也不要用这个玩意 */ -import { shortcut } from "../../core"; -import { BasicButton } from "../../base"; +import { shortcut } from "@/core"; +import { BasicButton } from "@/base"; @shortcut() export class CalendarDateItem extends BasicButton { props() { diff --git a/src/case/calendar/calendar.js b/src/case/calendar/calendar.js index fdbd6b984..da9a41442 100644 --- a/src/case/calendar/calendar.js +++ b/src/case/calendar/calendar.js @@ -3,7 +3,7 @@ * @class BI.Calendar * @extends BI.Widget */ -import { shortcut, Widget, getDate, each, range, extend, isLeapYear, Date, StartOfWeek, checkDateVoid, map, createWidget, createItems, LogicFactory, Controller, getShortDayName, getOffsetDate, isNotEmptyString, parseInt } from "../../core"; +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"; diff --git a/src/case/calendar/calendar.year.js b/src/case/calendar/calendar.year.js index b225c3e8a..4c782da5b 100644 --- a/src/case/calendar/calendar.year.js +++ b/src/case/calendar/calendar.year.js @@ -3,7 +3,7 @@ * @class BI.YearCalendar * @extends BI.Widget */ -import { shortcut, Widget, extend, parseDateTime, range, checkDateVoid, print, getDate, each, createWidget, createItems, LogicFactory, Controller, makeArray, map, isNotEmptyString } from "../../core"; +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"; diff --git a/src/case/pager/pager.all.count.js b/src/case/pager/pager.all.count.js index 9475772c5..4e5a30e18 100644 --- a/src/case/pager/pager.all.count.js +++ b/src/case/pager/pager.all.count.js @@ -2,7 +2,7 @@ * 有总页数和总行数的分页控件 * Created by Young's on 2016/10/13. */ -import { shortcut, Widget, extend, isPositiveInteger, createWidget, parseInt, HorizontalAlign, isNotEmptyObject } from "../../core"; +import { shortcut, Widget, extend, isPositiveInteger, createWidget, parseInt, HorizontalAlign, isNotEmptyObject } from "@/core"; // import { TextEditor } from "../../widget/editor/editor.text"; import { Pager } from "../../base"; @shortcut() diff --git a/src/case/pager/pager.detail.js b/src/case/pager/pager.detail.js index 2516aac1c..37e56edc5 100644 --- a/src/case/pager/pager.detail.js +++ b/src/case/pager/pager.detail.js @@ -6,7 +6,7 @@ * @extends BI.Widget */ -import { shortcut, Widget, extend, emptyFn, result, debounce, isKey, createWidget, createItems, Controller, Events, MIN, MAX } from "../../core"; +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"; diff --git a/src/case/pager/pager.direction.js b/src/case/pager/pager.direction.js index 731b7655b..512b2cc20 100644 --- a/src/case/pager/pager.direction.js +++ b/src/case/pager/pager.direction.js @@ -6,8 +6,8 @@ * @extends BI.Widget */ -import { shortcut, Widget, extend, emptyFn, createWidget } from "../../core"; -import { Pager } from "../../base"; +import { shortcut, Widget, extend, emptyFn, createWidget } from "@/core"; +import { Pager } from "@/base"; @shortcut() export class DirectionPager extends Widget { static EVENT_CHANGE = "EVENT_CHANGE"; From 87bf4511820a8ca32c7dbe80aa4e987d6fcd973d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joker=2EWang-=E7=8E=8B=E9=A1=BA?= Date: Tue, 10 Jan 2023 16:06:27 +0800 Subject: [PATCH 4/4] =?UTF-8?q?KERNEL-14045=20refactor:=20=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E5=88=AB=E5=90=8D=E4=BF=AE=E6=94=B9=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/case/pager/pager.all.count.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/case/pager/pager.all.count.js b/src/case/pager/pager.all.count.js index 4e5a30e18..2dfdc0c3c 100644 --- a/src/case/pager/pager.all.count.js +++ b/src/case/pager/pager.all.count.js @@ -3,8 +3,8 @@ * Created by Young's on 2016/10/13. */ import { shortcut, Widget, extend, isPositiveInteger, createWidget, parseInt, HorizontalAlign, isNotEmptyObject } from "@/core"; -// import { TextEditor } from "../../widget/editor/editor.text"; -import { Pager } from "../../base"; +// import { TextEditor } from "@/widget/editor/editor.text"; +import { Pager } from "@/base"; @shortcut() export class AllCountPager extends Widget { static xtype = "bi.all_count_pager";