@using GBLab.Common.Expand;
@using GBLab.Entities
@{
    /**/

    Layout = "~/Areas/Manage/Views/DefaultSkin/Shared_Back/_Layout_Head_List.cshtml";

    // 树形数据链接
    string dataTreeUrl = ViewData["dataTreeUrl"].ToString();

    // 树形数据链接
    string dataRecommondTreeUrl = ViewData["dataRecommondTreeUrl"].ToString();

    string ExtendFunctionName = ViewData["ExtendFunctionName"].DefaultIsNullOrEmpty("");
    string ExtendFunctionNameReplaceName = ExtendFunctionName == "" ? "$NullName" : ExtendFunctionName;

    var actions = ViewData["actions"] as Dictionary<string, string>;
}

@section JavaScript{
    <script type="text/javascript">
        // ---------------------------------------------------- 基础方法 ----------------------------------------------------
        // 通过ID创建功能链接
        function createLink(id) {
            return "/manage/default/Post?ActionGUID=" + id + "&Template=" + Template + "&MvcMarkName=" + MvcMarkName + "&MvcClassID=" + $("#SearchClassID").val();
        }

        // 编辑窗口 - 打开 - 添加
        function Add(actionId) {
            dialogWin = openWindow("#form-window", " 添加 ", createLink(actionId), "icon-add").dialog('open');
        }

        // ---------------------------------------------------- 列表数据 ----------------------------------------------------
        // 参数 - 获取
        function queryParams() {
            var queryParams = {
                SearchClassID: $("#SearchClassID").val(),
                SearchMarkStatus: $("#SearchMarkStatus").val(),
                SearchModuleNmae: $("#SearchModuleNmae").val(),

                SearchTimeType: $("#SearchTimeType").combobox('getValue'),
                SearchTimeBegin: $("#SearchTimeBegin").datebox('getValue'),
                SearchTimeEnd: $("#SearchTimeEnd").datebox('getValue'),

                SearchName: $('#SearchBox').searchbox('getName'),
                SearchKey: $('#SearchBox').searchbox('getValue'),
            };
            return queryParams;
        }

        // 参数 - 清空
        function doClearSearch() {
            $("#SearchTimeBegin").datebox('setValue', '');
            $("#SearchTimeEnd").datebox('setValue', '');

            $("#SearchBox").searchbox('setValue', '');
            $("#SearchModuleNmae").searchbox('setValue', '');
            btnSearch();
        }

        // 数据加载
        function loadData(params) {
            return $('#grid-list').datagrid({
                //----------------------------------------------------------  字段配置 ----------------------------------------------------------
                // 冻结列
                frozenColumns: [[
                    { field: 'ck', checkbox: true, width: 40 },
                    { field: 'F_Id', title: 'Id', width: 60, align: 'center', sortable: true, }
                ]],

                // 滚动列
                columns: [[
                    { field: 'F_Name', title: '名称', width: 180, align: 'left', formatter: function (value, row, index) { return "<span style=\"font-weight:bold;\">" + value + "</span>"; } }
                    , { field: 'F_SystemMarkName', title: '系统名称', width: 80, align: 'left' }
                    , { field: 'F_ModuleMarkName', title: '模块名称', width: 160, align: 'left' }
                    , { field: 'F_ModuleInfoId', title: '信息Id', width: 80, align: 'left' }
                    , { field: 'F_AddDate', title: '添加日期', width: 150, align: 'center', sortable: true, formatter: function (value, row, index) { return FormatTime(value, "yyyy-MM-dd hh:mm:ss"); } }
                    , { field: 'F_TimeUse', title: '耗时', width: 80, align: 'center' }
                    //, { field: 'F_ModuleInfoGuid', title: '信息Guid', width: 300, align: 'center' }
                    , { field: 'F_Controller', title: '控制器', width: 160, align: 'left' }
                    , { field: 'F_Action', title: '方法', width: 160, align: 'left' }

                    , { field: 'F_AddUserName', title: '添加人', width: 80, align: 'center' }
                    , { field: 'F_MarkStatus', title: '状态', width: 66, align: 'center', sortable: true, formatter: function (value, row, index) { return "<span class=\"icon-status icon-status" + value + "\" title=\"" + MarkStatusName(value) + "\">" + MarkStatusName(value) + "</span>"; } }
                    , {
                        field: 'F_Actions', title: '操作', width: 60, align: 'center',
                        field: 'F_Actions', title: '操作', width: 60, align: 'center',
                        formatter: function (value, row, index) {
                            var rowid = row.F_Id;
                            var rowGuid = row.F_Guid;
                            var markstatus = row.F_MarkStatus;
                            var html = '';

                            //// 编辑
                            //html += '@Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Edit"), "listButton").Replace(ExtendFunctionNameReplaceName, ""))'.replaceAll("rowid", rowid).replaceAll("rowGuid", rowGuid);

                            // 查看
                            html += '@Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Detail"), "listButton").Replace(ExtendFunctionNameReplaceName, ""))'.replaceAll("rowid", rowid).replaceAll("rowGuid", rowGuid);

                            return html;
                        }
                    }
                ]],


                //----------------------------------------------------------  数据加载 ----------------------------------------------------------
                url: createLink('@(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "List"))'),        // 从远程站点请求数据的 URL。
                method: 'post',                                                                         // 请求远程数据的方法（method）类型。
                idField: 'F_Id',                                                                        // 指示哪个字段是标识字段。
                loadMsg: "数据加载中，请稍后……",                                                      // 当从远程站点加载数据时，显示的提示消息。

                //----------------------------------------------------------  展示配置 ----------------------------------------------------------
                striped: true,                                                             // 显示斑马线效果
                fitColumns: false,                                                         // 设置为 true，则会自动扩大或缩小列的尺寸以适应网格的宽度并且防止水平滚动。
                rownumbers: true,                                                          // 设置为 true，则显示带有行号的列。
                showHeader: true,                                                          // 定义是否显示行的头部。
                showFooter: true,                                                          // 定义是否显示行的底部。
                scrollbarSize: 10,                                                         // 滚动条宽度（当滚动条是垂直的时候）或者滚动条的高度（当滚动条是水平的时候）。
                view: detailview,

                //----------------------------------------------------------  界面调整 ----------------------------------------------------------
                resizeHandle: 'right',                                                     // 调整列的位置，可用的值有：'left'、'right'、'both'。当设置为 'right' 时，用户可通过拖拽列头部的右边缘来调整列。该属性自版本 1.3.2 起可用。

                //----------------------------------------------------------  性能配置 ----------------------------------------------------------
                nowrap: true,                                                              // 【性能】设置为 true，则把数据显示在一行里。设置为 true 可提高加载性能。
                autoRowHeight: true,                                                       // 【性能】定义是否设置基于该行内容的行高度。设置为 false，则可以提高加载性能。(没设置的时候，冻结列的高度会和右边自动撑开的高度不一致)

                //----------------------------------------------------------  分页配置 ----------------------------------------------------------
                pagination: true,                                                          // 设置为 true，则在数据网格（datagrid）底部显示分页工具栏。
                pagePosition: 'bottom',                                                    // 定义分页栏的位置。可用的值有：'top'、'bottom'、'both'。 该属性自版本 1.3 起可用。

                //----------------------------------------------------------  业务配置 ----------------------------------------------------------
                singleSelect: false,                                                       // 只能选中一行
                checkOnSelect: true,                                                       // 选中复选框关联 如果设置为 true，当用户点击某一行时，则会选中/取消选中复选框。如果设置为 false 时，只有当用户点击了复选框时，才会选中/取消选中复选框。该属性自版本 1.3 起可用。
                selectOnCheck: true,                                                       // 如果设置为 true，点击复选框将会选中该行。如果设置为 false，选中该行将不会选中复选框。 该属性自版本 1.3 起可用。
                queryParams: params,                                                       // 当请求远程数据时，发送的额外参数。
                sortName: '',                                                              // 定义可以排序的列。
                sortOrder: 'asc',                                                          // 定义列的排序顺序，只能用 'asc' 或 'desc'。
                multiSort: true,                                                           // 定义是否启用多列排序。该属性自版本 1.3.4 起可用。
                remoteSort: true,                                                          // 定义是否从服务器排序数据。

                //----------------------------------------------------------  未知配置 ----------------------------------------------------------
                width: function () { return document.body.clientWidth },                   // 宽度
                fit: true,                                                                 // 自动大小

                //----------------------------------------------------------  事件配置 ----------------------------------------------------------
                // 返回例如 'background:red' 的样式。该函数需要两个参数： rowIndex：行的索引，从 0 开始。 rowData：该行相应的记录。
                rowStyler: function (index, row) {
                    // console.log(row);
                    // if (index > 3) {
                    //     return 'background-color:#6293BB;color:#fff;';
                    // }
                },

                //----------------------------------------------------------  事件：展开详情 ----------------------------------------------------------
                detailFormatter: function (index, row) {
                    return '<div style="padding:2px" class="ddv">GUID：' + row.F_Guid + '</div>';
                },
                onExpandRow: function (index, row) {
                    // var ddv = $(this).datagrid('getRowDetail', index).find('div.ddv');
                    // console.log(ddv);

                    //ddv.panel({
                    //    border: false,
                    //    cache: false,
                    //    href: 'datagrid21_getdetail.php?itemid=' + row.itemid,
                    //    onLoad: function () {
                    //        $('#dg').datagrid('fixDetailRowHeight', index);
                    //    }
                    //});
                    //$('#grid-list').datagrid('fixDetailRowHeight', index);
                },

                //----------------------------------------------------------  事件：加载部分 ----------------------------------------------------------
                onBeforeLoad: onBeforeLoad,
                onLoadSuccess: onLoadSuccess,
                onLoadError: onLoadError,

                //----------------------------------------------------------  事件：点击事件 ----------------------------------------------------------
                // 单击事件
                onClickCell: onClickCell,
                // 双击事件
                onDblClickRow: function (rowIndex, rowData) {
                    var rowId = rowData.F_Id;
                    var rowGuid = rowData.F_Guid;
                    @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Edit"), "jsAction").Replace(ExtendFunctionNameReplaceName, ""))
                },
            });
        }
    </script>

    @if (ViewData["ShowType"].ToString() == "ReturnData")
    {
        <script>
            //获得选中列表个数
            function Return_Tags() {
                var ids = [];
                var idsInfo = [];
                var rows = grid.datagrid('getSelections');
                if (rows.length > 0) {
                    for (var i = 0; i < rows.length; i++) {
                        // 返回ids
                        ids.push(rows[i].F_Name);
                        // 返回名称
                        idsInfo.push(rows[i].F_Id);
                    }
                }
                window.parent.@(Request.QueryString["jsSign"].DefaultIsNullOrEmpty(""))Return_Tags(ids, idsInfo);
            }
        </script>
    }
}

