Commit 82f18df4 by dongshufeng

refactor(iesplan): add files

parent a5e96ac0
......@@ -301,9 +301,9 @@ dependencies = [
[[package]]
name = "cron"
version = "0.12.1"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f8c3e73077b4b4a6ab1ea5047c37c57aee77657bc8ecd6f29b0af082d0b0c07"
checksum = "eee8b2b4516038bc0f1d3c9934bcb4a13dd316e04abbc63c96757a6d75978532"
dependencies = [
"chrono",
"nom",
......@@ -1180,11 +1180,10 @@ dependencies = [
"eig-domain",
"eig-expr",
"getrandom",
"gloo-file 0.3.0",
"gloo-timers 0.3.0",
"gloo-utils 0.2.0",
"js-sys",
"log",
"protobuf",
"serde",
"serde-wasm-bindgen 0.6.5",
"serde_cbor",
......@@ -1984,6 +1983,20 @@ dependencies = [
]
[[package]]
name = "switchnode"
version = "0.1.0"
dependencies = [
"arrow-schema",
"bytes",
"ciborium",
"csv",
"eig-domain",
"log",
"mems",
"serde_json",
]
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
......
......@@ -5,6 +5,7 @@ members = [
"eig-domain",
"eig-aoe",
"mems",
"mems/examples/common/switchnode",
"mems/examples/ds-powerflow/ds-common",
"mems/examples/ds-powerflow/ds-static-topo",
"mems/examples/ds-powerflow/ds-dev-ohm-cal",
......
......@@ -17,7 +17,7 @@ ciborium = "0.2"
petgraph = "0.6"
rayon = "1.10"
num-traits = "0.2"
cron = "0.12"
cron = "0.13"
async-channel = "2.3"
base64 = "0.22"
arrow-schema = { version = "53.2", features = ["serde"] }
......
......@@ -21,9 +21,8 @@ serde-wasm-bindgen = "0.6"
yew = { version = "0.21", features = ["csr"] }
yew-agent = "0.2"
gloo-utils = "0.2"
gloo-file = "0.3"
gloo-timers = "0.3"
getrandom = { version = "0.2", features = ["js"] }
protobuf = { version = "3.7", features = ["with-bytes"] }
csv = "1.3"
yew-bulma = { git = "https://github.com/shufengdong/yew-bulma.git" }
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 yew::prelude::*;
use yew_bulma::layout::tiles::Tiles;
use yew_bulma::*;
use crate::{build_tiles, create_parameters, Parameters};
use crate::paracard::ParaCard;
use crate::{build_tiles, create_parameters, Parameters};
pub enum Msg {
start,
Start,
Stop,
}
pub struct StartPage {
tiles: Tiles,
plan_card: Parameters,
general_para: Parameters,
cards: Vec<Parameters>,
timer: Option<Timeout>,
is_running: bool
}
impl Component for StartPage {
......@@ -22,36 +25,58 @@ impl Component for StartPage {
type Properties = ();
fn create(_: &Context<Self>) -> Self {
let tiles = build_tiles(include_bytes!("../layout.xlsx").to_vec()).unwrap();
let mut plan_card = create_parameters(include_bytes!("../general.csv"));
plan_card.id = 15;
let general_para = create_parameters(include_bytes!("../general.csv"));
Self { tiles, general_para, plan_card }
let tiles = build_tiles(include_bytes!("../layoutV3.xlsx").to_vec()).unwrap();
let card0 = create_parameters(include_bytes!("../card/card0.csv"));
let card2 = create_parameters(include_bytes!("../card/card2.csv"));
let card3 = create_parameters(include_bytes!("../card/card3.csv"));
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 {
Msg::start => {
alert("start");
Msg::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 {
let mut nodes = HashMap::with_capacity(23);
for i in 0..23 {
let v = html! {
<p>{format!("{i}")}</p>
};
nodes.insert(i, v);
}
nodes.insert(self.general_para.id, html! {
<ParaCard paras={self.general_para.clone()} />
});
nodes.insert(self.plan_card.id, html! {
<ParaCard paras={self.plan_card.clone()} />
let link = ctx.link();
let mut nodes = HashMap::with_capacity(12);
nodes.insert(1, html! {
<Button loading={self.is_running} classes={classes!("is-primary", "is-fullwidth", "is-large")}
onclick={link.callback(|_|Msg::Start)}>{"开始计算"}</Button>
});
for card in &self.cards {
nodes.insert(card.id, html! {
<ParaCard paras={card.clone()} />
});
}
self.tiles.create_html(nodes)
}
fn destroy(&mut self, _: &Context<Self>) {
if let Some(timer) = self.timer.take() {
timer.cancel();
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论