Commit 82f18df4 by dongshufeng

refactor(iesplan): add files

parent a5e96ac0
...@@ -301,9 +301,9 @@ dependencies = [ ...@@ -301,9 +301,9 @@ dependencies = [
[[package]] [[package]]
name = "cron" name = "cron"
version = "0.12.1" version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f8c3e73077b4b4a6ab1ea5047c37c57aee77657bc8ecd6f29b0af082d0b0c07" checksum = "eee8b2b4516038bc0f1d3c9934bcb4a13dd316e04abbc63c96757a6d75978532"
dependencies = [ dependencies = [
"chrono", "chrono",
"nom", "nom",
...@@ -1180,11 +1180,10 @@ dependencies = [ ...@@ -1180,11 +1180,10 @@ dependencies = [
"eig-domain", "eig-domain",
"eig-expr", "eig-expr",
"getrandom", "getrandom",
"gloo-file 0.3.0", "gloo-timers 0.3.0",
"gloo-utils 0.2.0", "gloo-utils 0.2.0",
"js-sys", "js-sys",
"log", "log",
"protobuf",
"serde", "serde",
"serde-wasm-bindgen 0.6.5", "serde-wasm-bindgen 0.6.5",
"serde_cbor", "serde_cbor",
...@@ -1984,6 +1983,20 @@ dependencies = [ ...@@ -1984,6 +1983,20 @@ dependencies = [
] ]
[[package]] [[package]]
name = "switchnode"
version = "0.1.0"
dependencies = [
"arrow-schema",
"bytes",
"ciborium",
"csv",
"eig-domain",
"log",
"mems",
"serde_json",
]
[[package]]
name = "syn" name = "syn"
version = "1.0.109" version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
......
...@@ -5,6 +5,7 @@ members = [ ...@@ -5,6 +5,7 @@ members = [
"eig-domain", "eig-domain",
"eig-aoe", "eig-aoe",
"mems", "mems",
"mems/examples/common/switchnode",
"mems/examples/ds-powerflow/ds-common", "mems/examples/ds-powerflow/ds-common",
"mems/examples/ds-powerflow/ds-static-topo", "mems/examples/ds-powerflow/ds-static-topo",
"mems/examples/ds-powerflow/ds-dev-ohm-cal", "mems/examples/ds-powerflow/ds-dev-ohm-cal",
......
...@@ -17,7 +17,7 @@ ciborium = "0.2" ...@@ -17,7 +17,7 @@ ciborium = "0.2"
petgraph = "0.6" petgraph = "0.6"
rayon = "1.10" rayon = "1.10"
num-traits = "0.2" num-traits = "0.2"
cron = "0.12" cron = "0.13"
async-channel = "2.3" async-channel = "2.3"
base64 = "0.22" base64 = "0.22"
arrow-schema = { version = "53.2", features = ["serde"] } arrow-schema = { version = "53.2", features = ["serde"] }
......
...@@ -21,9 +21,8 @@ serde-wasm-bindgen = "0.6" ...@@ -21,9 +21,8 @@ serde-wasm-bindgen = "0.6"
yew = { version = "0.21", features = ["csr"] } yew = { version = "0.21", features = ["csr"] }
yew-agent = "0.2" yew-agent = "0.2"
gloo-utils = "0.2" gloo-utils = "0.2"
gloo-file = "0.3" gloo-timers = "0.3"
getrandom = { version = "0.2", features = ["js"] } getrandom = { version = "0.2", features = ["js"] }
protobuf = { version = "3.7", features = ["with-bytes"] }
csv = "1.3" csv = "1.3"
yew-bulma = { git = "https://github.com/shufengdong/yew-bulma.git" } yew-bulma = { git = "https://github.com/shufengdong/yew-bulma.git" }
eig-domain = { path = "../../../eig-domain" } eig-domain = { path = "../../../eig-domain" }
......
0,计算模式选择,,
4000002,计算模式,Radio,经济性最优:1.0;环保性最优:2;能效性最优:3
10,冷负荷曲线设置,,
4000028,过渡季,TextField,
4000029,夏季,TextField,
4000030,冬季,TextField,
11,其他参数,,
4000043,年利率,TextField,
4000044,天然气价,TextField,
2,设备选择,,
4000006,燃气轮机,Checkbox,
4000007,燃气锅炉,Checkbox,
4000008,热泵,Checkbox,
4000009,吸收式制冷机,Checkbox,
4000010,电制冷机,Checkbox,
4000011,电储能,Checkbox,
4000012,蓄热罐,Checkbox,
4000013,蓄冷罐,Checkbox,
3,机组最大数量,,
4000014,燃气轮机,TextField,
4000015,燃气锅炉,TextField,
4000016,热泵,TextField,
4000017,吸收式制冷机,TextField,
4000018,电制冷机,TextField,
4000019,电储能,TextField,
4000020,蓄热罐,TextField,
4000021,蓄冷罐,TextField,
4,电负荷曲线设置,,
4000022,过渡季,TextField,
4000023,夏季,TextField,
4000024,冬季,TextField,
5,风电曲线设置,,
4000031,过渡季,TextField,
4000032,夏季,TextField,
4000033,冬季,TextField,
6,热负荷曲线设置,,
4000025,过渡季,TextField,
4000026,夏季,TextField,
4000027,冬季,TextField,
7,光伏曲线设置,,
4000034,过渡季,TextField,
4000035,夏季,TextField,
4000036,冬季,TextField,
8,电价曲线设置,,
4000040,过渡季,TextField,
4000041,夏季,TextField,
4000042,冬季,TextField,
9,环境平均温度,,
4000037,过渡季,TextField,
4000038,夏季,TextField,
4000039,冬季,TextField,
5,car1,,
1000001,源电压,Checkbox,
1000002,A相有功634,Radio,name1:1.0;name2:3;name3:4
1000003,A相无功634,TextField,
1000004,B相有功634,Switch,
1000005,B相无功634,Slider,-100;100;10
1000006,C相有功634,Select,1;2;3;10;30
\ No newline at end of file
use gloo_timers::callback::Timeout;
use std::collections::HashMap; use std::collections::HashMap;
use yew::prelude::*; use yew::prelude::*;
use yew_bulma::layout::tiles::Tiles; use yew_bulma::layout::tiles::Tiles;
use yew_bulma::*; use yew_bulma::*;
use crate::{build_tiles, create_parameters, Parameters};
use crate::paracard::ParaCard; use crate::paracard::ParaCard;
use crate::{build_tiles, create_parameters, Parameters};
pub enum Msg { pub enum Msg {
start, Start,
Stop,
} }
pub struct StartPage { pub struct StartPage {
tiles: Tiles, tiles: Tiles,
plan_card: Parameters, cards: Vec<Parameters>,
general_para: Parameters, timer: Option<Timeout>,
is_running: bool
} }
impl Component for StartPage { impl Component for StartPage {
...@@ -22,36 +25,58 @@ impl Component for StartPage { ...@@ -22,36 +25,58 @@ impl Component for StartPage {
type Properties = (); type Properties = ();
fn create(_: &Context<Self>) -> Self { fn create(_: &Context<Self>) -> Self {
let tiles = build_tiles(include_bytes!("../layout.xlsx").to_vec()).unwrap(); let tiles = build_tiles(include_bytes!("../layoutV3.xlsx").to_vec()).unwrap();
let mut plan_card = create_parameters(include_bytes!("../general.csv")); let card0 = create_parameters(include_bytes!("../card/card0.csv"));
plan_card.id = 15; let card2 = create_parameters(include_bytes!("../card/card2.csv"));
let general_para = create_parameters(include_bytes!("../general.csv")); let card3 = create_parameters(include_bytes!("../card/card3.csv"));
Self { tiles, general_para, plan_card } let card4 = create_parameters(include_bytes!("../card/card4.csv"));
let card5 = create_parameters(include_bytes!("../card/card5.csv"));
let card6 = create_parameters(include_bytes!("../card/card6.csv"));
let card7 = create_parameters(include_bytes!("../card/card7.csv"));
let card8 = create_parameters(include_bytes!("../card/card8.csv"));
let card9 = create_parameters(include_bytes!("../card/card9.csv"));
let card10 = create_parameters(include_bytes!("../card/card10.csv"));
let card11 = create_parameters(include_bytes!("../card/card11.csv"));
let cards = vec![card0, card2, card3, card4, card5, card6, card7, card8, card9, card10, card11];
Self { tiles, cards, timer: None, is_running: false }
} }
fn update(&mut self, _: &Context<Self>, msg: Self::Message) -> bool { fn update(&mut self, ctx: &Context<Self>, msg: Self::Message) -> bool {
let link = ctx.link();
match msg { match msg {
Msg::start => { Msg::Start => {
alert("start"); self.is_running = true;
let stop_running = link.callback(|()| Msg::Stop);
let timeout = Timeout::new(5_000, move || {
stop_running.emit(());
});
self.timer = Some(timeout);
}
Msg::Stop => {
self.is_running = false;
} }
} }
false true
} }
fn view(&self, ctx: &Context<Self>) -> Html { fn view(&self, ctx: &Context<Self>) -> Html {
let mut nodes = HashMap::with_capacity(23); let link = ctx.link();
for i in 0..23 { let mut nodes = HashMap::with_capacity(12);
let v = html! { nodes.insert(1, html! {
<p>{format!("{i}")}</p> <Button loading={self.is_running} classes={classes!("is-primary", "is-fullwidth", "is-large")}
}; onclick={link.callback(|_|Msg::Start)}>{"开始计算"}</Button>
nodes.insert(i, v);
}
nodes.insert(self.general_para.id, html! {
<ParaCard paras={self.general_para.clone()} />
}); });
nodes.insert(self.plan_card.id, html! { for card in &self.cards {
<ParaCard paras={self.plan_card.clone()} /> nodes.insert(card.id, html! {
<ParaCard paras={card.clone()} />
}); });
}
self.tiles.create_html(nodes) self.tiles.create_html(nodes)
} }
fn destroy(&mut self, _: &Context<Self>) {
if let Some(timer) = self.timer.take() {
timer.cancel();
}
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论