C#MVC返回DataTable到前端展示。

news2024/11/13 9:24:58

很久没写博客了,闭关太久,失踪人口回归,给诸位道友整点绝活

交代下背景:要做一个行转列的汇总统计,而且,由于是行转列,列的数量不固定,所以,没法使用正常的SqlSugar框架,只能原生sql顶包,这么解决滋生出另外个问题,DataTable序列化以后,究竟如何在前端加载?

先看数据库查询出来的原始数据:

在这里插入图片描述

页面上想要达到的效果:
在这里插入图片描述

设计到以下主要的知识点:

  1. 查询结果需要行转列,
  2. DataTable需要序列化传给前端。
  3. 前端如何加载这些不固定的数据。

首先是数据库行转列:

这是原始sql:

	SELECT
		b.XXMC AS 学校名称,
		b.XXLXM AS 学校类型,
		a.XXLXSM AS 学校类型名称,
		g.Name AS 指标类型,
		SUM ( e.Value ) AS 总分,
		SUM ( f.SchoolScore ) AS 自评分,
		SUM ( f.Score ) AS 督评分 
	FROM
		MB_XXLX a
		LEFT JOIN XX_XX b ON a.XXLXM = b.XXLXM
		LEFT JOIN tb_start_index c ON ( c.SchoolType = a.XXLXM OR c.SchoolType = 0 ) 
		AND c.PlanningId = '026fc4b1-1f12-4913-bf75-f6cb6081d68a' 
		AND ( c.Year = 2023 OR c.Year = 0 )
		LEFT JOIN tb_middle_index d ON d.StartId = c.Id
		LEFT JOIN tb_end_index e ON e.MiddleId = d.Id 
		AND ( e.SchoolId = '0' OR e.SchoolId = b.XX_ID )
		LEFT JOIN tb_result f ON f.IndexId = e.Id 
		AND f.SchoolId = b.XX_ID
		LEFT JOIN tb_index_type g ON g.Id = c.Type 
	WHERE
		a.XXLXM IN ( 73 ) 
		AND b.SystemId = 1 
		AND c.DistrictCode = '330402' 
		AND c.SchoolType IN ( 73 ) 
	GROUP BY
		b.XX_ID,
		b.XXLXM,
		a.XXLXSM,
		b.XXMC,
		g.Id,
		g.Name 

行转列以后:

SELECT
	学校名称,学校类型,学校类型名称,
	SUM ( CASE WHEN 指标类型 = '基础性指标' THEN 自评分 ELSE 0 END ) * 0.26 AS 基础性指标自评分,
	SUM ( CASE WHEN 指标类型 = '发展性指标' THEN 自评分 ELSE 0 END ) * 0.34 AS 发展性指标自评分,
	SUM ( CASE WHEN 指标类型 = '学校特色' THEN 自评分 ELSE 0 END ) AS 学校特色自评分,
	SUM ( CASE WHEN 指标类型 = '优均创建指标评价' THEN 自评分 ELSE 0 END ) AS 优均创建指标评价自评分,
	SUM ( CASE WHEN 指标类型 = '优均创建路演' THEN 自评分 ELSE 0 END ) AS 优均创建路演自评分,
	SUM ( CASE WHEN 指标类型 = '基础性指标' THEN 自评分 ELSE 0 END ) * 0.26 + SUM ( CASE WHEN 指标类型 = '发展性指标' THEN 自评分 ELSE 0 END ) * 0.34 + SUM ( CASE WHEN 指标类型 = '学校特色' THEN 自评分 ELSE 0 END ) + SUM ( CASE WHEN 指标类型 = '优均创建指标评价' THEN 自评分 ELSE 0 END ) + SUM ( CASE WHEN 指标类型 = '优均创建路演' THEN 自评分 ELSE 0 END ) AS 自评总分 
FROM
	(
	SELECT
		b.XXMC AS 学校名称,
		b.XXLXM AS 学校类型,
		a.XXLXSM AS 学校类型名称,
		g.Name AS 指标类型,
		SUM ( e.Value ) AS 总分,
		SUM ( f.SchoolScore ) AS 自评分,
		SUM ( f.Score ) AS 督评分 
	FROM
		MB_XXLX a
		LEFT JOIN XX_XX b ON a.XXLXM = b.XXLXM
		LEFT JOIN tb_start_index c ON ( c.SchoolType = a.XXLXM OR c.SchoolType = 0 ) 
		AND c.PlanningId = '026fc4b1-1f12-4913-bf75-f6cb6081d68a' 
		AND ( c.Year = 2023 OR c.Year = 0 )
		LEFT JOIN tb_middle_index d ON d.StartId = c.Id
		LEFT JOIN tb_end_index e ON e.MiddleId = d.Id 
		AND ( e.SchoolId = '0' OR e.SchoolId = b.XX_ID )
		LEFT JOIN tb_result f ON f.IndexId = e.Id 
		AND f.SchoolId = b.XX_ID
		LEFT JOIN tb_index_type g ON g.Id = c.Type 
	WHERE
		a.XXLXM IN ( 73 ) 
		AND b.SystemId = 1 
		AND c.DistrictCode = '330402' 
		AND c.SchoolType IN ( 73 ) 
	GROUP BY
		b.XX_ID,
		b.XXLXM,
		a.XXLXSM,
		b.XXMC,
		g.Id,
		g.Name 
	) AS OriginalResults 
GROUP BY
	学校类型,学校类型名称, 学校名称 
ORDER BY
	学校类型,学校类型名称,学校名称;
	

刚才也说了,这个指标类型是不固定的,显然,sql中将指标类型列固定不是上上之选。接下来用代码实现:

先获取指标类型集合:

  //查询指标类型
                var indexList = db.Queryable<IndexTypeEntity, IndexTypeConversionEntity>((a, b) => new object[]
                  {
                  JoinType.Left,a.Id==b.IndexTypeId &&  b.Year == request.Data.Year
                  }).Where((a, b) => a.DistrictCode == request.Data.districtCode && a.SystemId == request.Data.SystemId)
                .OrderBy((a, b) => a.Id, OrderByType.Asc)
                .Select((a, b) => new OrgIndexType
                {
                    Id = a.Id,
                    Name = a.Name,
                    Ratio = b.Ratio
                }).ToList();

获取以后需要根据指标类型,组装指标类型的sql,以及汇总的分数:

  if (indexList.Count() > 0)
                {
                    //督评结果汇总
                    if (request.Data.Code == 1)
                    {
                        for (int i = 0; i < indexList.Count(); i++)
                        {
                            if (indexList[i].Ratio > 0)
                            {
                                str += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END)*{1} AS {0}督评分,", indexList[i].Name, indexList[i].Ratio);
                            }
                            else
                            {

                                str += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END) AS {0}督评分,", indexList[i].Name);
                            }

                            if (i == indexList.Count() - 1)
                            {
                                if (indexList[i].Ratio > 0)
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END)*{1} as 督评总分", indexList[i].Name, indexList[i].Ratio);
                                }
                                else
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END) as 督评总分", indexList[i].Name);
                                }


                            }
                            else
                            {
                                if (indexList[i].Ratio > 0)
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END)*{1} +", indexList[i].Name, indexList[i].Ratio);
                                }
                                else
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END) +", indexList[i].Name);
                                }

                            }

                        }
                    }
                    else //自评结果汇总
                    {
                        for (int i = 0; i < indexList.Count(); i++)
                        {
                            if (indexList[i].Ratio > 0)
                            {
                                str += string.Format(@" SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END)*{1} AS {0}自评分,", indexList[i].Name, indexList[i].Ratio);
                            }
                            else
                            {
                                str += string.Format(@" SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END) AS {0}自评分,", indexList[i].Name);

                            }
                            if (i == indexList.Count() - 1)
                            {
                                if (indexList[i].Ratio > 0)
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END)*{1} as 自评总分", indexList[i].Name, indexList[i].Ratio);
                                }
                                else
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END) as 自评总分", indexList[i].Name);
                                    
                                }


                            }
                            else
                            {
                                if (indexList[i].Ratio > 0)
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END)*{1} +", indexList[i].Name, indexList[i].Ratio);
                                    
                                }
                                else
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END) +", indexList[i].Name);
                                   
                                }

                            }

                        }
                    }
                    
                }

