vue2-client 1.16.46 → 1.16.48

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 (27) hide show
  1. package/package.json +112 -112
  2. package/src/assets/img/paymentMethod/icon1.png +0 -0
  3. package/src/assets/img/paymentMethod/icon2.png +0 -0
  4. package/src/assets/img/paymentMethod/icon3.png +0 -0
  5. package/src/assets/img/paymentMethod/icon4.png +0 -0
  6. package/src/assets/img/paymentMethod/icon5.png +0 -0
  7. package/src/assets/img/paymentMethod/icon6.png +0 -0
  8. package/src/base-client/components/common/HIS/HButtons/HButtons.vue +47 -45
  9. package/src/base-client/components/common/HIS/HForm/HForm.vue +27 -6
  10. package/src/base-client/components/common/HIS/HFormGroup/HFormGroup.vue +120 -120
  11. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  12. package/src/base-client/components/common/HIS/HFormTable/HFormTable.vue +257 -256
  13. package/src/base-client/components/common/HIS/demo.vue +61 -61
  14. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +1178 -1178
  15. package/src/base-client/components/common/XCollapse/XCollapse.vue +461 -461
  16. package/src/base-client/components/common/XInput/XInput.vue +147 -147
  17. package/src/base-client/components/common/XReport/XReportHospitalizationDemo.vue +45 -0
  18. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +824 -824
  19. package/src/base-client/components/common/XTable/XTable.vue +0 -2
  20. package/src/base-client/components/common/XTimeline/XTimeline.vue +454 -454
  21. package/src/base-client/components/his/XCharge/testConfig.js +149 -0
  22. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +6 -1
  23. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  24. package/src/base-client/components/his/XTitle/XTitle.vue +13 -6
  25. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  26. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  27. package/src/router/async/router.map.js +132 -129
