vue2-client 1.18.22 → 1.18.24

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 (108) hide show
  1. package/.eslintrc.js +90 -90
  2. package/Components.md +60 -60
  3. package/docs/index.md +30 -30
  4. package/index.js +31 -31
  5. package/jest-transform-stub.js +8 -8
  6. package/jest.setup.js +7 -7
  7. package/package.json +1 -1
  8. package/src/assets/img/querySlotDemo.svg +15 -15
  9. package/src/assets/svg/female.svg +1 -1
  10. package/src/assets/svg/male.svg +1 -1
  11. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  12. package/src/base-client/components/common/CitySelect/index.js +3 -3
  13. package/src/base-client/components/common/CitySelect/index.md +109 -109
  14. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  15. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  16. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  17. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  18. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  19. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  20. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  21. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  22. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  23. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  24. package/src/base-client/components/common/HIS/HButtons/HButtons.vue +491 -491
  25. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  26. package/src/base-client/components/common/HIS/HTab/HTab.vue +443 -443
  27. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  28. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  29. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  30. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  31. package/src/base-client/components/common/Tree/index.js +2 -2
  32. package/src/base-client/components/common/Upload/index.js +3 -3
  33. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  34. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  35. package/src/base-client/components/common/XCollapse/XCollapse.vue +830 -830
  36. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  37. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  38. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  39. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +344 -137
  40. package/src/base-client/components/common/XDescriptions/demo.vue +89 -10
  41. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  42. package/src/base-client/components/common/XDescriptions/index.md +322 -83
  43. package/src/base-client/components/common/XForm/index.md +178 -178
  44. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  45. package/src/base-client/components/common/XStepView/index.js +3 -3
  46. package/src/base-client/components/common/XStepView/index.md +31 -31
  47. package/src/base-client/components/common/XTable/index.md +255 -255
  48. package/src/base-client/components/common/XTimeline/XTimeline.vue +477 -477
  49. package/src/base-client/components/his/HChart/HChart.vue +311 -16
  50. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  51. package/src/base-client/components/his/XList/XList.vue +938 -938
  52. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +354 -354
  53. package/src/base-client/components/his/XTitle/XTitle.vue +314 -314
  54. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  55. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  56. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  57. package/src/base-client/plugins/Config.js +19 -19
  58. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  59. package/src/components/Charts/Bar.vue +62 -62
  60. package/src/components/Charts/ChartCard.vue +134 -134
  61. package/src/components/Charts/Liquid.vue +67 -67
  62. package/src/components/Charts/MiniArea.vue +39 -39
  63. package/src/components/Charts/MiniBar.vue +39 -39
  64. package/src/components/Charts/MiniProgress.vue +75 -75
  65. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  66. package/src/components/Charts/Radar.vue +68 -68
  67. package/src/components/Charts/RankList.vue +77 -77
  68. package/src/components/Charts/TagCloud.vue +113 -113
  69. package/src/components/Charts/TransferBar.vue +64 -64
  70. package/src/components/Charts/Trend.vue +82 -82
  71. package/src/components/Charts/chart.less +12 -12
  72. package/src/components/Charts/smooth.area.less +13 -13
  73. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  74. package/src/components/NumberInfo/index.js +3 -3
  75. package/src/components/NumberInfo/index.less +54 -54
  76. package/src/components/NumberInfo/index.md +43 -43
  77. package/src/components/card/ChartCard.vue +79 -79
  78. package/src/components/chart/Bar.vue +60 -60
  79. package/src/components/chart/MiniArea.vue +67 -67
  80. package/src/components/chart/MiniBar.vue +59 -59
  81. package/src/components/chart/MiniProgress.vue +57 -57
  82. package/src/components/chart/Radar.vue +80 -80
  83. package/src/components/chart/RankingList.vue +60 -60
  84. package/src/components/chart/Trend.vue +79 -79
  85. package/src/components/chart/index.less +9 -9
  86. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  87. package/src/components/input/IInput.vue +66 -66
  88. package/src/components/menu/SideMenu.vue +75 -75
  89. package/src/components/menu/menu.js +273 -273
  90. package/src/components/tool/AStepItem.vue +60 -60
  91. package/src/layouts/CommonLayout.vue +56 -56
  92. package/src/layouts/header/HeaderNotice.vue +177 -177
  93. package/src/lib.js +1 -1
  94. package/src/mock/extend/index.js +84 -84
  95. package/src/mock/goods/index.js +108 -108
  96. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  97. package/src/pages/system/dictionary/index.vue +44 -44
  98. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  99. package/src/pages/system/monitor/operLog/index.vue +37 -37
  100. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  101. package/src/router/async/router.map.js +2 -1
  102. package/src/services/api/cas.js +79 -79
  103. package/src/store/modules/setting.js +119 -119
  104. package/src/utils/authority-utils.js +85 -85
  105. package/src/utils/errorCode.js +6 -6
  106. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  107. package/src-base-client/components/common/HIS/HForm/HForm.vue +0 -347
  108. package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