然后组装sql查询数据:

 sqlStr = string.Format(@"SELECT
                             学校名称,学校类型,学校类型名称,
                             {0}{6}
                         FROM
                             (
                             SELECT
                                 b.XXMC AS 学校名称,
                                b.XXLXM as 学校类型,
                              a.XXLXSM as 学校类型名称,
                                 g.Name AS 指标类型,
                                 SUM(e.Value) AS 总分,
                                 SUM(f.SchoolScore) AS 自评分,
                                 SUM(f.Score) AS 督评分
                             FROM
                                 MB_XXLX a
                             LEFT JOIN
                                 XX_XX b ON a.XXLXM = b.XXLXM
                             LEFT JOIN
                                 tb_start_index c ON (c.SchoolType = a.XXLXM OR c.SchoolType = 0)
                                 AND c.PlanningId = '{1}'
                                 AND (c.Year = {2} OR c.Year = 0)
                             LEFT JOIN
                                 tb_middle_index d ON d.StartId = c.Id
                             LEFT JOIN
                                 tb_end_index e ON e.MiddleId = d.Id
                                 AND (e.SchoolId = '0' OR e.SchoolId = b.XX_ID)
                             LEFT JOIN
                                 tb_result f ON f.IndexId = e.Id
                                 AND f.SchoolId = b.XX_ID
                             LEFT JOIN
                                 tb_index_type g ON g.Id = c.Type
                             WHERE
                                 a.XXLXM IN ({3})
                                 AND b.SystemId = {4}
                                 AND c.DistrictCode = '{5}'
                                 AND c.SchoolType IN ({3})
                                 {7}
                             GROUP BY
                                 b.XX_ID,b.XXLXM,a.XXLXSM, b.XXMC, g.Id, g.Name
                             ) AS OriginalResults
                         GROUP BY
                             学校类型,学校类型名称, 学校名称 
                         ORDER BY
                             学校类型,学校类型名称,学校名称;", str, request.Data.PlanningId, request.Data.Year, request.Data.SchoolType, request.Data.SystemId, request.Data.districtCode, pgStr,bat);

这一部分的完整代码如下:

        /// <summary>
        /// 查询各校汇总数据
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public DataTable OriginalResult(RongboRequest<OriginalResultQuery> request)
        {
            DataTable dt = new DataTable();
            

            using (var db = SqlSugarConfig.DB_Select_DbConnection)
            {
                //查询指标类型
                var indexList = db.Queryable<IndexTypeEntity, IndexTypeConversionEntity>((a, b) => new object[]
                  {
                  JoinType.Left,a.Id==b.IndexTypeId &&  b.Year == request.Data.Year
                  }).Where((a, b) => a.DistrictCode == request.Data.districtCode && a.SystemId == request.Data.SystemId)
                .OrderBy((a, b) => a.Id, OrderByType.Asc)
                .Select((a, b) => new OrgIndexType
                {
                    Id = a.Id,
                    Name = a.Name,
                    Ratio = b.Ratio
                }).ToList();
              //指标类型
                var str = string.Empty;
                //各指标类型的汇总分数
                var pgStr = string.Empty;
                //指标类型数量是否大于0
                if (indexList.Count() > 0)
                {
                    //督评结果汇总
                    if (request.Data.Code == 1)
                    {
                        for (int i = 0; i < indexList.Count(); i++)
                        {
                            if (indexList[i].Ratio > 0)
                            {
                                str += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END)*{1} AS {0}督评分,", indexList[i].Name, indexList[i].Ratio);
                            }
                            else
                            {

                                str += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END) AS {0}督评分,", indexList[i].Name);
                            }

                            if (i == indexList.Count() - 1)
                            {
                                if (indexList[i].Ratio > 0)
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END)*{1} as 督评总分", indexList[i].Name, indexList[i].Ratio);
                                }
                                else
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END) as 督评总分", indexList[i].Name);
                                }


                            }
                            else
                            {
                                if (indexList[i].Ratio > 0)
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END)*{1} +", indexList[i].Name, indexList[i].Ratio);
                                }
                                else
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 督评分 ELSE 0 END) +", indexList[i].Name);
                                }

                            }

                        }
                    }
                    else //自评结果汇总
                    {
                        for (int i = 0; i < indexList.Count(); i++)
                        {
                            if (indexList[i].Ratio > 0)
                            {
                                str += string.Format(@" SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END)*{1} AS {0}自评分,", indexList[i].Name, indexList[i].Ratio);
                            }
                            else
                            {
                                str += string.Format(@" SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END) AS {0}自评分,", indexList[i].Name);

                            }
                            if (i == indexList.Count() - 1)
                            {
                                if (indexList[i].Ratio > 0)
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END)*{1} as 自评总分", indexList[i].Name, indexList[i].Ratio);
                                }
                                else
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END) as 自评总分", indexList[i].Name);
                                    
                                }


                            }
                            else
                            {
                                if (indexList[i].Ratio > 0)
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END)*{1} +", indexList[i].Name, indexList[i].Ratio);
                                    
                                }
                                else
                                {
                                    pgStr += string.Format(@"SUM(CASE WHEN 指标类型 = '{0}' THEN 自评分 ELSE 0 END) +", indexList[i].Name);
                                   
                                }

                            }

                        }
                    }
                    
                }
                var sqlStr = string.Empty;

                //是否是模板批次类应用,如果是,sqlStr需新增一段sql
                var bat = string.Empty;
                if (!string.IsNullOrWhiteSpace(request.Data.BatchId)) 
                {
                    bat = string.Format(@" AND b.XX_ID IN (SELECT system_school_id FROM tb_batch_school WHERE batch_id = '{0}' AND system_school_type IN ({1}))", request.Data.BatchId, request.Data.SchoolType);
                }

                if (!string.IsNullOrWhiteSpace(str))
                {
                    sqlStr = string.Format(@"SELECT
                             学校名称,学校类型,学校类型名称,
                             {0}{6}
                         FROM
                             (
                             SELECT
                                 b.XXMC AS 学校名称,
                                b.XXLXM as 学校类型,
                              a.XXLXSM as 学校类型名称,
                                 g.Name AS 指标类型,
                                 SUM(e.Value) AS 总分,
                                 SUM(f.SchoolScore) AS 自评分,
                                 SUM(f.Score) AS 督评分
                             FROM
                                 MB_XXLX a
                             LEFT JOIN
                                 XX_XX b ON a.XXLXM = b.XXLXM
                             LEFT JOIN
                                 tb_start_index c ON (c.SchoolType = a.XXLXM OR c.SchoolType = 0)
                                 AND c.PlanningId = '{1}'
                                 AND (c.Year = {2} OR c.Year = 0)
                             LEFT JOIN
                                 tb_middle_index d ON d.StartId = c.Id
                             LEFT JOIN
                                 tb_end_index e ON e.MiddleId = d.Id
                                 AND (e.SchoolId = '0' OR e.SchoolId = b.XX_ID)
                             LEFT JOIN
                                 tb_result f ON f.IndexId = e.Id
                                 AND f.SchoolId = b.XX_ID
                             LEFT JOIN
                                 tb_index_type g ON g.Id = c.Type
                             WHERE
                                 a.XXLXM IN ({3})
                                 AND b.SystemId = {4}
                                 AND c.DistrictCode = '{5}'
                                 AND c.SchoolType IN ({3})
                                 {7}
                             GROUP BY
                                 b.XX_ID,b.XXLXM,a.XXLXSM, b.XXMC, g.Id, g.Name
                             ) AS OriginalResults
                         GROUP BY
                             学校类型,学校类型名称, 学校名称 
                         ORDER BY
                             学校类型,学校类型名称,学校名称;", str, request.Data.PlanningId, request.Data.Year, request.Data.SchoolType, request.Data.SystemId, request.Data.districtCode, pgStr,bat);

                    dt = db.Ado.GetDataTable(sqlStr) ?? new DataTable();
                   

                }
                return dt;
            }
        }

如果不考虑筛选条件,可以直接通过视图传DataTable到前端,源代码:

public IActionResult OriginalResult()
        {
            var curr = this.GetCurrentPlan() ?? new GHEntity();
            var districtCode = this.GetDistrictCodeByPgMode();
            var schooltypes = _baseConfigService.GetSingle(districtCode, SystemId, BaseConfigKeyEnum.PG_SZXXLX.ToString())?.Value;

            var OrgResult = _OrigService.OriginalResult(new OriginalResultQuery
            {
                districtCode = districtCode,
                PlanningId = curr.Id,
                SystemId = SystemIdInt,
                SchoolType = schooltypes,
                Year = SystemYear
            });

          
            if (OrgResult.Rows.Count > 0)
            {
                OrgResult.Columns.Remove("学校类型");
                ViewBag.IsData = true;
            }
            else 
            {
                ViewBag.IsData = false;
            }

            return View(OrgResult);
        }

