vue2-client 1.12.71 → 1.12.73

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.71",
3
+ "version": "1.12.73",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -34,6 +34,7 @@
34
34
  "core-js": "^3.33.0",
35
35
  "crypto-js": "^4.1.1",
36
36
  "date-fns": "^2.29.3",
37
+ "dayjs": "^1.11.13",
37
38
  "default-passive-events": "^2.0.0",
38
39
  "dotenv": "^16.3.1",
39
40
  "echarts": "^5.5.0",
@@ -72,12 +73,12 @@
72
73
  "@babel/core": "^7.22.20",
73
74
  "@babel/eslint-parser": "^7.22.15",
74
75
  "@babel/preset-env": "^7.22.20",
76
+ "@jest/globals": "^29.7.0",
75
77
  "@vue/cli-plugin-babel": "^5.0.8",
76
78
  "@vue/cli-plugin-eslint": "^5.0.8",
77
79
  "@vue/cli-service": "^5.0.8",
78
80
  "@vue/eslint-config-standard": "^8.0.1",
79
81
  "@vue/test-utils": "^1.3.6",
80
- "@jest/globals": "^29.7.0",
81
82
  "babel-plugin-transform-remove-console": "^6.9.4",
82
83
  "compression-webpack-plugin": "^10.0.0",
83
84
  "css-minimizer-webpack-plugin": "^5.0.1",
@@ -1,214 +1,209 @@
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="请输入搜索内容"
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
- provide () {
118
- return {
119
- getComponentByName: this.getComponentByName
120
- }
121
- },
122
- methods: {
123
- handleStorageChange (e) {
124
- console.log('监听到sessionStorage的变化:', e)
125
- if (e.key === 'klcf_id') {
126
- this.newVal = sessionStorage.getItem('klcf_id')
127
- // 进行业务处理
128
- console.log('sessionStorage中的值发生了变化:', this.newVal)
129
- }
130
- },
131
- async getData (config, parameter) {
132
- this.configName = config
133
- getConfigByName(config, 'af-his', res => {
134
- this.config = res
135
- console.warn(this.config)
136
- runLogic(res.mainLogic, this.parameter, 'af-his').then(result => {
137
- this.config.showData = result
138
- this.activeKey = this.config.showData.map((_, panelIndex) => panelIndex.toString())
139
- })
140
- })
141
- },
142
- refreshXCollapse () {
143
- this.getData(this.queryParamsName)
144
- },
145
- handleChange (keys) {
146
- this.activeKey = keys
147
- },
148
- onSearch (value, panelIndex) {
149
- console.log('搜索内容:', value, '面板索引:', panelIndex)
150
- },
151
- },
152
- watch: {
153
- queryParamsName: {
154
- handler (newValue) {
155
- this.getData(newValue, null)
156
- },
157
- deep: true
158
- }
159
- }
160
- }
161
- </script>
162
-
163
- <style scoped>
164
- .header-content {
165
- display: flex;
166
- align-items: center;
167
- gap: 24px;
168
- white-space: nowrap;
169
- overflow: hidden;
170
- }
171
-
172
- .header-text {
173
- margin-right: 16px;
174
- font-size: 16px;
175
- font-weight: 800;
176
- flex-shrink: 0;
177
- }
178
-
179
- .info-item {
180
- display: inline-flex;
181
- align-items: center;
182
- gap: 4px;
183
- font-size: 12px;
184
- color: #888888;
185
- flex-shrink: 0;
186
- }
187
-
188
- .time-item {
189
- margin-left: auto;
190
- text-align: right;
191
- flex-shrink: 0;
192
- }
193
-
194
- /* 覆盖 ant-design-vue 的默认样式 */
195
- :deep(.ant-collapse-header) {
196
- align-items: center !important;
197
- }
198
-
199
- :deep(.ant-collapse-header-text) {
200
- flex: 1;
201
- }
202
-
203
- :deep(.ant-collapse-content > .ant-collapse-content-box) {
204
- padding: 0;
205
- }
206
-
207
- :deep(.ant-card-body) {
208
- padding: 8px;
209
- }
210
- .search-input {
211
- margin-left: auto;
212
- width: 100%;
213
- }
214
- </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
+ >
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>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <x-collapse :query-params-name="openPrescriptionConfig" />
3
+ </template>
4
+
5
+ <script>
6
+ import XCollapse from '@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'
7
+ export default {
8
+ name: 'Demo',
9
+ components: { XCollapse }
10
+ }
11
+ </script>
12
+
13
+ <style scoped>
14
+
15
+ </style>