@@ -2,23 +2,27 @@ import {
2
2
defineComponent ,
3
3
ref ,
4
4
watch ,
5
- nextTick ,
6
5
reactive ,
7
6
computed ,
8
7
withDirectives ,
9
8
onMounted ,
10
9
inject ,
11
10
} from 'vue'
12
- import type { SplitterStore } from './splitter-store'
11
+
12
+ import DToolTip from '../../tooltip/src/tooltip'
13
13
import { setStyle } from '../../shared/util/set-style'
14
+ import type { SplitterStore } from './splitter-store'
14
15
import { addClass , removeClass } from '../../shared/util/class'
15
16
import dresize , { ResizeDirectiveProp } from './util/d-resize-directive'
16
- import './splitter-bar.scss'
17
17
import { splitterBarProps , SplitterBarProps } from './splitter-bar-type'
18
+ import './splitter-bar.scss'
18
19
19
20
export default defineComponent ( {
20
21
name : 'DSplitterBar' ,
21
22
props : splitterBarProps ,
23
+ components : {
24
+ DToolTip,
25
+ } ,
22
26
setup ( props : SplitterBarProps ) {
23
27
const store : SplitterStore = inject ( 'splitterStore' )
24
28
const state = reactive ( {
@@ -109,8 +113,6 @@ export default defineComponent({
109
113
// 计算前面板收起操作样式
110
114
const prevClass = computed ( ( ) => {
111
115
const { pane, nearPane } = queryPanes ( props . index , props . index + 1 )
112
- // TODO 提示文字
113
-
114
116
// 第一个面板或者其它面板折叠方向不是向后的, 显示操作按钮
115
117
const showIcon =
116
118
pane ?. component ?. props ?. collapseDirection !== 'after' ||
@@ -121,8 +123,6 @@ export default defineComponent({
121
123
// 计算相邻面板收起操作样式
122
124
const nextClass = computed ( ( ) => {
123
125
const { pane, nearPane } = queryPanes ( props . index + 1 , props . index )
124
- // TODO 提示文字
125
-
126
126
// 最后一个面板或者其它面板折叠方向不是向前的显示操作按钮
127
127
const showIcon =
128
128
pane ?. component ?. props ?. collapseDirection !== 'before' ||
@@ -157,29 +157,41 @@ export default defineComponent({
157
157
handleCollapsePrePane ( true )
158
158
handleCollapseNextPane ( true )
159
159
}
160
-
160
+
161
161
onMounted ( ( ) => {
162
162
initialCollapseStatus ( )
163
163
} )
164
+
165
+ const renderCollapsedTip = ( ) => {
166
+ const { pane, nearPane } = queryPanes ( props . index , props . index + 1 )
167
+ const isCollapsed =
168
+ pane ?. component ?. props ?. collapsed ||
169
+ nearPane ?. component ?. props ?. collapsed
170
+ return isCollapsed ? '展开' : '收起'
171
+ }
164
172
165
173
return ( ) => {
166
174
return withDirectives (
167
175
< div class = { state . wrapperClass } ref = { domRef } >
168
- { props . showCollapseButton ? (
169
- < div
170
- class = { [ 'prev' , prevClass . value ] }
171
- onClick = { ( ) => {
172
- handleCollapsePrePane ( )
173
- } }
174
- > </ div >
175
- ) : null }
176
+ { props . showCollapseButton && (
177
+ < DToolTip content = { renderCollapsedTip ( ) } >
178
+ < div
179
+ class = { [ 'prev' , prevClass . value ] }
180
+ onClick = { ( ) => {
181
+ handleCollapsePrePane ( )
182
+ } }
183
+ > </ div >
184
+ </ DToolTip >
185
+ ) }
176
186
< div class = "devui-resize-handle" > </ div >
177
- { props . showCollapseButton ? (
178
- < div
179
- class = { [ 'next' , nextClass . value ] }
180
- onClick = { ( ) => handleCollapseNextPane ( ) }
181
- > </ div >
182
- ) : null }
187
+ { props . showCollapseButton && (
188
+ < DToolTip content = { renderCollapsedTip ( ) } >
189
+ < div
190
+ class = { [ 'next' , nextClass . value ] }
191
+ onClick = { ( ) => handleCollapseNextPane ( ) }
192
+ > </ div >
193
+ </ DToolTip >
194
+ ) }
183
195
</ div > ,
184
196
[ [ dresize , resizeProp ] ]
185
197
)
0 commit comments