很久没写博客了,闭关太久,失踪人口回归,给诸位道友整点绝活。
交代下背景:要做一个行转列的汇总统计,而且,由于是行转列,列的数量不固定,所以,没法使用正常的SqlSugar框架,只能原生sql顶包,这么解决滋生出另外个问题,DataTable序列化以后,究竟如何在前端加载?
先看数据库查询出来的原始数据:
页面上想要达到的效果:
设计到以下主要的知识点:
- 查询结果需要行转列,
- DataTable需要序列化传给前端。
- 前端如何加载这些不固定的数据。
首先是数据库行转列:
这是原始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>
最后,附一张效果图: