vue2-client 1.16.48 → 1.16.49

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 (39) hide show
  1. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926145434.vue +641 -0
  2. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926145453.vue +641 -0
  3. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926145610.vue +647 -0
  4. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926145629.vue +647 -0
  5. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926145901.vue +645 -0
  6. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926145907.vue +651 -0
  7. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926145920.vue +651 -0
  8. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926150047.vue +651 -0
  9. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926151820.vue +646 -0
  10. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926151827.vue +646 -0
  11. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926152115.vue +646 -0
  12. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926152212.vue +653 -0
  13. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926152215.vue +653 -0
  14. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926152337.vue +657 -0
  15. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926152341.vue +657 -0
  16. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926152826.vue +657 -0
  17. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926152828.vue +646 -0
  18. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926153121.vue +654 -0
  19. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926153242.vue +654 -0
  20. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926153318.vue +646 -0
  21. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926153415.vue +646 -0
  22. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926153435.vue +655 -0
  23. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926153606.vue +655 -0
  24. package/.history/src/base-client/components/common/XDataCard/XDataCard_20250926153653.vue +655 -0
  25. package/package.json +1 -1
  26. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +1178 -1178
  27. package/src/base-client/components/common/XDataCard/XDataCard.vue +44 -18
  28. package/src/base-client/components/common/XDataCard/test.vue +367 -0
  29. package/src/pages/WorkflowDetail/WorkFlowDemo3.vue +225 -203
  30. package/src/router/async/router.map.js +1 -4
  31. package/src/services/api/common.js +2 -0
  32. package/src/assets/img/paymentMethod/icon1.png +0 -0
  33. package/src/assets/img/paymentMethod/icon2.png +0 -0
  34. package/src/assets/img/paymentMethod/icon3.png +0 -0
  35. package/src/assets/img/paymentMethod/icon4.png +0 -0
  36. package/src/assets/img/paymentMethod/icon5.png +0 -0
  37. package/src/assets/img/paymentMethod/icon6.png +0 -0
  38. package/src/base-client/components/common/XReport/XReportHospitalizationDemo.vue +0 -45
  39. package/src/base-client/components/his/XCharge/testConfig.js +0 -149
