/// <summary>
        /// 创建标准动作
        /// </summary>
        /// <typeparam name="T">继承自TopBasePoco的类</typeparam>
        /// <typeparam name="V">继承自ISearcher的类</typeparam>
        /// <param name="self">self</param>
        /// <param name="controllerName">动作的Controller</param>
        /// <param name="standardType">标准动作类型</param>
        /// <param name="dialogTitle">弹出窗口的标题</param>
        /// <param name="areaName">域名</param>
        /// <param name="dialogWidth">弹出窗口的宽度</param>
        /// <param name="dialogHeight">弹出窗口的高度</param>
        /// <param name="name">动作名,默认为‘新建’</param>
        /// <param name="buttonId">Button的id  默认自动生成</param>
        /// <param name="whereStr">whereStr</param>
        /// <returns>列表动作</returns>
        /// <remarks>
        /// 根据标准动作类型,创建默认属性的标准动作
        /// </remarks>
        public static GridAction MakeStandardAction <T, V>(this IBasePagedListVM <T, V> self
                                                           , string controllerName
                                                           , GridActionStandardTypesEnum standardType
                                                           , string dialogTitle
                                                           , string areaName     = null
                                                           , int?dialogWidth     = null
                                                           , int?dialogHeight    = null
                                                           , string name         = null
                                                           , string buttonId     = null
                                                           , string queryString  = null
                                                           , string urlParampter = null
                                                           , params Expression <Func <T, object> >[] whereStr)
            where T : TopBasePoco
            where V : ISearcher
        {
            var iconcls       = string.Empty;
            var actionName    = standardType.ToString();
            var gridname      = string.Empty;
            var paraType      = GridActionParameterTypesEnum.NoId;
            var showInRow     = false;
            var hideOnToolBar = false;

            switch (standardType)
            {
            case GridActionStandardTypesEnum.Create:
                iconcls  = "layui-icon-add-1";
                gridname = "新建";
                paraType = GridActionParameterTypesEnum.NoId;
                break;

            case GridActionStandardTypesEnum.AddRow:
                iconcls  = "layui-icon-add-1";
                gridname = "新建";
                paraType = GridActionParameterTypesEnum.AddRow;
                break;

            case GridActionStandardTypesEnum.Edit:
                iconcls       = "layui-icon-edit";
                gridname      = "修改";
                paraType      = GridActionParameterTypesEnum.SingleId;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            case GridActionStandardTypesEnum.Delete:
                iconcls       = "layui-icon-delete";
                gridname      = "删除";
                paraType      = GridActionParameterTypesEnum.SingleId;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            case GridActionStandardTypesEnum.RemoveRow:
                iconcls       = "layui-icon-delete";
                gridname      = "删除";
                paraType      = GridActionParameterTypesEnum.RemoveRow;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            case GridActionStandardTypesEnum.Details:
                iconcls       = "layui-icon-form";
                gridname      = string.IsNullOrEmpty(name) ? "详细" : name;
                paraType      = GridActionParameterTypesEnum.SingleId;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            case GridActionStandardTypesEnum.CustomAction:
                iconcls       = "layui-icon-form";
                gridname      = string.IsNullOrEmpty(name) ? "自定义" : name;
                paraType      = GridActionParameterTypesEnum.SingleId;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            case GridActionStandardTypesEnum.BatchEdit:
                iconcls  = "layui-icon-edit";
                gridname = "批量修改";
                paraType = GridActionParameterTypesEnum.MultiIds;
                break;

            case GridActionStandardTypesEnum.BatchDelete:
                iconcls  = "layui-icon-delete";
                gridname = "批量删除";
                paraType = GridActionParameterTypesEnum.MultiIds;
                break;

            case GridActionStandardTypesEnum.Import:
                iconcls  = "layui-icon-templeate-1";
                gridname = "导入";
                paraType = GridActionParameterTypesEnum.NoId;
                break;

            case GridActionStandardTypesEnum.Index:
                iconcls       = "layui-icon-templeate-1";
                gridname      = name == string.Empty?"跳转":name;
                paraType      = GridActionParameterTypesEnum.IndexUrl;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            default:
                break;
            }



            var list = new List <string>();

            foreach (var item in whereStr)
            {
                list.Add(PropertyHelper.GetPropertyName(item));
            }

            return(new GridAction
            {
                ButtonId = buttonId,
                Name = (name ?? gridname),
                DialogTitle = dialogTitle,
                Area = areaName,
                ControllerName = controllerName,
                ActionName = actionName,
                ParameterType = paraType,
                QueryString = queryString,
                UrlParam = urlParampter,
                IconCls = iconcls,
                DialogWidth = dialogWidth ?? 800,
                DialogHeight = dialogHeight,
                ShowInRow = showInRow,
                ShowDialog = true,
                HideOnToolBar = hideOnToolBar,
                whereStr = list.ToArray()
            });
        }
