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.

445 lines
14 KiB

/**
* @Author: Young
* @CreationDate 2017-11-06 10:32
* @Description
*/
;(function () {
var model = Fix.define({
groups: [{
id: "27a9c8bf159e99e",
name: "功能数据",
packages: [{
id: "82a96a4b03ac17e6",
name: "通信行业",
type: 1,
tables: [{
id: "品类",
name: "品类",
connName: "BIDemo",
fields: [{
id: "sd2ad2f343ca23",
name: "类别",
type: 32,
enable: true,
usable: true
}, {
id: "f34ds34aw2345w",
name: "描述",
type: 32,
enable: true,
usable: true
}]
}]
}]
}, {
id: "das2dw24214sa4",
name: "样式数据",
packages: [{
id: "hi23i1o34a34we",
name: "零售行业",
type: 1,
tables: [{
id: "销售记录",
name: "销售记录",
connName: "BIDemo",
fields: [{
id: "wr213d24t345",
name: "分类",
type: 16,
enable: true,
usable: true
}, {
id: "faw134r24al344",
name: "金额",
type: 32,
enable: true,
usable: true
}]
}]
}, {
id: "fwr124f3453fa",
name: "地产行业",
tables: [{
id: "开发商名称",
name: "开发商名称",
connName: "BIDemo",
fields: [{
id: "sa13f345fg356",
name: "编号",
type: 32,
enable: true,
usable: true
}, {
id: "ad2r24tt232a22",
name: "名称",
type: 16,
enable: true,
usable: true
}]
}, {
id: "楼盘",
name: "楼盘",
connName: "BIDemo",
fields: [{
id: "hfe3345fg356",
name: "编号",
type: 32,
enable: true,
usable: true
}, {
id: "kl224tt232a22",
name: "名称",
type: 16,
enable: true,
usable: true
}]
}]
}]
}],
fineIndexUpdate: {
needUpdate: false,
lastUpdate: 1509953199062
}
});
Demo.FixScene = BI.inherit(BI.Widget, {
constant: {
TAB1: 1,
TAB2: 2
},
_store: function () {
return model;
},
watch: {
"groups.*.name": function () {
this.fineIndexTab.setText("FineIndex更新(******* 分组名变化 需要更新 *******)");
this.model.fineIndexUpdate.needUpdate = true;
},
"groups.*.packages.*.name": function () {
this.fineIndexTab.setText("FineIndex更新(******* 业务包名变化 需要更新 *******)");
this.model.fineIndexUpdate.needUpdate = true;
},
"groups.*.packages.*.tables.*.name": function () {
this.fineIndexTab.setText("FineIndex更新(******* 表名变化 需要更新 *******)");
this.model.fineIndexUpdate.needUpdate = true;
},
"groups.*.packages.*.tables.*.fields.*.name": function () {
this.fineIndexTab.setText("FineIndex更新(******* 字段名变化 需要更新 *******)");
this.model.fineIndexUpdate.needUpdate = true;
},
"fineIndexUpdate.needUpdate": function (needUpdate) {
!needUpdate && this.fineIndexTab.setText("FineIndex更新");
}
},
render: function () {
var self = this;
return {
type: "bi.tab",
defaultShowIndex: this.constant.TAB1,
single: true,
tab: {
type: "bi.button_group",
items: BI.createItems([{
text: "业务包管理",
value: this.constant.TAB1
}, {
text: "FineIndex更新",
value: this.constant.TAB2,
ref: function (ref) {
self.fineIndexTab = ref;
}
}], {
type: "bi.text_button",
cls: "bi-list-item-active",
height: 50
}),
height: 50
},
cardCreator: BI.bind(this.cardCreator, this)
}
},
cardCreator: function (v) {
switch (v) {
case this.constant.TAB1:
return {
type: "demo.fix_scene_data_manager",
data: this.model
};
case this.constant.TAB2:
return {
type: "demo.fix_scene_fine_index_update"
}
}
}
});
BI.shortcut("demo.fix_scene", Demo.FixScene);
Demo.FixSceneDataManager = BI.inherit(BI.Widget, {
_store: function () {
return this.options.data;
},
watch: {
"*.name": function () {
}
},
render: function () {
var items = [];
BI.each(this.model.groups, function (i, group) {
items.push({
type: "demo.fix_scene_group",
group: group
});
});
return {
type: "bi.vertical",
items: [{
type: "bi.left",
items: BI.createItems([{
text: "分组名"
}, {
text: "业务包名"
}, {
text: "表名"
}, {
text: "字段名"
}], {
type: "bi.label",
cls: "layout-bg1",
width: 150
}),
}, {
type: "bi.vertical",
items: items
}],
vgap: 20,
hgap: 20
}
}
});
BI.shortcut("demo.fix_scene_data_manager", Demo.FixSceneDataManager);
Demo.FixSceneGroup = BI.inherit(BI.Widget, {
props: {
group: {}
},
_store: function () {
return this.options.group;
},
render: function () {
var self = this;
var items = [];
BI.each(this.model.packages, function (i, child) {
items.push({
type: "demo.fix_scene_package",
pack: child
});
});
return {
type: "bi.left",
items: [{
type: "bi.sign_editor",
cls: "bi-border-bottom",
width: 100,
height: 30,
value: this.model.name,
listeners: [{
eventName: BI.SignEditor.EVENT_CHANGE,
action: function () {
self.model.name = this.getValue();
}
}]
}, {
type: "bi.vertical",
items: items
}],
hgap: 20
}
}
});
BI.shortcut("demo.fix_scene_group", Demo.FixSceneGroup);
Demo.FixScenePackage = BI.inherit(BI.Widget, {
props: {
pack: {}
},
_store: function () {
return this.options.pack;
},
render: function () {
var self = this;
var items = [];
BI.each(this.model.tables, function (i, child) {
items.push({
type: "demo.fix_scene_table",
table: child
})
});
return {
type: "bi.left",
items: [{
type: "bi.sign_editor",
cls: "bi-border-bottom",
width: 100,
height: 30,
value: this.model.name,
listeners: [{
eventName: BI.SignEditor.EVENT_CHANGE,
action: function () {
self.model.name = this.getValue();
}
}]
}, {
type: "bi.vertical",
items: items
}],
hgap: 20
}
}
});
BI.shortcut("demo.fix_scene_package", Demo.FixScenePackage);
Demo.FixSceneTable = BI.inherit(BI.Widget, {
props: {
table: {}
},
_store: function () {
return this.options.table;
},
render: function () {
var self = this;
var items = [];
BI.each(this.model.fields, function (i, child) {
items.push({
type: "demo.fix_scene_field",
field: child
});
});
return {
type: "bi.left",
items: [{
type: "bi.sign_editor",
cls: "bi-border-bottom",
width: 100,
height: 30,
value: this.model.name,
listeners: [{
eventName: BI.SignEditor.EVENT_CHANGE,
action: function () {
self.model.name = this.getValue();
}
}]
}, {
type: "bi.vertical",
items: items
}],
hgap: 20
}
}
});
BI.shortcut("demo.fix_scene_table", Demo.FixSceneTable);
Demo.FixSceneField = BI.inherit(BI.Widget, {
props: {
field: {}
},
_store: function () {
return this.options.field;
},
render: function () {
var self = this;
return {
type: "bi.center_adapt",
items: [{
type: "bi.sign_editor",
cls: "bi-border-bottom",
width: 100,
height: 30,
value: this.model.name,
listeners: [{
eventName: BI.SignEditor.EVENT_CHANGE,
action: function () {
self.model.name = this.getValue();
}
}]
}]
}
}
});
BI.shortcut("demo.fix_scene_field", Demo.FixSceneField);
Demo.FixSceneFineIndexUpdateStore = BI.inherit(Fix.VM, {
_init: function () {
this.fineIndexUpdate = model.fineIndexUpdate;
},
computed: {
text: function () {
return "立即更新(上次更新时间:" + BI.date2Str(new Date(this.fineIndexUpdate.lastUpdate), "yyyy-MM-dd HH:mm:ss") + ")";
},
needUpdate: function () {
return this.fineIndexUpdate.needUpdate;
}
},
actions: {
updateFineIndex: function () {
this.fineIndexUpdate.needUpdate = false;
this.fineIndexUpdate.lastUpdate = new Date().getTime();
}
}
});
Demo.FixSceneFineIndexUpdate = BI.inherit(BI.Widget, {
_store: function () {
return new Demo.FixSceneFineIndexUpdateStore();
},
watch: {
"needUpdate": function () {
this.button.setEnable(this.model.needUpdate)
},
"text": function () {
this.button.setText(this.model.text);
}
},
render: function () {
var self = this;
return {
type: "bi.center_adapt",
items: [{
type: "bi.button",
text: this.model.text,
disabled: !this.model.needUpdate,
height: 30,
width: 360,
handler: function () {
self.store.updateFineIndex();
},
ref: function (ref) {
self.button = ref;
}
}]
}
}
});
BI.shortcut("demo.fix_scene_fine_index_update", Demo.FixSceneFineIndexUpdate);
})();