vue2-client 1.15.110 → 1.15.112

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 (37) hide show
  1. package/.history/src/base-client/components/his/XChart/XChart_20250812134005.vue +160 -0
  2. package/.history/src/base-client/components/his/XChart/XChart_20250812134010.vue +160 -0
  3. package/.history/src/base-client/components/his/XChart/XChart_20250812134019.vue +160 -0
  4. package/.history/src/base-client/components/his/XChart/XChart_20250812134037.vue +160 -0
  5. package/.history/src/base-client/components/his/XChart/XChart_20250812134112.vue +160 -0
  6. package/.history/src/base-client/components/his/XChart/XChart_20250812134114.vue +160 -0
  7. package/.history/src/base-client/components/his/XChart/XChart_20250812134828.vue +148 -0
  8. package/.history/src/base-client/components/his/XChart/XChart_20250812134838.vue +155 -0
  9. package/.history/src/base-client/components/his/XChart/XChart_20250812134846.vue +155 -0
  10. package/.history/src/base-client/components/his/XChart/XChart_20250812134917.vue +155 -0
  11. package/.history/src/base-client/components/his/XChart/XChart_20250812151145.vue +149 -0
  12. package/.history/src/base-client/components/his/XChart/XChart_20250812151810.vue +153 -0
  13. package/.history/src/base-client/components/his/XChart/XChart_20250812151822.vue +153 -0
  14. package/.history/src/base-client/components/his/XChart/XChart_20250812151910.vue +153 -0
  15. package/.history/src/base-client/components/his/XChart/XChart_20250812152858.vue +258 -0
  16. package/.history/src/base-client/components/his/XChart/XChart_20250812152902.vue +258 -0
  17. package/.history/src/base-client/components/his/XChart/XChart_20250812152907.vue +258 -0
  18. package/.history/src/base-client/components/his/XChart/XChart_20250812152919.vue +258 -0
  19. package/.history/src/base-client/components/his/XChart/XChart_20250812153141.vue +269 -0
  20. package/.history/src/base-client/components/his/XChart/XChart_20250812153149.vue +276 -0
  21. package/.history/src/base-client/components/his/XChart/XChart_20250812153153.vue +276 -0
  22. package/.history/src/base-client/components/his/XChart/XChart_20250812153155.vue +276 -0
  23. package/.history/src/base-client/components/his/XChart/XChart_20250812153157.vue +276 -0
  24. package/.history/src/base-client/components/his/XChart/XChart_20250812153158.vue +276 -0
  25. package/.history/src/base-client/components/his/XChart/XChart_20250812153200.vue +276 -0
  26. package/.history/src/base-client/components/his/XChart/XChart_20250812153210.vue +276 -0
  27. package/.history/src/base-client/components/his/XChart/XChart_20250812153918.vue +275 -0
  28. package/.history/src/base-client/components/his/XChart/XChart_20250812154157.vue +280 -0
  29. package/.history/src/base-client/components/his/XChart/XChart_20250812154212.vue +280 -0
  30. package/.history/src/base-client/components/his/XChart/XChart_20250812154250.vue +280 -0
  31. package/.history/src/base-client/components/his/XChart/XChart_20250812154252.vue +280 -0
  32. package/.history/src/base-client/components/his/XChart/XChart_20250812154444.vue +280 -0
  33. package/package.json +1 -1
  34. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +4 -3
  35. package/src/base-client/components/his/XChart/XChart.vue +282 -0
  36. package/src/base-client/components/his/XChart/dome.vue +19 -0
  37. package/src/router/async/router.map.js +1 -1
