index.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <template>
  2. <div @click="openDrawer" :class="prefixCls">
  3. <SettingOutlined />
  4. <SettingDrawer @register="register" />
  5. </div>
  6. </template>
  7. <script lang="ts">
  8. import { defineComponent } from 'vue';
  9. import { SettingOutlined } from '@ant-design/icons-vue';
  10. import SettingDrawer from './SettingDrawer';
  11. import { useDrawer } from '/@/components/Drawer';
  12. import { useDesign } from '/@/hooks/web/useDesign';
  13. export default defineComponent({
  14. name: 'SettingBtn',
  15. components: { SettingOutlined, SettingDrawer },
  16. setup() {
  17. const [register, { openDrawer }] = useDrawer();
  18. const { prefixCls } = useDesign('setting-button');
  19. return {
  20. prefixCls,
  21. register,
  22. openDrawer,
  23. };
  24. },
  25. });
  26. </script>
  27. <style lang="less">
  28. @import (reference) '../../../design/index.less';
  29. @prefix-cls: ~'@{namespace}-setting-button';
  30. .@{prefix-cls} {
  31. position: absolute;
  32. top: 45%;
  33. right: 0;
  34. z-index: 10;
  35. display: flex;
  36. padding: 10px;
  37. color: @white;
  38. cursor: pointer;
  39. background: @primary-color;
  40. border-radius: 6px 0 0 6px;
  41. justify-content: center;
  42. align-items: center;
  43. svg {
  44. width: 1em;
  45. height: 1em;
  46. }
  47. }
  48. </style>