提交 902ac5bb authored 作者: junjie's avatar junjie

feat(视图):视图保留实时计算与渲染功能,但不实时保存,提供保存与重置按钮

上级 a4e515c1
...@@ -3,6 +3,7 @@ package io.dataease.controller.chart; ...@@ -3,6 +3,7 @@ package io.dataease.controller.chart;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.base.domain.ChartViewWithBLOBs; import io.dataease.base.domain.ChartViewWithBLOBs;
import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.AuthUtils;
import io.dataease.controller.request.chart.ChartCalRequest;
import io.dataease.controller.request.chart.ChartExtRequest; import io.dataease.controller.request.chart.ChartExtRequest;
import io.dataease.controller.request.chart.ChartViewRequest; import io.dataease.controller.request.chart.ChartViewRequest;
import io.dataease.controller.response.ChartDetail; import io.dataease.controller.response.ChartDetail;
...@@ -100,4 +101,10 @@ public class ChartViewController { ...@@ -100,4 +101,10 @@ public class ChartViewController {
public List<ChartViewDTO> search(@RequestBody ChartViewRequest chartViewRequest) { public List<ChartViewDTO> search(@RequestBody ChartViewRequest chartViewRequest) {
return chartViewService.search(chartViewRequest); return chartViewService.search(chartViewRequest);
} }
@ApiOperation("计算结果")
@PostMapping("/calcData")
public ChartViewDTO calcData(@RequestBody ChartCalRequest request) throws Exception {
return chartViewService.calcData(request.getView(), request.getRequestList());
}
} }
package io.dataease.controller.request.chart;
import io.dataease.base.domain.ChartViewWithBLOBs;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author gin
* @Date 2021/11/10 11:27 上午
*/
@Data
public class ChartCalRequest {
@ApiModelProperty("视图")
private ChartViewWithBLOBs view;
@ApiModelProperty("额外请求参数")
private ChartExtRequest requestList;
}
...@@ -179,6 +179,10 @@ public class ChartViewService { ...@@ -179,6 +179,10 @@ public class ChartViewService {
public ChartViewDTO getData(String id, ChartExtRequest requestList) throws Exception { public ChartViewDTO getData(String id, ChartExtRequest requestList) throws Exception {
ChartViewWithBLOBs view = chartViewMapper.selectByPrimaryKey(id); ChartViewWithBLOBs view = chartViewMapper.selectByPrimaryKey(id);
return calcData(view, requestList);
}
public ChartViewDTO calcData(ChartViewWithBLOBs view, ChartExtRequest requestList) throws Exception {
if (ObjectUtils.isEmpty(view)) { if (ObjectUtils.isEmpty(view)) {
throw new RuntimeException(Translator.get("i18n_chart_delete")); throw new RuntimeException(Translator.get("i18n_chart_delete"));
} }
...@@ -424,7 +428,7 @@ public class ChartViewService { ...@@ -424,7 +428,7 @@ public class ChartViewService {
data = datasourceProvider.getData(datasourceRequest); data = datasourceProvider.getData(datasourceRequest);
} else { } else {
try { try {
data = cacheViewData(datasourceProvider, datasourceRequest, id); data = cacheViewData(datasourceProvider, datasourceRequest, view.getId());
} catch (Exception e) { } catch (Exception e) {
LogUtil.error(e); LogUtil.error(e);
} finally { } finally {
......
...@@ -969,7 +969,8 @@ export default { ...@@ -969,7 +969,8 @@ export default {
preview: 'Preview', preview: 'Preview',
next: 'Next', next: 'Next',
select_dataset: 'Select Dataset', select_dataset: 'Select Dataset',
select_chart_type: 'Select Chart Type' select_chart_type: 'Select Chart Type',
recover: 'Reset'
}, },
dataset: { dataset: {
sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default', sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default',
......
...@@ -970,7 +970,8 @@ export default { ...@@ -970,7 +970,8 @@ export default {
preview: '上一步', preview: '上一步',
next: '下一步', next: '下一步',
select_dataset: '選擇數據集', select_dataset: '選擇數據集',
select_chart_type: '選擇圖表類型' select_chart_type: '選擇圖表類型',
recover: '重置'
}, },
dataset: { dataset: {
sheet_warn: '有多個 Sheet 頁,默認抽取第一個', sheet_warn: '有多個 Sheet 頁,默認抽取第一個',
......
...@@ -973,7 +973,8 @@ export default { ...@@ -973,7 +973,8 @@ export default {
preview: '上一步', preview: '上一步',
next: '下一步', next: '下一步',
select_dataset: '选择数据集', select_dataset: '选择数据集',
select_chart_type: '选择图表类型' select_chart_type: '选择图表类型',
recover: '重置'
}, },
dataset: { dataset: {
sheet_warn: '有多个 Sheet 页,默认抽取第一个', sheet_warn: '有多个 Sheet 页,默认抽取第一个',
......
...@@ -16,10 +16,10 @@ ...@@ -16,10 +16,10 @@
<i slot="reference" class="el-icon-warning icon-class" style="margin-left: 4px;cursor: pointer;" /> <i slot="reference" class="el-icon-warning icon-class" style="margin-left: 4px;cursor: pointer;" />
</el-popover> </el-popover>
<span style="float: right;line-height: 40px;"> <span style="float: right;line-height: 40px;">
<!-- <el-button v-if="hasDataPermission('manage',param.privileges)" size="mini" @click="changeDs">--> <el-button size="mini" :disabled="!hasEdit" @click="reset">
<!-- {{ $t('chart.change_ds') }}--> {{ $t('chart.recover') }}
<!-- </el-button>--> </el-button>
<el-button size="mini" @click="closeEdit"> <el-button size="mini" type="primary" @click="closeEdit">
{{ $t('commons.save') }} {{ $t('commons.save') }}
</el-button> </el-button>
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
<span> <span>
<span class="theme-border-class">{{ $t('chart.chart_type') }}</span> <span class="theme-border-class">{{ $t('chart.chart_type') }}</span>
<span style="float: right;"> <span style="float: right;">
<el-select v-model="view.render" class="render-select" style="width: 70px" size="mini" @change="save(true,'chart',true,true)"> <el-select v-model="view.render" class="render-select" style="width: 70px" size="mini" @change="calcData(true,'chart',true,true)">
<el-option <el-option
v-for="item in renderOptions" v-for="item in renderOptions"
:key="item.value" :key="item.value"
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
v-model="view.type" v-model="view.type"
style="width: 100%" style="width: 100%"
:disabled="!hasDataPermission('manage',param.privileges)" :disabled="!hasDataPermission('manage',param.privileges)"
@change="save(true,'chart',true,true)" @change="calcData(true,'chart',true,true)"
> >
<chart-type :chart="view" style="height: 480px" /> <chart-type :chart="view" style="height: 480px" />
</el-radio-group> </el-radio-group>
...@@ -207,10 +207,10 @@ ...@@ -207,10 +207,10 @@
{{ $t('chart.result_count') }} {{ $t('chart.result_count') }}
</span> </span>
<el-row> <el-row>
<el-radio-group v-model="view.resultMode" class="radio-span" :disabled="!hasDataPermission('manage',param.privileges)" size="mini" @change="save"> <el-radio-group v-model="view.resultMode" class="radio-span" :disabled="!hasDataPermission('manage',param.privileges)" size="mini" @change="calcData">
<el-radio label="all"><span>{{ $t('chart.result_mode_all') }}</span></el-radio> <el-radio label="all"><span>{{ $t('chart.result_mode_all') }}</span></el-radio>
<el-radio label="custom"> <el-radio label="custom">
<el-input v-model="view.resultCount" class="result-count" size="mini" :disabled="!hasDataPermission('manage',param.privileges)" @change="save" /> <el-input v-model="view.resultCount" class="result-count" size="mini" :disabled="!hasDataPermission('manage',param.privileges)" @change="calcData" />
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
</el-row> </el-row>
...@@ -226,8 +226,8 @@ ...@@ -226,8 +226,8 @@
:options="places" :options="places"
:placeholder="$t('chart.select_map_range')" :placeholder="$t('chart.select_map_range')"
:normalizer="normalizer" :normalizer="normalizer"
@input="save" @input="calcData"
@deselect="save" @deselect="calcData"
/> />
</span> </span>
</el-row> </el-row>
...@@ -253,7 +253,7 @@ ...@@ -253,7 +253,7 @@
:move="onMove" :move="onMove"
class="drag-block-style" class="drag-block-style"
@add="addXaxis" @add="addXaxis"
@update="save(true)" @update="calcData(true)"
> >
<transition-group class="draggable-group"> <transition-group class="draggable-group">
<dimension-item v-for="(item,index) in view.xaxis" :key="item.id" :param="param" :index="index" :item="item" @onDimensionItemChange="dimensionItemChange" @onDimensionItemRemove="dimensionItemRemove" @editItemFilter="showDimensionEditFilter" @onNameEdit="showRename" /> <dimension-item v-for="(item,index) in view.xaxis" :key="item.id" :param="param" :index="index" :item="item" @onDimensionItemChange="dimensionItemChange" @onDimensionItemRemove="dimensionItemRemove" @editItemFilter="showDimensionEditFilter" @onNameEdit="showRename" />
...@@ -288,7 +288,7 @@ ...@@ -288,7 +288,7 @@
:move="onMove" :move="onMove"
class="drag-block-style" class="drag-block-style"
@add="addYaxis" @add="addYaxis"
@update="save(true)" @update="calcData(true)"
> >
<transition-group class="draggable-group"> <transition-group class="draggable-group">
<quota-item v-for="(item,index) in view.yaxis" :key="item.id" :param="param" :index="index" :item="item" :chart="chart" @onQuotaItemChange="quotaItemChange" @onQuotaItemRemove="quotaItemRemove" @editItemFilter="showQuotaEditFilter" @onNameEdit="showRename" /> <quota-item v-for="(item,index) in view.yaxis" :key="item.id" :param="param" :index="index" :item="item" :chart="chart" @onQuotaItemChange="quotaItemChange" @onQuotaItemRemove="quotaItemRemove" @editItemFilter="showQuotaEditFilter" @onNameEdit="showRename" />
...@@ -312,7 +312,7 @@ ...@@ -312,7 +312,7 @@
:move="onMove" :move="onMove"
class="drag-block-style" class="drag-block-style"
@add="addYaxisExt" @add="addYaxisExt"
@update="save(true)" @update="calcData(true)"
> >
<transition-group class="draggable-group"> <transition-group class="draggable-group">
<quota-ext-item v-for="(item,index) in view.yaxisExt" :key="item.id" :param="param" :index="index" :item="item" :chart="chart" @onQuotaItemChange="quotaItemChange" @onQuotaItemRemove="quotaItemRemove" @editItemFilter="showQuotaEditFilter" @onNameEdit="showRename" /> <quota-ext-item v-for="(item,index) in view.yaxisExt" :key="item.id" :param="param" :index="index" :item="item" :chart="chart" @onQuotaItemChange="quotaItemChange" @onQuotaItemRemove="quotaItemRemove" @editItemFilter="showQuotaEditFilter" @onNameEdit="showRename" />
...@@ -336,7 +336,7 @@ ...@@ -336,7 +336,7 @@
:move="onMove" :move="onMove"
class="drag-block-style" class="drag-block-style"
@add="addStack" @add="addStack"
@update="save(true)" @update="calcData(true)"
> >
<transition-group class="draggable-group"> <transition-group class="draggable-group">
<chart-drag-item v-for="(item,index) in view.extStack" :key="item.id" :conf="'sort'" :param="param" :index="index" :item="item" @onItemChange="stackItemChange" @onItemRemove="stackItemRemove" /> <chart-drag-item v-for="(item,index) in view.extStack" :key="item.id" :conf="'sort'" :param="param" :index="index" :item="item" @onItemChange="stackItemChange" @onItemRemove="stackItemRemove" />
...@@ -366,7 +366,7 @@ ...@@ -366,7 +366,7 @@
:move="onMove" :move="onMove"
class="drag-block-style" class="drag-block-style"
@add="addBubble" @add="addBubble"
@update="save(true)" @update="calcData(true)"
> >
<transition-group class="draggable-group"> <transition-group class="draggable-group">
<chart-drag-item v-for="(item,index) in view.extBubble" :key="item.id" :conf="'summary'" :param="param" :index="index" :item="item" @onItemChange="bubbleItemChange" @onItemRemove="bubbleItemRemove" /> <chart-drag-item v-for="(item,index) in view.extBubble" :key="item.id" :conf="'summary'" :param="param" :index="index" :item="item" @onItemChange="bubbleItemChange" @onItemRemove="bubbleItemRemove" />
...@@ -390,7 +390,7 @@ ...@@ -390,7 +390,7 @@
class="theme-item-class" class="theme-item-class"
style="padding:2px 0 0 0;width:100%;min-height: 32px;border-radius: 4px;border: 1px solid #DCDFE6;overflow-x: auto;display: flex;align-items: center;background-color: white;" style="padding:2px 0 0 0;width:100%;min-height: 32px;border-radius: 4px;border: 1px solid #DCDFE6;overflow-x: auto;display: flex;align-items: center;background-color: white;"
@add="addCustomFilter" @add="addCustomFilter"
@update="save(true)" @update="calcData(true)"
> >
<transition-group class="draggable-group"> <transition-group class="draggable-group">
<filter-item v-for="(item,index) in view.customFilter" :key="item.id" :param="param" :index="index" :item="item" @onFilterItemRemove="filterItemRemove" @editItemFilter="showEditFilter" /> <filter-item v-for="(item,index) in view.customFilter" :key="item.id" :param="param" :index="index" :item="item" @onFilterItemRemove="filterItemRemove" @editItemFilter="showEditFilter" />
...@@ -414,7 +414,7 @@ ...@@ -414,7 +414,7 @@
:move="onMove" :move="onMove"
class="drag-block-style" class="drag-block-style"
@add="addDrill" @add="addDrill"
@update="save(true)" @update="calcData(true)"
> >
<transition-group class="draggable-group"> <transition-group class="draggable-group">
<drill-item v-for="(item,index) in view.drillFields" :key="item.id" :param="param" :index="index" :item="item" @onDimensionItemChange="drillItemChange" @onDimensionItemRemove="drillItemRemove" /> <drill-item v-for="(item,index) in view.drillFields" :key="item.id" :param="param" :index="index" :item="item" @onDimensionItemChange="drillItemChange" @onDimensionItemRemove="drillItemRemove" />
...@@ -435,7 +435,7 @@ ...@@ -435,7 +435,7 @@
<el-row class="padding-lr"> <el-row class="padding-lr">
<span class="title-text">{{ $t('chart.style_priority') }}</span> <span class="title-text">{{ $t('chart.style_priority') }}</span>
<el-row> <el-row>
<el-radio-group v-model="view.stylePriority" class="radio-span" :disabled="!hasDataPermission('manage',param.privileges)" size="mini" @change="save"> <el-radio-group v-model="view.stylePriority" class="radio-span" :disabled="!hasDataPermission('manage',param.privileges)" size="mini" @change="calcStyle">
<el-radio label="view"><span>{{ $t('chart.chart') }}</span></el-radio> <el-radio label="view"><span>{{ $t('chart.chart') }}</span></el-radio>
<el-radio label="panel"><span>{{ $t('chart.dashboard') }}</span></el-radio> <el-radio label="panel"><span>{{ $t('chart.dashboard') }}</span></el-radio>
</el-radio-group> </el-radio-group>
...@@ -603,7 +603,7 @@ ...@@ -603,7 +603,7 @@
class="dialog-css" class="dialog-css"
:fullscreen="true" :fullscreen="true"
> >
<field-edit :param="table" /> <field-edit :param="table" :table="table" />
<div slot="title" class="dialog-footer title-text"> <div slot="title" class="dialog-footer title-text">
<span style="font-size: 14px;"> <span style="font-size: 14px;">
{{ $t('dataset.field_manage') }} {{ $t('dataset.field_manage') }}
...@@ -800,7 +800,8 @@ export default { ...@@ -800,7 +800,8 @@ export default {
{ name: 'AntV', value: 'antv' }, { name: 'AntV', value: 'antv' },
{ name: 'ECharts', value: 'echarts' } { name: 'ECharts', value: 'echarts' }
], ],
drill: false drill: false,
hasEdit: false
} }
}, },
computed: { computed: {
...@@ -874,7 +875,7 @@ export default { ...@@ -874,7 +875,7 @@ export default {
this.resetDatasetField() this.resetDatasetField()
} }
}, },
save(getData, trigger, needRefreshGroup = false, switchType = false) { buildParam(getData, trigger, needRefreshGroup = false, switchType = false) {
if (!this.view.resultCount || if (!this.view.resultCount ||
this.view.resultCount === '' || this.view.resultCount === '' ||
this.view.resultCount.length > 4 || this.view.resultCount.length > 4 ||
...@@ -1024,6 +1025,11 @@ export default { ...@@ -1024,6 +1025,11 @@ export default {
view.drillFields = JSON.stringify(view.drillFields) view.drillFields = JSON.stringify(view.drillFields)
view.extBubble = JSON.stringify(view.extBubble) view.extBubble = JSON.stringify(view.extBubble)
delete view.data delete view.data
return view
},
save(getData, trigger, needRefreshGroup = false, switchType = false) {
const view = this.buildParam(getData, trigger, needRefreshGroup, switchType)
if (!view) return
post('/chart/view/save', view).then(response => { post('/chart/view/save', view).then(response => {
// this.get(response.data.id); // this.get(response.data.id);
// this.getData(response.data.id) // this.getData(response.data.id)
...@@ -1043,18 +1049,75 @@ export default { ...@@ -1043,18 +1049,75 @@ export default {
this.closeChangeChart() this.closeChangeChart()
}) })
}, },
calcData(getData, trigger, needRefreshGroup = false, switchType = false) {
this.hasEdit = true
const view = this.buildParam(getData, trigger, needRefreshGroup, switchType)
if (!view) return
post('/chart/view/calcData', {
view: view,
requestList: {
filter: [],
drill: this.drillClickDimensionList
}
}).then(response => {
const view = JSON.parse(JSON.stringify(response.data))
this.view.xaxis = view.xaxis ? JSON.parse(view.xaxis) : []
this.view.yaxis = view.yaxis ? JSON.parse(view.yaxis) : []
this.view.yaxisExt = view.yaxisExt ? JSON.parse(view.yaxisExt) : []
this.view.extStack = view.extStack ? JSON.parse(view.extStack) : []
this.view.drillFields = view.drillFields ? JSON.parse(view.drillFields) : []
this.view.extBubble = view.extBubble ? JSON.parse(view.extBubble) : []
this.view.customAttr = view.customAttr ? JSON.parse(view.customAttr) : {}
this.view.customStyle = view.customStyle ? JSON.parse(view.customStyle) : {}
this.view.customFilter = view.customFilter ? JSON.parse(view.customFilter) : {}
// 将视图传入echart组件
this.chart = response.data
this.data = response.data.data
// console.log(JSON.stringify(this.chart))
this.httpRequest.status = true
if (this.chart.privileges) {
this.param.privileges = this.chart.privileges
}
if (!response.data.drill) {
this.drillClickDimensionList.splice(this.drillClickDimensionList.length - 1, 1)
this.resetDrill()
}
this.drill = response.data.drill
this.drillFilters = JSON.parse(JSON.stringify(response.data.drillFilters ? response.data.drillFilters : []))
this.closeChangeChart()
})
},
calcStyle() {
this.hasEdit = true
// 将视图传入echart...组件
const view = JSON.parse(JSON.stringify(this.view))
view.customAttr = JSON.stringify(this.view.customAttr)
view.customStyle = JSON.stringify(this.view.customStyle)
this.chart = view
},
closeEdit() { closeEdit() {
if (this.view.title && this.view.title.length > 50) { if (this.view.title && this.view.title.length > 50) {
this.$warning(this.$t('chart.title_limit')) this.$warning(this.$t('chart.title_limit'))
return return
} }
const view = this.buildParam(true, 'chart', false, false)
if (!view) return
post('/chart/view/save', view).then(response => {
this.hasEdit = false
this.refreshGroup(view)
this.closeChangeChart()
// 从仪表板入口关闭 // 从仪表板入口关闭
bus.$emit('PanelSwitchComponent', { name: 'PanelEdit' }) bus.$emit('PanelSwitchComponent', { name: 'PanelEdit' })
// this.$emit('switchComponent', { name: '' }) // this.$emit('switchComponent', { name: '' })
this.$success(this.$t('commons.save_success')) this.$success(this.$t('commons.save_success'))
})
}, },
getData(id) { getData(id) {
this.hasEdit = false
if (id) { if (id) {
ajaxGetData(id, { ajaxGetData(id, {
filter: [], filter: [],
...@@ -1139,12 +1202,12 @@ export default { ...@@ -1139,12 +1202,12 @@ export default {
}, },
dimensionItemChange(item) { dimensionItemChange(item) {
this.save(true) this.calcData(true)
}, },
dimensionItemRemove(item) { dimensionItemRemove(item) {
this.view.xaxis.splice(item.index, 1) this.view.xaxis.splice(item.index, 1)
this.save(true) this.calcData(true)
}, },
quotaItemChange(item) { quotaItemChange(item) {
...@@ -1154,7 +1217,7 @@ export default { ...@@ -1154,7 +1217,7 @@ export default {
// ele.summary = item.summary // ele.summary = item.summary
// } // }
// }) // })
this.save(true) this.calcData(true)
}, },
quotaItemRemove(item) { quotaItemRemove(item) {
...@@ -1163,63 +1226,63 @@ export default { ...@@ -1163,63 +1226,63 @@ export default {
} else if (item.removeType === 'quotaExt') { } else if (item.removeType === 'quotaExt') {
this.view.yaxisExt.splice(item.index, 1) this.view.yaxisExt.splice(item.index, 1)
} }
this.save(true) this.calcData(true)
}, },
onColorChange(val) { onColorChange(val) {
this.view.customAttr.color = val this.view.customAttr.color = val
this.save() this.calcStyle()
}, },
onSizeChange(val) { onSizeChange(val) {
this.view.customAttr.size = val this.view.customAttr.size = val
this.save() this.calcStyle()
}, },
onTextChange(val) { onTextChange(val) {
this.view.customStyle.text = val this.view.customStyle.text = val
this.view.title = val.title this.view.title = val.title
this.save(false, '', true) this.calcStyle()
}, },
onLegendChange(val) { onLegendChange(val) {
this.view.customStyle.legend = val this.view.customStyle.legend = val
this.save() this.calcStyle()
}, },
onLabelChange(val) { onLabelChange(val) {
this.view.customAttr.label = val this.view.customAttr.label = val
this.save() this.calcStyle()
}, },
onTooltipChange(val) { onTooltipChange(val) {
this.view.customAttr.tooltip = val this.view.customAttr.tooltip = val
this.save() this.calcStyle()
}, },
onChangeXAxisForm(val) { onChangeXAxisForm(val) {
this.view.customStyle.xAxis = val this.view.customStyle.xAxis = val
this.save() this.calcStyle()
}, },
onChangeYAxisForm(val) { onChangeYAxisForm(val) {
this.view.customStyle.yAxis = val this.view.customStyle.yAxis = val
this.save() this.calcStyle()
}, },
onChangeYAxisExtForm(val) { onChangeYAxisExtForm(val) {
this.view.customStyle.yAxisExt = val this.view.customStyle.yAxisExt = val
this.save() this.calcStyle()
}, },
onChangeBackgroundForm(val) { onChangeBackgroundForm(val) {
this.view.customStyle.background = val this.view.customStyle.background = val
this.save() this.calcStyle()
}, },
onChangeSplitForm(val) { onChangeSplitForm(val) {
this.view.customStyle.split = val this.view.customStyle.split = val
this.save() this.calcStyle()
}, },
showDimensionEditFilter(item) { showDimensionEditFilter(item) {
...@@ -1242,7 +1305,7 @@ export default { ...@@ -1242,7 +1305,7 @@ export default {
} }
} }
this.view.xaxis[this.dimensionItem.index].filter = this.dimensionItem.filter this.view.xaxis[this.dimensionItem.index].filter = this.dimensionItem.filter
this.save(true) this.calcData(true)
this.closeDimensionFilter() this.closeDimensionFilter()
}, },
...@@ -1270,13 +1333,13 @@ export default { ...@@ -1270,13 +1333,13 @@ export default {
} else if (this.quotaItem.filterType === 'quotaExt') { } else if (this.quotaItem.filterType === 'quotaExt') {
this.view.yaxisExt[this.quotaItem.index].filter = this.quotaItem.filter this.view.yaxisExt[this.quotaItem.index].filter = this.quotaItem.filter
} }
this.save(true) this.calcData(true)
this.closeQuotaFilter() this.closeQuotaFilter()
}, },
filterItemRemove(item) { filterItemRemove(item) {
this.view.customFilter.splice(item.index, 1) this.view.customFilter.splice(item.index, 1)
this.save(true) this.calcData(true)
}, },
showEditFilter(item) { showEditFilter(item) {
this.filterItem = JSON.parse(JSON.stringify(item)) this.filterItem = JSON.parse(JSON.stringify(item))
...@@ -1299,7 +1362,7 @@ export default { ...@@ -1299,7 +1362,7 @@ export default {
} }
} }
this.view.customFilter[this.filterItem.index].filter = this.filterItem.filter this.view.customFilter[this.filterItem.index].filter = this.filterItem.filter
this.save(true) this.calcData(true)
this.closeResultFilter() this.closeResultFilter()
}, },
...@@ -1317,7 +1380,7 @@ export default { ...@@ -1317,7 +1380,7 @@ export default {
} else if (this.itemForm.renameType === 'quotaExt') { } else if (this.itemForm.renameType === 'quotaExt') {
this.view.yaxisExt[this.itemForm.index].name = this.itemForm.name this.view.yaxisExt[this.itemForm.index].name = this.itemForm.name
} }
this.save(true) this.calcData(true)
this.closeRename() this.closeRename()
} else { } else {
return false return false
...@@ -1371,6 +1434,7 @@ export default { ...@@ -1371,6 +1434,7 @@ export default {
this.selectTableFlag = false this.selectTableFlag = false
}, },
// 更换数据集
changeChart() { changeChart() {
if (this.view.tableId !== this.changeTable.id) { if (this.view.tableId !== this.changeTable.id) {
this.view.tableId = this.changeTable.id this.view.tableId = this.changeTable.id
...@@ -1381,7 +1445,9 @@ export default { ...@@ -1381,7 +1445,9 @@ export default {
this.view.extBubble = [] this.view.extBubble = []
this.view.drillFields = [] this.view.drillFields = []
} }
this.save(true, 'chart', false) // this.save(true, 'chart', false)
this.calcData(true, 'chart', false)
this.initTableData(this.view.tableId)
}, },
fieldFilter(val) { fieldFilter(val) {
...@@ -1430,7 +1496,7 @@ export default { ...@@ -1430,7 +1496,7 @@ export default {
this.dragCheckType(this.view.xaxis, 'd') this.dragCheckType(this.view.xaxis, 'd')
} }
this.dragMoveDuplicate(this.view.xaxis, e) this.dragMoveDuplicate(this.view.xaxis, e)
this.save(true) this.calcData(true)
}, },
addYaxis(e) { addYaxis(e) {
if ((this.view.type === 'map' || this.view.type === 'waterfall') && this.view.yaxis.length > 1) { if ((this.view.type === 'map' || this.view.type === 'waterfall') && this.view.yaxis.length > 1) {
...@@ -1438,7 +1504,7 @@ export default { ...@@ -1438,7 +1504,7 @@ export default {
} }
this.dragCheckType(this.view.yaxis, 'q') this.dragCheckType(this.view.yaxis, 'q')
this.dragMoveDuplicate(this.view.yaxis, e) this.dragMoveDuplicate(this.view.yaxis, e)
this.save(true) this.calcData(true)
}, },
addYaxisExt(e) { addYaxisExt(e) {
if (this.view.type === 'map' && this.view.yaxisExt.length > 1) { if (this.view.type === 'map' && this.view.yaxisExt.length > 1) {
...@@ -1446,17 +1512,17 @@ export default { ...@@ -1446,17 +1512,17 @@ export default {
} }
this.dragCheckType(this.view.yaxisExt, 'q') this.dragCheckType(this.view.yaxisExt, 'q')
this.dragMoveDuplicate(this.view.yaxisExt, e) this.dragMoveDuplicate(this.view.yaxisExt, e)
this.save(true) this.calcData(true)
}, },
moveToDimension(e) { moveToDimension(e) {
this.dragCheckType(this.dimensionData, 'd') this.dragCheckType(this.dimensionData, 'd')
this.dragMoveDuplicate(this.dimensionData, e) this.dragMoveDuplicate(this.dimensionData, e)
this.save(true) this.calcData(true)
}, },
moveToQuota(e) { moveToQuota(e) {
this.dragCheckType(this.quotaData, 'q') this.dragCheckType(this.quotaData, 'q')
this.dragMoveDuplicate(this.quotaData, e) this.dragMoveDuplicate(this.quotaData, e)
this.save(true) this.calcData(true)
}, },
addCustomFilter(e) { addCustomFilter(e) {
// 记录数等自动生成字段不做为过滤条件 // 记录数等自动生成字段不做为过滤条件
...@@ -1468,7 +1534,7 @@ export default { ...@@ -1468,7 +1534,7 @@ export default {
} }
} }
this.dragMoveDuplicate(this.view.customFilter, e) this.dragMoveDuplicate(this.view.customFilter, e)
this.save(true) this.calcData(true)
}, },
initAreas() { initAreas() {
...@@ -1502,26 +1568,26 @@ export default { ...@@ -1502,26 +1568,26 @@ export default {
if (this.view.extStack && this.view.extStack.length > 1) { if (this.view.extStack && this.view.extStack.length > 1) {
this.view.extStack = [this.view.extStack[0]] this.view.extStack = [this.view.extStack[0]]
} }
this.save(true) this.calcData(true)
}, },
stackItemChange(item) { stackItemChange(item) {
this.save(true) this.calcData(true)
}, },
stackItemRemove(item) { stackItemRemove(item) {
this.view.extStack.splice(item.index, 1) this.view.extStack.splice(item.index, 1)
this.save(true) this.calcData(true)
}, },
drillItemChange(item) { drillItemChange(item) {
this.save(true) this.calcData(true)
}, },
drillItemRemove(item) { drillItemRemove(item) {
this.view.drillFields.splice(item.index, 1) this.view.drillFields.splice(item.index, 1)
this.save(true) this.calcData(true)
}, },
addDrill(e) { addDrill(e) {
this.dragCheckType(this.view.drillFields, 'd') this.dragCheckType(this.view.drillFields, 'd')
this.dragMoveDuplicate(this.view.drillFields, e) this.dragMoveDuplicate(this.view.drillFields, e)
this.save(true) this.calcData(true)
}, },
addBubble(e) { addBubble(e) {
...@@ -1529,14 +1595,14 @@ export default { ...@@ -1529,14 +1595,14 @@ export default {
if (this.view.extBubble && this.view.extBubble.length > 1) { if (this.view.extBubble && this.view.extBubble.length > 1) {
this.view.extBubble = [this.view.extBubble[0]] this.view.extBubble = [this.view.extBubble[0]]
} }
this.save(true) this.calcData(true)
}, },
bubbleItemChange(item) { bubbleItemChange(item) {
this.save(true) this.calcData(true)
}, },
bubbleItemRemove(item) { bubbleItemRemove(item) {
this.view.extBubble.splice(item.index, 1) this.view.extBubble.splice(item.index, 1)
this.save(true) this.calcData(true)
}, },
chartClick(param) { chartClick(param) {
...@@ -1545,11 +1611,13 @@ export default { ...@@ -1545,11 +1611,13 @@ export default {
if (this.chart.type === 'map') { if (this.chart.type === 'map') {
if (this.sendToChildren(param)) { if (this.sendToChildren(param)) {
this.drillClickDimensionList.push({ dimensionList: param.data.dimensionList }) this.drillClickDimensionList.push({ dimensionList: param.data.dimensionList })
this.getData(this.param.id) // this.getData(this.param.id)
this.calcData(true, 'chart', false, false)
} }
} else { } else {
this.drillClickDimensionList.push({ dimensionList: param.data.dimensionList }) this.drillClickDimensionList.push({ dimensionList: param.data.dimensionList })
this.getData(this.param.id) // this.getData(this.param.id)
this.calcData(true, 'chart', false, false)
} }
} else if (this.view.drillFields.length > 0) { } else if (this.view.drillFields.length > 0) {
this.$message({ this.$message({
...@@ -1576,7 +1644,8 @@ export default { ...@@ -1576,7 +1644,8 @@ export default {
this.backToParent(index, length) this.backToParent(index, length)
} }
this.getData(this.param.id) // this.getData(this.param.id)
this.calcData(true, 'chart', false, false)
}, },
// 回到父级地图 // 回到父级地图
backToParent(index, length) { backToParent(index, length) {
...@@ -1639,8 +1708,11 @@ export default { ...@@ -1639,8 +1708,11 @@ export default {
renderComponent() { renderComponent() {
return this.chart.render return this.chart.render
} },
reset() {
this.getData(this.param.id)
}
} }
} }
</script> </script>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论