@@ -0,0 +1,280 @@
1
+ <template>
2
+ <div ref="main" :style="{width: config.width, height: config.height}">
3
+ </div>
4
+ </template>
5
+
6
+ <script>
7
+ import * as echarts from 'echarts'
8
+ import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
9
+
10
+ export default {
11
+ name: 'XChart',
12
+ props: {
13
+ // 配置名
14
+ queryParamsName: {
15
+ type: String,
16
+ default: ''
17
+ },
18
+ // 服务名
19
+ serviceName: {
20
+ type: String,
21
+ default: 'af-his'
22
+ }
23
+ },
24
+ data () {
25
+ return {
26
+ data: [],
27
+ // 配置项
28
+ config: {},
29
+ // 标准值
30
+ standardValue: 0,
31
+ // 标准差
32
+ sd: 0
33
+ }
34
+ },
35
+ mounted () {},
36
+ methods: {
37
+ initDome (queryParamsName, parameter) {
38
+ getConfigByName(queryParamsName, 'af-his', async (res) => {
39
+ this.config = res
40
+ console.log('res', res)
41
+ runLogic(res.data, parameter, 'af-his').then(result => {
42
+ this.standardValue = result[0][this.config.standardValue]
43
+ this.sd = result[0].sd
44
+ const listData = result.map(item => [item.x, item.y])
45
+ this.data = listData
46
+ this.renderChart()
47
+ })
48
+ })
49
+ },
50
+ // 渲染图表
51
+ renderChart () {
52
+ const chartDom = this.$refs.main
53
+ const myChart = echarts.init(chartDom)
54
+
55
+ // 计算控制线
56
+ const centerLine = this.standardValue
57
+ const sd1Upper = centerLine + this.sd
58
+ const sd1Lower = centerLine - this.sd
59
+ const sd2Upper = centerLine + 2 * this.sd
60
+ const sd2Lower = centerLine - 2 * this.sd
61
+ const sd3Upper = centerLine + 3 * this.sd
62
+ const sd3Lower = centerLine - 3 * this.sd
63
+
64
+ // 计算y轴范围,让靶值居中
65
+ const dataMin = Math.min(...this.data.map(item => item[1]))
66
+ const dataMax = Math.max(...this.data.map(item => item[1]))
67
+ const range = Math.max(dataMax - centerLine, centerLine - dataMin, this.sd * 4)
68
+ const yMin = centerLine - range
69
+ const yMax = centerLine + range
70
+
71
+ const option = {
72
+ title: {
73
+ text: this.config.title,
74
+ subtext: this.config.subtext,
75
+ left: 'center',
76
+ textStyle: {
77
+ fontSize: 16,
78
+ fontWeight: 'bold'
79
+ },
80
+ subtextStyle: {
81
+ fontSize: 12,
82
+ color: '#666'
83
+ }
84
+ },
85
+ legend: {
86
+ bottom: 10,
87
+ data: ['测量值', '中心线', '±1SD', '±2SD', '±3SD']
88
+ },
89
+ tooltip: {
90
+ trigger: 'axis',
91
+ axisPointer: {
92
+ type: 'cross'
93
+ },
94
+ formatter: function (params) {
95
+ let result = `第${params[0].data[0]}次测量<br/>`
96
+ params.forEach(param => {
97
+ if (param.seriesName === '测量值') {
98
+ result += `${param.seriesName}: ${param.data[1]}<br/>`
99
+ }
100
+ })
101
+ return result
102
+ }
103
+ },
104
+ grid: {
105
+ left: '10%',
106
+ right: '10%',
107
+ top: '15%',
108
+ bottom: '15%'
109
+ },
110
+ xAxis: {
111
+ type: 'category',
112
+ name: '测量次数',
113
+ nameLocation: 'middle',
114
+ nameGap: 30,
115
+ axisLine: {
116
+ lineStyle: {
117
+ color: '#333'
118
+ }
119
+ },
120
+ axisTick: {
121
+ show: true
122
+ },
123
+ splitLine: {
124
+ show: false
125
+ }
126
+ },
127
+ yAxis: {
128
+ type: 'value',
129
+ name: this.config.formatter,
130
+ nameLocation: 'middle',
131
+ nameGap: 50,
132
+ nameTextStyle: {
133
+ color: '#333',
134
+ fontSize: 12
135
+ },
136
+ show: true,
137
+ axisLine: {
138
+ show: true,
139
+ lineStyle: {
140
+ color: '#333'
141
+ }
142
+ },
143
+ axisTick: {
144
+ show: true
145
+ },
146
+ axisLabel: {
147
+ show: true,
148
+ rotate: 0
149
+ },
150
+ min: yMin,
151
+ max: yMax,
152
+ splitLine: {
153
+ show: true,
154
+ lineStyle: {
155
+ type: 'dashed',
156
+ color: '#ddd'
157
+ }
158
+ }
159
+ },
160
+ series: [
161
+ {
162
+ type: 'line',
163
+ data: this.data,
164
+ symbol: 'circle',
165
+ symbolSize: 8,
166
+ lineStyle: {
167
+ color: '#1890ff',
168
+ width: 2
169
+ },
170
+ itemStyle: {
171
+ color: '#1890ff',
172
+ borderColor: '#fff',
173
+ borderWidth: 2
174
+ },
175
+ markLine: {
176
+ silent: true,
177
+ symbol: 'none',
178
+ lineStyle: {
179
+ color: '#52c41a',
180
+ width: 2,
181
+ type: 'solid'
182
+ },
183
+ data: [
184
+ {
185
+ yAxis: centerLine,
186
+ label: {
187
+ formatter: `中心线: ${centerLine}`,
188
+ position: 'insideEndTop'
189
+ }
190
+ },
191
+ {
192
+ yAxis: sd1Upper,
193
+ lineStyle: {
194
+ color: '#faad14',
195
+ type: 'dashed'
196
+ },
197
+ label: {
198
+ formatter: `+1SD: ${sd1Upper.toFixed(2)}`,
199
+ position: 'insideEndTop'
200
+ }
201
+ },
202
+ {
203
+ yAxis: sd1Lower,
204
+ lineStyle: {
205
+ color: '#faad14',
206
+ type: 'dashed'
207
+ },
208
+ label: {
209
+ formatter: `-1SD: ${sd1Lower.toFixed(2)}`,
210
+ position: 'insideEndBottom'
211
+ }
212
+ },
213
+ {
214
+ yAxis: sd2Upper,
215
+ lineStyle: {
216
+ color: '#ff7a45',
217
+ type: 'dashed'
218
+ },
219
+ label: {
220
+ formatter: `+2SD: ${sd2Upper.toFixed(2)}`,
221
+ position: 'insideEndTop'
222
+ }
223
+ },
224
+ {
225
+ yAxis: sd2Lower,
226
+ lineStyle: {
227
+ color: '#ff7a45',
228
+ type: 'dashed'
229
+ },
230
+ label: {
231
+ formatter: `-2SD: ${sd2Lower.toFixed(2)}`,
232
+ position: 'insideEndBottom'
233
+ }
234
+ },
235
+ {
236
+ yAxis: sd3Upper,
237
+ lineStyle: {
238
+ color: '#ff4d4f',
239
+ type: 'dashed'
240
+ },
241
+ label: {
242
+ formatter: `+3SD: ${sd3Upper.toFixed(2)}`,
243
+ position: 'insideEndTop'
244
+ }
245
+ },
246
+ {
247
+ yAxis: sd3Lower,
248
+ lineStyle: {
249
+ color: '#ff4d4f',
250
+ type: 'dashed'
251
+ },
252
+ label: {
253
+ formatter: `-3SD: ${sd3Lower.toFixed(2)}`,
254
+ position: 'insideEndBottom'
255
+ }
256
+ }
257
+ ]
258
+ }
259
+ }
260
+ ]
261
+ }
262
+ option && myChart.setOption(option)
263
+ }
264
+ },
265
+ watch: {
266
+ queryParamsName: {
267
+ deep: true,
268
+ immediate: true,
269
+ handler (val) {
270
+ console.log('queryParamsName', val)
271
+ this.initDome(val, {})
272
+ }
273
+ }
274
+ }
275
+ }
276
+ </script>
277
+
278
+ <style scoped lang="less">
279
+
280
+ </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.15.110",
3
+ "version": "1.15.112",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -25,7 +25,7 @@
25
25
  </template>
