forked from fanruan/fineui
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.
100 lines
2.8 KiB
100 lines
2.8 KiB
2 years ago
|
<html>
|
||
|
<head>
|
||
|
<meta charset="utf-8">
|
||
|
<title></title>
|
||
|
<!-- <link rel="stylesheet" type="text/css" href="../dist/2.0/fineui.min.css"/>
|
||
|
<script src="../dist/2.0/fineui.js"></script> -->
|
||
|
<link rel="stylesheet" type="text/css" href="http://fanruan.design/fineui/2.0/fineui.min.css"/>
|
||
|
<!-- <script src="http://fanruan.design/fineui/2.0/fineui.min.js"></script>-->
|
||
|
<script src="http://localhost:9001/fineui.js"></script>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="wrapper"></div>
|
||
|
<script>
|
||
|
var Model = BI.inherit(BI.Model, {
|
||
|
state: function () {
|
||
|
return {
|
||
|
theme: "light"
|
||
|
};
|
||
|
},
|
||
|
childContext: ["theme"],
|
||
|
|
||
|
actions: {
|
||
|
toggle: function () {
|
||
|
this.model.theme = this.model.theme === "light" ? "dark" : "light";
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
BI.model("demo.model", Model);
|
||
|
|
||
|
var Child = BI.inherit(BI.Widget, {
|
||
|
render: function () {
|
||
|
var label;
|
||
|
return {
|
||
|
type: "bi.context",
|
||
|
context: "theme",
|
||
|
watch: function (newValue, oldValue) {
|
||
|
label.setText(newValue);
|
||
|
},
|
||
|
items: [(context) => {
|
||
|
return {
|
||
|
type: "bi.label",
|
||
|
height: 30,
|
||
|
ref: function (_ref) {
|
||
|
label = _ref;
|
||
|
},
|
||
|
text: context.model.theme
|
||
|
}
|
||
|
}]
|
||
|
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
BI.shortcut("demo.child", Child);
|
||
|
|
||
|
var Widget = BI.inherit(BI.Widget, {
|
||
|
props: {
|
||
|
baseCls: "my-parent"
|
||
|
},
|
||
|
_store: function () {
|
||
|
return BI.Models.getModel("demo.model");
|
||
|
},
|
||
|
setup: function () {
|
||
|
var child;
|
||
|
var store = BI.useStore();
|
||
|
return function () {
|
||
|
return {
|
||
|
type: "bi.vertical",
|
||
|
vgap: 20,
|
||
|
items: [{
|
||
|
type: "demo.child",
|
||
|
ref: function (_ref) {
|
||
|
child = _ref;
|
||
|
}
|
||
|
}, {
|
||
|
type: "bi.button",
|
||
|
text: "改变主题",
|
||
|
handler: function () {
|
||
|
store.toggle();
|
||
|
}
|
||
|
}]
|
||
|
};
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
BI.shortcut("demo.parent", Widget);
|
||
|
BI.createWidget({
|
||
|
type: "bi.absolute",
|
||
|
items: [{
|
||
|
el: {
|
||
|
type: "demo.parent"
|
||
|
},
|
||
|
top: 100,
|
||
|
left: 100
|
||
|
}],
|
||
|
element: "#wrapper"
|
||
|
});
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|