vue2-client 1.22.3 → 1.22.5

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.
Files changed (90) hide show
  1. package/.env.his +19 -19
  2. package/.idea/.name +1 -0
  3. package/.idea/MarsCodeWorkspaceAppSettings.xml +8 -0
  4. package/.idea/deployment.xml +14 -0
  5. package/.idea/gradle.xml +7 -0
  6. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  7. package/.idea/libraries/contour_plot.xml +9 -0
  8. package/.idea/material_theme_project_new.xml +18 -0
  9. package/.idea/misc.xml +87 -5
  10. package/package.json +1 -1
  11. package/src/base-client/components/common/HIS/HForm/HForm.vue +1186 -1186
  12. package/src/base-client/components/common/XMarkdownViewer/demo.vue +102 -102
  13. package/src/base-client/components/his/HAi/HAi.vue +1177 -1177
  14. package/src/base-client/components/his/XTransfer/index.md +327 -327
  15. package/src/base-client/plugins/GetLoginInfoService.js +4 -4
  16. package/src/pages/login/Login.vue +9 -7
  17. package/src/pages/login/LoginV3.vue +9 -7
  18. package/src/utils/login.js +8 -19
  19. package/.history/.eslintrc_20260521171150.js +0 -74
  20. package/.history/.eslintrc_20260521171213.js +0 -74
  21. package/.history/src/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm_20260601154443.vue +0 -726
  22. package/.history/src/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm_20260601154700.vue +0 -478
  23. package/.history/src/base-client/components/common/HIS/HButtons/HButtons_20260512175435.vue +0 -706
  24. package/.history/src/base-client/components/common/HIS/HButtons/HButtons_20260512175450.vue +0 -694
  25. package/.history/src/base-client/components/common/HIS/HButtons/HButtons_20260611152602.vue +0 -755
  26. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260513145941.vue +0 -524
  27. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260513153133.vue +0 -731
  28. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260513160316.vue +0 -525
  29. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260601144150.vue +0 -1046
  30. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310142713.vue +0 -512
  31. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310145118.vue +0 -511
  32. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260311094834.vue +0 -696
  33. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260320143028.vue +0 -693
  34. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260409101450.vue +0 -677
  35. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260508164645.vue +0 -758
  36. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260508164714.vue +0 -693
  37. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260508171651.vue +0 -716
  38. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260509133717.vue +0 -695
  39. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260509171115.vue +0 -664
  40. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513140637.vue +0 -1455
  41. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513140935.vue +0 -1441
  42. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513150818.vue +0 -1441
  43. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513153119.vue +0 -1442
  44. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513153126.vue +0 -1486
  45. package/.history/src/base-client/components/common/XForm/XFormItem_20260513140854.vue +0 -1607
  46. package/.history/src/base-client/components/common/XMarkdownViewer/XMarkdownViewer_20260519140403.vue +0 -643
  47. package/.history/src/base-client/components/common/XMarkdownViewer/XMarkdownViewer_20260519140829.vue +0 -628
  48. package/.history/src/base-client/components/common/XMarkdownViewer/demo_20260519142824.vue +0 -104
  49. package/.history/src/base-client/components/common/XMarkdownViewer/demo_20260519143155.vue +0 -102
  50. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171231.vue +0 -1241
  51. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171441.vue +0 -1223
  52. package/.history/src/base-client/components/his/HAi/HAi_20260612174826.vue +0 -472
  53. package/.history/src/base-client/components/his/HAi/HAi_20260612175839.vue +0 -538
  54. package/.history/src/base-client/components/his/HAi/HAi_20260615103331.vue +0 -650
  55. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260424134504.vue +0 -1469
  56. package/.history/src/base-client/components/his/XSidebar/XSidebar_20260610171133.vue +0 -788
  57. package/.history/src/base-client/components/his/XSidebar/XSidebar_20260610171151.vue +0 -780
  58. package/.history/src/base-client/components/his/XTransfer/XTransfer_20260511170841.vue +0 -585
  59. package/.history/src/base-client/components/his/XTransfer/XTransfer_20260511171138.vue +0 -787
  60. package/.history/src/base-client/components/his/XTransfer/XTransfer_20260512141830.vue +0 -739
  61. package/.history/src/components/STable/index_20260409155138.js +0 -806
  62. package/.history/src/components/STable/index_20260409155218.js +0 -814
  63. package/.history/src/expression/core/Expression_20260305164427.js +0 -1371
  64. package/.history/src/expression/core/Expression_20260305170258.js +0 -1358
  65. package/.history/src/expression/core/Program_20260305111830.js +0 -944
  66. package/.history/src/expression/core/Program_20260305112041.js +0 -931
  67. package/.history/src/logic/LogicRunner_20260304154306.js +0 -170
  68. package/.history/src/logic/LogicRunner_20260304155553.js +0 -112
  69. package/.history/src/logic/LogicRunner_20260305105834.js +0 -112
  70. package/.history/src/logic/LogicRunner_20260305112718.js +0 -129
  71. package/.history/src/logic/LogicRunner_20260305182436.js +0 -133
  72. package/.history/src/logic/LogicRunner_20260306151301.js +0 -213
  73. package/.history/src/logic/LogicRunner_20260306152419.js +0 -213
  74. package/.history/src/logic/plugins/common/DateTools_20260305154159.js +0 -61
  75. package/.history/src/logic/plugins/common/DateTools_20260305154217.js +0 -44
  76. package/.history/src/logic/plugins/common/DateTools_20260305161014.js +0 -44
  77. package/.history/src/logic/plugins/common/HttpTools_20260305164352.js +0 -80
  78. package/.history/src/logic/plugins/common/HttpTools_20260305170258.js +0 -75
  79. package/.history/src/logic/plugins/common/HttpTools_20260305171634.js +0 -75
  80. package/.history/src/logic/plugins/common/HttpTools_20260306152419.js +0 -72
  81. package/.history/src/services/api/restTools_20260427142149.js +0 -245
  82. package/.history/src/services/api/restTools_20260427142853.js +0 -230
  83. package/.history/src/services/api/restTools_20260519135558.js +0 -230
  84. package/.history/src/services/api/restTools_20260519140825.js +0 -230
  85. package/.history/src/services/api/restTools_20260519151223.js +0 -230
  86. package/.history/src/utils/indexedDB_20260306150918.js +0 -593
  87. package/.history/src/utils/indexedDB_20260306151301.js +0 -586
  88. package/.idea/codeStyles/Project.xml +0 -62
  89. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  90. package/preview-input-box.html +0 -180
