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
42
43
44
45
46
47
use df_fields::Field;
use json::{JsonValue};
use crate::{Action, BtnColor, BtnMode, Model, Response, Tools};
use crate::tests::test::test::TestAction;
use crate::tests::test::TestModel;

pub struct Table {
    pub model: TestModel,
}

impl Action for Table {
    fn extend(&mut self) -> Vec<&str> {
        vec!["db", "cache", "kafka"]
    }
    fn title(&mut self) -> String { "测试动作".to_string() }
    fn name(&mut self) -> String { "tests.test.table".to_string() }
    fn params(&mut self) -> JsonValue {
        return self.model.table_fields();
    }
    fn index(&mut self, _header: JsonValue, request: JsonValue, tools: Tools) -> Response {
        let mut data = self.model.tables(
            request.clone(), tools,
            vec!["int", "str"],
            vec!["int", "str"],
            vec!["int", "str"]);


        data["btn_one"] = vec![
            self.model.btn_data("", Box::new(TestAction { model: TestModel {} }), BtnMode::Api, BtnColor::Blue, vec![
                vec!["mail", "in", "66997788@qq.com"],
                vec!["mail", "<>", "66997788@qq.com"],
                vec!["mail", ">", "66997788@qq.com"],
                vec!["mail", "<", "66997788@qq.com"],
            ]),
        ].into();

        data["btn_all"] = vec![
            self.model.btn_data("", Box::new(TestAction { model: TestModel {} }), BtnMode::Form, BtnColor::Blue, vec![]),
        ].into();

        data["btn_ids"] = vec![
            self.model.btn_data("", Box::new(TestAction { model: TestModel {} }), BtnMode::Form, BtnColor::Blue, vec![]),
        ].into();

        self.success(data.clone(), "列表")
    }
}