前端直接通过Foreach加载数据:

@{
    ViewData["Title"] = "OriginalResult";
    Layout = "~/Views/Shared/_Index.cshtml";
}

@model System.Data.DataTable

<style type="text/css">

    /*高度为内容高度*/
    .layui-table-cell {
        white-space: normal;
        height: auto !important;
        word-break: break-all;
    }
    .heads {
      font-weight:bold !important;
    }
</style>


<div class="layuimini-container">
    <div class="layuimini-main">
        <div style="margin: 10px 10px 10px 10px">
            @if (ViewBag.IsData)
            {
                <h2 style="text-align: center; padding: 1%; font-weight: bold;">南湖区考核数据汇总</h2>

                <table class="layui-table">
                    <thead>
                        <tr>
                            @foreach (System.Data.DataColumn column in Model.Columns)
                            {
                                <th class="heads">@column.ColumnName</th>
                            }
                        </tr>
                    </thead>
                    <tbody>
                        @foreach (System.Data.DataRow row in Model.Rows)
                        {
                            <tr>
                                @foreach (var item in row.ItemArray)
                                {
                                    <td class="content">@item</td>
                                }
                            </tr>
                        }
                    </tbody>
                </table>
            }
            else
            {
                <div style=" text-align: center; padding: 5%;font-weight:bold;font-size:20px;">
                    <p><svg t="1723538461678" class="icon" viewBox="0 0 1182 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5877" width="200" height="200"><path d="M427.976033 972.52194v8.297464c0 4.847577-0.464489 11.582669-4.252186 16.624487 0.941646 0.443376 2.656033 1.634157 3.424551 2.364672 3.137413-4.117062 4.2733-9.906286 4.619555-14.969217h7.98499v14.855206h4.138176v-14.855206h6.90822v-3.597679h-18.858258v-5.696325c6.042581-0.464489 12.663662-1.423026 17.262104-2.829161l-2.482905-3.542785c-4.425314 1.579263-12.182282 2.791157-18.744247 3.348544z m-18.858257 40.19942h30.098893v5.371183h-30.098893v-5.371183z m0-3.251424v-4.923584h30.098893v4.923584h-30.098893z m-4.19307-8.407252v22.667068h4.19307v-2.077533h30.098893v1.963522h4.366198v-22.553057h-38.658161z m-7.102461-9.217998l0.367369 3.943935 13.605308-1.47792v5.307844h4.138176v-5.793446l9.040647-1.000763-0.054895-3.348544-8.989975 0.865639v-4.349307h9.332008v-3.61457H415.933098v-3.851037h-4.138176v3.851037H404.151965c1.600376-1.887515 3.251424-4.041055 4.792683-6.350833h16.202224v-3.504781h-13.951563l1.65527-3.095187-4.446427-1.330127c-0.574277 1.520146-1.287902 2.985398-2.001526 4.425314h-8.698614v3.504781h6.621081c-1.228785 1.963522-2.347781 3.504781-2.884055 4.155066-1.055657 1.423026-2.077533 2.385785-3.023402 2.558913 0.540496 1.173891 1.195004 3.19653 1.423026 4.062168 0.540496-0.464489 2.309778-0.810745 4.792683-0.810744h7.161577v4.77157l-13.976899 1.080992z m62.621576-19.322746v4.391533h19.626776c-0.173128 4.307081-0.367369 8.926636-1.07677 13.470184h-22.227915v4.307081h21.40028c-2.428011 10.413001-8.16234 20.150382-22.168798 25.538455 1.135887 0.886752 2.423789 2.482905 3.019179 3.576566 15.260578-6.059471 21.168035-17.257881 23.65094-29.115021h1.233008v20.804889c0 5.44719 1.65527 6.984227 7.811862 6.984227h11.046395c5.675212 0 7.102461-2.482905 7.697851-12.123166-1.309015-0.287139-3.251424-1.07677-4.311303-1.925518-0.308252 8.276351-0.768518 9.661373-3.673686 9.661373h-10.353885c-3.002289 0-3.601902-0.405372-3.601902-2.596916v-20.804889h21.40028v-4.307081h-26.475879c0.650285-4.543548 0.941646-9.103986 1.055657-13.470184h22.054787v-4.391533h-46.111099z m78.570443-3.057183c-1.07677 2.444902-2.964285 6.139701-4.446428 8.331246l2.905168 1.503255c1.541259-2.081756 3.542785-5.198055 5.25295-8.086333l-3.715913-1.748168z m-20.994908 1.748168c1.537037 2.639143 3.137413 6.080585 3.656796 8.276351l3.365435-1.579263c-0.519383-2.250661-2.115537-5.637209-3.770807-8.08211l-3.251424 1.385022z m19.031386 32.10042a26.644784 26.644784 0 0 1-5.502085 8.044106 118.824757 118.824757 0 0 0-6.735092-3.234533c0.827635-1.439916 1.769281-3.057183 2.596917-4.809573h9.64026z m-17.743484 6.42684a93.320083 93.320083 0 0 1 9.120877 4.197292c-3.787697 2.748931-8.352359 4.674449-13.199936 5.810336 0.768518 0.844526 1.731278 2.406898 2.13665 3.483669 5.44719-1.503256 10.467895-3.851037 14.720082-7.313592 1.942409 1.195004 3.732803 2.330891 5.079822 3.348544l2.850274-2.926282c-1.368132-0.962759-3.082519-2.039529-5.024928-3.116299a31.669711 31.669711 0 0 0 7.081348-12.794563l-2.423789-1.004986-0.709402 0.173128h-9.682486l1.292124-3.095187-3.96927-0.713624a42.775223 42.775223 0 0 1-1.591931 3.808811h-8.022994v3.715913h6.194596c-1.233007 2.406898-2.601139 4.619555-3.851037 6.42684z m8.698614-41.550662v11.722016h-12.237176v3.673687h10.869045c-2.829161 3.87215-7.389599 7.56695-11.527775 9.357344 0.886752 0.827635 1.908628 2.364672 2.428011 3.386548 3.618792-1.963522 7.50361-5.295176 10.467895-8.816848v7.258698h4.138176v-8.082111c2.846051 2.077533 6.447953 4.86869 7.925873 6.24949l2.482905-3.209197c-1.423026-1.021876-6.616858-4.349307-9.522026-6.139702h11.177296v-3.673686h-12.064048v-11.722016h-4.138176z m21.99567 0.582723c-1.47792 11.025282-4.138176 21.011798-8.757731 27.24862 0.945869 0.595391 2.677146 2.039529 3.369658 2.748931 1.541259-2.212657 2.846051-4.826464 4.019942-7.735855 1.309015 5.83145 3.023402 11.219523 5.214946 15.936199-3.306318 5.696325-7.925873 10.083636-14.373827 13.259052 0.827635 0.903642 2.077533 2.694037 2.482906 3.656796 6.02569-3.29365 10.586129-7.431826 14.065574-12.701666 2.964285 5.079822 6.621081 9.163103 11.240636 11.992265 0.713624-1.14011 2.018416-2.698259 3.019179-3.547008-4.961588-2.689814-8.867519-7.081347-11.890921-12.583432 3.137413-6.139701 5.155829-13.778436 6.447954-22.97532h4.019942v-4.159289h-16.856732c0.827635-3.386548 1.541259-6.946223 2.077533-10.581906l-4.079059-0.557387z m10.641023 15.298582c-0.941646 7.060234-2.364672 13.199936-4.501321 18.30087-2.23377-5.404964-3.884818-11.684012-5.024928-18.30087h9.526249z m39.891169 20.475524v19.453648h3.910153v-2.23377h18.220641v2.001525h4.062168v-19.221403h-11.392651v-7.389599h13.23794v-3.829924h-13.23794v-7.043344h11.160407v-15.125454h-31.213668v17.874385c0 9.737381-0.536274 22.958429-6.675975 32.560686 1.000763 0.443376 2.829161 1.63838 3.656796 2.292887 4.906694-7.140464 6.561964-17.861717 7.098238-26.729236h11.760019v7.389599h-10.586128z m-0.941646-29.558397h22.650177v7.389599h-22.650177v-7.389599z m0 11.29553h11.527774v7.043344h-11.582669l0.054895-4.294413v-2.748931z m4.851799 31.809058v-9.754271h18.220641v9.754271h-18.220641z m-22.633287-49.704556v12.313184h-7.389599v4.138175h7.389599v13.107038c-3.078296 0.941646-5.924347 1.786172-8.158117 2.385785l1.17389 4.404201 6.984227-2.271774v15.763071c0 0.865639-0.308252 1.097883-1.017653 1.097884-0.713624 0.076007-3.002289 0.076007-5.544311 0 0.519383 1.190781 1.118996 3.019179 1.233008 4.079058 3.732803 0.054894 6.021468-0.118234 7.448716-0.827635 1.47792-0.633394 2.018416-1.887515 2.018416-4.349307v-17.12698l6.794209-2.271774-0.654508-4.079058-6.139701 1.942409v-11.852918h6.675975v-4.138175h-6.675975v-12.313184h-4.138176z m71.472205 32.847825c2.829161 0 5.793446-1.773504 8.217234-5.599205l-3.023402-2.195767c-1.537037 2.770044-3.192307 3.715913-5.079821 3.715913-3.732803 0-6.502847-5.295176-11.69668-5.295176-2.850274 0-5.869453 1.828398-8.238348 5.966574l3.023402 2.115536c1.47792-2.829161 3.13319-4.019942 5.020705-4.019942 3.79192 0 6.561964 5.312066 11.77691 5.312067z" fill="#798298" p-id="5878"></path><path d="M89.608392 0l-35.174492 112.59638h21.265155L110.877771 0H89.608392z" fill="#CED0DB" p-id="5879"></path><path d="M39.46046 13.208381H16.510476 2.047975A2.060643 2.060643 0 0 0 0.004223 15.281691V99.231762c0 1.144332 0.912088 2.07331 2.043752 2.073311h37.412485c1.127442 0 2.043752-0.928978 2.043752-2.073311v-12.608768a2.060643 2.060643 0 0 0-2.043752-2.077533H16.510476V29.96377h22.949984c1.127442 0 2.043752-0.928978 2.043752-2.069088V15.281691a2.060643 2.060643 0 0 0-2.043752-2.07331z" fill="#E4E6EF" p-id="5880"></path><path d="M164.699389 13.208381h-14.462501-22.949984a2.060643 2.060643 0 0 0-2.043752 2.07331v12.612991c0 1.14011 0.91631 2.069088 2.043752 2.069088h22.949984v54.581691h-22.949984a2.060643 2.060643 0 0 0-2.043752 2.077533V99.231762c0 1.144332 0.91631 2.07331 2.043752 2.073311h37.412485c1.131664 0 2.043752-0.928978 2.043752-2.073311v-12.608768V27.894682 15.281691a2.060643 2.060643 0 0 0-2.043752-2.07331z" fill="#E4E6EF" p-id="5881"></path><path d="M1095.49754 735.184901h-37.948759v-131.319514a18.900484 18.900484 0 0 1 18.875148-18.925819h0.198463a18.900484 18.900484 0 0 1 18.875148 18.925819v131.323736z" fill="#00B578" p-id="5882"></path><path d="M1115.381896 767.112192h-38.257011v-68.951295a18.537338 18.537338 0 0 1 18.558451-18.528892h1.144332a18.537338 18.537338 0 0 1 18.554228 18.528892v68.951295zM1058.465091 734.538839h-38.257011v-74.53361a18.503557 18.503557 0 0 1 18.482443-18.528893h1.296347a18.503557 18.503557 0 0 1 18.478221 18.528893v74.53361z" fill="#00B578" p-id="5883"></path><path d="M1015.102922 844.525635c-4.108617 0-7.440271-3.171194-7.44027-7.08557v-98.421018c0-3.910154 3.331654-7.08557 7.44027-7.08557h103.961106c4.11284 0 7.444493 3.175416 7.444494 7.08557v98.421018c0 3.914376-3.331654 7.08557-7.440271 7.08557h-103.965329z" fill="#CAD5EE" p-id="5884"></path><path d="M1070.596702 613.560542q0 0.367369-0.071785 0.726292-0.071785 0.358923-0.211131 0.696733-0.143569 0.33781-0.346256 0.64184-0.206909 0.308252-0.464489 0.565832-0.261803 0.25758-0.565832 0.464489-0.304029 0.202686-0.646062 0.342033-0.33781 0.139347-0.700956 0.211131-0.358923 0.071785-0.726292 0.071785-0.367369 0-0.730515-0.071785-0.358923-0.071785-0.696734-0.211131t-0.646062-0.342033q-0.308252-0.206909-0.565832-0.464489-0.261803-0.25758-0.464489-0.565832-0.202686-0.304029-0.346256-0.64184-0.139347-0.33781-0.211131-0.696733t-0.071785-0.726292q0-0.367369 0.071785-0.726293 0.071785-0.358923 0.211131-0.700956 0.143569-0.33781 0.346256-0.641839t0.464489-0.565832q0.25758-0.25758 0.565832-0.46449 0.304029-0.202686 0.646062-0.33781 0.33781-0.143569 0.696734-0.211131 0.363146-0.076007 0.730515-0.076008t0.726292 0.071785q0.363146 0.071785 0.700956 0.211132 0.33781 0.139347 0.646062 0.346255 0.304029 0.202686 0.565832 0.464489 0.25758 0.253358 0.464489 0.56161 0.202686 0.304029 0.342033 0.641839 0.143569 0.33781 0.211132 0.700956 0.076007 0.358923 0.076007 0.726293zM1090.189697 651.71621q0 0.363146-0.071785 0.726292-0.071785 0.358923-0.211131 0.696733t-0.346256 0.64184q-0.202686 0.308252-0.464489 0.565832-0.25758 0.25758-0.565832 0.464489-0.304029 0.202686-0.646062 0.342033-0.33781 0.139347-0.696734 0.211131-0.363146 0.071785-0.730515 0.071785t-0.726292-0.071785q-0.363146-0.071785-0.700956-0.211131-0.33781-0.139347-0.646062-0.342033-0.304029-0.206909-0.565832-0.464489-0.25758-0.25758-0.464489-0.565832-0.202686-0.304029-0.342033-0.64184-0.143569-0.33781-0.211132-0.696733-0.076007-0.363146-0.076007-0.726292 0-0.367369 0.071785-0.726292 0.071785-0.358923 0.211131-0.700957 0.143569-0.33781 0.346256-0.641839 0.206909-0.304029 0.464489-0.565832 0.261803-0.25758 0.565832-0.464489 0.308252-0.202686 0.646062-0.337811 0.33781-0.143569 0.700956-0.211131 0.358923-0.076007 0.726292-0.076007 0.367369 0 0.730515 0.071784 0.358923 0.071785 0.696734 0.211132t0.646062 0.346255q0.308252 0.202686 0.565832 0.464489 0.261803 0.253358 0.464489 0.56161 0.206909 0.304029 0.346256 0.641839t0.211131 0.700957q0.071785 0.358923 0.071785 0.726292zM1032.339691 670.325332q0 0.367369-0.071785 0.726292-0.071785 0.363146-0.211131 0.700956-0.143569 0.33781-0.346256 0.64184t-0.464489 0.565832q-0.261803 0.25758-0.565832 0.464489-0.304029 0.202686-0.646062 0.33781-0.33781 0.143569-0.700957 0.215354-0.358923 0.071785-0.726292 0.071785-0.367369 0-0.726292-0.071785-0.363146-0.071785-0.700956-0.211131-0.33781-0.139347-0.646062-0.346255-0.304029-0.202686-0.565832-0.46449-0.25758-0.253358-0.464489-0.561609-0.202686-0.304029-0.346256-0.64184-0.139347-0.33781-0.211131-0.700956-0.071785-0.358923-0.071785-0.726292 0-0.363146 0.071785-0.726292 0.071785-0.358923 0.211131-0.696734 0.143569-0.33781 0.346256-0.641839 0.206909-0.304029 0.464489-0.565832 0.261803-0.25758 0.565832-0.464489 0.304029-0.202686 0.646062-0.342033 0.33781-0.139347 0.700956-0.211132 0.358923-0.071785 0.726292-0.071784 0.367369 0 0.726292 0.071784 0.363146 0.071785 0.700957 0.211132 0.33781 0.139347 0.646062 0.342033 0.304029 0.206909 0.565832 0.464489 0.261803 0.261803 0.464489 0.565832 0.202686 0.304029 0.346256 0.641839 0.139347 0.33781 0.211131 0.696734 0.071785 0.363146 0.071785 0.726292zM1050.999485 708.481q0 0.367369-0.071785 0.726292-0.071785 0.363146-0.211132 0.700957-0.139347 0.33781-0.346255 0.641839-0.202686 0.304029-0.464489 0.565832-0.25758 0.25758-0.56161 0.464489-0.308252 0.202686-0.646062 0.337811-0.33781 0.143569-0.700956 0.215354-0.358923 0.071785-0.730515 0.071784-0.367369 0-0.726292-0.071784-0.358923-0.071785-0.700956-0.211132-0.33781-0.139347-0.646062-0.346255-0.304029-0.202686-0.565832-0.464489-0.25758-0.253358-0.464489-0.56161-0.202686-0.304029-0.342033-0.641839t-0.211132-0.700957q-0.071785-0.358923-0.071784-0.726292 0-0.363146 0.071784-0.726292 0.071785-0.358923 0.211132-0.696733t0.346255-0.64184q0.202686-0.308252 0.464489-0.565832 0.25758-0.25758 0.56161-0.464489 0.308252-0.202686 0.646062-0.342033t0.700956-0.211132q0.358923-0.071785 0.726292-0.071784 0.371591 0 0.730515 0.071784 0.358923 0.071785 0.700956 0.211132 0.33781 0.139347 0.646062 0.342033 0.304029 0.206909 0.56161 0.464489 0.261803 0.25758 0.464489 0.565832 0.206909 0.304029 0.346255 0.64184t0.211132 0.696733q0.071785 0.363146 0.071785 0.726292z" fill="#00B578" p-id="5885"></path><path d="M1023.58196 482.152353l103.433277-0.042227a15.919308 15.919308 0 0 0 15.90664-15.931976 15.919308 15.919308 0 0 0-15.919308-15.910863l-103.4375 0.042227a15.919308 15.919308 0 0 0-15.902417 15.931976 15.919308 15.919308 0 0 0 15.919308 15.910863z" fill="#E4E6EF" opacity=".57" p-id="5886"></path><path d="M1062.88196 544.672585l103.538843-0.042226a15.893972 15.893972 0 0 0 15.919308-15.864414 15.88975 15.88975 0 0 0-15.931976-15.851746l-103.538843 0.042226a15.893972 15.893972 0 0 0-15.923531 15.868637 15.893972 15.893972 0 0 0 15.936199 15.847523z" fill="#E4E6EF" opacity=".57" p-id="5887"></path><path d="M1071.736812 482.338148v-0.004222l54.501461-0.025336c-8.749286 0-15.834856 7.051789-15.834855 15.733513 0 8.685946 7.098238 15.725067 15.847523 15.720844l-54.501462 0.021113c8.690169-0.084453 15.703954-7.094015 15.699732-15.733512-0.004223-8.635275-7.026453-15.640615-15.708177-15.708177z" fill="#E4E6EF" opacity=".57" p-id="5888"></path><path d="M418.449784 199.337608a16.890513 16.890513 0 1 1-33.603675-3.449887 16.890513 16.890513 0 0 1 33.603675 3.449887z" fill="#E4E6EF" p-id="5889"></path><path d="M526.95866 137.488773a17.017192 17.017192 0 0 1-18.676684 15.159235 17.000301 17.000301 0 0 1-15.201462-18.630235 17.017192 17.017192 0 0 1 18.676685-15.159235 16.991856 16.991856 0 0 1 15.201461 18.630235zM307.111747 131.311068a17.017192 17.017192 0 0 1-18.680907 15.159235 16.996078 16.996078 0 0 1-15.201461-18.626012 17.017192 17.017192 0 0 1 18.680907-15.159236 16.996078 16.996078 0 0 1 15.201461 18.626013z" fill="#E4E6EF" p-id="5890"></path><path d="M622.736313 176.201828c-1.042989 10.016074-10.092081 17.295885-20.217944 16.269787-10.130085-1.030321-17.494349-9.97807-16.455582-19.989922s10.092081-17.295885 20.217944-16.269786c10.125862 1.030321 17.494349 9.97807 16.455582 19.989921z" fill="#E4E6EF" p-id="5891"></path><path d="M401.875969 199.063137l-0.413818-0.25758-109.741884-69.36089 0.874084-1.410358 109.328066 69.10331 110.734202-62.630021 0.363146 0.143569 94.536199 37.496938-0.599613 1.54126-94.173053-37.349147L401.871746 199.063137z" fill="#E4E6EF" p-id="5892"></path><path d="M141.407372 307.677579m16.421801 0l697.379711 0q16.421801 0 16.421801 16.421801l0 501.289304q0 16.421801-16.421801 16.421801l-697.379711 0q-16.421801 0-16.421801-16.421801l0-501.289304q0-16.421801 16.421801-16.421801Z" fill="#E2E7F2" p-id="5893"></path><path d="M160.966586 283.042766h690.737517c10.801483 0 19.559214 8.542377 19.559213 19.073612v56.82813H141.407372V302.116378c0-10.531235 8.757731-19.069389 19.559214-19.069389z" fill="#393D65" p-id="5894"></path><path d="M169.255605 320.995749a13.960009 13.609531 0 1 0 27.920018 0 13.960009 13.609531 0 1 0-27.920018 0Z" fill="#FFFFFF" p-id="5895"></path><path d="M221.396618 320.995749a13.960009 13.609531 0 1 0 27.920017 0 13.960009 13.609531 0 1 0-27.920017 0Z" fill="#FFFFFF" p-id="5896"></path><path d="M273.550298 320.995749a13.960009 13.609531 0 1 0 27.920018 0 13.960009 13.609531 0 1 0-27.920018 0Z" fill="#FFFFFF" p-id="5897"></path><path d="M383.853792 589.761809l-8.981531-6.5873 8.981531-6.570409 8.98153 6.570409-8.98153 6.5873z" fill="#FFFFFF" p-id="5898"></path><path d="M658.906109 591.468988m-3.135142 3.135141l-67.608579 67.608579q-3.135141 3.135141-6.270283 0l-11.916523-11.916523q-3.135141-3.135141 0-6.270283l67.608579-67.608579q3.135141-3.135141 6.270283 0l11.916523 11.916523q3.135141 3.135141 0 6.270283Z" fill="#B2BED9" p-id="5899"></path><path d="M518.479623 537.519453m0 4.366198l0 95.748094q0 4.366198-4.366198 4.366197l-16.210669 0q-4.366198 0-4.366198-4.366197l0-95.748094q0-4.366198 4.366198-4.366198l16.210669 0q4.366198 0 4.366198 4.366198Z" fill="#B2BED9" p-id="5900"></path><path d="M371.767393 573.562571m3.087368 3.087368l67.704126 67.704126q3.087368 3.087368 0 6.174736l-11.462674 11.462674q-3.087368 3.087368-6.174736 0l-67.704126-67.704126q-3.087368-3.087368 0-6.174736l11.462674-11.462674q3.087368-3.087368 6.174736 0Z" fill="#B2BED9" p-id="5901"></path><path d="M158.352779 632.127438c0-8.867519-0.844526-17.312776-0.844525-25.758032-0.422263-20.690878-2.533577-38.003654-11.401097-54.894167-8.445256-15.623724-30.402923-23.646718-46.871172-26.602557 2.95584 0.422263 9.289782 24.068981 10.134307 27.869346 1.266788 8.445256 1.266788 17.312776 2.95584 25.758032 6.333942 29.558397 27.02482 37.581391 46.026647 53.627378z" fill="#798298" p-id="5902"></path><path d="M787.473705 555.02647c6.891329 5.582314 13.989567 10.239873 20.551532 15.551939 16.341571 12.69322 31.129215 21.949221 49.835458 25.686248 17.456345 3.272537 37.509606-8.74084 50.169045-19.68167-2.187321 2.026862-24.55036-7.930096-28.038251-9.665596-7.355818-4.328194-14.247147-9.910508-21.873214-13.909337-26.957258-13.681315-46.212443-2.65181-70.64457 2.018416z" fill="#798298" p-id="5903"></path><path d="M677.668482 481.903218c7.26292-1.946632 13.998012-4.492876 20.9189-6.34661 16.856732-4.885581 30.571828-10.417224 42.466972-21.387612 10.945052-10.345439 12.697443-30.098894 11.502439-44.236253 0.304029 2.512464-17.680144 12.891684-20.606425 14.420275-6.637971 2.888278-13.905115 4.834909-20.450189 8.073665-22.823305 11.675567-24.854389 30.386032-33.831697 49.476535z" fill="#798298" p-id="5904"></path><path d="M586.121904 240.955831c4.298635 3.479446 8.72395 6.384614 12.815676 9.699377 10.193424 7.913205 19.415644 13.685538 31.078544 16.016429 10.890158 2.039529 23.39336-5.451413 31.289674-12.27518-1.363909 1.266788-15.31125-4.940475-17.48168-6.02569-4.589997-2.702482-8.888632-6.181928-13.643312-8.677501-16.814505-8.529709-28.82366-1.646825-44.058902 1.262565z" fill="#798298" p-id="5905"></path><path d="M201.423587 426.485446c-2.111314 4.222628-3.800365 8.445256-5.489417 12.245621-4.644891 9.712045-7.600731 18.579564-7.600731 29.558397 0.422263 10.134308 9.289782 20.690878 16.46825 27.447084-1.266788-1.266788 1.266788-14.356936 1.689051-16.46825 1.266788-4.222628 3.378103-8.445256 4.644891-13.090148 3.800365-15.623724-4.222628-25.758032-9.712044-39.692704z" fill="#333333" p-id="5906"></path><path d="M903.773331 704.629963c-1.950854-4.302858-4.167734-8.272129-6.059472-11.975373-4.623778-9.72049-9.657151-17.599914-18.186859-24.508134-8.141227-6.051026-21.928108-5.801891-31.695047-4.475986 1.781949-0.185796 10.36233 10.020297 11.738906 11.675567 2.478683 3.644128 4.43376 7.938541 7.24603 11.848695 9.754271 12.786118 22.675513 12.929687 36.960664 17.431009z" fill="#333333" p-id="5907"></path><path d="M1182.340111 236.509404q0 5.28673-0.25758 10.565016-0.261803 5.278285-0.781186 10.53968-0.515161 5.261395-1.292124 10.493231-0.776964 5.227614-1.807285 10.413001-1.030321 5.185387-2.314001 10.31588-1.287902 5.126271-2.820715 10.184979-1.537037 5.058709-3.318986 10.037188-1.777726 4.978479-3.800365 9.859836-2.026862 4.885581-4.285968 9.665596-2.259106 4.780015-4.750457 9.441797-2.491351 4.661782-5.210723 9.196884-2.719373 4.535103-5.658322 8.930859-2.934727 4.391533-6.080584 8.639497-3.150081 4.247964-6.502847 8.335468-3.356989 4.083281-6.90822 8.00188-3.547008 3.918599-7.288256 7.655625-3.737026 3.737026-7.655625 7.288256-3.914376 3.547008-8.001881 6.903997-4.087504 3.352767-8.335468 6.502848-4.243741 3.150081-8.639497 6.084807-4.395756 2.938949-8.930859 5.658322-4.535103 2.71515-9.196884 5.210723-4.661782 2.491351-9.441796 4.750457-4.780015 2.259106-9.661374 4.281745-4.885581 2.026862-9.864059 3.804588-4.978479 1.781949-10.037187 3.318985-5.058709 1.532814-10.184979 2.820716-5.130493 1.283679-10.315881 2.314-5.185387 1.030321-10.413001 1.807285-5.227614 0.776964-10.489008 1.292124-5.261395 0.519383-10.543903 0.781187-5.278285 0.253358-10.565016 0.253357-5.28673 0-10.569238-0.253357-5.278285-0.261803-10.53968-0.781187-5.261395-0.515161-10.493231-1.292124-5.227614-0.776964-10.413001-1.807285-5.185387-1.030321-10.311658-2.314-5.130493-1.287902-10.189202-2.820716-5.058709-1.537037-10.037187-3.318985-4.974256-1.777726-9.859837-3.800366-4.885581-2.026862-9.665596-4.285967-4.775792-2.259106-9.437574-4.750457-4.666004-2.491351-9.196884-5.210723-4.535103-2.719373-8.930858-5.658322-4.395756-2.934727-8.64372-6.080584-4.247964-3.154303-8.331246-6.507071-4.087504-3.352767-8.006103-6.903997-3.914376-3.547008-7.655624-7.288256-3.737026-3.737026-7.288257-7.655625-3.547008-3.918599-6.903997-8.00188-3.352767-4.087504-6.502847-8.335468-3.150081-4.243741-6.084807-8.639497-2.938949-4.395756-5.658322-8.930859-2.71515-4.535103-5.206501-9.196884-2.491351-4.661782-4.754679-9.441797-2.259106-4.780015-4.281745-9.665596-2.026862-4.881358-3.804588-9.859836-1.781949-4.978479-3.314763-10.037188-1.537037-5.058709-2.820716-10.184979-1.283679-5.130493-2.314-10.31588-1.034544-5.185387-1.807285-10.413001-0.776964-5.231836-1.296347-10.493231-0.515161-5.261395-0.776963-10.53968-0.25758-5.278285-0.25758-10.565016 0-5.28673 0.25758-10.569238 0.261803-5.278285 0.776963-10.53968 0.519383-5.261395 1.296347-10.493231 0.772741-5.227614 1.807285-10.413001 1.030321-5.185387 2.314-10.311658 1.283679-5.130493 2.820716-10.189202 1.532814-5.058709 3.314763-10.037187 1.781949-4.978479 3.800365-9.859837 2.026862-4.885581 4.285968-9.665596 2.263329-4.780015 4.754679-9.441797 2.491351-4.661782 5.210724-9.196884 2.71515-4.535103 5.654099-8.930858 2.934727-4.391533 6.084807-8.639498 3.150081-4.247964 6.502847-8.335468 3.352767-4.083281 6.903997-8.00188t7.288257-7.655625q3.741249-3.737026 7.655624-7.288256 3.918599-3.547008 8.006103-6.903997 4.083281-3.352767 8.331246-6.502847 4.247964-3.150081 8.64372-6.084808 4.391533-2.938949 8.930858-5.658321 4.53088-2.71515 9.196884-5.206501 4.661782-2.491351 9.437574-4.754679 4.780015-2.259106 9.665596-4.281745 4.885581-2.026862 9.859837-3.804588 4.982701-1.781949 10.037187-3.314763 5.058709-1.537037 10.189202-2.820716 5.126271-1.283679 10.311658-2.318223 5.185387-1.030321 10.413001-1.803062 5.231836-0.776964 10.493231-1.296347 5.261395-0.519383 10.53968-0.776964T966.986074 21.155367q5.28673 0 10.565016 0.25758 5.278285 0.25758 10.543903 0.776964 5.261395 0.519383 10.489008 1.296347 5.227614 0.772741 10.413001 1.803062 5.185387 1.034544 10.315881 2.318223 5.126271 1.283679 10.184979 2.820716 5.058709 1.532814 10.037187 3.314763 4.978479 1.781949 9.864059 3.800365 4.881358 2.026862 9.661374 4.285968 4.780015 2.259106 9.441796 4.754679 4.661782 2.491351 9.196884 5.206501 4.535103 2.719373 8.930859 5.658321 4.391533 2.934727 8.639497 6.080585 4.247964 3.154303 8.335468 6.50707 4.087504 3.352767 8.001881 6.903997 3.918599 3.547008 7.655625 7.288256 3.737026 3.737026 7.288256 7.655625 3.55123 3.918599 6.903997 8.00188 3.356989 4.087504 6.502847 8.335468 3.150081 4.243741 6.08903 8.639498 2.934727 4.395756 5.654099 8.930858 2.719373 4.535103 5.210723 9.196884 2.491351 4.661782 4.750457 9.441797 2.259106 4.780015 4.285968 9.665596 2.022639 4.881358 3.800365 9.859837 1.781949 4.978479 3.318986 10.037187 1.532814 5.058709 2.820715 10.189202 1.283679 5.126271 2.314001 10.311658 1.030321 5.185387 1.807285 10.413001 0.776964 5.231836 1.292124 10.493231 0.519383 5.261395 0.781186 10.53968 0.253358 5.278285 0.253358 10.569238z" fill="#3662EC" p-id="5908"></path><path d="M35.837445 841.814707m0 0l1054.728066 0q0 0 0 0l0 2.710928q0 0 0 0l-1054.728066 0q0 0 0 0l0-2.710928q0 0 0 0Z" fill="#E5E3EA" p-id="5909"></path><path d="M945.277543 113.263556L842.068065 240.943164l155.067575 125.403611 103.209477-127.679608-155.067574-125.403611z m-60.087999 140.064576l-18.326206-14.981885 26.074729-32.024412 18.326206 14.977662-26.074729 32.024412z m36.449726 29.406383l-18.326206-14.977663 62.697583-77.535898 18.326207 14.977662-62.697584 77.535899z m36.449727 29.410605l-18.326206-14.981885 44.384044-54.780155 18.330429 14.981885-44.388267 54.780155z m36.449726 29.406382l-18.326206-14.977662 77.886377-95.317385 18.330429 14.981884-77.8906 95.313163z" fill="#FFFFFF" p-id="5910"></path><path d="M875.587455 283.672204m0 0l73.018418 59.127039q0 0 0 0l-11.086154 13.690749q0 0 0 0l-73.018418-59.12704q0 0 0 0l11.086154-13.690748q0 0 0 0Z" fill="#FFFFFF" p-id="5911"></path><path d="M99.235985 747.405187c-16.46825 0-29.558397 13.090147-29.558398 29.558397s13.090147 29.558397 29.558398 29.558397 29.558397-13.090147 29.558397-29.558397c0-16.045987-13.090147-29.558397-29.558397-29.558397z m0 44.337596c-8.022994 0-14.779199-6.756205-14.779199-14.779199s6.756205-14.779199 14.779199-14.779199 14.779199 6.756205 14.779198 14.779199c0 8.445256-6.756205 14.779199-14.779198 14.779199z" fill="#CDE1FD" p-id="5912"></path><path d="M301.542101 431.459702a24.803718 24.803718 0 0 0-24.955733 24.959955 24.803718 24.803718 0 0 0 24.955733 24.955732 24.803718 24.803718 0 0 0 24.959955-24.955732c0-13.550414-11.050618-24.955733-24.955733-24.955733z m0 37.437821c-6.773096 0-12.477866-5.700548-12.477867-12.477866 0-6.773096 5.704771-12.477866 12.482089-12.477867 6.773096 0 12.477866 5.700548 12.477866 12.477867a12.401859 12.401859 0 0 1-12.477866 12.477866z" fill="#3662EC" p-id="5913"></path><path d="M677.546026 709.777347a33.384098 33.384098 0 0 0-33.591007 33.591007 33.384098 33.384098 0 0 0 33.591007 33.59523 33.384098 33.384098 0 0 0 33.59523-33.59523c0-18.233308-14.876319-33.591007-33.59523-33.591007z m0 50.388622c-9.116654 0-16.793392-7.676738-16.793392-16.797615 0-9.116654 7.676738-16.793392 16.793392-16.793392 9.120877 0 16.797615 7.676738 16.797615 16.793392 0 9.598034-7.676738 16.797615-16.797615 16.797615z" fill="#3662EC" p-id="5914"></path><path d="M251.630635 684.817392a24.803718 24.803718 0 0 0-24.959955 24.959955 24.803718 24.803718 0 0 0 24.955733 24.955733 24.803718 24.803718 0 0 0 24.959955-24.955733c0-13.550414-11.050618-24.955733-24.955733-24.955732z m0 37.437821c-6.777318 0-12.482089-5.700548-12.482088-12.477866 0-6.773096 5.704771-12.477866 12.477866-12.477866 6.777318 0 12.482089 5.700548 12.482089 12.477866a12.401859 12.401859 0 0 1-12.482089 12.477866z" fill="#B3BAC8" p-id="5915"></path></svg></p>
                    <p style="margin-top:2%;">暂未查询到相关考核结果</p>
                </div>
              
            }

        </div>
    </div>
