vue2-client 1.16.82 → 1.16.84

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 (34) hide show
  1. package/package.json +112 -112
  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 +381 -369
  5. package/src/base-client/components/common/HIS/HForm/HForm.vue +348 -177
  6. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  7. package/src/base-client/components/common/XCollapse/XCollapse.vue +833 -833
  8. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +1 -1
  9. package/src/base-client/components/common/XInput/XInput.vue +194 -194
  10. package/src/base-client/components/common/XTable/XTable.vue +1610 -1610
  11. package/src/base-client/components/common/XTimeline/XTimeline.vue +462 -454
  12. package/src/base-client/components/his/XCheckbox/XCheckbox.vue +181 -134
  13. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  14. package/src/base-client/components/his/XIcon/XIcon.vue +73 -73
  15. package/src/base-client/components/his/XIcon/index.js +3 -3
  16. package/src/base-client/components/his/XIcon/index.md +177 -177
  17. package/src/base-client/components/his/XList/XList.vue +829 -829
  18. package/src/base-client/components/his/XRadio/XRadio.vue +389 -322
  19. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +159 -159
  20. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +306 -269
  21. package/src/base-client/components/his/XTitle/XTitle.vue +269 -255
  22. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  23. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  24. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  25. package/src-base-client/components/common/HIS/HForm/HForm.vue +348 -0
  26. package/src/assets/img/paymentMethod/icon1.png +0 -0
  27. package/src/assets/img/paymentMethod/icon2.png +0 -0
  28. package/src/assets/img/paymentMethod/icon3.png +0 -0
  29. package/src/assets/img/paymentMethod/icon4.png +0 -0
  30. package/src/assets/img/paymentMethod/icon5.png +0 -0
  31. package/src/assets/img/paymentMethod/icon6.png +0 -0
  32. package/src/base-client/components/common/XReport/XReportHospitalizationDemo.vue +0 -45
  33. package/src-base-client/components/his/XCharge/XCharge.vue +0 -0
  34. /package/src-base-client/components/{his/XCharge/README.md → common/XCollapse/XCollapse.vue} +0 -0
