fineui是帆软报表和BI产品线所使用的前端框架。
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.
 
 
 

127 lines
3.4 KiB

import { shortcut, Widget, createWidget } from "@/core";
import { SingleSlider, SingleSliderNormal } from "@/widget";
@shortcut()
export class Slider extends Widget {
static xtype = "demo.slider";
props = { baseCls: "demo-slider", width: 300, height: 50, min: 0, max: 100 };
render() {
const self = this,
o = this.options;
const singleSlider = createWidget({
type: "bi.single_slider",
digit: 0,
width: o.width,
height: o.height,
cls: "layout-bg-white",
value: 30,
min: 10,
max: 100,
});
singleSlider.on(SingleSlider.EVENT_CHANGE, function () {
console.log(this.getValue());
});
const normalSingleSlider = createWidget({
type: "bi.single_slider_normal",
width: o.width,
height: 30,
cls: "layout-bg-white",
min: o.min,
max: o.max,
value: 30,
});
normalSingleSlider.on(SingleSliderNormal.EVENT_DRAG, function () {
console.log(this.getValue());
});
const singleSliderLabel = createWidget({
type: "bi.single_slider_label",
width: o.width,
height: o.height,
digit: 0,
unit: "个",
cls: "layout-bg-white",
min: o.min,
max: o.max,
value: 10,
});
const intervalSlider = createWidget({
type: "bi.interval_slider",
width: o.width,
digit: 0,
cls: "layout-bg-white",
min: o.min,
max: o.max,
value: {
min: 10,
max: 70,
},
});
const intervalSliderLabel = createWidget({
type: "bi.interval_slider",
width: o.width,
unit: "px",
cls: "layout-bg-white",
digit: 1,
min: 0,
max: 120,
value: {
min: 60,
max: 120,
},
});
return {
type: "bi.vertical",
element: this,
items: [
{
type: "bi.center_adapt",
items: [
{
el: singleSlider,
}
],
},
{
type: "bi.center_adapt",
items: [
{
el: normalSingleSlider,
}
],
},
{
type: "bi.center_adapt",
items: [
{
el: singleSliderLabel,
}
],
},
{
type: "bi.center_adapt",
items: [
{
el: intervalSlider,
}
],
},
{
type: "bi.center_adapt",
items: [
{
el: intervalSliderLabel,
}
],
}
],
vgap: 20,
};
}
}