You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.1 KiB
83 lines
2.1 KiB
import { shortcut, emptyFn } from "@/core"; |
|
import { Single } from "../0.single"; |
|
|
|
@shortcut() |
|
class LoadingBar extends Single { |
|
static xtype = "bi.loading_bar"; |
|
|
|
_defaultConfig() { |
|
const conf = super._defaultConfig.apply(this, arguments); |
|
|
|
return { |
|
...conf, |
|
baseCls: `${conf.baseCls || ""} bi-loading-bar bi-tips`, |
|
height: 30, |
|
handler: emptyFn, |
|
}; |
|
} |
|
|
|
render() { |
|
this.loaded = BI.createWidget({ |
|
type: "bi.text_button", |
|
cls: "loading-text bi-list-item-simple", |
|
text: BI.i18nText("BI-Load_More"), |
|
width: 120, |
|
handler: this.options.handler, |
|
}); |
|
this.loaded.on(BI.Controller.EVENT_CHANGE, (...args) => { |
|
this.fireEvent(BI.Controller.EVENT_CHANGE, args); |
|
}); |
|
|
|
this.loading = BI.createWidget({ |
|
type: "bi.layout", |
|
width: this.options.height, |
|
height: this.options.height, |
|
cls: "loading-background cursor-default", |
|
}); |
|
const loaded = BI.createWidget({ |
|
type: "bi.center_adapt", |
|
items: [this.loaded], |
|
}); |
|
const loading = BI.createWidget({ |
|
type: "bi.center_adapt", |
|
items: [this.loading], |
|
}); |
|
this.cardLayout = BI.createWidget({ |
|
type: "bi.card", |
|
element: this, |
|
items: [ |
|
{ |
|
el: loaded, |
|
cardName: "loaded", |
|
}, { |
|
el: loading, |
|
cardName: "loading", |
|
} |
|
], |
|
}); |
|
this.invisible(); |
|
} |
|
|
|
_reset() { |
|
this.visible(); |
|
this.loaded.setText(BI.i18nText("BI-Load_More")); |
|
this.loaded.enable(); |
|
} |
|
|
|
setLoaded() { |
|
this._reset(); |
|
this.cardLayout.showCardByName("loaded"); |
|
} |
|
|
|
setEnd() { |
|
this.setLoaded(); |
|
this.loaded.setText(BI.i18nText("BI-No_More_Data")); |
|
this.loaded.disable(); |
|
} |
|
|
|
setLoading() { |
|
this._reset(); |
|
this.cardLayout.showCardByName("loading"); |
|
} |
|
} |
|
|
|
|