zhengyiming
20 小时以前 55119aeab85c9dc310ab8bc3de3091a20fa9a684
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
<!--
 * @Author: wuchenguang1998
 * @Date: 2024-05-13 22:34:03
 * @LastEditors: 秦少卫
 * @LastEditTime: 2024-10-07 17:20:20
 * @Description: 隐藏或显示元素
-->
 
<template>
  <Tooltip :content="$t('quick.hide')" v-if="isOne">
    <Button long v-if="isHide" @click="doHide(false)" icon="md-eye-off" type="text"></Button>
    <Button long v-else @click="doHide(true)" icon="md-eye" type="text"></Button>
  </Tooltip>
</template>
 
<script setup name="Hide">
import useSelect from '@/hooks/select';
import { onBeforeUnmount, onMounted } from 'vue';
 
const { isOne, canvasEditor } = useSelect();
const isHide = ref(false);
 
const doHide = (hide) => {
  // 修改visible属性
  const activeObject = canvasEditor.canvas.getActiveObject();
  activeObject.set('visible', !hide);
  canvasEditor.canvas.requestRenderAll();
  isHide.value = hide;
};
 
const handleSelected = () => {
  const activeObject = canvasEditor.canvas.getActiveObject();
  isHide.value = !activeObject.visible;
};
 
onMounted(() => {
  canvasEditor.on('selectOne', handleSelected);
});
 
onBeforeUnmount(() => {
  canvasEditor.off('selectOne', handleSelected);
});
</script>