Client/AntDesignClient/Gardener.Client.AntDesignUi.Base/Extensions/QueryModelExtension.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

// -----------------------------------------------------------------------------
// 园丁,是个很简单的管理系统
//  gitee:https://gitee.com/hgflydream/Gardener 
//  issues:https://gitee.com/hgflydream/Gardener/issues 
// -----------------------------------------------------------------------------

using AntDesign.TableModels;
using Gardener.Base;
using Mapster;

namespace AntDesign
{
    public static class QueryModelExtension
    {
        /// <summary>
        /// QueryModel 转换成api的数据结构
        /// </summary>
        /// <param name="queryModel"></param>
        /// <returns></returns>
        public static List<FilterGroup> GetFilterGroups(this ITable table)
        {
            QueryModel queryModel = table.GetQueryModel();

            List<FilterGroup> filterGroups = new List<FilterGroup>();
            if (queryModel != null)
            {
                foreach (ITableFilterModel model in queryModel.FilterModel)
                {
                    FilterGroup fieldGroup = new FilterGroup();
                    filterGroups.Add(fieldGroup);
                    IList<TableFilter> tableFilters = model.Filters;
                    foreach (TableFilter filter in tableFilters)
                    {
                        FilterOperate operate = FilterOperate.Equal;
                        switch (filter.FilterCompareOperator)
                        {
                            case TableFilterCompareOperator.Equals: operate = FilterOperate.Equal; break;
                            case TableFilterCompareOperator.IsNull: operate = FilterOperate.Equal; break;
                            case TableFilterCompareOperator.NotEquals: operate = FilterOperate.NotEqual; break;
                            case TableFilterCompareOperator.IsNotNull: operate = FilterOperate.NotEqual; break;
                            case TableFilterCompareOperator.Contains: operate = FilterOperate.Contains; break;
                            case TableFilterCompareOperator.NotContains: operate = FilterOperate.NotContains; break;
                            case TableFilterCompareOperator.StartsWith: operate = FilterOperate.StartsWith; break;
                            case TableFilterCompareOperator.EndsWith: operate = FilterOperate.EndsWith; break;
                            case TableFilterCompareOperator.LessThan: operate = FilterOperate.Less; break;
                            case TableFilterCompareOperator.LessThanOrEquals: operate = FilterOperate.LessOrEqual; break;
                            case TableFilterCompareOperator.GreaterThan: operate = FilterOperate.Greater; break;
                            case TableFilterCompareOperator.GreaterThanOrEquals: operate = FilterOperate.GreaterOrEqual; break;
                        }
                        FilterRule rule = new FilterRule(model.FieldName, filter.Value, operate);
                        rule.Condition = filter.FilterCondition.Equals(TableFilterCondition.And) ? FilterCondition.And : FilterCondition.Or;

                        fieldGroup.Rules.Add(rule);
                    }
                }
            }
            return filterGroups;
        }

        /// <summary>
后面还有 39 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。