vue2-client 1.16.22 → 1.16.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +112 -112
- package/src/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm.vue +478 -478
- package/src/base-client/components/common/HIS/HAddNativeForm/index.js +3 -3
- package/src/base-client/components/common/HIS/HButtons/HButtons.vue +365 -365
- package/src/base-client/components/common/HIS/HFormTable/HFormTable.vue +219 -219
- package/src/base-client/components/common/HIS/HTab/HTab.vue +293 -293
- package/src/base-client/components/common/HIS/demo.vue +54 -54
- package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +813 -813
- package/src/base-client/components/his/XCharge/XCharge.vue +610 -610
- package/src/base-client/components/his/XSidebar/XSidebar.vue +283 -283
- package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +119 -119
- package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +200 -153
- package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +482 -481
- package/src/router/async/router.map.js +129 -130
- package/src/services/api/common.js +0 -1
- package/src/assets/img/paymentMethod/icon1.png +0 -0
- package/src/assets/img/paymentMethod/icon2.png +0 -0
- package/src/assets/img/paymentMethod/icon3.png +0 -0
- package/src/assets/img/paymentMethod/icon4.png +0 -0
- package/src/assets/img/paymentMethod/icon5.png +0 -0
- package/src/assets/img/paymentMethod/icon6.png +0 -0
- package/src/base-client/components/his/XCharge/testConfig.js +0 -149
@@ -1,293 +1,293 @@
|
|
1
|
-
<script setup lang="ts">
|
2
|
-
import XTab from '@vue2-client/base-client/components/common/XTab/XTab.vue'
|
3
|
-
import { ref } from 'vue'
|
4
|
-
|
5
|
-
defineProps({
|
6
|
-
// HTab特有的属性
|
7
|
-
hasTopMargin: {
|
8
|
-
type: Boolean,
|
9
|
-
default: true
|
10
|
-
},
|
11
|
-
// 是否启用 style7 样式(细下划线、自适应)
|
12
|
-
useStyle7: {
|
13
|
-
type: Boolean,
|
14
|
-
default: false
|
15
|
-
},
|
16
|
-
// 是否叠加圆点样式(仅在 useStyle7 为 true 时生效)
|
17
|
-
useCycle: {
|
18
|
-
type: Boolean,
|
19
|
-
default: false
|
20
|
-
},
|
21
|
-
useStyle8: {
|
22
|
-
type: Boolean,
|
23
|
-
default: false
|
24
|
-
}
|
25
|
-
})
|
26
|
-
|
27
|
-
// 创建对XTab组件的引用
|
28
|
-
const xTabRef = ref()
|
29
|
-
|
30
|
-
// 暴露方法给父组件使用
|
31
|
-
defineExpose({
|
32
|
-
// 为了兼容性,保留getXTabInstance方法
|
33
|
-
getXTabInstance: () => xTabRef.value,
|
34
|
-
})
|
35
|
-
</script>
|
36
|
-
|
37
|
-
<template>
|
38
|
-
<div
|
39
|
-
class="h-tab-wrapper"
|
40
|
-
:class="{ 'h-tab-has-top-margin': hasTopMargin,
|
41
|
-
'h-tab-style7': useStyle7,
|
42
|
-
'h-tab-cycle': useStyle7 && useCycle,
|
43
|
-
'h-tab-style8': useStyle8}">
|
44
|
-
<x-tab
|
45
|
-
ref="xTabRef"
|
46
|
-
v-bind="$attrs"
|
47
|
-
v-on="$listeners"
|
48
|
-
>
|
49
|
-
<template v-for="(_, name) in $slots" #[name]="slotData">
|
50
|
-
<slot :name="name" v-bind="slotData" />
|
51
|
-
</template>
|
52
|
-
</x-tab>
|
53
|
-
</div>
|
54
|
-
</template>
|
55
|
-
|
56
|
-
<style scoped lang="less">
|
57
|
-
.h-tab-wrapper {
|
58
|
-
// 基础样式
|
59
|
-
:deep(.ant-tabs-tab-next) {
|
60
|
-
display: none;
|
61
|
-
}
|
62
|
-
|
63
|
-
:deep(.ant-tabs-nav) {
|
64
|
-
.ant-tabs-tab-next-icon {
|
65
|
-
display: none;
|
66
|
-
}
|
67
|
-
|
68
|
-
.ant-tabs-tab {
|
69
|
-
background-color: transparent;
|
70
|
-
border-radius: 6px 6px 0 0;
|
71
|
-
color: #5D5C5C;
|
72
|
-
font-weight: bold;
|
73
|
-
width: 134px;
|
74
|
-
font-size: 18px;
|
75
|
-
line-height: 10px;
|
76
|
-
font-family: "Source Han Sans";
|
77
|
-
transition: all 0.3s;
|
78
|
-
height: 32px;
|
79
|
-
text-align: center;
|
80
|
-
}
|
81
|
-
|
82
|
-
.ant-tabs-tab-active {
|
83
|
-
background-color: #0057FE;
|
84
|
-
color: #ffffff;
|
85
|
-
width: 134px;
|
86
|
-
line-height: 10px;
|
87
|
-
height: 32px;
|
88
|
-
text-align: center;
|
89
|
-
}
|
90
|
-
}
|
91
|
-
|
92
|
-
:deep(.ant-tabs-bar) {
|
93
|
-
border-bottom: 2px solid #0057FE;
|
94
|
-
}
|
95
|
-
|
96
|
-
:deep(.ant-tabs-tab-arrow-show) {
|
97
|
-
display: none;
|
98
|
-
}
|
99
|
-
|
100
|
-
:deep(.ant-tabs-ink-bar) {
|
101
|
-
background-color: transparent;
|
102
|
-
bottom: -1px;
|
103
|
-
display: none;
|
104
|
-
height: 0;
|
105
|
-
}
|
106
|
-
|
107
|
-
:deep(.ant-tabs-tab-prev-icon-target) {
|
108
|
-
display: none;
|
109
|
-
}
|
110
|
-
|
111
|
-
// 带顶部边距的样式
|
112
|
-
&.h-tab-has-top-margin {
|
113
|
-
:deep(.ant-tabs-nav) {
|
114
|
-
margin-top: 6px;
|
115
|
-
}
|
116
|
-
|
117
|
-
:deep(.ant-tabs-bar) {
|
118
|
-
margin: 0 6px;
|
119
|
-
}
|
120
|
-
|
121
|
-
:deep(.ant-card-body) {
|
122
|
-
padding: 6px 0;
|
123
|
-
|
124
|
-
.ant-card-body {
|
125
|
-
padding: 6px;
|
126
|
-
}
|
127
|
-
}
|
128
|
-
}
|
129
|
-
|
130
|
-
// 通用样式7:细下划线、透明背景、可配置宽度
|
131
|
-
&.h-tab-style7 {
|
132
|
-
:deep(.ant-tabs-tab-next),
|
133
|
-
:deep(.ant-tabs-tab-prev-icon-target),
|
134
|
-
:deep(.ant-tabs-tab-next-icon) { display: none; }
|
135
|
-
|
136
|
-
:deep(.ant-tabs-bar) { border-bottom: 2px solid transparent; }
|
137
|
-
|
138
|
-
:deep(.ant-tabs-ink-bar) {
|
139
|
-
display: block;
|
140
|
-
background-color: #0057FE;
|
141
|
-
bottom: 8px;
|
142
|
-
height: 2px;
|
143
|
-
/* 宽度交给 antd 自身计算,避免固定值影响自适应 */
|
144
|
-
margin-left: 0;
|
145
|
-
}
|
146
|
-
|
147
|
-
:deep(.ant-tabs-nav) {
|
148
|
-
display: flex;
|
149
|
-
flex-wrap: wrap;
|
150
|
-
gap: 8px;
|
151
|
-
.ant-tabs-tab {
|
152
|
-
background-color: transparent;
|
153
|
-
border-radius: 0;
|
154
|
-
color: #333333;
|
155
|
-
font-weight: 500;
|
156
|
-
/* 自适应宽度,允许通过变量覆盖最小宽度 */
|
157
|
-
min-width: var(--tab-min-width, 96px);
|
158
|
-
width: auto;
|
159
|
-
padding: 0 12px;
|
160
|
-
font-size: 16px;
|
161
|
-
line-height: 10px;
|
162
|
-
font-family: "Source Han Sans";
|
163
|
-
transition: all 0.3s;
|
164
|
-
height: 40px;
|
165
|
-
text-align: center;
|
166
|
-
margin-right: 0 !important;
|
167
|
-
}
|
168
|
-
.ant-tabs-tab-active {
|
169
|
-
background-color: transparent;
|
170
|
-
color: #0057FE;
|
171
|
-
font-weight: 600;
|
172
|
-
width: auto;
|
173
|
-
line-height: 10px;
|
174
|
-
height: 40px;
|
175
|
-
text-align: center;
|
176
|
-
}
|
177
|
-
}
|
178
|
-
|
179
|
-
// 可选:标签左侧圆点
|
180
|
-
&.h-tab-cycle {
|
181
|
-
:deep(.ant-tabs-tab) {
|
182
|
-
position: relative;
|
183
|
-
padding-left: 18px !important;
|
184
|
-
margin-right: 20px !important;
|
185
|
-
display: inline-flex !important; // 使用inline-flex保持水平布局
|
186
|
-
align-items: center !important; // 确保内容垂直居中
|
187
|
-
line-height: normal !important; // 重置line-height避免冲突
|
188
|
-
vertical-align: top !important; // 确保垂直对齐
|
189
|
-
}
|
190
|
-
:deep(.ant-tabs-tab::before) {
|
191
|
-
content: "" !important;
|
192
|
-
position: absolute !important;
|
193
|
-
left: 0 !important;
|
194
|
-
top: 50% !important;
|
195
|
-
transform: translateY(-50%) !important;
|
196
|
-
width: 8px !important;
|
197
|
-
height: 8px !important;
|
198
|
-
background: #0057FE !important;
|
199
|
-
border-radius: 50% !important;
|
200
|
-
display: block !important;
|
201
|
-
z-index: 1 !important; // 确保圆点在最上层
|
202
|
-
}
|
203
|
-
:deep(.ant-tabs-nav) {
|
204
|
-
display: flex !important;
|
205
|
-
flex-direction: row !important; // 明确指定水平方向
|
206
|
-
flex-wrap: nowrap !important;
|
207
|
-
align-items: center !important; // 确保导航栏垂直居中
|
208
|
-
}
|
209
|
-
}
|
210
|
-
}
|
211
|
-
// 用户词条使用样式
|
212
|
-
&.h-tab-style8 {
|
213
|
-
:deep(.ant-tabs-tab-next),
|
214
|
-
:deep(.ant-tabs-tab-prev-icon-target),
|
215
|
-
:deep(.ant-tabs-tab-next-icon) { display: none; }
|
216
|
-
|
217
|
-
// Make the main Ant Design tabs container a flex column to arrange tab bar and content vertically
|
218
|
-
:deep(.ant-tabs) {
|
219
|
-
display: flex !important;
|
220
|
-
flex-direction: column !important; // 确保选项卡栏在顶部,内容区域在下方
|
221
|
-
height: auto !important; // 高度自适应
|
222
|
-
}
|
223
|
-
|
224
|
-
:deep(.ant-tabs-bar) {
|
225
|
-
border-bottom: 1px solid #d9d9d9; // 底部边框
|
226
|
-
border-right: none; // 移除右侧边框
|
227
|
-
margin-right: 0 !important; // 移除重叠修复
|
228
|
-
flex-shrink: 1 !important; // 允许收缩
|
229
|
-
height: auto !important; // 高度自适应
|
230
|
-
// Important: if the tabPosition is 'top', the default margin-bottom of ant-tabs-bar is 16px, need to remove it to make border connect well
|
231
|
-
margin-bottom: 0px !important;
|
232
|
-
}
|
233
|
-
|
234
|
-
// Ensure tab content takes remaining space
|
235
|
-
:deep(.ant-tabs-content) {
|
236
|
-
flex: none !important; // 移除 flex: 1,允许内容区域自然流淌
|
237
|
-
}
|
238
|
-
|
239
|
-
// Apply flex properties directly to the div containing tabs within ant-tabs-nav
|
240
|
-
:deep(.ant-tabs-nav) {
|
241
|
-
.ant-tabs-nav-container,
|
242
|
-
.ant-tabs-nav-wrap,
|
243
|
-
.ant-tabs-nav-scroll,
|
244
|
-
& > div:first-child { // Target the direct div child of ant-tabs-nav
|
245
|
-
display: flex !important;
|
246
|
-
flex-direction: row !important;
|
247
|
-
flex-wrap: nowrap !important; // 确保不换行
|
248
|
-
width: 100% !important; // 占据全部宽度
|
249
|
-
height: auto !important;
|
250
|
-
}
|
251
|
-
|
252
|
-
// These properties are applied to ant-tabs-nav itself, not its direct div child.
|
253
|
-
// Since the flex properties are moved to the inner div, ant-tabs-nav can be left as default or adjusted if needed.
|
254
|
-
// For now, removing the redundant flex properties from ant-tabs-nav.
|
255
|
-
height: auto !important; // 高度自适应内容
|
256
|
-
width: 100% !important; // 确保容器占据全部宽度
|
257
|
-
|
258
|
-
.ant-tabs-tab {
|
259
|
-
flex: 1 !important; // 宽度等分布局
|
260
|
-
margin-right: 0 !important;
|
261
|
-
margin-bottom: 0 !important; // 移除底部间距
|
262
|
-
border-top: 1px solid #d9d9d9;
|
263
|
-
border-left: 1px solid #d9d9d9;
|
264
|
-
border-bottom: 1px solid #d9d9d9; // 所有选项卡都有底部边框
|
265
|
-
border-right: none; // 默认没有右边框
|
266
|
-
&:last-child {
|
267
|
-
border-right: 1px solid #d9d9d9; // 最后一个选项卡有右边框
|
268
|
-
}
|
269
|
-
border-radius: 0;
|
270
|
-
background-color: #f5f5f5;
|
271
|
-
color: #333333;
|
272
|
-
font-weight: 500;
|
273
|
-
font-size: 16px;
|
274
|
-
height: 40px; // 固定高度
|
275
|
-
width: auto !important; // 移除固定宽度,以便等分
|
276
|
-
display: flex;
|
277
|
-
justify-content: center;
|
278
|
-
align-items: center;
|
279
|
-
padding: 0;
|
280
|
-
}
|
281
|
-
.ant-tabs-tab-active {
|
282
|
-
border-bottom: 1px solid transparent; // 激活时隐藏底部边框,与 ant-tabs-bar 的边框衔接
|
283
|
-
background-color: #ffffff;
|
284
|
-
color: #0057FE;
|
285
|
-
font-weight: 600;
|
286
|
-
}
|
287
|
-
}
|
288
|
-
:deep(.ant-tabs-ink-bar) {
|
289
|
-
display: none; // 隐藏下划线
|
290
|
-
}
|
291
|
-
}
|
292
|
-
}
|
293
|
-
</style>
|
1
|
+
<script setup lang="ts">
|
2
|
+
import XTab from '@vue2-client/base-client/components/common/XTab/XTab.vue'
|
3
|
+
import { ref } from 'vue'
|
4
|
+
|
5
|
+
defineProps({
|
6
|
+
// HTab特有的属性
|
7
|
+
hasTopMargin: {
|
8
|
+
type: Boolean,
|
9
|
+
default: true
|
10
|
+
},
|
11
|
+
// 是否启用 style7 样式(细下划线、自适应)
|
12
|
+
useStyle7: {
|
13
|
+
type: Boolean,
|
14
|
+
default: false
|
15
|
+
},
|
16
|
+
// 是否叠加圆点样式(仅在 useStyle7 为 true 时生效)
|
17
|
+
useCycle: {
|
18
|
+
type: Boolean,
|
19
|
+
default: false
|
20
|
+
},
|
21
|
+
useStyle8: {
|
22
|
+
type: Boolean,
|
23
|
+
default: false
|
24
|
+
}
|
25
|
+
})
|
26
|
+
|
27
|
+
// 创建对XTab组件的引用
|
28
|
+
const xTabRef = ref()
|
29
|
+
|
30
|
+
// 暴露方法给父组件使用
|
31
|
+
defineExpose({
|
32
|
+
// 为了兼容性,保留getXTabInstance方法
|
33
|
+
getXTabInstance: () => xTabRef.value,
|
34
|
+
})
|
35
|
+
</script>
|
36
|
+
|
37
|
+
<template>
|
38
|
+
<div
|
39
|
+
class="h-tab-wrapper"
|
40
|
+
:class="{ 'h-tab-has-top-margin': hasTopMargin,
|
41
|
+
'h-tab-style7': useStyle7,
|
42
|
+
'h-tab-cycle': useStyle7 && useCycle,
|
43
|
+
'h-tab-style8': useStyle8}">
|
44
|
+
<x-tab
|
45
|
+
ref="xTabRef"
|
46
|
+
v-bind="$attrs"
|
47
|
+
v-on="$listeners"
|
48
|
+
>
|
49
|
+
<template v-for="(_, name) in $slots" #[name]="slotData">
|
50
|
+
<slot :name="name" v-bind="slotData" />
|
51
|
+
</template>
|
52
|
+
</x-tab>
|
53
|
+
</div>
|
54
|
+
</template>
|
55
|
+
|
56
|
+
<style scoped lang="less">
|
57
|
+
.h-tab-wrapper {
|
58
|
+
// 基础样式
|
59
|
+
:deep(.ant-tabs-tab-next) {
|
60
|
+
display: none;
|
61
|
+
}
|
62
|
+
|
63
|
+
:deep(.ant-tabs-nav) {
|
64
|
+
.ant-tabs-tab-next-icon {
|
65
|
+
display: none;
|
66
|
+
}
|
67
|
+
|
68
|
+
.ant-tabs-tab {
|
69
|
+
background-color: transparent;
|
70
|
+
border-radius: 6px 6px 0 0;
|
71
|
+
color: #5D5C5C;
|
72
|
+
font-weight: bold;
|
73
|
+
width: 134px;
|
74
|
+
font-size: 18px;
|
75
|
+
line-height: 10px;
|
76
|
+
font-family: "Source Han Sans";
|
77
|
+
transition: all 0.3s;
|
78
|
+
height: 32px;
|
79
|
+
text-align: center;
|
80
|
+
}
|
81
|
+
|
82
|
+
.ant-tabs-tab-active {
|
83
|
+
background-color: #0057FE;
|
84
|
+
color: #ffffff;
|
85
|
+
width: 134px;
|
86
|
+
line-height: 10px;
|
87
|
+
height: 32px;
|
88
|
+
text-align: center;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
:deep(.ant-tabs-bar) {
|
93
|
+
border-bottom: 2px solid #0057FE;
|
94
|
+
}
|
95
|
+
|
96
|
+
:deep(.ant-tabs-tab-arrow-show) {
|
97
|
+
display: none;
|
98
|
+
}
|
99
|
+
|
100
|
+
:deep(.ant-tabs-ink-bar) {
|
101
|
+
background-color: transparent;
|
102
|
+
bottom: -1px;
|
103
|
+
display: none;
|
104
|
+
height: 0;
|
105
|
+
}
|
106
|
+
|
107
|
+
:deep(.ant-tabs-tab-prev-icon-target) {
|
108
|
+
display: none;
|
109
|
+
}
|
110
|
+
|
111
|
+
// 带顶部边距的样式
|
112
|
+
&.h-tab-has-top-margin {
|
113
|
+
:deep(.ant-tabs-nav) {
|
114
|
+
margin-top: 6px;
|
115
|
+
}
|
116
|
+
|
117
|
+
:deep(.ant-tabs-bar) {
|
118
|
+
margin: 0 6px;
|
119
|
+
}
|
120
|
+
|
121
|
+
:deep(.ant-card-body) {
|
122
|
+
padding: 6px 0;
|
123
|
+
|
124
|
+
.ant-card-body {
|
125
|
+
padding: 6px;
|
126
|
+
}
|
127
|
+
}
|
128
|
+
}
|
129
|
+
|
130
|
+
// 通用样式7:细下划线、透明背景、可配置宽度
|
131
|
+
&.h-tab-style7 {
|
132
|
+
:deep(.ant-tabs-tab-next),
|
133
|
+
:deep(.ant-tabs-tab-prev-icon-target),
|
134
|
+
:deep(.ant-tabs-tab-next-icon) { display: none; }
|
135
|
+
|
136
|
+
:deep(.ant-tabs-bar) { border-bottom: 2px solid transparent; }
|
137
|
+
|
138
|
+
:deep(.ant-tabs-ink-bar) {
|
139
|
+
display: block;
|
140
|
+
background-color: #0057FE;
|
141
|
+
bottom: 8px;
|
142
|
+
height: 2px;
|
143
|
+
/* 宽度交给 antd 自身计算,避免固定值影响自适应 */
|
144
|
+
margin-left: 0;
|
145
|
+
}
|
146
|
+
|
147
|
+
:deep(.ant-tabs-nav) {
|
148
|
+
display: flex;
|
149
|
+
flex-wrap: wrap;
|
150
|
+
gap: 8px;
|
151
|
+
.ant-tabs-tab {
|
152
|
+
background-color: transparent;
|
153
|
+
border-radius: 0;
|
154
|
+
color: #333333;
|
155
|
+
font-weight: 500;
|
156
|
+
/* 自适应宽度,允许通过变量覆盖最小宽度 */
|
157
|
+
min-width: var(--tab-min-width, 96px);
|
158
|
+
width: auto;
|
159
|
+
padding: 0 12px;
|
160
|
+
font-size: 16px;
|
161
|
+
line-height: 10px;
|
162
|
+
font-family: "Source Han Sans";
|
163
|
+
transition: all 0.3s;
|
164
|
+
height: 40px;
|
165
|
+
text-align: center;
|
166
|
+
margin-right: 0 !important;
|
167
|
+
}
|
168
|
+
.ant-tabs-tab-active {
|
169
|
+
background-color: transparent;
|
170
|
+
color: #0057FE;
|
171
|
+
font-weight: 600;
|
172
|
+
width: auto;
|
173
|
+
line-height: 10px;
|
174
|
+
height: 40px;
|
175
|
+
text-align: center;
|
176
|
+
}
|
177
|
+
}
|
178
|
+
|
179
|
+
// 可选:标签左侧圆点
|
180
|
+
&.h-tab-cycle {
|
181
|
+
:deep(.ant-tabs-tab) {
|
182
|
+
position: relative;
|
183
|
+
padding-left: 18px !important;
|
184
|
+
margin-right: 20px !important;
|
185
|
+
display: inline-flex !important; // 使用inline-flex保持水平布局
|
186
|
+
align-items: center !important; // 确保内容垂直居中
|
187
|
+
line-height: normal !important; // 重置line-height避免冲突
|
188
|
+
vertical-align: top !important; // 确保垂直对齐
|
189
|
+
}
|
190
|
+
:deep(.ant-tabs-tab::before) {
|
191
|
+
content: "" !important;
|
192
|
+
position: absolute !important;
|
193
|
+
left: 0 !important;
|
194
|
+
top: 50% !important;
|
195
|
+
transform: translateY(-50%) !important;
|
196
|
+
width: 8px !important;
|
197
|
+
height: 8px !important;
|
198
|
+
background: #0057FE !important;
|
199
|
+
border-radius: 50% !important;
|
200
|
+
display: block !important;
|
201
|
+
z-index: 1 !important; // 确保圆点在最上层
|
202
|
+
}
|
203
|
+
:deep(.ant-tabs-nav) {
|
204
|
+
display: flex !important;
|
205
|
+
flex-direction: row !important; // 明确指定水平方向
|
206
|
+
flex-wrap: nowrap !important;
|
207
|
+
align-items: center !important; // 确保导航栏垂直居中
|
208
|
+
}
|
209
|
+
}
|
210
|
+
}
|
211
|
+
// 用户词条使用样式
|
212
|
+
&.h-tab-style8 {
|
213
|
+
:deep(.ant-tabs-tab-next),
|
214
|
+
:deep(.ant-tabs-tab-prev-icon-target),
|
215
|
+
:deep(.ant-tabs-tab-next-icon) { display: none; }
|
216
|
+
|
217
|
+
// Make the main Ant Design tabs container a flex column to arrange tab bar and content vertically
|
218
|
+
:deep(.ant-tabs) {
|
219
|
+
display: flex !important;
|
220
|
+
flex-direction: column !important; // 确保选项卡栏在顶部,内容区域在下方
|
221
|
+
height: auto !important; // 高度自适应
|
222
|
+
}
|
223
|
+
|
224
|
+
:deep(.ant-tabs-bar) {
|
225
|
+
border-bottom: 1px solid #d9d9d9; // 底部边框
|
226
|
+
border-right: none; // 移除右侧边框
|
227
|
+
margin-right: 0 !important; // 移除重叠修复
|
228
|
+
flex-shrink: 1 !important; // 允许收缩
|
229
|
+
height: auto !important; // 高度自适应
|
230
|
+
// Important: if the tabPosition is 'top', the default margin-bottom of ant-tabs-bar is 16px, need to remove it to make border connect well
|
231
|
+
margin-bottom: 0px !important;
|
232
|
+
}
|
233
|
+
|
234
|
+
// Ensure tab content takes remaining space
|
235
|
+
:deep(.ant-tabs-content) {
|
236
|
+
flex: none !important; // 移除 flex: 1,允许内容区域自然流淌
|
237
|
+
}
|
238
|
+
|
239
|
+
// Apply flex properties directly to the div containing tabs within ant-tabs-nav
|
240
|
+
:deep(.ant-tabs-nav) {
|
241
|
+
.ant-tabs-nav-container,
|
242
|
+
.ant-tabs-nav-wrap,
|
243
|
+
.ant-tabs-nav-scroll,
|
244
|
+
& > div:first-child { // Target the direct div child of ant-tabs-nav
|
245
|
+
display: flex !important;
|
246
|
+
flex-direction: row !important;
|
247
|
+
flex-wrap: nowrap !important; // 确保不换行
|
248
|
+
width: 100% !important; // 占据全部宽度
|
249
|
+
height: auto !important;
|
250
|
+
}
|
251
|
+
|
252
|
+
// These properties are applied to ant-tabs-nav itself, not its direct div child.
|
253
|
+
// Since the flex properties are moved to the inner div, ant-tabs-nav can be left as default or adjusted if needed.
|
254
|
+
// For now, removing the redundant flex properties from ant-tabs-nav.
|
255
|
+
height: auto !important; // 高度自适应内容
|
256
|
+
width: 100% !important; // 确保容器占据全部宽度
|
257
|
+
|
258
|
+
.ant-tabs-tab {
|
259
|
+
flex: 1 !important; // 宽度等分布局
|
260
|
+
margin-right: 0 !important;
|
261
|
+
margin-bottom: 0 !important; // 移除底部间距
|
262
|
+
border-top: 1px solid #d9d9d9;
|
263
|
+
border-left: 1px solid #d9d9d9;
|
264
|
+
border-bottom: 1px solid #d9d9d9; // 所有选项卡都有底部边框
|
265
|
+
border-right: none; // 默认没有右边框
|
266
|
+
&:last-child {
|
267
|
+
border-right: 1px solid #d9d9d9; // 最后一个选项卡有右边框
|
268
|
+
}
|
269
|
+
border-radius: 0;
|
270
|
+
background-color: #f5f5f5;
|
271
|
+
color: #333333;
|
272
|
+
font-weight: 500;
|
273
|
+
font-size: 16px;
|
274
|
+
height: 40px; // 固定高度
|
275
|
+
width: auto !important; // 移除固定宽度,以便等分
|
276
|
+
display: flex;
|
277
|
+
justify-content: center;
|
278
|
+
align-items: center;
|
279
|
+
padding: 0;
|
280
|
+
}
|
281
|
+
.ant-tabs-tab-active {
|
282
|
+
border-bottom: 1px solid transparent; // 激活时隐藏底部边框,与 ant-tabs-bar 的边框衔接
|
283
|
+
background-color: #ffffff;
|
284
|
+
color: #0057FE;
|
285
|
+
font-weight: 600;
|
286
|
+
}
|
287
|
+
}
|
288
|
+
:deep(.ant-tabs-ink-bar) {
|
289
|
+
display: none; // 隐藏下划线
|
290
|
+
}
|
291
|
+
}
|
292
|
+
}
|
293
|
+
</style>
|