Example #2
0
        /// <summary>
        /// 创建标准动作
        /// </summary>
        /// <typeparam name="T">继承自TopBasePoco的类</typeparam>
        /// <typeparam name="V">继承自ISearcher的类</typeparam>
        /// <param name="self">self</param>
        /// <param name="controllerName">动作的Controller</param>
        /// <param name="standardType">标准动作类型</param>
        /// <param name="dialogTitle">弹出窗口的标题,可为空,代表使用默认文字</param>
        /// <param name="areaName">域名</param>
        /// <param name="dialogWidth">弹出窗口的宽度</param>
        /// <param name="dialogHeight">弹出窗口的高度</param>
        /// <param name="name">按钮显示的文字</param>
        /// <param name="buttonId">Button的id  默认自动生成</param>
        /// <param name="whereStr">whereStr</param>
        /// <returns>列表动作</returns>
        /// <remarks>
        /// 根据标准动作类型,创建默认属性的标准动作
        /// </remarks>
        public static GridAction MakeStandardAction <T, V>(this IBasePagedListVM <T, V> self
                                                           , string controllerName
                                                           , GridActionStandardTypesEnum standardType
                                                           , string dialogTitle
                                                           , string areaName  = null
                                                           , int?dialogWidth  = null
                                                           , int?dialogHeight = null
                                                           , string name      = null
                                                           , string buttonId  = null
                                                           , params Expression <Func <T, object> >[] whereStr)
            where T : TopBasePoco
            where V : ISearcher
        {
            var iconcls       = string.Empty;
            var actionName    = standardType.ToString();
            var gridname      = string.Empty;
            var paraType      = GridActionParameterTypesEnum.NoId;
            var showInRow     = false;
            var hideOnToolBar = false;
            var showDialog    = true;

            switch (standardType)
            {
            case GridActionStandardTypesEnum.Create:
                iconcls  = "layui-icon layui-icon-add-1";
                gridname = Program._localizer["Create"];
                paraType = GridActionParameterTypesEnum.NoId;
                break;

            case GridActionStandardTypesEnum.AddRow:
                iconcls  = "layui-icon layui-icon-add-1";
                gridname = Program._localizer["Create"];
                paraType = GridActionParameterTypesEnum.AddRow;
                break;

            case GridActionStandardTypesEnum.Edit:
                iconcls       = "layui-icon layui-icon-edit";
                gridname      = Program._localizer["Edit"];
                paraType      = GridActionParameterTypesEnum.SingleId;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            case GridActionStandardTypesEnum.Delete:
                iconcls       = "layui-icon layui-icon-delete";
                gridname      = Program._localizer["Delete"];
                paraType      = GridActionParameterTypesEnum.SingleId;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            case GridActionStandardTypesEnum.RemoveRow:
                iconcls       = "layui-icon layui-icon-delete";
                gridname      = Program._localizer["Delete"];
                paraType      = GridActionParameterTypesEnum.RemoveRow;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            case GridActionStandardTypesEnum.Details:
                iconcls       = "layui-icon layui-icon-form";
                gridname      = Program._localizer["Details"];
                paraType      = GridActionParameterTypesEnum.SingleId;
                showInRow     = true;
                hideOnToolBar = true;
                break;

            case GridActionStandardTypesEnum.BatchEdit:
                iconcls  = "layui-icon layui-icon-edit";
                gridname = Program._localizer["BatchEdit"];
                paraType = GridActionParameterTypesEnum.MultiIds;
                break;

            case GridActionStandardTypesEnum.BatchDelete:
                iconcls  = "layui-icon layui-icon-delete";
                gridname = Program._localizer["BatchDelete"];
                paraType = GridActionParameterTypesEnum.MultiIds;
                break;

            case GridActionStandardTypesEnum.Import:
                iconcls  = "layui-icon layui-icon-templeate-1";
                gridname = Program._localizer["Import"];
                paraType = GridActionParameterTypesEnum.NoId;
                break;

            case GridActionStandardTypesEnum.ExportExcel:
                iconcls       = "layui-icon layui-icon-download-circle";
                gridname      = Program._localizer["Export"];
                paraType      = GridActionParameterTypesEnum.MultiIdWithNull;
                name          = Program._localizer["ExportExcel"];
                showInRow     = false;
                showDialog    = false;
                hideOnToolBar = false;
                break;

            default:
                break;
            }

            if (string.IsNullOrEmpty(dialogTitle))
            {
                dialogTitle = gridname;
            }

            var list = new List <string>();

            foreach (var item in whereStr)
            {
                list.Add(PropertyHelper.GetPropertyName(item));
            }

            return(new GridAction
            {
                ButtonId = buttonId,
                Name = (name ?? gridname),
                DialogTitle = dialogTitle,
                Area = areaName,
                ControllerName = controllerName,
                ActionName = actionName,
                ParameterType = paraType,

                IconCls = iconcls,
                DialogWidth = dialogWidth ?? 800,
                DialogHeight = dialogHeight,
                ShowInRow = showInRow,
                ShowDialog = showDialog,
                HideOnToolBar = hideOnToolBar,
                whereStr = list.ToArray()
            });
        }