diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java index e141cc1b62..4220d88dfc 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java @@ -2,7 +2,6 @@ package io.dataease.auth.service.impl; import io.dataease.auth.service.ExtAuthService; import io.dataease.base.domain.SysAuth; -import io.dataease.base.domain.SysAuthExample; import io.dataease.base.mapper.SysAuthMapper; import io.dataease.base.mapper.ext.ExtAuthMapper; import io.dataease.commons.model.AuthURD; diff --git a/backend/src/main/java/io/dataease/commons/utils/CodingUtil.java b/backend/src/main/java/io/dataease/commons/utils/CodingUtil.java index 4bdea0e469..7e3c5ef7aa 100644 --- a/backend/src/main/java/io/dataease/commons/utils/CodingUtil.java +++ b/backend/src/main/java/io/dataease/commons/utils/CodingUtil.java @@ -7,7 +7,6 @@ import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.security.MessageDigest; -import java.util.UUID; /** * 加密解密工具 diff --git a/backend/src/main/java/io/dataease/controller/IndexController.java b/backend/src/main/java/io/dataease/controller/IndexController.java index 19c83d007f..70febde13c 100644 --- a/backend/src/main/java/io/dataease/controller/IndexController.java +++ b/backend/src/main/java/io/dataease/controller/IndexController.java @@ -2,7 +2,6 @@ package io.dataease.controller; import io.dataease.commons.license.DefaultLicenseService; import io.dataease.commons.license.F2CLicenseResponse; -import io.dataease.exception.DataEaseException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java index 5b50abc369..18bfca1765 100644 --- a/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java +++ b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java @@ -5,9 +5,7 @@ import io.dataease.base.domain.ChartViewWithBLOBs; import io.dataease.commons.utils.AuthUtils; import io.dataease.controller.request.chart.ChartExtRequest; import io.dataease.controller.request.chart.ChartViewRequest; -import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.dto.chart.ChartViewDTO; -import io.dataease.dto.dataset.DataSetTableDTO; import io.dataease.service.chart.ChartViewService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java b/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java index 430fb22f1c..7009e07eba 100644 --- a/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java @@ -3,7 +3,6 @@ package io.dataease.controller.request.dataset; import io.dataease.base.domain.DatasetGroup; import lombok.Data; -import java.util.List; import java.util.Set; /** diff --git a/backend/src/main/java/io/dataease/controller/sys/request/SysUserCreateRequest.java b/backend/src/main/java/io/dataease/controller/sys/request/SysUserCreateRequest.java index 8f1149ead6..4ddf049a69 100644 --- a/backend/src/main/java/io/dataease/controller/sys/request/SysUserCreateRequest.java +++ b/backend/src/main/java/io/dataease/controller/sys/request/SysUserCreateRequest.java @@ -4,7 +4,6 @@ import io.dataease.base.domain.SysUser; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.ArrayList; import java.util.List; @Data diff --git a/backend/src/main/java/io/dataease/dto/chart/Series.java b/backend/src/main/java/io/dataease/dto/chart/Series.java index 2052dca0cd..96b7d000d4 100644 --- a/backend/src/main/java/io/dataease/dto/chart/Series.java +++ b/backend/src/main/java/io/dataease/dto/chart/Series.java @@ -3,7 +3,6 @@ package io.dataease.dto.chart; import lombok.Getter; import lombok.Setter; -import java.math.BigDecimal; import java.util.List; /** diff --git a/backend/src/main/java/io/dataease/provider/QueryProvider.java b/backend/src/main/java/io/dataease/provider/QueryProvider.java index b3f4ad5a8a..9caa1ebb68 100644 --- a/backend/src/main/java/io/dataease/provider/QueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/QueryProvider.java @@ -5,7 +5,6 @@ import io.dataease.base.domain.DatasetTableField; import io.dataease.base.domain.Datasource; import io.dataease.controller.request.chart.ChartExtFilterRequest; import io.dataease.datasource.dto.JdbcDTO; -import io.dataease.datasource.dto.SqlServerConfigration; import io.dataease.dto.chart.ChartCustomFilterDTO; import io.dataease.dto.chart.ChartViewFieldDTO; import io.dataease.dto.sqlObj.SQLObj; diff --git a/backend/src/main/java/io/dataease/provider/doris/DorisConstants.java b/backend/src/main/java/io/dataease/provider/doris/DorisConstants.java index e25aa90085..fda5ea41ef 100644 --- a/backend/src/main/java/io/dataease/provider/doris/DorisConstants.java +++ b/backend/src/main/java/io/dataease/provider/doris/DorisConstants.java @@ -3,7 +3,6 @@ package io.dataease.provider.doris; import io.dataease.provider.SQLConstants; import static io.dataease.datasource.constants.DatasourceTypes.doris; -import static io.dataease.datasource.constants.DatasourceTypes.mysql; /** * @Author gin diff --git a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java index eecb57b2d2..9944e3b1b8 100644 --- a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java @@ -8,8 +8,6 @@ import io.dataease.base.mapper.DatasetTableFieldMapper; import io.dataease.commons.constants.DeTypeConstants; import io.dataease.controller.request.chart.ChartExtFilterRequest; import io.dataease.datasource.dto.JdbcDTO; -import io.dataease.datasource.dto.PgConfigration; -import io.dataease.datasource.dto.SqlServerConfigration; import io.dataease.dto.chart.ChartCustomFilterDTO; import io.dataease.dto.chart.ChartViewFieldDTO; import io.dataease.dto.sqlObj.SQLObj; diff --git a/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java b/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java index 6820889473..37d0ec4881 100644 --- a/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java @@ -8,7 +8,6 @@ import io.dataease.base.mapper.DatasetTableFieldMapper; import io.dataease.commons.constants.DeTypeConstants; import io.dataease.controller.request.chart.ChartExtFilterRequest; import io.dataease.datasource.dto.JdbcDTO; -import io.dataease.datasource.dto.SqlServerConfigration; import io.dataease.dto.chart.ChartCustomFilterDTO; import io.dataease.dto.chart.ChartViewFieldDTO; import io.dataease.dto.sqlObj.SQLObj; diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java index 08a1b41d61..fe31ef30c1 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java @@ -12,7 +12,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; -import java.util.Map; import java.util.UUID; /** @@ -35,7 +34,7 @@ public class DataSetTableFieldsService { datasetTableField.setId(UUID.randomUUID().toString()); // 若dataeasename为空,则用MD5(id)作为dataeasename if (StringUtils.isEmpty(datasetTableField.getDataeaseName())) { - datasetTableField.setDataeaseName(DorisTableUtils.dorisFieldName(datasetTableField.getId())); + datasetTableField.setDataeaseName(DorisTableUtils.columnName(datasetTableField.getId())); } if (ObjectUtils.isEmpty(datasetTableField.getLastSyncTime())) { datasetTableField.setLastSyncTime(System.currentTimeMillis()); diff --git a/backend/src/main/java/io/dataease/service/dataset/DatasetFunctionService.java b/backend/src/main/java/io/dataease/service/dataset/DatasetFunctionService.java index 92f2d61b4c..ff6337037f 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DatasetFunctionService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DatasetFunctionService.java @@ -2,9 +2,7 @@ package io.dataease.service.dataset; import io.dataease.base.domain.*; import io.dataease.base.mapper.DatasetTableFunctionMapper; -import io.dataease.commons.utils.DorisTableUtils; import io.dataease.datasource.service.DatasourceService; -import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -35,6 +33,7 @@ public class DatasetFunctionService { if (StringUtils.isNotEmpty(datasetTableFunction.getDbType())) { criteria.andDbTypeEqualTo(datasetTableFunction.getDbType()); } + datasetTableFunctionExample.setOrderByClause("name asc"); return datasetTableFunctionMapper.selectByExampleWithBLOBs(datasetTableFunctionExample); } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelViewLinkageService.java b/backend/src/main/java/io/dataease/service/panel/PanelViewLinkageService.java index 20447092a0..0e5cfe21b0 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelViewLinkageService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelViewLinkageService.java @@ -1,7 +1,6 @@ package io.dataease.service.panel; import io.dataease.base.domain.PanelViewLinkage; -import io.dataease.base.domain.PanelViewLinkageExample; import io.dataease.base.domain.PanelViewLinkageField; import io.dataease.base.mapper.PanelViewLinkageFieldMapper; import io.dataease.base.mapper.PanelViewLinkageMapper; @@ -10,7 +9,6 @@ import io.dataease.commons.utils.AuthUtils; import io.dataease.controller.request.panel.PanelLinkageRequest; import io.dataease.dto.LinkageInfoDTO; import io.dataease.dto.PanelViewLinkageDTO; -import io.dataease.dto.PanelViewLinkageFieldDTO; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/backend/src/main/java/io/dataease/service/sys/DeptService.java b/backend/src/main/java/io/dataease/service/sys/DeptService.java index a065e84e9b..7eb30ae7c8 100644 --- a/backend/src/main/java/io/dataease/service/sys/DeptService.java +++ b/backend/src/main/java/io/dataease/service/sys/DeptService.java @@ -8,7 +8,6 @@ import io.dataease.base.mapper.ext.query.GridExample; import io.dataease.commons.utils.BeanUtils; import io.dataease.commons.utils.CommonBeanFactory; import io.dataease.controller.sys.base.BaseGridRequest; -import io.dataease.controller.sys.base.ConditionEntity; import io.dataease.controller.sys.request.DeptCreateRequest; import io.dataease.controller.sys.request.DeptDeleteRequest; import io.dataease.controller.sys.request.DeptStatusRequest; @@ -19,7 +18,6 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; diff --git a/frontend/src/components/business/condition-table/DeComplexOperator.vue b/frontend/src/components/business/condition-table/DeComplexOperator.vue index e0b57b5f22..4f995080b4 100644 --- a/frontend/src/components/business/condition-table/DeComplexOperator.vue +++ b/frontend/src/components/business/condition-table/DeComplexOperator.vue @@ -6,6 +6,7 @@
+ + + + + + + + diff --git a/frontend/src/components/canvas/components/Editor/CanvasOptBar.vue b/frontend/src/components/canvas/components/Editor/CanvasOptBar.vue index c927bbcf51..7aa7cd866e 100644 --- a/frontend/src/components/canvas/components/Editor/CanvasOptBar.vue +++ b/frontend/src/components/canvas/components/Editor/CanvasOptBar.vue @@ -1,7 +1,7 @@ diff --git a/frontend/src/components/canvas/components/Editor/EditBar.vue b/frontend/src/components/canvas/components/Editor/EditBar.vue index e2ecad6e4b..f0803a8123 100644 --- a/frontend/src/components/canvas/components/Editor/EditBar.vue +++ b/frontend/src/components/canvas/components/Editor/EditBar.vue @@ -7,10 +7,19 @@
- + + + - - + + + + + + + + +
@@ -53,6 +62,19 @@ export default { } }, computed: { + existLinkage() { + let linkageFiltersCount = 0 + this.componentData.forEach(item => { + if (item.linkageFilters && item.linkageFilters.length > 0) { + item.linkageFilters.forEach(linkage => { + if (this.element.propValue.viewId === linkage.sourceViewId) { + linkageFiltersCount++ + } + }) + } + }) + return linkageFiltersCount + }, linkageInfo() { return this.targetLinkageInfo[this.element.propValue.viewId] }, @@ -93,6 +115,21 @@ export default { }, linkageEdit() { + }, + // 清除相同sourceViewId 的 联动条件 + clearLinkage() { + this.componentData.forEach(item => { + if (item.linkageFilters && item.linkageFilters.length > 0) { + const newList = item.linkageFilters.filter(linkage => linkage.sourceViewId !== this.element.propValue.viewId) + item.linkageFilters.splice(0, item.linkageFilters.length) + // 重新push 可保证数组指针不变 可以watch到 + if (newList.length > 0) { + newList.forEach(newLinkage => { + item.linkageFilters.push(newLinkage) + }) + } + } + }) } } } diff --git a/frontend/src/components/canvas/components/Editor/LinkageField.vue b/frontend/src/components/canvas/components/Editor/LinkageField.vue index d4f50e9421..94c7783bef 100644 --- a/frontend/src/components/canvas/components/Editor/LinkageField.vue +++ b/frontend/src/components/canvas/components/Editor/LinkageField.vue @@ -3,6 +3,7 @@ @@ -13,52 +14,55 @@ - - -
- - - - - - - - - {{ item.name }} - - -
-
- -
- - - - - - - - - {{ item.name }} - - -
-
- -
- -
-
+ + + + +
+ + + + + + + + + {{ item.name }} + + +
+
+ +
+ + + + + + + + + {{ item.name }} + + +
+
+ +
+ +
+
+
@@ -67,7 +71,6 @@ -
@@ -183,5 +186,9 @@ export default { height: 35px; border-radius: 3px; } + >>>.el-popover{ + height: 200px; + overflow: auto; + } diff --git a/frontend/src/components/canvas/components/Toolbar.vue b/frontend/src/components/canvas/components/Toolbar.vue index a4e3f4e5c0..10cea07695 100644 --- a/frontend/src/components/canvas/components/Toolbar.vue +++ b/frontend/src/components/canvas/components/Toolbar.vue @@ -76,10 +76,10 @@ - + - + {{ $t('panel.panel_save_warn_tips') }} @@ -320,6 +320,38 @@ export default { this.close() }, saveLinkage() { + // 字段检查 + // let checkCount = 0 + for (const key in this.targetLinkageInfo) { + let subCheckCount = 0 + const linkageInfo = this.targetLinkageInfo[key] + const linkageFields = linkageInfo['linkageFields'] + if (linkageFields) { + linkageFields.forEach(function(linkage) { + if (!(linkage.sourceField && linkage.targetField)) { + subCheckCount++ + } + }) + } + + if (subCheckCount > 0) { + this.$message({ + message: this.$t('chart.datalist') + '【' + linkageInfo.targetViewName + '】' + this.$t('panel.exit_un_march_linkage_field'), + type: 'error', + showClose: true + }) + return + } + } + // if (checkCount > 0) { + // this.$message({ + // message: this.$t('panel.exit_un_march_linkage_field'), + // type: 'error', + // showClose: true + // }) + // return + // } + const request = { panelId: this.$store.state.panel.panelInfo.id, sourceViewId: this.curLinkageView.propValue.viewId, diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue index 5c6210b454..c31f829010 100644 --- a/frontend/src/components/canvas/custom-component/UserView.vue +++ b/frontend/src/components/canvas/custom-component/UserView.vue @@ -113,7 +113,7 @@ export default { linkageFilters() { // 必要 勿删勿该 watch数组,哪怕发生变化 oldValue等于newValue ,深拷贝解决 if (!this.element.linkageFilters) return [] - console.log('linkageFilters:' + JSON.stringify(this.element.linkageFilters)) + // console.log('linkageFilters:' + JSON.stringify(this.element.linkageFilters)) return JSON.parse(JSON.stringify(this.element.linkageFilters)) }, trackMenu() { @@ -127,7 +127,7 @@ export default { }) linkageCount && trackMenuInfo.push('linkage') this.drillFields.length && trackMenuInfo.push('drill') - console.log('trackMenuInfo' + JSON.stringify(trackMenuInfo)) + // console.log('trackMenuInfo' + JSON.stringify(trackMenuInfo)) return trackMenuInfo }, chartType() { diff --git a/frontend/src/components/dataease/DeOutWidget.vue b/frontend/src/components/dataease/DeOutWidget.vue index 7ce1807214..47316d13da 100644 --- a/frontend/src/components/dataease/DeOutWidget.vue +++ b/frontend/src/components/dataease/DeOutWidget.vue @@ -77,7 +77,11 @@ export default { const titleWidth = this.$refs.deTitle.offsetWidth const deContentContainer = this.$refs.deContentContainer this.$nextTick(() => { - if (height < 75) { + let min = 75 + if (this.element.component === 'de-number-range') { + min = 105 + } + if (height < min) { // console.log(titleWidth) this.mainClass = 'condition-main-line' deContentContainer && (deContentContainer.style.inset = '0 0 0 ' + (titleWidth + 15) + 'px') @@ -121,6 +125,8 @@ export default { .condition-title-absolute { inset: 0px 0px; position: absolute; + top: 15px; + left: 4px; } .span-container { diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 10cca9e74a..9e060d75be 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1210,7 +1210,12 @@ export default { do_not_save: "Don't Save", save_and_close: 'Save', drill: 'drill', - linkage: 'linkage' + linkage: 'linkage', + cancel_linkage: 'Cancel Linkage', + remove_all_linkage: 'Remove All Linkage', + exit_un_march_linkage_field: 'Exit Un March Linkage Field', + details: 'Details', + setting: 'Setting' }, plugin: { local_install: 'Local installation', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 082eef1234..540539c9b6 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1209,7 +1209,12 @@ export default { do_not_save: '不保存', save: '保存', drill: '下钻', - linkage: '联动' + linkage: '联动', + cancel_linkage: '取消联动', + remove_all_linkage: '清除所有联动', + exit_un_march_linkage_field: '存在未匹配联动关系的字段', + details: '详情', + setting: '设置' }, plugin: { local_install: '本地安裝', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 465790a6d4..881f1ef0e5 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1211,7 +1211,12 @@ export default { do_not_save: '不保存', save: '保存', drill: '下钻', - linkage: '联动' + linkage: '联动', + cancel_linkage: '取消联动', + remove_all_linkage: '清除所有联动', + exit_un_march_linkage_field: '存在未匹配联动关系的字段', + details: '详情', + setting: '设置' }, plugin: { local_install: '本地安装', diff --git a/frontend/src/main.js b/frontend/src/main.js index 81003687bd..81b11d9db2 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -21,7 +21,7 @@ import Treeselect from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' import './utils/dialog' import DeComplexInput from '@/components/business/condition-table/DeComplexInput' - +import DeComplexSelect from '@/components/business/condition-table/DeComplexSelect' import '@/components/canvas/custom-component' // 注册自定义组件 Vue.config.productionTip = false Vue.use(VueClipboard) @@ -74,6 +74,7 @@ Vue.use(directives) Vue.use(message) Vue.component('Treeselect', Treeselect) Vue.component('DeComplexInput', DeComplexInput) +Vue.component('DeComplexSelect', DeComplexSelect) Vue.config.productionTip = false Vue.prototype.hasDataPermission = function(pTarget, pSource) { diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js index 43facb6fe1..b9b876dea1 100644 --- a/frontend/src/store/index.js +++ b/frontend/src/store/index.js @@ -178,7 +178,7 @@ const data = { if (element.propValue.viewId === targetViewId) { // 如果目标视图 和 当前循环组件id相等 则进行条件增减 const targetFieldId = targetInfoArray[1] // 目标视图列ID const condition = new Condition('', targetFieldId, 'eq', [dimension.value], [targetViewId]) - + condition.sourceViewId = viewId let j = currentFilters.length while (j--) { const filter = currentFilters[j] diff --git a/frontend/src/views/chart/chart/chart.js b/frontend/src/views/chart/chart/chart.js index 77687da0ef..45f0e413b6 100644 --- a/frontend/src/views/chart/chart/chart.js +++ b/frontend/src/views/chart/chart/chart.js @@ -715,6 +715,12 @@ export const BASE_TREEMAP = { { // name: '', type: 'treemap', + itemStyle: { + gapWidth: 2 + }, + breadcrumb: { + show: false + }, // radius: ['0%', '60%'], // avoidLabelOverlap: false, // emphasis: { diff --git a/frontend/src/views/chart/chart/scatter/scatter.js b/frontend/src/views/chart/chart/scatter/scatter.js index 0ed0b07ad0..c90278c189 100644 --- a/frontend/src/views/chart/chart/scatter/scatter.js +++ b/frontend/src/views/chart/chart/scatter/scatter.js @@ -1,6 +1,8 @@ import { hexColorToRGBA } from '@/views/chart/chart/util' import { componentStyle } from '../common/common' +let bubbleArray = [] + export function baseScatterOption(chart_option, chart) { // 处理shape attr let customAttr = {} @@ -21,6 +23,7 @@ export function baseScatterOption(chart_option, chart) { if (chart.data) { chart_option.title.text = chart.title chart_option.xAxis.data = chart.data.x + bubbleArray = [] for (let i = 0; i < chart.data.series.length; i++) { const y = chart.data.series[i] // color @@ -33,6 +36,9 @@ export function baseScatterOption(chart_option, chart) { const extBubble = JSON.parse(chart.extBubble) if (extBubble && extBubble.length > 0) { + y.data.forEach(ele => { + bubbleArray.push(ele.value[2]) + }) y.symbolSize = funcSize } else { y.symbolSize = customAttr.size.scatterSymbolSize ? customAttr.size.scatterSymbolSize : 20 @@ -53,5 +59,7 @@ export function baseScatterOption(chart_option, chart) { } const funcSize = function(data) { - return data[2] + const k = 80 + const max = Math.max(...bubbleArray) + return (data[2] / max) * k } diff --git a/frontend/src/views/chart/chart/treemap/treemap.js b/frontend/src/views/chart/chart/treemap/treemap.js index de7c07eb49..c4b7dc719f 100644 --- a/frontend/src/views/chart/chart/treemap/treemap.js +++ b/frontend/src/views/chart/chart/treemap/treemap.js @@ -28,9 +28,17 @@ export function baseTreemapOption(chart_option, chart) { chart_option.series[0].height = (customAttr.size.treemapHeight ? customAttr.size.treemapHeight : 80) + '%' } // label - // if (customAttr.label) { - // chart_option.series[0].label = customAttr.label - // } + if (customAttr.label) { + // chart_option.series[0].label = customAttr.label + const l = { + show: true, + position: customAttr.label.position, + color: customAttr.label.color, + fontSize: customAttr.label.fontSize, + formatter: customAttr.label.show ? customAttr.label.formatter : '' + } + chart_option.series[0].label = l + } const valueArr = chart.data.series[0].data for (let i = 0; i < valueArr.length; i++) { // const y = { diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index d6192b8414..fd511aecd1 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -338,6 +338,12 @@ {{ $t('chart.bubble_size') }} / {{ $t('chart.quota') }} + +
+ 该指标生效时,样式大小中的气泡大小属性将失效 +
+ +
- + diff --git a/frontend/src/views/dataset/data/CalcFieldEdit.vue b/frontend/src/views/dataset/data/CalcFieldEdit.vue index 74d833eb76..99b2eb0427 100644 --- a/frontend/src/views/dataset/data/CalcFieldEdit.vue +++ b/frontend/src/views/dataset/data/CalcFieldEdit.vue @@ -56,7 +56,19 @@ - {{ $t('dataset.click_ref_field') }} + + {{ $t('dataset.click_ref_field') }} + +
+ 引用字段以 "[" 开始, "]" 结束 +
+ 请勿修改引用内容,否则将引用失败 +
+ 若输入与引用字段相同格式的内容,将被当作引用字段处理 +
+ +
+
- {{ $t('dataset.click_ref_function') }} + + {{ $t('dataset.click_ref_function') }} + +
+ 使用数据集对应数据库类型所支持的函数,语法同对应数据库 +
+ 如日期格式化:MySQL使用DATE_FORMAT(date,format);Oracle使用TO_DATE(X,[,fmt]) +
+ 非直连模式数据集,使用Doris数据库函数,可参考Doris官网 http://doris.apache.org/master/zh-CN/ +
+ +
+
{{ item.name }}

{{ item.func }}

{{ item.desc }}

- {{ item.func }} + {{ item.func }}
@@ -444,9 +468,13 @@ export default { padding: 2px 4px; cursor: pointer; margin: 4px 0; - overflow-x: hidden; - white-space: nowrap; - text-overflow: ellipsis; + word-break: break-word; + border: solid 1px #eee; + } + .function-style:hover { + background: #e8f4ff; + border-color: #a3d3ff; + cursor: pointer; } .function-height{ height: calc(100% - 50px); diff --git a/frontend/src/views/system/user/index.vue b/frontend/src/views/system/user/index.vue index 36eb05ae1b..3754776dd0 100644 --- a/frontend/src/views/system/user/index.vue +++ b/frontend/src/views/system/user/index.vue @@ -192,6 +192,10 @@ export default { label: this.$t('member.edit_password'), icon: 'el-icon-s-tools', type: 'success', click: this.editPassword, show: this.checkPermission(['user:editPwd']) } + // , { + // label: '权限查看', icon: 'el-icon-lock', type: 'warning', click: this.showAuth, + // show: this.checkPermission(['user:editPwd']) + // } ], searchConfig: { useQuickSearch: true, @@ -202,7 +206,7 @@ export default { { field: 'u.enabled', label: this.$t('commons.status'), - component: 'FuComplexSelect', + component: 'DeComplexSelect', options: [ { label: this.$t('commons.enable'), value: '1' }, { label: this.$t('commons.disable'), value: '0' } @@ -352,6 +356,9 @@ export default { edit(row) { this.$router.push({ name: 'system-user-form', params: row }) }, + showAuth(row) { + this.$router.push({ name: 'system-user-form', params: row }) + }, // edit(row) { // this.depts = null // this.formType = 'modify'