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.
 
 
 

173 lines
4.3 KiB

// local函数
LocalView = BI.inherit(BI.View, {
_defaultConfig: function () {
return BI.extend(LocalView.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-local"
});
},
_init: function () {
LocalView.superclass._init.apply(this, arguments);
this.buttons = {};
},
_addElement2Vessel: function (id) {
var self = this;
this.buttons[id] = this.elementVessel.addItem({
type: "bi.text_button",
text: "Button:" + id,
width: 180,
height: 22,
cls: "delete-button button",
handler: function () {
self.set("delete", id);
}
});
},
_deleteElement: function (id) {
this.buttons[id] && this.buttons[id].destroy();
delete this.buttons[id];
},
_createTop: function () {
var self = this;
this.elementVessel = BI.createWidget({
type: "bi.left",
height: 200,
cls: "vessel-border",
scrollable: true,
vgap: 10,
hgap: 10
});
return BI.createWidget({
type: "bi.vertical",
items: [
{
el: {
type: "bi.text_button",
text: "点击添加元素",
cls: "top-button",
handler: function () {
self.model.set("add", true);
},
height: 30
}
},
this.elementVessel
]
});
},
_showModelData: function () {
this.text.setText(JSON.stringify(this.model.toJSON()));
},
_createCenter: function () {
var modelData = BI.createWidget({
type: "bi.center",
vgap: 10,
hgap: 10,
cls: "vessel-border",
height: 200,
items: [{
el: this.text = BI.createWidget({
type: "bi.label",
hgap: 30,
textHeight: 30,
whiteSpace: "normal"
})
}]
});
return BI.createWidget({
type: "bi.vertical",
items: [
{
el: {
type: "bi.label",
cls: "bottom-label",
text: "Model层数据",
height: 30
}
},
modelData
]
});
},
render: function (vessel) {
BI.createWidget({
type: "bi.vertical",
element: vessel,
items: [{
el: this._createTop()
}, {
el: this._createCenter()
}],
hgap: 50,
vgap: 20
});
this._showModelData();
},
local: function () {
if(this.model.has("add")) {
var add = this.model.get("add");
this._addElement2Vessel(this.model.getEditing());
this._showModelData();
return true;
}
if(this.model.has("delete")) {
var id = this.model.get("delete");
this._deleteElement(id);
this._showModelData();
return true;
}
return false;
}
});
LocalModel = BI.inherit(BI.Model, {
_defaultConfig: function () {
return BI.extend(LocalModel.superclass._defaultConfig.apply(this, arguments), {
});
},
_init: function () {
LocalModel.superclass._init.apply(this, arguments);
},
local: function () {
if(this.has("add")) {
this.get("add");
var id = BI.UUID();
this.set(id, "这是新增的属性:" + id);
this.setEditing(id);
return true;
}
if(this.has("delete")) {
var id = this.get("delete");
this.unset(id);
return true;
}
return false;
}
});
Demo.Func = BI.inherit(BI.Widget, {
render: function () {
var view = BI.View.createView("/local", {}, {
element: this
});
view.populate();
},
mounted: function () {
}
});
BI.shortcut("demo.local", Demo.Func);