<!--startprintinfo-->
<!--打印开始-->
@*栏目*@
<div title="@(ViewData["TableTitle"]) 栏目" data-options="region:'west',border:true,split:true,collapsed:false" style="width:200px;">
    <ul id="tree"></ul>
</div>
@*查询及操作信息*@
@section Toolbar
{
    <div id="tb" class="tb" style="height: auto">
        <div id="tabs" class="easyui-tabs menu-tabs" data-options="border:false" style="width:100%;">
            @foreach (var item in GBLab.Common.Helper.SelectItem.GetSelectListItem(GBLab.Common.Utils.Dictionarys.IsStatus))
            {
                <div title="@(item.Text)" id="@(item.Value)"></div>
            }
            <div title="全部" id="9999"></div>
        </div>
        <div class="toolbar">
            <ul>
                <li>
                    筛选：
                    <select class="easyui-combobox w120" id="SearchTimeType" editable="false">
                        <option value="1">※ 创建时间</option>
                        <option value="2">※ 更新时间</option>
                    </select>
                    <input class="easyui-datebox w120" id="SearchTimeBegin" editable="false" prompt="- 开始时间 -" value="" />
                    -
                    <input class="easyui-datebox w120" id="SearchTimeEnd" editable="false" prompt="- 结束时间 -" value="" />
                </li>
            </ul>
            <div class="search">
                @{
                    <text>
                        <input name="SearchModuleNmae" id="SearchModuleNmae" class="easyui-textbox" data-options="prompt:'请输入模块名称'" style="width:100%;">
                    </text>
                }
            </div>
            <div class="search">
                @{
                    <text>
                        <input type="hidden" name="SearchClassID" id="SearchClassID" value="@(ViewData["MvcClassID"])" />
                        <input type="hidden" name="SearchMarkStatus" id="SearchMarkStatus" value="0" />
                        <input type="hidden" name="SearchKey" id="SearchKey" value="" />
                        <input type="hidden" name="SearchName" id="SearchName" value="" />
                        <input class="easyui-searchbox" data-options="prompt:'关键字',searcher:doSearch,menu:'#mm'" id="SearchBox" style="width:280px" />
                        <div id="mm">
                            <div data-options="name:'id'">ID</div>
                            <div data-options="name:'guid'">GUID</div>
                            <div data-options="name:'name'">标题</div>
                            <div data-options="name:'markname'">扩展分类标识</div>
                            <div data-options="name:'infoId'">信息Id</div>
                            <div data-options="name:'infoGuid'">信息Guid</div>
                        </div>
                        <a href="javascript:void(0);" class="easyui-linkbutton" iconcls="icon-clear" plain="true" onclick="doClearSearch();">清空</a>
                    </text>
                }
            </div>

            <ul>
                <li>
                    【操作：
                    @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Add")).Replace(ExtendFunctionNameReplaceName, ""))
                    @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Edit")).Replace(ExtendFunctionNameReplaceName, ""))
                    @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Detail")).Replace(ExtendFunctionNameReplaceName, ""))
                    @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Delete")).Replace(ExtendFunctionNameReplaceName, ""))
                    @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "BatchAction")).Replace(ExtendFunctionNameReplaceName, ""))
                    @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "PrintPage")).Replace(ExtendFunctionNameReplaceName, ""))
                    】
                </li>
            </ul>
        </div>
    </div>

    <div id="arraylist-window" title="批量操作" class="easyui-window" data-options="modal:true,collapsible:false,minimizable:false,maximizable:false,closed:true" style="width: 540px; height: 445px; padding: 3px;">
        <div class="easyui-layout" data-options="fit:true,border:false">
            <div id="action" data-options="region:'center',border:false" style="background: #fff; ">
                <table class="table-options" fit="true" id="action">
                    <tr>
                        <th class="tdleft">
                            批量 状态：
                        </th>
                    </tr>
                    <tr>
                        <td>
                            @Html.DropDownList("Info_Action_MarkStatus", GBLab.Common.Helper.SelectItem.GetSelectListItem(GBLab.Common.Utils.Dictionarys.IsStatus), new { @class = "easyui-combobox", @style = "width:120px;" })
                            @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Action_MarkStatus")).Replace(ExtendFunctionNameReplaceName, ""))
                        </td>
                    </tr>
                    <tr>
                        <th class="tdleft">
                            批量 移动栏目：
                        </th>
                    </tr>
                    <tr>
                        <td class="">
                            @Html.TextBox("Info_Action_ClassID"
                                , ""
                                , new {
                                    @class = "easyui-combotree textbox"
                                    ,
                                    @style = "width:300px;"
                                    ,
                                    @required = "false"
                                    ,
                                    @url = dataTreeUrl
                                })
                            <span class="ico-Tree"></span>
                            @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Action_ClassID")).Replace(ExtendFunctionNameReplaceName, ""))
                        </td>
                    </tr>
                    <tr>
                        <th class="tdleft">
                            批量 相关栏目：
                        </th>
                    </tr>
                    <tr>
                        <td class="">
                            @Html.TextBox("Info_Action_ClassIdS"
                                , ""
                                , new {
                                    @class = "easyui-combotree textbox"
                                    ,
                                    @style = "width:300px;"
                                    ,
                                    @required = "false"
                                    ,
                                    @url = dataTreeUrl
                                    ,
                                    @multiple = "true"
                                })
                            <span class="ico-Tree"></span>
                            @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Action_ClassIDS")).Replace(ExtendFunctionNameReplaceName, ""))
                        </td>
                    </tr>
                    <tr>
                        <th class="tdleft">
                            批量 推荐：
                        </th>
                    </tr>
                    <tr>
                        <td class="">
                            @Html.TextBox("Info_Action_Recommend_ClassID"
                                , ""
                                , new {
                                    @class = "easyui-combotree textbox"
                                    ,
                                    @style = "width:300px;"
                                    ,
                                    @required = "false"
                                    ,
                                    @url = dataRecommondTreeUrl
                                    ,
                                    @multiple = "true"
                                })
                            <span class="ico-Tree"></span>
                            @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Action_RecommendID_Add")).Replace(ExtendFunctionNameReplaceName, ""))
                            @Html.Raw(T_FunctionAction.Get_Action_Buttons(GBLab.Common.Utils.Dictionarys.GetActionId(actions, ExtendFunctionName + "Action_RecommendID_Remove")).Replace(ExtendFunctionNameReplaceName, ""))
                        </td>
                    </tr>
                </table>
            </div>
        </div>
    </div>
}

@*列表*@
<div data-options="region:'center',border:false">
    <div id="grid-list" title="@(ViewData["TableTitle"])" data-options="toolbar:'#tb',border:true"></div>
</div>
<!--打印结束-->
<!--endprintinfo-->

@if (ViewData["ShowType"].ToString() == "ReturnData")
{
    <div class="dialog-button TextCenter" data-options="region:'south',border:false">
        <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-ok'" onclick="Return_Tags();">确定选中</a>
        <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-no'" onclick="Return_Cancel();">取消</a>
    </div>
}

@section Head{
}

<div id="form-window" title="操作窗口" class="easyui-window" data-options="modal:true,closed:true,fit:false" style="width:98%;height:98%;padding:0px 0px 3px 0px;"></div>
<div id="edit-window" title="编辑/添加" class="easyui-window" data-options="modal:true,closed:true,fit:false" style="width:98%; height:98%; padding:0px 0px 3px 0px;"></div>
