diff --git a/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/FilterTree.vue b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/FilterTree.vue new file mode 100644 index 0000000000..2be1ec02d8 --- /dev/null +++ b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/FilterTree.vue @@ -0,0 +1,122 @@ + + + + \ No newline at end of file diff --git a/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/filterFiled.vue b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/filterFiled.vue new file mode 100644 index 0000000000..898ff877b0 --- /dev/null +++ b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/filterFiled.vue @@ -0,0 +1,1044 @@ + + + + + + + diff --git a/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/options.js b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/options.js new file mode 100644 index 0000000000..36a1f426bc --- /dev/null +++ b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/options.js @@ -0,0 +1,24 @@ +function formatEnum(ele) { + return { + value: ele, + label: `chart.filter_${ele.replace(' ', '_')}` + } +} + +const textEnum = ['eq', 'not_eq', 'like', 'not like', 'null', 'not_null', 'empty', 'not_empty'] +const textOptions = textEnum.map(formatEnum) + +const dateEnum = ['eq', 'not_eq', 'lt', 'gt', 'le', 'ge'] +const dateOptions = dateEnum.map(formatEnum) + +const valueEnum = [...dateEnum] +const valueOptions = valueEnum.map(formatEnum) + +const fieldEnum = ['text', 'time', 'value', 'value', '', 'location'] + +export { + textOptions, + dateOptions, + valueOptions, + fieldEnum +} diff --git a/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/rowAuth.vue b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/rowAuth.vue new file mode 100644 index 0000000000..d6f77d3391 --- /dev/null +++ b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/rowAuth.vue @@ -0,0 +1,348 @@ + + + + + diff --git a/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/rowAuthTree.vue b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/rowAuthTree.vue new file mode 100644 index 0000000000..571ff08028 --- /dev/null +++ b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/components/views/filter/rowAuthTree.vue @@ -0,0 +1,247 @@ + + + + + \ No newline at end of file diff --git a/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/views/highcharts/3dpie/data.vue b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/views/highcharts/3dpie/data.vue index b897dc2928..cbeeb01e47 100644 --- a/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/views/highcharts/3dpie/data.vue +++ b/extensions/dataease-extensions-view/view-3dpie/view-3dpie-frontend/src/views/highcharts/3dpie/data.vue @@ -71,35 +71,28 @@ - {{ $t('chart.result_filter') }} - - - - + {{ $t('chart.result_filter') }} + 已设置 + - - -
- {{ $t('chart.placeholder_field') }} -
+ +
+ + 过滤 +
{{ $t('chart.placeholder_field') }} + @@ -147,8 +144,14 @@ import QuotaItem from '@/components/views/QuotaItem' import FilterItem from '@/components/views/FilterItem' import DrillItem from '@/components/views/DrillItem' import messages from '@/de-base/lang/messages' +import FilterTree from '@/components/views/filter/FilterTree.vue' export default { + provide() { + return { + filedList: () => this.filedList + } + }, props: { obj: { @@ -157,7 +160,7 @@ export default { } } }, - components: { DimensionItem, QuotaItem, FilterItem, DrillItem }, + components: { DimensionItem, QuotaItem, FilterItem, DrillItem, FilterTree }, data() { return { widgets: [], @@ -167,6 +170,9 @@ export default { } }, computed: { + filedList() { + return [...this.dimensionData, ...this.quotaData].filter(ele => ele.id !== 'count') + }, param() { return this.obj.param }, @@ -193,6 +199,16 @@ export default { this.$emit('on-add-languages', messages) }, methods: { + changeFilterData(customFilter) { + this.view.customFilter =JSON.parse(JSON.stringify(customFilter)) + this.calcData(true) + }, + openTreeFilter() { + this.$refs.filterTree.init(JSON.parse(JSON.stringify(this.view.customFilter))) + }, + deleteTreeFilter() { + this.changeFilterData({}) + }, executeAxios(url, type, data, callBack) { const param = { url: url, @@ -369,6 +385,41 @@ export default {