wangrong
2026-08-30 4c949c0dc9bcae785c281c9d8125295f09810b15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<script setup lang="ts">
import { toRefs } from 'vue'
import { propTypes } from '@/utils/propTypes'
import { useI18n } from '@/hooks/web/useI18n'
const { t } = useI18n()
 
const props = defineProps({
  title: propTypes.string,
  baseWidth: {
    required: false,
    type: String,
    default: '100%'
  },
  actionSelection: {
    required: true,
    type: Object
  },
  themes: {
    type: String,
    default: 'dark'
  }
})
 
const selectionChange = () => {
  // do selection
}
 
const { actionSelection } = toRefs(props)
</script>
 
<template>
  <el-popover
    placement="right-start"
    width="auto"
    :popper-style="'max-width:' + baseWidth"
    trigger="click"
    :show-arrow="false"
  >
    <template #reference>
      <span class="option-set ed-dialog__title"
        >{{ t('visualization.linkage_setting') }}
        <el-icon style="margin: 5px 0 0 5px"><Setting /></el-icon
      ></span>
    </template>
    <el-row>
      {{ t('visualization.select_linkage_tips') }}
    </el-row>
    <el-row>
      <el-radio-group
        style="margin-top: 12px"
        v-model="actionSelection.linkageActive"
        @change="selectionChange"
        class="radio_group"
      >
        <el-radio value="custom"
          ><span style="font-weight: normal">
            {{ t('visualization.linkage_option1') }}
          </span></el-radio
        >
        <el-radio value="auto"
          ><span style="font-weight: normal">{{
            t('visualization.linkage_option2')
          }}</span></el-radio
        >
      </el-radio-group>
    </el-row>
  </el-popover>
</template>
<style lang="less" scoped>
.option-set {
  position: absolute;
  display: flex;
  left: 24px;
  top: 30px;
}
.radio_group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
</style>