diff --git a/frontend/src/components/widget/DeWidget/DeSelect.vue b/frontend/src/components/widget/DeWidget/DeSelect.vue index 75fcf50496..62d4853d03 100644 --- a/frontend/src/components/widget/DeWidget/DeSelect.vue +++ b/frontend/src/components/widget/DeWidget/DeSelect.vue @@ -227,7 +227,8 @@ export default { this.onFocus = true // 下拉框弹出时,设置弹框的宽度 this.$nextTick(() => { - this.selectOptionWidth = event.srcElement.offsetWidth + 'px' + // this.selectOptionWidth = event.srcElement.offsetWidth + 'px' + this.selectOptionWidth = event.srcElement.parentElement.parentElement.offsetWidth + 'px' }) } diff --git a/frontend/src/views/chart/chart/chart.js b/frontend/src/views/chart/chart/chart.js index 8786a854ae..840b2addec 100644 --- a/frontend/src/views/chart/chart/chart.js +++ b/frontend/src/views/chart/chart/chart.js @@ -674,8 +674,7 @@ export const BASE_CHART_STRING = { legend: DEFAULT_LEGEND_STYLE, xAxis: DEFAULT_XAXIS_STYLE, yAxis: DEFAULT_YAXIS_STYLE, - yAxisExt: DEFAULT_YAXIS_EXT_STYLE, - background: DEFAULT_BACKGROUND_COLOR + yAxisExt: DEFAULT_YAXIS_EXT_STYLE }), customFilter: '[]' } @@ -698,8 +697,7 @@ export const BASE_CHART = { legend: DEFAULT_LEGEND_STYLE, xAxis: DEFAULT_XAXIS_STYLE, yAxis: DEFAULT_YAXIS_STYLE, - yAxisExt: DEFAULT_YAXIS_EXT_STYLE, - background: DEFAULT_BACKGROUND_COLOR + yAxisExt: DEFAULT_YAXIS_EXT_STYLE }, customFilter: [] } diff --git a/frontend/src/views/chart/components/drag-item/utils.js b/frontend/src/views/chart/components/drag-item/utils.js index 8ed6a57939..aac6d81f90 100644 --- a/frontend/src/views/chart/components/drag-item/utils.js +++ b/frontend/src/views/chart/components/drag-item/utils.js @@ -1,4 +1,9 @@ export function getItemType(dimensionData, quotaData, item) { + // Check whether the current view is in template status + // ( dimensionData and quotaData have no data). If yes, return 'success' directly + if (dimensionData.length === 0 && quotaData.length === 0) { + return 'success' + } // 将item的字段在数据集维度、指标字段中查询一遍,如果遇到id不存在、字段类型不一致、维度指标不一致,则提示 const status = item.groupType let checked = false diff --git a/frontend/src/views/chart/components/normal/LabelNormal.vue b/frontend/src/views/chart/components/normal/LabelNormal.vue index f15c2b1c67..6a4468d571 100644 --- a/frontend/src/views/chart/components/normal/LabelNormal.vue +++ b/frontend/src/views/chart/components/normal/LabelNormal.vue @@ -175,37 +175,38 @@ export default { if (this.chart.senior) { const senior = JSON.parse(this.chart.senior) if (senior.threshold && senior.threshold.labelThreshold && senior.threshold.labelThreshold.length > 0) { - const value = this.chart.data.series[0].data[0] + const value = parseFloat(this.chart.data.series[0].data[0]) for (let i = 0; i < senior.threshold.labelThreshold.length; i++) { let flag = false const t = senior.threshold.labelThreshold[i] + const tv = parseFloat(t.value) if (t.term === 'eq') { - if (value === t.value) { + if (value === tv) { this.label_content_class.color = t.color flag = true } } else if (t.term === 'not_eq') { - if (value !== t.value) { + if (value !== tv) { this.label_content_class.color = t.color flag = true } } else if (t.term === 'lt') { - if (value < t.value) { + if (value < tv) { this.label_content_class.color = t.color flag = true } } else if (t.term === 'gt') { - if (value > t.value) { + if (value > tv) { this.label_content_class.color = t.color flag = true } } else if (t.term === 'le') { - if (value <= t.value) { + if (value <= tv) { this.label_content_class.color = t.color flag = true } } else if (t.term === 'ge') { - if (value >= t.value) { + if (value >= tv) { this.label_content_class.color = t.color flag = true } diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index f4a1a28171..40ebe18011 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -1178,7 +1178,6 @@ import bus from '@/utils/bus' import DatasetChartDetail from '../../dataset/common/DatasetChartDetail' // shape attr,component style import { - DEFAULT_BACKGROUND_COLOR, DEFAULT_COLOR_CASE, DEFAULT_FUNCTION_CFG, DEFAULT_LABEL, @@ -1333,7 +1332,6 @@ export default { xAxis: DEFAULT_XAXIS_STYLE, yAxis: DEFAULT_YAXIS_STYLE, yAxisExt: DEFAULT_YAXIS_EXT_STYLE, - background: DEFAULT_BACKGROUND_COLOR, split: DEFAULT_SPLIT }, senior: { @@ -1472,7 +1470,8 @@ export default { }) this.pluginRenderOptions = [...this.renderOptions, ...pluginOptions] }, - emptyTableData() { + emptyTableData(id) { + console.log('emptyTableData:' + id) this.table = {} this.dimension = [] this.quota = [] @@ -1500,8 +1499,11 @@ export default { initTableData(id, optType) { if (id != null) { post('/dataset/table/getWithPermission/' + id, null).then(response => { - this.table = response.data - this.initTableField(id, optType) + // If click too fast on the panel, the data here may be inconsistent, so make a verification + if (this.view.tableId === id) { + this.table = response.data + this.initTableField(id, optType) + } }).catch(err => { this.table = null this.resetDatasetField() @@ -1514,17 +1516,20 @@ export default { initTableField(id, optType) { if (this.table) { post('/dataset/table/getFieldsFromDE', this.table).then(response => { - this.dimension = response.data.dimension - this.quota = response.data.quota - this.dimensionData = JSON.parse(JSON.stringify(this.dimension)) - this.quotaData = JSON.parse(JSON.stringify(this.quota)) - this.fieldFilter(this.searchField) - if (optType === 'change') { - this.resetChangeTable() - this.$nextTick(() => { - bus.$emit('reset-change-table', 'change') - this.calcData() - }) + // If click too fast on the panel, the data here may be inconsistent, so make a verification + if (this.view.tableId === id) { + this.dimension = response.data.dimension + this.quota = response.data.quota + this.dimensionData = JSON.parse(JSON.stringify(this.dimension)) + this.quotaData = JSON.parse(JSON.stringify(this.quota)) + this.fieldFilter(this.searchField) + if (optType === 'change') { + this.resetChangeTable() + this.$nextTick(() => { + bus.$emit('reset-change-table', 'change') + this.calcData() + }) + } } }).catch(err => { console.log(err) @@ -1911,27 +1916,30 @@ export default { getChart(id, queryFrom = 'panel_edit') { if (id) { getChartDetails(id, this.panelInfo.id, { queryFrom: queryFrom }).then(response => { - if (response.data.dataFrom === 'template') { - this.emptyTableData() - } else { - this.initTableData(response.data.tableId) - } - this.view = JSON.parse(JSON.stringify(response.data)) - this.view.xaxis = this.view.xaxis ? JSON.parse(this.view.xaxis) : [] - this.view.xaxisExt = this.view.xaxisExt ? JSON.parse(this.view.xaxisExt) : [] - this.view.yaxis = this.view.yaxis ? JSON.parse(this.view.yaxis) : [] - this.view.yaxisExt = this.view.yaxisExt ? JSON.parse(this.view.yaxisExt) : [] - this.view.extStack = this.view.extStack ? JSON.parse(this.view.extStack) : [] - this.view.drillFields = this.view.drillFields ? JSON.parse(this.view.drillFields) : [] - this.view.extBubble = this.view.extBubble ? JSON.parse(this.view.extBubble) : [] - this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {} - this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {} - this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {} - this.view.senior = this.view.senior ? JSON.parse(this.view.senior) : {} + // If click too fast on the panel, the data here may be inconsistent, so make a verification + if (response.data.id === this.param.id) { + if (response.data.dataFrom === 'template') { + this.emptyTableData(response.data.id) + } else { + this.initTableData(response.data.tableId) + } + this.view = JSON.parse(JSON.stringify(response.data)) + this.view.xaxis = this.view.xaxis ? JSON.parse(this.view.xaxis) : [] + this.view.xaxisExt = this.view.xaxisExt ? JSON.parse(this.view.xaxisExt) : [] + this.view.yaxis = this.view.yaxis ? JSON.parse(this.view.yaxis) : [] + this.view.yaxisExt = this.view.yaxisExt ? JSON.parse(this.view.yaxisExt) : [] + this.view.extStack = this.view.extStack ? JSON.parse(this.view.extStack) : [] + this.view.drillFields = this.view.drillFields ? JSON.parse(this.view.drillFields) : [] + this.view.extBubble = this.view.extBubble ? JSON.parse(this.view.extBubble) : [] + this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {} + this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {} + this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {} + this.view.senior = this.view.senior ? JSON.parse(this.view.senior) : {} - // 将视图传入echart组件 - this.chart = response.data - this.data = response.data.data + // 将视图传入echart组件 + this.chart = response.data + this.data = response.data.data + } }).catch(err => { this.httpRequest.status = err.response.data.success this.httpRequest.msg = err.response.data.message