vue2-client 1.16.83 → 1.16.85
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/base-client/components/common/HIS/HButtons/HButtons.vue +22 -10
- package/src/base-client/components/common/HIS/HForm/HForm.vue +335 -20
- package/src/base-client/components/common/HIS/HFormTable/HFormTable.vue +10 -1
- package/src/base-client/components/common/HIS/HTab/HTab.vue +26 -1
- package/src/base-client/components/common/XTimeline/XTimeline.vue +51 -27
- package/src/base-client/components/common/XTree/XTreePro.vue +4 -4
- package/src/base-client/components/his/XCheckbox/XCheckbox.vue +48 -1
- package/src/base-client/components/his/XRadio/XRadio.vue +68 -1
- package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +46 -9
- package/src/base-client/components/his/XTitle/XTitle.vue +21 -2
- package/src/router/async/router.map.js +1 -2
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ const wrapperClassObject = computed(() => {
|
|
|
21
21
|
|
|
22
22
|
// 通用布尔样式开关(以存在/空字符串/'true' 为真)
|
|
23
23
|
const booleanStyleKeys = [
|
|
24
|
-
'max-width200', 'width173'
|
|
24
|
+
'max-width200', 'width173', 'button_refresh'
|
|
25
25
|
]
|
|
26
26
|
for (const key of booleanStyleKeys) {
|
|
27
27
|
const val = a[key]
|
|
@@ -185,7 +185,7 @@ defineExpose({
|
|
|
185
185
|
}
|
|
186
186
|
&.h-buttons-max-width200 {
|
|
187
187
|
:deep(.ant-btn) {
|
|
188
|
-
|
|
188
|
+
max-width: 200px !important;
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
// button-left样式 - 按钮从左到右排列
|
|
@@ -216,7 +216,7 @@ defineExpose({
|
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
// button-icon-tiles样式 - 左侧彩色图标块 + 右侧文字
|
|
220
220
|
&.h-buttons-button-icon-tiles {
|
|
221
221
|
:deep(.ant-btn-group) {
|
|
222
222
|
width: 100%;
|
|
@@ -289,10 +289,14 @@ defineExpose({
|
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
|
+
&.h-buttons-button_refresh {
|
|
293
|
+
margin-top: 10px;
|
|
294
|
+
}
|
|
292
295
|
// 居中样式 用于门诊收费左侧按钮样式(三个按钮居中样式)
|
|
293
296
|
&.h-buttons-out-button {
|
|
294
297
|
:deep(.x-buttons) {
|
|
295
|
-
margin-top:
|
|
298
|
+
margin-top: 2px !important;
|
|
299
|
+
margin-bottom: 10px !important;
|
|
296
300
|
display: flex;
|
|
297
301
|
justify-content: center;
|
|
298
302
|
.ant-btn-group {
|
|
@@ -300,14 +304,22 @@ defineExpose({
|
|
|
300
304
|
flex-wrap: nowrap;
|
|
301
305
|
gap: 12px;
|
|
302
306
|
.ant-btn {
|
|
307
|
+
width: 110px;
|
|
308
|
+
height: 32px;
|
|
309
|
+
border-radius: 6px;
|
|
310
|
+
opacity: 1;
|
|
311
|
+
background: #FFFFFF;
|
|
303
312
|
box-sizing: border-box;
|
|
313
|
+
border: 1px solid #9499A0;
|
|
304
314
|
margin-right: 0px;
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
315
|
+
/* 允许正常文本渲染,避免省略号导致的“变成点了” */
|
|
316
|
+
font-family: "Source Han Sans";
|
|
317
|
+
font-size: 16px;
|
|
318
|
+
font-weight: normal;
|
|
319
|
+
line-height: normal;
|
|
320
|
+
color: #313131;
|
|
310
321
|
}
|
|
322
|
+
/* 还原子元素默认高度,避免文字被压缩成点 */
|
|
311
323
|
}
|
|
312
324
|
}
|
|
313
325
|
}
|
|
@@ -362,7 +374,7 @@ defineExpose({
|
|
|
362
374
|
}
|
|
363
375
|
&.h-buttons-width173 {
|
|
364
376
|
:deep(.ant-btn) {
|
|
365
|
-
|
|
377
|
+
width: 173px !important;
|
|
366
378
|
}
|
|
367
379
|
}
|
|
368
380
|
}
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
|
3
|
-
import { ref, computed, useAttrs
|
|
3
|
+
import { ref, computed, useAttrs } from 'vue'
|
|
4
4
|
|
|
5
5
|
const xAddNativeFormRef = ref()
|
|
6
6
|
|
|
7
7
|
const attrs = useAttrs()
|
|
8
|
-
const props = defineProps({
|
|
9
|
-
// 是否启用 horizontal 模式的自定义配置
|
|
10
|
-
enableHorizontalCustom: {
|
|
11
|
-
type: Boolean,
|
|
12
|
-
default: false
|
|
13
|
-
}
|
|
14
|
-
})
|
|
15
8
|
const wrapperClassObject = computed(() => {
|
|
16
9
|
const a = attrs
|
|
17
10
|
const classes = {}
|
|
@@ -21,9 +14,10 @@ const wrapperClassObject = computed(() => {
|
|
|
21
14
|
'query-conditions',
|
|
22
15
|
'padding-50',
|
|
23
16
|
'label-text-horizontal',
|
|
24
|
-
'item-control-width90',
|
|
25
17
|
'label-text-justify',
|
|
26
|
-
'
|
|
18
|
+
'left-form',
|
|
19
|
+
'charge-form',
|
|
20
|
+
'aligned-form'
|
|
27
21
|
]
|
|
28
22
|
for (const key of booleanStyleKeys) {
|
|
29
23
|
const val = a[key]
|
|
@@ -53,7 +47,6 @@ defineExpose({
|
|
|
53
47
|
<x-add-native-form
|
|
54
48
|
ref="xAddNativeFormRef"
|
|
55
49
|
v-bind="$attrs"
|
|
56
|
-
:enable-horizontal-custom="props.enableHorizontalCustom"
|
|
57
50
|
v-on="$listeners"
|
|
58
51
|
>
|
|
59
52
|
<template v-for="(_, name) in $slots" #[name]="slotData">
|
|
@@ -113,6 +106,198 @@ defineExpose({
|
|
|
113
106
|
}
|
|
114
107
|
}
|
|
115
108
|
|
|
109
|
+
// charge-form 样式
|
|
110
|
+
&.h-form-charge-form {
|
|
111
|
+
margin-top: 2px !important;
|
|
112
|
+
// 定义变量
|
|
113
|
+
@font-common: {
|
|
114
|
+
font-family: 'Source Han Sans', sans-serif;
|
|
115
|
+
font-size: 16px;
|
|
116
|
+
font-weight: normal;
|
|
117
|
+
letter-spacing: 0em;
|
|
118
|
+
font-variation-settings: "opsz" auto;
|
|
119
|
+
font-feature-settings: "kern" on;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
@color-primary: #313131;
|
|
123
|
+
@color-placeholder: #999999;
|
|
124
|
+
|
|
125
|
+
// 定义混合宏
|
|
126
|
+
.input-base() {
|
|
127
|
+
width: 100%;
|
|
128
|
+
height: 30px;
|
|
129
|
+
line-height: 30px;
|
|
130
|
+
vertical-align: top;
|
|
131
|
+
margin: 0;
|
|
132
|
+
text-align: left;
|
|
133
|
+
color: @color-primary;
|
|
134
|
+
opacity: 1;
|
|
135
|
+
@font-common();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.placeholder-base() {
|
|
139
|
+
color: @color-placeholder;
|
|
140
|
+
opacity: 1;
|
|
141
|
+
@font-common();
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.option-group-base() {
|
|
145
|
+
height: 30px;
|
|
146
|
+
line-height: 30px;
|
|
147
|
+
display: flex;
|
|
148
|
+
align-items: center;
|
|
149
|
+
|
|
150
|
+
.ant-radio-wrapper,
|
|
151
|
+
.ant-checkbox-wrapper {
|
|
152
|
+
height: 30px;
|
|
153
|
+
line-height: 30px;
|
|
154
|
+
margin-right: 16px;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
:deep(.ant-form-item) {
|
|
159
|
+
margin-bottom: 16px;
|
|
160
|
+
margin-top: 0;
|
|
161
|
+
padding: 0;
|
|
162
|
+
display: flex;
|
|
163
|
+
align-items: center;
|
|
164
|
+
|
|
165
|
+
.ant-form-item-label {
|
|
166
|
+
text-align: left;
|
|
167
|
+
margin: 0 16px 0 0 !important;
|
|
168
|
+
width: 64px;
|
|
169
|
+
min-width: 64px;
|
|
170
|
+
max-width: 64px;
|
|
171
|
+
flex-shrink: 0;
|
|
172
|
+
|
|
173
|
+
label {
|
|
174
|
+
height: 23px;
|
|
175
|
+
opacity: 1;
|
|
176
|
+
line-height: 23px;
|
|
177
|
+
color: @color-primary;
|
|
178
|
+
margin: 0;
|
|
179
|
+
padding: 0;
|
|
180
|
+
white-space: nowrap;
|
|
181
|
+
display: block;
|
|
182
|
+
@font-common();
|
|
183
|
+
|
|
184
|
+
// 移除冒号
|
|
185
|
+
&::after {
|
|
186
|
+
content: '';
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.ant-form-item-control-wrapper {
|
|
192
|
+
margin: 0;
|
|
193
|
+
padding: 0;
|
|
194
|
+
flex: 1;
|
|
195
|
+
min-width: 0;
|
|
196
|
+
display: flex;
|
|
197
|
+
align-items: center;
|
|
198
|
+
|
|
199
|
+
.ant-form-item-control {
|
|
200
|
+
margin: 0;
|
|
201
|
+
padding: 0;
|
|
202
|
+
width: 100%;
|
|
203
|
+
text-align: left;
|
|
204
|
+
line-height: 30px !important;
|
|
205
|
+
|
|
206
|
+
// 输入框样式统一
|
|
207
|
+
.ant-input,
|
|
208
|
+
.ant-input-affix-wrapper,
|
|
209
|
+
.ant-select,
|
|
210
|
+
.ant-input-number,
|
|
211
|
+
.ant-picker,
|
|
212
|
+
.ant-radio-group,
|
|
213
|
+
.ant-checkbox-group {
|
|
214
|
+
.input-base();
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// 选择器样式
|
|
218
|
+
.ant-select {
|
|
219
|
+
.ant-select-selector {
|
|
220
|
+
.input-base();
|
|
221
|
+
height: 30px;
|
|
222
|
+
line-height: 30px;
|
|
223
|
+
|
|
224
|
+
.ant-select-selection-item {
|
|
225
|
+
.input-base();
|
|
226
|
+
line-height: 30px;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.ant-select-selection-placeholder {
|
|
230
|
+
.placeholder-base();
|
|
231
|
+
line-height: 30px;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// 日期选择器样式
|
|
237
|
+
.ant-picker {
|
|
238
|
+
height: 30px;
|
|
239
|
+
|
|
240
|
+
.ant-picker-input {
|
|
241
|
+
height: 30px;
|
|
242
|
+
line-height: 30px;
|
|
243
|
+
.input-base();
|
|
244
|
+
|
|
245
|
+
input {
|
|
246
|
+
.input-base();
|
|
247
|
+
height: 30px;
|
|
248
|
+
line-height: 30px;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// 数字输入框样式
|
|
254
|
+
.ant-input-number {
|
|
255
|
+
height: 30px;
|
|
256
|
+
|
|
257
|
+
.ant-input-number-input {
|
|
258
|
+
.input-base();
|
|
259
|
+
height: 30px;
|
|
260
|
+
line-height: 30px;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// 单选框组样式
|
|
265
|
+
.ant-radio-group {
|
|
266
|
+
.option-group-base();
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// 复选框组样式
|
|
270
|
+
.ant-checkbox-group {
|
|
271
|
+
.option-group-base();
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// 重置可能的容器边距
|
|
278
|
+
:deep(.ant-row) {
|
|
279
|
+
margin: 0;
|
|
280
|
+
padding: 0;
|
|
281
|
+
|
|
282
|
+
.ant-col {
|
|
283
|
+
margin: 0;
|
|
284
|
+
padding: 0;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
// 强制重置所有可能的表单项样式
|
|
289
|
+
:deep(.ant-form-item) {
|
|
290
|
+
margin: 0 0 16px 0 !important;
|
|
291
|
+
|
|
292
|
+
// 重置可能的内部边距
|
|
293
|
+
.ant-form-item-control-input,
|
|
294
|
+
.ant-form-item-control-input-content {
|
|
295
|
+
margin: 0 !important;
|
|
296
|
+
padding: 0 !important;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
116
301
|
// label-text-horizontal 样式 - 只控制label文字从左到右排列
|
|
117
302
|
&.h-form-label-text-horizontal {
|
|
118
303
|
:deep(.ant-form-item-label) {
|
|
@@ -161,16 +346,146 @@ defineExpose({
|
|
|
161
346
|
}
|
|
162
347
|
}
|
|
163
348
|
|
|
164
|
-
|
|
165
|
-
&.h-form-
|
|
166
|
-
:deep(.ant-form-item
|
|
167
|
-
|
|
349
|
+
// aligned-form 样式 - 实现标签左对齐、输入框垂直对齐的整齐布局
|
|
350
|
+
&.h-form-aligned-form {
|
|
351
|
+
:deep(.ant-form-item) {
|
|
352
|
+
margin-bottom: 16px;
|
|
353
|
+
display: flex;
|
|
354
|
+
align-items: center;
|
|
355
|
+
width: 100%;
|
|
356
|
+
|
|
357
|
+
.ant-form-item-label {
|
|
358
|
+
text-align: left;
|
|
359
|
+
margin-right: 12px;
|
|
360
|
+
flex-shrink: 0;
|
|
361
|
+
min-width: 80px; // 确保标签有最小宽度,保持对齐
|
|
362
|
+
max-width: 120px; // 限制最大宽度,避免过宽
|
|
363
|
+
|
|
364
|
+
label {
|
|
365
|
+
margin: 0;
|
|
366
|
+
padding: 0;
|
|
367
|
+
white-space: nowrap;
|
|
368
|
+
display: block;
|
|
369
|
+
text-align: left;
|
|
370
|
+
line-height: 32px;
|
|
371
|
+
height: 32px;
|
|
372
|
+
color: rgba(0, 0, 0, 0.85);
|
|
373
|
+
font-size: 14px;
|
|
374
|
+
|
|
375
|
+
// 移除默认冒号
|
|
376
|
+
&::after {
|
|
377
|
+
content: '';
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.ant-form-item-control-wrapper {
|
|
383
|
+
flex: 1;
|
|
384
|
+
min-width: 0;
|
|
385
|
+
display: flex;
|
|
386
|
+
align-items: center;
|
|
387
|
+
|
|
388
|
+
.ant-form-item-control {
|
|
389
|
+
width: 100%;
|
|
390
|
+
margin: 0;
|
|
391
|
+
padding: 0;
|
|
392
|
+
|
|
393
|
+
// 统一输入框样式
|
|
394
|
+
.ant-input,
|
|
395
|
+
.ant-input-affix-wrapper,
|
|
396
|
+
.ant-select,
|
|
397
|
+
.ant-input-number,
|
|
398
|
+
.ant-picker,
|
|
399
|
+
.ant-radio-group,
|
|
400
|
+
.ant-checkbox-group {
|
|
401
|
+
width: 100%;
|
|
402
|
+
height: 32px;
|
|
403
|
+
line-height: 32px;
|
|
404
|
+
vertical-align: top;
|
|
405
|
+
margin: 0;
|
|
406
|
+
text-align: left;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// 选择器样式
|
|
410
|
+
.ant-select {
|
|
411
|
+
.ant-select-selector {
|
|
412
|
+
height: 32px;
|
|
413
|
+
line-height: 32px;
|
|
414
|
+
|
|
415
|
+
.ant-select-selection-item,
|
|
416
|
+
.ant-select-selection-placeholder {
|
|
417
|
+
line-height: 32px;
|
|
418
|
+
height: 32px;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
// 日期选择器样式
|
|
424
|
+
.ant-picker {
|
|
425
|
+
height: 32px;
|
|
426
|
+
|
|
427
|
+
.ant-picker-input {
|
|
428
|
+
height: 32px;
|
|
429
|
+
line-height: 32px;
|
|
430
|
+
|
|
431
|
+
input {
|
|
432
|
+
height: 32px;
|
|
433
|
+
line-height: 32px;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
// 数字输入框样式
|
|
439
|
+
.ant-input-number {
|
|
440
|
+
height: 32px;
|
|
441
|
+
|
|
442
|
+
.ant-input-number-input {
|
|
443
|
+
height: 32px;
|
|
444
|
+
line-height: 32px;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
// 单选框组和复选框组样式
|
|
449
|
+
.ant-radio-group,
|
|
450
|
+
.ant-checkbox-group {
|
|
451
|
+
height: 32px;
|
|
452
|
+
line-height: 32px;
|
|
453
|
+
display: flex;
|
|
454
|
+
align-items: center;
|
|
455
|
+
|
|
456
|
+
.ant-radio-wrapper,
|
|
457
|
+
.ant-checkbox-wrapper {
|
|
458
|
+
height: 32px;
|
|
459
|
+
line-height: 32px;
|
|
460
|
+
margin-right: 16px;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
168
465
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
466
|
+
|
|
467
|
+
// 确保行容器样式
|
|
468
|
+
:deep(.ant-row) {
|
|
469
|
+
margin: 0;
|
|
470
|
+
padding: 0;
|
|
471
|
+
|
|
472
|
+
.ant-col {
|
|
473
|
+
margin: 0;
|
|
474
|
+
padding: 0 8px; // 列与列之间的间距
|
|
475
|
+
display: flex;
|
|
476
|
+
flex-direction: column;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
// 重置可能的容器边距
|
|
481
|
+
:deep(.ant-form-item) {
|
|
482
|
+
margin: 0 0 16px 0 !important;
|
|
483
|
+
|
|
484
|
+
.ant-form-item-control-input,
|
|
485
|
+
.ant-form-item-control-input-content {
|
|
486
|
+
margin: 0 !important;
|
|
487
|
+
padding: 0 !important;
|
|
488
|
+
}
|
|
174
489
|
}
|
|
175
490
|
}
|
|
176
491
|
}
|
|
@@ -21,7 +21,8 @@ const wrapperClassObject = computed(() => {
|
|
|
21
21
|
'button-row-0margin',
|
|
22
22
|
'top-hidden',
|
|
23
23
|
'dialog-style',
|
|
24
|
-
'button-style'
|
|
24
|
+
'button-style',
|
|
25
|
+
'header-center'
|
|
25
26
|
]
|
|
26
27
|
for (const key of booleanStyleKeys) {
|
|
27
28
|
const val = a[key]
|
|
@@ -390,5 +391,13 @@ const isCustomPagination = computed(() => {
|
|
|
390
391
|
line-height: normal;
|
|
391
392
|
}
|
|
392
393
|
}
|
|
394
|
+
|
|
395
|
+
// 表格内容全部居中样式
|
|
396
|
+
&.h-form-table-header-center {
|
|
397
|
+
:deep(.ant-table-thead > tr > th),
|
|
398
|
+
:deep(.ant-table-tbody > tr > td) {
|
|
399
|
+
text-align: center !important;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
393
402
|
}
|
|
394
403
|
</style>
|
|
@@ -24,7 +24,7 @@ const wrapperClassObject = computed(() => {
|
|
|
24
24
|
|
|
25
25
|
// 通用布尔样式开关(以存在/空字符串/'true' 为真)
|
|
26
26
|
const booleanStyleKeys = [
|
|
27
|
-
'hasTopMargin', 'useStyle7', 'useCycle', 'useStyle8'
|
|
27
|
+
'hasTopMargin', 'useStyle7', 'useCycle', 'useStyle8', 'out-tab'
|
|
28
28
|
]
|
|
29
29
|
for (const key of booleanStyleKeys) {
|
|
30
30
|
const val = a[key]
|
|
@@ -414,5 +414,30 @@ defineExpose({
|
|
|
414
414
|
line-height: 0px !important;
|
|
415
415
|
}
|
|
416
416
|
}
|
|
417
|
+
|
|
418
|
+
&.h-tab-out-tab {
|
|
419
|
+
:deep(.ant-tabs-nav-wrap) {
|
|
420
|
+
margin-top: 0px !important;
|
|
421
|
+
margin-bottom: 0px !important;
|
|
422
|
+
}
|
|
423
|
+
:deep(.ant-tabs-nav) {
|
|
424
|
+
margin-bottom: 0px !important;
|
|
425
|
+
}
|
|
426
|
+
:deep(.ant-tabs-nav-container) {
|
|
427
|
+
padding-top: 0px !important;
|
|
428
|
+
padding-bottom: 0px !important;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
:deep(.ant-tabs-bar) {
|
|
432
|
+
margin-top: 0px !important;
|
|
433
|
+
margin-bottom: 0px !important;
|
|
434
|
+
height: auto !important;
|
|
435
|
+
min-height: 0px !important;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
:deep(.ant-tabs-content) {
|
|
439
|
+
margin-top: 0px !important;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
417
442
|
}
|
|
418
443
|
</style>
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
<div class="x-timeline-nav">
|
|
6
6
|
<!-- 导航按钮:前一周、前一天 -->
|
|
7
7
|
<a-button type="link" @click="goToPrevWeek">
|
|
8
|
-
<a-icon type="
|
|
9
|
-
{{ config?.prevWeekText || '前一周' }}
|
|
8
|
+
<a-icon type="vertical-right"/>
|
|
9
|
+
<span v-if="config?.prevWeekText !== false">{{ config?.prevWeekText || '前一周' }}</span>
|
|
10
10
|
</a-button>
|
|
11
11
|
<a-button type="link" @click="goToPrevDay">
|
|
12
12
|
<a-icon type="left"/>
|
|
13
|
-
{{ config?.prevDayText || '前一天' }}
|
|
13
|
+
<span v-if="config?.prevDayText !== false">{{ config?.prevDayText || '前一天' }}</span>
|
|
14
14
|
</a-button>
|
|
15
15
|
<!-- 日期显示区域 -->
|
|
16
16
|
<div class="timeline-dates">
|
|
@@ -31,12 +31,12 @@
|
|
|
31
31
|
</div>
|
|
32
32
|
<!-- 导航按钮:后一天、后一周 -->
|
|
33
33
|
<a-button type="link" @click="goToNextDay">
|
|
34
|
-
{{ config?.nextDayText || '后一天' }}
|
|
34
|
+
<span v-if="config?.nextDayText !== false">{{ config?.nextDayText || '后一天' }}</span>
|
|
35
35
|
<a-icon type="right"/>
|
|
36
36
|
</a-button>
|
|
37
37
|
<a-button type="link" @click="goToNextWeek">
|
|
38
|
-
{{ config?.nextWeekText || '后一周' }}
|
|
39
|
-
<a-icon type="
|
|
38
|
+
<span v-if="config?.nextWeekText !== false">{{ config?.nextWeekText || '后一周' }}</span>
|
|
39
|
+
<a-icon type="vertical-left"/>
|
|
40
40
|
</a-button>
|
|
41
41
|
</div>
|
|
42
42
|
</div>
|
|
@@ -378,16 +378,16 @@ export default {
|
|
|
378
378
|
|
|
379
379
|
/* Style1 样式配置 */
|
|
380
380
|
.xtimeline-style1 {
|
|
381
|
-
padding: 0px
|
|
381
|
+
padding: 0px 0px;
|
|
382
382
|
|
|
383
383
|
.x-timeline-nav {
|
|
384
384
|
padding: 0px;
|
|
385
|
-
width:
|
|
386
|
-
height:
|
|
385
|
+
width: 140px;
|
|
386
|
+
height: 56px;
|
|
387
387
|
|
|
388
388
|
.timeline-dates {
|
|
389
389
|
margin: 0px;
|
|
390
|
-
width:
|
|
390
|
+
width: 980px;
|
|
391
391
|
|
|
392
392
|
line-height: normal;
|
|
393
393
|
font-weight: 700;
|
|
@@ -405,8 +405,17 @@ export default {
|
|
|
405
405
|
line-height: normal;
|
|
406
406
|
opacity: 1;
|
|
407
407
|
box-sizing: border-box;
|
|
408
|
-
height:
|
|
409
|
-
width:
|
|
408
|
+
height: 56px;
|
|
409
|
+
width: 112px;
|
|
410
|
+
min-width: 112px;
|
|
411
|
+
background: #FFFFFF;
|
|
412
|
+
display: flex;
|
|
413
|
+
align-items: center;
|
|
414
|
+
justify-content: center;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.ant-btn .anticon {
|
|
418
|
+
color: #94979E;
|
|
410
419
|
}
|
|
411
420
|
}
|
|
412
421
|
|
|
@@ -414,33 +423,48 @@ export default {
|
|
|
414
423
|
border-radius: 6px;
|
|
415
424
|
border: 1px solid #CDCFD4;
|
|
416
425
|
margin: 0px;
|
|
417
|
-
|
|
426
|
+
padding: 0;
|
|
427
|
+
width: 140px;
|
|
418
428
|
opacity: 1;
|
|
419
429
|
box-sizing: border-box;
|
|
420
|
-
height:
|
|
430
|
+
height: 56px;
|
|
431
|
+
flex: 0 0 140px;
|
|
432
|
+
display: flex;
|
|
433
|
+
flex-direction: column;
|
|
434
|
+
align-items: center;
|
|
435
|
+
justify-content: center;
|
|
436
|
+
text-align: center;
|
|
421
437
|
|
|
422
438
|
.date {
|
|
423
|
-
font-
|
|
424
|
-
|
|
439
|
+
font-family: Inter;
|
|
440
|
+
font-size: 14px;
|
|
441
|
+
font-weight: normal;
|
|
442
|
+
line-height: 17px;
|
|
443
|
+
height: 17px;
|
|
444
|
+
opacity: 1;
|
|
445
|
+
display: block;
|
|
425
446
|
letter-spacing: 0px;
|
|
426
|
-
font-
|
|
427
|
-
font-family: "Source Han Sans";
|
|
428
|
-
align-items: center;
|
|
429
|
-
justify-content: center;
|
|
447
|
+
font-feature-settings: "kern" on;
|
|
430
448
|
color: #313131;
|
|
449
|
+
width: auto;
|
|
450
|
+
text-align: center;
|
|
431
451
|
}
|
|
432
452
|
|
|
433
453
|
.weekday {
|
|
434
|
-
font-
|
|
435
|
-
|
|
454
|
+
font-family: Inter;
|
|
455
|
+
font-size: 18px;
|
|
456
|
+
font-weight: bold;
|
|
457
|
+
line-height: 17px;
|
|
458
|
+
display: block;
|
|
436
459
|
letter-spacing: 0px;
|
|
437
|
-
font-
|
|
438
|
-
font-family: "Source Han Sans";
|
|
439
|
-
align-items: center;
|
|
460
|
+
font-feature-settings: "kern" on;
|
|
440
461
|
color: #313131;
|
|
441
|
-
|
|
442
|
-
margin
|
|
462
|
+
padding: 11px 0 2px 0;
|
|
463
|
+
margin: 0 !important;
|
|
464
|
+
width: auto;
|
|
465
|
+
text-align: center;
|
|
443
466
|
}
|
|
467
|
+
|
|
444
468
|
.date-item.ant-btn-primary .weekday,
|
|
445
469
|
.date-item.ant-btn-primary .date {
|
|
446
470
|
color: #ffffff !important;
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
@change="onChange">
|
|
23
23
|
<a-icon slot="prefix" type="search"/>
|
|
24
24
|
</a-input>
|
|
25
|
-
<span v-if="config.addParent
|
|
25
|
+
<span v-if="config.addParent?.isShow" style="margin-left: 10px;">
|
|
26
26
|
<a-icon
|
|
27
|
-
:type="config.addParent
|
|
28
|
-
:style="{ fontSize: config.addParent
|
|
29
|
-
@click="addParent(config.addParent
|
|
27
|
+
:type="config.addParent?.icon || 'plus-square'"
|
|
28
|
+
:style="{ fontSize: config.addParent?.size || '30px', color: config.addParent?.color }"
|
|
29
|
+
@click="addParent(config.addParent?.func)"
|
|
30
30
|
/>
|
|
31
31
|
</span>
|
|
32
32
|
</div>
|
|
@@ -74,7 +74,7 @@ export default {
|
|
|
74
74
|
const attrs = this.$attrs || {}
|
|
75
75
|
const classes = {}
|
|
76
76
|
const booleanStyleKeys = [
|
|
77
|
-
'compact'
|
|
77
|
+
'compact', 'out-checkbox'
|
|
78
78
|
]
|
|
79
79
|
booleanStyleKeys.forEach(key => {
|
|
80
80
|
const val = attrs[key]
|
|
@@ -131,4 +131,51 @@ export default {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
+
|
|
135
|
+
/* out-checkbox:外排版紧凑风格,与表单风格配置保持一致的布尔开关用法 */
|
|
136
|
+
.x-checkbox-container.x-checkbox-out-checkbox {
|
|
137
|
+
margin-top: 9px;
|
|
138
|
+
|
|
139
|
+
:deep(.x-checkbox-group) {
|
|
140
|
+
justify-content: flex-start;
|
|
141
|
+
flex-wrap: wrap;
|
|
142
|
+
gap: 0 46px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
:deep(.x-checkbox-item-container) {
|
|
146
|
+
flex: 0 0 auto;
|
|
147
|
+
align-items: flex-start;
|
|
148
|
+
text-align: left;
|
|
149
|
+
padding: 0;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
:deep(.x-checkbox-item) {
|
|
153
|
+
margin: 0;
|
|
154
|
+
display: flex;
|
|
155
|
+
align-items: center;
|
|
156
|
+
|
|
157
|
+
.ant-checkbox {
|
|
158
|
+
width: 20px;
|
|
159
|
+
height: 20px;
|
|
160
|
+
margin-right: 10px;
|
|
161
|
+
|
|
162
|
+
.ant-checkbox-inner {
|
|
163
|
+
width: 20px;
|
|
164
|
+
height: 20px;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* 文字标签样式 */
|
|
169
|
+
span {
|
|
170
|
+
height: 23px;
|
|
171
|
+
opacity: 1;
|
|
172
|
+
font-family: 'Source Han Sans', sans-serif;
|
|
173
|
+
font-size: 16px;
|
|
174
|
+
font-weight: normal;
|
|
175
|
+
line-height: normal;
|
|
176
|
+
letter-spacing: 0em;
|
|
177
|
+
color: #313131;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
134
181
|
</style>
|
|
@@ -131,7 +131,7 @@ export default {
|
|
|
131
131
|
const attrs = this.$attrs || {}
|
|
132
132
|
const classes = {}
|
|
133
133
|
const booleanStyleKeys = [
|
|
134
|
-
'item-0padding', 'compact'
|
|
134
|
+
'item-0padding', 'compact', 'out-radio'
|
|
135
135
|
]
|
|
136
136
|
booleanStyleKeys.forEach(key => {
|
|
137
137
|
const val = attrs[key]
|
|
@@ -319,4 +319,71 @@ export default {
|
|
|
319
319
|
}
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
|
+
/* 门诊收费样式:字体规格与间距 42px */
|
|
323
|
+
.x-radio-out-radio {
|
|
324
|
+
&.x-radio-container,
|
|
325
|
+
.x-radio-container {
|
|
326
|
+
:deep(.x-radio-group) {
|
|
327
|
+
justify-content: flex-start !important; /* 覆盖默认的 space-around */
|
|
328
|
+
}
|
|
329
|
+
:deep(.ant-radio-wrapper) {
|
|
330
|
+
/* 仅归零内外边距,避免额外空隙 */
|
|
331
|
+
padding: 0;
|
|
332
|
+
margin: 0;
|
|
333
|
+
}
|
|
334
|
+
/* 确保文字本身也应用同样的字体样式(提高优先级并可视化高度) */
|
|
335
|
+
:deep(.ant-radio-wrapper > span:last-child) {
|
|
336
|
+
display: inline-block;
|
|
337
|
+
height: 23px !important;
|
|
338
|
+
line-height: 23px !important;
|
|
339
|
+
font-family: "Source Han Sans" !important;
|
|
340
|
+
font-size: 16px !important;
|
|
341
|
+
font-weight: normal !important;
|
|
342
|
+
letter-spacing: 0em !important;
|
|
343
|
+
color: #313131 !important;
|
|
344
|
+
}
|
|
345
|
+
/* 单选框与文字之间保持 5px 间距 */
|
|
346
|
+
:deep(.ant-radio) { margin-right: 0; }
|
|
347
|
+
:deep(.ant-radio + span) { padding: 0; margin-left: 5px; }
|
|
348
|
+
/* 单选框外圈视觉 16x16,边框 #CDCFD4,背景白色 */
|
|
349
|
+
:deep(.ant-radio-inner) {
|
|
350
|
+
width: 16px;
|
|
351
|
+
height: 16px;
|
|
352
|
+
background: #FFFFFF;
|
|
353
|
+
box-sizing: border-box;
|
|
354
|
+
border: 1px solid #CDCFD4;
|
|
355
|
+
}
|
|
356
|
+
/* 选中时内部实心点 10x10,背景 #0057FE */
|
|
357
|
+
:deep(.ant-radio-checked .ant-radio-inner::after) {
|
|
358
|
+
width: 10px;
|
|
359
|
+
height: 10px;
|
|
360
|
+
background: #0057FE;
|
|
361
|
+
margin: 0;
|
|
362
|
+
left: 50%;
|
|
363
|
+
top: 50%;
|
|
364
|
+
transform: translate(-50%, -50%) scale(1);
|
|
365
|
+
}
|
|
366
|
+
/* 保持外圈边框颜色不被默认覆盖 */
|
|
367
|
+
:deep(.ant-radio-checked .ant-radio-inner) {
|
|
368
|
+
border-color: #CDCFD4;
|
|
369
|
+
background: #FFFFFF;
|
|
370
|
+
}
|
|
371
|
+
:deep(.x-radio-item-container) {
|
|
372
|
+
margin-right: 42px; /* 直接设置42px间距,让第二个单选框与第一个文字距离为42px */
|
|
373
|
+
padding: 0 !important;
|
|
374
|
+
flex: none !important; /* 覆盖默认的 flex: 1 */
|
|
375
|
+
align-items: flex-start !important; /* 覆盖默认的 center */
|
|
376
|
+
text-align: left !important; /* 覆盖默认的 center */
|
|
377
|
+
}
|
|
378
|
+
:deep(.x-radio-item-wrapper) {
|
|
379
|
+
width: auto !important; /* 覆盖默认的 width: 100% */
|
|
380
|
+
}
|
|
381
|
+
:deep(.x-radio-item-container:first-child) {
|
|
382
|
+
margin-left: 4px;
|
|
383
|
+
}
|
|
384
|
+
:deep(.x-radio-item-container:last-child) {
|
|
385
|
+
margin-right: 0;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
322
389
|
</style>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<a-range-picker
|
|
7
7
|
:value="dateRange"
|
|
8
8
|
:placeholder="['开始日期', '结束日期']"
|
|
9
|
-
separator="
|
|
9
|
+
:separator="rangeSeparator"
|
|
10
10
|
:disabled="disabled"
|
|
11
11
|
:allowClear="allowClear"
|
|
12
12
|
:format="format"
|
|
@@ -90,6 +90,9 @@ export default {
|
|
|
90
90
|
showTime () {
|
|
91
91
|
// 根据format判断是否需要显示时间选择器
|
|
92
92
|
return this.format && (this.format.includes('HH:mm') || this.format.includes('hh:mm'))
|
|
93
|
+
},
|
|
94
|
+
rangeSeparator () {
|
|
95
|
+
return this.type === 'range' ? '-' : '至'
|
|
93
96
|
}
|
|
94
97
|
},
|
|
95
98
|
watch: {
|
|
@@ -199,10 +202,12 @@ export default {
|
|
|
199
202
|
.x-time-select :deep(.ant-picker-range),
|
|
200
203
|
.x-time-select :deep(.ant-picker) {
|
|
201
204
|
width: 100%;
|
|
202
|
-
height:
|
|
205
|
+
height: 32px;
|
|
203
206
|
border-radius: 7px;
|
|
204
207
|
background: #FFFFFF;
|
|
205
208
|
border: 1px solid #E5E9F0;
|
|
209
|
+
box-sizing: border-box;
|
|
210
|
+
opacity: 1;
|
|
206
211
|
}
|
|
207
212
|
.x-time-select :deep(.ant-calendar-picker) {
|
|
208
213
|
width: 100%;
|
|
@@ -210,10 +215,12 @@ export default {
|
|
|
210
215
|
}
|
|
211
216
|
.x-time-select :deep(.ant-calendar-picker-input) {
|
|
212
217
|
width: 100%;
|
|
213
|
-
height:
|
|
218
|
+
height: 32px;
|
|
214
219
|
border-radius: 7px;
|
|
215
220
|
background: #FFFFFF;
|
|
216
221
|
border: 1px solid #E5E9F0;
|
|
222
|
+
box-sizing: border-box;
|
|
223
|
+
opacity: 1;
|
|
217
224
|
}
|
|
218
225
|
|
|
219
226
|
.x-time-select :deep(.ant-input) {
|
|
@@ -237,16 +244,28 @@ export default {
|
|
|
237
244
|
|
|
238
245
|
/* 为日期输入增加左内边距,避免与图标重叠(兼容 ant 不同版本) */
|
|
239
246
|
.x-time-select :deep(.ant-picker-input > input) {
|
|
240
|
-
padding-left:
|
|
247
|
+
padding-left: 19px;
|
|
248
|
+
padding-right: 19px;
|
|
249
|
+
font-family: 'Source Han Sans';
|
|
250
|
+
font-weight: normal;
|
|
251
|
+
line-height: normal;
|
|
252
|
+
text-align: center;
|
|
253
|
+
color: #313131;
|
|
241
254
|
}
|
|
242
255
|
.x-time-select :deep(.ant-calendar-picker-input) {
|
|
243
|
-
padding-left:
|
|
256
|
+
padding-left: 19px;
|
|
257
|
+
padding-right: 19px;
|
|
258
|
+
font-family: 'Source Han Sans';
|
|
259
|
+
font-size: 16px;
|
|
260
|
+
font-weight: normal;
|
|
261
|
+
line-height: normal;
|
|
262
|
+
text-align: center;
|
|
263
|
+
color: #313131;
|
|
244
264
|
}
|
|
245
265
|
|
|
246
|
-
/* yizhu-date 样式(通过 $attrs 使用:<XTimeSelect yizhu-date />) */
|
|
247
266
|
.x-time-select.xtime-yizhu-date {
|
|
248
|
-
margin:
|
|
249
|
-
width:
|
|
267
|
+
margin: 5px 11px auto 24px;
|
|
268
|
+
width: 234px;
|
|
250
269
|
height: 32px;
|
|
251
270
|
border-radius: 7px;
|
|
252
271
|
opacity: 1;
|
|
@@ -260,10 +279,28 @@ export default {
|
|
|
260
279
|
.x-time-select.xtime-yizhu-date :deep(.ant-picker),
|
|
261
280
|
.x-time-select.xtime-yizhu-date :deep(.ant-calendar-picker),
|
|
262
281
|
.x-time-select.xtime-yizhu-date :deep(.ant-calendar-picker-input) {
|
|
263
|
-
width:
|
|
282
|
+
width: 234px;
|
|
264
283
|
height: 32px;
|
|
265
284
|
border-radius: 7px;
|
|
266
285
|
background: #FFFFFF;
|
|
267
286
|
border: 1px solid #E5E9F0;
|
|
268
287
|
}
|
|
288
|
+
|
|
289
|
+
/* 范围选择时,避免分隔符遮挡文字:左输入靠右、右输入靠左,并在分隔符侧增加内边距 */
|
|
290
|
+
.x-time-select.xtime-yizhu-date :deep(.ant-picker-range .ant-picker-input:first-child input) {
|
|
291
|
+
text-align: right;
|
|
292
|
+
padding-right: 28px;
|
|
293
|
+
}
|
|
294
|
+
.x-time-select.xtime-yizhu-date :deep(.ant-picker-range .ant-picker-input:last-child input) {
|
|
295
|
+
text-align: left;
|
|
296
|
+
padding-left: 28px;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/* 分隔符与清除按钮占位优化,减少遮挡概率 */
|
|
300
|
+
.x-time-select.xtime-yizhu-date :deep(.ant-picker-range .ant-picker-separator) {
|
|
301
|
+
margin: 0 4px;
|
|
302
|
+
}
|
|
303
|
+
.x-time-select.xtime-yizhu-date :deep(.ant-picker-clear) {
|
|
304
|
+
right: 6px;
|
|
305
|
+
}
|
|
269
306
|
</style>
|
|
@@ -70,7 +70,9 @@ const wrapperClassObject = computed(() => {
|
|
|
70
70
|
'littlefont',
|
|
71
71
|
'dot',
|
|
72
72
|
'nodot',
|
|
73
|
-
'yizhu-title'
|
|
73
|
+
'yizhu-title',
|
|
74
|
+
'left-title',
|
|
75
|
+
'line-style'
|
|
74
76
|
]
|
|
75
77
|
booleanStyleKeys.forEach(key => {
|
|
76
78
|
const val = attrs[key]
|
|
@@ -199,7 +201,6 @@ onMounted(() => {
|
|
|
199
201
|
}
|
|
200
202
|
}
|
|
201
203
|
|
|
202
|
-
// dot 和 nodot 样式的公共部分
|
|
203
204
|
.x-title-dot,
|
|
204
205
|
.x-title-nodot {
|
|
205
206
|
&.x-title-container,
|
|
@@ -242,6 +243,20 @@ onMounted(() => {
|
|
|
242
243
|
}
|
|
243
244
|
}
|
|
244
245
|
}
|
|
246
|
+
.x-title-left-title {
|
|
247
|
+
&.x-title-container,
|
|
248
|
+
.x-title-container {
|
|
249
|
+
margin: 15px auto 15px 6px;
|
|
250
|
+
:deep(.x-title) {
|
|
251
|
+
height: 26px;
|
|
252
|
+
opacity: 1;
|
|
253
|
+
font-family: "Source Han Sans";
|
|
254
|
+
font-size: 18px;
|
|
255
|
+
font-weight: bold;
|
|
256
|
+
line-height: normal;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
245
260
|
// nodot 样式特有部分
|
|
246
261
|
.x-title-nodot {
|
|
247
262
|
&.x-title-container,
|
|
@@ -252,4 +267,8 @@ onMounted(() => {
|
|
|
252
267
|
}
|
|
253
268
|
}
|
|
254
269
|
}
|
|
270
|
+
.x-title-line-style {
|
|
271
|
+
background: #0057FE;
|
|
272
|
+
height: 2px;
|
|
273
|
+
}
|
|
255
274
|
</style>
|
|
@@ -53,9 +53,8 @@ routerResource.newDynamicStatistics = () => import('@vue2-client/pages/NewDynami
|
|
|
53
53
|
routerResource.example = {
|
|
54
54
|
path: 'example',
|
|
55
55
|
name: '示例主页面',
|
|
56
|
-
component: () => import('@vue2-client/base-client/components/common/XForm/demo.vue')
|
|
57
56
|
// component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo2.vue'),
|
|
58
|
-
|
|
57
|
+
component: () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue'),
|
|
59
58
|
// component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
|
|
60
59
|
// component: () => import('@vue2-client/pages/addressSelect/addressDemo.vue'),
|
|
61
60
|
// component: () => import('@vue2-client/base-client/components/common/XDescriptions/demo.vue'),
|