</div>

如果有筛选条件,很明显,这样直接通过视图View传输数据肯定不行,那么,改动一下,通过接口传输:

        /// <summary>
        /// 返回请求的汇总数据
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public ActionResult GetOriginalResult(RongboRequest<OriginalResultQuery> request) 
        {
            if (request == null) 
            {
                request = new RongboRequest<OriginalResultQuery>();
            }
            if (request.Data == null) 
            {
                request.Data = new OriginalResultQuery();
            }
            var curr = this.GetCurrentPlan() ?? new GHEntity();
          
            if (request.Data.Year == 0) 
            {
                request.Data.Year = SystemYear;
            }
            request.Data.districtCode = this.GetDistrictCodeByPgMode();
            request.Data.PlanningId = curr.Id;
            request.Data.SystemId = SystemIdInt;
            if (string.IsNullOrWhiteSpace(request.Data.SchoolType)) 
            {
                request.Data.SchoolType = _baseConfigService.GetSingle(request.Data.districtCode, SystemId, BaseConfigKeyEnum.PG_SZXXLX.ToString())?.Value;
            }
           
            var OrgResult = _OrigService.OriginalResult(request);
            OrgResult.Columns.Remove("学校类型");

            string dt = JsonConvert.SerializeObject(OrgResult);

            return Content(dt, "application/json");
        }

