d_sms_service/APT.BaseData.Domain/ApiModel/Platform/ChartPageModel.cs

599 lines
14 KiB
C#
Raw Permalink Normal View History

2024-10-28 13:45:58 +08:00
using APT.BaseData.Domain.ApiModel.PF;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace APT.BaseData.Domain.ApiModel
{
/// <summary>
/// 图表配置
/// </summary>
public class ChartPageModel
{
/// <summary>
/// 构造
/// </summary>
public ChartPageModel()
{
this.Nav_PageCharts = new List<T_PF_PAGE_CHART>();
}
/// <summary>
/// 表单
/// </summary>
public T_PF_FORM Nav_PageForm { get; set; }
/// <summary>
/// 图表配置信息
/// </summary>
public List<T_PF_PAGE_CHART> Nav_PageCharts { get; set; }
}
/// <summary>
/// 图表接口统一数据结构
/// </summary>
public class ChartDataModel
{
/// <summary>
/// 图表名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 构造函数
/// </summary>
public ChartDataModel()
{
this.XAxis = new List<ChartDataXAxisModel>();
this.YAxis = new List<ChartDataYAxisModel>();
this.Data = new List<ChartDataDetailModel>();
this.Radar = new List<IndiCatorModel>();
}
/// <summary>
/// X轴数据 至少存在一笔记录
/// </summary>
public List<ChartDataXAxisModel> XAxis { get; set; }
/// <summary>
/// Y轴数据可选
/// </summary>
public List<ChartDataYAxisModel> YAxis { get; set; }
/// <summary>
/// 分组数据 至少存在一笔
/// </summary>
public List<ChartDataDetailModel> Data { get; set; }
public List<IndiCatorModel> Radar { get; set; }
}
/// <summary>
/// X轴 数据
/// </summary>
public class ChartDataXAxisModel
{
/// <summary>
/// 构造函数
/// </summary>
public ChartDataXAxisModel()
{
this.Data = new List<string>();
}
/// <summary>
/// 数据
/// </summary>
public List<string> Data { get; set; }
}
/// <summary>
/// Y轴数据
/// </summary>
public class ChartDataYAxisModel
{
/// <summary>
/// 数据分组名称 与分组数据中的Name对应
/// </summary>
public string Name { get; set; }
/// <summary>
/// 最大值
/// </summary>
public double Max { get; set; }
/// <summary>
/// 最小值
/// </summary>
public double Min { get; set; }
/// <summary>
/// 是否翻转
/// </summary>
public bool IsInverse { get; set; }
}
/// <summary>
/// 分组数据
/// </summary>
public class ChartDataDetailModel
{
/// <summary>
///
/// </summary>
public ChartDataDetailModel()
{
this.Data = new List<ChartDataValueModel>();
}
public string Key { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// PFChartTypeEnum
/// </summary>
public int ChartType { get; set; } = (int)PFChartTypeEnum.bar;
public string Stack { get; set; }
/// <summary>
/// 颜色
/// </summary>
public string Color { get; set; }
/// <summary>
/// Y轴索引 从0开始
/// </summary>
public int YAxisIndex { get; set; }
/// <summary>
/// X轴索引 从0开始
/// </summary>
public int XAxisIndex { get; set; }
/// <summary>
/// 类型bar或者line
/// </summary>
public string Type
{
get { return ((PFChartTypeEnum)ChartType).ToString(); }
}
/// <summary>
/// 类型dashed虚线
/// </summary>
public string LineType { get; set; }
public bool LegendSelected { get; set; } = true;
public string LegendIcon { get; set; }
/// <summary>
/// 值 个数必须与XAxis的Data个数相同
/// </summary>
public List<ChartDataValueModel> Data { get; set; }
/// <summary>
/// 分段样式
/// </summary>
public List<Piece> Pieces { get; set; }
public PiecesOption PiecesOption { get; set; }
}
public class Piece
{
public int gt { get; set; }
public int lte { get; set; }
public string color { get; set; }
}
public class PiecesOption
{
public string symbol { get; set; }
public AreaStyle areaStyle { get; set; }
}
/// <summary>
/// 区域样式
/// </summary>
public class AreaStyle
{
/// <summary>
/// 透明度
/// </summary>
public decimal opacity { get; set; }
}
/// <summary>
/// 值
/// </summary>
public class ChartDataValueModel
{
/// <summary>
/// 构造函数
/// </summary>
public ChartDataValueModel()
{
this.Heads = new List<string>();
this.Data = new List<List<string>>();
}
/// <summary>
/// 值
/// </summary>
public double Value { get; set; }
public string TooltipValue { get; set; }
public int YAxisIndex { get; set; }//Y轴
/// <summary>
/// 表头
/// </summary>
public List<string> Heads { get; set; }
/// <summary>
/// 表身
/// </summary>
public List<List<string>> Data { get; set; }
}
/// <summary>
/// 桑基图图表数据实体模型
/// </summary>
public class SankeyCharModel
{
public List<NodeModel> Nodes { get; set; }
public List<LinkModel> Links { get; set; }
public List<LevelModel> Levels { get; set; }
}
public class LinkModel
{
/// <summary>
/// 源
/// </summary>
public string source { get; set; }
/// <summary>
/// 目标
/// </summary>
public string target { get; set; }
/// <summary>
/// 值
/// </summary>
public decimal value { get; set; }
/// <summary>
/// 自定义显示内容
/// </summary>
public string text { get; set; }
public Dictionary<string, string> lineStyle { get; set; }
}
public class NodeModel
{
/// <summary>
/// 名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string code { get; set; }
public decimal LossRate { get; set; }
public decimal value { get; set; }
public List<ViewModel> views { get; set; }
public Dictionary<string, string> itemStyle { get; set; }
}
public class LevelModel
{
/// <summary>
/// 名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 层级
/// </summary>
public int level { get; set; }
/// <summary>
/// 当前层级总用量
/// </summary>
public decimal value { get; set; }
/// <summary>
/// 颜色
/// </summary>
public string color { get; set; }
/// <summary>
/// 视图
/// </summary>
public List<ViewModel> views { get; set; }
/// <summary>
/// 层级节点数量
/// </summary>
public List<NodeModel> nodes { get; set; }
}
public class ViewModel
{
/// <summary>
/// 名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 值
/// </summary>
public decimal value { get; set; }
/// <summary>
/// 单位
/// </summary>
public string unit { get; set; }
}
/// <summary>
/// 雷达图数据实体模型
/// </summary>
public class IndiCatorModel
{
public List<IndiCatorItemModel> IndiCator { get; set; }
}
public class IndiCatorItemModel
{
public string Text { get; set; }
public decimal Max { get; set; }
}
#region
public class ApplianceInfoModel
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
public string Code { get; set; }
/// <summary>
/// 总数
/// </summary>
public int Total { get; set; }
/// <summary>
/// 在线
/// </summary>
public int Online { get; set; }
public string Img { get; set; }
}
public class EnergyDosageScan
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
public string Code { get; set; }
/// <summary>
/// 用量
/// </summary>
public List<EnergyDosageTime> EnergyList { get; set; }
}
public class EnergyDosageTime
{
public string Time { get; set; }
public decimal Value { get; set; }
}
public class EneryUseModel
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
public string Code { get; set; }
/// <summary>
/// 总数
/// </summary>
public string Total { get; set; }
/// <summary>
/// 总数
/// </summary>
public decimal iTotal { get; set; }
/// <summary>
/// 在线
/// </summary>
public decimal Percent { get; set; }
public string Color { get; set; }
}
public class EneryUseModelByDept
{
public string Title { get; set; }
public List<EneryUseModel> Data { get; set; }
}
/// <summary>
/// 部门本月用电量排行
/// </summary>
public class EneryDosageByDept
{
public string Title { get; set; }
public List<RankingTableData> dataSource { get; set; }
public List<Column> columns { get; set; }
}
public class RankingTableData
{
public int Ranking { get; set; }
public string Name { get; set; }
public string Value { get; set; }
public string Ratio { get; set; }
}
public class SummaryInfoModel
{
/// <summary>
/// 月总能耗
/// </summary>
public decimal MonthEnergyConsu { get; set; }
/// <summary>
/// 日总能耗
/// </summary>
public decimal DayEnergyConsu { get; set; }
/// <summary>
/// 同比能耗
/// </summary>
public decimal YearOnYearConsu { get; set; }
/// <summary>
/// 环比能耗
/// </summary>
public decimal MonthOnMonthConsu { get; set; }
/// <summary>
/// 用量
/// </summary>
public List<EnergyDosageSummary> EnergyDosageSummary { get; set; }
public string Title { get; set; }
public string Unit { get; set; }
}
public class EnergyDosageSummary
{
public string Title { get; set; }
/// <summary>
/// 能源名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 能源编码
/// </summary>
public string Code { get; set; }
public string Unit { get; set; }
public string Img { get; set; }
/// <summary>
/// 月总用量
/// </summary>
public decimal MonthEnergyDosage { get; set; }
/// <summary>
/// 日总用量
/// </summary>
public decimal DayEnergyDosage { get; set; }
/// <summary>
/// 月总能耗
/// </summary>
public decimal MonthEnergyConsu { get; set; }
/// <summary>
/// 日总能耗
/// </summary>
public decimal DayEnergyConsu { get; set; }
/// <summary>
/// 同比能耗
/// </summary>
public decimal YearOnYearDosage { get; set; }
/// <summary>
/// 环比能耗
/// </summary>
public decimal MonthOnMonthDosage { get; set; }
}
public class ListTableModel
{
public string Time { get; set; }
public List<THeadModel> ListTableHead { get; set; }
public List<Dictionary<string, dynamic>> DicList { get; set; }
}
public class THeadModel
{
public string Title { get; set; }
public string DataIndex { get; set; }
}
#endregion
public class FlowTableModel
{
public List<MargeCellModel> margeCellModels { get; set; }
public List<LinkModel> Links { get; set; }
public List<LevelModel> Levels { get; set; }
}
public class MargeCellModel
{
/// <summary>
/// 名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string code { get; set; }
/// <summary>
/// 子节点数
/// </summary>
public int keyNode { get; set; }
}
public class TreeNodeModel
{
/// <summary>
/// 名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 值
/// </summary>
public decimal value { get; set; }
/// <summary>
/// 损耗量
/// </summary>
public decimal loss { get; set; }
/// <summary>
/// 损耗率
/// </summary>
public decimal lossRate { get; set; }
/// <summary>
/// 单位
/// </summary>
public string unit { get; set; }
public int childNodeKey { get; set; }
/// <summary>
/// 子节点
/// </summary>
public List<TreeNodeModel> childNode { get; set; }
}
}