Commit a554184e by dongshufeng

refactor(all): add iesplan example

parent a4d16295
...@@ -12,7 +12,8 @@ pub fn create_view(e: Element) { ...@@ -12,7 +12,8 @@ pub fn create_view(e: Element) {
} }
pub fn new(xlsx_bytes: Vec<u8>) -> Option<Tiles> {
pub fn build_tiles(xlsx_bytes: Vec<u8>) -> Option<Tiles> {
let (m, n, merge_map) = get_first_sheet_merged_cells(xlsx_bytes)?; let (m, n, merge_map) = get_first_sheet_merged_cells(xlsx_bytes)?;
let mut class_vec = Vec::new(); let mut class_vec = Vec::new();
let mut is_dealt = vec![false; (m * n) as usize]; let mut is_dealt = vec![false; (m * n) as usize];
......
...@@ -3,16 +3,16 @@ use std::collections::HashMap; ...@@ -3,16 +3,16 @@ use std::collections::HashMap;
use yew::prelude::*; use yew::prelude::*;
use yew_bulma::calendar::*; use yew_bulma::calendar::*;
use yew_bulma::chart::line::{render_ints, render_ints_auto};
use yew_bulma::chart::*;
use yew_bulma::*; use yew_bulma::*;
use yew_bulma::layout::tiles::Tiles;
use crate::build_tiles;
pub enum Msg { pub enum Msg {
DateRangePicked(u64, u64), DateRangePicked(u64, u64),
} }
pub struct StartPage { pub struct StartPage {
templates: HashMap<String, String>, tiles: Tiles,
chart1: NodeRef, chart1: NodeRef,
chart2: NodeRef, chart2: NodeRef,
chart3: NodeRef, chart3: NodeRef,
...@@ -24,8 +24,9 @@ impl Component for StartPage { ...@@ -24,8 +24,9 @@ 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();
Self { Self {
templates: Default::default(), tiles,
chart1: Default::default(), chart1: Default::default(),
chart2: Default::default(), chart2: Default::default(),
chart3: Default::default(), chart3: Default::default(),
...@@ -33,44 +34,6 @@ impl Component for StartPage { ...@@ -33,44 +34,6 @@ impl Component for StartPage {
} }
} }
fn rendered(&mut self, _: &Context<Self>, _: bool) {
if let Some(ele) = self.chart1.cast::<web_sys::Element>() {
if let Some(template) = self.templates.get("line1") {
render_template(ele, template);
}
}
if let Some(ele) = self.chart2.cast::<web_sys::Element>() {
if let Some(template) = self.templates.get("template2") {
render_template(ele, template);
}
}
if let Some(element) = self.chart3.cast::<web_sys::Element>() {
if let Some(template) = self.templates.get("line1") {
render_ints_auto(
element,
template,
"my chart",
&["chart1"],
&[&[5, 4, 3, 2, 1]],
&["p1", "p2", "p3", "p4", "p5"],
);
}
}
if let Some(element) = self.chart4.cast::<web_sys::Element>() {
if let Some(template) = self.templates.get("template2") {
render_ints(
element,
template,
"my chart",
&["chart1", "chart2"],
&[&[50, 40, 30, 20, 10], &[10, 20, 30, 40, 50]],
&["p1", "p2", "p3", "p4", "p5"],
(Some("y axis"), Some(5.), Some(60.)),
);
}
}
}
fn update(&mut self, _: &Context<Self>, msg: Self::Message) -> bool { fn update(&mut self, _: &Context<Self>, msg: Self::Message) -> bool {
match msg { match msg {
Msg::DateRangePicked(start, end) => { Msg::DateRangePicked(start, end) => {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论