26
26
  <template v-else-if="cell.type === 'slot'">
27
27
  <template
28
- v-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','x-calendar', 'x-time-select' ,'x-checkbox', 'x-title', 'x-select', 'x-tree-rows', 'x-three-test-orders', 'x-shift-schedule','x-charge','x-questionnaire','x-import-excel-button'].includes(cell.slotType)">
28
+ v-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','x-calendar', 'x-time-select' ,'x-checkbox', 'x-title', 'x-select', 'x-tree-rows', 'x-three-test-orders', 'x-shift-schedule','x-charge','x-questionnaire','x-import-excel-button','x-chart'].includes(cell.slotType)">
29
29
  <component
30
30
  :is="getComponentName(cell.slotConfig, cell.serviceName, cell.slotType)"
31
31
  :key="cellIndex"
@@ -63,7 +63,7 @@
63
63
  </template>
64
64
  <template v-else-if="cell.type === 'slot'">
65
65
  <template
66
- v-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','x-calendar', 'x-time-select','x-checkbox', 'x-title', 'x-select', 'x-tree-rows', 'x-three-test-orders', 'x-shift-schedule','x-charge','x-questionnaire','x-import-excel-button'].includes(cell.slotType)">
66
+ v-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','x-calendar', 'x-time-select','x-checkbox', 'x-title', 'x-select', 'x-tree-rows', 'x-three-test-orders', 'x-shift-schedule','x-charge','x-questionnaire','x-import-excel-button','x-chart'].includes(cell.slotType)">
67
67
  <component
