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
@@ -5,7 +5,7 @@
5
5
  <template v-for="(col, index) in item.formJson">
6
6
  <a-descriptions-item :label="col.name" :key="index">
7
7
  <template v-if="col.type === 'rate'">
8
- <a-rate disabled :count="col.maxCount" v-model="formJson.default[item.groupName][col.model]" />
8
+ <a-rate disabled :count="col.displayCount" v-model="formJson.default[item.groupName][col.model]" />
9
9
  </template>
10
10
  <template v-else>
11
11
  {{ formJson.default[item.groupName][col.model] }}
@@ -1,194 +1,194 @@
1
- <template>
2
- <div class="x-input-wrapper" :class="wrapperClassObject">
3
- <div class="input-container">
4
- <span v-if="config?.label" class="input-label">{{ config.label }}</span>
5
- <div class="input-wrapper">
6
- <a-input
7
- v-model="innerValue"
8
- v-bind="$attrs"
9
- :placeholder="config?.placeholder"
10
- :size="config?.size"
11
- :maxLength="config?.maxLength"
12
- :disabled="config?.disabled"
13
- :allowClear="config?.allowClear"
14
- @change="handleInput"
15
- @pressEnter="handleSearch"
16
- >
17
- <template v-if="config?.prefix" #prefix>
18
- <a-icon :type="config.prefix" @click="handleSearch" class="clickable-icon" />
19
- </template>
20
- <template v-if="config?.suffix" #suffix>
21
- <a-icon :type="config.suffix" @click="handleSearch" class="clickable-icon" />
22
- </template>
23
- </a-input>
24
- </div>
25
- <span v-if="config?.tail" class="input-tail">{{ config.tail }}</span>
26
- </div>
27
- </div>
28
- </template>
29
-
30
- <script>
31
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
32
-
33
- export default {
34
- name: 'XInput',
35
- inheritAttrs: false,
36
- props: {
37
- value: {
38
- type: [String, Number],
39
- default: ''
40
- },
41
- queryParamsName: {
42
- type: String,
43
- default: ''
44
- }
45
- },
46
- data () {
47
- return {
48
- innerValue: this.value || '',
49
- config: null
50
- }
51
- },
52
- computed: {
53
- // 动态样式开关:布尔开关 + size 派生类
54
- wrapperClassObject () {
55
- const attrs = this.$attrs || {}
56
- const classes = {}
57
- const booleanStyleKeys = [
58
- 'medical-history',
59
- 'yizhu-input'
60
- ]
61
- booleanStyleKeys.forEach(key => {
62
- const val = attrs[key]
63
- const truthy = val === true || val === '' || val === 'true'
64
- if (truthy) classes[`xinput-${key}`] = true
65
- })
66
- const size = attrs.size
67
- if (size && typeof size === 'string') classes[`xinput-size-${size}`] = true
68
- return classes
69
- }
70
- },
71
- created () {
72
- this.getData(this.queryParamsName)
73
- },
74
- emits: ['search'],
75
- methods: {
76
- runLogic,
77
- async getData (data) {
78
- getConfigByName(data, 'af-his', res => {
79
- this.config = res
80
- if (res.defaultValue !== undefined) {
81
- this.innerValue = res.defaultValue
82
- }
83
- })
84
- },
85
- handleInput (e) {
86
- const value = e.target.value
87
- this.innerValue = value
88
- this.$emit('search', value)
89
- },
90
- handleSearch () {
91
- // 统一的搜索事件:将当前输入值发送给父组件
92
- this.$emit('search', this.innerValue)
93
- }
94
- },
95
- watch: {
96
- value: {
97
- handler (newValue) {
98
- this.innerValue = newValue
99
- },
100
- immediate: true
101
- },
102
- queryParamsName: {
103
- handler (newValue) {
104
- this.getData(newValue)
105
- },
106
- deep: true
107
- }
108
- }
109
- }
110
- </script>
111
-
112
- <style scoped lang="less">
113
- .x-input-wrapper {
114
- position: relative;
115
- display: inline-block;
116
- width: 100%;
117
- }
118
-
119
- .input-container {
120
- display: flex;
121
- align-items: center;
122
- }
123
-
124
- .input-label {
125
- white-space: nowrap;
126
- color: rgba(0, 0, 0, 0.85);
127
- padding-right: 8px; /* 标签右侧固定间距 */
128
- }
129
-
130
- .input-label {
131
- white-space: nowrap;
132
- color: rgba(0, 0, 0, 0.85);
133
- padding-left: 4px; /* 标签左侧固定间距 */
134
- }
135
-
136
- .input-wrapper {
137
- flex: 1; /* 输入框占据剩余空间 */
138
- }
139
-
140
- :deep(.clickable-icon) {
141
- cursor: pointer;
142
- }
143
-
144
- :deep(.clickable-icon:hover) {
145
- color: #1890ff;
146
- }
147
-
148
- .x-input-wrapper{
149
- &.xinput-medical-history {
150
- width: 192px;
151
- height: 32px;
152
- border-radius: 6px;
153
- opacity: 1;
154
- background: #FFFFFF;
155
- box-sizing: border-box;
156
- border: 1px solid #D8D8D8;
157
-
158
- :deep(.ant-input::placeholder) {
159
- font-family: Source Han Sans;
160
- font-size: 16px;
161
- font-weight: normal;
162
- line-height: normal;
163
- letter-spacing: 0em;
164
- font-variation-settings: "opsz" auto;
165
- font-feature-settings: "kern" on;
166
- color: #A7A7A7;
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
- }
192
- }
193
-
194
- </style>
1
+ <template>
2
+ <div class="x-input-wrapper" :class="wrapperClassObject">
3
+ <div class="input-container">
4
+ <span v-if="config?.label" class="input-label">{{ config.label }}</span>
5
+ <div class="input-wrapper">
6
+ <a-input
7
+ v-model="innerValue"
8
+ v-bind="$attrs"
9
+ :placeholder="config?.placeholder"
10
+ :size="config?.size"
11
+ :maxLength="config?.maxLength"
12
+ :disabled="config?.disabled"
13
+ :allowClear="config?.allowClear"
14
+ @change="handleInput"
15
+ @pressEnter="handleSearch"
16
+ >
17
+ <template v-if="config?.prefix" #prefix>
18
+ <a-icon :type="config.prefix" @click="handleSearch" class="clickable-icon" />
19
+ </template>
20
+ <template v-if="config?.suffix" #suffix>
21
+ <a-icon :type="config.suffix" @click="handleSearch" class="clickable-icon" />
22
+ </template>
23
+ </a-input>
24
+ </div>
25
+ <span v-if="config?.tail" class="input-tail">{{ config.tail }}</span>
26
+ </div>
27
+ </div>
28
+ </template>
29
+
30
+ <script>
31
+ import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
32
+
33
+ export default {
34
+ name: 'XInput',
35
+ inheritAttrs: false,
36
+ props: {
37
+ value: {
38
+ type: [String, Number],
39
+ default: ''
40
+ },
41
+ queryParamsName: {
42
+ type: String,
43
+ default: ''
44
+ }
45
+ },
46
+ data () {
47
+ return {
48
+ innerValue: this.value || '',
49
+ config: null
50
+ }
51
+ },
52
+ computed: {
53
+ // 动态样式开关:布尔开关 + size 派生类
54
+ wrapperClassObject () {
55
+ const attrs = this.$attrs || {}
56
+ const classes = {}
57
+ const booleanStyleKeys = [
58
+ 'medical-history',
59
+ 'yizhu-input'
60
+ ]
61
+ booleanStyleKeys.forEach(key => {
62
+ const val = attrs[key]
63
+ const truthy = val === true || val === '' || val === 'true'
64
+ if (truthy) classes[`xinput-${key}`] = true
65
+ })
66
+ const size = attrs.size
67
+ if (size && typeof size === 'string') classes[`xinput-size-${size}`] = true
68
+ return classes
69
+ }
70
+ },
71
+ created () {
72
+ this.getData(this.queryParamsName)
73
+ },
74
+ emits: ['search'],
75
+ methods: {
76
+ runLogic,
77
+ async getData (data) {
78
+ getConfigByName(data, 'af-his', res => {
79
+ this.config = res
80
+ if (res.defaultValue !== undefined) {
81
+ this.innerValue = res.defaultValue
82
+ }
83
+ })
84
+ },
85
+ handleInput (e) {
86
+ const value = e.target.value
87
+ this.innerValue = value
88
+ this.$emit('search', value)
89
+ },
90
+ handleSearch () {
91
+ // 统一的搜索事件:将当前输入值发送给父组件
92
+ this.$emit('search', this.innerValue)
93
+ }
94
+ },
95
+ watch: {
96
+ value: {
97
+ handler (newValue) {
98
+ this.innerValue = newValue
99
+ },
100
+ immediate: true
101
+ },
102
+ queryParamsName: {
103
+ handler (newValue) {
104
+ this.getData(newValue)
105
+ },
106
+ deep: true
107
+ }
108
+ }
109
+ }
110
+ </script>
111
+
112
+ <style scoped lang="less">
113
+ .x-input-wrapper {
114
+ position: relative;
115
+ display: inline-block;
116
+ width: 100%;
117
+ }
118
+
119
+ .input-container {
120
+ display: flex;
121
+ align-items: center;
122
+ }
123
+
124
+ .input-label {
125
+ white-space: nowrap;
126
+ color: rgba(0, 0, 0, 0.85);
127
+ padding-right: 8px; /* 标签右侧固定间距 */
128
+ }
129
+
130
+ .input-label {
131
+ white-space: nowrap;
132
+ color: rgba(0, 0, 0, 0.85);
133
+ padding-left: 4px; /* 标签左侧固定间距 */
134
+ }
135
+
136
+ .input-wrapper {
137
+ flex: 1; /* 输入框占据剩余空间 */
138
+ }
139
+
140
+ :deep(.clickable-icon) {
141
+ cursor: pointer;
142
+ }
143
+
144
+ :deep(.clickable-icon:hover) {
145
+ color: #1890ff;
146
+ }
147
+
148
+ .x-input-wrapper{
149
+ &.xinput-medical-history {
150
+ width: 192px;
151
+ height: 32px;
152
+ border-radius: 6px;
153
+ opacity: 1;
154
+ background: #FFFFFF;
155
+ box-sizing: border-box;
156
+ border: 1px solid #D8D8D8;
157
+
158
+ :deep(.ant-input::placeholder) {
159
+ font-family: Source Han Sans;
160
+ font-size: 16px;
161
+ font-weight: normal;
162
+ line-height: normal;
163
+ letter-spacing: 0em;
164
+ font-variation-settings: "opsz" auto;
165
+ font-feature-settings: "kern" on;
166
+ color: #A7A7A7;
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
+ }
192
+ }
193
+
194
+ </style>