前端需要根据筛选条件请求,动态加载:


<style type="text/css">

    /*高度为内容高度*/
    .layui-table-cell {
        white-space: normal;
        height: auto !important;
        word-break: break-all;
    }

    .heads {
        font-weight: bold !important;
    }
</style>

<div class="layuimini-container">
    <div class="layuimini-main">
        <div style="margin: 10px 10px 10px 10px">

            <form class="layui-form layui-form-pane" lay-filter="formTest" id="formTest" style="width:100%;margin:20px">

                <div class="layui-form-item">
                    <div class="layui-inline" id="divDistirctCode">
                        <label class="layui-form-label">地区</label>
                        <div class="layui-input-inline">
                            <select id="DistirctCode2" name="DistirctCode2" lay-filter="DistirctCode2">
                                @foreach (var item in ViewBag.DistrictList)
                                {
                                    <option value="@item.Id">@item.Name</option>
                                }
                            </select>
                        </div>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label layui-required">学年</label>
                        <div class="layui-input-inline">
                            <input type="text" name="Year" id="Year" class="layui-input" lay-filter="Year">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label layui-required">学校类型</label>
                        <div class="layui-input-inline">
                            <select name="SchoolType" id="SchoolType" lay-filter="SchoolType">
                                <option value="">全部</option>
                                @foreach (var item in ViewBag.SchoolTypeList)
                                {
                                    <option value="@item.Id">@item.Name</option>
                                }
                            </select>
                        </div>
                    </div>
                </div>
            </form>

            <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
                <ul class="layui-tab-title" style="font-size:16px;font-weight:bold;">
                    <li class="GetData layui-this" data-id="1">督评分数汇总</li>
                    <li class="GetData" data-id="0">自评分数汇总</li>

                </ul>
                <div class="layui-tab-content">
                    <div class=" layui-tab-item layui-show">
                        <table class="layui-hide" id="currentTable" lay-filter="currentTable" lay-data="{id:'tables'}"></table>
                    </div>
                    <div class=" layui-tab-item">
                        <table class="layui-hide" id="currentTable1" lay-filter="currentTable1" ></table>
                    </div>

                </div>
            </div>

        </div>
    </div>
