vue2-client 1.12.80 → 1.12.82

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.12.80",
3
+ "version": "1.12.82",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -1,209 +1,214 @@
1
- <template>
2
- <div>
3
- <a-collapse
4
- :activeKey="activeKey"
5
- @change="handleChange"
6
- >
7
- <a-collapse-panel
8
- v-for="(panel, panelIndex) in config.showData"
9
- :key="panelIndex.toString()"
10
- :show-arrow="false"
11
- >
12
- <template #header>
13
- <div class="header-content">
14
- <span
15
- class="header-text"
16
- :style="config.titleStyle"
17
- >
18
- {{ panel.title }}
19
- </span>
20
- <!-- 当有 title2 数据时显示信息项 -->
21
- <template v-if="panel.title2 && panel.title2.length">
22
- <span
23
- v-for="(item, headerIndex) in panel.title2"
24
- :key="headerIndex"
25
- class="info-item"
26
- :style="config.title2Style"
27
- >
28
- <span>{{ item.key }}:</span>
29
- <span>{{ item.value }}</span>
30
- </span>
31
- </template>
32
- <!-- 当有 title3 数据时显示时间项 -->
33
- <span
34
- v-if="panel.title3"
35
- class="time-item"
36
- :style="config.title3Style"
37
- >
38
- {{ panel.title3 }}
39
- </span>
40
- <!-- 修改搜索框的显示条件 -->
41
- <a-input-search
42
- v-if="panel.search"
43
- v-model="searchText[panelIndex]"
44
- :placeholder="panel.searchPlace"
45
- class="search-input"
46
- @search="(value) => onSearch(value, panelIndex)"
47
- @click.stop
48
- />
49
- </div>
50
- </template>
51
- <!-- 根据类型显示不同内容 -->
52
- <template v-if="panel.type === 'picture'">
53
- <img :src="panel.configName" alt="图片" style="width: 100%; max-width: 500px;"/>
54
- </template>
55
- <template v-else-if="panel.type === 'cover'">
56
- <x-report
57
- :use-oss-for-img="false"
58
- :config-name="panel.configName"
59
- server-name="af-his"
60
- :show-img-in-cell="true"
61
- :display-only="true"
62
- :edit-mode="false"
63
- :show-save-button="false"
64
- :no-padding="true"
65
- :dont-format="true">
66
- </x-report>
67
- </template>
68
- </a-collapse-panel>
69
- </a-collapse>
70
- </div>
71
- </template>
72
-
73
- <script>
74
- import XReport from '@vue2-client/base-client/components/common/XReportGrid'
75
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
76
-
77
- export default {
78
- name: 'XCollapse',
79
- components: {
80
- XReport
81
- },
82
- inject: ['getConfigByName', 'getComponentByName'],
83
- data () {
84
- return {
85
- activeKey: [],
86
- config: {},
87
- configName: '',
88
- searchText: {}
89
- }
90
- },
91
- props: {
92
- // json名
93
- queryParamsName: {
94
- type: Object,
95
- default: 'openPrescriptionConfig'
96
- },
97
- parameter: {
98
- type: Object,
99
- }
100
- },
101
- created () {
102
- this.searchTexts = {} // 初始化对象
103
-
104
- this.getData(this.queryParamsName)
105
- window.addEventListener('setItem', (e) => {
106
- console.log('监听到sessionStorage的变化:', e)
107
- if (e.key === 'klcf_id') {
108
- this.newVal = sessionStorage.getItem('klcf_id')
109
- // 进行业务处理
110
- console.log('sessionStorage中的值发生了变化:', this.newVal)
111
- }
112
- })
113
- },
114
- beforeDestroy () {
115
- window.removeEventListener('setItem', this.handleStorageChange)
116
- },
117
- methods: {
118
- handleStorageChange (e) {
119
- console.log('监听到sessionStorage的变化:', e)
120
- if (e.key === 'klcf_id') {
121
- this.newVal = sessionStorage.getItem('klcf_id')
122
- // 进行业务处理
123
- console.log('sessionStorage中的值发生了变化:', this.newVal)
124
- }
125
- },
126
- async getData (config, parameter) {
127
- this.configName = config
128
- getConfigByName(config, 'af-his', res => {
129
- this.config = res
130
- console.warn(this.config)
131
- runLogic(res.mainLogic, this.parameter, 'af-his').then(result => {
132
- this.config.showData = result
133
- this.activeKey = this.config.showData.map((_, panelIndex) => panelIndex.toString())
134
- })
135
- })
136
- },
137
- refreshXCollapse () {
138
- this.getData(this.queryParamsName)
139
- },
140
- handleChange (keys) {
141
- this.activeKey = keys
142
- },
143
- onSearch (value, panelIndex) {
144
- console.log('搜索内容:', value, '面板索引:', panelIndex)
145
- },
146
- },
147
- watch: {
148
- queryParamsName: {
149
- handler (newValue) {
150
- this.getData(newValue, null)
151
- },
152
- deep: true
153
- }
154
- }
155
- }
156
- </script>
157
-
158
- <style scoped>
159
- .header-content {
160
- display: flex;
161
- align-items: center;
162
- gap: 24px;
163
- white-space: nowrap;
164
- overflow: hidden;
165
- }
166
-
167
- .header-text {
168
- margin-right: 16px;
169
- font-size: 16px;
170
- font-weight: 800;
171
- flex-shrink: 0;
172
- }
173
-
174
- .info-item {
175
- display: inline-flex;
176
- align-items: center;
177
- gap: 4px;
178
- font-size: 12px;
179
- color: #888888;
180
- flex-shrink: 0;
181
- }
182
-
183
- .time-item {
184
- margin-left: auto;
185
- text-align: right;
186
- flex-shrink: 0;
187
- }
188
-
189
- /* 覆盖 ant-design-vue 的默认样式 */
190
- :deep(.ant-collapse-header) {
191
- align-items: center !important;
192
- }
193
-
194
- :deep(.ant-collapse-header-text) {
195
- flex: 1;
196
- }
197
-
198
- :deep(.ant-collapse-content > .ant-collapse-content-box) {
199
- padding: 0;
200
- }
201
-
202
- :deep(.ant-card-body) {
203
- padding: 8px;
204
- }
205
- .search-input {
206
- margin-left: auto;
207
- width: 100%;
208
- }
209
- </style>
1
+ <template>
2
+ <div>
3
+ <a-collapse
4
+ :activeKey="activeKey"
5
+ @change="handleChange"
6
+ >
7
+ <a-collapse-panel
8
+ v-for="(panel, panelIndex) in config.showData"
9
+ :key="panelIndex.toString()"
10
+ :show-arrow="false"
11
+ :disabled="config.collapsible"
12
+ >
13
+ <template #header>
14
+ <div class="header-content">
15
+ <span
16
+ class="header-text"
17
+ :style="config.titleStyle"
18
+ >
19
+ {{ panel.title }}
20
+ </span>
21
+ <!-- 当有 title2 数据时显示信息项 -->
22
+ <template v-if="panel.title2 && panel.title2.length">
23
+ <span
24
+ v-for="(item, headerIndex) in panel.title2"
25
+ :key="headerIndex"
26
+ class="info-item"
27
+ :style="config.title2Style"
28
+ >
29
+ <span>{{ item.key }}:</span>
30
+ <span>{{ item.value }}</span>
31
+ </span>
32
+ </template>
33
+ <!-- 当有 title3 数据时显示时间项 -->
34
+ <span
35
+ v-if="panel.title3"
36
+ class="time-item"
37
+ :style="config.title3Style"
38
+ >
39
+ {{ panel.title3 }}
40
+ </span>
41
+ <!-- 修改搜索框的显示条件 -->
42
+ <a-input-search
43
+ v-if="panel.search"
44
+ v-model="searchText[panelIndex]"
45
+ :placeholder="panel.searchPlace"
46
+ class="search-input"
47
+ @search="(value) => onSearch(value, panelIndex)"
48
+ @click.stop
49
+ />
50
+ </div>
51
+ </template>
52
+ <!-- 根据类型显示不同内容 -->
53
+ <template v-if="panel.type === 'picture'">
54
+ <img :src="panel.configName" alt="图片" style="width: 100%; max-width: 500px;"/>
55
+ </template>
56
+ <template v-else-if="panel.type === 'cover'">
57
+ <x-report
58
+ :use-oss-for-img="false"
59
+ :config-name="panel.configName"
60
+ server-name="af-his"
61
+ :show-img-in-cell="true"
62
+ :display-only="true"
63
+ :edit-mode="false"
64
+ :show-save-button="false"
65
+ :no-padding="true"
66
+ :dont-format="true">
67
+ </x-report>
68
+ </template>
69
+ </a-collapse-panel>
70
+ </a-collapse>
71
+ </div>
72
+ </template>
73
+
74
+ <script>
75
+ import XReport from '@vue2-client/base-client/components/common/XReportGrid'
76
+ import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
77
+
78
+ export default {
79
+ name: 'XCollapse',
80
+ components: {
81
+ XReport
82
+ },
83
+ inject: ['getConfigByName', 'getComponentByName'],
84
+ data () {
85
+ return {
86
+ activeKey: [],
87
+ config: {},
88
+ configName: '',
89
+ searchText: {}
90
+ }
91
+ },
92
+ props: {
93
+ // json名
94
+ queryParamsName: {
95
+ type: Object,
96
+ default: 'openPrescriptionConfig'
97
+ },
98
+ parameter: {
99
+ type: Object,
100
+ }
101
+ },
102
+ created () {
103
+ this.searchTexts = {} // 初始化对象
104
+
105
+ this.getData(this.queryParamsName)
106
+ window.addEventListener('setItem', (e) => {
107
+ console.log('监听到sessionStorage的变化:', e)
108
+ if (e.key === 'klcf_id') {
109
+ this.newVal = sessionStorage.getItem('klcf_id')
110
+ // 进行业务处理
111
+ console.log('sessionStorage中的值发生了变化:', this.newVal)
112
+ }
113
+ })
114
+ },
115
+ beforeDestroy () {
116
+ window.removeEventListener('setItem', this.handleStorageChange)
117
+ },
118
+ methods: {
119
+ handleStorageChange (e) {
120
+ console.log('监听到sessionStorage的变化:', e)
121
+ if (e.key === 'klcf_id') {
122
+ this.newVal = sessionStorage.getItem('klcf_id')
123
+ // 进行业务处理
124
+ console.log('sessionStorage中的值发生了变化:', this.newVal)
125
+ }
126
+ },
127
+ async getData (config, parameter) {
128
+ this.configName = config
129
+ getConfigByName(config, 'af-his', res => {
130
+ this.config = res
131
+ console.warn(this.config)
132
+ runLogic(res.mainLogic, this.parameter, 'af-his').then(result => {
133
+ this.config.showData = result
134
+ this.activeKey = this.config.showData.map((_, panelIndex) => panelIndex.toString())
135
+ })
136
+ })
137
+ },
138
+ refreshXCollapse () {
139
+ this.getData(this.queryParamsName)
140
+ },
141
+ handleChange (keys) {
142
+ this.activeKey = keys
143
+ },
144
+ onSearch (value, panelIndex) {
145
+ console.log('搜索内容:', value, '面板索引:', panelIndex)
146
+ },
147
+ },
148
+ watch: {
149
+ queryParamsName: {
150
+ handler (newValue) {
151
+ this.getData(newValue, null)
152
+ },
153
+ deep: true
154
+ }
155
+ }
156
+ }
157
+ </script>
158
+
159
+ <style scoped>
160
+ .header-content {
161
+ display: flex;
162
+ align-items: center;
163
+ gap: 24px;
164
+ white-space: nowrap;
165
+ overflow: hidden;
166
+ }
167
+
168
+ .header-text {
169
+ margin-right: 16px;
170
+ font-size: 16px;
171
+ font-weight: 800;
172
+ flex-shrink: 0;
173
+ }
174
+
175
+ .info-item {
176
+ display: inline-flex;
177
+ align-items: center;
178
+ gap: 4px;
179
+ font-size: 12px;
180
+ color: #888888;
181
+ flex-shrink: 0;
182
+ }
183
+
184
+ .time-item {
185
+ margin-left: auto;
186
+ text-align: right;
187
+ flex-shrink: 0;
188
+ }
189
+
190
+ :deep(.ant-collapse-header) {
191
+ position: relative;
192
+ border-bottom: v-bind('config.showLine ? "1px solid #000000" : "none"');
193
+ align-items: center !important;
194
+ }
195
+
196
+ :deep(.ant-collapse-header-text) {
197
+ flex: 1;
198
+ }
199
+
200
+ :deep(.ant-collapse-content > .ant-collapse-content-box) {
201
+ padding: 0;
202
+ }
203
+
204
+ :deep(.ant-card-body) {
205
+ padding: 8px;
206
+ }
207
+ .search-input {
208
+ margin-left: auto;
209
+ width: 100%;
210
+ }
211
+ :deep(.ant-collapse-item-disabled > .ant-collapse-header) {
212
+ cursor: default !important;
213
+ }
214
+ </style>
@@ -129,6 +129,9 @@ export default {
129
129
  this.currentDate = res.defaultValue
130
130
  this.baseDate = res.defaultValue
131
131
  this.$emit('update:modelValue', res.defaultValue)
132
+ } else {
133
+ // 如果没有默认值,则设置今天日期为基准日期
134
+ this.modelValue = this.baseDate
132
135
  }
133
136
 
134
137
  // 执行配置中指定的业务逻辑
@@ -52,9 +52,9 @@ routerResource.newDynamicStatistics = () => import('@vue2-client/pages/NewDynami
52
52
  routerResource.example = {
53
53
  path: 'example',
54
54
  name: '示例主页面',
55
- component: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue'),
55
+ // component: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue'),
56
56
  // component: () => import('@vue2-client/base-client/components/his/XList/XList.vue'),
57
- // component: () => import('@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'),
57
+ component: () => import('@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'),
58
58
  // component: () => import('@vue2-client/base-client/components/common/XDataCard/XDataCard.vue'),
59
59
  // component: () => import('@vue2-client/base-client/components/common/XDescriptions/demo.vue'),
60
60
  // component: () => import('@vue2-client/base-client/components/common/XAddNativeForm/demo.vue'),