fastlion-amis
Version:
一种MIS页面生成工具
145 lines (131 loc) • 3.97 kB
text/typescript
const enum RangeOptionsEnum {
Equal = 2, // 等于
GreaterThan = 3, // 大于
GreaterThanOrEqual = 4, // 大于等于
LessThan = 5, // 小于
LessThanOrEqual = 6, // 小于等于
Between = 7, // 介于
ContainWithin = 8, // 包含于
Contain = 9, // 包含
IsEmpty = 10, // 为空
Fuzzy = 11, // 模糊
DataTag = 12 // 数据标签
}
// 类型枚举类
const enum TagTypeEnum {
Select = 'select',
TreeSelect = 'tree-select',
TransferPicker = 'transfer-picker',
TabsTransferPicker = 'tabs-transfer-picker',
InputDateRange = 'input-date-range',
InputDatetimeRange = 'input-datetime-range',
InputMonthRange = 'input-month-range',
InputYear = 'input-year',
InputYearRange = 'input-year-range',
InputQuarter = 'input-quarter',
InputQuarterRange = 'input-quarter-range',
InputTime = 'input-time',
InputTimeRange = 'input-time-range',
InputTag = 'input-tag',
NestedSelect = 'nested-select',
InputNumber = 'input-number',
InputText = 'input-text',
InputDatetime = 'input-datetime',
InputDate = 'input-date',//
InputMonth = 'input-month',
File = 'lion-upload', // 文件类型
Picker = 'picker',//颜色
Switch = 'switch', //开关
Checkboxes = 'checkboxes' //复选按钮
}
const RangeOptions: Record<RangeOptionsEnum, string> = {
[RangeOptionsEnum.Equal]: '等于',
[RangeOptionsEnum.GreaterThan]: '大于',
[RangeOptionsEnum.GreaterThanOrEqual]: '大于等于',
[RangeOptionsEnum.LessThan]: '小于',
[RangeOptionsEnum.LessThanOrEqual]: '小于等于',
[RangeOptionsEnum.Between]: '介于',
[RangeOptionsEnum.ContainWithin]: '包含于',
[RangeOptionsEnum.Contain]: '包含',
[RangeOptionsEnum.IsEmpty]: '为空',
[RangeOptionsEnum.Fuzzy]: '模糊',
[RangeOptionsEnum.DataTag]: '属于标签'
}
const SegmentStandardOptions = [
{ title: "年", value: "year" },
{ title: "季度", value: "quarter" },
{ title: "月", value: "month" },
{ title: "周", value: "week" },
{ title: "日", value: "day" },
{ title: "时", value: "hour" },
{ title: "分", value: "minute" },
{ title: "秒", value: "second" },
]
const ADVANCED_FILTER_NAME = {
HEADER: 'advancedHeader',
FILTER: 'advancedFilter',
FILTER_SUB: 'advancedFilterSub',
NONE: 'advancedFilter.noneData',
}
// 条件查询数据
type ConditionFilterData = {
key: string
field: string, // 字段名
condition: number, // 0:或 1:且
not: boolean, // 不
op: RangeOptionsEnum, // 等于、大于...
values?: string | number
caseSensitive?: 0 | 1,
dateLine?: boolean//是否日期类集合
compareField?: string[] //储存values的nameid
useFieldCompare?: boolean//判断是否为比较字段
}
type OptionFilterData = {
itemCount: boolean
itemRepeat: boolean
itemSumCount: boolean
showFields: string[]
sortFields: string[]
groupByFields: string[]
section: boolean
sectionParams: {
avgSection: boolean
leftOpenRightClose: boolean
sectionField: string
sectionNorm: string
sections: number[]
}
}
// 模板默认值数据
type DefaultTemplateData = {
advancedFilter: ConditionFilterData[],
// 新版默认值不传sub
advancedFilterSub?: ConditionFilterData[],
advancedHeader: object,
caseSensitive: boolean,
limitParam: {
topN: number,
limitStatus: boolean
},
optionsParam?: OptionFilterData
}
interface FieldData {
name: string
label: string
comparable: boolean
isNumerical?: boolean
type?: string
}
interface ShowFieldData extends FieldData {
checked: boolean
disabled: boolean
}
interface SortFieldData extends FieldData {
order: 0 | 1
}
interface GroupByFieldData extends FieldData {
}
export {
ADVANCED_FILTER_NAME, RangeOptions, SegmentStandardOptions, RangeOptionsEnum, TagTypeEnum, ConditionFilterData, DefaultTemplateData,
FieldData, ShowFieldData, SortFieldData, GroupByFieldData
}