@@ -1,177 +1,348 @@
1
- <script setup lang="ts">
2
- import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
3
- import { ref, computed, useAttrs, defineProps } from 'vue'
4
-
5
- const xAddNativeFormRef = ref()
6
-
7
- const attrs = useAttrs()
8
- const props = defineProps({
9
- // 是否启用 horizontal 模式的自定义配置
10
- enableHorizontalCustom: {
11
- type: Boolean,
12
- default: false
13
- }
14
- })
15
- const wrapperClassObject = computed(() => {
16
- const a = attrs
17
- const classes = {}
18
-
19
- // 1) 多个布尔型样式开关(存在且为真则生效)
20
- const booleanStyleKeys = [
21
- 'query-conditions',
22
- 'padding-50',
23
- 'label-text-horizontal',
24
- 'item-control-width90',
25
- 'label-text-justify',
26
- 'item-control-width700',
27
- ]
28
- for (const key of booleanStyleKeys) {
29
- const val = a[key]
30
- const truthy = val === true || val === '' || val === 'true'
31
- if (truthy) classes[`h-form-${key}`] = true
32
- }
33
- return classes
34
- })
35
-
36
- defineExpose({
37
- getXAddNativeFormInstance: () => xAddNativeFormRef.value,
38
- init: (params) => xAddNativeFormRef.value && xAddNativeFormRef.value.init && xAddNativeFormRef.value.init(params),
39
- asyncSubmit: () => xAddNativeFormRef.value && xAddNativeFormRef.value.asyncSubmit && xAddNativeFormRef.value.asyncSubmit(),
40
- validateForm: () => xAddNativeFormRef.value && xAddNativeFormRef.value.validateForm && xAddNativeFormRef.value.validateForm()
41
- })
42
-
43
- </script>
44
-
45
- <template>
46
- <div
47
- class="h-form-wrapper"
48
- :class="[
49
- wrapperClassObject
50
- ]"
51
- >
52
-
53
- <x-add-native-form
54
- ref="xAddNativeFormRef"
55
- v-bind="$attrs"
56
- :enable-horizontal-custom="props.enableHorizontalCustom"
57
- v-on="$listeners"
58
- >
59
- <template v-for="(_, name) in $slots" #[name]="slotData">
60
- <slot :name="name" v-bind="slotData" />
61
- </template>
62
- </x-add-native-form>
63
- </div>
64
- </template>
65
-
66
- <style scoped lang="less">
67
- .h-form-wrapper {
68
- // 基础样式
69
- :deep(.ant-form-item) {
70
- margin-bottom: 4px;
71
- }
72
-
73
- // query-conditions 样式
74
- &.h-form-query-conditions {
75
- // ant-card-body 样式
76
- :deep(.ant-card-body) {
77
- padding: 0px;
78
- }
79
-
80
- // ant-row-flex 样式
81
- :deep(.ant-row-flex) {
82
- // x-form-col-wrapper 样式
83
- .x-form-col-wrapper {
84
- .ant-form-item {
85
- display: flex;
86
- width: 100%;
87
- margin-bottom: 4px;
88
- justify-content: space-between;
89
-
90
- .ant-form-item-label {
91
- padding-left: 4px;
92
- width: 100%;
93
- }
94
-
95
- .ant-form-item-control-wrapper {
96
- padding-left: -6px;
97
- }
98
- }
99
- }
100
-
101
- // ant-col-24 样式
102
- .ant-col-24 {
103
- padding: 0px 4px !important;
104
- }
105
- }
106
- }
107
-
108
- &.h-form-padding-50 {
109
- // ant-row-flex 样式
110
- :deep(.ant-row-flex) {
111
- padding-left: 50px;
112
- padding-right: 50px
113
- }
114
- }
115
-
116
- // label-text-horizontal 样式 - 只控制label文字从左到右排列
117
- &.h-form-label-text-horizontal {
118
- :deep(.ant-form-item-label) {
119
- text-align: left;
120
- direction: ltr;
121
-
122
- // 标签文字水平排列
123
- .ant-form-item-label-text {
124
- display: inline-block;
125
- text-align: left;
126
- direction: ltr;
127
- unicode-bidi: normal;
128
- }
129
-
130
- // 必填标识水平排列
131
- .ant-form-item-required::before {
132
- margin-right: 4px;
133
- margin-left: 0;
134
- }
135
- }
136
- }
137
-
138
- // label-text-justify 样式 - 标签文字两端对齐分散占满 必填*可能会有问题
139
- &.h-form-label-text-justify {
140
- :deep(.ant-form-item-label) {
141
- padding-left: 0;
142
- padding-right: 8px;
143
- label {
144
- position: relative;
145
- display: block;
146
- width: 100%;
147
- white-space: nowrap;
148
- margin: 0;
149
- text-indent: 0;
150
- text-align: justify;
151
- text-align-last: justify;
152
- text-justify: inter-ideograph;
153
- box-sizing: border-box;
154
- padding-right: 12px; // 给绝对定位的冒号留出空间
155
- }
156
- // 将冒号绝对定位到最右侧,避免参与两端对齐计算
157
- label::after {
158
- position: absolute;
159
- right: 0;
160
- }
161
- }
162
- }
163
-
164
- /**表单项90%宽度 */
165
- &.h-form-item-control-width90 {
166
- :deep(.ant-form-item-control){
167
- width: 90%;
168
- }
169
- }
170
- /**表单项700宽度 */
171
- &.h-form-item-control-width700{
172
- :deep(.ant-form-item-control-wrapper){
173
- width: 700px;
174
- }
175
- }
176
- }
177
- </style>
1
+ <script setup lang="ts">
2
+ import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
3
+ import { ref, computed, useAttrs } from 'vue'
4
+
5
+ const xAddNativeFormRef = ref()
6
+
7
+ const attrs = useAttrs()
8
+ const wrapperClassObject = computed(() => {
9
+ const a = attrs
10
+ const classes = {}
11
+
12
+ // 1) 多个布尔型样式开关(存在且为真则生效)
13
+ const booleanStyleKeys = [
14
+ 'query-conditions',
15
+ 'padding-50',
16
+ 'label-text-horizontal',
17
+ 'label-text-justify',
18
+ 'left-form',
19
+ 'charge-form'
20
+ ]
21
+ for (const key of booleanStyleKeys) {
22
+ const val = a[key]
23
+ const truthy = val === true || val === '' || val === 'true'
24
+ if (truthy) classes[`h-form-${key}`] = true
25
+ }
26
+ return classes
27
+ })
28
+
29
+ defineExpose({
30
+ getXAddNativeFormInstance: () => xAddNativeFormRef.value,
31
+ init: (params) => xAddNativeFormRef.value && xAddNativeFormRef.value.init && xAddNativeFormRef.value.init(params),
32
+ asyncSubmit: () => xAddNativeFormRef.value && xAddNativeFormRef.value.asyncSubmit && xAddNativeFormRef.value.asyncSubmit(),
33
+ validateForm: () => xAddNativeFormRef.value && xAddNativeFormRef.value.validateForm && xAddNativeFormRef.value.validateForm()
34
+ })
35
+
36
+ </script>
37
+
38
+ <template>
39
+ <div
40
+ class="h-form-wrapper"
41
+ :class="[
42
+ wrapperClassObject
43
+ ]"
44
+ >
45
+
46
+ <x-add-native-form
47
+ ref="xAddNativeFormRef"
48
+ v-bind="$attrs"
49
+ v-on="$listeners"
50
+ >
51
+ <template v-for="(_, name) in $slots" #[name]="slotData">
52
+ <slot :name="name" v-bind="slotData" />
53
+ </template>
54
+ </x-add-native-form>
55
+ </div>
56
+ </template>
57
+
58
+ <style scoped lang="less">
59
+ .h-form-wrapper {
60
+ // 基础样式
61
+ :deep(.ant-form-item) {
62
+ margin-bottom: 4px;
63
+ }
64
+
65
+ // query-conditions 样式
66
+ &.h-form-query-conditions {
67
+ // ant-card-body 样式
68
+ :deep(.ant-card-body) {
69
+ padding: 0px;
70
+ }
71
+
72
+ // ant-row-flex 样式
73
+ :deep(.ant-row-flex) {
74
+ // x-form-col-wrapper 样式
75
+ .x-form-col-wrapper {
76
+ .ant-form-item {
77
+ display: flex;
78
+ width: 100%;
79
+ margin-bottom: 4px;
80
+ justify-content: space-between;
81
+
82
+ .ant-form-item-label {
83
+ padding-left: 4px;
84
+ width: 100%;
85
+ }
86
+
87
+ .ant-form-item-control-wrapper {
88
+ padding-left: -6px;
89
+ }
90
+ }
91
+ }
92
+
93
+ // ant-col-24 样式
94
+ .ant-col-24 {
95
+ padding: 0px 4px !important;
96
+ }
97
+ }
98
+ }
99
+
100
+ &.h-form-padding-50 {
101
+ // ant-row-flex 样式
102
+ :deep(.ant-row-flex) {
103
+ padding-left: 50px;
104
+ padding-right: 50px
105
+ }
106
+ }
107
+
108
+ // charge-form 样式
109
+ &.h-form-charge-form {
110
+ margin-top: 2px !important;
111
+ // 定义变量
112
+ @font-common: {
113
+ font-family: 'Source Han Sans', sans-serif;
114
+ font-size: 16px;
115
+ font-weight: normal;
116
+ letter-spacing: 0em;
117
+ font-variation-settings: "opsz" auto;
118
+ font-feature-settings: "kern" on;
119
+ };
120
+
121
+ @color-primary: #313131;
122
+ @color-placeholder: #999999;
123
+
124
+ // 定义混合宏
125
+ .input-base() {
126
+ width: 100%;
127
+ height: 30px;
128
+ line-height: 30px;
129
+ vertical-align: top;
130
+ margin: 0;
131
+ text-align: left;
132
+ color: @color-primary;
133
+ opacity: 1;
134
+ @font-common();
135
+ }
136
+
137
+ .placeholder-base() {
138
+ color: @color-placeholder;
139
+ opacity: 1;
140
+ @font-common();
141
+ }
142
+
143
+ .option-group-base() {
144
+ height: 30px;
145
+ line-height: 30px;
146
+ display: flex;
147
+ align-items: center;
148
+
149
+ .ant-radio-wrapper,
150
+ .ant-checkbox-wrapper {
151
+ height: 30px;
152
+ line-height: 30px;
153
+ margin-right: 16px;
154
+ }
155
+ }
156
+
157
+ :deep(.ant-form-item) {
158
+ margin-bottom: 16px;
159
+ margin-top: 0;
160
+ padding: 0;
161
+ display: flex;
162
+ align-items: center;
163
+
164
+ .ant-form-item-label {
165
+ text-align: left;
166
+ margin: 0 16px 0 0 !important;
167
+ width: 64px;
168
+ min-width: 64px;
169
+ max-width: 64px;
170
+ flex-shrink: 0;
171
+
172
+ label {
173
+ height: 23px;
174
+ opacity: 1;
175
+ line-height: 23px;
176
+ color: @color-primary;
177
+ margin: 0;
178
+ padding: 0;
179
+ white-space: nowrap;
180
+ display: block;
181
+ @font-common();
182
+
183
+ // 移除冒号
184
+ &::after {
185
+ content: '';
186
+ }
187
+ }
188
+ }
189
+
190
+ .ant-form-item-control-wrapper {
191
+ margin: 0;
192
+ padding: 0;
193
+ flex: 1;
194
+ min-width: 0;
195
+ display: flex;
196
+ align-items: center;
197
+
198
+ .ant-form-item-control {
199
+ margin: 0;
200
+ padding: 0;
201
+ width: 100%;
202
+ text-align: left;
203
+ line-height: 30px !important;
204
+
205
+ // 输入框样式统一
206
+ .ant-input,
207
+ .ant-input-affix-wrapper,
208
+ .ant-select,
209
+ .ant-input-number,
210
+ .ant-picker,
211
+ .ant-radio-group,
212
+ .ant-checkbox-group {
213
+ .input-base();
214
+ }
215
+
216
+ // 选择器样式
217
+ .ant-select {
218
+ .ant-select-selector {
219
+ .input-base();
220
+ height: 30px;
221
+ line-height: 30px;
222
+
223
+ .ant-select-selection-item {
224
+ .input-base();
225
+ line-height: 30px;
226
+ }
227
+
228
+ .ant-select-selection-placeholder {
229
+ .placeholder-base();
230
+ line-height: 30px;
231
+ }
232
+ }
233
+ }
234
+
235
+ // 日期选择器样式
236
+ .ant-picker {
237
+ height: 30px;
238
+
239
+ .ant-picker-input {
240
+ height: 30px;
241
+ line-height: 30px;
242
+ .input-base();
243
+
244
+ input {
245
+ .input-base();
246
+ height: 30px;
247
+ line-height: 30px;
248
+ }
249
+ }
250
+ }
251
+
252
+ // 数字输入框样式
253
+ .ant-input-number {
254
+ height: 30px;
255
+
256
+ .ant-input-number-input {
257
+ .input-base();
258
+ height: 30px;
259
+ line-height: 30px;
260
+ }
261
+ }
262
+
263
+ // 单选框组样式
264
+ .ant-radio-group {
265
+ .option-group-base();
266
+ }
267
+
268
+ // 复选框组样式
269
+ .ant-checkbox-group {
270
+ .option-group-base();
271
+ }
272
+ }
273
+ }
274
+ }
275
+
276
+ // 重置可能的容器边距
277
+ :deep(.ant-row) {
278
+ margin: 0;
279
+ padding: 0;
280
+
281
+ .ant-col {
282
+ margin: 0;
283
+ padding: 0;
284
+ }
285
+ }
286
+
287
+ // 强制重置所有可能的表单项样式
288
+ :deep(.ant-form-item) {
289
+ margin: 0 0 16px 0 !important;
290
+
291
+ // 重置可能的内部边距
292
+ .ant-form-item-control-input,
293
+ .ant-form-item-control-input-content {
294
+ margin: 0 !important;
295
+ padding: 0 !important;
296
+ }
297
+ }
298
+ }
299
+
300
+ // label-text-horizontal 样式 - 只控制label文字从左到右排列
301
+ &.h-form-label-text-horizontal {
302
+ :deep(.ant-form-item-label) {
303
+ text-align: left;
304
+ direction: ltr;
305
+
306
+ // 标签文字水平排列
307
+ .ant-form-item-label-text {
308
+ display: inline-block;
309
+ text-align: left;
310
+ direction: ltr;
311
+ unicode-bidi: normal;
312
+ }
313
+
314
+ // 必填标识水平排列
315
+ .ant-form-item-required::before {
316
+ margin-right: 4px;
317
+ margin-left: 0;
318
+ }
319
+ }
320
+ }
321
+
322
+ // label-text-justify 样式 - 标签文字两端对齐分散占满 必填*可能会有问题
323
+ &.h-form-label-text-justify {
324
+ :deep(.ant-form-item-label) {
325
+ padding-left: 0;
326
+ padding-right: 8px;
327
+ label {
328
+ position: relative;
329
+ display: block;
330
+ width: 100%;
331
+ white-space: nowrap;
332
+ margin: 0;
333
+ text-indent: 0;
334
+ text-align: justify;
335
+ text-align-last: justify;
336
+ text-justify: inter-ideograph;
337
+ box-sizing: border-box;
338
+ padding-right: 12px; // 给绝对定位的冒号留出空间
339
+ }
340
+ // 将冒号绝对定位到最右侧,避免参与两端对齐计算
341
+ label::after {
342
+ position: absolute;
343
+ right: 0;
344
+ }
345
+ }
346
+ }
347
+ }
348
+ </style>
@@ -1,3 +1,3 @@
1
- import HFormGroup from './HFormGroup.vue'
2
-
3
- export default HFormGroup
1
+ import HFormGroup from './HFormGroup.vue'
2
+
3
+ export default HFormGroup