68
68
  :is="getComponentName(cell.slotConfig, cell.serviceName, cell.slotType)"
69
69
  :key="cellIndex"
@@ -128,7 +128,8 @@ export default {
128
128
  XShiftSchedule: () => import('@vue2-client/base-client/components/his/XShiftSchedule/XShiftSchedule.vue'),
129
129
  XCharge: () => import('@vue2-client/base-client/components/his/XCharge/XCharge.vue'),
130
130
  XQuestionnaire: () => import('@vue2-client/base-client/components/his/XQuestionnaire/XQuestionnaire.vue'),
131
- XImportExcelButton: () => import('@vue2-client/base-client/components/his/XImportExcelButton/XImportExcelButton.vue')
131
+ XImportExcelButton: () => import('@vue2-client/base-client/components/his/XImportExcelButton/XImportExcelButton.vue'),
132
+ XChart: () => import('@vue2-client/base-client/components/his/XChart/XChart.vue')
132
133
  },
133
134
  props: {
134
135
  // 每一行的配置
@@ -0,0 +1,282 @@
1
+ <template>
2
+ <div ref="main" :style="{width: config.width, height: config.height}">
3
+ </div>
4
+ </template>
5
+
6
+ <script>
7
+ import * as echarts from 'echarts'
8
+ import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
9
+
10
+ export default {
11
+ name: 'XChart',
12
+ props: {
13
+ // 配置名
14
+ queryParamsName: {
15
+ type: String,
16
+ default: ''
17
+ },
18
+ // 服务名
19
+ serviceName: {
20
+ type: String,
21
+ default: 'af-his'
22
+ }
23
+ },
24
+ data () {
25
+ return {
26
+ data: [],
27
+ // 配置项
28
+ config: {},
29
+ // 标准值
30
+ standardValue: 0,
31
+ // 标准差
32
+ sd: 0
33
+ }
34
+ },
35
+ mounted () {
36
+ },
37
+ methods: {
38
+ initDome (queryParamsName, parameter) {
39
+ getConfigByName(queryParamsName, 'af-his', async (res) => {
40
+ this.config = res
41
+ console.log('res', res)
42
+ runLogic(res.data, parameter, 'af-his').then(result => {
43
+ if (result != 0) {
44
+ this.standardValue = result[0][this.config.standardValue] != null ? result[0][this.config.standardValue] : 0
45
+ this.sd = result[0].sd
46
+ const listData = result.map(item => [item.x, item.y])
47
+ this.data = listData
48
+ this.renderChart()
49
+ } else {
50
+ this.$message.warn('没有获取到结果数据')
51
+ }
52
+ })
53
+ })
54
+ },
55
+ // 渲染图表
56
+ renderChart () {
57
+ const chartDom = this.$refs.main
58
+ const myChart = echarts.init(chartDom)
59
+
60
+ // 计算控制线
61
+ const centerLine = this.standardValue
62
+ const sd1Upper = centerLine + this.sd
63
+ const sd1Lower = centerLine - this.sd
64
+ const sd2Upper = centerLine + 2 * this.sd
65
+ const sd2Lower = centerLine - 2 * this.sd
66
+ const sd3Upper = centerLine + 3 * this.sd
67
+ const sd3Lower = centerLine - 3 * this.sd
68
+
69
+ // 计算y轴范围,让靶值居中
70
+ const yMin = centerLine - this.sd * 4
71
+ const yMax = centerLine + this.sd * 4
72
+
73
+ const option = {
74
+ title: {
75
+ text: this.config.title,
76
+ subtext: this.config.subtext,
77
+ left: 'center',
78
+ textStyle: {
79
+ fontSize: 16,
80
+ fontWeight: 'bold'
81
+ },
82
+ subtextStyle: {
83
+ fontSize: 12,
84
+ color: '#666'
85
+ }
86
+ },
87
+ legend: {
88
+ bottom: 10,
89
+ data: ['测量值', '中心线', '±1SD', '±2SD', '±3SD']
90
+ },
91
+ tooltip: {
92
+ trigger: 'axis',
93
+ axisPointer: {
94
+ type: 'cross'
95
+ },
96
+ formatter: function (params) {
97
+ let result = `第${params[0].data[0]}次测量<br/>`
98
+ params.forEach(param => {
99
+ if (param.seriesName === '测量值') {
100
+ result += `${param.seriesName}: ${param.data[1]}<br/>`
101
+ }
102
+ })
103
+ return result
104
+ }
105
+ },
106
+ grid: {
107
+ left: '10%',
108
+ right: '10%',
109
+ top: '15%',
110
+ bottom: '15%'
111
+ },
112
+ xAxis: {
113
+ type: 'category',
114
+ name: '测量次数',
115
+ nameLocation: 'middle',
116
+ nameGap: 30,
117
+ axisLine: {
118
+ lineStyle: {
119
+ color: '#333'
120
+ }
121
+ },
122
+ axisTick: {
123
+ show: true
124
+ },
125
+ splitLine: {
126
+ show: false
127
+ }
128
+ },
129
+ yAxis: {
130
+ type: 'value',
131
+ name: this.config.formatter,
132
+ nameLocation: 'middle',
133
+ nameGap: 50,
134
+ nameTextStyle: {
135
+ color: '#333',
136
+ fontSize: 12
137
+ },
138
+ show: true,
139
+ axisLine: {
140
+ show: true,
141
+ lineStyle: {
142
+ color: '#333'
143
+ }
144
+ },
145
+ axisTick: {
146
+ show: true
147
+ },
148
+ axisLabel: {
149
+ show: true,
150
+ rotate: 0
151
+ },
152
+ min: yMin,
153
+ max: yMax,
154
+ splitLine: {
155
+ show: true,
156
+ lineStyle: {
157
+ type: 'dashed',
158
+ color: '#ddd'
159
+ }
160
+ }
161
+ },
162
+ series: [
163
+ {
164
+ type: 'line',
165
+ data: this.data,
166
+ symbol: 'circle',
167
+ symbolSize: 8,
168
+ lineStyle: {
169
+ color: '#1890ff',
170
+ width: 2
171
+ },
172
+ itemStyle: {
173
+ color: '#1890ff',
174
+ borderColor: '#fff',
175
+ borderWidth: 2
176
+ },
177
+ markLine: {
178
+ silent: true,
179
+ symbol: 'none',
180
+ lineStyle: {
181
+ color: '#52c41a',
182
+ width: 2,
183
+ type: 'solid'
184
+ },
185
+ data: [
186
+ {
187
+ yAxis: centerLine,
188
+ label: {
189
+ formatter: `中心线: ${centerLine}`,
190
+ position: 'insideEndTop'
191
+ }
192
+ },
193
+ {
194
+ yAxis: sd1Upper,
195
+ lineStyle: {
196
+ color: '#faad14',
197
+ type: 'dashed'
198
+ },
199
+ label: {
200
+ formatter: `+1SD: ${sd1Upper.toFixed(2)}`,
201
+ position: 'insideEndTop'
202
+ }
203
+ },
204
+ {
205
+ yAxis: sd1Lower,
206
+ lineStyle: {
207
+ color: '#faad14',
208
+ type: 'dashed'
209
+ },
210
+ label: {
211
+ formatter: `-1SD: ${sd1Lower.toFixed(2)}`,
212
+ position: 'insideEndBottom'
213
+ }
214
+ },
215
+ {
216
+ yAxis: sd2Upper,
217
+ lineStyle: {
218
+ color: '#ff7a45',
219
+ type: 'dashed'
220
+ },
221
+ label: {
222
+ formatter: `+2SD: ${sd2Upper.toFixed(2)}`,
223
+ position: 'insideEndTop'
224
+ }
225
+ },
226
+ {
227
+ yAxis: sd2Lower,
228
+ lineStyle: {
229
+ color: '#ff7a45',
230
+ type: 'dashed'
231
+ },
232
+ label: {
233
+ formatter: `-2SD: ${sd2Lower.toFixed(2)}`,
234
+ position: 'insideEndBottom'
235
+ }
236
+ },
237
+ {
238
+ yAxis: sd3Upper,
239
+ lineStyle: {
240
+ color: '#ff4d4f',
241
+ type: 'dashed'
242
+ },
243
+ label: {
244
+ formatter: `+3SD: ${sd3Upper.toFixed(2)}`,
245
+ position: 'insideEndTop'
246
+ }
247
+ },
248
+ {
249
+ yAxis: sd3Lower,
250
+ lineStyle: {
251
+ color: '#ff4d4f',
252
+ type: 'dashed'
253
+ },
254
+ label: {
255
+ formatter: `-3SD: ${sd3Lower.toFixed(2)}`,
256
+ position: 'insideEndBottom'
257
+ }
258
+ }
259
+ ]
260
+ }
261
+ }
262
+ ]
263
+ }
264
+ option && myChart.setOption(option)
265
+ }
266
+ },
267
+ watch: {
268
+ queryParamsName: {
269
+ deep: true,
270
+ immediate: true,
271
+ handler (val) {
272
+ console.log('queryParamsName', val)
273
+ this.initDome(val, {})
274
+ }
275
+ }
276
+ }
277
+ }
278
+ </script>
279
+
280
+ <style scoped lang="less">
281
+
282
+ </style>
@@ -0,0 +1,19 @@
1
+ <template>
2
+ <XChart :queryParamsName="queryParamsName"></XChart>
3
+ </template>
4
+
5
+ <script>
6
+ import XChart from './XChart.vue'
7
+
8
+ export default {
9
+ name: 'Dome',
10
+ components: {
11
+ XChart
12
+ },
13
+ data () {
14
+ return {
15
+ queryParamsName: 'qualityInspectionReportConfig'
16
+ }
17
+ }
18
+ }
19
+ </script>
@@ -66,7 +66,7 @@ path: 'example',
66
66
  // component: () => import('@vue2-client/base-client/components/common/XRate/demo.vue'),
67
67
  // component: () => import('@vue2-client/base-client/components/common/XForm/demo.vue'),
68
68
  // component: () => import('@vue2-client/base-client/components/his/XTimeSelect/XTimeSelectDemo.vue'),
69
- component: () => import('@vue2-client/base-client/components/his/XShiftSchedule/dome.vue'),
69
+ component: () => import('@vue2-client/base-client/components/his/XChart/dome.vue'),
70
70
  // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
71
71
  // component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
72
72
  // component: () => import('@vue2-client/pages/XPageViewExample/index.vue'),