vue2-client 1.5.21 → 1.5.23

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 (101) hide show
  1. package/CHANGELOG.md +522 -519
  2. package/index.js +30 -30
  3. package/package.json +78 -78
  4. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +225 -225
  5. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +667 -667
  6. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +508 -508
  7. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +140 -140
  8. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  9. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  10. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  11. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +109 -109
  12. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  13. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  14. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  15. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  16. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  17. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  18. package/src/base-client/plugins/AppData.js +76 -75
  19. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  20. package/src/base-client/plugins/PagedList.js +177 -177
  21. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  22. package/src/base-client/plugins/i18n-extend.js +32 -32
  23. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  24. package/src/components/Ellipsis/index.md +38 -38
  25. package/src/components/NumberInfo/index.md +43 -43
  26. package/src/components/STable/README.md +341 -341
  27. package/src/components/STable/index.js +318 -318
  28. package/src/components/Trend/index.md +45 -45
  29. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  30. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  31. package/src/components/exception/ExceptionPage.vue +70 -70
  32. package/src/components/form/FormRow.vue +52 -52
  33. package/src/components/index.js +36 -36
  34. package/src/components/menu/SideMenu.vue +62 -62
  35. package/src/components/menu/menu.js +273 -273
  36. package/src/components/page/header/index.less +40 -40
  37. package/src/components/setting/Setting.vue +235 -235
  38. package/src/components/table/StandardTable.vue +141 -141
  39. package/src/components/table/advance/ActionColumns.vue +158 -158
  40. package/src/components/table/advance/SearchArea.vue +355 -355
  41. package/src/components/tool/AStepItem.vue +60 -60
  42. package/src/components/tool/AvatarList.vue +68 -68
  43. package/src/components/tool/Drawer.vue +142 -142
  44. package/src/components/tool/TagSelect.vue +83 -83
  45. package/src/components/transition/PageToggleTransition.vue +97 -97
  46. package/src/config/default/admin.config.js +18 -18
  47. package/src/config/default/setting.config.js +44 -44
  48. package/src/config/replacer/resolve.config.js +67 -67
  49. package/src/layouts/AdminLayout.vue +174 -174
  50. package/src/layouts/CommonLayout.vue +42 -42
  51. package/src/layouts/ComponentLayoutOne.vue +47 -47
  52. package/src/layouts/PageLayout.vue +151 -151
  53. package/src/layouts/SinglePageView.vue +111 -111
  54. package/src/layouts/footer/PageFooter.vue +49 -49
  55. package/src/layouts/header/AdminHeader.vue +104 -104
  56. package/src/layouts/header/HeaderAvatar.vue +64 -61
  57. package/src/layouts/header/HeaderNotice.vue +176 -176
  58. package/src/layouts/header/HeaderSearch.vue +67 -67
  59. package/src/layouts/header/InstitutionDetail.vue +181 -181
  60. package/src/layouts/header/index.less +92 -92
  61. package/src/layouts/tabs/TabsHead.vue +190 -190
  62. package/src/layouts/tabs/TabsView.vue +379 -379
  63. package/src/mock/goods/index.js +108 -108
  64. package/src/pages/exception/404.vue +25 -25
  65. package/src/pages/login/Login.vue +363 -363
  66. package/src/pages/report/ReportTable.js +124 -124
  67. package/src/pages/report/ReportTableHome.vue +28 -28
  68. package/src/pages/resourceManage/orgListManage.vue +98 -98
  69. package/src/pages/system/dictionary/index.vue +43 -43
  70. package/src/pages/system/file/index.vue +317 -317
  71. package/src/pages/system/monitor/loginInfor/index.vue +36 -36
  72. package/src/pages/system/monitor/operLog/index.vue +36 -36
  73. package/src/pages/system/queryParams/index.vue +43 -43
  74. package/src/pages/system/settings/index.vue +126 -0
  75. package/src/pages/system/settings/modifyPassword.vue +109 -0
  76. package/src/router/async/config.async.js +28 -27
  77. package/src/router/async/router.map.js +68 -68
  78. package/src/router/index.js +27 -27
  79. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  80. package/src/services/api/LogDetailsViewApi.js +10 -10
  81. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  82. package/src/services/api/TicketDetailsViewApi.js +34 -34
  83. package/src/services/api/cas.js +79 -79
  84. package/src/services/api/commonTempTable.js +10 -10
  85. package/src/services/api/index.js +17 -17
  86. package/src/services/api/logininfor/index.js +6 -6
  87. package/src/services/api/manage.js +8 -8
  88. package/src/services/apiService.js +14 -13
  89. package/src/services/user.js +64 -53
  90. package/src/store/modules/index.js +4 -4
  91. package/src/theme/default/nprogress.less +76 -76
  92. package/src/theme/default/style.less +47 -47
  93. package/src/utils/colors.js +107 -107
  94. package/src/utils/excel/Blob.js +180 -180
  95. package/src/utils/excel/Export2Excel.js +141 -141
  96. package/src/utils/formatter.js +68 -68
  97. package/src/utils/i18n.js +80 -80
  98. package/src/utils/theme-color-replacer-extend.js +91 -91
  99. package/src/utils/themeUtil.js +100 -100
  100. package/src/utils/util.js +230 -230
  101. package/vue.config.js +106 -106
