vue2-client 1.18.66 → 1.18.68

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 (21) hide show
  1. package/package.json +1 -1
  2. package/src/assets/img/paymentMethod/icon1.png +0 -0
  3. package/src/assets/img/paymentMethod/icon2.png +0 -0
  4. package/src/assets/img/paymentMethod/icon3.png +0 -0
  5. package/src/assets/img/paymentMethod/icon4.png +0 -0
  6. package/src/assets/img/paymentMethod/icon5.png +0 -0
  7. package/src/assets/img/paymentMethod/icon6.png +0 -0
  8. package/src/base-client/components/common/HIS/HForm/HForm.vue +24 -1
  9. package/src/base-client/components/common/HIS/HTab/HTab.vue +23 -11
  10. package/src/base-client/components/common/XReport/XReportHospitalizationDemo.vue +45 -0
  11. package/src/base-client/components/his/HChart/demo.vue +88 -88
  12. package/src/base-client/components/his/HChart/index.md +798 -798
  13. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +217 -4
  14. package/src/base-client/components/his/XIcon/XIcon.vue +73 -73
  15. package/src/base-client/components/his/XIcon/index.js +3 -3
  16. package/src/base-client/components/his/XIcon/index.md +177 -177
  17. package/src/base-client/components/his/XRadio/XRadio.vue +83 -3
  18. package/src/base-client/components/his/XTitle/XTitle.vue +2 -2
  19. package/src-base-client/components/his/XCharge/XCharge.vue +0 -0
  20. package/docs/HChart/351/205/215/347/275/256/346/226/207/346/241/243.md +0 -960
  21. /package/{assets/c__Users_QXLL_AppData_Roaming_Cursor_User_workspaceStorage_4fb3d7e3441d32bc6f2c7358b4188b48_images_e8c132e6dde513250d7f9721712df1f8-f1522a08-1aa0-4866-b4e5-b34cf2e21109.png → src-base-client/components/his/XCharge/README.md} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.18.66",
