PanelControl.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <div class="panel-control">
  3. <el-button-group>
  4. <el-button type="default" size="small" @click="$_zoomIn">放大</el-button>
  5. <el-button type="default" size="small" @click="$_zoomOut">缩小</el-button>
  6. <el-button type="default" size="small" @click="$_zoomReset">大小适应</el-button>
  7. <el-button type="default" size="small" @click="$_translateRest">定位还原</el-button>
  8. <el-button type="default" size="small" @click="$_reset">还原(大小&定位)</el-button>
  9. <el-button type="default" size="small" @click="$_undo" :disabled="state.undoDisable">上一步(ctrl+z)</el-button>
  10. <el-button type="default" size="small" @click="$_redo" :disabled="state.redoDisable">下一步(ctrl+y)</el-button>
  11. <el-button type="default" size="small" @click="$_download">下载图片</el-button>
  12. <el-button type="default" size="small" @click="$_catData">查看数据</el-button>
  13. <el-button type="default" size="small" @click="$_showMiniMap">查看缩略图</el-button>
  14. </el-button-group>
  15. </div>
  16. </template>
  17. <script setup lang="ts">
  18. import { reactive } from 'vue';
  19. var props = defineProps({
  20. lf: Object,
  21. });
  22. const emit = defineEmits(['catData']);
  23. const state = reactive({
  24. undoDisable: true,
  25. redoDisable: true,
  26. });
  27. const $_zoomIn = () => {
  28. props.lf?.zoom(true);
  29. };
  30. const $_zoomOut = () => {
  31. props.lf?.zoom(false);
  32. };
  33. const $_zoomReset = () => {
  34. props.lf?.resetZoom();
  35. };
  36. const $_translateRest = () => {
  37. props.lf?.resetTranslate();
  38. };
  39. const $_reset = () => {
  40. props.lf?.resetZoom();
  41. props.lf?.resetTranslate();
  42. };
  43. const $_undo = () => {
  44. props.lf?.undo();
  45. };
  46. const $_redo = () => {
  47. props.lf?.redo();
  48. };
  49. const $_download = () => {
  50. props.lf?.getSnapshot();
  51. };
  52. const $_catData = () => {
  53. emit('catData');
  54. };
  55. const $_showMiniMap = () => {
  56. props.lf?.extension.miniMap.show(props.lf.graphModel.width - 210, 70);
  57. };
  58. </script>
  59. <style lang="scss" scoped>
  60. .panel-control {
  61. position: absolute;
  62. top: 30px;
  63. right: 50px;
  64. z-index: 2;
  65. }
  66. </style>