vue2-client 1.16.87 → 1.16.88

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 (32) 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 +444 -412
  5. package/src/base-client/components/common/HIS/HForm/HForm.vue +361 -506
  6. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  7. package/src/base-client/components/common/HIS/HTab/HTab.vue +443 -443
  8. package/src/base-client/components/common/XCollapse/XCollapse.vue +833 -833
  9. package/src/base-client/components/common/XInput/XInput.vue +205 -194
  10. package/src/base-client/components/common/XTimeline/XTimeline.vue +477 -478
  11. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  12. package/src/base-client/components/his/XIcon/XIcon.vue +73 -73
  13. package/src/base-client/components/his/XIcon/index.js +3 -3
  14. package/src/base-client/components/his/XIcon/index.md +177 -177
  15. package/src/base-client/components/his/XList/XList.vue +829 -829
  16. package/src/base-client/components/his/XRadio/XRadio.vue +469 -389
  17. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +159 -159
  18. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +383 -306
  19. package/src/base-client/components/his/XTitle/XTitle.vue +274 -274
  20. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  21. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  22. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  23. package/src-base-client/components/common/HIS/HForm/HForm.vue +347 -0
  24. package/src/assets/img/paymentMethod/icon1.png +0 -0
  25. package/src/assets/img/paymentMethod/icon2.png +0 -0
  26. package/src/assets/img/paymentMethod/icon3.png +0 -0
  27. package/src/assets/img/paymentMethod/icon4.png +0 -0
  28. package/src/assets/img/paymentMethod/icon5.png +0 -0
  29. package/src/assets/img/paymentMethod/icon6.png +0 -0
  30. package/src/base-client/components/common/XReport/XReportHospitalizationDemo.vue +0 -45
  31. package/src-base-client/components/his/XCharge/XCharge.vue +0 -0
  32. /package/src-base-client/components/{his/XCharge/README.md → common/XCollapse/XCollapse.vue} +0 -0
@@ -1,194 +1,205 @@
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
+ 'custom-placeholder'
61
+ ]
62
+ booleanStyleKeys.forEach(key => {
63
+ const val = attrs[key]
64
+ const truthy = val === true || val === '' || val === 'true'
65
+ if (truthy) classes[`xinput-${key}`] = true
66
+ })
67
+ const size = attrs.size
68
+ if (size && typeof size === 'string') classes[`xinput-size-${size}`] = true
69
+ return classes
70
+ }
71
+ },
72
+ created () {
73
+ this.getData(this.queryParamsName)
74
+ },
75
+ emits: ['search'],
76
+ methods: {
77
+ runLogic,
78
+ async getData (data) {
79
+ getConfigByName(data, 'af-his', res => {
80
+ this.config = res
81
+ if (res.defaultValue !== undefined) {
82
+ this.innerValue = res.defaultValue
83
+ }
84
+ })
85
+ },
86
+ handleInput (e) {
87
+ const value = e.target.value
88
+ this.innerValue = value
89
+ this.$emit('search', value)
90
+ },
91
+ handleSearch () {
92
+ // 统一的搜索事件:将当前输入值发送给父组件
93
+ this.$emit('search', this.innerValue)
94
+ }
95
+ },
96
+ watch: {
97
+ value: {
98
+ handler (newValue) {
99
+ this.innerValue = newValue
100
+ },
101
+ immediate: true
102
+ },
103
+ queryParamsName: {
104
+ handler (newValue) {
105
+ this.getData(newValue)
106
+ },
107
+ deep: true
108
+ }
109
+ }
110
+ }
111
+ </script>
112
+
113
+ <style scoped lang="less">
114
+ .x-input-wrapper {
115
+ position: relative;
116
+ display: inline-block;
117
+ width: 100%;
118
+ }
119
+
120
+ .input-container {
121
+ display: flex;
122
+ align-items: center;
123
+ }
124
+
125
+ .input-label {
126
+ white-space: nowrap;
127
+ color: rgba(0, 0, 0, 0.85);
128
+ padding-right: 8px; /* 标签右侧固定间距 */
129
+ }
130
+
131
+ .input-label {
132
+ white-space: nowrap;
133
+ color: rgba(0, 0, 0, 0.85);
134
+ padding-left: 4px; /* 标签左侧固定间距 */
135
+ }
136
+
137
+ .input-wrapper {
138
+ flex: 1; /* 输入框占据剩余空间 */
139
+ }
140
+
141
+ :deep(.clickable-icon) {
142
+ cursor: pointer;
143
+ }
144
+
145
+ :deep(.clickable-icon:hover) {
146
+ color: #1890ff;
147
+ }
148
+
149
+ .x-input-wrapper{
150
+ &.xinput-medical-history {
151
+ width: 192px;
152
+ height: 32px;
153
+ border-radius: 6px;
154
+ opacity: 1;
155
+ background: #FFFFFF;
156
+ box-sizing: border-box;
157
+ border: 1px solid #D8D8D8;
158
+
159
+ :deep(.ant-input::placeholder) {
160
+ font-family: Source Han Sans;
161
+ font-size: 16px;
162
+ font-weight: normal;
163
+ line-height: normal;
164
+ letter-spacing: 0em;
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
+ margin: 2px 0px;
176
+ :deep(.ant-input) {
177
+ border-radius: 6px;
178
+ opacity: 1;
179
+ background: #FFFFFF;
180
+ box-sizing: border-box;
181
+ border: 1px solid #E5E9F0;
182
+ font-family: Source Han Sans;
183
+ font-size: 14px;
184
+ padding: 5px 76px 3px 8px;
185
+ font-weight: normal;
186
+ line-height: normal;
187
+ letter-spacing: 0em;
188
+ color: #A7A7A7;
189
+ }
190
+ }
191
+ &.xinput-custom-placeholder {
192
+ :deep(.ant-input::placeholder) {
193
+ height: 23px;
194
+ opacity: 1;
195
+ font-family: Source Han Sans;
196
+ font-size: 16px;
197
+ font-weight: normal;
198
+ line-height: normal;
199
+ letter-spacing: 0em;
200
+ color: #A7A7A7;
201
+ }
202
+ }
203
+ }
204
+
205
+ </style>