vue2-client 1.16.21 → 1.16.23

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.16.21",
3
+ "version": "1.16.23",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -1,164 +1,192 @@
1
- <template>
2
- <div class="x-time-select">
3
- <div class="time-select-container">
4
- <span v-if="label" class="time-select-label">{{ label }}</span>
5
-
6
- <div v-if="type === 'range'" class="picker-wrapper">
7
- <a-range-picker
8
- :value="dateRange"
9
- :placeholder="['开始日期', '结束日期']"
10
- separator=""
11
- :disabled="disabled"
12
- :allowClear="allowClear"
13
- :format="format"
14
- @change="handleDateChange"
15
- />
16
- </div>
17
- <div v-if="type === 'date'" class="picker-wrapper">
18
- <a-date-picker
19
- :value="dateRange"
20
- :format="format"
21
- :disabled="disabled"
22
- :allowClear="allowClear"
23
- @change="handleDateChange"
24
- />
25
- </div>
26
-
27
- </div>
28
- </div>
29
- </template>
30
-
31
- <script>
32
- import moment from 'moment'
33
- import { getConfigByName } from '@vue2-client/services/api/common'
34
-
35
- export default {
36
- name: 'XTimeSelect',
37
- inject: ['getComponentByName'],
38
- props: {
39
- queryParamsName: {
40
- type: String,
41
- default: null
42
- },
43
- value: {
44
- type: Array,
45
- default: () => []
46
- },
47
- disabled: {
48
- type: Boolean,
49
- default: false
50
- },
51
- allowClear: {
52
- type: Boolean,
53
- default: true
54
- },
55
- format: {
56
- type: String,
57
- default: 'YYYY/MM/DD'
58
- }
59
- },
60
- data () {
61
- return {
62
- dateRange: [],
63
- label: '请选择日期',
64
- type: 'range'
65
- }
66
- },
67
- watch: {
68
- value: {
69
- handler (newVal) {
70
- this.convertValueToMoment(newVal)
71
- },
72
- immediate: true,
73
- deep: true
74
- },
75
- type () {
76
- this.convertValueToMoment(this.value)
77
- }
78
-
79
- },
80
- created () {
81
- this.getData(this.queryParamsName)
82
- },
83
- methods: {
84
- convertValueToMoment (value) {
85
- if (this.type === 'range' && value?.length === 2) {
86
- this.dateRange = [
87
- value[0] ? moment(value[0]) : null,
88
- value[1] ? moment(value[1]) : null
89
- ]
90
- } else if (this.type === 'date' && value?.length === 1) {
91
- this.dateRange = [value[0] ? moment(value[0]) : null]
92
- } else {
93
- this.dateRange = []
94
- }
95
- },
96
- handleDateChange (dates, dateStrings) {
97
- this.dateRange = dates
98
- console.warn(dateStrings)
99
- this.$emit('change', dateStrings)
100
- },
101
- async getData (data) {
102
- if (data) {
103
- getConfigByName(data, 'af-his', res => {
104
- if (['date', 'range'].includes(res.type)) {
105
- this.type = res.type
106
- }
107
- if (res.label !== undefined) {
108
- this.label = res.label
109
- }
110
- this.convertValueToMoment(this.value)
111
- })
112
- }
113
- }
114
- }
115
- }
116
- </script>
117
-
118
- <style scoped>
119
- .x-time-select {
120
- position: relative;
121
- width: 100%;
122
- box-sizing: border-box;
123
- display: block;
124
- }
125
-
126
- .time-select-container {
127
- display: flex;
128
- align-items: center;
129
- }
130
-
131
- .time-select-label {
132
- white-space: nowrap;
133
- color: rgba(0, 0, 0, 0.85);
134
- padding-right: 8px;
135
- }
136
-
137
- .picker-wrapper {
138
- flex: 1;
139
- }
140
-
141
- .x-time-select :deep(.ant-picker-range),
142
- .x-time-select :deep(.ant-picker) {
143
- width: 100%;
144
- height: 30px;
145
- border-radius: 7px;
146
- background: #FFFFFF;
147
- border: 1px solid #E5E9F0;
148
- }
149
- .x-time-select :deep(.ant-calendar-picker) {
150
- width: 100%;
151
- display: block;
152
- }
153
- .x-time-select :deep(.ant-calendar-picker-input) {
154
- width: 100%;
155
- height: 30px;
156
- border-radius: 7px;
157
- background: #FFFFFF;
158
- border: 1px solid #E5E9F0;
159
- }
160
-
161
- .x-time-select :deep(.ant-input) {
162
- width: 100%;
163
- }
164
- </style>
1
+ <template>
2
+ <div class="x-time-select">
3
+ <div class="time-select-container">
4
+ <div v-if="type === 'range'" class="picker-wrapper">
5
+ <a-range-picker
6
+ :value="dateRange"
7
+ :placeholder="['开始日期', '结束日期']"
8
+ separator=""
9
+ :disabled="disabled"
10
+ :allowClear="allowClear"
11
+ :format="format"
12
+ @change="handleDateChange"
13
+ />
14
+ </div>
15
+ <div v-if="type === 'date'" class="picker-wrapper">
16
+ <a-date-picker
17
+ :value="dateRange[0]"
18
+ :format="format"
19
+ :disabled="disabled"
20
+ :allowClear="allowClear"
21
+ @change="handleDateChange"
22
+ />
23
+ </div>
24
+
25
+ </div>
26
+ </div>
27
+ </template>
28
+
29
+ <script>
30
+ import moment from 'moment'
31
+ import { getConfigByName } from '@vue2-client/services/api/common'
32
+
33
+ export default {
34
+ name: 'XTimeSelect',
35
+ inject: ['getComponentByName'],
36
+ props: {
37
+ queryParamsName: {
38
+ type: String,
39
+ default: null
40
+ },
41
+ value: {
42
+ type: Array,
43
+ default: () => []
44
+ },
45
+ defaultTime: {
46
+ type: Array,
47
+ default: () => []
48
+ },
49
+ disabled: {
50
+ type: Boolean,
51
+ default: false
52
+ },
53
+ allowClear: {
54
+ type: Boolean,
55
+ default: true
56
+ },
57
+ format: {
58
+ type: String,
59
+ default: 'YYYY/MM/DD'
60
+ }
61
+ },
62
+ data () {
63
+ return {
64
+ dateRange: [],
65
+ type: 'range'
66
+ }
67
+ },
68
+ watch: {
69
+ value: {
70
+ handler (newVal) {
71
+ this.convertValueToMoment(newVal)
72
+ },
73
+ immediate: true,
74
+ deep: true
75
+ },
76
+ defaultTime: {
77
+ handler (newVal) {
78
+ // 只有在没有传入value时才使用defaultTime
79
+ if (!this.value || this.value.length === 0) {
80
+ this.convertValueToMoment(newVal)
81
+ }
82
+ },
83
+ immediate: true,
84
+ deep: true
85
+ },
86
+ type () {
87
+ this.convertValueToMoment(this.value)
88
+ }
89
+
90
+ },
91
+ created () {
92
+ this.getData(this.queryParamsName)
93
+ },
94
+ methods: {
95
+ convertValueToMoment (value) {
96
+ // 如果没有传入value或value为空,则使用defaultTime
97
+ const timeToUse = (value && value.length > 0) ? value : this.defaultTime
98
+ if (this.type === 'range' && timeToUse?.length === 2) {
99
+ this.dateRange = [
100
+ timeToUse[0] ? moment(timeToUse[0]) : null,
101
+ timeToUse[1] ? moment(timeToUse[1]) : null
102
+ ]
103
+ } else if (this.type === 'date' && timeToUse?.length === 1) {
104
+ this.dateRange = [timeToUse[0] ? moment(timeToUse[0]) : null]
105
+ } else {
106
+ this.dateRange = []
107
+ }
108
+ },
109
+ handleDateChange (dates, dateStrings) {
110
+ if (this.type === 'date') {
111
+ // 单个日期选择器,dates是一个moment对象或null
112
+ this.dateRange = [dates]
113
+ } else {
114
+ // 范围选择器,dates是一个数组
115
+ this.dateRange = dates
116
+ }
117
+ this.$emit('change', dateStrings)
118
+ },
119
+ async getData (data) {
120
+ if (data) {
121
+ getConfigByName(data, 'af-his', res => {
122
+ if (['date', 'range'].includes(res.type)) {
123
+ this.type = res.type
124
+ }
125
+ // 处理format配置
126
+ if (res.format !== undefined) {
127
+ this.format = res.format
128
+ }
129
+ // 处理defaultTime配置
130
+ if (res.defaultTime !== undefined) {
131
+ if (res.defaultTime === 'now') {
132
+ // 如果配置为'now',设置当前时间
133
+ const now = moment().format(this.format)
134
+ if (this.type === 'range') {
135
+ this.defaultTime = [now, now]
136
+ } else if (this.type === 'date') {
137
+ this.defaultTime = [now]
138
+ }
139
+ } else if (Array.isArray(res.defaultTime)) {
140
+ // 如果配置为数组,直接使用
141
+ this.defaultTime = res.defaultTime
142
+ }
143
+ }
144
+ this.convertValueToMoment(this.value)
145
+ })
146
+ }
147
+ }
148
+ }
149
+ }
150
+ </script>
151
+
152
+ <style scoped>
153
+ .x-time-select {
154
+ position: relative;
155
+ width: 100%;
156
+ box-sizing: border-box;
157
+ display: block;
158
+ }
159
+
160
+ .time-select-container {
161
+ display: flex;
162
+ align-items: center;
163
+ }
164
+
165
+ .picker-wrapper {
166
+ flex: 1;
167
+ }
168
+
169
+ .x-time-select :deep(.ant-picker-range),
170
+ .x-time-select :deep(.ant-picker) {
171
+ width: 100%;
172
+ height: 30px;
173
+ border-radius: 7px;
174
+ background: #FFFFFF;
175
+ border: 1px solid #E5E9F0;
176
+ }
177
+ .x-time-select :deep(.ant-calendar-picker) {
178
+ width: 100%;
179
+ display: block;
180
+ }
181
+ .x-time-select :deep(.ant-calendar-picker-input) {
182
+ width: 100%;
183
+ height: 30px;
184
+ border-radius: 7px;
185
+ background: #FFFFFF;
186
+ border: 1px solid #E5E9F0;
187
+ }
188
+
189
+ .x-time-select :deep(.ant-input) {
190
+ width: 100%;
191
+ }
192
+ </style>
@@ -2,7 +2,8 @@
2
2
  <!-- <Source src="/code/VitalSigns.vue"></Source>-->
3
3
  <div>
4
4
  <a-row class="box">
5
- 病历号&nbsp;&nbsp;<a-input v-model="vitalSignsId" style="width: 160px"></a-input>
5
+ <!-- 病历号输入框已隐藏,通过setMedicalRecordId方法设置vitalSignsId -->
6
+ <!-- 病历号&nbsp;&nbsp;<a-input v-model="vitalSignsId" style="width: 160px"></a-input> -->
6
7
  <a-button-group style="margin-left: 20px;">
7
8
  <a-button
8
9
  v-if="showCreateButton"
@@ -400,7 +401,7 @@ function mergeAndTransformData (records, patientInfo, id, date, operateDate) {
400
401
  // 设置病历号的方法
401
402
  function setMedicalRecordId (id) {
402
403
  vitalSignsId.value = id
403
- console.log('病历号已设置为:', vitalSignsId.value)
404
+ // console.log('病历号已设置为:', vitalSignsId.value)
404
405
  }
405
406
  // 生命周期钩子
406
407
  onMounted(() => {