@@ -1,163 +1,163 @@
1
- <template>
2
- <a-tooltip :title="title" :overlayStyle="{zIndex: 2001}">
3
- <div class="img-check-box" @click="toggle">
4
- <img :src="img" alt=""/>
5
- <div v-if="sChecked" class="check-item">
6
- <a-icon type="check" />
7
- </div>
8
- </div>
9
- </a-tooltip>
10
- </template>
11
-
12
- <script>
13
- const Group = {
14
- name: 'ImgCheckboxGroup',
15
- props: {
16
- multiple: {
17
- type: Boolean,
18
- required: false,
19
- default: false
20
- },
21
- defaultValues: {
22
- type: Array,
23
- required: false,
24
- default: () => []
25
- }
26
- },
27
- data () {
28
- return {
29
- values: [],
30
- options: []
31
- }
32
- },
33
- provide () {
34
- return {
35
- groupContext: this
36
- }
37
- },
38
- watch: {
39
- 'values': function (value) {
40
- this.$emit('change', value)
41
- // // 此条件是为解决单选时,触发两次chang事件问题
42
- // if (!(newVal.length === 1 && oldVal.length === 1 && newVal[0] === oldVal[0])) {
43
- // this.$emit('change', this.values)
44
- // }
45
- }
46
- },
47
- methods: {
48
- handleChange (option) {
49
- if (!option.checked) {
50
- if (this.values.indexOf(option.value) > -1) {
51
- this.values = this.values.filter(item => item !== option.value)
52
- }
53
- } else {
54
- if (!this.multiple) {
55
- this.values = [option.value]
56
- this.options.forEach(item => {
57
- if (item.value !== option.value) {
58
- item.sChecked = false
59
- }
60
- })
61
- } else {
62
- this.values.push(option.value)
63
- }
64
- }
65
- }
66
- },
67
- render (h) {
68
- return h(
69
- 'div',
70
- {
71
- attrs: { style: 'display: flex' }
72
- },
73
- [this.$slots.default]
74
- )
75
- }
76
- }
77
-
78
- export default {
79
- name: 'ImgCheckbox',
80
- Group,
81
- props: {
82
- checked: {
83
- type: Boolean,
84
- required: false,
85
- default: false
86
- },
87
- img: {
88
- type: String,
89
- required: true
90
- },
91
- // eslint-disable-next-line vue/require-prop-types
92
- value: {
93
- required: true
94
- },
95
- // eslint-disable-next-line vue/require-default-prop
96
- title: String
97
- },
98
- data () {
99
- return {
100
- sChecked: this.initChecked()
101
- }
102
- },
103
- inject: ['groupContext'],
104
- watch: {
105
- 'sChecked': function () {
106
- const option = {
107
- value: this.value,
108
- checked: this.sChecked
109
- }
110
- this.$emit('change', option)
111
- const groupContext = this.groupContext
112
- if (groupContext) {
113
- groupContext.handleChange(option)
114
- }
115
- }
116
- },
117
- created () {
118
- const groupContext = this.groupContext
119
- if (groupContext) {
120
- this.sChecked = groupContext.defaultValues.length > 0 ? groupContext.defaultValues.indexOf(this.value) >= 0 : this.sChecked
121
- groupContext.options.push(this)
122
- }
123
- },
124
- methods: {
125
- toggle () {
126
- if (this.groupContext.multiple || !this.sChecked) {
127
- this.sChecked = !this.sChecked
128
- }
129
- },
130
- initChecked () {
131
- const groupContext = this.groupContext
132
- if (!groupContext) {
133
- return this.checked
134
- } else if (groupContext.multiple) {
135
- return groupContext.defaultValues.indexOf(this.value) > -1
136
- } else {
137
- return groupContext.defaultValues[0] === this.value
138
- }
139
- }
140
- }
141
- }
142
- </script>
143
-
144
- <style lang="less" scoped>
145
- .img-check-box{
146
- margin-right: 16px;
147
- position: relative;
148
- border-radius: 4px;
149
- cursor: pointer;
150
- .check-item{
151
- position: absolute;
152
- top: 0;
153
- right: 0;
154
- width: 100%;
155
- padding-top: 15px;
156
- padding-left: 24px;
157
- height: 100%;
158
- color: @primary-color;
159
- font-size: 14px;
160
- font-weight: bold;
161
- }
162
- }
163
- </style>
1
+ <template>
2
+ <a-tooltip :title="title" :overlayStyle="{zIndex: 2001}">
3
+ <div class="img-check-box" @click="toggle">
4
+ <img :src="img" alt=""/>
5
+ <div v-if="sChecked" class="check-item">
6
+ <a-icon type="check" />
7
+ </div>
8
+ </div>
9
+ </a-tooltip>
10
+ </template>
11
+
12
+ <script>
13
+ const Group = {
14
+ name: 'ImgCheckboxGroup',
15
+ props: {
16
+ multiple: {
17
+ type: Boolean,
18
+ required: false,
19
+ default: false
20
+ },
21
+ defaultValues: {
22
+ type: Array,
23
+ required: false,
24
+ default: () => []
25
+ }
26
+ },
27
+ data () {
28
+ return {
29
+ values: [],
30
+ options: []
31
+ }
32
+ },
33
+ provide () {
34
+ return {
35
+ groupContext: this
36
+ }
37
+ },
38
+ watch: {
39
+ 'values': function (value) {
40
+ this.$emit('change', value)
41
+ // // 此条件是为解决单选时,触发两次chang事件问题
42
+ // if (!(newVal.length === 1 && oldVal.length === 1 && newVal[0] === oldVal[0])) {
43
+ // this.$emit('change', this.values)
44
+ // }
45
+ }
46
+ },
47
+ methods: {
48
+ handleChange (option) {
49
+ if (!option.checked) {
50
+ if (this.values.indexOf(option.value) > -1) {
51
+ this.values = this.values.filter(item => item !== option.value)
52
+ }
53
+ } else {
54
+ if (!this.multiple) {
55
+ this.values = [option.value]
56
+ this.options.forEach(item => {
57
+ if (item.value !== option.value) {
58
+ item.sChecked = false
59
+ }
60
+ })
61
+ } else {
62
+ this.values.push(option.value)
63
+ }
64
+ }
65
+ }
66
+ },
67
+ render (h) {
68
+ return h(
69
+ 'div',
70
+ {
71
+ attrs: { style: 'display: flex' }
72
+ },
73
+ [this.$slots.default]
74
+ )
75
+ }
76
+ }
77
+
78
+ export default {
79
+ name: 'ImgCheckbox',
80
+ Group,
81
+ props: {
82
+ checked: {
83
+ type: Boolean,
84
+ required: false,
85
+ default: false
86
+ },
87
+ img: {
88
+ type: String,
89
+ required: true
90
+ },
91
+ // eslint-disable-next-line vue/require-prop-types
92
+ value: {
93
+ required: true
94
+ },
95
+ // eslint-disable-next-line vue/require-default-prop
96
+ title: String
97
+ },
98
+ data () {
99
+ return {
100
+ sChecked: this.initChecked()
101
+ }
102
+ },
103
+ inject: ['groupContext'],
104
+ watch: {
105
+ 'sChecked': function () {
106
+ const option = {
107
+ value: this.value,
108
+ checked: this.sChecked
109
+ }
110
+ this.$emit('change', option)
111
+ const groupContext = this.groupContext
112
+ if (groupContext) {
113
+ groupContext.handleChange(option)
114
+ }
115
+ }
116
+ },
117
+ created () {
118
+ const groupContext = this.groupContext
119
+ if (groupContext) {
120
+ this.sChecked = groupContext.defaultValues.length > 0 ? groupContext.defaultValues.indexOf(this.value) >= 0 : this.sChecked
121
+ groupContext.options.push(this)
122
+ }
123
+ },
124
+ methods: {
125
+ toggle () {
126
+ if (this.groupContext.multiple || !this.sChecked) {
127
+ this.sChecked = !this.sChecked
128
+ }
129
+ },
130
+ initChecked () {
131
+ const groupContext = this.groupContext
132
+ if (!groupContext) {
133
+ return this.checked
134
+ } else if (groupContext.multiple) {
135
+ return groupContext.defaultValues.indexOf(this.value) > -1
136
+ } else {
137
+ return groupContext.defaultValues[0] === this.value
138
+ }
139
+ }
140
+ }
141
+ }
142
+ </script>
143
+
144
+ <style lang="less" scoped>
145
+ .img-check-box{
146
+ margin-right: 16px;
147
+ position: relative;
148
+ border-radius: 4px;
149
+ cursor: pointer;
150
+ .check-item{
151
+ position: absolute;
152
+ top: 0;
153
+ right: 0;
154
+ width: 100%;
155
+ padding-top: 15px;
156
+ padding-left: 24px;
157
+ height: 100%;
158
+ color: @primary-color;
159
+ font-size: 14px;
160
+ font-weight: bold;
161
+ }
162
+ }
163
+ </style>
@@ -1,70 +1,70 @@
1
- <template>
2
- <div class="exception-page">
3
- <div class="img">
4
- <img :src="config[type].img" alt=""/>
5
- </div>
6
- <div class="content">
7
- <h1>{{ config[type].title }}</h1>
8
- <div class="desc">{{ config[type].desc }}</div>
9
- <div class="action">
10
- <a-button type="primary" @click="backHome">返回首页</a-button>
11
- </div>
12
- </div>
13
- </div>
14
- </template>
15
-
16
- <script>
17
- import Config from './typeConfig'
18
-
19
- export default {
20
- name: 'ExceptionPage',
21
- // eslint-disable-next-line vue/require-prop-types
22
- props: ['type', 'homeRoute'],
23
- data () {
24
- return {
25
- config: Config
26
- }
27
- },
28
- methods: {
29
- backHome () {
30
- if (this.homeRoute) {
31
- this.$router.push(this.homeRoute)
32
- }
33
- this.$emit('backHome', this.type)
34
- }
35
- }
36
- }
37
- </script>
38
-
39
- <style lang="less" scoped>
40
- .exception-page{
41
- border-radius: 4px;
42
- display: flex;
43
- justify-content: center;
44
- align-items: center;
45
- background-color: @base-bg-color;
46
- .img{
47
- padding-right: 52px;
48
- zoom: 1;
49
- img{
50
- max-width: 430px;
51
- }
52
- }
53
- .content{
54
- h1{
55
- color: #434e59;
56
- font-size: 72px;
57
- font-weight: 600;
58
- line-height: 72px;
59
- margin-bottom: 24px;
60
- }
61
- .desc{
62
- color: @text-color-second;
63
- font-size: 20px;
64
- line-height: 28px;
65
- margin-bottom: 16px;
66
- }
67
- }
68
- }
69
-
70
- </style>
1
+ <template>
2
+ <div class="exception-page">
3
+ <div class="img">
4
+ <img :src="config[type].img" alt=""/>
5
+ </div>
6
+ <div class="content">
7
+ <h1>{{ config[type].title }}</h1>
8
+ <div class="desc">{{ config[type].desc }}</div>
9
+ <div class="action">
10
+ <a-button type="primary" @click="backHome">返回首页</a-button>
11
+ </div>
12
+ </div>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import Config from './typeConfig'
18
+
19
+ export default {
20
+ name: 'ExceptionPage',
21
+ // eslint-disable-next-line vue/require-prop-types
22
+ props: ['type', 'homeRoute'],
23
+ data () {
24
+ return {
25
+ config: Config
26
+ }
27
+ },
28
+ methods: {
29
+ backHome () {
30
+ if (this.homeRoute) {
31
+ this.$router.push(this.homeRoute)
32
+ }
33
+ this.$emit('backHome', this.type)
34
+ }
35
+ }
36
+ }
37
+ </script>
38
+
39
+ <style lang="less" scoped>
40
+ .exception-page{
41
+ border-radius: 4px;
42
+ display: flex;
43
+ justify-content: center;
44
+ align-items: center;
45
+ background-color: @base-bg-color;
46
+ .img{
47
+ padding-right: 52px;
48
+ zoom: 1;
49
+ img{
50
+ max-width: 430px;
51
+ }
52
+ }
53
+ .content{
54
+ h1{
55
+ color: #434e59;
56
+ font-size: 72px;
57
+ font-weight: 600;
58
+ line-height: 72px;
59
+ margin-bottom: 24px;
60
+ }
61
+ .desc{
62
+ color: @text-color-second;
63
+ font-size: 20px;
64
+ line-height: 28px;
65
+ margin-bottom: 16px;
66
+ }
67
+ }
68
+ }
69
+
70
+ </style>
@@ -1,52 +1,52 @@
1
- <template>
2
- <div class="form-row">
3
- <div class="label">
4
- <span>{{ label }}</span>
5
- </div>
6
- <div class="content">
7
- <slot></slot>
8
- </div>
9
- </div>
10
- </template>
11
-
12
- <script>
13
- export default {
14
- name: 'FormRow',
15
- // eslint-disable-next-line vue/require-prop-types
16
- props: ['label']
17
- }
18
- </script>
19
-
20
- <style lang="less" scoped>
21
- .form-row{
22
- display: flex;
23
- border-bottom: 1px dashed @border-color-base;
24
- margin-bottom: 16px;
25
- .label {
26
- color: @title-color;
27
- font-size: 14px;
28
- margin-right: 24px;
29
- flex: 0 0 auto;
30
- text-align: right;
31
- & > span {
32
- display: inline-block;
33
- height: 39px;
34
- line-height: 39px;
35
- &:after {
36
- content: ':';
37
- }
38
- }
39
- }
40
- .content {
41
- flex: 1 1 0;
42
- :global {
43
- .ant-form-item:last-child {
44
- margin-right: 0;
45
- }
46
- .ant-form-item {
47
- margin-bottom: 0;
48
- }
49
- }
50
- }
51
- }
52
- </style>
1
+ <template>
2
+ <div class="form-row">
3
+ <div class="label">
4
+ <span>{{ label }}</span>
5
+ </div>
6
+ <div class="content">
7
+ <slot></slot>
8
+ </div>
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+ export default {
14
+ name: 'FormRow',
15
+ // eslint-disable-next-line vue/require-prop-types
16
+ props: ['label']
17
+ }
18
+ </script>
19
+
20
+ <style lang="less" scoped>
21
+ .form-row{
22
+ display: flex;
23
+ border-bottom: 1px dashed @border-color-base;
24
+ margin-bottom: 16px;
25
+ .label {
26
+ color: @title-color;
27
+ font-size: 14px;
28
+ margin-right: 24px;
29
+ flex: 0 0 auto;
30
+ text-align: right;
31
+ & > span {
32
+ display: inline-block;
33
+ height: 39px;
34
+ line-height: 39px;
35
+ &:after {
36
+ content: ':';
37
+ }
38
+ }
39
+ }
40
+ .content {
41
+ flex: 1 1 0;
42
+ :global {
43
+ .ant-form-item:last-child {
44
+ margin-right: 0;
45
+ }
46
+ .ant-form-item {
47
+ margin-bottom: 0;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ </style>
@@ -1,36 +1,36 @@
1
- // chart
2
- import Bar from '@vue2-client/components/Charts/Bar'
3
- import ChartCard from '@vue2-client/components/Charts/ChartCard'
4
- import Liquid from '@vue2-client/components/Charts/Liquid'
5
- import MiniArea from '@vue2-client/components/Charts/MiniArea'
6
- import MiniSmoothArea from '@vue2-client/components/Charts/MiniSmoothArea'
7
- import MiniBar from '@vue2-client/components/Charts/MiniBar'
8
- import MiniProgress from '@vue2-client/components/Charts/MiniProgress'
9
- import Radar from '@vue2-client/components/Charts/Radar'
10
- import RankList from '@vue2-client/components/Charts/RankList'
11
- import TagCloud from '@vue2-client/components/Charts/TagCloud'
12
- import TransferBar from '@vue2-client/components/Charts/TransferBar'
13
- import Trend from '@vue2-client/components/Trend'
14
-
15
- // pro components
16
- import Ellipsis from '@vue2-client/components/Ellipsis'
17
- import NumberInfo from '@vue2-client/components/NumberInfo'
18
- import STable from '@vue2-client/components/STable'
19
-
20
- export {
21
- Bar,
22
- ChartCard,
23
- Liquid,
24
- MiniArea,
25
- MiniSmoothArea,
26
- MiniBar,
27
- MiniProgress,
28
- Radar,
29
- TagCloud,
30
- RankList,
31
- TransferBar,
32
- Ellipsis,
33
- NumberInfo,
34
- STable,
35
- Trend
36
- }
1
+ // chart
2
+ import Bar from '@vue2-client/components/Charts/Bar'
3
+ import ChartCard from '@vue2-client/components/Charts/ChartCard'
4
+ import Liquid from '@vue2-client/components/Charts/Liquid'
5
+ import MiniArea from '@vue2-client/components/Charts/MiniArea'
6
+ import MiniSmoothArea from '@vue2-client/components/Charts/MiniSmoothArea'
7
+ import MiniBar from '@vue2-client/components/Charts/MiniBar'
8
+ import MiniProgress from '@vue2-client/components/Charts/MiniProgress'
9
+ import Radar from '@vue2-client/components/Charts/Radar'
10
+ import RankList from '@vue2-client/components/Charts/RankList'
11
+ import TagCloud from '@vue2-client/components/Charts/TagCloud'
12
+ import TransferBar from '@vue2-client/components/Charts/TransferBar'
13
+ import Trend from '@vue2-client/components/Trend'
14
+
15
+ // pro components
16
+ import Ellipsis from '@vue2-client/components/Ellipsis'
17
+ import NumberInfo from '@vue2-client/components/NumberInfo'
18
+ import STable from '@vue2-client/components/STable'
19
+
20
+ export {
21
+ Bar,
22
+ ChartCard,
23
+ Liquid,
24
+ MiniArea,
25
+ MiniSmoothArea,
26
+ MiniBar,
27
+ MiniProgress,
28
+ Radar,
29
+ TagCloud,
30
+ RankList,
31
+ TransferBar,
32
+ Ellipsis,
33
+ NumberInfo,
34
+ STable,
35
+ Trend
36
+ }