diff --git a/frontend/src/components/DeDrag/index.vue b/frontend/src/components/DeDrag/index.vue
index 29cda42516..8c4b58fb29 100644
--- a/frontend/src/components/DeDrag/index.vue
+++ b/frontend/src/components/DeDrag/index.vue
@@ -623,7 +623,7 @@ export default {
elementMouseDown(e) {
// private 设置当前组件数据及状态
this.$store.commit('setClickComponentStatus', true)
- if (this.element.component !== 'v-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search') {
+ if (this.element.component !== 'v-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search' && this.element.component !== 'de-number-range') {
e.preventDefault()
}
// 阻止冒泡事件
diff --git a/frontend/src/components/canvas/components/Editor/Shape.vue b/frontend/src/components/canvas/components/Editor/Shape.vue
index 2191c2886e..b0475bd00d 100644
--- a/frontend/src/components/canvas/components/Editor/Shape.vue
+++ b/frontend/src/components/canvas/components/Editor/Shape.vue
@@ -226,7 +226,7 @@ export default {
handleMouseDownOnShape(e) {
this.$store.commit('setClickComponentStatus', true)
- if (this.element.component !== 'v-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search') {
+ if (this.element.component !== 'v-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search' && this.element.component !== 'de-number-range') {
e.preventDefault()
}
diff --git a/frontend/src/components/widget/DeWidget/DeNumberRange.vue b/frontend/src/components/widget/DeWidget/DeNumberRange.vue
new file mode 100644
index 0000000000..8e728119c2
--- /dev/null
+++ b/frontend/src/components/widget/DeWidget/DeNumberRange.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+ ~
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/widget/bean/Condition.js b/frontend/src/components/widget/bean/Condition.js
index 8b44b5c01a..566a2e1a82 100644
--- a/frontend/src/components/widget/bean/Condition.js
+++ b/frontend/src/components/widget/bean/Condition.js
@@ -1,7 +1,7 @@
/**
* fieldId 字段ID
* value 字段值
- * operator 操作[eq, ne, gt, ge, lt, le, in, not in, like, not like]
+ * operator 操作[eq, ne, gt, ge, lt, le, in, not in, like, not like, between]
* viewIds 过滤视图范围
*/
export class Condition {
diff --git a/frontend/src/components/widget/serviceImpl/NumberRangeServiceImpl.js b/frontend/src/components/widget/serviceImpl/NumberRangeServiceImpl.js
new file mode 100644
index 0000000000..1168bbf7b1
--- /dev/null
+++ b/frontend/src/components/widget/serviceImpl/NumberRangeServiceImpl.js
@@ -0,0 +1,66 @@
+import { WidgetService } from '../service/WidgetService'
+
+const leftPanel = {
+ icon: 'iconfont icon-zuoce-qujian',
+ label: '数值区间',
+ defaultClass: 'text-filter'
+}
+
+const dialogPanel = {
+ options: {
+ attrs: {
+ placeholder: '请输入整数',
+ viewIds: []
+ },
+ value: ''
+ },
+ defaultClass: 'text-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'
+}
+
+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
+ })
+ }
+}
+const numberRangeServiceImpl = new NumberRangeServiceImpl()
+export default numberRangeServiceImpl
diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js
index 07657cc4c9..95e502fd33 100644
--- a/frontend/src/lang/en.js
+++ b/frontend/src/lang/en.js
@@ -1287,5 +1287,14 @@ export default {
i18n_msg_type_dataset_sync_faild: 'Dataset synchronization failed',
i18n_msg_type_all: 'All type',
channel_inner_msg: 'On site news'
+ },
+ denumberrange: {
+ please_key_min: 'Please key min value',
+ please_key_max: 'Please key max value',
+ out_of_min: 'The min value cannot be less than the min integer -2³²',
+ out_of_max: 'The max value cannot be more than the max integer 2³²-1',
+ must_int: 'Please key interger',
+ min_out_max: 'The min value must be less than the max value',
+ max_out_min: 'The max value must be more than the min value'
}
}
diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js
index 468514f291..641cace854 100644
--- a/frontend/src/lang/tw.js
+++ b/frontend/src/lang/tw.js
@@ -1287,5 +1287,14 @@ export default {
i18n_msg_type_dataset_sync_faild: '數據集同步失敗',
i18n_msg_type_all: '全部類型',
channel_inner_msg: '站內消息'
+ },
+ denumberrange: {
+ please_key_min: '請輸入最小值',
+ please_key_max: '請輸入最大值',
+ out_of_min: '最小值不能小于最小整數-2³²',
+ out_of_max: '最大值不能大于最大整數2³²-1',
+ must_int: '請輸入整數',
+ min_out_max: '最小值必須小于最大值',
+ max_out_min: '最大值必須大于最小值'
}
}
diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js
index d759095305..96d532551c 100644
--- a/frontend/src/lang/zh.js
+++ b/frontend/src/lang/zh.js
@@ -1289,5 +1289,14 @@ export default {
i18n_msg_type_dataset_sync_faild: '数据集同步失败',
i18n_msg_type_all: '全部类型',
channel_inner_msg: '站内消息'
+ },
+ denumberrange: {
+ please_key_min: '请输入最小值',
+ please_key_max: '请输入最大值',
+ out_of_min: '最小值不能小于最小整数-2³²',
+ out_of_max: '最大值不能大于最大整数2³²-1',
+ must_int: '请输入整数',
+ min_out_max: '最小值必须小于最大值',
+ max_out_min: '最大值必须大于最小值'
}
}
diff --git a/frontend/src/styles/index.scss b/frontend/src/styles/index.scss
index 99911837a5..19d4358e57 100644
--- a/frontend/src/styles/index.scss
+++ b/frontend/src/styles/index.scss
@@ -211,12 +211,14 @@ div:focus {
}
.custom-component-class {
width: 100%;
+
+ div:not(.de-number-range-container ) {
+ width: 100% !important;
+ }
+
div.el-input-group__append {
width: 10% !important;
}
- div {
- width: 100% !important;
- }
}
%field-icon{
diff --git a/frontend/src/views/panel/filter/index.vue b/frontend/src/views/panel/filter/index.vue
index 7139107d12..409a1c24bf 100644
--- a/frontend/src/views/panel/filter/index.vue
+++ b/frontend/src/views/panel/filter/index.vue
@@ -54,7 +54,8 @@ export default {
'textInputWidget'
],
'数字过滤组件': [
- 'numberSelectWidget'
+ 'numberSelectWidget',
+ 'numberRangeWidget'
]
// '按钮': [
// 'buttonSureWidget'