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
use json::{array, JsonValue};
use crate::{Action, BtnColor, BtnMode, Response};
use crate::dict::tranmode::*;

pub struct Table {
    pub model: Tranmode,
}

impl Action for Table {
    fn title(&mut self) -> &'static str { "列表" }
    fn name(&mut self) -> &'static str { "dict.tranmode.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,
            vec!["id", "name", "code", "state", "note"], vec!["state"], vec!["name", "code"]);

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