@@ -1,256 +1,257 @@
1
- <script setup>
2
- import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
3
- import { ref, computed, useAttrs } from 'vue'
4
-
5
- const props = defineProps({
6
- // HFormTable特有的属性
7
- tableStyle: {
8
- type: String,
9
- default: 'formtable-col1'
10
- }
11
- })
12
-
13
- // 兼容多种样式配置
14
- const attrs = useAttrs()
15
- const wrapperClassObject = computed(() => {
16
- const a = attrs
17
- const classes = {}
18
-
19
- // 通用布尔样式开关(以存在/空字符串/'true' 为真)
20
- const booleanStyleKeys = [
21
- 'button-row-0margin',
22
- 'top-hidden',
23
- 'dialog-style'
24
- ]
25
- for (const key of booleanStyleKeys) {
26
- const val = a[key]
27
- const truthy = val === true || val === '' || val === 'true'
28
- if (truthy) classes[`h-form-table-${key}`] = true
29
- }
30
-
31
- // 兼容通过 attrs 透传的分页样式:将值映射为当前样式中存在的类名
32
- const paginationAttr = a && a.paginationStyle
33
- if (paginationAttr && ['pagination-center', 'custom-pagination'].includes(paginationAttr)) {
34
- classes[`h-form-table-${paginationAttr}`] = true
35
- }
36
- return classes
37
- })
38
-
39
- // 通过暴露的实例访问 $slots,避免直接依赖 Composition API 的 useSlots
40
- // 在模板中使用 `$slots` 遍历以保持与 Vue2 兼容
41
- // 创建对XFormTable组件的引用
42
- const xFormTableRef = ref()
43
-
44
- // 暴露方法给父组件使用
45
- defineExpose({
46
- // 为了兼容性,保留getXFormTableInstance方法
47
- getXFormTableInstance: () => xFormTableRef.value
48
- })
49
-
50
- // 计算是否使用自定义分页(兼容 attrs 透传与 tableStyle 配置)
51
- const isCustomPagination = computed(() => {
52
- const a = attrs
53
- const paginationAttr = (a && a.paginationStyle) || ''
54
- return props.tableStyle === 'custom-pagination' || paginationAttr === 'custom-pagination'
55
- })
56
- </script>
57
-
58
- <template>
59
- <div
60
- class="h-form-table-wrapper"
61
- :class="[
62
- `h-form-table-${tableStyle}`,
63
- wrapperClassObject
64
- ]"
65
- >
66
- <x-form-table
67
- ref="xFormTableRef"
68
- v-bind="$attrs"
69
- :customPagination="isCustomPagination"
70
- v-on="$listeners"
71
- >
72
- <template v-for="(_, name) in $slots" #[name]="slotData">
73
- <slot :name="name" v-bind="slotData" />
74
- </template>
75
- </x-form-table>
76
- </div>
77
- </template>
78
-
79
- <style scoped lang="less">
80
- .h-form-table-wrapper {
81
- // 基础样式
82
- :deep(.table-wrapper) {
83
- .ant-table {
84
- .ant-table-row {
85
- margin: 0px;
86
-
87
- .ant-form-item {
88
- margin: 0px;
89
-
90
- .ant-form-item-control-wrapper {
91
- .ant-form-item-control {
92
- line-height: 0px;
93
-
94
- .ant-select-selection--multiple {
95
- padding-bottom: 2px;
96
- }
97
- }
98
- width: 100%;
99
- }
100
- }
101
- }
102
- font-size: 16px;
103
- }
104
-
105
- .ant-alert-info {
106
- display: none;
107
- }
108
- }
109
-
110
- :deep(.ant-card) {
111
- margin: -10px 0px 29px 0px;
112
- }
113
-
114
- :deep(.ant-btn) {
115
- border: 0px;
116
- box-shadow: none;
117
- padding: 0px;
118
- color: #5D5C5C;
119
- font-weight: bold;
120
- letter-spacing: 0em;
121
- font-size: 18px;
122
- line-height: normal;
123
- font-family: "Source Han Sans";
124
- }
125
-
126
- :deep(.ant-card-body) {
127
- padding: 0 6px;
128
- }
129
-
130
- :deep(.ant-table-small) {
131
- border-width: 0;
132
-
133
- .ant-table-fixed {
134
- border-radius: 0;
135
- border-bottom: 1px solid #f0f0f0;
136
- }
137
- }
138
-
139
- // 表格高度样式
140
- &.h-form-table-height {
141
- :deep(.table-wrapper) {
142
- .ant-select-open ~ .ant-table-content {
143
- height: 500px !important;
144
- }
145
- }
146
- }
147
-
148
- // 表格样式
149
- &.h-form-table-table {
150
- :deep(.ant-table-small .ant-table-fixed-header) {
151
- .ant-table-content {
152
- .ant-table-content {
153
- .ant-table-body {
154
- border-radius: 0 0 4px 4px;
155
- overflow: visible !important;
156
- }
157
- }
158
- }
159
- }
160
- }
161
- &.h-form-table-dialog-style {
162
- /* 选择前面的兄弟元素 */
163
- :global(.ant-col.ant-col-24[name="trGroup"]:has(+ .ant-card .ant-card-body .h-form-table-wrapper.h-form-table-dialog-style)) {
164
- padding-top: 0px !important;
165
- padding-left: 0px !important;
166
- }
167
-
168
- :global(.ant-card-body:has(.h-form-table-wrapper.h-form-table-dialog-style)) {
169
- padding-top: 0px !important;
170
- padding-left: 0px !important;
171
- }
172
- }
173
- // 隐藏按钮区域
174
- &.h-form-table-button-area-hide {
175
- :deep(.ant-btn) {
176
- display: none;
177
- }
178
-
179
- :deep(.table-wrapper) {
180
- margin-top: -39px;
181
- }
182
- }
183
-
184
- // 顶部区域隐藏(与按钮隐藏一致的视觉需求)
185
- &.h-form-table-top-hidden {
186
- :deep(.ant-btn) {
187
- display: none;
188
- }
189
-
190
- :deep(.table-wrapper) {
191
- margin-top: -39px;
192
- }
193
- }
194
-
195
- // 列样式1
196
- &.h-form-table-formtable-col1 {
197
- :deep(.table-wrapper) {
198
- .ant-row {
199
- .ant-col span {
200
- border: none;
201
- width: auto;
202
- margin-bottom: auto;
203
- }
204
- }
205
-
206
- .ant-table {
207
- .ant-table-body {
208
- .ant-table-fixed colgroup col:nth-child(2) {
209
- width: 50px;
210
- min-width: 50px;
211
- }
212
- }
213
-
214
- .ant-table-header {
215
- .ant-table-fixed colgroup col:nth-child(2) {
216
- width: 50px;
217
- min-width: 50px;
218
- }
219
- }
220
- }
221
- }
222
- }
223
-
224
- // 底部分页居中 & 自定义分页样式(共用样式)
225
- &.h-form-table-bottom-center,
226
- &.h-form-table-custom-pagination {
227
- :deep(.table-wrapper) {
228
- .ant-row-flex-start {
229
- position: relative;
230
- display: flex;
231
- align-items: center;
232
- margin-top: 24px !important;
233
-
234
- // 防止第一个子元素无限拉伸,影响分页居中
235
- > :first-child {
236
- flex: 0 0 auto;
237
- }
238
-
239
- // 将第二个子元素(分页)绝对居中
240
- > :nth-child(2) {
241
- position: absolute;
242
- left: 50%;
243
- transform: translateX(-50%);
244
- }
245
- }
246
- }
247
- }
248
-
249
- // 按钮行0margin
250
- &.h-form-table-button-row-0margin {
251
- :deep(.ant-row) {
252
- margin: 0px;
253
- }
254
- }
255
- }
256
- </style>
1
+ <script setup>
2
+ import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
3
+ import { ref, computed, useAttrs } from 'vue'
4
+
5
+ const props = defineProps({
6
+ // HFormTable特有的属性
7
+ tableStyle: {
8
+ type: String,
9
+ default: 'formtable-col1'
10
+ }
11
+ })
12
+
13
+ // 兼容多种样式配置
14
+ const attrs = useAttrs()
15
+ const wrapperClassObject = computed(() => {
16
+ const a = attrs
17
+ const classes = {}
18
+
19
+ // 通用布尔样式开关(以存在/空字符串/'true' 为真)
20
+ const booleanStyleKeys = [
21
+ 'button-row-0margin',
22
+ 'top-hidden',
23
+ 'dialog-style'
24
+ ]
25
+ for (const key of booleanStyleKeys) {
26
+ const val = a[key]
27
+ const truthy = val === true || val === '' || val === 'true'
28
+ if (truthy) classes[`h-form-table-${key}`] = true
29
+ }
30
+
31
+ // 兼容通过 attrs 透传的分页样式:将值映射为当前样式中存在的类名
32
+ const paginationAttr = a && a.paginationStyle
33
+ if (paginationAttr && ['pagination-center', 'custom-pagination'].includes(paginationAttr)) {
34
+ classes[`h-form-table-${paginationAttr}`] = true
35
+ }
36
+ return classes
37
+ })
38
+
39
+ // 通过暴露的实例访问 $slots,避免直接依赖 Composition API 的 useSlots
40
+ // 在模板中使用 `$slots` 遍历以保持与 Vue2 兼容
41
+ // 创建对XFormTable组件的引用
42
+ const xFormTableRef = ref()
43
+
44
+ // 暴露方法给父组件使用
45
+ defineExpose({
46
+ // 为了兼容性,保留getXFormTableInstance方法
47
+ getXFormTableInstance: () => xFormTableRef.value
48
+ })
49
+
50
+ // 计算是否使用自定义分页(兼容 attrs 透传与 tableStyle 配置)
51
+ const isCustomPagination = computed(() => {
52
+ const a = attrs
53
+ const paginationAttr = (a && a.paginationStyle) || ''
54
+ return props.tableStyle === 'custom-pagination' || paginationAttr === 'custom-pagination'
55
+ })
56
+ </script>
57
+
58
+ <template>
59
+ <div
60
+ class="h-form-table-wrapper"
61
+ :class="[
62
+ `h-form-table-${tableStyle}`,
63
+ wrapperClassObject
64
+ ]"
65
+ >
66
+ <x-form-table
67
+ ref="xFormTableRef"
68
+ v-bind="$attrs"
69
+ :customPagination="isCustomPagination"
70
+ v-on="$listeners"
71
+ >
72
+ <template v-for="(_, name) in $slots" #[name]="slotData">
73
+ <slot :name="name" v-bind="slotData" />
74
+ </template>
75
+ </x-form-table>
76
+ </div>
77
+ </template>
78
+
79
+ <style scoped lang="less">
80
+ .h-form-table-wrapper {
81
+ // 基础样式
82
+ :deep(.table-wrapper) {
83
+ .ant-table {
84
+ .ant-table-row {
85
+ margin: 0px;
86
+
87
+ .ant-form-item {
88
+ margin: 0px;
89
+
90
+ .ant-form-item-control-wrapper {
91
+ .ant-form-item-control {
92
+ line-height: 0px;
93
+
94
+ .ant-select-selection--multiple {
95
+ padding-bottom: 2px;
96
+ }
97
+ }
98
+ width: 100%;
99
+ }
100
+ }
101
+ }
102
+ font-size: 16px;
103
+ }
104
+
105
+ .ant-alert-info {
106
+ display: none;
107
+ }
108
+ }
109
+
110
+ :deep(.ant-card) {
111
+ margin: -10px 0px 29px 0px;
112
+ }
113
+
114
+ :deep(.ant-btn) {
115
+ border: 0px;
116
+ box-shadow: none;
117
+ padding: 0px;
118
+ color: #5D5C5C;
119
+ font-weight: bold;
120
+ letter-spacing: 0em;
121
+ font-size: 18px;
122
+ line-height: normal;
123
+ font-family: "Source Han Sans";
124
+ }
125
+
126
+ :deep(.ant-card-body) {
127
+ padding: 0 6px;
128
+ }
129
+
130
+ :deep(.ant-table-small) {
131
+ border-width: 0;
132
+
133
+ .ant-table-fixed {
134
+ border-radius: 0;
135
+ border-bottom: 1px solid #f0f0f0;
136
+ }
137
+ }
138
+
139
+ // 表格高度样式
140
+ &.h-form-table-height {
141
+ :deep(.table-wrapper) {
142
+ .ant-select-open ~ .ant-table-content {
143
+ height: 500px !important;
144
+ }
145
+ }
146
+ }
147
+
148
+ // 表格样式
149
+ &.h-form-table-table {
150
+ :deep(.ant-table-small .ant-table-fixed-header) {
151
+ .ant-table-content {
152
+ .ant-table-content {
153
+ .ant-table-body {
154
+ border-radius: 0 0 4px 4px;
155
+ overflow: visible !important;
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
161
+ &.h-form-table-dialog-style {
162
+ /* 选择前面的兄弟元素 */
163
+ :global(.ant-col.ant-col-24[name="trGroup"]:has(+ .ant-card .ant-card-body .h-form-table-wrapper.h-form-table-dialog-style)) {
164
+ padding-top: 0px !important;
165
+ padding-left: 0px !important;
166
+ }
167
+
168
+ :global(.ant-card-body:has(.h-form-table-wrapper.h-form-table-dialog-style)) {
169
+ padding-top: 0px !important;
170
+ padding-left: 0px !important;
171
+ }
172
+ }
173
+ // 隐藏按钮区域
174
+ &.h-form-table-button-area-hide {
175
+ :deep(.ant-btn) {
176
+ display: none;
177
+ }
178
+
179
+ :deep(.table-wrapper) {
180
+ margin-top: -39px;
181
+ }
182
+ }
183
+
184
+ // 顶部区域隐藏(与按钮隐藏一致的视觉需求)
185
+ &.h-form-table-top-hidden {
186
+ :deep(.ant-btn) {
187
+ display: none;
188
+ }
189
+
190
+ :deep(.table-wrapper) {
191
+ margin-top: -39px;
192
+ }
193
+ }
194
+
195
+ // 列样式1
196
+ &.h-form-table-formtable-col1 {
197
+ :deep(.table-wrapper) {
198
+ .ant-row {
199
+ .ant-col span {
200
+ border: none;
201
+ width: auto;
202
+ margin-bottom: auto;
203
+ }
204
+ }
205
+
206
+ .ant-table {
207
+ .ant-table-body {
208
+ .ant-table-fixed colgroup col:nth-child(2) {
209
+ width: 50px;
210
+ min-width: 50px;
211
+ }
212
+ }
213
+
214
+ .ant-table-header {
215
+ .ant-table-fixed colgroup col:nth-child(2) {
216
+ width: 50px;
217
+ min-width: 50px;
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+
224
+ // 底部分页居中 & 自定义分页样式(共用样式)
225
+ &.h-form-table-bottom-center,
226
+ &.h-form-table-custom-pagination {
227
+ :deep(.table-wrapper) {
228
+ .ant-row-flex-start {
229
+ position: relative;
230
+ display: flex;
231
+ align-items: center;
232
+ margin-top: 12px !important;
233
+ height: 32px;
234
+
235
+ // 防止第一个子元素无限拉伸,影响分页居中
236
+ > :first-child {
237
+ flex: 0 0 auto;
238
+ }
239
+
240
+ // 将第二个子元素(分页)绝对居中
241
+ > :nth-child(2) {
242
+ position: absolute;
243
+ left: 50%;
244
+ transform: translateX(-50%);
245
+ }
246
+ }
247
+ }
248
+ }
249
+
250
+ // 按钮行0margin
251
+ &.h-form-table-button-row-0margin {
252
+ :deep(.ant-row) {
253
+ margin: 0px;
254
+ }
255
+ }
256
+ }
257
+ </style>
@@ -1,61 +1,61 @@
1
- <template>
2
- <div class="h-tab-demo">
3
- <!-- &lt;!&ndash; XTab &ndash;&gt;-->
4
- <!-- <a-card title="XTab">-->
5
- <!-- <h-tab-->
6
- <!-- configName="openPrescriptionTab"-->
7
- <!-- serverName="af-his"-->
8
- <!-- />-->
9
- <!-- </a-card>-->
10
-
11
- <!-- HFormTable -->
12
- <a-card title="HFormTable" style="margin-top: 20px;">
13
- <h-form-table
14
- queryParamsName="outpatientAdviceAllCRUD"
15
- serviceName="af-his"
16
- />
17
- </a-card>
18
-
19
- <!-- HForm -->
20
- <a-card title="HAddNativeForm" style="margin-top: 20px;">
21
- <h-add-native-form
22
- queryParamsName="TCMAdviceFormConfig"
23
- serviceName="af-his"
24
- />
25
- </a-card>
26
- <!-- <a-card title="HFormGroup" style="margin-top: 20px;">-->
27
- <!-- <h-form-group-->
28
- <!-- queryParamsName="surgeryApplicationFormGroup"-->
29
- <!-- serviceName="af-his"-->
30
- <!-- :left-hide="true"-->
31
- <!-- />-->
32
- <!-- </a-card>-->
33
- <!-- &lt;!&ndash; HButtons &ndash;&gt;-->
34
- <!-- <a-card title="HButtons" style="margin-top: 20px;">-->
35
- <!-- <h-buttons-->
36
- <!-- queryParamsName="outpatientAdviceGroup"-->
37
- <!-- serviceName="af-his"-->
38
- <!-- />-->
39
- <!-- </a-card>-->
40
- </div>
41
- </template>
42
-
43
- <script setup>
44
- // import HTab from './HTab/HTab.vue'
45
- import HFormTable from './HFormTable/HFormTable.vue'
46
- // import HButtons from './HButtons/HButtons.vue'
47
- import HAddNativeForm from '@vue2-client/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm.vue'
48
- // import HFormGroup from './HFormGroup/HFormGroup.vue'
49
- </script>
50
-
51
- <style scoped lang="less">
52
- .h-tab-demo {
53
- padding: 20px;
54
-
55
- h4 {
56
- color: #333;
57
- margin-bottom: 10px;
58
- font-size: 14px;
59
- }
60
- }
61
- </style>
1
+ <template>
2
+ <div class="h-tab-demo">
3
+ <!-- &lt;!&ndash; XTab &ndash;&gt;-->
4
+ <!-- <a-card title="XTab">-->
5
+ <!-- <h-tab-->
6
+ <!-- configName="openPrescriptionTab"-->
7
+ <!-- serverName="af-his"-->
8
+ <!-- />-->
9
+ <!-- </a-card>-->
10
+
11
+ <!-- HFormTable -->
12
+ <a-card title="HFormTable" style="margin-top: 20px;">
13
+ <h-form-table
14
+ queryParamsName="outpatientAdviceAllCRUD"
15
+ serviceName="af-his"
16
+ />
17
+ </a-card>
18
+
19
+ <!-- HForm -->
20
+ <a-card title="HAddNativeForm" style="margin-top: 20px;">
21
+ <h-add-native-form
22
+ queryParamsName="TCMAdviceFormConfig"
23
+ serviceName="af-his"
24
+ />
25
+ </a-card>
26
+ <!-- <a-card title="HFormGroup" style="margin-top: 20px;">-->
27
+ <!-- <h-form-group-->
28
+ <!-- queryParamsName="surgeryApplicationFormGroup"-->
29
+ <!-- serviceName="af-his"-->
30
+ <!-- :left-hide="true"-->
31
+ <!-- />-->
32
+ <!-- </a-card>-->
33
+ <!-- &lt;!&ndash; HButtons &ndash;&gt;-->
34
+ <!-- <a-card title="HButtons" style="margin-top: 20px;">-->
35
+ <!-- <h-buttons-->
36
+ <!-- queryParamsName="outpatientAdviceGroup"-->
37
+ <!-- serviceName="af-his"-->
38
+ <!-- />-->
39
+ <!-- </a-card>-->
40
+ </div>
41
+ </template>
42
+
43
+ <script setup>
44
+ // import HTab from './HTab/HTab.vue'
45
+ import HFormTable from './HFormTable/HFormTable.vue'
46
+ // import HButtons from './HButtons/HButtons.vue'
47
+ import HAddNativeForm from '@vue2-client/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm.vue'
48
+ // import HFormGroup from './HFormGroup/HFormGroup.vue'
49
+ </script>
50
+
51
+ <style scoped lang="less">
52
+ .h-tab-demo {
53
+ padding: 20px;
54
+
55
+ h4 {
56
+ color: #333;
57
+ margin-bottom: 10px;
58
+ font-size: 14px;
59
+ }
60
+ }
61
+ </style>