index.vue 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <template>
  2. <div class="bs-theme-wrap">
  3. <el-input
  4. v-model="datasetNameStr"
  5. placeholder="请选择数据集"
  6. readonly
  7. @focus="openDataSetDialog"
  8. >
  9. <el-button
  10. slot="append"
  11. icon="el-icon-search"
  12. @click="openDataSetDialog"
  13. />
  14. </el-input>
  15. <data-set-dialog
  16. ref="dataSetDialog"
  17. v-bind="$attrs"
  18. :multiple="multiple"
  19. :ds-value="dsValue"
  20. @getDsId="getDsId"
  21. @getSelectDs="getSelectDs"
  22. />
  23. </div>
  24. </template>
  25. <script>
  26. import dataSetDialog from './dataSetSetting.vue'
  27. export default {
  28. name: 'Index',
  29. components: { dataSetDialog },
  30. props: {
  31. config: {
  32. type: Object,
  33. default: () => {
  34. }
  35. },
  36. datasetName: {
  37. type: String,
  38. default: ''
  39. },
  40. multiple: {
  41. type: Boolean,
  42. default: false
  43. },
  44. dsValue: {
  45. type: [Array, Object],
  46. default: () => ([])
  47. }
  48. },
  49. data () {
  50. return {
  51. }
  52. },
  53. computed: {
  54. datasetNameStr () {
  55. return this.datasetName || this.dsValue?.map(ds => ds.name).join(',')
  56. }
  57. },
  58. methods: {
  59. openDataSetDialog () {
  60. this.$refs.dataSetDialog.dataSetVisible = true
  61. },
  62. getDsId (dsId) {
  63. this.$emit('getDsId', dsId)
  64. },
  65. getSelectDs (selectDs) {
  66. this.$emit('getSelectDs', selectDs)
  67. if (selectDs.datasetType === 'metrics') {
  68. this.$emit('getMetricsList', JSON.parse(selectDs.data))
  69. // 选择数据集时修改当前数据集的状态(指标域或者其他数据集)
  70. this.$emit('changeIsMetrics', true, selectDs.datasetType)
  71. } else {
  72. this.$emit('changeIsMetrics', false, selectDs.datasetType)
  73. }
  74. }
  75. }
  76. }
  77. </script>
  78. <style scoped>
  79. </style>