</div>
<script type="text/javascript">

    var DistrictCode =@Html.Raw(ViewBag.DistrictCode);
    var Year = '@ViewBag.Year';
     var CAN_QUERY_OTHER_DISTRICT =  @Html.Raw(ViewBag.CAN_QUERY_OTHER_DISTRICT);
    if (CAN_QUERY_OTHER_DISTRICT) {
        $("#divDistirctCode").show();
    } else {
        $("#divDistirctCode").hide();
    }

      layui.config({
        base: '/js/layui-exts/'
    }).use(['form', 'table', 'cityPicker'], function () {
        var $ = layui.jquery,
            form = layui.form,
            laydate = layui.laydate,
            table = layui.table;
        var excel = layui.excel;

        layui.cityPicker({
            url: '@(Url.Action("GetRegion", "BasicSetup"))',
            provinceDom: '#province',
            cityDom: '#city',
            areaDom: '#area',
            code: DistrictCode,
        });

        $("#Year").val(Year);

        form.on('select(DistirctCode2)', function () {
            Load();
        });

        form.on('select(SchoolType)', function () {
            Load();
        });

        $(document).on('click', '.GetData', function () {

            Load();
        });

        //学年
        laydate.render({
            elem: '#Year'
            , type: 'year'
            , trigger: "click"//加入click事件
            , change: function (value, date, endDate) {
                Year = $("#Year").val();
                Load();
         }
        });



        Load();
        function Load() {
            $.ajax({
                url: '@Url.Action("GetOriginalResult")',
                type: 'post',
                data: {
                    Data: {
                        Year: $("#Year").val(),
                        SchoolType: $("#SchoolType").val(),
                        DistrictCode: $("#DistirctCode2").val(),
                        Code: $(".layui-tab-title > .layui-this").attr("data-id")
                    }
                },
                success: function (dt) {
                    LoadData(dt);
                }
            });
        }

        function LoadData(dt)
        {
            var code = $(".layui-tab-title > .layui-this").attr("data-id");
            var cols = [];
            if (dt.length > 0) {
                var keys = Object.keys(dt[0]);
                keys.forEach(function (key) {
                    cols.push({ field: key, title: key, sort: true });
                });
            };
            if (code == 1) {
                table.render({
                    elem: '#currentTable',
                    toolbar: ['default'], //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
                    cols: [cols],
                    data: dt,
                    page: true,
                    limits: [10, 50, 100, 200, 500, 1000, 5000]
                   // limit: Number.MAX_VALUE
                   
                });
              
            } else
            {
                table.render({
                    elem: '#currentTable1',
                    toolbar: ['default'], //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
                    cols: [cols],
                    data: dt,
                    page: true,
                    limits:[10,50,100,200,500,1000,5000]
                    //limit: Number.MAX_VALUE
                });
            }
            table = layui.table;
            table.render();

        }
        


    });

