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
48
49
use df_fields::Field;
use json::{JsonValue, object};
use crate::{Action, Model};
use crate::tests::test::table::Table;
use crate::tests::test::test::TestAction;

pub struct TestModel {}

impl Model for TestModel {
    fn table(&mut self) -> &'static str { "tests_test" }
    fn fields(&mut self) -> JsonValue {
        let mut fields = object! {};
        fields[self.primary_key()] = df_fields::str::Key::new(true, self.primary_key(), "ID", 20).field();
        fields["str"] = df_fields::str::Str::new(true, "str", "字符串", 15, "").field();
        fields["color"] = df_fields::str::Color::new(true, "color", "颜色", "000000").field();
        fields["email"] = df_fields::str::Email::new(true, "email", "邮件", "").field();
        fields["pass"] = df_fields::str::Pass::new(true, "pass", "密码", 64, "").field();
        fields["tel"] = df_fields::str::Tel::new(true, "tel", "电话", "").field();
        fields["int"] = df_fields::int::Int::new(true, "int", "整数", 20, 0).field();
        fields["switch"] = df_fields::int::Switch::new(true, "switch", "开关", true).field();
        fields["float"] = df_fields::float::Float::new(true, "float", "小数", 9, 2, 0.0).field();
        fields["timestamp"] = df_fields::datetime::Timestamp::new(true, "timestamp", "时间戳", 0, 0.0).field();
        fields["datetime"] = df_fields::datetime::Datetime::new(true, "datetime", "日期时间", "").field();
        fields["date"] = df_fields::datetime::Date::new(true, "date", "日期", "").field();
        fields["time"] = df_fields::datetime::Time::new(true, "time", "时间", "").field();
        fields["year"] = df_fields::datetime::Year::new(true, "year", "年", 0).field();
        fields["select"] = df_fields::select::Select::new(true, "select", "多选", vec!["男士", "女士"], vec!["男士"]).field();
        fields["radio"] = df_fields::select::Radio::new(true, "radio", "单选", vec!["男士", "女士"], "男士").field();
        fields["file"] = df_fields::text::File::new(true, "file", "文件", 1, false, 0, vec![]).field();
        fields["table"] = df_fields::text::Table::new(true, "table", "关联", "dict", vec!["name", "code"], "").field();
        fields["text"] = df_fields::text::Text::new(true, "text", "文本", "").field();
        fields["url"] = df_fields::text::Url::new(true, "url", "链接", "").field();
        fields["json"] = df_fields::text::Json::new(true, "json", "json", object! {}).field();
        return fields;
    }

    fn title(&mut self) -> &'static str { "测试模型" }

    fn action(&mut self, name: &str) -> Box<dyn Action> {
        match name {
            "table" => Box::new(Table { model: TestModel {} }),
            _ => Box::new(TestAction { model: TestModel {} })
        }
    }
}


pub mod test;
pub mod table;