fastlion-amis
Version:
一种MIS页面生成工具
53 lines (48 loc) • 3.15 kB
text/typescript
import { RangeOptions, RangeOptionsEnum, TagTypeEnum } from "./types"
export default {
// 当前过滤条件是否展示输入的判断
showInputItem: (option: RangeOptionsEnum, type: TagTypeEnum, isMobile: boolean) => {
// 操作符不为空 并且 不是文件类型的渲染
if (isMobile) {
return option !== RangeOptionsEnum.IsEmpty && type !== TagTypeEnum.File && option !== RangeOptionsEnum.DataTag
}
return option !== RangeOptionsEnum.IsEmpty && type !== TagTypeEnum.File
},
// 根据组件报文生成对应条件select下拉选项合集
getRangeOptions: (schema: { type: TagTypeEnum, isNumber?: boolean, dataTag?: object }, isMobile: boolean) => {
const { type, isNumber, dataTag } = schema
const to = (options: RangeOptionsEnum[]) => options.map(option => ({ label: RangeOptions[option], value: option, not: isMobile }))
if (isNumber) {
return dataTag ?
to([RangeOptionsEnum.Between, RangeOptionsEnum.Equal, RangeOptionsEnum.GreaterThan, RangeOptionsEnum.GreaterThanOrEqual, RangeOptionsEnum.LessThan, RangeOptionsEnum.LessThanOrEqual, RangeOptionsEnum.IsEmpty, RangeOptionsEnum.DataTag]) :
to([RangeOptionsEnum.Between, RangeOptionsEnum.Equal, RangeOptionsEnum.GreaterThan, RangeOptionsEnum.GreaterThanOrEqual, RangeOptionsEnum.LessThan, RangeOptionsEnum.LessThanOrEqual, RangeOptionsEnum.IsEmpty])
}
switch (type) {
case TagTypeEnum.File:
return to([RangeOptionsEnum.IsEmpty])
case TagTypeEnum.InputText:
return dataTag ?
to([RangeOptionsEnum.Equal, RangeOptionsEnum.Contain, RangeOptionsEnum.IsEmpty, RangeOptionsEnum.DataTag]) :
to([RangeOptionsEnum.Equal, RangeOptionsEnum.Contain, RangeOptionsEnum.IsEmpty])
case TagTypeEnum.InputDate:
case TagTypeEnum.InputMonth:
case TagTypeEnum.InputDatetime:
return dataTag ?
to([RangeOptionsEnum.Between, RangeOptionsEnum.Equal, RangeOptionsEnum.GreaterThan, RangeOptionsEnum.GreaterThanOrEqual, RangeOptionsEnum.LessThan, RangeOptionsEnum.LessThanOrEqual, RangeOptionsEnum.IsEmpty, RangeOptionsEnum.DataTag]) :
to([RangeOptionsEnum.Between, RangeOptionsEnum.Equal, RangeOptionsEnum.GreaterThan, RangeOptionsEnum.GreaterThanOrEqual, RangeOptionsEnum.LessThan, RangeOptionsEnum.LessThanOrEqual, RangeOptionsEnum.IsEmpty])
case TagTypeEnum.Select:
case TagTypeEnum.TransferPicker:
return to([RangeOptionsEnum.Equal, RangeOptionsEnum.IsEmpty])
default:
return to([RangeOptionsEnum.Equal, RangeOptionsEnum.IsEmpty, RangeOptionsEnum.Fuzzy])
}
},
// 根据组件类型生成对应select条件
getRangeOption: (type: TagTypeEnum) => {
const types = [TagTypeEnum.InputDateRange, TagTypeEnum.InputDatetimeRange, TagTypeEnum.InputMonthRange, TagTypeEnum.InputYearRange,
TagTypeEnum.InputQuarterRange, TagTypeEnum.InputTimeRange, TagTypeEnum.InputDatetime, TagTypeEnum.InputDate, TagTypeEnum.InputMonth]
return types.includes(type as TagTypeEnum) ?
RangeOptionsEnum.Between :
type == TagTypeEnum.File ? RangeOptionsEnum.IsEmpty : RangeOptionsEnum.Equal
}
}