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 @@ + + + + {{ $t("auth.filter_fields") }} + + + + + + + + + + + {{ item.name }} + + + + + + {{ $t("auth.screen_method") }} + + + + + {{ $t("auth.fixed_value") }} + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ i }} + + + + + + {{ $t("auth.select_all") }} + + + + + {{ $t("auth.added") }}{{ checklist.length }} + + + + {{ $t("auth.manual_input") }} + + + + + + + + {{ $t("auth.close") }} + + + {{ $t("auth.add") }} + + + + + + + + + + + {{ i }} + + + + + + + + {{ $t("auth.sure") }} + + + + + + + + + + + + + + + + + + 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 @@ + + + del(idx)" + @addCondReal="addCondReal" + @removeRelationList="removeRelationList" + @changeAndOrDfs="(type) => changeAndOrDfs(relationList, type)" + :relationList="relationList" + :logic.sync="logic" + @execute-axios="executeAxios" + /> + + + + + + + + + + + + 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 @@ + + + + + + {{ logic === 'or' ? "OR" : "AND" }} + + + + {{ logic === 'or' ? "OR" : "AND" }} + + + AND + OR + + + + + + + + + + + del(idx, item.child)" + @addCondReal="(type, logic) => add(type, item.child, logic)" + v-if="item.child" + :key="index" + :logic="item.logic" + @execute-axios="executeAxios" + @removeRelationList="removeRelationList(index)" + :relationList="item.child" + > + + + + + + + {{ $t('auth.add_condition')}} + + + + {{ $t('auth.add_relationship')}} + + + + + + + + + \ 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 {