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

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

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

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

在这里插入图片描述

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

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

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

首先是数据库行转列:

这是原始sql:

	SELECTb.XXMC AS 学校名称,b.XXLXM AS 学校类型,a.XXLXSM AS 学校类型名称,g.Name AS 指标类型,SUM ( e.Value ) AS 总分,SUM ( f.SchoolScore ) AS 自评分,SUM ( f.Score ) AS 督评分 FROMMB_XXLX aLEFT JOIN XX_XX b ON a.XXLXM = b.XXLXMLEFT 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.IdLEFT 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_IDLEFT JOIN tb_index_type g ON g.Id = c.Type WHEREa.XXLXM IN ( 73 ) AND b.SystemId = 1 AND c.DistrictCode = '330402' AND c.SchoolType IN ( 73 ) GROUP BYb.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(SELECTb.XXMC AS 学校名称,b.XXLXM AS 学校类型,a.XXLXSM AS 学校类型名称,g.Name AS 指标类型,SUM ( e.Value ) AS 总分,SUM ( f.SchoolScore ) AS 自评分,SUM ( f.Score ) AS 督评分 FROMMB_XXLX aLEFT JOIN XX_XX b ON a.XXLXM = b.XXLXMLEFT 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.IdLEFT 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_IDLEFT JOIN tb_index_type g ON g.Id = c.Type WHEREa.XXLXM IN ( 73 ) AND b.SystemId = 1 AND c.DistrictCode = '330402' AND c.SchoolType IN ( 73 ) GROUP BYb.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(SELECTb.XXMC AS 学校名称,b.XXLXM as 学校类型,a.XXLXSM as 学校类型名称,g.Name AS 指标类型,SUM(e.Value) AS 总分,SUM(f.SchoolScore) AS 自评分,SUM(f.Score) AS 督评分FROMMB_XXLX aLEFT JOINXX_XX b ON a.XXLXM = b.XXLXMLEFT JOINtb_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 JOINtb_middle_index d ON d.StartId = c.IdLEFT JOINtb_end_index e ON e.MiddleId = d.IdAND (e.SchoolId = '0' OR e.SchoolId = b.XX_ID)LEFT JOINtb_result f ON f.IndexId = e.IdAND f.SchoolId = b.XX_IDLEFT JOINtb_index_type g ON g.Id = c.TypeWHEREa.XXLXM IN ({3})AND b.SystemId = {4}AND c.DistrictCode = '{5}'AND c.SchoolType IN ({3}){7}GROUP BYb.XX_ID,b.XXLXM,a.XXLXSM, b.XXMC, g.Id, g.Name) AS OriginalResultsGROUP 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;//指标类型数量是否大于0if (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需新增一段sqlvar 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(SELECTb.XXMC AS 学校名称,b.XXLXM as 学校类型,a.XXLXSM as 学校类型名称,g.Name AS 指标类型,SUM(e.Value) AS 总分,SUM(f.SchoolScore) AS 自评分,SUM(f.Score) AS 督评分FROMMB_XXLX aLEFT JOINXX_XX b ON a.XXLXM = b.XXLXMLEFT JOINtb_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 JOINtb_middle_index d ON d.StartId = c.IdLEFT JOINtb_end_index e ON e.MiddleId = d.IdAND (e.SchoolId = '0' OR e.SchoolId = b.XX_ID)LEFT JOINtb_result f ON f.IndexId = e.IdAND f.SchoolId = b.XX_IDLEFT JOINtb_index_type g ON g.Id = c.TypeWHEREa.XXLXM IN ({3})AND b.SystemId = {4}AND c.DistrictCode = '{5}'AND c.SchoolType IN ({3}){7}GROUP BYb.XX_ID,b.XXLXM,a.XXLXSM, b.XXMC, g.Id, g.Name) AS OriginalResultsGROUP 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.mzph.cn/news/877429.shtml

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

相关文章

el-tree树状控件,定位到选中的节点的位置

效果图 在el-tree 控件加 :render-content"renderContent" 在掉接口的方法中 实际有用的是setTimeout 方法和this.$refs.xxxxxx.setCheckedKeys([industrycodeList]) if(res.data.swindustrylist.length>0){res.data.swindustrylist.forEach(item > {industry…

STM32之SPI读写W25Q128芯片

SPI简介 STM32的SPI是一个串行外设接口。它允许STM32微控制器与其他设备&#xff08;如传感器、存储器等&#xff09;进行高速、全双工、同步的串行通信。通常包含SCLK&#xff08;串行时钟&#xff09;、MOSI&#xff08;主设备输出/从设备输入Master Output Slave Input&…

Linux系统编程 --- 多线程

线程&#xff1a;是进程内的一个执行分支&#xff0c;线程的执行粒度&#xff0c;要比进程要细。 一、线程的概念 1、Linux中线程该如何理解 地址空间就是进程的资源窗口。 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1…

聊聊场景及场景测试

在我们进行测试过程中&#xff0c;有一种黑盒测试叫场景测试&#xff0c;我们完全是从用户的角度去理解系统&#xff0c;从而可以挖掘用户的隐含需求。 场景是指用户会使用这个系统来完成预定目标的所有情况的集合。 场景本身也代表了用户的需求&#xff0c;所以我们可以认为…

SpringBoot+Vue在线商城(电子商城)系统-附源码与配套论文

摘 要 随着互联网技术的发展和普及&#xff0c;电子商务在全球范围内得到了迅猛的发展&#xff0c;已经成为了一种重要的商业模式和生活方式。电子商城是电子商务的重要组成部分&#xff0c;是一个基于互联网的商业模式和交易平台&#xff0c;通过网络进行产品和服务的销售。…

计算机图形学 | 动画模拟

动画模拟 布料模拟 质点弹簧系统&#xff1a; 红色部分很弱地阻挡对折 Steep connection FEM:有限元方法 粒子系统 粒子系统本质上就是在定义个体和群体的关系。 动画帧率 VR游戏要不晕需要达到90fps Forward Kinematics Inverse Kinematics 只告诉末端p点&#xff0c;中间…

Delphi5实现色板程序——滑块型组件实例

效果图 参考 Delphi程序设计基础&#xff1a;教程、实验、习题 代码 unit Unit1;interfaceusesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Dialogs, Forms,Form, Formprpt, ExtCtrls, StdCtrls;typeTForm1 class(MForm)Label1: TLabel;Label2: …

公式编辑器 -vue-formula-editor

前言 公式编辑旨在帮助用户使用可视化的前提&#xff0c;能便捷的使用平台&#xff0c;例如低代码平台使用广泛 vue-formula-editor vue-formula-editor是一款开源的Vue公式计算组件&#xff0c;可以帮助开发者快速集成公式编辑 在线体验 demo & 源码 安装 npm i vue-form…

[Python学习日记-9] Python中的运算符

简介 计算机可以进行的运算有很多种&#xff0c;但可不只加减乘除这么简单&#xff0c;运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算&#xff0c;而本篇我们暂只介绍算数运算、比较运算、逻辑运算、赋值运算 算数运算 一、运算符描述…

FunHPC算力平台评测

作为内测老用户&#xff0c;已经用DeepLn平台&#xff08;现改名为FunHPC平台&#xff09;好久了&#xff0c;一路见证了平台从最初100多人的小群到现在满群的状态&#xff0c;FunHpc平台确实在一步步的走向成熟&#xff0c;一步步的变大。趁着现在活动的时间&#xff0c;发篇文…

XSS反射型和DOM型+DOM破坏

目录 第一关 源码分析 payload 第二关 源码分析 payload 第三关 源码分析 payload 第四关 源码分析 payload 第五关 源码分析 payload 第六关 源码分析 第七关 源码分析 方法一&#xff1a;构造函数 方法二&#xff1a;parseInt 方法三&#xff1a;locat…

项目问题 | CentOS 7停止维护导致yum失效的解决办法

目录 centos停止维护意味着yum相关源伴随失效。 报错&#xff1a; 解决方案&#xff1a;将图中四个文件替换掉/etc/yum.repos.d/目录下同名文件 资源提交在博客头部&#xff0c;博客结尾也提供文件源码内容 CentOS-Base.repo CentOS-SCLo-scl.repo CentOS-SCLo-scl-rh.rep…

HTML5服装电商网上商城模板源码

文章目录 1.设计来源1.1 主界面1.2 购物车界面1.3 电子产品界面1.4 商品详情界面1.5 联系我们界面1.6 各种标签演示界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 【博主推荐】&#xff1a;前些天发…

【系统分析师】-综合知识-系统架构

1、设计模式 1&#xff09;观察者模式定义了对象间的一种一对多依赖关系&#xff0c;使得每当一个对象改变状态&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新【消息订阅】。在该模式中&#xff0c;发生改变的对象称为观察目标&#xff0c;被通知的对象称为观察者&…

Python爬虫使用实例

IDE&#xff1a;大部分是在PyCharm上面写的 解释器装的多 → 环境错乱 → error&#xff1a;没有配置&#xff0c;no model 爬虫可以做什么&#xff1f; 下载数据【文本/二进制数据&#xff08;视频、音频、图片&#xff09;】、自动化脚本【自动抢票、答题、采数据、评论、点…

vue3 响应式 API:ref() 和 reactive()

在 Vue 3 中&#xff0c;响应式系统是其核心特性之一&#xff0c;它使得数据的变化能够自动触发视图的更新。 官方文档&#xff1a; 响应式 API&#xff1a;核心 要更好地了解响应式 API&#xff0c;推荐阅读官方指南中的章节&#xff1a; 响应式基础 (with the API preference…

SX_初识GitLab_1

1、对GitLab的理解&#xff1a; 目前对GitLab的理解是其本质是一个远程代码托管平台&#xff0c;上面托管多个项目&#xff0c;每个项目都有一个master主分支和若干其他分支&#xff0c;远程代码能下载到本机&#xff0c;本机代码也能上传到远程平台 1.分支的作用&#xff1a…

Oracle大师Roger Cornejo的推荐:使用ASH诊断Oracle解析故障

这篇文章被Oracle大师Roger Cornejo在X平台上推荐&#xff08;见下图&#xff09;&#xff0c;英文原文在&#xff1a; Diagnosing Parsing Issue with ASH 解析&#xff0c;尤其是硬解析&#xff0c;是非生产性操作&#xff0c;会消耗大量系统资源&#xff0c;导致库缓存争用…

Meta 如何实现 99.99999999% 的缓存一致性

曾经的故事 Meta&#xff08;Facebook&#xff09; 曾经运行一个简单的技术栈——PHP 和 MySQL。 但随着更多用户的加入&#xff0c;他们面临着可扩展性问题。因此他们建立了一个分布式缓存。 虽然这暂时解决了可扩展性问题&#xff0c;但保持缓存数据的新鲜度变得困难。以下…

SpringBoot 整合 Redis 实现验证码登录功能

一、整合Redis 在pom.xml中添加Redis相关依赖&#xff1b; <!--Spring Data Redis依赖配置--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>…