vue2-client 1.12.96 → 1.12.97

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.96",
3
+ "version": "1.12.97",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -1,247 +1,247 @@
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
- <!-- 根据showTitle是否显示键名 -->
30
- <span v-if="config.showTitle">{{ item.key }}:</span>
31
- <span>{{ item.value }}</span>
32
- </span>
33
- </template>
34
- <!-- 当有 title3 数据时显示时间项 -->
35
- <span
36
- v-if="panel.title3"
37
- class="time-item"
38
- :style="config.title3Style"
39
- >
40
- {{ panel.title3 }}
41
- </span>
42
- <!-- 修改搜索框的显示条件 -->
43
- <a-input-search
44
- v-if="panel.search"
45
- v-model="searchText[panelIndex]"
46
- :placeholder="panel.searchPlace"
47
- class="search-input"
48
- @search="(value) => onSearch(value, panelIndex)"
49
- @click.stop
50
- />
51
- </div>
52
- </template>
53
- <!-- 根据类型显示不同内容 -->
54
- <template v-if="panel.type === 'picture'">
55
- <img :src="panel.configName" alt="图片" style="width: 100%; max-width: 500px;"/>
56
- </template>
57
- <template v-else-if="['x-form-table','x-add-native-form','x-tree-pro', 'x-his-editor', 'x-tab', 'x-form-group', 'x-report', 'x-buttons', 'x-label-select', 'x-conversation', 'x-check-list', 'x-cardSet', 'x-collapse','x-h-descriptions', 'x-sidebar', 'x-list','x-input','x-time-line', 'x-radio'].includes(panel.type)">
58
- <component
59
- :is="getComponentName(panel.type)"
60
- :ref="`dynamicComponent_${ panel.type }`"
61
- serverName="af-his"
62
- :queryParamsName="panel.configName"
63
- :countVisible="false"
64
- :env="env"
65
- @listClick="listClick"
66
- />
67
- </template>
68
- </a-collapse-panel>
69
- </a-collapse>
70
- </div>
71
- </template>
72
-
73
- <script>
74
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
75
-
76
- export default {
77
- name: 'XCollapse',
78
- components: {
79
- XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'),
80
- XAddNativeForm: () => import('@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'),
81
- XFormGroup: () => import('@vue2-client/base-client/components/common/XFormGroup/XFormGroup.vue'),
82
- XTreePro: () => import('@vue2-client/base-client/components/common/XTree/XTreePro.vue'),
83
- XHisEditor: () => import('@vue2-client/base-client/components/his/XHisEditor/XHisEditor.vue'),
84
- XTab: () => import('@vue2-client/base-client/components/common/XTab/XTab.vue'),
85
- XReport: () => import('@vue2-client/base-client/components/common/XReport/XReport.vue'),
86
- XButtons: () => import('@vue2-client/base-client/components/common/XButtons/XButtons.vue'),
87
- XLabelSelect: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelect.vue'),
88
- XConversation: () => import('@vue2-client/base-client/components/common/XConversation/XConversation.vue'),
89
- XCheckList: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
90
- XCardSet: () => import('@vue2-client/base-client/components/common/XCardSet/XCardSet.vue'),
91
- XCollapse: () => import('@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'),
92
- XHDescriptions: () => import('@vue2-client/base-client/components/his/XHDescriptions/XHDescriptions.vue'),
93
- XSidebar: () => import('@vue2-client/base-client/components/his/XSidebar/XSidebar.vue'),
94
- XList: () => import('@vue2-client/base-client/components/his/XList/XList.vue'),
95
- XInput: () => import('@vue2-client/base-client/components/common/XInput/XInput.vue'),
96
- XTimeLine: () => import('@vue2-client/base-client/components/common/XTimeline/XTimeline.vue'),
97
- XRadio: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue')
98
- },
99
- data () {
100
- return {
101
- activeKey: [],
102
- config: {},
103
- configName: '',
104
- searchText: {}
105
- }
106
- },
107
- props: {
108
- // 环境
109
- env: {
110
- type: String,
111
- default: 'prod'
112
- },
113
- // json名
114
- queryParamsName: {
115
- type: Object,
116
- default: null
117
- },
118
- parameter: {
119
- type: Object,
120
- default: () => {
121
- return {}
122
- }
123
- }
124
- },
125
- created () {
126
- this.getData(this.queryParamsName, this.parameter)
127
- },
128
- beforeDestroy () {
129
- },
130
- methods: {
131
- getComponentName (componentName) {
132
- return componentName
133
- },
134
- listClick (data) {
135
- this.$emit('listClick', data)
136
- },
137
- getConfigByName (componentName) {
138
- const refKey = `dynamicComponent_${componentName}`
139
- return this.$refs[refKey]
140
- },
141
- async getData (config, parameter) {
142
- this.configName = config
143
- getConfigByName(config, 'af-his', res => {
144
- this.config = res
145
- console.warn(this.config)
146
- runLogic(res.mainLogic, parameter, 'af-his').then(result => {
147
- this.config.showData = result
148
- // 更具timeType更改时间类型
149
- if (this.config.timeType && this.config.timeType === '.') {
150
- this.config.showData.forEach(panel => {
151
- if (panel.title3) {
152
- panel.title3 = this.convertToCustomFormat(panel.title3)
153
- }
154
- })
155
- this.$forceUpdate()
156
- }
157
- this.activeKey = this.config.showData.map((_, panelIndex) => panelIndex.toString())
158
- })
159
- })
160
- },
161
- refreshXCollapse () {
162
- this.getData(this.queryParamsName, this.parameter)
163
- },
164
- convertToCustomFormat (dateString) {
165
- // 创建一个新的 Date 对象
166
- const date = new Date(dateString)
167
- // 获取年、月、日
168
- const year = date.getFullYear()
169
- const month = date.getMonth() + 1 // 月份从0开始,所以需要加1
170
- const day = date.getDate()
171
- // 返回格式化后的字符串
172
- return `${year}.${month}.${day}`
173
- },
174
- handleChange (keys) {
175
- this.activeKey = keys
176
- },
177
- onSearch (value, panelIndex) {
178
- this.$emit('searchChange', { value: value, panelIndex: panelIndex })
179
- },
180
- },
181
- watch: {
182
- queryParamsName: {
183
- handler (newValue) {
184
- this.getData(newValue, this.parameter)
185
- },
186
- deep: true
187
- }
188
- }
189
- }
190
- </script>
191
-
192
- <style scoped>
193
- .header-content {
194
- display: flex;
195
- align-items: center;
196
- gap: 24px;
197
- white-space: nowrap;
198
- overflow: hidden;
199
- }
200
-
201
- .header-text {
202
- margin-right: 16px;
203
- font-size: 16px;
204
- font-weight: 800;
205
- flex-shrink: 0;
206
- }
207
-
208
- .info-item {
209
- display: inline-flex;
210
- align-items: center;
211
- gap: 4px;
212
- font-size: 12px;
213
- color: #888888;
214
- flex-shrink: 0;
215
- }
216
-
217
- .time-item {
218
- margin-left: auto;
219
- text-align: right;
220
- flex-shrink: 0;
221
- }
222
-
223
- :deep(.ant-collapse-header) {
224
- position: relative;
225
- border-bottom: v-bind('config.showLine ? "1px solid #000000" : "none"');
226
- align-items: center !important;
227
- }
228
-
229
- :deep(.ant-collapse-header-text) {
230
- flex: 1;
231
- }
232
-
233
- :deep(.ant-collapse-content > .ant-collapse-content-box) {
234
- padding: 0;
235
- }
236
-
237
- :deep(.ant-card-body) {
238
- padding: 8px;
239
- }
240
- .search-input {
241
- margin-left: auto;
242
- width: 100%;
243
- }
244
- :deep(.ant-collapse-item-disabled > .ant-collapse-header) {
245
- cursor: default !important;
246
- }
247
- </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
+ <!-- 根据showTitle是否显示键名 -->
30
+ <span v-if="item.showTitle">{{ item.key }}:</span>
31
+ <span>{{ item.value }}</span>
32
+ </span>
33
+ </template>
34
+ <!-- 当有 title3 数据时显示时间项 -->
35
+ <span
36
+ v-if="panel.title3"
37
+ class="time-item"
38
+ :style="config.title3Style"
39
+ >
40
+ {{ panel.title3 }}
41
+ </span>
42
+ <!-- 修改搜索框的显示条件 -->
43
+ <a-input-search
44
+ v-if="panel.search"
45
+ v-model="searchText[panelIndex]"
46
+ :placeholder="panel.searchPlace"
47
+ class="search-input"
48
+ @search="(value) => onSearch(value, panelIndex)"
49
+ @click.stop
50
+ />
51
+ </div>
52
+ </template>
53
+ <!-- 根据类型显示不同内容 -->
54
+ <template v-if="panel.type === 'picture'">
55
+ <img :src="panel.configName" alt="图片" style="width: 100%; max-width: 500px;"/>
56
+ </template>
57
+ <template v-else-if="['x-form-table','x-add-native-form','x-tree-pro', 'x-his-editor', 'x-tab', 'x-form-group', 'x-report', 'x-buttons', 'x-label-select', 'x-conversation', 'x-check-list', 'x-cardSet', 'x-collapse','x-h-descriptions', 'x-sidebar', 'x-list','x-input','x-time-line', 'x-radio'].includes(panel.type)">
58
+ <component
59
+ :is="getComponentName(panel.type)"
60
+ :ref="`dynamicComponent_${ panel.type }`"
61
+ serverName="af-his"
62
+ :queryParamsName="panel.configName"
63
+ :countVisible="false"
64
+ :env="env"
65
+ @listClick="listClick"
66
+ />
67
+ </template>
68
+ </a-collapse-panel>
69
+ </a-collapse>
70
+ </div>
71
+ </template>
72
+
73
+ <script>
74
+ import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
75
+
76
+ export default {
77
+ name: 'XCollapse',
78
+ components: {
79
+ XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'),
80
+ XAddNativeForm: () => import('@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'),
81
+ XFormGroup: () => import('@vue2-client/base-client/components/common/XFormGroup/XFormGroup.vue'),
82
+ XTreePro: () => import('@vue2-client/base-client/components/common/XTree/XTreePro.vue'),
83
+ XHisEditor: () => import('@vue2-client/base-client/components/his/XHisEditor/XHisEditor.vue'),
84
+ XTab: () => import('@vue2-client/base-client/components/common/XTab/XTab.vue'),
85
+ XReport: () => import('@vue2-client/base-client/components/common/XReport/XReport.vue'),
86
+ XButtons: () => import('@vue2-client/base-client/components/common/XButtons/XButtons.vue'),
87
+ XLabelSelect: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelect.vue'),
88
+ XConversation: () => import('@vue2-client/base-client/components/common/XConversation/XConversation.vue'),
89
+ XCheckList: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
90
+ XCardSet: () => import('@vue2-client/base-client/components/common/XCardSet/XCardSet.vue'),
91
+ XCollapse: () => import('@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'),
92
+ XHDescriptions: () => import('@vue2-client/base-client/components/his/XHDescriptions/XHDescriptions.vue'),
93
+ XSidebar: () => import('@vue2-client/base-client/components/his/XSidebar/XSidebar.vue'),
94
+ XList: () => import('@vue2-client/base-client/components/his/XList/XList.vue'),
95
+ XInput: () => import('@vue2-client/base-client/components/common/XInput/XInput.vue'),
96
+ XTimeLine: () => import('@vue2-client/base-client/components/common/XTimeline/XTimeline.vue'),
97
+ XRadio: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue')
98
+ },
99
+ data () {
100
+ return {
101
+ activeKey: [],
102
+ config: {},
103
+ configName: '',
104
+ searchText: {}
105
+ }
106
+ },
107
+ props: {
108
+ // 环境
109
+ env: {
110
+ type: String,
111
+ default: 'prod'
112
+ },
113
+ // json名
114
+ queryParamsName: {
115
+ type: Object,
116
+ default: null
117
+ },
118
+ parameter: {
119
+ type: Object,
120
+ default: () => {
121
+ return {}
122
+ }
123
+ }
124
+ },
125
+ created () {
126
+ this.getData(this.queryParamsName, this.parameter)
127
+ },
128
+ beforeDestroy () {
129
+ },
130
+ methods: {
131
+ getComponentName (componentName) {
132
+ return componentName
133
+ },
134
+ listClick (data) {
135
+ this.$emit('listClick', data)
136
+ },
137
+ getConfigByName (componentName) {
138
+ const refKey = `dynamicComponent_${componentName}`
139
+ return this.$refs[refKey]
140
+ },
141
+ async getData (config, parameter) {
142
+ this.configName = config
143
+ getConfigByName(config, 'af-his', res => {
144
+ this.config = res
145
+ console.warn(this.config)
146
+ runLogic(res.mainLogic, parameter, 'af-his').then(result => {
147
+ this.config.showData = result
148
+ // 更具timeType更改时间类型
149
+ if (this.config.timeType && this.config.timeType === '.') {
150
+ this.config.showData.forEach(panel => {
151
+ if (panel.title3) {
152
+ panel.title3 = this.convertToCustomFormat(panel.title3)
153
+ }
154
+ })
155
+ this.$forceUpdate()
156
+ }
157
+ this.activeKey = this.config.showData.map((_, panelIndex) => panelIndex.toString())
158
+ })
159
+ })
160
+ },
161
+ refreshXCollapse () {
162
+ this.getData(this.queryParamsName, this.parameter)
163
+ },
164
+ convertToCustomFormat (dateString) {
165
+ // 创建一个新的 Date 对象
166
+ const date = new Date(dateString)
167
+ // 获取年、月、日
168
+ const year = date.getFullYear()
169
+ const month = date.getMonth() + 1 // 月份从0开始,所以需要加1
170
+ const day = date.getDate()
171
+ // 返回格式化后的字符串
172
+ return `${year}.${month}.${day}`
173
+ },
174
+ handleChange (keys) {
175
+ this.activeKey = keys
176
+ },
177
+ onSearch (value, panelIndex) {
178
+ this.$emit('searchChange', { value: value, panelIndex: panelIndex })
179
+ },
180
+ },
181
+ watch: {
182
+ queryParamsName: {
183
+ handler (newValue) {
184
+ this.getData(newValue, this.parameter)
185
+ },
186
+ deep: true
187
+ }
188
+ }
189
+ }
190
+ </script>
191
+
192
+ <style scoped>
193
+ .header-content {
194
+ display: flex;
195
+ align-items: center;
196
+ gap: 24px;
197
+ white-space: nowrap;
198
+ overflow: hidden;
199
+ }
200
+
201
+ .header-text {
202
+ margin-right: 16px;
203
+ font-size: 16px;
204
+ font-weight: 800;
205
+ flex-shrink: 0;
206
+ }
207
+
208
+ .info-item {
209
+ display: inline-flex;
210
+ align-items: center;
211
+ gap: 4px;
212
+ font-size: 12px;
213
+ color: #888888;
214
+ flex-shrink: 0;
215
+ }
216
+
217
+ .time-item {
218
+ margin-left: auto;
219
+ text-align: right;
220
+ flex-shrink: 0;
221
+ }
222
+
223
+ :deep(.ant-collapse-header) {
224
+ position: relative;
225
+ border-bottom: v-bind('config.showLine ? "1px solid #000000" : "none"');
226
+ align-items: center !important;
227
+ }
228
+
229
+ :deep(.ant-collapse-header-text) {
230
+ flex: 1;
231
+ }
232
+
233
+ :deep(.ant-collapse-content > .ant-collapse-content-box) {
234
+ padding: 0;
235
+ }
236
+
237
+ :deep(.ant-card-body) {
238
+ padding: 8px;
239
+ }
240
+ .search-input {
241
+ margin-left: auto;
242
+ width: 100%;
243
+ }
244
+ :deep(.ant-collapse-item-disabled > .ant-collapse-header) {
245
+ cursor: default !important;
246
+ }
247
+ </style>
@@ -1,44 +1,44 @@
1
- <template>
2
- <div id="test">
3
- <a-card :bordered="false">
4
- <XReport
5
- ref="main"
6
- :use-oss-for-img="false"
7
- config-name="openPrescriptionCover"
8
- server-name="af-his"
9
- :show-img-in-cell="true"
10
- :display-only="true"
11
- :edit-mode="false"
12
- :dont-format="true"/>
13
- </a-card>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- import XReport from './XReport'
19
- import XAddReport from '../XAddReport/XAddReport.vue'
20
- // eslint-disable-next-line no-unused-vars
21
-
22
- export default {
23
- name: 'XReportDemo',
24
- components: {
25
- XReport, XAddReport
26
- },
27
- mounted () {
28
- // this.$refs.xAddReport.init({
29
- // configName: 'skinTestExecuActionCover',
30
- // selectedId: '11111',
31
- // mixinData: {}
32
- // })
33
- },
34
- data () {
35
- return {
36
- }
37
- },
38
- methods: {
39
- }
40
- }
41
- </script>
42
- <style scoped>
43
-
44
- </style>
1
+ <template>
2
+ <div id="test">
3
+ <a-card :bordered="false">
4
+ <XReport
5
+ ref="main"
6
+ :use-oss-for-img="false"
7
+ config-name="openPrescriptionCover"
8
+ server-name="af-his"
9
+ :show-img-in-cell="true"
10
+ :display-only="true"
11
+ :edit-mode="false"
12
+ :dont-format="true"/>
13
+ </a-card>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ import XReport from './XReport'
19
+ import XAddReport from '../XAddReport/XAddReport.vue'
20
+ // eslint-disable-next-line no-unused-vars
21
+
22
+ export default {
23
+ name: 'XReportDemo',
24
+ components: {
25
+ XReport, XAddReport
26
+ },
27
+ mounted () {
28
+ // this.$refs.xAddReport.init({
29
+ // configName: 'skinTestExecuActionCover',
30
+ // selectedId: '11111',
31
+ // mixinData: {}
32
+ // })
33
+ },
34
+ data () {
35
+ return {
36
+ }
37
+ },
38
+ methods: {
39
+ }
40
+ }
41
+ </script>
42
+ <style scoped>
43
+
44
+ </style>