index.vue 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <template>
  2. <div @click="openDrawer" :class="prefixCls">
  3. <Icon icon="ion:settings-outline" />
  4. <SettingDrawer @register="register" />
  5. </div>
  6. </template>
  7. <script lang="ts">
  8. import { defineComponent } from 'vue';
  9. import SettingDrawer from './SettingDrawer';
  10. import Icon from '/@/components/Icon';
  11. import { useDrawer } from '/@/components/Drawer';
  12. import { useDesign } from '/@/hooks/web/useDesign';
  13. export default defineComponent({
  14. name: 'SettingButton',
  15. components: { SettingDrawer, Icon },
  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. @prefix-cls: ~'@{namespace}-setting-button';
  29. .@{prefix-cls} {
  30. position: absolute;
  31. top: 45%;
  32. right: 0;
  33. z-index: 10;
  34. display: flex;
  35. padding: 10px;
  36. color: @white;
  37. cursor: pointer;
  38. background: @primary-color;
  39. border-radius: 6px 0 0 6px;
  40. justify-content: center;
  41. align-items: center;
  42. svg {
  43. width: 1em;
  44. height: 1em;
  45. }
  46. }
  47. </style>