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.
 
 
 

219 lines
8.8 KiB

import { shortcut, Widget, UUID, map, range } from "@/core";
import { Popovers } from "@/base";
@shortcut()
export class Func extends Widget {
static xtype = "demo.popover";
props = { baseCls: "demo-func" };
render() {
const id = UUID();
let body;
return {
type: "bi.vertical",
vgap: 10,
items: [
{
type: "bi.text_button",
text: "点击弹出Popover(normal size & fixed)",
height: 30,
handler() {
Popovers.remove(id);
Popovers.create(id, {
type: "bi.bar_popover",
size: "normal",
header: {
type: "bi.label",
text: "这个是header",
},
body: {
type: "bi.label",
text: "这个是body",
},
}).open(id);
},
},
{
type: "bi.text_button",
text: "点击弹出Popover(small size & fixed)",
height: 30,
handler() {
Popovers.remove(id);
Popovers.create(id, {
type: "bi.bar_popover",
size: "small",
header: {
type: "bi.label",
text: "这个是header",
},
body: {
type: "bi.label",
text: "这个是body",
},
}).open(id);
},
},
{
type: "bi.text_button",
text: "点击弹出Popover(big size & fixed)",
height: 30,
handler() {
Popovers.remove(id);
Popovers.create(id, {
type: "bi.bar_popover",
size: "big",
header: {
type: "bi.label",
text: "这个是header",
},
body: {
type: "bi.label",
text: "这个是body",
},
}).open(id);
},
},
{
type: "bi.text_button",
text: "点击弹出Popover(normal size & adapt body区域高度是300)",
height: 30,
handler() {
Popovers.remove(id);
Popovers.create(id, {
type: "bi.bar_popover",
size: "normal",
logic: {
dynamic: true,
},
header: {
type: "bi.label",
text: "这个是header",
},
body: {
type: "bi.vertical",
items: [
{
type: "bi.button_group",
ref() {
body = this;
},
items: map(range(0, 10), () => {
return {
type: "bi.label",
text: "1",
height: 30,
};
}),
layouts: [
{
type: "bi.vertical",
}
],
}
],
},
}).open(id);
},
},
{
type: "bi.text_button",
text: "点击弹出Popover(small size & adapt body区域高度是900)",
height: 30,
handler() {
Popovers.remove(id);
Popovers.create(id, {
type: "bi.bar_popover",
size: "small",
logic: {
dynamic: true,
},
header: {
type: "bi.label",
text: "这个是header",
},
body: {
type: "bi.vertical",
items: [
{
type: "bi.button_group",
ref() {
body = this;
},
items: map(range(0, 30), () => {
return {
type: "bi.label",
text: "1",
height: 30,
};
}),
layouts: [
{
type: "bi.vertical",
}
],
}
],
},
}).open(id);
},
},
{
type: "bi.text_button",
text: "点击弹出Popover(custom)",
height: 30,
handler() {
Popovers.remove(id);
Popovers.create(id, {
width: 400,
height: 300,
header: {
type: "bi.label",
text: "这个是header",
},
body: {
type: "bi.label",
text: "这个是body",
},
footer: {
type: "bi.label",
text: "这个是footer",
},
}).open(id);
},
},
{
type: "bi.text_button",
height: 30,
text: "弹出一个高度动态的popover层, 此弹出层指定size为small, 但是高度随内容自适应,自适应支持的最大高度为默认为600px",
handler() {
const id = "弹出层id1";
Popovers.create(id, {
// String或者是json都行
header: "弹出层标题",
logic: {
dynamic: true,
maxHeight: 700,
},
size: "small",
body: {
type: "bi.vertical",
items: map(range(0, 50), (idx, v) => {
return {
type: "bi.label",
text: "弹出层内容",
};
}),
},
footer: {
type: "bi.label",
text: "这个是footer",
},
}).open(id);
},
}
],
};
}
}