AIoT前端公共UI

ToolBar.vue 1.9KB

    <template> <div class="tool-bar"> <div v-for="(tool, index) in toolList" :key="index" class="tool-module"> <template v-for="t in tool" :key="t.name"> <el-tooltip class="box-item" effect="dark" :content="t.label" placement="top-start" > <div class="tool" @click.stop="handleClick(t.name)"> <common-icon class="icon" :class="{ disabeld: t.disabeld }" :name="t.name" :size="20" ></common-icon> </div> </el-tooltip> </template> </div> </div> </template> <script setup> // import { defineProps, ref, getCurrentInstance, onMounted } from 'vue'; import { defineProps, onMounted } from 'vue'; const emits = defineEmits(['toolHandelClick']); defineProps({ graph: { type: Object, default: () => {} }, toolList: { type: Array, default: () => [] } }); // const { proxy } = getCurrentInstance(); // const targetNode = ref(null); // 点击事件 const handleClick = (name) => { emits('toolHandelClick', name); }; onMounted(() => { // proxy.$eBus.on('select-node', (data) => { // targetNode.value = data; // }); }); </script> <style scoped lang="scss"> .tool-bar { width: 100%; display: flex; box-sizing: border-box; justify-content: flex-start; height: 52px; background: #fff; align-items: center; border-bottom: 1px solid rgba(0, 0, 0, 0.1); padding-right: 10px; .tool-module { border-right: 1px solid rgba(0, 0, 0, 0.1); display: flex; height: 100%; align-items: center; padding: 0 10px; .tool { padding: 0 10px; cursor: pointer; } &:last-child { border-right: none; } } } .icon { // cursor: pointer; color: rgab(0, 0, 0, 0, 0.6); &:hover { color: rgba(0, 0, 0, 1); } } .disabeld { opacity: 0.3; cursor: not-allowed; } </style>