@@ -0,0 +1,657 @@
1
+ <template>
2
+ <div>
3
+ <div v-if="render" class="XCard">
4
+ <template v-for="(card, itemIndex) in data">
5
+ <a-card
6
+ :key="'card' + itemIndex"
7
+ class="data-card"
8
+ :class="{ 'card-clicked': card.isClicked }"
9
+ :headStyle="{ backgroundColor: '#f9f9f9' }"
10
+ >
11
+ <div
12
+ v-if="config && card[config.ribbon]"
13
+ class="ribbon"
14
+ :style="{ backgroundColor: getRibbonColor(card[config.ribbonColor]) }">
15
+ {{ card[config.ribbon] }}
16
+ </div>
17
+ <!-- 自定义标题 -->
18
+ <template #title>
19
+ <div class="custom-title" @click="cardClick(card, 'cardclick', itemIndex)">
20
+ <a-tooltip placement="top">
21
+ <template #title>{{ card[config.id] }}</template>
22
+ <div class="title-id" v-if="card[config.id]">{{ card[config.id] }}</div>
23
+ </a-tooltip>
24
+ <div class="title-basic">
25
+ <div class="title-main">
26
+ <span class="title-name">{{ card[config.title] }}</span>
27
+ <span class="title-info">{{ card[config.title2] }}</span>
28
+ <span class="title-title3">{{ card[config.title3] }}</span>
29
+ </div>
30
+ <div class="additional-info" v-if="card[config.subtitle2] || card[config.subtitle3] || card[config.subtitle4]">
31
+ <a-tooltip placement="top" v-if="card[config.subtitle2]">
32
+ <template #title>{{ card[config.subtitle2] }}</template>
33
+ <span class="subtitle2">{{ card[config.subtitle2] }}</span>
34
+ </a-tooltip>
35
+ <a-tooltip placement="top" v-if="card[config.subtitle3]">
36
+ <template #title>{{ card[config.subtitle3] }}</template>
37
+ <span class="subtitle3">{{ card[config.subtitle3] }}</span>
38
+ </a-tooltip>
39
+ <span class="subtitle4" v-if="card[config.subtitle4]">{{ card[config.subtitle4] }}</span>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </template>
44
+ <!-- 主体 -->
45
+ <div class="body" v-if="card[config.text] || (config.content && config.content.length > 0)">
46
+ <div class="body-text" v-if="card[config.text]">
47
+ <a-tooltip :title="card[config.text]">
48
+ <span class="text-ellipsis">{{ card[config.text] }}</span>
49
+ </a-tooltip>
50
+ </div>
51
+ <template v-for="(item, bodyIndex) in config.content" v-if="bodyIndex < 6">
52
+ <div :key="'body' + bodyIndex" class="body-item">
53
+ <span class="body-item-label">{{ item.label }}:</span>
54
+ <template v-if="item.type === 'progress'">
55
+ <div class="progress">
56
+ <div class="progress-bar">
57
+ <div class="progress-done" :style="'width:' + card[item.key] * 100 + '%;backgroundColor: ' + determineRatioColor(card[item.key] * 100)"></div>
58
+ </div>
59
+ </div>
60
+ <a-progress :percent="card[item.key]" :stroke-color="{ '0%': '#108ee9', '100%': '#87d068' }" strokeWidth="10" :style="{ width: '95%' }" />
61
+ </template>
62
+ <template v-else-if="item.type === 'custom' && tableColumns">
63
+ <!-- 根据 tableColumns 显示自定义内容 -->
64
+ <span v-for="column in tableColumns" v-if="column.dataIndex === item.key" :key="column.dataIndex">
65
+ <template v-if="column.slotType === 'badge'">
66
+ <x-badge
67
+ :service-name="serviceName"
68
+ :env="env"
69
+ :dataCard="true"
70
+ :badge-key="column.slotKeyMap"
71
+ :value="card[item.key]" />
72
+ </template>
73
+ <template v-else>
74
+ <slot :name="column.slots.customRender">{{ card[item.key] }}</slot>
75
+ </template>
76
+ </span>
77
+ </template>
78
+ <template v-else>
79
+ <span class="body-item-value" style="float: right;">{{ card[item.key] }}</span>
80
+ </template>
81
+ </div>
82
+ <a-divider
83
+ v-if="bodyIndex !== config.content.length - 1"
84
+ dashed
85
+ :key="'body' + bodyIndex + 'after'"
86
+ class="body-split" />
87
+ </template>
88
+ </div>
89
+ <!-- 下方按钮 -->
90
+ <template #actions>
91
+ <div class="custom-actions" v-if="config && config.footer && config.footer.length > 0">
92
+ <template v-for="(item, footerIndex) in config.footer">
93
+ <div :key="'footer_' + footerIndex" class="footer-item" @click="clickFooter(card, item.emit, itemIndex)">
94
+ <a-icon :type="item.icon" class="footer-icon" />
95
+ <span>{{ item.label }}</span>
96
+ </div>
97
+ <a-divider
98
+ v-if="footerIndex !== config.footer.length - 1"
99
+ :key="'footer_' + footerIndex + 'after'"
100
+ type="vertical"
101
+ class="footer-item-split" />
102
+ </template>
103
+ </div>
104
+ </template>
105
+ </a-card>
106
+ </template>
107
+ </div>
108
+ <div v-else>
109
+ <a-skeleton />
110
+ </div>
111
+ <div v-if="this.showPagination">
112
+ <a-divider />
113
+ <a-pagination
114
+ v-model="pageNum"
115
+ style="float: right"
116
+ :total="total"
117
+ show-less-items
118
+ :page-size="pageSize"
119
+ :page-size-options="pageSizeOptions"
120
+ show-size-changer
121
+ @change="pageNumChange"
122
+ :showTotal="paginationShowTotal"
123
+ @showSizeChange="pageSizeChange">
124
+ </a-pagination>
125
+ </div>
126
+ </div>
127
+ </template>
128
+
129
+ <script>
130
+ import XBadge from '@vue2-client/base-client/components/common/XBadge'
131
+
132
+ export default {
133
+ name: 'XDataCard',
134
+ components: {
135
+ XBadge,
136
+ },
137
+ props: {
138
+ // 卡片数据更新方法
139
+ cardData: {
140
+ type: Function,
141
+ default: undefined
142
+ },
143
+ // 卡片的配置
144
+ cardConfig: {
145
+ type: Object,
146
+ default: undefined
147
+ },
148
+ showPagination: {
149
+ type: Boolean,
150
+ default: false
151
+ },
152
+ // 临时
153
+ testData: {
154
+ type: Array,
155
+ default: undefined
156
+ },
157
+ tableColumns: {
158
+ type: Array,
159
+ default: undefined
160
+ },
161
+ // 服务名称
162
+ serviceName: undefined,
163
+ // 当前环境
164
+ env: {
165
+ type: String,
166
+ default: 'prod'
167
+ },
168
+ // pageSize参数
169
+ prePageSize: {
170
+ type: Number,
171
+ default: undefined
172
+ },
173
+ // 初始是否加载数据
174
+ createdQuery: {
175
+ type: Boolean,
176
+ default: false
177
+ }
178
+ },
179
+ inject: ['getConfigByName'],
180
+ data () {
181
+ return {
182
+ // 配置
183
+ config: {},
184
+ // 数据
185
+ data: {},
186
+ // 当前页码
187
+ pageNum: 1,
188
+ // 控制渲染
189
+ render: true,
190
+ // 分页大小
191
+ pageSize: 10,
192
+ // 分页大小选项
193
+ pageSizeOptions: ['4', '6', '8', '10'],
194
+ // 数据总数
195
+ total: 0,
196
+ activeCardIndex: null, // 新增:记录当前激活的卡片索引
197
+ // 混入插槽组件的数据
198
+ mixinData: {},
199
+ }
200
+ },
201
+ created () {
202
+ // 根据参数初始化数据值
203
+ if (this.prePageSize) {
204
+ this.pageSize = this.prePageSize
205
+ }
206
+ },
207
+ mounted () {
208
+ // 配置初始化
209
+ if (this.cardConfig) {
210
+ this.config = this.cardConfig
211
+ } else {
212
+ this.config = {
213
+ id: '未获取到配置',
214
+ title: '未获取到配置',
215
+ title2: '未获取到配置',
216
+ title3: '未获取到配置',
217
+ subtitle2: '未获取到配置',
218
+ subtitle3: '未获取到配置',
219
+ subtitle4: '未获取到配置',
220
+ text: '未获取到配置',
221
+ ribbon: '未获取到配置',
222
+ ribbonColor: '未获取到配置',
223
+ content: [
224
+ {
225
+ label: '未获取到配置',
226
+ key: 'one'
227
+ },
228
+ {
229
+ label: '未获取到配置',
230
+ key: 'two'
231
+ },
232
+ {
233
+ label: '未获取到配置',
234
+ key: 'three'
235
+ },
236
+ {
237
+ label: '未获取到配置',
238
+ key: 'four'
239
+ },
240
+ {
241
+ label: '未获取到配置',
242
+ key: 'five'
243
+ },
244
+ {
245
+ label: '未获取到配置',
246
+ key: 'six',
247
+ type: 'progress'
248
+ }
249
+ ],
250
+ footer: [
251
+ {
252
+ icon: 'edit',
253
+ label: '未获取到配置',
254
+ emit: 'planEdit'
255
+ },
256
+ {
257
+ icon: 'user',
258
+ label: '未获取到配置',
259
+ emit: 'user'
260
+ }
261
+ ]
262
+ }
263
+ console.warn(this.config)
264
+ }
265
+
266
+ // 数据初始化
267
+ if (this.cardData) {
268
+ // if (this.createdQuery) {
269
+ // this.loadData()
270
+ // }
271
+ } else {
272
+ this.data = {
273
+ one: '未获取到配置',
274
+ two: '未获取到配置',
275
+ three: '未获取到配置',
276
+ four: '未获取到配置',
277
+ five: '未获取到配置',
278
+ six: 70,
279
+ }
280
+ }
281
+ // 测试数据初始化
282
+ if (this.testData) {
283
+ this.data = this.testData
284
+ }
285
+ },
286
+ methods: {
287
+ // 根据比例计算出颜色
288
+ determineRatioColor (ratio, isNum = false) {
289
+ let result
290
+ // 如果是数字,并且比例大于79,则将数字显示为黑色
291
+ if (isNum && ratio > 79) {
292
+ return 'rgb(0,0,0)'
293
+ }
294
+ if (ratio >= 90) {
295
+ result = 'rgb( 1,245, 38 )'
296
+ } else if (ratio >= 75) {
297
+ result = 'rgb( 139,245, 0)'
298
+ } else if (ratio >= 40) {
299
+ result = 'rgb(245,163, 0)'
300
+ } else if (ratio >= 20) {
301
+ result = 'rgb(244, 96, 0)'
302
+ } else {
303
+ result = 'rgb(255, 0, 0)'
304
+ }
305
+ return result
306
+ },
307
+ async cardClick (card, itemIndex) {
308
+ try {
309
+ // 等待 beforeSwitch 完全执行完成
310
+ const result = await this.beforeSwitch(card, 'beforeSwitch', itemIndex)
311
+ // 如果返回 undefined 说明没有监听器,或者返回 true 说明检查通过
312
+ if (result === undefined || result === true) {
313
+ await this.clickFooter(card, 'cardclick', itemIndex)
314
+ }
315
+ } catch (error) {
316
+ }
317
+ },
318
+ // 点击按钮
319
+ async clickFooter (data, eventName, index) {
320
+ if (eventName === 'cardclick') {
321
+ // 清除所有卡片的点击状态
322
+ if (this.data && Array.isArray(this.data)) {
323
+ this.data.forEach(item => {
324
+ if (item.isClicked) {
325
+ this.$set(item, 'isClicked', false)
326
+ }
327
+ })
328
+ }
329
+ // 设置当前卡片的点击状态
330
+ this.$set(data, 'isClicked', true)
331
+ }
332
+ this.$emit('cardEmit', data, eventName)
333
+ },
334
+ async beforeSwitch (data, eventName, index) {
335
+ return new Promise((resolve) => {
336
+ // 检查是否有其他卡片已经被点击
337
+ const hasClickedCard = this.data.some(item => item.isClicked)
338
+ // 如果没有任何卡片被点击过,直接通过
339
+ if (!hasClickedCard) {
340
+ resolve(true)
341
+ return
342
+ }
343
+ // 检查是否有监听器
344
+ const hasListeners = this._events?.cardEmit?.length > 0
345
+
346
+ // 如果没有监听器,返回 undefined 表示继续执行
347
+ if (!hasListeners) {
348
+ resolve(undefined)
349
+ return
350
+ }
351
+ // 如果有监听器,执行事件检查
352
+ try {
353
+ this.$emit('cardEmit', data, eventName)
354
+ resolve(true)
355
+ } catch (error) {
356
+ resolve(false)
357
+ }
358
+ })
359
+ },
360
+ // 获取数据
361
+ loadData () {
362
+ this.render = false
363
+ const parameter = Object.assign({
364
+ querySummary: false, // 分页查询的情况不重新获取汇总数据
365
+ pageNo: this.pageNum,
366
+ pageSize: this.pageSize
367
+ }
368
+ )
369
+ this.cardData(parameter).then(res => {
370
+ this.data = res.data
371
+ this.total = res.totalCount
372
+ this.render = true
373
+ })
374
+ },
375
+ // 页码改变
376
+ pageNumChange (page, pageSize) {
377
+ this.pageNum = page
378
+ this.pageSize = pageSize
379
+ this.loadData()
380
+ },
381
+ // 分页大小改变
382
+ pageSizeChange (current, pageSize) {
383
+ this.pageSize = pageSize
384
+ this.loadData()
385
+ },
386
+ // 刷新
387
+ refresh () {
388
+ this.loadData()
389
+ },
390
+ // 分页前展示当前项和总数
391
+ paginationShowTotal () {
392
+ return `${(this.pageNum - 1) * this.pageSize + 1 } - ${ this.pageNum * this.pageSize } | 共 ${ this.total } 项`
393
+ },
394
+ getRibbonColor (color) {
395
+ switch (color) {
396
+ case 'red':
397
+ return '#ff4d4f'
398
+ case 'blue':
399
+ return '#1890ff'
400
+ case 'yellow':
401
+ return '#fadb14'
402
+ default:
403
+ return '#ff4d4f' // 默认红色
404
+ }
405
+ }
406
+ }
407
+ }
408
+ </script>
409
+
410
+ <style lang="less" scoped>
411
+ .hide-page-numbers /deep/ .ant-pagination-item,
412
+ .hide-page-numbers /deep/ .ant-pagination-jump-next {
413
+ display: none !important; /* 隐藏数字页码和多页跳转 */
414
+ }
415
+ .hide-page-numbers /deep/ .ant-pagination-prev,
416
+ .hide-page-numbers /deep/ .ant-pagination-next {
417
+ display: inline-block !important; /* 保留左右跳转按钮 */
418
+ }
419
+
420
+ .XCard {
421
+ display: flex;
422
+ flex-wrap: wrap;
423
+ justify-content: flex-start;
424
+ overflow-y: auto;
425
+ overflow-x: hidden;
426
+ max-height: 85vh;
427
+ .data-card {
428
+ flex: 0 0 20%;
429
+ max-width: 20%;
430
+ box-sizing: border-box;
431
+ border: 2px solid rgb(244,244,244);
432
+ border-radius: 5px;
433
+ margin: 0;
434
+ overflow: hidden;
435
+
436
+ ::v-deep .ant-card-body {
437
+ padding: 15px !important; // 使用 !important 确保样式覆盖
438
+ }
439
+ ::v-deep .ant-card-head {
440
+ padding: 0 15px !important;
441
+ }
442
+ ::v-deep .ant-card-head-title {
443
+ padding: 12px 0 !important;
444
+ margin: 0 !important;
445
+ }
446
+ ::v-deep .ant-card-head-wrapper {
447
+ padding: 0 !important;
448
+ }
449
+
450
+ .header {
451
+ width: 100%;
452
+ background-color: rgb(244,244,244);
453
+ padding: 5px 15px;
454
+
455
+ span {
456
+ font-weight: bold;
457
+ font-size: 1.1em;
458
+ }
459
+ }
460
+
461
+ .body {
462
+ .body-text{
463
+ width: 500px;
464
+ font-weight: bold;
465
+ font-size: 1.1em;
466
+ .text-ellipsis{
467
+ display: inline-block;
468
+ max-width: 260px; /* 控制文本的最大宽度 */
469
+ white-space: nowrap;
470
+ overflow: hidden;
471
+ text-overflow: ellipsis;
472
+ }
473
+ }
474
+
475
+ .body-item {
476
+ padding: 3px 5px;
477
+ }
478
+
479
+ .body-split {
480
+ margin: 1px 0;
481
+ }
482
+
483
+ .body-item-label {
484
+ color: rgba(117, 117, 117, 0.8);
485
+ font-size: 0.95em;
486
+ }
487
+
488
+ .body-item-value {
489
+ color: black;
490
+ }
491
+
492
+ .progress {
493
+ display: inline-block;
494
+ width: 60%;
495
+ height: 60%;
496
+ float: right;
497
+ padding-right: 1.5%;
498
+ margin-top: 0.5%;
499
+
500
+ .progress-bar {
501
+ width: 100%;
502
+ height: 90%;
503
+ display: inline-block;
504
+ border-radius: 10%;
505
+ background-color: rgba(212,217,218, 0.6);
506
+
507
+ .progress-done {
508
+ float: left;
509
+ display: inline-block;
510
+ height: 100%;
511
+ border-radius: 10%;
512
+ }
513
+ }
514
+ }
515
+ .progress-num {
516
+ position: relative;
517
+ top: -83%;
518
+ left: -3%;
519
+ text-align: end;
520
+ font-size: 0.9em;
521
+ color: black;
522
+ }
523
+ }
524
+
525
+ &.card-clicked {
526
+ :deep(.ant-card-head) {
527
+ background-color: #e6f7ff;
528
+ transition: background-color 0.3s ease;
529
+ }
530
+ }
531
+ }
532
+
533
+ .custom-title {
534
+ display: flex;
535
+ align-items: center;
536
+ gap: 12px;
537
+ padding-left: 5px; // 与 .body-item 左内边距(5px)对齐
538
+
539
+ &:hover {
540
+ cursor: pointer;
541
+ }
542
+
543
+ .title-id {
544
+ flex-shrink: 0;
545
+ width: 65px;
546
+ color: #1890ff;
547
+ font-size: 16px;
548
+ font-weight: bold;
549
+ padding: 4px 8px;
550
+ border: 1px solid #1890ff;
551
+ border-radius: 4px;
552
+ line-height: 1.4;
553
+ text-align: center;
554
+ white-space: nowrap;
555
+ overflow: hidden;
556
+ text-overflow: ellipsis;
557
+ }
558
+
559
+ .title-basic {
560
+ display: flex;
561
+ flex-direction: column;
562
+ flex-grow: 1;
563
+
564
+ .subtitle2, .subtitle3 {
565
+ display: inline-block;
566
+ max-width: 50px; /* 固定宽度 */
567
+ white-space: nowrap;
568
+ overflow: hidden;
569
+ text-overflow: ellipsis;
570
+ }
571
+
572
+ .title-main {
573
+ display: flex;
574
+ align-items: center;
575
+ gap: 8px;
576
+ .title-info {
577
+ margin-left: 6px;
578
+ color: #808080;
579
+ }
580
+ .title-name {
581
+ font-weight: bold;
582
+ }
583
+ .title-title3 {
584
+ color: #808080;
585
+ }
586
+ }
587
+
588
+ .additional-info {
589
+ display: flex;
590
+ gap: 8px;
591
+ font-size: 13px;
592
+ color: #808080;
593
+ .subtitle4 {
594
+ color: rgba(0, 0, 255, 0.8);
595
+ }
596
+ }
597
+ }
598
+ }
599
+
600
+ .ribbon {
601
+ position: absolute;
602
+ top: 16px;
603
+ right: -6px;
604
+ background-color: #ff4d4f;
605
+ color: white;
606
+ padding: 5px 25px;
607
+ font-size: 12px;
608
+ transform: rotate(45deg) translateX(30%);
609
+ transform-origin: top right;
610
+ z-index: 1;
611
+ }
612
+
613
+ .custom-actions {
614
+ display: flex;
615
+ align-items: center;
616
+ justify-content: space-between;
617
+ width: 100%;
618
+ .footer-icon {
619
+ margin-right: 5px;
620
+ }
621
+
622
+ .footer-item-split {
623
+ color: rgba(220, 220, 220, 0.59);
624
+ }
625
+
626
+ .footer-item {
627
+ color: rgba(117, 117, 117, 0.8);
628
+ font-size: 1em;
629
+ white-space: nowrap;
630
+ display: inline-flex;
631
+ align-items: center;
632
+ justify-content: center;
633
+ flex: 1 1 0;
634
+ min-width: 0;
635
+ }
636
+
637
+ .footer-item:hover {
638
+ color: rgb( 24,144,255 );
639
+ cursor: pointer;
640
+ }
641
+ :deep(.ant-divider-vertical) {
642
+ height: 24px;
643
+ border-left: 1px solid rgba(220, 220, 220, 0.59);
644
+ top: 0;
645
+ margin: 0 8px;
646
+ }
647
+ }
648
+ }
649
+
650
+ .ellipsis {
651
+ display: inline-block;
652
+ max-width: 60px;
653
+ white-space: nowrap;
654
+ overflow: hidden;
655
+ text-overflow: ellipsis;
656
+ }
657
+ </style>