</script>

最后,附一张效果图:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++入门基础知识13

C 的关键字&#xff08;接上一篇博文&#xff09;&#xff01;&#xff01; 10. const_cast用法&#xff1a; 该运算符用来修改类型的 const 或 volatile 属性。除了 const 或 volatile 修饰之外&#xff0c; type_id 和 expression 的类型是一样的。常量指针被转化成非常量指针…

催收业务怎么提高接通率

提高催收呼叫业务的接通率是一个综合性的任务&#xff0c;需要从多个方面进行优化。以下是一些具体的策略和建议&#xff1a; 一、优化呼叫时间与频次 1. 选择合适的呼叫时间&#xff1a;通过分析目标客户的活跃时段&#xff0c;选择他们最可能接听电话的时间进行呼叫…

iOS Object-C 创建类别(Category) 与使用

有时候使用系统给出类或者第三方的类,但是呢它们自带的属性和方法又太少,不够我们的业务使用,这时候就需要给“系统的类或者第三方类”创建一个类别(Category),把自己的想添加的属性和方法写进来. Category模式用于向已经存在的类添加方法从而达到扩展已有类的目的 一:创建Ca…

零碳工厂:我国工业转型升级的绿色引擎

面对全球气候变化的严峻挑战&#xff0c;我国提出了碳达峰和碳中和的宏伟目标。零碳工厂作为工业领域实现这一目标的重要途径&#xff0c;正成为推动我国工业转型升级的绿色引擎。本文将提供一站式零碳工厂服务指南&#xff0c;帮助企业迈向零碳排放&#xff0c;共同构建绿色低…

