cl
2024-02-23 73bc0656dc15cd9cc95c6f4f51949ef0437088ce
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
layui.use(['layer', 'ax', 'form', 'laydate', 'element', 'table'], function () {
    var $ = layui.$;
    var $ax = layui.ax;
    var layer = layui.layer;
    var form = layui.form;
    var laydate = layui.laydate;
    var element = layui.element;
    var table = layui.table;
    var fieldConfigList = [];
 
    table.render({
        elem: '#fieldTable',
        url: Feng.ctxPath + '/getTableFieldConfigs?tableName=' + $("#tableName").val() + "&dbId=" + $("#dbId").val(),
        parseData: function (res) {
            //获取返回的数据缓存起来
            fieldConfigList = res.data;
            return res;
        },
        page: false,
        cellMinWidth: 100,
        cols: [[
            {field: 'columnName', title: '字段名'},
            {field: 'columnComment', title: '字段注释'},
            {field: 'queryConditionFlag', title: '是否为查询条件', templet: '#conditionTpl'},
            {field: 'inputType', title: '字段属性样式', templet: '#inputTypeTpl'}
        ]]
    });
    form.render('select');
 
    //监听下拉选项操作
    form.on('select(columnStyleFilter)', function (data) {
        var columnName = data.elem.id;
        var inputType = data.elem.value;
 
        for (let i = 0, len = fieldConfigList.length; i < len; i++) {
            if (fieldConfigList[i].columnName === columnName) {
                fieldConfigList[i].inputType = inputType;
            }
        }
 
        console.log(fieldConfigList);
    });
 
    //监听单选事件
    form.on('checkbox(queryConditionFlagFilter)', function (data) {
        var columnName = data.elem.id;
        var checked = data.elem.checked;
 
        //fieldConfigList配置过字段则直接设置为checked
        for (let i = 0, len = fieldConfigList.length; i < len; i++) {
            if (fieldConfigList[i].columnName === columnName) {
                fieldConfigList[i].queryConditionFlag = checked;
            }
        }
 
        console.log(fieldConfigList);
    });
 
    //点击提交时
    $('#submit').click(function () {
        var requestBody = new Map();
        requestBody.set("tableName", $("#tableName").val());
        requestBody.set("fieldConfigList", fieldConfigList);
 
        layui.jquery.ajax({
            url: Feng.ctxPath + "/saveFieldsConfig",
            type: 'post',
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            data: _mapToJson(requestBody),
            success: function (data) {
                fieldConfigList = [];
                Feng.success("保存成功");
                parent.layer.close(parent.layer.getFrameIndex(window.name));
            },
            error: function (data) {
                Feng.error("保存失败");
            }
        });
 
    });
 
    function _strMapToObj(strMap) {
        let obj = Object.create(null);
        for (let [k, v] of strMap) {
            obj[k] = v;
        }
        return obj;
    }
 
    function _mapToJson(map) {
        return JSON.stringify(_strMapToObj(map));
    }
 
});