de/frontend/src/components/widget/serviceImpl/NumberRangeServiceImpl.js
2022-01-27 11:09:38 +08:00

106 lines
2.2 KiB
JavaScript

import { WidgetService } from '../service/WidgetService'
const leftPanel = {
icon: 'iconfont icon-zuoce-qujian',
label: 'denumberrange.label',
defaultClass: 'tree-filter'
}
const dialogPanel = {
options: {
attrs: {
placeholder_min: 'denumberrange.please_key_min',
placeholder_max: 'denumberrange.please_key_max',
viewIds: [],
fieldId: '',
dragItems: []
},
value: '',
manualModify: false
},
defaultClass: 'tree-filter',
component: 'de-number-range'
}
const drawPanel = {
type: 'custom',
style: {
width: 500,
// height: 45.5,
height: 90,
fontSize: 14,
fontWeight: 500,
lineHeight: '',
letterSpacing: 0,
textAlign: '',
color: ''
},
component: 'de-number-range',
miniSizex: 1,
miniSizey: 2
}
class NumberRangeServiceImpl extends WidgetService {
constructor(options = {}) {
Object.assign(options, { name: 'numberRangeWidget' })
super(options)
this.filterDialog = true
this.showSwitch = false
}
initLeftPanel() {
const value = JSON.parse(JSON.stringify(leftPanel))
return value
}
initFilterDialog() {
const value = JSON.parse(JSON.stringify(dialogPanel))
return value
}
initDrawPanel() {
const value = JSON.parse(JSON.stringify(drawPanel))
return value
}
filterFieldMethod(fields) {
return fields.filter(field => {
return field['deType'] === 2 || field['deType'] === 3
})
}
getParam(element) {
if (element.options.value && element.options.value.length > 0) {
const values = this.element.options.value
const min = values[0]
let max = null
if (values.length > 1) {
max = values[1]
}
const param = {
component: element,
value: [min, max],
operator: 'between'
}
if (min && max) {
return param
}
if (!min && !max) {
param.value = []
return param
}
if (min) {
param.value = [min]
param.operator = 'ge'
return param
}
if (max) {
param.value = [max]
param.operator = 'le'
return param
}
}
}
}
const numberRangeServiceImpl = new NumberRangeServiceImpl()
export default numberRangeServiceImpl