index.ts 4.65 KB
/**
 * 报表配置相关枚举值定义
 */
import { AggregateDataEnum } from '/@/views/device/localtion/cpns/TimePeriodForm/config';

//业务权限配置枚举
export enum PermissionReportConfigEnum {
  PERMISSION_POST = 'api:yt:report_form:config:post',
  PERMISSION_GET = 'api:yt:report:get',
  PERMISSION_DELETE = 'api:yt:report_form:config:delete',
  PERMISSION_UPDATE = 'api:yt:report_form:config:update',
}

//业务文字描述配置枚举
export enum BusinessReportConfigTextEnum {
  BUSINESS_ADD_TEXT = '新增报表',
  BUSINESS_EXPORT_TEXT = '下载报表',
  BUSINESS_DELETE_TEXT = '批量删除',
  BUSINESS_VIEW_DEVICE_TEXT = '查看设备',
  BUSINESS_UPDATE_TEXT = '编辑报表',
  BUSINESS_ENABLE_TEXT = '启用',
  BUSINESS_DISABLE_TEXT = '禁用',
  BUSINESS_VIEW_TEXT = '查看报表',
  BUSINESS_EXECUTEWAY_HELPMESSAGE_TEXT = `立即执行,在创建完报表配置后,启用配置即执行;
    定时执行,用户定义执行时间,启用后,
    在满足执行时间条件后,自动执行。
    `,
}

//业务表格状态配置枚举
export enum BusinessReportConfigStatusEnum {
  BUSINESS_ENABLE = 0,
  BUSINESS_DISABLE = 1,
}

//业务表单执行方式配置枚举
export enum BusinessExecutewayEnum {
  BUSINESS_EXECUTEWAY_IMMEDIATE = 0,
  BUSINESS_EXECUTEWAY_SCHEDULED = 1,
}

//业务表单查询周期配置枚举
export enum QueryWay {
  LATEST = 'latest',
  TIME_PERIOD = 'timePeriod',
}

//业务表单周期配置枚举
export enum CycleTypeEnum {
  DAILY = 0,
  WEEKLY = 1,
  MONTHLY = 2,
}

export enum SchemaFiled {
  WAY = 'queryMode',
  TIME_PERIOD = 'timePeriod',
  KEYS = 'keys',
  DATE_RANGE = 'dataRange',
  START_TS = 'startTs',
  END_TS = 'endTs',
  INTERVAL = 'interval',
  LIMIT = 'limit',
  AGG = 'agg',
  ORDER_BY = 'orderBy',
  DATA_TYPE = 'dataType',
}

export enum DataTypeEnum {
  ORIGINAL = 0,
  AGG = 1,
}

export enum DataTypeNameEnum {
  ORIGINAL = '原始数据',
  AGG = '聚合数据',
}

//映射执行方式文本值
export enum ExecuteWayNameEnum {
  EXECUTEWAY_IMMEDIATE = '立即执行',
  EXECUTEWAY_SCHEDULED = '定时执行',
}

//业务表单执行方式配置项
export const businessExecuteWayOptions = [
  {
    label: '立即执行',
    value: BusinessExecutewayEnum.BUSINESS_EXECUTEWAY_IMMEDIATE,
  },
  {
    label: '定时执行',
    value: BusinessExecutewayEnum.BUSINESS_EXECUTEWAY_SCHEDULED,
  },
];

//业务表单查询周期配置项
export const businesQueryCycleOptions = [
  {
    label: '固定周期',
    value: QueryWay.LATEST,
  },
  {
    label: '自定义周期',
    value: QueryWay.TIME_PERIOD,
  },
];

//业务表单周期配置项
export const businesCycleTypeOptions = [
  { label: '每日', value: CycleTypeEnum.DAILY },
  { label: '每周', value: CycleTypeEnum.WEEKLY },
  { label: '每月', value: CycleTypeEnum.MONTHLY },
];

//业务表单动态判断是否为定时执行配置项
export const exectueIsSchedule = (type: number) => {
  return type === BusinessExecutewayEnum.BUSINESS_EXECUTEWAY_SCHEDULED;
};

//业务表单动态判断是否为立即执行配置项
export const exectueIsImmed = (type: number) => {
  return type === BusinessExecutewayEnum.BUSINESS_EXECUTEWAY_IMMEDIATE;
};

//业务表单动态判断是否为每周配置项
export const cycleTypeIsWeekly = (type: number) => {
  return type === CycleTypeEnum.WEEKLY;
};

//业务表单动态判断是否为每月配置项
export const cycleTypeIsMonthly = (type: number) => {
  return type === CycleTypeEnum.MONTHLY;
};

//业务表单每周每日每月默认值配置
export const cycleTypeSetDefault = {
  DAILY: '0 0 0  * * ?',
  WEEKLY: '0 0 0 ? * MON',
  MONTHLY: '0 0 0 1 * ? *',
};

//业务表单数据类型配置项
export const businesDataTypeOptions = [
  { label: DataTypeNameEnum.ORIGINAL, value: DataTypeEnum.ORIGINAL },
  { label: DataTypeNameEnum.AGG, value: DataTypeEnum.AGG },
];

//业务表单聚合条件配置项
export const businesAggOptions = [
  { label: '最小值', value: AggregateDataEnum.MIN },
  { label: '最大值', value: AggregateDataEnum.MAX },
  { label: '平均值', value: AggregateDataEnum.AVG },
  { label: '求和', value: AggregateDataEnum.SUM },
  { label: '计数', value: AggregateDataEnum.COUNT },
  { label: '空', value: AggregateDataEnum.NONE },
];

//业务表单最大条数配置项
export const businesLimitValue = {
  default: 100,
  min: 7,
  max: 50000,
};

//业务查询周期配置项
export const businesWayOptions = [
  { label: '固定周期', value: QueryWay.LATEST },
  { label: '自定义周期', value: QueryWay.TIME_PERIOD },
];