1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use json::{array, JsonValue};
use crate::{Action, BtnColor, BtnMode, Response};
use crate::dict::flow::*;

pub struct Table {
    pub model: Flow,
}

impl Action for Table {
    fn title(&mut self) -> &'static str { "列表" }
    fn name(&mut self) -> &'static str { "dict.flow.table" }
    fn token(&mut self) -> bool { true }
    fn params(&mut self) -> JsonValue { return self.model.table_fields(); }

    fn index(&mut self, _header: JsonValue, request: JsonValue) -> Response {
        let mut data = self.model.tables(request.clone(),
                                         vec!["id", "name", "code", "state", "note"],
                                         vec!["state"],
                                         vec!["name", "code"]);

        data["btn_all"] = vec![
            self.model.btn_data("", Box::new(Add { model: Flow {} }), BtnMode::Form, BtnColor::Blue, vec![]),
        ].into();
        data["btn_ids"] = array![];
        data["btn_one"] = vec![
            self.model.btn_data("", Box::new(Edit { model: Flow {} }), BtnMode::Form, BtnColor::Blue, vec![
                vec!["state", "=", "禁用"]
            ]),
            self.model.btn_data("", Box::new(Delete { model: Flow {} }), BtnMode::Api, BtnColor::Red, vec![
                vec!["state", "=", "禁用"]
            ]),
            self.model.btn_data("", Box::new(Enable { model: Flow {} }), BtnMode::Api, BtnColor::Red, vec![
                vec!["state", "=", "禁用"]
            ]),
            self.model.btn_data("", Box::new(Disable { model: Flow {} }), BtnMode::Api, BtnColor::Red, vec![
                vec!["state", "=", "启用"]
            ]),
        ].into();
        return self.success(data, "成功");
    }
}