零售企业做好人事管理并不难!智能化人事管理平台解决企业三大痛点!

在零售行业的激烈竞争中&#xff0c;优秀的人事管理策略是企业成功的关键。然而&#xff0c;传统的人事管理模式常常面临人员分散、流程繁琐、跨部门协作困难等挑战。为了应对这些问题&#xff0c;一站式人事管理平台的出现&#xff0c;为企业提供了数字化的解决方案。本文将探…

[论文泛读]zkLLM: Zero Knowledge Proofs for Large Language models

文章目录 介绍实验数据实验数据1实验数据2实验数据3 介绍 这篇文章发在CCS2024&#xff0c;CCS是密码学领域的顶会。作者是来自加拿大的University of Waterloo。文章对大语言模型像GPT和LLM等大语言模型实现了零知识可验证执行&#xff0c;但不涉及零知识可验证训练。个人觉得…

PAT--1124.最近的斐波那契数

题目描述 算法分析 找到把n夹在中间的两个斐波那契数列的数字&#xff0c;比如输入的数字9&#xff0c;你需要找到数字8和13&#xff0c;然后再输出差值绝对值较小的那个数字&#xff0c;如果一样&#xff0c;输出较小的数字 完整代码 #include<iostream> using names…

npm install pnpm -g 报错的解决方法

npm install pnpm -g 报错的解决方法 npm error code ETIMEDOUT npm error errno ETIMEDOUT npm error network request to https://registry.npmjs.org/pnpm failed, reason: npm error network This is a problem related to network connectivity. npm error network In mo…

三防加固平板电脑定制:现代工业环境的最佳选择

在数字化转型的浪潮中&#xff0c;工业领域正经历着前所未有的变革。智能设备的引入&#xff0c;尤其是定制化的三防加固平板电脑&#xff0c;正在成为现代工业环境中的关键工具。这些设备不仅能够承受严苛的工作条件&#xff0c;还能提供高度定制化的功能&#xff0c;以满足特…

萌啦数据使用体验,萌啦数据ozon体验如何

在跨境电商的浩瀚星海中&#xff0c;Ozon作为俄罗斯及独联体地区领先的电商平台&#xff0c;正以其独特的魅力和无限潜力吸引着全球卖家的目光。而在这片蓝海中航行&#xff0c;精准的数据分析与洞察无疑是每位船长手中的罗盘。今天&#xff0c;我们就来深入探讨一款备受好评的…

刷题技巧:双指针法的核心思想总结+例题整合+力扣接雨水双指针c++实现

双指针法的核心思想是通过同时操作两个指针来遍历数据结构&#xff0c;通常是数组或链表&#xff0c;以达到优化算法性能的目的。具体来说&#xff0c;双指针法能够减少时间复杂度、空间复杂度&#xff0c;或者简化逻辑结构。以下是双指针法的几个核心思想&#xff1a; ps 下面…

rem、em 和 px、inherit 加案例

一、rem、em 和 px 是三种常用的 CSS 长度单位&#xff0c;每种单位在不同的场景下有不同的应用和效果。以下是它们的区别&#xff1a; 以下是它们的区别&#xff1a; px (像素) 定义: px 是相对单位&#xff0c;表示屏幕上的一个物理像素点。它是一个固定的单位&#xff0c;…

手机电量消耗分析工具 Battery Historian 指南

阅读五分钟&#xff0c;每日十点&#xff0c;和您一起终身学习&#xff0c;这里是程序员Android 本篇文章主要介绍 Android 开发中 电量 的部分知识点&#xff0c;通过阅读本篇文章&#xff0c;您将收获以下内容: 一、安装Battery Historian二、收集Batterystats 数据三、使用B…

YOLO好像也没那么难?

“学YOLO的念头是想整个游戏外挂&#xff01;” 目录 基本原理 模型推理 IOU交并比 NMS非极大值抑制 模型训练 损失函数LOSS 代码实现 YOLO学习渠道 基本原理 模型推理 学习一个新的神经网络结构&#xff0c;作者认为整明白输入和输出是怎么回事就OK了&#xff0c;至于…

平安城市/雪亮工程现状及需求分析:EasyCVR视频汇聚平台助力雪亮工程项目建设

一、背景现状 经过近几年的努力&#xff0c;平安城市雪亮工程建设取得了显著的成绩&#xff0c;完成了前端高清视频点位和高清卡口系统建设&#xff0c;建成了&#xff08;视频监控类&#xff09;、&#xff08;卡口类&#xff09;和&#xff08;应用类&#xff09;的平台。这…

Linux笔记 --- 目录检索

基本概念 Linux中的目录与windows的文件夹相似但是概念大相径庭&#xff0c;windows中子文件一定不会比母文件夹大&#xff0c;但在Linux目录中是可以实现的&#xff0c;目录是一种文件索引表&#xff0c;下图是分区和目录的关系 Linux中目录是一组由文件名和索引号组成的索引表…

JavaScript基础(33)_鼠标滚轮滚动事件、键盘事件

鼠标滚轮滚动事件&#xff1a;onwheel 获取鼠标滚轮滚动的方向&#xff1a;wheelDelta 比如&#xff1a;向上滚动&#xff1a;109 &#xff08;所有正值都是向上&#xff09; 向下滚动&#xff1a;-109&#xff08;所有负值都是向下&#xff09; 注意&#xff1a;当…

技术分享:从崩溃边缘到问题解决 —— SSL证书兼容性问题的实战经历

引言 作为一名开发者&#xff0c;我们经常会遇到一些令人头疼的技术难题。有时候&#xff0c;这些问题看似简单却异常棘手&#xff0c;让人几乎要放弃。今天&#xff0c;我想分享一次特别的经历&#xff0c;它始于一系列的调试失败&#xff0c;最终却在不经意间找到了解决方案…

单片机几种通信协议(2)

SPI通信 相比于IIC协议&#xff0c;SPI通信速度更快&#xff0c;设计更为简单&#xff0c;功能并没有IIC那么多&#xff0c;学习起来比IIC简单许多 两条通信线&#xff0c;MISO,MOSI&#xff0c;全双工通信 理解SPI通信的核心

ISP代理与双ISP代理的区别

在网络营销、数据采集及隐私保护等领域&#xff0c;代理服务器扮演着至关重要的角色。而在代理服务器的选择中&#xff0c;ISP代理与双ISP代理是两种常见的选择。本文将对这两种代理服务进行详细分析&#xff0c;探讨它们之间的区别以及各自的优势和适用场景。 一、ISP代理概述…