vue2-client 1.16.84 → 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.
Files changed (25) 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 -381
  5. package/src/base-client/components/common/HIS/HForm/HForm.vue +492 -348
  6. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  7. package/src/base-client/components/common/HIS/HFormTable/HFormTable.vue +10 -1
  8. package/src/base-client/components/common/HIS/HTab/HTab.vue +26 -1
  9. package/src/base-client/components/common/XCollapse/XCollapse.vue +833 -833
  10. package/src/base-client/components/common/XInput/XInput.vue +194 -194
  11. package/src/base-client/components/common/XTable/XTable.vue +1610 -1610
  12. package/src/base-client/components/common/XTimeline/XTimeline.vue +478 -462
  13. package/src/base-client/components/common/XTree/XTreePro.vue +4 -4
  14. package/src/base-client/components/his/XCheckbox/XCheckbox.vue +181 -181
  15. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  16. package/src/base-client/components/his/XList/XList.vue +829 -829
  17. package/src/base-client/components/his/XRadio/XRadio.vue +389 -389
  18. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +159 -159
  19. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +306 -306
  20. package/src/base-client/components/his/XTitle/XTitle.vue +274 -269
  21. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  22. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  23. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  24. package/src-base-client/components/common/HIS/HForm/HForm.vue +0 -348
  25. package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
@@ -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>