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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| <template>
| <div :class="getClass" :style="getDragBarStyle"></div>
| </template>
| <script lang="ts">
| import { defineComponent, computed, unref } from 'vue';
|
| import { useDesign } from '/@/hooks/web/useDesign';
| import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
|
| export default defineComponent({
| name: 'DargBar',
| props: {
| mobile: Boolean,
| },
| setup(props) {
| const { getMiniWidthNumber, getCollapsed, getCanDrag } = useMenuSetting();
|
| const { prefixCls } = useDesign('darg-bar');
| const getDragBarStyle = computed(() => {
| if (unref(getCollapsed)) {
| return { left: `${unref(getMiniWidthNumber)}px` };
| }
| return {};
| });
|
| const getClass = computed(() => {
| return [
| prefixCls,
| {
| [`${prefixCls}--hide`]: !unref(getCanDrag) || props.mobile,
| },
| ];
| });
|
| return {
| prefixCls,
| getDragBarStyle,
| getClass,
| };
| },
| });
| </script>
| <style lang="less" scoped>
| @prefix-cls: ~'@{namespace}-darg-bar';
|
| .@{prefix-cls} {
| position: absolute;
| top: 0;
| right: -2px;
| z-index: @side-drag-z-index;
| width: 2px;
| height: 100%;
| cursor: col-resize;
| border-top: none;
| border-bottom: none;
|
| &--hide {
| display: none;
| }
|
| &:hover {
| background-color: @primary-color;
| box-shadow: 0 0 4px 0 rgba(28, 36, 56, 0.15);
| }
| }
| </style>
|
|