You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
1.9 KiB
Vue
90 lines
1.9 KiB
Vue
<template>
|
|
<div class="bs-theme-wrap">
|
|
<el-input
|
|
v-model="datasetNameStr"
|
|
placeholder="请选择数据集"
|
|
readonly
|
|
@focus="openDataSetDialog"
|
|
>
|
|
<el-button
|
|
slot="append"
|
|
icon="el-icon-search"
|
|
@click="openDataSetDialog"
|
|
/>
|
|
</el-input>
|
|
<DataSetDialog
|
|
ref="dataSetDialog"
|
|
v-bind="$attrs"
|
|
:multiple="multiple"
|
|
:ds-value="dsValue"
|
|
@getDsId="getDsId"
|
|
@getSelectDs="getSelectDs"
|
|
>
|
|
<template #dataSetSelect="{value}">
|
|
<slot
|
|
name="dataSetSelect"
|
|
:value="value"
|
|
/>
|
|
</template>
|
|
</DataSetDialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import DataSetDialog from './dataSetSetting.vue'
|
|
export default {
|
|
name: 'Index',
|
|
components: { DataSetDialog },
|
|
props: {
|
|
config: {
|
|
type: Object,
|
|
default: () => {
|
|
}
|
|
},
|
|
datasetName: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
multiple: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
dsValue: {
|
|
type: [Array, Object],
|
|
default: () => ([])
|
|
}
|
|
},
|
|
data () {
|
|
return {
|
|
}
|
|
},
|
|
computed: {
|
|
datasetNameStr () {
|
|
return this.datasetName || this.dsValue?.map(ds => ds.name).join(',')
|
|
}
|
|
},
|
|
methods: {
|
|
openDataSetDialog () {
|
|
this.$refs.dataSetDialog.dataSetVisible = true
|
|
},
|
|
getDsId (dsId) {
|
|
this.$emit('getDsId', dsId)
|
|
},
|
|
getSelectDs (selectDs) {
|
|
this.$emit('getSelectDs', selectDs)
|
|
if (selectDs.datasetType === 'metrics') {
|
|
this.$emit('getMetricsList', JSON.parse(selectDs.data))
|
|
// 选择数据集时修改当前数据集的状态(指标域或者其他数据集)
|
|
this.$emit('changeIsMetrics', true, selectDs.datasetType)
|
|
} else {
|
|
this.$emit('changeIsMetrics', false, selectDs.datasetType)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style>
|