mirror of
https://gitee.com/devlive-community/datacap.git
synced 2024-12-04 13:09:02 +08:00
[Core] [DataSet] [Visual] Add bar chart
This commit is contained in:
parent
064a53b420
commit
44b6c8123b
@ -13,6 +13,9 @@
|
|||||||
<VisualLine v-else-if="configuration.type === Type.LINE"
|
<VisualLine v-else-if="configuration.type === Type.LINE"
|
||||||
:configuration="configuration">
|
:configuration="configuration">
|
||||||
</VisualLine>
|
</VisualLine>
|
||||||
|
<VisualBar v-else-if="configuration.type === Type.BAR"
|
||||||
|
:configuration="configuration">
|
||||||
|
</VisualBar>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -21,6 +24,7 @@ import {Configuration} from "@/components/visual/Configuration";
|
|||||||
import VisualTable from "@/components/visual/components/VisualTable.vue";
|
import VisualTable from "@/components/visual/components/VisualTable.vue";
|
||||||
import VisualLine from "@/components/visual/components/VisualLine.vue";
|
import VisualLine from "@/components/visual/components/VisualLine.vue";
|
||||||
import {Type} from "@/components/visual/Type";
|
import {Type} from "@/components/visual/Type";
|
||||||
|
import VisualBar from "@/components/visual/components/VisualBar.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'VisualEditor',
|
name: 'VisualEditor',
|
||||||
@ -30,7 +34,7 @@ export default {
|
|||||||
return Type
|
return Type
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {VisualLine, VisualTable},
|
components: {VisualBar, VisualLine, VisualTable},
|
||||||
props: {
|
props: {
|
||||||
configuration: {
|
configuration: {
|
||||||
type: Configuration
|
type: Configuration
|
||||||
|
@ -0,0 +1,56 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div id="content"
|
||||||
|
style="width: 100%; height:400px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import {Configuration} from "@/components/visual/Configuration"
|
||||||
|
import VChart from '@visactor/vchart'
|
||||||
|
|
||||||
|
let instance: VChart
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'VisualBar',
|
||||||
|
props: {
|
||||||
|
configuration: {
|
||||||
|
type: Configuration
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
configuration: {
|
||||||
|
handler: 'handlerReset',
|
||||||
|
deep: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created()
|
||||||
|
{
|
||||||
|
this.handlerInitialize(false)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handlerInitialize(reset: boolean)
|
||||||
|
{
|
||||||
|
setTimeout(() => {
|
||||||
|
const options = {
|
||||||
|
type: 'bar',
|
||||||
|
data: {values: this.configuration.columns},
|
||||||
|
xField: this.configuration.chartConfigure.xAxis,
|
||||||
|
yField: this.configuration.chartConfigure.yAxis
|
||||||
|
}
|
||||||
|
if (!reset) {
|
||||||
|
instance = new VChart(options, {dom: 'content'})
|
||||||
|
instance.renderAsync()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
instance.updateSpec(options, true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handlerReset()
|
||||||
|
{
|
||||||
|
this.handlerInitialize(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
@ -36,6 +36,7 @@ export default {
|
|||||||
visualType: 'Visual Type',
|
visualType: 'Visual Type',
|
||||||
visualTypeTable: 'Table',
|
visualTypeTable: 'Table',
|
||||||
visualTypeLine: 'Line',
|
visualTypeLine: 'Line',
|
||||||
|
visualTypeBar: 'Bar',
|
||||||
visualConfigure: 'Visual Configure',
|
visualConfigure: 'Visual Configure',
|
||||||
visualConfigureNotSpecified: 'No configuration items are available',
|
visualConfigureNotSpecified: 'No configuration items are available',
|
||||||
visualConfigureXAxis: 'X Axis',
|
visualConfigureXAxis: 'X Axis',
|
||||||
|
@ -36,6 +36,7 @@ export default {
|
|||||||
visualType: '可视化类型',
|
visualType: '可视化类型',
|
||||||
visualTypeTable: '表格',
|
visualTypeTable: '表格',
|
||||||
visualTypeLine: '折线图',
|
visualTypeLine: '折线图',
|
||||||
|
visualTypeBar: '柱状图',
|
||||||
visualConfigure: '可视化配置',
|
visualConfigure: '可视化配置',
|
||||||
visualConfigureNotSpecified: '暂无可用配置项',
|
visualConfigureNotSpecified: '暂无可用配置项',
|
||||||
visualConfigureXAxis: 'X轴',
|
visualConfigureXAxis: 'X轴',
|
||||||
|
@ -114,6 +114,14 @@
|
|||||||
</FontAwesomeIcon>
|
</FontAwesomeIcon>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</Radio>
|
</Radio>
|
||||||
|
<Radio :label="Type.BAR">
|
||||||
|
<Tooltip transfer
|
||||||
|
:content="$t('dataset.visualTypeBar')">
|
||||||
|
<FontAwesomeIcon icon="bar-chart"
|
||||||
|
size="2x">
|
||||||
|
</FontAwesomeIcon>
|
||||||
|
</Tooltip>
|
||||||
|
</Radio>
|
||||||
</Row>
|
</Row>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
<Divider orientation="left"
|
<Divider orientation="left"
|
||||||
@ -124,6 +132,10 @@
|
|||||||
:columns="configuration.headers"
|
:columns="configuration.headers"
|
||||||
@commit="handlerCommit">
|
@commit="handlerCommit">
|
||||||
</DatasetVisualConfigureLine>
|
</DatasetVisualConfigureLine>
|
||||||
|
<DatasetVisualConfigureBar v-else-if="configuration.type === Type.BAR"
|
||||||
|
:columns="configuration.headers"
|
||||||
|
@commit="handlerCommit">
|
||||||
|
</DatasetVisualConfigureBar>
|
||||||
<Result v-else>
|
<Result v-else>
|
||||||
<template #desc>
|
<template #desc>
|
||||||
{{ $t('dataset.visualConfigureNotSpecified') }}
|
{{ $t('dataset.visualConfigureNotSpecified') }}
|
||||||
@ -145,6 +157,7 @@ import VisualEditor from "@/components/visual/VisualEditor.vue";
|
|||||||
import CircularLoading from "@/components/loading/CircularLoading.vue";
|
import CircularLoading from "@/components/loading/CircularLoading.vue";
|
||||||
import DatasetVisualConfigureLine from "@/views/admin/dataset/components/adhoc/DatasetVisualConfigureLine.vue";
|
import DatasetVisualConfigureLine from "@/views/admin/dataset/components/adhoc/DatasetVisualConfigureLine.vue";
|
||||||
import {Type} from "@/components/visual/Type";
|
import {Type} from "@/components/visual/Type";
|
||||||
|
import DatasetVisualConfigureBar from "@/views/admin/dataset/components/adhoc/DatasetVisualConfigureBar.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DatasetAdhoc',
|
name: 'DatasetAdhoc',
|
||||||
@ -154,7 +167,7 @@ export default {
|
|||||||
return Type
|
return Type
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {DatasetVisualConfigureLine, CircularLoading, VisualEditor, FontAwesomeIcon, Draggable},
|
components: {DatasetVisualConfigureBar, DatasetVisualConfigureLine, CircularLoading, VisualEditor, FontAwesomeIcon, Draggable},
|
||||||
data()
|
data()
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
|
@ -0,0 +1,60 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<Form :model="formState"
|
||||||
|
:label-width="60">
|
||||||
|
<FormItem prop="xAxis"
|
||||||
|
:label="$t('dataset.visualConfigureXAxis')">
|
||||||
|
<Select v-model="formState.xAxis">
|
||||||
|
<Option v-for="item in columns"
|
||||||
|
:key="item"
|
||||||
|
:value="item">
|
||||||
|
{{ item }}
|
||||||
|
</Option>
|
||||||
|
</Select>
|
||||||
|
</FormItem>
|
||||||
|
<FormItem prop="yAxis"
|
||||||
|
:label="$t('dataset.visualConfigureYAxis')">
|
||||||
|
<Select v-model="formState.yAxis">
|
||||||
|
<Option v-for="item in columns"
|
||||||
|
:key="item"
|
||||||
|
:value="item">
|
||||||
|
{{ item }}
|
||||||
|
</Option>
|
||||||
|
</Select>
|
||||||
|
</FormItem>
|
||||||
|
</Form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'DatasetVisualConfigureBar',
|
||||||
|
props: {
|
||||||
|
columns: {
|
||||||
|
type: Array,
|
||||||
|
default: () => []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
formState: {
|
||||||
|
handler: 'handlerCommit',
|
||||||
|
deep: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data()
|
||||||
|
{
|
||||||
|
return {
|
||||||
|
formState: {
|
||||||
|
xAxis: null,
|
||||||
|
yAxis: null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handlerCommit()
|
||||||
|
{
|
||||||
|
this.$emit('commit', this.formState)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
Loading…
Reference in New Issue
Block a user