3
+ "version": "1.18.68",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -29,7 +29,9 @@ const wrapperClassObject = computed(() => {
29
29
  'label-text-justify',
30
30
  'simple-inline',
31
31
  'label-justify',
32
- 'charge-form'
32
+ 'charge-form',
33
+ 'mini-form',
34
+ 'content-right'
33
35
  ]
34
36
  for (const key of booleanStyleKeys) {
35
37
  const val = a[key]
@@ -77,6 +79,27 @@ defineExpose({
77
79
  :deep(.ant-form-item) {
78
80
  margin-bottom: 4px;
79
81
  }
82
+ &.h-form-mini-form {
83
+ :deep(.ant-form-inline) {
84
+ .ant-row-flex {
85
+ .ant-col {
86
+ flex: auto !important;
87
+ max-width: 250px !important;
88
+ }
89
+ }
90
+ }
91
+ :deep(.ant-form-item){
92
+ margin-right: 0px !important;
93
+ }
94
+ }
95
+
96
+ &.h-form-content-right {
97
+ :deep(.ant-form-inline) {
98
+ .ant-row-flex {
99
+ justify-content: right;
100
+ }
101
+ }
102
+ }
80
103
 
81
104
  // query-conditions 样式
82
105
  &.h-form-query-conditions {
@@ -131,8 +131,8 @@ defineExpose({
131
131
  display: none;
132
132
  }
133
133
  :deep(.ant-tabs-nav-wrap) {
134
- margin-top: 18px !important;
135
- margin-bottom: 0 !important;
134
+ margin-top: 18px;
135
+ margin-bottom: 0;
136
136
  }
137
137
  :deep(.ant-tabs-nav) {
138
138
  // 去除导航容器默认左右内边距,避免收缩时左侧多出一截
@@ -235,12 +235,23 @@ defineExpose({
235
235
  :deep(.ant-tabs-bar) { border-bottom: 2px solid transparent; }
236
236
 
237
237
  :deep(.ant-tabs-ink-bar) {
238
- display: block;
239
- background-color: #0057FE;
240
- bottom: 8px;
241
- height: 2px;
242
- /* 宽度交给 antd 自身计算,避免固定值影响自适应 */
243
- margin-left: 0;
238
+ display: block !important;
239
+ background-color: #0057FE !important;
240
+ bottom: 3px !important;
241
+ height: 2px !important;
242
+ /* antd 自身计算宽度,与页签宽度匹配 */
243
+ margin-left: 0 !important;
244
+ }
245
+
246
+ :deep(.ant-tabs-nav-wrap) {
247
+ margin-top: 0;
248
+ padding-left: 0 !important; // 消除整个Tab的左间距
249
+ padding-right: 0 !important; // 消除整个Tab的右间距
250
+ }
251
+
252
+ :deep(.ant-tabs-nav-container) {
253
+ padding-left: 0 !important; // 确保容器也没有左右间距
254
+ padding-right: 0 !important;
244
255
  }
245
256
 
246
257
  :deep(.ant-tabs-nav) {
@@ -255,7 +266,7 @@ defineExpose({
255
266
  /* 自适应宽度,允许通过变量覆盖最小宽度 */
256
267
  min-width: var(--tab-min-width, 96px);
257
268
  width: auto;
258
- padding: 0 12px;
269
+ padding: 0 12px 6px;
259
270
  font-size: 16px;
260
271
  line-height: 10px;
261
272
  font-family: "Source Han Sans";
@@ -269,6 +280,7 @@ defineExpose({
269
280
  color: #0057FE;
270
281
  font-weight: 600;
271
282
  width: auto;
283
+ padding: 0 12px 6px;
272
284
  line-height: 10px;
273
285
  height: 40px;
274
286
  text-align: center;
@@ -292,8 +304,8 @@ defineExpose({
292
304
  left: 0 !important;
293
305
  top: 50% !important;
294
306
  transform: translateY(-50%) !important;
295
- width: 8px !important;
296
- height: 8px !important;
307
+ width: 12px !important;
308
+ height: 12px !important;
297
309
  background: #0057FE !important;
298
310
  border-radius: 50% !important;
299
311
  display: block !important;
@@ -0,0 +1,45 @@
1
+ <template>
2
+ <div id="xreport-hosp-demo">
3
+ <a-space style="margin-bottom: 12px;">
4
+ <a-button type="primary" @click="doInit">手动初始化</a-button>
5
+ </a-space>
6
+ <XReport
7
+ ref="reportRef"
8
+ :edit-mode="true"
9
+ :show-save-button="true"
10
+ :show-img-in-cell="false"
11
+ :use-oss-for-img="false"
12
+ server-name="af-his"
13
+ @updateImg="onUpdateImg"/>
14
+ </div>
15
+ </template>
16
+
17
+ <script setup>
18
+ import { ref } from 'vue'
19
+ import XReport from '@vue2-client/base-client/components/common/XReport'
20
+
21
+ const reportRef = ref(null)
22
+
23
+ const payload = {
24
+ arr: [
25
+ { BQ: '病房区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
26
+ { BQ: '感染科', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
27
+ { BQ: '骨科病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
28
+ { BQ: '呼吸科病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
29
+ { BQ: '急症科病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
30
+ { BQ: '内科二病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 }
31
+ ]
32
+ }
33
+
34
+ const doInit = async () => {
35
+ if (!reportRef.value || !reportRef.value.init) return
36
+ await reportRef.value.init({
37
+ configName: 'hospitalizationStatsReport',
38
+ configData: payload
39
+ })
40
+ }
41
+
42
+ const onUpdateImg = data => {
43
+ console.warn('updateImg:', data)
44
+ }
45
+ </script>
@@ -1,88 +1,88 @@
1
- <template>
2
- <div class="h-chart-test-container">
3
- <h2>HChart 组件测试案例</h2>
4
-
5
- <section class="test-section">
6
- <h3>测试1: 通过 queryParamsName 查询配置(从后端获取配置和数据)</h3>
7
- <div class="chart-wrapper">
8
- <HChart
9
- ref="chart1"
10
- query-params-name="accountsReceivableChart"
11
- :fixed-query-form="{ condition: '1=1', dateRange: '2024-01' }"
12
- service-name="af-his"
13
- @init="handleChartInit"
14
- @dataLoaded="handleDataLoaded"
15
- @error="handleError"
16
- />
17
- </div>
18
- <div class="test-actions">
19
- <a-button @click="refreshChart1">刷新图表</a-button>
20
- <a-button @click="reloadChart1">重新加载(更新查询条件)</a-button>
21
- </div>
22
- </section>
23
-
24
- <section class="test-section">
25
- <h3>测试日志</h3>
26
- <div class="log-container">
27
- <div v-for="(log, index) in logs" :key="index" class="log-item">
28
- <span class="log-time">{{ log.time }}</span>
29
- <span class="log-type" :class="log.type">{{ log.type }}</span>
30
- <span class="log-message">{{ log.message }}</span>
31
- </div>
32
- </div>
33
- <a-button @click="clearLogs">清空日志</a-button>
34
- </section>
35
- </div>
36
- </template>
37
-
38
- <script setup>
39
- import { ref } from 'vue'
40
- import { message } from 'ant-design-vue'
41
- import HChart from './HChart.vue'
42
-
43
- const chart1 = ref(null)
44
-
45
- const logs = ref([])
46
-
47
- const addLog = (type, messageText) => {
48
- logs.value.unshift({
49
- time: new Date().toLocaleTimeString(),
50
- type,
51
- message: typeof messageText === 'object' ? JSON.stringify(messageText, null, 2) : messageText
52
- })
53
- if (logs.value.length > 50) logs.value.pop()
54
- }
55
-
56
- const clearLogs = () => {
57
- logs.value = []
58
- }
59
-
60
- const handleChartInit = (config) => {
61
- addLog('init', `图表初始化: ${config?.title || '未知'}`)
62
- message.success(`图表初始化成功: ${config?.title || '未知'}`)
63
- }
64
-
65
- const handleDataLoaded = (data) => {
66
- addLog('dataLoaded', `数据加载完成,共 ${data?.length || 0} 条`)
67
- console.log('数据加载完成:', data)
68
- }
69
-
70
- const handleError = (error) => {
71
- addLog('error', `错误: ${error?.message || String(error)}`)
72
- message.error(`图表加载错误: ${error?.message || String(error)}`)
73
- }
74
-
75
- const refreshChart1 = () => {
76
- if (!chart1.value) return
77
- chart1.value.refresh()
78
- addLog('action', '刷新图表')
79
- message.info('正在刷新图表...')
80
- }
81
-
82
- const reloadChart1 = () => {
83
- if (!chart1.value) return
84
- chart1.value.reload({ condition: '1=1', dateRange: '2024-02' })
85
- addLog('action', '重新加载图表,更新查询条件')
86
- message.info('正在重新加载图表...')
87
- }
88
- </script>
1
+ <template>
2
+ <div class="h-chart-test-container">
3
+ <h2>HChart 组件测试案例</h2>
4
+
5
+ <section class="test-section">
6
+ <h3>测试1: 通过 queryParamsName 查询配置(从后端获取配置和数据)</h3>
7
+ <div class="chart-wrapper">
8
+ <HChart
9
+ ref="chart1"
10
+ query-params-name="accountsReceivableChart"
11
+ :fixed-query-form="{ condition: '1=1', dateRange: '2024-01' }"
12
+ service-name="af-his"
13
+ @init="handleChartInit"
14
+ @dataLoaded="handleDataLoaded"
15
+ @error="handleError"
16
+ />
17
+ </div>
18
+ <div class="test-actions">
19
+ <a-button @click="refreshChart1">刷新图表</a-button>
20
+ <a-button @click="reloadChart1">重新加载(更新查询条件)</a-button>
21
+ </div>
22
+ </section>
23
+
24
+ <section class="test-section">
25
+ <h3>测试日志</h3>
26
+ <div class="log-container">
27
+ <div v-for="(log, index) in logs" :key="index" class="log-item">
28
+ <span class="log-time">{{ log.time }}</span>
29
+ <span class="log-type" :class="log.type">{{ log.type }}</span>
30
+ <span class="log-message">{{ log.message }}</span>
31
+ </div>
32
+ </div>
33
+ <a-button @click="clearLogs">清空日志</a-button>
34
+ </section>
35
+ </div>
36
+ </template>
37
+
38
+ <script setup>
39
+ import { ref } from 'vue'
40
+ import { message } from 'ant-design-vue'
41
+ import HChart from './HChart.vue'
42
+
43
+ const chart1 = ref(null)
44
+
45
+ const logs = ref([])
46
+
47
+ const addLog = (type, messageText) => {
48
+ logs.value.unshift({
49
+ time: new Date().toLocaleTimeString(),
50
+ type,
51
+ message: typeof messageText === 'object' ? JSON.stringify(messageText, null, 2) : messageText
52
+ })
53
+ if (logs.value.length > 50) logs.value.pop()
54
+ }
55
+
56
+ const clearLogs = () => {
57
+ logs.value = []
58
+ }
59
+
60
+ const handleChartInit = (config) => {
61
+ addLog('init', `图表初始化: ${config?.title || '未知'}`)
62
+ message.success(`图表初始化成功: ${config?.title || '未知'}`)
63
+ }
64
+
65
+ const handleDataLoaded = (data) => {
66
+ addLog('dataLoaded', `数据加载完成,共 ${data?.length || 0} 条`)
67
+ console.log('数据加载完成:', data)
68
+ }
69
+
70
+ const handleError = (error) => {
71
+ addLog('error', `错误: ${error?.message || String(error)}`)
72
+ message.error(`图表加载错误: ${error?.message || String(error)}`)
73
+ }
74
+
75
+ const refreshChart1 = () => {
76
+ if (!chart1.value) return
77
+ chart1.value.refresh()
78
+ addLog('action', '刷新图表')
79
+ message.info('正在刷新图表...')
80
+ }
81
+
82
+ const reloadChart1 = () => {
83
+ if (!chart1.value) return
84
+ chart1.value.reload({ condition: '1=1', dateRange: '2024-02' })
85
+ addLog('action', '重新加载图表,更新查询条件')
86
+ message.info('正在重新加载图表...')
87
+ }
88
+ </script>