vue2-client 1.18.8 → 1.18.9

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 (24) hide show
  1. package/package.json +1 -1
  2. package/src/assets/svg/female.svg +1 -1
  3. package/src/assets/svg/male.svg +1 -1
  4. package/src/base-client/components/common/HIS/HButtons/HButtons.vue +491 -491
  5. package/src/base-client/components/common/HIS/HForm/HForm.vue +32 -10
  6. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  7. package/src/base-client/components/common/HIS/HTab/HTab.vue +443 -443
  8. package/src/base-client/components/common/XCollapse/XCollapse.vue +830 -830
  9. package/src/base-client/components/common/XFormTable/XFormTable.vue +4 -2
  10. package/src/base-client/components/common/XFormTable/demo.vue +2 -2
  11. package/src/base-client/components/common/XInput/XInput.vue +12 -6
  12. package/src/base-client/components/common/XTable/CustomFuncCel.vue +1 -6
  13. package/src/base-client/components/common/XTimeline/XTimeline.vue +477 -477
  14. package/src/base-client/components/his/HChart/HChart.vue +7 -11
  15. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +44 -78
  16. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  17. package/src/base-client/components/his/XList/XList.vue +938 -938
  18. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +354 -354
  19. package/src/base-client/components/his/XTitle/XTitle.vue +314 -314
  20. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  21. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  22. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  23. package/src-base-client/components/common/HIS/HForm/HForm.vue +347 -0
  24. package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