@@ -1,755 +0,0 @@
1
- <script setup >
2
- import XButtons from '@vue2-client/base-client/components/common/XButtons/XButtons.vue'
3
- import { ref, computed, useAttrs, nextTick, onMounted } from 'vue'
4
-
5
- const props = defineProps({
6
- // HButtons特有的属性
7
- buttonStyle: {
8
- type: String,
9
- default: 'button24'
10
- }
11
- })
12
-
13
- const emit = defineEmits(['update:activeIndex', 'activeChange', 'configEnd'])
14
-
15
- // 内部 XButtons 实例引用
16
- const xButtonsRef = ref()
17
-
18
- // useStyle10模式下激活按钮的索引(从0开始)
19
- const activeIndex = ref(0)
20
-
21
- // 兼容多种样式配置
22
- const attrs = useAttrs()
23
-
24
- // 判断是否使用 useStyle10 模式
25
- const isUseStyle10 = computed(() => {
26
- return props.buttonStyle === 'useStyle10' || attrs.useStyle10 === true || attrs.useStyle10 === '' || attrs.useStyle10 === 'true'
27
- })
28
-
29
- const wrapperClassObject = computed(() => {
30
- const a = attrs
31
- const classes = {}
32
-
33
- // 通用布尔样式开关(以存在/空字符串/'true' 为真)
34
- const booleanStyleKeys = [
35
- 'max-width200',
36
- 'width173',
37
- 'button_refresh',
38
- 'border', 'no-style',
39
- 'fill-container',
40
- 'no-boder-style',
41
- 'form-inline',
42
- 'one-button-style', // 一个按钮样式,占满整个宽度
43
- 'useStyle10', // 左侧蓝色圆点指示器样式
44
- 'custom-icon-style' // 自定义图标边框样式
45
- ]
46
- for (const key of booleanStyleKeys) {
47
- const val = a[key]
48
- const truthy = val === true || val === '' || val === 'true'
49
- if (truthy) classes[`h-buttons-${key}`] = true
50
- }
51
- return classes
52
- })
53
-
54
- // 获取内部按钮元素列表
55
- const getButtonElements = () => {
56
- const xEl = xButtonsRef.value?.$el
57
- if (!xEl) return []
58
- return Array.from(xEl.querySelectorAll('.ant-btn'))
59
- }
60
-
61
- // 设置按钮激活状态
62
- const setActiveState = (btn, isActive) => {
63
- if (!btn) return
64
- if (isActive) {
65
- btn.classList.add('h-btn-active')
66
- // 使用内联样式确保颜色生效
67
- btn.style.color = '#0057FE'
68
- } else {
69
- btn.classList.remove('h-btn-active')
70
- // 清除内联样式
71
- btn.style.color = ''
72
- }
73
- }
74
-
75
- // 清除所有按钮的激活样式
76
- const clearAllActiveStyles = () => {
77
- const buttons = getButtonElements()
78
- buttons.forEach(btn => {
79
- setActiveState(btn, false)
80
- })
81
- }
82
-
83
- // 设置指定索引按钮为激活状态
84
- const setActiveButton = (index) => {
85
- const buttons = getButtonElements()
86
- clearAllActiveStyles()
87
-
88
- if (buttons[index]) {
89
- setActiveState(buttons[index], true)
90
- }
91
- }
92
-
93
- // 事件委托:处理按钮点击
94
- const handleButtonClick = (event) => {
95
- if (!isUseStyle10.value) return
96
-
97
- // 查找被点击的按钮元素
98
- const target = event.target.closest('.ant-btn')
99
- if (!target) return
100
-
101
- const buttons = getButtonElements()
102
- const index = buttons.indexOf(target)
103
-
104
- if (index === -1) return
105
-
106
-
107
- // 更新激活索引
108
- activeIndex.value = index
109
- emit('update:activeIndex', index)
110
- emit('activeChange', index)
111
-
112
- // 更新按钮样式
113
- clearAllActiveStyles()
114
- setActiveState(buttons[index], true)
115
- }
116
-
117
- // 初始化 useStyle10 样式(带重试机制)
118
- const initUseStyle10 = (retryCount = 0) => {
119
-
120
- if (!isUseStyle10.value) {
121
- return
122
- }
123
-
124
- const buttons = getButtonElements()
125
-
126
-
127
- // 如果没有找到按钮,重试最多10次
128
- if (buttons.length === 0 && retryCount < 10) {
129
- setTimeout(() => {
130
- initUseStyle10(retryCount + 1)
131
- }, 100)
132
- return
133
- }
134
-
135
- if (buttons.length === 0) {
136
-
137
- return
138
- }
139
-
140
- // 设置第一个按钮为激活状态
141
- clearAllActiveStyles()
142
- setActiveState(buttons[0], true)
143
- }
144
-
145
- // 监听 XButtons 配置结束,初始化激活状态
146
- const handleConfigEnd = async () => {
147
- await nextTick()
148
- initUseStyle10()
149
- emit('configEnd')
150
- }
151
-
152
- // 在挂载时也尝试初始化(作为备用方案)
153
- onMounted(() => {
154
- setTimeout(() => {
155
- initUseStyle10()
156
- }, 300)
157
- })
158
-
159
- // 暴露方法:获取内部 XButtons 实例
160
- defineExpose({
161
- getXButtonsInstance: function () { return xButtonsRef.value },
162
- /** 等待配置结束的异步方法,委托给内部 XButtons */
163
- waitConfigEnd: () => xButtonsRef.value?.waitConfigEnd?.() ?? Promise.resolve(),
164
- /** 获取当前激活按钮索引 */
165
- getActiveIndex: () => activeIndex.value,
166
- /** 设置激活按钮索引 */
167
- setActiveIndex: (index) => {
168
- activeIndex.value = index
169
- setActiveButton(index)
170
- },
171
- /** 获取当前激活按钮元素 */
172
- getActiveButton: () => {
173
- const buttons = getButtonElements()
174
- return buttons[activeIndex.value]
175
- }
176
- })
177
- </script>
178
-
179
- <template>
180
- <div
181
- class="h-buttons-wrapper"
182
- :class="[
183
- `h-buttons-${buttonStyle}`,
184
- wrapperClassObject
185
- ]"
186
- @click="handleButtonClick"
187
- >
188
- <x-buttons
189
- ref="xButtonsRef"
190
- v-bind="$attrs"
191
- v-on="$listeners"
192
- @configEnd="handleConfigEnd"
193
- >
194
- <template v-for="(_, name) in $slots" #[name]="slotData">
195
- <slot :name="name" v-bind="slotData" />
196
- </template>
197
- </x-buttons>
198
- </div>
199
- </template>
200
-
201
- <style scoped lang="less">
202
- .h-buttons-wrapper {
203
- // 基础样式
204
- :deep(.ant-btn-group) {
205
- .ant-btn {
206
- border-radius: 6px;
207
- background-color: #FFFFFF;
208
- border: 1px solid #9499A0;
209
- color: #313131;
210
- font-weight: normal;
211
- letter-spacing: 0em;
212
- width: 110px;
213
- font-size: 16px;
214
- font-family: "Source Han Sans";
215
- line-height: normal;
216
- margin-right: 25px;
217
- height: 32px;
218
- }
219
- }
220
- // button24样式
221
- &.h-buttons-button24 {
222
- :deep(.ant-btn-group) {
223
- .ant-btn {
224
- border: 1px solid #CDCDCD;
225
- color: #5D5C5C;
226
- // top: -100px;
227
- width: fit-content;
228
- min-width: 110px;
229
- }
230
- }
231
- }
232
- // button23样式
233
- &.h-buttons-button23 {
234
- :deep(.ant-btn-group) {
235
- .ant-btn {
236
- border: none;
237
- padding: 0 !important;
238
- color: #FFFFFF;
239
- border-radius: 50%;
240
- background-color: #1890FF;
241
- margin-left: 10px;
242
- top: -88px;
243
- width: 30px;
244
- height: 30px;
245
- }
246
- }
247
- }
248
- // +号样式(共享基础样式)
249
- &.h-buttons-table-height-button23,
250
- &.h-buttons-table-height-button23-no-transform {
251
- :deep(.ant-btn-group) {
252
- display: inline-flex;
253
- align-items: center;
254
- height: 100%;
255
-
256
- .ant-btn {
257
- display: inline-flex;
258
- align-items: center;
259
- justify-content: center;
260
- border: none;
261
- padding: 0 !important;
262
- color: #FFFFFF;
263
- border-radius: 50%;
264
- background-color: #1890FF;
265
- margin-left: 10px;
266
- width: 30px;
267
- height: 30px;
268
- }
269
- }
270
- }
271
- // 仅在有分页的场景上移
272
- &.h-buttons-table-height-button23 {
273
- :deep(.ant-btn-group) {
274
- .ant-btn { transform: translateY(-100%); }
275
- }
276
- }
277
- // 居中+悬停高亮的新样式
278
- &.h-buttons-plus-center {
279
- :deep(.ant-btn-group) {
280
- display: flex;
281
- align-items: center;
282
- justify-content: center;
283
- gap: 16px;
284
-
285
- .ant-btn {
286
- display: inline-flex;
287
- align-items: center;
288
- justify-content: center;
289
- border: 1px solid #CDCDCD;
290
- color: #5D5C5C;
291
- min-width: 110px;
292
- transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
293
-
294
- &:hover {
295
- background-color: #0057FE;
296
- border-color: #0057FE;
297
- color: #FFFFFF;
298
- }
299
- /* 支持通过 data-type 改变悬停颜色 */
300
- &[data-type='success']:hover {
301
- background-color: #34C76E;
302
- border-color: #34C76E;
303
- color: #FFFFFF;
304
- }
305
- }
306
- }
307
- }
308
- // 按钮布局样式公共部分
309
- &.h-buttons-button-left,
310
- &.h-buttons-button-center,
311
- &.h-buttons-button-right,
312
- &.h-buttons-button-space-between {
313
- :deep(.ant-btn-group) {
314
- width: 100%;
315
- display: flex;
316
- flex-wrap: nowrap;
317
- .ant-btn {
318
- border: 1px solid #CDCDCD;
319
- color: #5D5C5C;
320
- white-space: nowrap;
321
- overflow: hidden;
322
- margin-right: 0px;
323
- text-overflow: ellipsis;
324
- }
325
- }
326
- }
327
- &.h-buttons-max-width200 {
328
- :deep(.ant-btn) {
329
- max-width: 200px !important;
330
- }
331
- }
332
- // button-left样式 - 按钮从左到右排列
333
- &.h-buttons-button-left {
334
- :deep(.ant-btn-group) {
335
- justify-content: flex-start;
336
- gap: 12px;
337
- }
338
- }
339
- // button-center样式 - 按钮居中排列
340
- &.h-buttons-button-center {
341
- :deep(.ant-btn-group) {
342
- justify-content: center;
343
- gap: 12px;
344
- }
345
- }
346
- // button-right样式 - 按钮从右到左排列
347
- &.h-buttons-button-right {
348
- :deep(.ant-btn-group) {
349
- justify-content: flex-end;
350
- gap: 12px;
351
- }
352
- }
353
- // button-space-between样式 - 按钮两端对齐(两个按钮时分布在两端)
354
- &.h-buttons-button-space-between {
355
- :deep(.ant-btn-group) {
356
- justify-content: space-between;
357
- }
358
- }
359
-
360
- // button-icon-tiles样式 - 左侧彩色图标块 + 右侧文字
361
- &.h-buttons-button-icon-tiles {
362
- :deep(.ant-btn-group) {
363
- width: 100%;
364
- display: flex;
365
- flex-wrap: wrap; // 允许自动换行
366
- justify-content: flex-start; // 左对齐
367
- gap: 0; // 取消统一间距
368
-
369
- .ant-btn {
370
- position: relative;
371
- display: inline-flex;
372
- align-items: center;
373
- gap: 10px; // 控制图标与文字间距
374
- border: 1px solid #E6E8EB;
375
- font-size: 14px;
376
- height: 44px;
377
- padding: 0 10px 0 10px;
378
- border-radius: 8px;
379
- min-width: 116px;
380
- box-shadow: 0 2px 0 rgba(0,0,0,0.02);
381
- margin-right: 12px; // 用margin控制横向间距,末尾一排自然换行
382
- }
383
-
384
- .ant-btn .anticon {
385
- width: 26px;
386
- height: 26px;
387
- display: inline-flex;
388
- align-items: center;
389
- justify-content: center;
390
- border-radius: 6px;
391
- color: #fff;
392
- font-size: 14px;
393
- flex: 0 0 26px; // 固定正方形,防止随文本挤压变形
394
- box-sizing: border-box;
395
- }
396
-
397
- /* 默认蓝色,支持通过 data-type 改变色块(success/warning/error/default)*/
398
- .ant-btn .anticon { background: #3FA7FF; }
399
- .ant-btn[data-type='success'] .anticon { background: #34C76E; }
400
- .ant-btn[data-type='warning'] .anticon { background: #FFA940; }
401
- .ant-btn[data-type='error'] .anticon { background: #FF7875; }
402
- .ant-btn[disabled] .anticon { background: #BFBFBF; }
403
-
404
- /* 图标与文字间距在有图标时更自然 */
405
- .ant-btn > .anticon + span { margin-left: 10px; }
406
- }
407
- }
408
- // 水印图标与按钮容器布局调整
409
- &.h-buttons-button-watermark-icon {
410
- :deep(.watermark-icon) { transform: translate(-50%, -54%) !important; }
411
- :deep(.x-button) { display: flex !important; }
412
- :deep(.ant-btn-group) {
413
- margin: 0 auto;
414
- display: block;
415
- }
416
- }
417
- &.h-buttons-0padding-button {
418
- padding: 0px 4px;
419
- }
420
- // button25样式 用于会诊申请侧边栏按钮样式
421
- &.h-buttons-button25 {
422
- :deep(.x-buttons) {
423
- .ant-btn-group {
424
- width: 173px;
425
- justify-content: space-between;
426
-
427
- .ant-btn {
428
- width: 173px;
429
- }
430
- }
431
- }
432
- }
433
- &.h-buttons-button_refresh {
434
- margin-top: 10px;
435
- }
436
- // 居中样式 用于门诊收费左侧按钮样式(三个按钮居中样式)
437
- &.h-buttons-out-button {
438
- :deep(.x-buttons) {
439
- margin-top: 2px !important;
440
- margin-bottom: 10px !important;
441
- display: flex;
442
- justify-content: center;
443
- .ant-btn-group {
444
- display: flex;
445
- flex-wrap: nowrap;
446
- gap: 12px;
447
- .ant-btn {
448
- width: 110px;
449
- height: 32px;
450
- border-radius: 6px;
451
- opacity: 1;
452
- background: #FFFFFF;
453
- box-sizing: border-box;
454
- border: 1px solid #9499A0;
455
- margin-right: 0px;
456
- /* 允许正常文本渲染,避免省略号导致的“变成点了” */
457
- font-family: "Source Han Sans";
458
- font-size: 16px;
459
- font-weight: normal;
460
- line-height: normal;
461
- color: #313131;
462
- }
463
- /* 还原子元素默认高度,避免文字被压缩成点 */
464
- }
465
- }
466
- }
467
- // button15样式 - 垂直排列的深色按钮组
468
- &.h-buttons-button15 {
469
- :deep(.x-buttons) {
470
- margin-top: -22px;
471
- .ant-btn-group {
472
- flex-direction: column; /* 按钮垂直排列 */
473
- display: flex; /* 启用flex布局 */
474
- gap: 6px; /* 按钮间距 */
475
- .ant-btn {
476
- border: none; /* 移除边框 */
477
- color: #FFFFFF; /* 字体颜色 */
478
- background-color: #0057FE; /* 背景色 */
479
- box-sizing: border-box; /* 盒模型 */
480
- left: 12px; /* 左偏移 */
481
- width: 280px; /* 宽度 */
482
- }
483
- }
484
- }
485
- }
486
- // button2样式
487
- &.h-buttons-button2 {
488
- :deep(.x-buttons) {
489
- margin: -20px 6px -20px 6px;
490
- .ant-btn-group {
491
- width: 100%;
492
- justify-content: space-between;
493
- display: flex; /* 确保flex布局 */
494
- flex-wrap: nowrap; /* 防止换行 */
495
- .ant-btn {
496
- border-radius: 6px; /* 边框圆角 */
497
- border: none; /* 移除边框 */
498
- flex: 0 0 46%; /* flex-grow: 0, flex-shrink: 0, flex-basis: 46% */
499
- min-width: 0; /* 覆盖可能的默认最小宽度 */
500
- font-size: 16px; /* 字体大小 */
501
- height: 32px; /* 高度 */
502
- color: #FFFFFF; /* 字体颜色 */
503
- background-color: #1890FF; /* 背景颜色 */
504
- }
505
- }
506
- }
507
- }
508
- // 与表单项内联使用时的垂直居中对齐样式
509
- &.h-buttons-form-inline {
510
- :deep(.ant-btn-group){
511
- height: 45px;
512
- display: flex;
513
- align-items: center;
514
- }
515
- }
516
- &.h-buttons-width173 {
517
- :deep(.ant-btn) {
518
- width: 173px !important;
519
- }
520
- }
521
- // 按钮无边框+无图标+无阴影
522
- &.h-button-no-style{
523
- :deep(.ant-btn) {
524
- border: 0px;
525
- .anticon{
526
- display: none;
527
- }
528
- }
529
- :deep(.ant-btn-primary){
530
- text-shadow: none;
531
- box-shadow: none;
532
- }
533
- }
534
- // 按钮组边距
535
- &.h-button-border{
536
- border: 1px solid #E5E9F0;
537
- border-radius: 6px;
538
- }
539
- // 按钮撑开整个容器
540
- &.h-buttons-fill-container{
541
- :deep(.x-buttons) {
542
- width: 100%;
543
- .ant-btn-group{
544
- width: 100%;
545
- .ant-btn{
546
- width: 100%;
547
- margin-right: 0px;
548
- }
549
- }
550
- }
551
- }
552
- &.h-buttons-one-button-style {
553
- margin: 0 !important;
554
- padding: 0 !important;
555
- :deep(.x-buttons) {
556
- margin: 0 !important;
557
- padding: 0 !important;
558
- .ant-btn-group {
559
- width: 100%;
560
- height: 32px;
561
- justify-content: space-between;
562
- display: flex;
563
- flex-wrap: nowrap;
564
- .ant-btn {
565
- width: 100%;
566
- margin-right: 0px !important;
567
- min-width: 100% !important;
568
- border-radius: 6px; /* 边框圆角 */
569
- font-size: 18px; /* 字体大小 */
570
- line-height: 26px;
571
- font-weight: bold;
572
- letter-spacing: 14px;
573
- height: 32px; /* 高度 */
574
- color: #FFFFFF; /* 字体颜色 */
575
- background: #0057FE;/* 背景颜色 */
576
- }
577
- }
578
- }
579
- }
580
- // no-boder-style样式 - 无边框样式
581
- &.h-buttons-no-boder-style {
582
- :deep(.ant-btn-group) {
583
- margin-left: -20px;
584
- .ant-btn {
585
- border: none !important;
586
- background: transparent !important;
587
- height: 23px;
588
- opacity: 1;
589
- font-family: "Source Han Sans";
590
- font-size: 16px;
591
- font-weight: normal;
592
- line-height: normal;
593
- letter-spacing: 0em;
594
- color: #313131;
595
- padding: 0;
596
- box-shadow: none;
597
- margin-right: 0;
598
- margin-left: 0;
599
-
600
- // 图标样式
601
- .anticon {
602
- height: 16px;
603
- width: 16px;
604
- opacity: 1;
605
- background: transparent;
606
- display: inline-flex;
607
- align-items: center;
608
- justify-content: center;
609
- color: #94979E;
610
- margin-right: 4px;
611
- }
612
-
613
- &:hover {
614
- background: transparent !important;
615
- color: #313131;
616
- }
617
-
618
- &:focus {
619
- background: transparent !important;
620
- color: #313131;
621
- }
622
- }
623
- }
624
- }
625
- // useStyle10样式 - 左侧蓝色圆点指示器样式,与HTab useStyle10效果一致
626
- &.h-buttons-useStyle10 {
627
- :deep(.ant-btn-group) {
628
- display: flex;
629
- flex-wrap: wrap;
630
- gap: 8px;
631
- margin-left: 0 !important;
632
- padding: 0 !important;
633
-
634
- .ant-btn {
635
- position: relative;
636
- background-color: transparent !important;
637
- border: none !important;
638
- border-radius: 0 !important;
639
- color: #313131;
640
- font-family: "Source Han Sans";
641
- font-size: 16px;
642
- font-weight: bold;
643
- line-height: normal;
644
- letter-spacing: 0em;
645
- font-feature-settings: "kern" on;
646
- font-variation-settings: "opsz" auto;
647
- width: auto;
648
- height: 40px;
649
- padding: 0 12px 6px 18px;
650
- text-align: center;
651
- margin-right: 0 !important;
652
- box-shadow: none !important;
653
- display: inline-flex;
654
- align-items: center;
655
- vertical-align: top;
656
- outline: none !important;
657
- background: transparent !important;
658
- background-image: none !important;
659
- border-color: transparent !important;
660
- border-width: 0 !important;
661
-
662
- &::before {
663
- content: "" !important;
664
- position: absolute !important;
665
- left: 5px !important;
666
- top: 50% !important;
667
- transform: translateY(-50%) !important;
668
- width: 8px !important;
669
- height: 8px !important;
670
- background-color: #1890ff !important;
671
- background-image: none !important;
672
- border-radius: 50% !important;
673
- display: block !important;
674
- z-index: 10 !important;
675
- pointer-events: none !important;
676
- opacity: 1 !important;
677
- mix-blend-mode: normal !important;
678
- box-shadow: none !important;
679
- filter: none !important;
680
- -webkit-filter: none !important;
681
- }
682
-
683
- .anticon {
684
- display: none !important;
685
- }
686
- }
687
-
688
- // 激活状态:通过 h-btn-active 类控制
689
- .ant-btn.h-btn-active {
690
- color: #0057FE !important;
691
- }
692
- }
693
- }
694
- // 自定义图标边框样式
695
- &.h-buttons-custom-icon-style {
696
- :deep(.x-buttons) {
697
- .ant-btn-group {
698
- width: 100%;
699
- justify-content: space-between;
700
- display: flex;
701
- flex-wrap: nowrap;
702
-
703
- .ant-btn {
704
- width: 100%;
705
- margin-right: 0px !important;
706
- min-width: 100% !important;
707
- height: 32px;
708
- border-radius: 6px;
709
- opacity: 1;
710
- background: #FFFFFF;
711
- box-sizing: border-box;
712
- border: 1px solid #9499A0;
713
- font-family: "Source Han Sans";
714
- font-size: 16px;
715
- font-weight: normal;
716
- line-height: normal;
717
- letter-spacing: 0em;
718
- color: #313131;
719
- display: inline-flex;
720
- align-items: center;
721
- justify-content: center;
722
- gap: 8px;
723
-
724
- .anticon {
725
- width: 18px;
726
- height: 18px;
727
- opacity: 1;
728
- background: #0057FE;
729
- border-radius: 50%;
730
- display: inline-flex;
731
- align-items: center;
732
- justify-content: center;
733
- position: relative;
734
- flex-shrink: 0;
735
-
736
- > svg,
737
- > i {
738
- display: none !important;
739
- }
740
-
741
- &::before {
742
- content: "+";
743
- position: absolute;
744
- color: #FFFFFF;
745
- font-size: 18px;
746
- font-weight: bold;
747
- line-height: 1;
748
- }
749
- }
750
- }
751
- }
752
- }
753
- }
754
- }
755
- </style>