@@ -1,252 +1,252 @@
1
- <template>
2
- <div>
3
- <a-row type="flex">
4
- <a-col :span="stepStyle.flex">
5
- <a-steps
6
- :type="stepStyle.type"
7
- :current="current"
8
- :direction="stepStyle.direction"
9
- :labelPlacement="stepStyle.labelPlacement"
10
- :progressDot="stepStyle.false"
11
- :size="stepStyle.size"
12
- :initial="initial"
13
- :status="status"
14
- @chaneg="onChange"
15
- >
16
- <a-step
17
- v-for="(item, index) in this.configContent.step.steps"
18
- :key="'step-'+item.name"
19
- :title="item.title"
20
- :description="item.description"
21
- :sub-title="item.subTitle"
22
- :disabled="item.disabled">
23
- <a-icon v-if="current === index" slot="icon" :type="iconType" />
24
- </a-step>
25
- </a-steps>
26
- </a-col>
27
- <a-col :span="panelStyle.flex">
28
- <template v-for="(item, index) in this.configContent.step.steps">
29
- <a-card
30
- v-if="current === index"
31
- :bordered="false"
32
- :key="'stepCard-'+item.name">
33
- <template v-if="item.content.card.type === 'text'">
34
- <p>{{ item.content.card.value }}</p>
35
- </template>
36
- <x-add-native-form v-else-if="item.content.card.type === 'form'" :ref="'XAddNativeForm'+ item.name" @onSubmit="submit"/>
37
- <x-table v-else-if="item.content.card.type === 'table'" :fixed-query-form="item.content.card.queryFrom" @action="action" :query-params-name="item.content.card.queryParamsName" :ref="'XAddNativeForm'+item.name" />
38
- <a-button v-if="status === 'error'" @click="success" style="color: v-bind()">下一步</a-button>
39
- </a-card>
40
- </template>
41
- </a-col>
42
- </a-row>
43
- </div>
44
- </template>
45
-
46
- <script>
47
- import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
48
- import { post } from '@vue2-client/services/api'
49
- import XTable from '@vue2-client/base-client/components/common/XTable/XTable.vue'
50
-
51
- export default {
52
- name: 'XStepView',
53
- components: { XTable, XAddNativeForm },
54
- computed: {
55
- stepStyle () {
56
- const style = this.configContent.step.style
57
- if (style) {
58
- return style
59
- } else {
60
- return {
61
- flex: 5,
62
- type: 'default',
63
- progressDot: 'false',
64
- direction: 'horizontal',
65
- labelPlacement: 'horizontal',
66
- size: 'default',
67
- }
68
- }
69
- },
70
- panelStyle () {
71
- const style = this.configContent.panelStyle
72
- if (style) {
73
- return style
74
- } else {
75
- return {
76
- flex: 19
77
- }
78
- }
79
- }
80
-
81
- },
82
- props: {
83
- params: {
84
- type: Object,
85
- required: true,
86
- },
87
- configContent: {
88
- type: Object,
89
- required: true,
90
- }
91
- },
92
- data () {
93
- return {
94
- current: -1,
95
- initial: 0,
96
- status: 'wait',
97
- iconType: 'loading',
98
- timeOut: undefined
99
- }
100
- },
101
- watch: {
102
- async current (newValue) {
103
- this.changeIcon()
104
- if (this.timeOut !== undefined) { window.clearTimeout(this.timeOut) }
105
-
106
- const setpes = this.configContent.step.steps[newValue]
107
- const type = setpes.content.card.type
108
- const formValue = setpes.content.card.value
109
- console.warn('formValue = ', formValue)
110
- if (setpes.before) {
111
- const postName = setpes.before.name.split('@')
112
- this.timeOut = window.setTimeout(() => {
113
- post('/api/af-system/' + postName[0] + '/' + postName[1], setpes.before.params).then(res => {
114
- console.warn(setpes.before.name + '执行结果', res)
115
- if (res.code === 200) {
116
- window.clearInterval(this.timeOut)
117
- this.success()
118
- } else {
119
- setpes.content.card.value = res.msg
120
- }
121
- }).catch(e => {
122
- console.warn(setpes.before.name + '执行结果', e)
123
- window.clearInterval(this.timeOut)
124
- this.error()
125
- })
126
- }, 10 * 1000)
127
- }
128
- if (type === 'form') {
129
- this.$nextTick(() => {
130
- const stepsss = this.$refs['XAddNativeForm' + setpes.name][0]
131
- stepsss.init({
132
- formItems: formValue
133
- })
134
- })
135
- } else if (type === 'table') {
136
- console.warn('formValue = ', formValue)
137
- this.$nextTick(() => {
138
- const stepsss = this.$refs['XAddNativeForm' + setpes.name][0]
139
- stepsss.init({
140
- tableColumns: formValue,
141
- buttonState: {
142
- add: false,
143
- edit: true,
144
- delete: false,
145
- import: false,
146
- export: false
147
- }
148
- })
149
- })
150
- } else {
151
- if (setpes.run) {
152
- post('/api/af-system/logic/' + setpes.run.name, setpes.run.params).then(t => {
153
- console.warn(setpes.run.name + '执行结果', t)
154
- if (t.code === 200) {
155
- this.success()
156
- } else {
157
- setpes.content.card.value = t.msg
158
- }
159
- }).catch(e => {
160
- console.warn(setpes.run.name + '执行结果', e)
161
- this.error()
162
- })
163
- }
164
- }
165
- }
166
- },
167
- mounted () {
168
- let paramsStr = JSON.stringify(this.configContent.step)
169
- for (const item in this.params) {
170
- const regex = new RegExp('\\$\\{' + item + '\\}', 'g')
171
- paramsStr = paramsStr.replace(regex, this.params[item])
172
- }
173
- const params = JSON.parse(paramsStr)
174
- this.init({ step: params })
175
- this.current++
176
- },
177
- methods: {
178
- init (params) {
179
- const {
180
- style,
181
- panel,
182
- step
183
- } = params
184
- if (style) {
185
- this.stepStyle = style
186
- }
187
- if (panel) {
188
- this.panelStyle = panel
189
- }
190
- if (step) {
191
- this.configContent.step = step
192
- }
193
- },
194
- steps () {
195
- return this.steps
196
- },
197
- onChange (current) {
198
- this.current = current
199
- },
200
- submit (res) {
201
- console.warn('res', res)
202
- const setpes = this.configContent.step.steps[this.current]
203
- if (setpes.run) {
204
- post('/api/af-system/logic/' + setpes.run.name, res.realForm).then(t => {
205
- console.warn(setpes.run.name + '执行结果', t)
206
- if (t.code === 200) {
207
- this.success()
208
- }
209
- }).catch(e => {
210
- console.warn(setpes.run.name + '执行结果', e)
211
- this.error()
212
- })
213
- }
214
- },
215
- error () {
216
- this.status = 'error'
217
- this.iconType = 'close-circle'
218
- },
219
- success () {
220
- this.changeIcon()
221
-
222
- this.current++
223
- },
224
- changeIcon () {
225
- this.status = 'wait'
226
- this.iconType = 'loading'
227
- },
228
- previous () {
229
- this.current--
230
- },
231
- action (record, id, actionType) {
232
- console.warn('record', record)
233
- console.warn('id', id)
234
- console.warn('actionType', actionType)
235
- const setpes = this.configContent.step.steps[this.current]
236
- if (setpes.run) {
237
- post('/api/af-system/logic/' + setpes.run.name, { data: record }).then(t => {
238
- console.warn(setpes.run.name + '执行结果', t)
239
- if (t.code === 200) {
240
- this.success()
241
- }
242
- }).catch(e => {
243
- console.warn(setpes.run.name + '执行结果', e)
244
- this.error()
245
- })
246
- }
247
- }
248
- },
249
- }
250
- </script>
251
-
252
- <style lang="less" scoped></style>
1
+ <template>
2
+ <div>
3
+ <a-row type="flex">
4
+ <a-col :span="stepStyle.flex">
5
+ <a-steps
6
+ :type="stepStyle.type"
7
+ :current="current"
8
+ :direction="stepStyle.direction"
9
+ :labelPlacement="stepStyle.labelPlacement"
10
+ :progressDot="stepStyle.false"
11
+ :size="stepStyle.size"
12
+ :initial="initial"
13
+ :status="status"
14
+ @chaneg="onChange"
15
+ >
16
+ <a-step
17
+ v-for="(item, index) in this.configContent.step.steps"
18
+ :key="'step-'+item.name"
19
+ :title="item.title"
20
+ :description="item.description"
21
+ :sub-title="item.subTitle"
22
+ :disabled="item.disabled">
23
+ <a-icon v-if="current === index" slot="icon" :type="iconType" />
24
+ </a-step>
25
+ </a-steps>
26
+ </a-col>
27
+ <a-col :span="panelStyle.flex">
28
+ <template v-for="(item, index) in this.configContent.step.steps">
29
+ <a-card
30
+ v-if="current === index"
31
+ :bordered="false"
32
+ :key="'stepCard-'+item.name">
33
+ <template v-if="item.content.card.type === 'text'">
34
+ <p>{{ item.content.card.value }}</p>
35
+ </template>
36
+ <x-add-native-form v-else-if="item.content.card.type === 'form'" :ref="'XAddNativeForm'+ item.name" @onSubmit="submit"/>
37
+ <x-table v-else-if="item.content.card.type === 'table'" :fixed-query-form="item.content.card.queryFrom" @action="action" :query-params-name="item.content.card.queryParamsName" :ref="'XAddNativeForm'+item.name" />
38
+ <a-button v-if="status === 'error'" @click="success" style="color: v-bind()">下一步</a-button>
39
+ </a-card>
40
+ </template>
41
+ </a-col>
42
+ </a-row>
43
+ </div>
44
+ </template>
45
+
46
+ <script>
47
+ import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
48
+ import { post } from '@vue2-client/services/api'
49
+ import XTable from '@vue2-client/base-client/components/common/XTable/XTable.vue'
50
+
51
+ export default {
52
+ name: 'XStepView',
53
+ components: { XTable, XAddNativeForm },
54
+ computed: {
55
+ stepStyle () {
56
+ const style = this.configContent.step.style
57
+ if (style) {
58
+ return style
59
+ } else {
60
+ return {
61
+ flex: 5,
62
+ type: 'default',
63
+ progressDot: 'false',
64
+ direction: 'horizontal',
65
+ labelPlacement: 'horizontal',
66
+ size: 'default',
67
+ }
68
+ }
69
+ },
70
+ panelStyle () {
71
+ const style = this.configContent.panelStyle
72
+ if (style) {
73
+ return style
74
+ } else {
75
+ return {
76
+ flex: 19
77
+ }
78
+ }
79
+ }
80
+
81
+ },
82
+ props: {
83
+ params: {
84
+ type: Object,
85
+ required: true,
86
+ },
87
+ configContent: {
88
+ type: Object,
89
+ required: true,
90
+ }
91
+ },
92
+ data () {
93
+ return {
94
+ current: -1,
95
+ initial: 0,
96
+ status: 'wait',
97
+ iconType: 'loading',
98
+ timeOut: undefined
99
+ }
100
+ },
101
+ watch: {
102
+ async current (newValue) {
103
+ this.changeIcon()
104
+ if (this.timeOut !== undefined) { window.clearTimeout(this.timeOut) }
105
+
106
+ const setpes = this.configContent.step.steps[newValue]
107
+ const type = setpes.content.card.type
108
+ const formValue = setpes.content.card.value
109
+ console.warn('formValue = ', formValue)
110
+ if (setpes.before) {
111
+ const postName = setpes.before.name.split('@')
112
+ this.timeOut = window.setTimeout(() => {
113
+ post('/api/af-system/' + postName[0] + '/' + postName[1], setpes.before.params).then(res => {
114
+ console.warn(setpes.before.name + '执行结果', res)
115
+ if (res.code === 200) {
116
+ window.clearInterval(this.timeOut)
117
+ this.success()
118
+ } else {
119
+ setpes.content.card.value = res.msg
120
+ }
121
+ }).catch(e => {
122
+ console.warn(setpes.before.name + '执行结果', e)
123
+ window.clearInterval(this.timeOut)
124
+ this.error()
125
+ })
126
+ }, 10 * 1000)
127
+ }
128
+ if (type === 'form') {
129
+ this.$nextTick(() => {
130
+ const stepsss = this.$refs['XAddNativeForm' + setpes.name][0]
131
+ stepsss.init({
132
+ formItems: formValue
133
+ })
134
+ })
135
+ } else if (type === 'table') {
136
+ console.warn('formValue = ', formValue)
137
+ this.$nextTick(() => {
138
+ const stepsss = this.$refs['XAddNativeForm' + setpes.name][0]
139
+ stepsss.init({
140
+ tableColumns: formValue,
141
+ buttonState: {
142
+ add: false,
143
+ edit: true,
144
+ delete: false,
145
+ import: false,
146
+ export: false
147
+ }
148
+ })
149
+ })
150
+ } else {
151
+ if (setpes.run) {
152
+ post('/api/af-system/logic/' + setpes.run.name, setpes.run.params).then(t => {
153
+ console.warn(setpes.run.name + '执行结果', t)
154
+ if (t.code === 200) {
155
+ this.success()
156
+ } else {
157
+ setpes.content.card.value = t.msg
158
+ }
159
+ }).catch(e => {
160
+ console.warn(setpes.run.name + '执行结果', e)
161
+ this.error()
162
+ })
163
+ }
164
+ }
165
+ }
166
+ },
167
+ mounted () {
168
+ let paramsStr = JSON.stringify(this.configContent.step)
169
+ for (const item in this.params) {
170
+ const regex = new RegExp('\\$\\{' + item + '\\}', 'g')
171
+ paramsStr = paramsStr.replace(regex, this.params[item])
172
+ }
173
+ const params = JSON.parse(paramsStr)
174
+ this.init({ step: params })
175
+ this.current++
176
+ },
177
+ methods: {
178
+ init (params) {
179
+ const {
180
+ style,
181
+ panel,
182
+ step
183
+ } = params
184
+ if (style) {
185
+ this.stepStyle = style
186
+ }
187
+ if (panel) {
188
+ this.panelStyle = panel
189
+ }
190
+ if (step) {
191
+ this.configContent.step = step
192
+ }
193
+ },
194
+ steps () {
195
+ return this.steps
196
+ },
197
+ onChange (current) {
198
+ this.current = current
199
+ },
200
+ submit (res) {
201
+ console.warn('res', res)
202
+ const setpes = this.configContent.step.steps[this.current]
203
+ if (setpes.run) {
204
+ post('/api/af-system/logic/' + setpes.run.name, res.realForm).then(t => {
205
+ console.warn(setpes.run.name + '执行结果', t)
206
+ if (t.code === 200) {
207
+ this.success()
208
+ }
209
+ }).catch(e => {
210
+ console.warn(setpes.run.name + '执行结果', e)
211
+ this.error()
212
+ })
213
+ }
214
+ },
215
+ error () {
216
+ this.status = 'error'
217
+ this.iconType = 'close-circle'
218
+ },
219
+ success () {
220
+ this.changeIcon()
221
+
222
+ this.current++
223
+ },
224
+ changeIcon () {
225
+ this.status = 'wait'
226
+ this.iconType = 'loading'
227
+ },
228
+ previous () {
229
+ this.current--
230
+ },
231
+ action (record, id, actionType) {
232
+ console.warn('record', record)
233
+ console.warn('id', id)
234
+ console.warn('actionType', actionType)
235
+ const setpes = this.configContent.step.steps[this.current]
236
+ if (setpes.run) {
237
+ post('/api/af-system/logic/' + setpes.run.name, { data: record }).then(t => {
238
+ console.warn(setpes.run.name + '执行结果', t)
239
+ if (t.code === 200) {
240
+ this.success()
241
+ }
242
+ }).catch(e => {
243
+ console.warn(setpes.run.name + '执行结果', e)
244
+ this.error()
245
+ })
246
+ }
247
+ }
248
+ },
249
+ }
250
+ </script>
251
+
252
+ <style lang="less" scoped></style>
@@ -1,3 +1,3 @@
1
- import XStepView from './XStepView.vue'
2
-
3
- export default XStepView
1
+ import XStepView from './XStepView.vue'
2
+
3
+ export default XStepView
@@ -1,31 +1,31 @@
1
- # XStepView 通用步骤视图
2
-
3
- 通用步骤视图,根据JSON配置生成一个完整的通用步骤视图
4
-
5
-
6
-
7
- ## 何时使用
8
-
9
- 当需要一个可以JSON配置生成一个完整的通用步骤视图时
10
-
11
-
12
- 引用方式:
13
-
14
- ```javascript
15
- import XStepView from '@vue2-client/base-client/components/XStepView'
16
-
17
- export default {
18
- components: {
19
- XStepView
20
- }
21
- }
22
- ```
23
-
24
-
25
-
26
- ## 代码演示
27
- ```html
28
- <x-step-view
29
- :params = 'json'
30
- />
31
- ```
1
+ # XStepView 通用步骤视图
2
+
3
+ 通用步骤视图,根据JSON配置生成一个完整的通用步骤视图
4
+
5
+
6
+
7
+ ## 何时使用
8
+
9
+ 当需要一个可以JSON配置生成一个完整的通用步骤视图时
10
+
11
+
12
+ 引用方式:
13
+
14
+ ```javascript
15
+ import XStepView from '@vue2-client/base-client/components/XStepView'
16
+
17
+ export default {
18
+ components: {
19
+ XStepView
20
+ }
21
+ }
22
+ ```
23
+
24
+
25
+
26
+ ## 代码演示
27
+ ```html
28
+ <x-step-view
29
+ :params = 'json'
30
+ />
31
+ ```