@@ -378,7 +378,6 @@ const presetResolvers = {
378
378
  symbol: 'circle',
379
379
  data: seriesData.map((point, idx) => ({
380
380
  value: point.value,
381
- label: point.label,
382
381
  symbolSize: point.symbolSize,
383
382
  itemStyle: point.itemStyle,
384
383
  label: {
@@ -471,19 +470,19 @@ const generateColorGradient = (baseColor, count, fadeRatio = 0.15) => {
471
470
  if (count === 1) {
472
471
  return Array.isArray(baseColor) ? baseColor : [baseColor]
473
472
  }
474
-
473
+
475
474
  // 如果已经是数组且长度大于1,直接返回
476
475
  if (Array.isArray(baseColor) && baseColor.length > 1) {
477
476
  return baseColor
478
477
  }
479
-
478
+
480
479
  // 获取基础颜色(如果是数组,取第一个)
481
480
  const color = Array.isArray(baseColor) ? baseColor[0] : baseColor
482
-
481
+
483
482
  // 转换为 RGB
484
483
  const baseRgb = hexToRgb(color)
485
484
  const white = { r: 255, g: 255, b: 255 }
486
-
485
+
487
486
  // 生成渐变数组
488
487
  const colors = []
489
488
  for (let i = 0; i < count; i++) {
@@ -492,18 +491,16 @@ const generateColorGradient = (baseColor, count, fadeRatio = 0.15) => {
492
491
  colors.push(color)
493
492
  continue
494
493
  }
495
-
496
494
  // 计算混合比例:fadeRatio 控制每次变淡的比例(0-1之间,值越大变淡越快)
497
495
  const ratio = i * fadeRatio
498
496
  const mixRatio = Math.min(ratio, 0.9) // 最多混合到90%,避免完全变白
499
-
500
497
  const r = baseRgb.r + (white.r - baseRgb.r) * mixRatio
501
498
  const g = baseRgb.g + (white.g - baseRgb.g) * mixRatio
502
499
  const b = baseRgb.b + (white.b - baseRgb.b) * mixRatio
503
-
500
+
504
501
  colors.push(rgbToHex(r, g, b))
505
502
  }
506
-
503
+
507
504
  return colors
508
505
  }
509
506
 
@@ -671,7 +668,7 @@ const renderChart = () => {
671
668
  config,
672
669
  state: { activePointIndex: activePointIndex.value }
673
670
  })
674
-
671
+
675
672
  // 处理颜色配置:如果只有一个颜色,生成渐变数组
676
673
  let processedColor = config.options?.color
677
674
  if (processedColor) {
@@ -681,7 +678,6 @@ const renderChart = () => {
681
678
  processedColor = generateColorGradient(processedColor, dataCount)
682
679
  }
683
680
  }
684
-
685
681
  // 深度合并 series 配置
686
682
  let finalOptions = {
687
683
  legend: config.legend || {},
@@ -15,6 +15,7 @@
15
15
  <!-- 当有 layout 配置时使用 a-descriptions -->
16
16
  <template v-if="config && config.layout && !wrapperClassObject['xhdesc-medical-history']">
17
17
  <a-descriptions
18
+ :colon="getGlobalColon()"
18
19
  :column="config.layout"
19
20
  :size="(config && config.style && config.style.size)"
20
21
  :bordered="(config && config.style && config.style.bordered)"
@@ -24,14 +25,14 @@
24
25
  <a-descriptions-item
25
26
  v-for="(item) in visibleItemsFiltered"
26
27
  :key="item.field"
27
- :colon="item.colon !== false"
28
+ :colon="getItemColon(item)"
28
29
  :class="{ 'with-divider': item.isLine }">
29
30
  <template #label>
30
31
  <div :class="['label-wrapper', { 'with-avatar': item.showAvatar }]">
31
32
  <div v-if="item.showAvatar" class="gender-icon">
32
33
  <img :src="maleIcon" alt="male" class="gender-img" />
33
34
  </div>
34
- <span class="label-text">{{ item.label }}<template v-if="!wrapperClassObject['xhdesc-report-mode']">:</template></span>
35
+ <span class="label-text">{{ item.label }}</span>
35
36
  </div>
36
37
  </template>
37
38
  <a-tooltip
@@ -45,7 +46,6 @@
45
46
  :data-full-text="data[item.field]"
46
47
  >
47
48
  <template v-if="wrapperClassObject['xhdesc-report-mode']">
48
-
49
49
  <div class="report-value">
50
50
  {{ data[item.field] }}
51
51
  </div>
@@ -64,7 +64,6 @@
64
64
  :data-full-text="data[item.field]"
65
65
  >
66
66
  <template v-if="wrapperClassObject['xhdesc-report-mode']">
67
-
68
67
  <div class="report-value">
69
68
  {{ data[item.field] }}
70
69
  </div>
@@ -83,13 +82,14 @@
83
82
  <a-descriptions-item
84
83
  v-for="item in hiddenItemsFiltered"
85
84
  :key="item.field"
86
- :colon="item.colon !== false">
85
+ :colon="getItemColon(item)"
86
+ :class="{ 'with-divider': item.isLine }">
87
87
  <template #label>
88
88
  <div :class="['label-wrapper', { 'with-avatar': item.showAvatar }]">
89
89
  <div v-if="item.showAvatar" class="gender-icon">
90
90
  <img :src="maleIcon" alt="male" class="gender-img" />
91
91
  </div>
92
- <span class="label-text">{{ item.label }}<template v-if="!wrapperClassObject['xhdesc-report-mode']">:</template></span>
92
+ <span class="label-text">{{ item.label }}</span>
93
93
  </div>
94
94
  </template>
95
95
  <div
@@ -98,7 +98,6 @@
98
98
  :data-full-text="data[item.field]"
99
99
  >
100
100
  <template v-if="wrapperClassObject['xhdesc-report-mode']">
101
-
102
101
  <div class="report-value">
103
102
  {{ data[item.field] }}
104
103
  </div>
@@ -191,7 +190,7 @@
191
190
  <div v-if="item.showAvatar" class="gender-icon">
192
191
  <img :src="maleIcon" alt="male" class="gender-img" />
193
192
  </div>
194
- <span class="label-text">{{ item.label }}<template v-if="!wrapperClassObject['xhdesc-report-mode']">:</template></span>
193
+ <span class="label-text">{{ item.label }}</span>
195
194
  </div>
196
195
  <a-tooltip
197
196
  v-if="isContentOverflow(data[item.field])"
@@ -204,7 +203,6 @@
204
203
  :data-full-text="data[item.field]"
205
204
  >
206
205
  <template v-if="wrapperClassObject['xhdesc-report-mode']">
207
-
208
206
  <div class="report-value">
209
207
  {{ data[item.field] }}
210
208
  </div>
@@ -223,7 +221,6 @@
223
221
  :data-full-text="data[item.field]"
224
222
  >
225
223
  <template v-if="wrapperClassObject['xhdesc-report-mode']">
226
-
227
224
  <div class="report-value">
228
225
  {{ data[item.field] }}
229
226
  </div>
@@ -248,7 +245,7 @@
248
245
  <div v-if="item.showAvatar" class="gender-icon">
249
246
  <img :src="maleIcon" alt="male" class="gender-img" />
250
247
  </div>
251
- <span class="label-text">{{ item.label }}<template v-if="!wrapperClassObject['xhdesc-report-mode']">:</template></span>
248
+ <span class="label-text">{{ item.label }}</span>
252
249
  </div>
253
250
  <div
254
251
  class="content-wrapper"
@@ -256,7 +253,6 @@
256
253
  :data-full-text="data[item.field]"
257
254
  >
258
255
  <template v-if="wrapperClassObject['xhdesc-report-mode']">
259
-
260
256
  <div class="report-value">
261
257
  {{ data[item.field] }}
262
258
  </div>
@@ -310,7 +306,7 @@
310
306
  v-for="(item, ridx) in config.footer.rightItems"
311
307
  :key="item.field || ridx"
312
308
  class="footer-right-item">
313
- <div class="label-wrapper"><span class="label-text">{{ item.label }}:</span></div>
309
+ <div class="label-wrapper"><span class="label-text">{{ item.label }}</span></div>
314
310
  <div
315
311
  class="content-wrapper"
316
312
  :class="{ 'ellipsis': isContentOverflow(data[item.field]) }"
@@ -326,7 +322,7 @@
326
322
  v-for="(item, idx) in config.footer.items"
327
323
  :key="item.field || idx"
328
324
  class="description-item">
329
- <div class="label-wrapper"><span class="label-text">{{ item.label }}:</span></div>
325
+ <div class="label-wrapper"><span class="label-text">{{ item.label }}</span></div>
330
326
  <div
331
327
  class="content-wrapper"
332
328
  :class="{ 'ellipsis': isContentOverflow(data[item.field]) }"
@@ -343,7 +339,7 @@
343
339
  v-for="(item, ridx) in config.footer.rightItems"
344
340
  :key="item.field || ridx"
345
341
  class="footer-right-item">
346
- <div class="label-wrapper"><span class="label-text">{{ item.label }}:</span></div>
342
+ <div class="label-wrapper"><span class="label-text">{{ item.label }}</span></div>
347
343
  <div
348
344
  class="content-wrapper"
349
345
  :class="{ 'ellipsis': isContentOverflow(data[item.field]) }"
@@ -364,11 +360,10 @@ export default {
364
360
  name: 'XHDescriptions',
365
361
  data () {
366
362
  return {
367
- // 隐藏配置 当数据结果 = -1^ 该数据字段会被delete
368
363
  hiddenConfig: '-1^',
369
364
  data: null,
370
365
  config: null,
371
- showAllItems: false, // 控制是否显示所有标签
366
+ showAllItems: false,
372
367
  maleIcon: require('@vue2-client/assets/svg/male.svg')
373
368
  }
374
369
  },
@@ -385,7 +380,6 @@ export default {
385
380
  }
386
381
  },
387
382
  computed: {
388
- // 动态样式开关(与 HForm 思路一致):布尔开关 + size 派生类
389
383
  wrapperClassObject () {
390
384
  const attrs = this.$attrs || {}
391
385
  const classes = {}
@@ -408,15 +402,12 @@ export default {
408
402
  })
409
403
  const size = attrs.size
410
404
  if (size && typeof size === 'string') classes[`xhdesc-size-${size}`] = true
411
- // 展开态样式开关(用于 patient-style 动态高度)
412
405
  if (this.showAllItems && this.config && this.config.detailsConfig) classes['xhdesc-open'] = true
413
406
  return classes
414
407
  },
415
- // 获取详情按钮应该显示在第几个标签后
416
408
  detailsAfterIndex () {
417
409
  return (this.config && this.config.detailsConfig && this.config.detailsConfig.showAfterIndex) || 999
418
410
  },
419
- // 判断是否有更多标签需要显示
420
411
  hasMoreItems () {
421
412
  if (!(this.config && this.config.detailsConfig)) return false
422
413
  if (!this.data || !(this.config && this.config.items) || !Array.isArray(this.config.items)) return false
@@ -430,20 +421,17 @@ export default {
430
421
  }
431
422
  return false
432
423
  },
433
- // 获取应该显示的标签
434
424
  visibleItems () {
435
425
  if (!(this.config && this.config.items)) return []
436
426
  if (!(this.config && this.config.detailsConfig)) return this.config.items
437
427
  if (this.showAllItems) return this.config.items.slice(0, this.detailsAfterIndex)
438
428
  return this.config.items.slice(0, this.detailsAfterIndex)
439
429
  },
440
- // 获取隐藏的标签(保持原有逻辑)
441
430
  hiddenItems () {
442
431
  if (!(this.config && this.config.items)) return []
443
432
  if (!(this.config && this.config.detailsConfig)) return []
444
433
  return this.config.items.slice(this.detailsAfterIndex)
445
434
  },
446
- // 过滤后可直接渲染的可见项
447
435
  visibleItemsFiltered () {
448
436
  const list = this.visibleItems || []
449
437
  if (!this.data) return []
@@ -452,7 +440,6 @@ export default {
452
440
  const hiddenFields = new Set((this.hiddenItems || []).map(i => i.field))
453
441
  return res.filter(item => !hiddenFields.has(item.field))
454
442
  },
455
- // 过滤后可直接渲染的隐藏项(仅展开时使用)
456
443
  hiddenItemsFiltered () {
457
444
  const list = this.hiddenItems || []
458
445
  if (!this.data) return []
@@ -485,10 +472,24 @@ export default {
485
472
  toggleDetails () {
486
473
  this.showAllItems = !this.showAllItems
487
474
  },
488
- // 判断内容是否超过三行
489
475
  isContentOverflow (content) {
490
476
  if (!content || typeof content !== 'string') return false
491
477
  return content.length > 150
478
+ },
479
+ // 获取全局 colon 配置
480
+ getGlobalColon () {
481
+ if (this.config && this.config.style && this.config.style.colon !== undefined) {
482
+ return this.config.style.colon
483
+ }
484
+ return true // 默认显示冒号
485
+ },
486
+ // 获取单个 item 的 colon 配置
487
+ getItemColon (item) {
488
+ // 优先级:item配置 > 全局配置 > 默认true
489
+ if (item && item.colon !== undefined) {
490
+ return item.colon
491
+ }
492
+ return this.getGlobalColon()
492
493
  }
493
494
  },
494
495
  watch: {
@@ -502,10 +503,9 @@ export default {
502
503
  parameter: {
503
504
  handler (newValue, oldValue) {
504
505
  console.log('监听事件触发:', { old: oldValue, new: newValue })
505
- // 当 parameter 变化时重新获取数据
506
506
  this.getData(this.queryParamsName, {})
507
507
  },
508
- deep: true // 深度监听对象内部变化
508
+ deep: true
509
509
  }
510
510
  }
511
511
  }
@@ -558,8 +558,8 @@ export default {
558
558
 
559
559
  .label-text {
560
560
  white-space: nowrap;
561
- color: #313131; // 统一深灰
562
- text-decoration: none !important; // 移除下划线
561
+ color: #313131;
562
+ text-decoration: none !important;
563
563
  }
564
564
 
565
565
  .content-wrapper {
@@ -568,14 +568,14 @@ export default {
568
568
  margin-left: 4px;
569
569
  font-size: v-bind('(config && config.style && config.style.fontSize) || "14px"');
570
570
  color: rgba(0, 0, 0, 0.85);
571
- text-decoration: none !important; // 移除可能的下划线
571
+ text-decoration: none !important;
572
572
  max-width: 300px;
573
573
  overflow: hidden;
574
574
  text-overflow: ellipsis;
575
575
  white-space: nowrap;
576
576
  }
577
577
 
578
- /* 强制移除任何链接样式(如接口返回含 <a>) */
578
+ /* 强制移除任何链接样式 */
579
579
  ::v-deep a {
580
580
  color: #313131 !important;
581
581
  text-decoration: none !important;
@@ -597,13 +597,14 @@ export default {
597
597
  }
598
598
 
599
599
  .xhdesc-divider {
600
- width: calc(100% + 24px); /* 扩展到左右内边距之外 */
600
+ width: calc(100% + 24px);
601
601
  height: 0;
602
602
  border-bottom: 1px solid #E5E9F0;
603
- margin: 10px -12px 14px; /* 抵消左右 12px 内边距 */
603
+ margin: 10px -12px 14px;
604
604
  overflow: hidden;
605
605
  }
606
- /* medical-history 模式:左 padding 11px,右 12px(由外层设置),做精确抵消 */
606
+
607
+ /* medical-history 模式:左 padding 11px,右 12px */
607
608
  .patient-info-descriptions.xhdesc-medical-history .xhdesc-divider {
608
609
  width: calc(100% + 23px);
609
610
  margin-left: -11px;
@@ -617,8 +618,6 @@ export default {
617
618
  align-items: start; // 左上对齐
618
619
  }
619
620
 
620
- /* footer 区域的每项直接沿用通用 .description-item/.label-wrapper/.content-wrapper 样式 */
621
-
622
621
  .footer-right {
623
622
  margin-top: 8px;
624
623
  display: flex;
@@ -757,19 +756,16 @@ export default {
757
756
  .xhdesc-description {
758
757
  padding: 4px 4px 4px 4px;
759
758
 
760
- /* 作用域内 *patient-info-descriptions */
761
759
  &.patient-info-descriptions,
762
760
  .patient-info-descriptions {
763
761
  border: 1px solid #E5E9F0;
764
762
  border-radius: 6px;
765
763
  padding: 6.5px 12px;
766
764
 
767
- /* *ant-btn-link */
768
765
  ::v-deep .ant-btn-link {
769
766
  border: none;
770
767
  }
771
768
 
772
- /* *ant-descriptions-item-content */
773
769
  ::v-deep .ant-descriptions-item-content {
774
770
  font-weight: bold;
775
771
  }
@@ -777,7 +773,6 @@ export default {
777
773
  }
778
774
  /* 病患信息样式开关:patient-style */
779
775
  .xhdesc-patient-style {
780
- /* 移除固定高度,改用最小高度 */
781
776
  min-height: 41px;
782
777
  border-radius: 6px;
783
778
  opacity: 1;
@@ -786,8 +781,6 @@ export default {
786
781
  border: 0px solid #E5E9F0;
787
782
  padding-bottom: 0px !important;
788
783
  width: 100%;
789
-
790
- /* 添加响应式保障 */
791
784
  overflow: hidden;
792
785
 
793
786
  &.patient-info-descriptions,
@@ -795,34 +788,27 @@ export default {
795
788
  border: 0px solid #E5E9F0;
796
789
  border-radius: 6px;
797
790
  background: #FFFFFF;
798
- /* 移除固定高度 */
799
791
  min-height: 41px;
800
792
  display: flex;
801
793
  align-items: center;
802
- /* 允许flex换行 */
803
794
  flex-wrap: wrap;
804
- /* 添加内边距确保内容不贴边 */
805
795
  padding: 8px 12px;
806
796
 
807
- /* 标签字体(label):统一 16px,与值一致 */
808
797
  ::v-deep .label-wrapper .label-text {
809
798
  font-family: "Source Han Sans";
810
799
  font-size: 16px !important;
811
- font-weight: 400 !important; /* 确保不加粗 */
800
+ font-weight: 400 !important;
812
801
  line-height: 23px !important;
813
802
  letter-spacing: 0em;
814
803
  font-feature-settings: "kern" on;
815
804
  color: #5D5C5C;
816
- /* 确保标签不换行 */
817
805
  white-space: nowrap;
818
806
  }
819
807
 
820
- /* 头像与标签的间距 9px */
821
808
  ::v-deep .label-wrapper.with-avatar {
822
809
  gap: 9px;
823
810
  }
824
811
 
825
- /* 性别图标样式 */
826
812
  .gender-icon {
827
813
  margin-top: 2px;
828
814
  }
@@ -833,24 +819,20 @@ export default {
833
819
  display: inline-block;
834
820
  }
835
821
 
836
- /* 详情箭头在文字右侧:颜色、间距、方向(不旋转) */
837
822
  ::v-deep .detail-button-wrapper .ant-btn .anticon {
838
823
  margin-left: 4px;
839
824
  color: #94979E;
840
825
  opacity: 1;
841
826
  }
842
827
 
843
- /* 详情按钮文字字体规范 */
844
828
  ::v-deep .detail-button-wrapper .ant-btn,
845
829
  ::v-deep .detail-button-wrapper .ant-btn span {
846
830
  font-family: "Source Han Sans";
847
831
  font-size: 16px;
848
832
  color: #5D5C5C;
849
- /* 按钮不换行 */
850
833
  white-space: nowrap;
851
834
  }
852
835
 
853
- /* 值字体(content) */
854
836
  ::v-deep .ant-descriptions-item-content,
855
837
  ::v-deep .content-wrapper,
856
838
  .medical-history-text {
@@ -861,20 +843,16 @@ export default {
861
843
  letter-spacing: 0em;
862
844
  font-feature-settings: "kern" on;
863
845
  color: #5D5C5C;
864
- /* 允许内容换行 */
865
846
  word-break: break-word;
866
847
  }
867
848
 
868
- /* 描述项样式调整 */
869
849
  ::v-deep .ant-descriptions-item {
870
850
  padding-bottom: 4px;
871
- /* 确保项在换行时对齐 */
872
851
  display: flex;
873
852
  align-items: center;
874
853
  min-height: 32px;
875
854
  }
876
855
 
877
- /* 添加媒体查询应对更小屏幕 */
878
856
  @media (max-width: 768px) {
879
857
  padding: 6px 8px;
880
858
 
@@ -890,7 +868,7 @@ export default {
890
868
  }
891
869
  }
892
870
 
893
- /* 展开态:patient-style 自适应高度与顶部对齐,防止布局错乱 */
871
+ /* 展开态:patient-style 自适应高度 */
894
872
  .xhdesc-patient-style.xhdesc-open,
895
873
  .xhdesc-open .patient-info-descriptions.xhdesc-patient-style,
896
874
  .xhdesc-open .xhdesc-patient-style .patient-info-descriptions {
@@ -909,7 +887,6 @@ export default {
909
887
  padding: 0px;
910
888
  &.patient-info-descriptions,
911
889
  .patient-info-descriptions {
912
- /* *ant-descriptions-item-content */
913
890
  ::v-deep .descriptions-container {
914
891
  padding: 0px;
915
892
  }
@@ -953,15 +930,15 @@ export default {
953
930
 
954
931
  .medical-history-item.with-divider {
955
932
  position: relative;
956
- padding-bottom: 4px; /* 分割线与上方间距 4px */
957
- margin-bottom: 4px; /* 分割线与下方间距 4px */
933
+ padding-bottom: 4px;
934
+ margin-bottom: 4px;
958
935
  }
959
936
 
960
937
  .medical-history-item.with-divider::after {
961
938
  content: '';
962
939
  position: absolute;
963
940
  left: 0;
964
- bottom: 0; /* 贴合容器底部 */
941
+ bottom: 0;
965
942
  width: 100%;
966
943
  height: 0;
967
944
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
@@ -978,9 +955,7 @@ export default {
978
955
  text-indent: 0;
979
956
  padding-left: 0;
980
957
  margin-left: 0;
981
- /* 使用float实现真正的文本环绕 */
982
958
  overflow: hidden;
983
- /* 确保容器能够正确清除浮动 */
984
959
  position: relative;
985
960
  }
986
961
 
@@ -992,7 +967,6 @@ export default {
992
967
  white-space: nowrap;
993
968
  float: left;
994
969
  margin-right: 0px;
995
- /* 确保标签不会影响文本流 */
996
970
  position: relative;
997
971
  z-index: 1;
998
972
  }
@@ -1011,7 +985,6 @@ export default {
1011
985
  white-space: normal;
1012
986
  text-align: left;
1013
987
  line-height: 24px;
1014
- /* 确保文本能够正确环绕浮动元素 */
1015
988
  margin-top: 0;
1016
989
  margin-bottom: 0;
1017
990
  }
@@ -1035,21 +1008,18 @@ export default {
1035
1008
  -webkit-box-align: start;
1036
1009
  }
1037
1010
 
1038
- /* 使用-webkit-line-clamp时不需要手动添加省略号 */
1039
1011
  .medical-history-text.ellipsis::after {
1040
1012
  display: none;
1041
1013
  }
1042
1014
 
1043
- /* 针对多行文本的特殊处理:确保换行文本与首行对齐 */
1044
1015
  .medical-history-text.ellipsis::first-line {
1045
1016
  text-indent: 0;
1046
1017
  }
1047
1018
 
1048
- /* 为不支持-webkit-line-clamp的浏览器提供后备方案 */
1049
1019
  @supports not (-webkit-line-clamp: 3) {
1050
1020
  .medical-history-text.ellipsis {
1051
1021
  display: block;
1052
- max-height: 72px; /* 3行 * 24px行高 */
1022
+ max-height: 72px;
1053
1023
  overflow: hidden;
1054
1024
  position: relative;
1055
1025
  }
@@ -1065,15 +1035,13 @@ export default {
1065
1035
  }
1066
1036
  }
1067
1037
 
1068
- /* 医疗病史样式开关:通过 wrapperClassObject 添加类 xhdesc-medical-history */
1038
+ /* 医疗病史样式开关 */
1069
1039
  .patient-info-descriptions.xhdesc-medical-history {
1070
1040
  padding: 9px 12px 10px 11px !important;
1071
- /* 移除右侧空白(本模式不需要详情按钮预留空间) */
1072
1041
  .descriptions-container {
1073
1042
  padding-right: 0;
1074
1043
  padding-left: 0px;
1075
1044
  }
1076
- /* 医疗病史模式下:footer 区域使用与上方相同的医疗病史样式 */
1077
1045
  .medical-history-footer {
1078
1046
  width: 100%;
1079
1047
  }
@@ -1085,7 +1053,6 @@ export default {
1085
1053
  gap: 16px;
1086
1054
  width: 100%;
1087
1055
  }
1088
- /* 右侧(医生/医嘱日期)标签与值的字体要求 */
1089
1056
  .medical-history-footer .footer-right .label-wrapper .label-text {
1090
1057
  font-family: "Source Han Sans";
1091
1058
  font-size: 16px;
@@ -1126,6 +1093,7 @@ export default {
1126
1093
  text-align: right;
1127
1094
  }
1128
1095
  }
1096
+
1129
1097
  /* 加边框 */
1130
1098
  .xhdesc-border1 {
1131
1099
  &.patient-info-descriptions,
@@ -1138,7 +1106,6 @@ export default {
1138
1106
  .xhdesc-report-mode {
1139
1107
  &.patient-info-descriptions,
1140
1108
  .patient-info-descriptions {
1141
- /* *ant-descriptions-item-content */
1142
1109
  ::v-deep .flex-descriptions{
1143
1110
  gap: 2px;
1144
1111
  .description-item {
@@ -1164,6 +1131,5 @@ export default {
1164
1131
  text-align: end;
1165
1132
  }
1166
1133
  }
1167
-
1168
1134
  }
1169
1135
  </style>