vue2-client 1.16.80 → 1.16.82
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 +1 -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/common/HIS/HFormTable/HFormTable.vue +16 -1
- package/src/base-client/components/common/HIS/HTab/HTab.vue +16 -11
- package/src/base-client/components/common/XCollapse/XCollapse.vue +1 -1
- package/src/base-client/components/common/XInput/XInput.vue +25 -1
- package/src/base-client/components/common/XReport/XReportHospitalizationDemo.vue +45 -0
- package/src/base-client/components/his/XCheckbox/XCheckbox.vue +31 -2
- package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +115 -28
- package/src/base-client/components/his/XIcon/XIcon.vue +73 -73
- package/src/base-client/components/his/XIcon/index.js +3 -3
- package/src/base-client/components/his/XIcon/index.md +177 -177
- package/src/base-client/components/his/XRadio/XRadio.vue +17 -1
- package/src/base-client/components/his/XSidebar/XSidebar.vue +15 -14
- package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +72 -3
- package/src/base-client/components/his/XTitle/XTitle.vue +24 -2
- package/src/router/async/router.map.js +1 -2
- package/src-base-client/components/his/XCharge/README.md +0 -0
- package/src-base-client/components/his/XCharge/XCharge.vue +0 -0
- package/.npmignore +0 -21
- package/.serena/.npmignore +0 -1
- package/yarn.lock +0 -11468
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -20,7 +20,8 @@ const wrapperClassObject = computed(() => {
|
|
|
20
20
|
const booleanStyleKeys = [
|
|
21
21
|
'button-row-0margin',
|
|
22
22
|
'top-hidden',
|
|
23
|
-
'dialog-style'
|
|
23
|
+
'dialog-style',
|
|
24
|
+
'button-style'
|
|
24
25
|
]
|
|
25
26
|
for (const key of booleanStyleKeys) {
|
|
26
27
|
const val = a[key]
|
|
@@ -375,5 +376,19 @@ const isCustomPagination = computed(() => {
|
|
|
375
376
|
margin: 0px;
|
|
376
377
|
}
|
|
377
378
|
}
|
|
379
|
+
// crud按钮样式
|
|
380
|
+
&.h-form-table-button-style {
|
|
381
|
+
:deep(.ant-btn){
|
|
382
|
+
border-radius: 6px;
|
|
383
|
+
background-color: #FFFFFF;
|
|
384
|
+
border: 1px solid #9499A0;
|
|
385
|
+
color: #313131;
|
|
386
|
+
font-weight: normal;
|
|
387
|
+
letter-spacing: 0em;
|
|
388
|
+
font-size: 16px;
|
|
389
|
+
font-family: "Source Han Sans";
|
|
390
|
+
line-height: normal;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
378
393
|
}
|
|
379
394
|
</style>
|
|
@@ -129,13 +129,15 @@ defineExpose({
|
|
|
129
129
|
:deep(.ant-tabs-tab-next) {
|
|
130
130
|
display: none;
|
|
131
131
|
}
|
|
132
|
-
|
|
132
|
+
:deep(.ant-tabs-nav-wrap) {
|
|
133
|
+
margin-top: 18px !important;
|
|
134
|
+
margin-bottom: 0 !important;
|
|
135
|
+
}
|
|
133
136
|
:deep(.ant-tabs-nav) {
|
|
134
137
|
// 去除导航容器默认左右内边距,避免收缩时左侧多出一截
|
|
135
138
|
.ant-tabs-nav-container,
|
|
136
139
|
.ant-tabs-nav-scroll {
|
|
137
|
-
margin
|
|
138
|
-
margin-right: 0 !important;
|
|
140
|
+
margin: 0px;
|
|
139
141
|
}
|
|
140
142
|
|
|
141
143
|
// 移除左右切换箭头带来的占位
|
|
@@ -144,11 +146,9 @@ defineExpose({
|
|
|
144
146
|
display: none !important;
|
|
145
147
|
width: 0 !important;
|
|
146
148
|
}
|
|
147
|
-
|
|
148
149
|
.ant-tabs-tab-next-icon {
|
|
149
150
|
display: none;
|
|
150
151
|
}
|
|
151
|
-
|
|
152
152
|
.ant-tabs-tab {
|
|
153
153
|
background-color: transparent;
|
|
154
154
|
border-radius: 6px 6px 0 0;
|
|
@@ -156,26 +156,31 @@ defineExpose({
|
|
|
156
156
|
font-weight: bold;
|
|
157
157
|
width: 134px;
|
|
158
158
|
font-size: 18px;
|
|
159
|
-
line-height:
|
|
159
|
+
line-height: 26px;
|
|
160
160
|
font-family: "Source Han Sans";
|
|
161
161
|
transition: all 0.3s;
|
|
162
162
|
height: 32px;
|
|
163
163
|
text-align: center;
|
|
164
|
+
margin: 0 !important;
|
|
165
|
+
padding: 0 !important;
|
|
164
166
|
}
|
|
165
|
-
|
|
166
167
|
.ant-tabs-tab-active {
|
|
167
168
|
background-color: #0057FE;
|
|
168
169
|
color: #ffffff;
|
|
169
170
|
width: 134px;
|
|
170
|
-
line-height:
|
|
171
|
+
line-height: 26px;
|
|
171
172
|
height: 32px;
|
|
172
173
|
text-align: center;
|
|
174
|
+
margin: 0 !important;
|
|
175
|
+
padding: 0 !important;
|
|
173
176
|
}
|
|
174
177
|
}
|
|
175
178
|
|
|
176
179
|
:deep(.ant-tabs-bar) {
|
|
177
180
|
border-bottom: 2px solid #0057FE;
|
|
178
|
-
margin:
|
|
181
|
+
margin: 0px 0px;
|
|
182
|
+
width: 100%;
|
|
183
|
+
height: 50px;
|
|
179
184
|
}
|
|
180
185
|
|
|
181
186
|
// 滚动状态下的容器左右内边距清零,避免左侧多出一截
|
|
@@ -190,7 +195,7 @@ defineExpose({
|
|
|
190
195
|
|
|
191
196
|
:deep(.ant-tabs-ink-bar) {
|
|
192
197
|
background-color: transparent;
|
|
193
|
-
bottom:
|
|
198
|
+
bottom: 0px;
|
|
194
199
|
display: none;
|
|
195
200
|
height: 0;
|
|
196
201
|
}
|
|
@@ -406,7 +411,7 @@ defineExpose({
|
|
|
406
411
|
padding-top: 2px;
|
|
407
412
|
}
|
|
408
413
|
:deep(.ant-tabs-extra-content){
|
|
409
|
-
|
|
414
|
+
line-height: 0px !important;
|
|
410
415
|
}
|
|
411
416
|
}
|
|
412
417
|
}
|
|
@@ -688,7 +688,7 @@ export default {
|
|
|
688
688
|
}
|
|
689
689
|
|
|
690
690
|
/* 将右侧留白转移到标题与第一项之间 */
|
|
691
|
-
.header-content { padding-right:
|
|
691
|
+
.header-content { padding-right: 0px; gap: 5px; }
|
|
692
692
|
.header-content .info-item:first-of-type { margin-left: 24px !important; }
|
|
693
693
|
.header-content .time-item:first-of-type { margin-left: 24px !important; }
|
|
694
694
|
|
|
@@ -55,7 +55,8 @@ export default {
|
|
|
55
55
|
const attrs = this.$attrs || {}
|
|
56
56
|
const classes = {}
|
|
57
57
|
const booleanStyleKeys = [
|
|
58
|
-
'medical-history'
|
|
58
|
+
'medical-history',
|
|
59
|
+
'yizhu-input'
|
|
59
60
|
]
|
|
60
61
|
booleanStyleKeys.forEach(key => {
|
|
61
62
|
const val = attrs[key]
|
|
@@ -165,6 +166,29 @@ export default {
|
|
|
165
166
|
color: #A7A7A7;
|
|
166
167
|
}
|
|
167
168
|
}
|
|
169
|
+
&.xinput-yizhu-input {
|
|
170
|
+
border-radius: 6px;
|
|
171
|
+
opacity: 1;
|
|
172
|
+
background: #FFFFFF;
|
|
173
|
+
box-sizing: border-box;
|
|
174
|
+
border: 1px solid #E5E9F0;
|
|
175
|
+
|
|
176
|
+
margin: 2px 0px;
|
|
177
|
+
:deep(.ant-input) {
|
|
178
|
+
border-radius: 6px;
|
|
179
|
+
opacity: 1;
|
|
180
|
+
background: #FFFFFF;
|
|
181
|
+
box-sizing: border-box;
|
|
182
|
+
border: 1px solid #E5E9F0;
|
|
183
|
+
font-family: Source Han Sans;
|
|
184
|
+
font-size: 14px;
|
|
185
|
+
padding: 5px 76px 3px 8px;
|
|
186
|
+
font-weight: normal;
|
|
187
|
+
line-height: 24px;
|
|
188
|
+
letter-spacing: 0em;
|
|
189
|
+
color: #A7A7A7;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
168
192
|
}
|
|
169
193
|
|
|
170
194
|
</style>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div id="xreport-hosp-demo">
|
|
3
|
+
<a-space style="margin-bottom: 12px;">
|
|
4
|
+
<a-button type="primary" @click="doInit">手动初始化</a-button>
|
|
5
|
+
</a-space>
|
|
6
|
+
<XReport
|
|
7
|
+
ref="reportRef"
|
|
8
|
+
:edit-mode="true"
|
|
9
|
+
:show-save-button="true"
|
|
10
|
+
:show-img-in-cell="false"
|
|
11
|
+
:use-oss-for-img="false"
|
|
12
|
+
server-name="af-his"
|
|
13
|
+
@updateImg="onUpdateImg"/>
|
|
14
|
+
</div>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<script setup>
|
|
18
|
+
import { ref } from 'vue'
|
|
19
|
+
import XReport from '@vue2-client/base-client/components/common/XReport'
|
|
20
|
+
|
|
21
|
+
const reportRef = ref(null)
|
|
22
|
+
|
|
23
|
+
const payload = {
|
|
24
|
+
arr: [
|
|
25
|
+
{ BQ: '病房区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
26
|
+
{ BQ: '感染科', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
27
|
+
{ BQ: '骨科病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
28
|
+
{ BQ: '呼吸科病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
29
|
+
{ BQ: '急症科病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
30
|
+
{ BQ: '内科二病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 }
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const doInit = async () => {
|
|
35
|
+
if (!reportRef.value || !reportRef.value.init) return
|
|
36
|
+
await reportRef.value.init({
|
|
37
|
+
configName: 'hospitalizationStatsReport',
|
|
38
|
+
configData: payload
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const onUpdateImg = data => {
|
|
43
|
+
console.warn('updateImg:', data)
|
|
44
|
+
}
|
|
45
|
+
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="x-checkbox-container">
|
|
2
|
+
<div class="x-checkbox-container" :class="wrapperClassObject()">
|
|
3
3
|
<a-checkbox-group v-model="innerValue" @change="onChange" class="x-checkbox-group">
|
|
4
4
|
<div v-for="item in data" :key="item.value" class="x-checkbox-item-container">
|
|
5
5
|
<a-checkbox :value="item.value" class="x-checkbox-item">
|
|
@@ -70,6 +70,19 @@ export default {
|
|
|
70
70
|
}
|
|
71
71
|
})
|
|
72
72
|
},
|
|
73
|
+
wrapperClassObject () {
|
|
74
|
+
const attrs = this.$attrs || {}
|
|
75
|
+
const classes = {}
|
|
76
|
+
const booleanStyleKeys = [
|
|
77
|
+
'compact'
|
|
78
|
+
]
|
|
79
|
+
booleanStyleKeys.forEach(key => {
|
|
80
|
+
const val = attrs[key]
|
|
81
|
+
const truthy = val === true || val === '' || val === 'true'
|
|
82
|
+
if (truthy) classes[`x-checkbox-${key}`] = true
|
|
83
|
+
})
|
|
84
|
+
return classes
|
|
85
|
+
},
|
|
73
86
|
onChange (checkedValues) {
|
|
74
87
|
this.innerValue = checkedValues
|
|
75
88
|
this.$emit('change', checkedValues)
|
|
@@ -78,7 +91,7 @@ export default {
|
|
|
78
91
|
}
|
|
79
92
|
</script>
|
|
80
93
|
|
|
81
|
-
<style scoped>
|
|
94
|
+
<style scoped lang="less">
|
|
82
95
|
.x-checkbox-container {
|
|
83
96
|
display: flex;
|
|
84
97
|
flex-direction: column;
|
|
@@ -102,4 +115,20 @@ export default {
|
|
|
102
115
|
.x-checkbox-item {
|
|
103
116
|
margin-bottom: 8px;
|
|
104
117
|
}
|
|
118
|
+
.x-checkbox-compact {
|
|
119
|
+
&.x-checkbox-container,
|
|
120
|
+
.x-checkbox-container {
|
|
121
|
+
:deep(.x-checkbox-item-container){
|
|
122
|
+
padding: 0px !important;
|
|
123
|
+
flex: auto !important;
|
|
124
|
+
}
|
|
125
|
+
:deep(.x-checkbox-item){
|
|
126
|
+
margin: 0px;
|
|
127
|
+
}
|
|
128
|
+
:deep(.x-checkbox-item) > span:last-child {
|
|
129
|
+
padding-right: 2px;
|
|
130
|
+
padding-left: 2px;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
105
134
|
</style>
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
:type="(config && config.detailsConfig && config.detailsConfig.buttonType) || 'link'"
|
|
8
8
|
@click="toggleDetails"
|
|
9
9
|
>
|
|
10
|
-
<a-icon :type="showAllItems ? 'up' : 'down'" />
|
|
11
10
|
{{ showAllItems ? '收起' : ((config && config.detailsConfig && config.detailsConfig.buttonText) || '详情') }}
|
|
11
|
+
<a-icon :type="showAllItems ? 'up' : 'down'" />
|
|
12
12
|
</a-button>
|
|
13
13
|
</div>
|
|
14
14
|
|
|
@@ -28,12 +28,9 @@
|
|
|
28
28
|
:class="{ 'with-divider': item.isLine }">
|
|
29
29
|
<template #label>
|
|
30
30
|
<div :class="['label-wrapper', { 'with-avatar': item.showAvatar }]">
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
:icon="item.avatar.icon"
|
|
35
|
-
:style="{ background: item.avatar.background }"
|
|
36
|
-
/>
|
|
31
|
+
<div v-if="item.showAvatar" class="gender-icon">
|
|
32
|
+
<img :src="maleIcon" alt="male" class="gender-img" />
|
|
33
|
+
</div>
|
|
37
34
|
<span class="label-text">{{ item.label }}</span>
|
|
38
35
|
</div>
|
|
39
36
|
</template>
|
|
@@ -67,12 +64,9 @@
|
|
|
67
64
|
:colon="item.colon !== false">
|
|
68
65
|
<template #label>
|
|
69
66
|
<div :class="['label-wrapper', { 'with-avatar': item.showAvatar }]">
|
|
70
|
-
<
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
:icon="item.avatar.icon"
|
|
74
|
-
:style="{ background: item.avatar.background }"
|
|
75
|
-
/>
|
|
67
|
+
<div v-if="item.showAvatar" class="gender-icon">
|
|
68
|
+
<img :src="maleIcon" alt="male" class="gender-img" />
|
|
69
|
+
</div>
|
|
76
70
|
<span class="label-text">{{ item.label }}</span>
|
|
77
71
|
</div>
|
|
78
72
|
</template>
|
|
@@ -161,12 +155,9 @@
|
|
|
161
155
|
:class="['description-item', { 'with-divider': item.isLine }]"
|
|
162
156
|
>
|
|
163
157
|
<div :class="['label-wrapper', { 'with-avatar': item.showAvatar }]">
|
|
164
|
-
<
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
:icon="item.avatar.icon"
|
|
168
|
-
:style="{ background: item.avatar.background }"
|
|
169
|
-
/>
|
|
158
|
+
<div v-if="item.showAvatar" class="gender-icon">
|
|
159
|
+
<img :src="maleIcon" alt="male" class="gender-img" />
|
|
160
|
+
</div>
|
|
170
161
|
<span class="label-text">{{ item.label }}:</span>
|
|
171
162
|
</div>
|
|
172
163
|
<a-tooltip
|
|
@@ -199,12 +190,9 @@
|
|
|
199
190
|
class="description-item"
|
|
200
191
|
>
|
|
201
192
|
<div :class="['label-wrapper', { 'with-avatar': item.showAvatar }]">
|
|
202
|
-
<
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
:icon="item.avatar.icon"
|
|
206
|
-
:style="{ background: item.avatar.background }"
|
|
207
|
-
/>
|
|
193
|
+
<div v-if="item.showAvatar" class="gender-icon">
|
|
194
|
+
<img :src="maleIcon" alt="male" class="gender-img" />
|
|
195
|
+
</div>
|
|
208
196
|
<span class="label-text">{{ item.label }}:</span>
|
|
209
197
|
</div>
|
|
210
198
|
<div
|
|
@@ -314,7 +302,8 @@ export default {
|
|
|
314
302
|
hiddenConfig: '-1^',
|
|
315
303
|
data: null,
|
|
316
304
|
config: null,
|
|
317
|
-
showAllItems: false // 控制是否显示所有标签
|
|
305
|
+
showAllItems: false, // 控制是否显示所有标签
|
|
306
|
+
maleIcon: require('@vue2-client/assets/svg/male.svg')
|
|
318
307
|
}
|
|
319
308
|
},
|
|
320
309
|
props: {
|
|
@@ -339,9 +328,11 @@ export default {
|
|
|
339
328
|
'description',
|
|
340
329
|
'no-padding',
|
|
341
330
|
'medical-history',
|
|
331
|
+
'patient-style',
|
|
342
332
|
'margin-top-12',
|
|
343
333
|
'padding-left15',
|
|
344
|
-
'line-height30'
|
|
334
|
+
'line-height30',
|
|
335
|
+
'border1'
|
|
345
336
|
]
|
|
346
337
|
booleanStyleKeys.forEach(key => {
|
|
347
338
|
const val = attrs[key]
|
|
@@ -350,6 +341,8 @@ export default {
|
|
|
350
341
|
})
|
|
351
342
|
const size = attrs.size
|
|
352
343
|
if (size && typeof size === 'string') classes[`xhdesc-size-${size}`] = true
|
|
344
|
+
// 展开态样式开关(用于 patient-style 动态高度)
|
|
345
|
+
if (this.showAllItems && this.config && this.config.detailsConfig) classes['xhdesc-open'] = true
|
|
353
346
|
return classes
|
|
354
347
|
},
|
|
355
348
|
// 获取详情按钮应该显示在第几个标签后
|
|
@@ -454,7 +447,6 @@ export default {
|
|
|
454
447
|
<style scoped lang="less">
|
|
455
448
|
.patient-info-descriptions {
|
|
456
449
|
background: #fff;
|
|
457
|
-
padding: 12px;
|
|
458
450
|
border-radius: 4px;
|
|
459
451
|
width: 100%;
|
|
460
452
|
}
|
|
@@ -716,6 +708,93 @@ export default {
|
|
|
716
708
|
}
|
|
717
709
|
}
|
|
718
710
|
}
|
|
711
|
+
/* 病患信息样式开关:patient-style */
|
|
712
|
+
.xhdesc-patient-style {
|
|
713
|
+
height: 41px;
|
|
714
|
+
border-radius: 6px;
|
|
715
|
+
opacity: 1;
|
|
716
|
+
background: #FFFFFF;
|
|
717
|
+
box-sizing: border-box;
|
|
718
|
+
border: 0px solid #E5E9F0;
|
|
719
|
+
padding-bottom: 0px !important;
|
|
720
|
+
width: 100%;
|
|
721
|
+
&.patient-info-descriptions,
|
|
722
|
+
.patient-info-descriptions {
|
|
723
|
+
border: 0px solid #E5E9F0;
|
|
724
|
+
border-radius: 6px;
|
|
725
|
+
background: #FFFFFF;
|
|
726
|
+
height: 41px;
|
|
727
|
+
display: flex;
|
|
728
|
+
align-items: center;
|
|
729
|
+
|
|
730
|
+
/* 标签字体(label):统一 16px,与值一致 */
|
|
731
|
+
::v-deep .label-wrapper .label-text {
|
|
732
|
+
font-family: "Source Han Sans";
|
|
733
|
+
font-size: 16px !important;
|
|
734
|
+
font-weight: 400 !important; /* 确保不加粗 */
|
|
735
|
+
line-height: 23px !important;
|
|
736
|
+
letter-spacing: 0em;
|
|
737
|
+
font-feature-settings: "kern" on;
|
|
738
|
+
color: #5D5C5C;
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
/* 头像与标签的间距 9px */
|
|
742
|
+
::v-deep .label-wrapper.with-avatar {
|
|
743
|
+
gap: 9px;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
/* 性别图标样式 */
|
|
747
|
+
.gender-icon {
|
|
748
|
+
margin-top: 2px;
|
|
749
|
+
}
|
|
750
|
+
.gender-img {
|
|
751
|
+
width: 20px;
|
|
752
|
+
height: 20px;
|
|
753
|
+
opacity: 1;
|
|
754
|
+
display: inline-block;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
/* 详情箭头在文字右侧:颜色、间距、方向(不旋转) */
|
|
758
|
+
::v-deep .detail-button-wrapper .ant-btn .anticon {
|
|
759
|
+
margin-left: 4px;
|
|
760
|
+
color: #94979E;
|
|
761
|
+
opacity: 1;
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
/* 详情按钮文字字体规范 */
|
|
765
|
+
::v-deep .detail-button-wrapper .ant-btn,
|
|
766
|
+
::v-deep .detail-button-wrapper .ant-btn span {
|
|
767
|
+
font-family: "Source Han Sans";
|
|
768
|
+
font-size: 16px;
|
|
769
|
+
color: #5D5C5C;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
/* 值字体(content) */
|
|
773
|
+
::v-deep .ant-descriptions-item-content,
|
|
774
|
+
::v-deep .content-wrapper,
|
|
775
|
+
.medical-history-text {
|
|
776
|
+
font-family: "Source Han Sans";
|
|
777
|
+
font-size: 16px !important;
|
|
778
|
+
font-weight: 700;
|
|
779
|
+
line-height: 23px !important;
|
|
780
|
+
letter-spacing: 0em;
|
|
781
|
+
font-feature-settings: "kern" on;
|
|
782
|
+
color: #5D5C5C;
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
/* 展开态:patient-style 自适应高度与顶部对齐,防止布局错乱 */
|
|
788
|
+
.xhdesc-patient-style.xhdesc-open,
|
|
789
|
+
.xhdesc-open .patient-info-descriptions.xhdesc-patient-style,
|
|
790
|
+
.xhdesc-open .xhdesc-patient-style .patient-info-descriptions {
|
|
791
|
+
height: auto;
|
|
792
|
+
}
|
|
793
|
+
.xhdesc-patient-style.xhdesc-open .patient-info-descriptions,
|
|
794
|
+
.xhdesc-open .patient-info-descriptions.xhdesc-patient-style,
|
|
795
|
+
.xhdesc-open .xhdesc-patient-style .patient-info-descriptions {
|
|
796
|
+
align-items: flex-start;
|
|
797
|
+
}
|
|
719
798
|
// 去除住院收费页面两个描述列表之间的间距
|
|
720
799
|
.xhdesc-margin-top-12 {
|
|
721
800
|
margin-top: -12px;
|
|
@@ -941,4 +1020,12 @@ export default {
|
|
|
941
1020
|
text-align: right;
|
|
942
1021
|
}
|
|
943
1022
|
}
|
|
1023
|
+
/* 加边框 */
|
|
1024
|
+
.xhdesc-border1 {
|
|
1025
|
+
&.patient-info-descriptions,
|
|
1026
|
+
.patient-info-descriptions {
|
|
1027
|
+
border: 1px solid #E5E9F0;
|
|
1028
|
+
border-radius: 6px;
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
944
1031
|
</style>
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
class="x-icon anticon"
|
|
4
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
-
width="1em"
|
|
6
|
-
height="1em"
|
|
7
|
-
:viewBox="viewBox"
|
|
8
|
-
:style="iconStyle"
|
|
9
|
-
>
|
|
10
|
-
<path
|
|
11
|
-
v-for="(path, index) in iconPaths"
|
|
12
|
-
:key="index"
|
|
13
|
-
:fill="path.fill || 'currentColor'"
|
|
14
|
-
:d="path.d"
|
|
15
|
-
/>
|
|
16
|
-
</svg>
|
|
17
|
-
</template>
|
|
18
|
-
|
|
19
|
-
<script setup>
|
|
20
|
-
import { computed } from 'vue'
|
|
21
|
-
|
|
22
|
-
const props = defineProps({
|
|
23
|
-
// 图标名称
|
|
24
|
-
name: {
|
|
25
|
-
type: String,
|
|
26
|
-
required: true
|
|
27
|
-
}
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
// 简化的图标配置(先确保基本功能正常)
|
|
31
|
-
const iconConfigs = {
|
|
32
|
-
icon001: {
|
|
33
|
-
viewBox: '0 0 13.066129684448242 14',
|
|
34
|
-
paths: [{
|
|
35
|
-
d: 'M0.72589612,0C0.32499826,0,0,0.34822667,0,0.77777773L0,13.222221C0,13.651789,0.32499826,14,0.72589612,14L12.340235,14C12.741146,14,13.066131,13.651789,13.066131,13.222221L13.066131,0.77777773C13.066131,0.34822667,12.741146,0,12.340235,0L0.72589612,0ZM2.9035845,4.6666665L2.9035845,3.1111109L10.162547,3.1111109L10.162547,4.6666665L2.9035845,4.6666665ZM2.9035845,7.7777777L2.9035845,6.2222219L10.162547,6.2222219L10.162547,7.7777777L2.9035845,7.7777777ZM10.162547,10.888889L2.9035845,10.888889L2.9035845,9.333333L10.162547,9.333333L10.162547,10.888889Z',
|
|
36
|
-
fill: 'currentColor'
|
|
37
|
-
}]
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// 计算图标配置
|
|
42
|
-
const iconConfig = computed(() => {
|
|
43
|
-
return iconConfigs[props.name] || {
|
|
44
|
-
viewBox: '0 0 24 24',
|
|
45
|
-
paths: []
|
|
46
|
-
}
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
// 计算 viewBox
|
|
50
|
-
const viewBox = computed(() => {
|
|
51
|
-
return iconConfig.value.viewBox
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
// 计算图标路径
|
|
55
|
-
const iconPaths = computed(() => {
|
|
56
|
-
return iconConfig.value.paths
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
// 计算样式
|
|
60
|
-
const iconStyle = computed(() => ({
|
|
61
|
-
...props.style
|
|
62
|
-
}))
|
|
63
|
-
</script>
|
|
64
|
-
|
|
65
|
-
<style scoped>
|
|
66
|
-
.x-icon {
|
|
67
|
-
display: inline-flex;
|
|
68
|
-
align-items: center;
|
|
69
|
-
justify-content: center;
|
|
70
|
-
vertical-align: middle;
|
|
71
|
-
line-height: 1;
|
|
72
|
-
}
|
|
73
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
class="x-icon anticon"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="1em"
|
|
6
|
+
height="1em"
|
|
7
|
+
:viewBox="viewBox"
|
|
8
|
+
:style="iconStyle"
|
|
9
|
+
>
|
|
10
|
+
<path
|
|
11
|
+
v-for="(path, index) in iconPaths"
|
|
12
|
+
:key="index"
|
|
13
|
+
:fill="path.fill || 'currentColor'"
|
|
14
|
+
:d="path.d"
|
|
15
|
+
/>
|
|
16
|
+
</svg>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
<script setup>
|
|
20
|
+
import { computed } from 'vue'
|
|
21
|
+
|
|
22
|
+
const props = defineProps({
|
|
23
|
+
// 图标名称
|
|
24
|
+
name: {
|
|
25
|
+
type: String,
|
|
26
|
+
required: true
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
// 简化的图标配置(先确保基本功能正常)
|
|
31
|
+
const iconConfigs = {
|
|
32
|
+
icon001: {
|
|
33
|
+
viewBox: '0 0 13.066129684448242 14',
|
|
34
|
+
paths: [{
|
|
35
|
+
d: 'M0.72589612,0C0.32499826,0,0,0.34822667,0,0.77777773L0,13.222221C0,13.651789,0.32499826,14,0.72589612,14L12.340235,14C12.741146,14,13.066131,13.651789,13.066131,13.222221L13.066131,0.77777773C13.066131,0.34822667,12.741146,0,12.340235,0L0.72589612,0ZM2.9035845,4.6666665L2.9035845,3.1111109L10.162547,3.1111109L10.162547,4.6666665L2.9035845,4.6666665ZM2.9035845,7.7777777L2.9035845,6.2222219L10.162547,6.2222219L10.162547,7.7777777L2.9035845,7.7777777ZM10.162547,10.888889L2.9035845,10.888889L2.9035845,9.333333L10.162547,9.333333L10.162547,10.888889Z',
|
|
36
|
+
fill: 'currentColor'
|
|
37
|
+
}]
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// 计算图标配置
|
|
42
|
+
const iconConfig = computed(() => {
|
|
43
|
+
return iconConfigs[props.name] || {
|
|
44
|
+
viewBox: '0 0 24 24',
|
|
45
|
+
paths: []
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
// 计算 viewBox
|
|
50
|
+
const viewBox = computed(() => {
|
|
51
|
+
return iconConfig.value.viewBox
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
// 计算图标路径
|
|
55
|
+
const iconPaths = computed(() => {
|
|
56
|
+
return iconConfig.value.paths
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
// 计算样式
|
|
60
|
+
const iconStyle = computed(() => ({
|
|
61
|
+
...props.style
|
|
62
|
+
}))
|
|
63
|
+
</script>
|
|
64
|
+
|
|
65
|
+
<style scoped>
|
|
66
|
+
.x-icon {
|
|
67
|
+
display: inline-flex;
|
|
68
|
+
align-items: center;
|
|
69
|
+
justify-content: center;
|
|
70
|
+
vertical-align: middle;
|
|
71
|
+
line-height: 1;
|
|
72
|
+
}
|
|
73
|
+
</style>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import XIcon from './XIcon.vue'
|
|
2
|
-
|
|
3
|
-
export default XIcon
|
|
1
|
+
import XIcon from './XIcon.vue'
|
|
2
|
+
|
|
3
|
+
export default XIcon
|