<%-- 
Name: 主JS界面
Author: yubaolee
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Encoding="utf-8" Description="添加模块" %>
<%@ Property Name="ModuleName" Type="String" Category="Context" Description="模块名称" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context"
Description="连接的数据库" %>

<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Assembly Src="Util.cs" %>
<%@ Import Namespace="Util" %>

layui.config({
    base: "/js/"
}).use(['form', 'laydate', 'ztree', 'layer', 'jquery', 'table', 'droptree', 'openauth', 'utils'], function () {
    var form = layui.form,
        layer = layui.layer,
        laydate = layui.laydate,
        $ = layui.jquery;
    var table = layui.table;
    var openauth = layui.openauth;
    var toplayer = (top == undefined || top.layer === undefined) ? layer : top.layer;  //顶层的LAYER

    $("#menus").loadMenus("<%=ModuleName%>");

    <% foreach (ColumnSchema column in this.SourceTable.Columns) { 
    if(CSharpAlias[column.SystemType.FullName] == "System.DateTime") { %>
    laydate.render({
        elem: '#<%=column.Name%>'
    });
    <%} }%>

    var initVal = {  //初始化的值
    <% foreach (ColumnSchema column in this.SourceTable.Columns) { 
        if(CSharpAlias[column.SystemType.FullName] == "bool") { %>
        <%=column.Name%>: false,
        <%}else if(CSharpAlias[column.SystemType.FullName] == "int" ) {%>
        <%=column.Name%>: 0,
        <%}else if(CSharpAlias[column.SystemType.FullName] == "System.DateTime") {%>
        <%=column.Name%>: new Date().toISOString().split('T')[0],
        <%} else {%>
        <%=column.Name%>: '',
    <%} }%>
    }

    //加载表头
    $.getJSON('/<%=ModuleName%>s/Load',
    { page: 1, limit: 1 },
    function (data) {
        var columns = data.columnFields.filter(u => u.IsList ===true).map(function (e) {
            return {
                field: e.ColumnName,
                title: e.Remark
            };
        });
        columns.unshift({
            type: 'checkbox',
            fixed: 'left'
        });
        table.render({
            elem: '#mainList',
            page: true,
            url: '/<%=ModuleName%>s/Load',
            cols: [columns]
            , response: {
                statusCode: 200 //规定成功的状态码,默认:0
            }
        });
        });


    //主列表加载,可反复调用进行刷新
    var config = {};  //table的参数,如搜索key,点击tree的id
    var mainList = function(options) {
        if (options != undefined) {
            $.extend(config, options);
        }
        table.reload('mainList',
            {
                url: '/<%=ModuleName%>s/Load',
                where: config
                , response: {
                    statusCode: 200 //规定成功的状态码,默认:0
                } 
            });
    };
    mainList();
 
    //添加(编辑)对话框
    var editDlg = function () {
         var show = function (update, data) {
            var title = update ? "编辑信息" : "添加";
            layer.open({
                title: title,
                area: ["500px", "400px"],
                type: 1,
                content: $('#divEdit'),
                success: function () {
                    if(data == undefined){
                        form.val("formEdit", initVal);
                    }else{
                        form.val("formEdit", data);
                    }
                },
                end: mainList
            });
            var url = "/<%=ModuleName%>s/Add";
            if (update) {
                url = "/<%=ModuleName%>s/Update";
            }
            //提交数据
            form.on('submit(formSubmit)',
                function (data) {
                    $.post(url,
                        data.field,
                        function (data) {
                            layer.msg(data.Message);
                        },
                        "json");
                    return false;
                });
        }
        return {
             add: function () { //弹出添加
                show(false);
            },
            update: function (data) { //弹出编辑框
                show(true, data);
            }
        };
    }();

    //监听表格内部按钮
    table.on('tool(list)', function (obj) {
        var data = obj.data;
        if (obj.event === 'detail') {      //查看
            layer.msg('ID:' + data.Id + ' 的查看操作');
        }
    });


    //监听页面主按钮操作
    var active = {
        btnDel: function () {      //批量删除
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            openauth.del("/<%=ModuleName%>s/Delete",
                data.map(function (e) { return e.Id; }),
                mainList);
        }
        , btnAdd: function () {  //添加
            editDlg.add();
        }
        , btnEdit: function () {  //编辑
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.msg("请选择编辑的行,且同时只能编辑一行");
                return;
            }
            editDlg.update(data[0]);
        }

        , search: function () {   //搜索
            mainList({ key: $('#key').val() });
        }
        , btnRefresh: function () {
            mainList();
        }
    };

    $('.toolList .layui-btn').on('click', function () {
        var type = $(this).data('type');
        active[type] ? active[type].call(this) : '';
    });

    //监听页面主按钮操作 end
})