xs-common-plugins 1.2.4 → 1.2.6

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 (188) hide show
  1. package/README.md +309 -299
  2. package/common.js +110 -110
  3. package/index.js +1 -1
  4. package/package.json +16 -16
  5. package/src/App.vue +12 -12
  6. package/src/common/common.js +551 -549
  7. package/src/common/createMenuId.js +7 -7
  8. package/src/common/uploadImgToBase64.js +12 -12
  9. package/src/common/utils.js +95 -95
  10. package/src/components/Breadcrumb/index.vue +81 -81
  11. package/src/components/CheckBox_Cmp/index.vue +62 -62
  12. package/src/components/Col_TableCell/data.js +4 -4
  13. package/src/components/Col_TableCell/index.scss +77 -77
  14. package/src/components/Col_TableCell/index.vue +43 -43
  15. package/src/components/Col_TableCell/methods.js +19 -19
  16. package/src/components/FormItem/index.vue +92 -92
  17. package/src/components/Hamburger/index.vue +44 -44
  18. package/src/components/ReportCmp/data.js +3 -3
  19. package/src/components/ReportCmp/index.scss +29 -29
  20. package/src/components/ReportCmp/index.vue +76 -76
  21. package/src/components/ReportCmp/methods.js +30 -30
  22. package/src/components/Search/cascader/data.js +3 -3
  23. package/src/components/Search/cascader/index.scss +17 -17
  24. package/src/components/Search/cascader/index.vue +96 -96
  25. package/src/components/Search/cascader/methods.js +41 -41
  26. package/src/components/Search/data.js +5 -5
  27. package/src/components/Search/hk_cascader/index.vue +104 -104
  28. package/src/components/Search/hk_cascader_qudao/index.vue +94 -94
  29. package/src/components/Search/index.scss +219 -219
  30. package/src/components/Search/index.vue +410 -410
  31. package/src/components/Search/methods.js +86 -86
  32. package/src/components/Search/product_option/data.js +3 -3
  33. package/src/components/Search/product_option/index.scss +68 -68
  34. package/src/components/Search/product_option/index.vue +412 -412
  35. package/src/components/Search/product_option/methods.js +58 -58
  36. package/src/components/Search/select/data.js +3 -3
  37. package/src/components/Search/select/index.scss +2 -2
  38. package/src/components/Search/select/index.vue +114 -114
  39. package/src/components/Search/select/methods.js +51 -51
  40. package/src/components/Search_filter/data.js +5 -5
  41. package/src/components/Search_filter/index.scss +104 -104
  42. package/src/components/Search_filter/index.vue +88 -88
  43. package/src/components/Search_filter/methods.js +43 -43
  44. package/src/components/TableCmp/data.js +3 -3
  45. package/src/components/TableCmp/index.scss +22 -22
  46. package/src/components/TableCmp/index.vue +98 -98
  47. package/src/components/TableCmp/methods.js +35 -35
  48. package/src/components/TableItem/TableItem.vue +55 -55
  49. package/src/components/TextOVer/index.vue +55 -55
  50. package/src/components/UploadImg/index.vue +177 -177
  51. package/src/components/home/BarChart.vue +118 -118
  52. package/src/components/home/LineChart.vue +146 -146
  53. package/src/components/home/Panel.vue +135 -135
  54. package/src/components/home/PanelGroup.vue +146 -146
  55. package/src/components/home/PieChart.vue +81 -81
  56. package/src/components/home/RaddarChart.vue +119 -119
  57. package/src/components/home/TabLayout.vue +88 -88
  58. package/src/components/home/TableList.vue +158 -158
  59. package/src/components/home/Teng.vue +248 -248
  60. package/src/components/home/TransactionTable.vue +49 -49
  61. package/src/components/home/mixins/resize.js +55 -55
  62. package/src/components/im/index.vue +155 -155
  63. package/src/components/im/methods.js +25 -25
  64. package/src/components/im/pages/chatList/index.vue +45 -45
  65. package/src/components/im/pages/chatRoom/index.vue +159 -159
  66. package/src/components/image-singleUpload/data.js +3 -3
  67. package/src/components/image-singleUpload/index.scss +26 -26
  68. package/src/components/image-singleUpload/index.vue +56 -56
  69. package/src/components/image-singleUpload/methods.js +30 -30
  70. package/src/components/image-upload/data.js +7 -7
  71. package/src/components/image-upload/index.vue +41 -41
  72. package/src/components/image-upload/methods.js +80 -80
  73. package/src/components/multiple-image-upload/data.js +11 -11
  74. package/src/components/multiple-image-upload/index.scss +8 -8
  75. package/src/components/multiple-image-upload/index.vue +63 -63
  76. package/src/components/multiple-image-upload/methods.js +45 -45
  77. package/src/components/pro-upload/data.js +3 -3
  78. package/src/components/pro-upload/index.scss +4 -4
  79. package/src/components/pro-upload/index.vue +89 -89
  80. package/src/components/pro-upload/methods.js +86 -86
  81. package/src/components/report_set/index.scss +44 -44
  82. package/src/components/report_set/index.vue +153 -153
  83. package/src/components/search-page/src/index.scss +5 -5
  84. package/src/components/search-page/src/index.vue +76 -76
  85. package/src/components/search-page/src/methods.js +36 -36
  86. package/src/components/xsSelect/index.vue +125 -125
  87. package/src/mixin/dialog.js +31 -31
  88. package/src/mixin/dlg.js +46 -46
  89. package/src/mixin/keepAlive.js +53 -53
  90. package/src/mixin/newDialog.js +19 -19
  91. package/src/mixin/report.js +82 -82
  92. package/src/mixin/table.js +93 -93
  93. package/src/mixin/tableCell/colTableCell_analysis.js +103 -103
  94. package/src/mixin/upload.js +22 -22
  95. package/src/mixin/vmodel.js +26 -26
  96. package/src/plugins/im/components/chat/index.scss +163 -163
  97. package/src/plugins/im/components/chat/index.vue +144 -144
  98. package/src/plugins/im/components/chat/methods.js +149 -149
  99. package/src/plugins/im/components/conversation-list/index.css +91 -91
  100. package/src/plugins/im/components/conversation-list/index.json +3 -3
  101. package/src/plugins/im/components/conversation-list/index.vue +89 -89
  102. package/src/plugins/im/components/loading/loading.css +69 -69
  103. package/src/plugins/im/components/loading/loading.json +3 -3
  104. package/src/plugins/im/components/loading/loading.vue +14 -14
  105. package/src/plugins/im/components/msg-image/index.json +3 -3
  106. package/src/plugins/im/components/msg-image/index.vue +40 -40
  107. package/src/plugins/im/components/msg-text/index.json +3 -3
  108. package/src/plugins/im/components/msg-text/index.vue +24 -24
  109. package/src/plugins/im/components/send-msg/index.scss +164 -164
  110. package/src/plugins/im/components/send-msg/index.vue +107 -107
  111. package/src/plugins/im/components/send-msg/methods.js +125 -125
  112. package/src/plugins/im/components/template-message/index.vue +76 -76
  113. package/src/plugins/im/components/without.vue +19 -19
  114. package/src/plugins/im/im-plug-in/Protobuf-2.3.7.min.js +1 -1
  115. package/src/plugins/im/im-plug-in/RongCallLib-3.1.5.min.js +74 -74
  116. package/src/plugins/im/im-plug-in/RongIMLib-4.1.0.js +17420 -17420
  117. package/src/plugins/im/im-plug-in/init.js +216 -216
  118. package/src/plugins/im/im-plug-in/qiniu.js +266 -266
  119. package/src/plugins/im/im-plug-in/send-data.js +431 -431
  120. package/src/plugins/im/im-plug-in/upload.js +232 -232
  121. package/src/plugins/im/index.js +31 -31
  122. package/src/plugins/im/lib/RongIMEmoji-2.2.6.js +332 -332
  123. package/src/plugins/im/lib/RongIMLib-3.0.7.2-dev.js +11635 -11635
  124. package/src/plugins/im/lib/RongIMLib-3.0.7.2-dev.min.js +6 -6
  125. package/src/plugins/im/utils/services.js +625 -625
  126. package/src/plugins/im/utils/underscore-1.8.3.js +1531 -1531
  127. package/src/plugins/im/utils/utils.js +149 -149
  128. package/src/plugins/index.js +60 -60
  129. package/src/plugins/row-col-cmp/colCmp/data.js +3 -3
  130. package/src/plugins/row-col-cmp/colCmp/index.scss +50 -50
  131. package/src/plugins/row-col-cmp/colCmp/index.vue +53 -53
  132. package/src/plugins/row-col-cmp/colCmp/methods.js +25 -25
  133. package/src/plugins/row-col-cmp/index.js +20 -20
  134. package/src/plugins/row-col-cmp/rowCmp/data.js +3 -3
  135. package/src/plugins/row-col-cmp/rowCmp/index.scss +3 -3
  136. package/src/plugins/row-col-cmp/rowCmp/index.vue +43 -43
  137. package/src/plugins/row-col-cmp/rowCmp/methods.js +29 -29
  138. package/src/router/index.js +58 -58
  139. package/src/router/permission.js +126 -126
  140. package/src/store/getters.js +13 -13
  141. package/src/store/index.js +60 -60
  142. package/src/store/modules/app.js +55 -55
  143. package/src/store/modules/dic.js +74 -74
  144. package/src/store/modules/oss.js +40 -40
  145. package/src/store/modules/settings.js +28 -28
  146. package/src/store/modules/tagsView.js +160 -160
  147. package/src/store/modules/user.js +94 -94
  148. package/src/store/modules/widgetdata.js +42 -42
  149. package/src/styles/element-ui.scss +49 -49
  150. package/src/styles/index.scss +91 -91
  151. package/src/styles/mixin.scss +28 -28
  152. package/src/styles/sidebar.scss +210 -210
  153. package/src/styles/table.scss +90 -90
  154. package/src/styles/transition.scss +48 -48
  155. package/src/styles/variables.scss +25 -25
  156. package/src/utils/api.js +54 -54
  157. package/src/utils/auth.js +38 -38
  158. package/src/utils/concat_batch_btns.js +88 -88
  159. package/src/utils/enum.js +150 -150
  160. package/src/utils/filter.js +5 -5
  161. package/src/utils/filterRules.js +55 -55
  162. package/src/utils/get-page-title.js +10 -10
  163. package/src/utils/getMenu.js +82 -82
  164. package/src/utils/global-config.js +15 -15
  165. package/src/utils/global_directive.js +10 -10
  166. package/src/utils/index.js +332 -332
  167. package/src/utils/localStorage.js +21 -21
  168. package/src/utils/ossService.js +55 -55
  169. package/src/utils/prototype.js +46 -46
  170. package/src/utils/search.js +33 -33
  171. package/src/utils/signalR.js +24 -24
  172. package/src/utils/validate.js +20 -20
  173. package/src/views/callback/index.vue +35 -35
  174. package/src/views/home/index.vue +25 -25
  175. package/src/views/layout/components/AllSearch/index.vue +44 -44
  176. package/src/views/layout/components/AppMain.vue +66 -66
  177. package/src/views/layout/components/Sidebar/FixiOSBug.js +26 -26
  178. package/src/views/layout/components/Sidebar/Item.vue +28 -28
  179. package/src/views/layout/components/Sidebar/Link.vue +34 -34
  180. package/src/views/layout/components/Sidebar/Logo.vue +79 -79
  181. package/src/views/layout/components/Sidebar/SidebarItem.vue +67 -67
  182. package/src/views/layout/components/Sidebar/index.vue +114 -114
  183. package/src/views/layout/components/TagsView/ScrollPane.vue +94 -94
  184. package/src/views/layout/components/TagsView/index.vue +330 -330
  185. package/src/views/layout/components/index.js +3 -3
  186. package/src/views/layout/index.vue +107 -107
  187. package/src/views/redirect/index.vue +12 -12
  188. package/src/views/slienceAuth/index.vue +42 -42
@@ -1,146 +1,146 @@
1
- <template>
2
- <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
3
- <div class="card-panel-icon-wrapper icon-people">
4
- <!-- <svg-icon icon-class="peoples" class-name="card-panel-icon" /> -->
5
- <span :class="['icon iconfont card-panel-icon',item.cols.cells[0].icon]" />
6
- </div>
7
- <div class="card-panel-description">
8
- panel-group
9
- <div class="card-panel-text">item.cols.cells[0].title</div>
10
- <count-to
11
- :start-val="0"
12
- :end-val="item.cols.cells[0].dataId"
13
- :duration="2600"
14
- class="card-panel-num"
15
- />
16
- </div>
17
- </div>
18
- </template>
19
-
20
- <script>
21
- import CountTo from 'vue-count-to'
22
-
23
- export default {
24
- components: {
25
- CountTo
26
- },
27
- props: {
28
- options: Object
29
- },
30
- methods: {
31
- handleSetLineChartData(type) {
32
- this.$emit('handleSetLineChartData', type)
33
- }
34
- }
35
- }
36
- </script>
37
-
38
- <style lang="scss" scoped>
39
- .panel-group {
40
- margin-top: 18px;
41
-
42
- .card-panel-col {
43
- margin-bottom: 32px;
44
- }
45
-
46
- .card-panel {
47
- height: 108px;
48
- cursor: pointer;
49
- font-size: 12px;
50
- position: relative;
51
- overflow: hidden;
52
- color: #666;
53
- background: #fff;
54
- box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05);
55
- border-color: rgba(0, 0, 0, 0.05);
56
-
57
- &:hover {
58
- .card-panel-icon-wrapper {
59
- color: #fff;
60
- }
61
-
62
- .icon-people {
63
- background: #40c9c6;
64
- }
65
-
66
- .icon-message {
67
- background: #36a3f7;
68
- }
69
-
70
- .icon-money {
71
- background: #f4516c;
72
- }
73
-
74
- .icon-shopping {
75
- background: #34bfa3;
76
- }
77
- }
78
-
79
- .icon-people {
80
- color: #40c9c6;
81
- }
82
-
83
- .icon-message {
84
- color: #36a3f7;
85
- }
86
-
87
- .icon-money {
88
- color: #f4516c;
89
- }
90
-
91
- .icon-shopping {
92
- color: #34bfa3;
93
- }
94
-
95
- .card-panel-icon-wrapper {
96
- float: left;
97
- margin: 14px 0 0 14px;
98
- padding: 16px;
99
- transition: all 0.38s ease-out;
100
- border-radius: 6px;
101
- }
102
-
103
- .card-panel-icon {
104
- float: left;
105
- font-size: 48px;
106
- }
107
-
108
- .card-panel-description {
109
- float: right;
110
- font-weight: bold;
111
- margin: 26px;
112
- margin-left: 0px;
113
-
114
- .card-panel-text {
115
- line-height: 18px;
116
- color: rgba(0, 0, 0, 0.45);
117
- font-size: 16px;
118
- margin-bottom: 12px;
119
- }
120
-
121
- .card-panel-num {
122
- font-size: 20px;
123
- }
124
- }
125
- }
126
- }
127
-
128
- @media (max-width: 550px) {
129
- .card-panel-description {
130
- display: none;
131
- }
132
-
133
- .card-panel-icon-wrapper {
134
- float: none !important;
135
- width: 100%;
136
- height: 100%;
137
- margin: 0 !important;
138
-
139
- .svg-icon {
140
- display: block;
141
- margin: 14px auto !important;
142
- float: none !important;
143
- }
144
- }
145
- }
146
- </style>
1
+ <template>
2
+ <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
3
+ <div class="card-panel-icon-wrapper icon-people">
4
+ <!-- <svg-icon icon-class="peoples" class-name="card-panel-icon" /> -->
5
+ <span :class="['icon iconfont card-panel-icon',item.cols.cells[0].icon]" />
6
+ </div>
7
+ <div class="card-panel-description">
8
+ panel-group
9
+ <div class="card-panel-text">item.cols.cells[0].title</div>
10
+ <count-to
11
+ :start-val="0"
12
+ :end-val="item.cols.cells[0].dataId"
13
+ :duration="2600"
14
+ class="card-panel-num"
15
+ />
16
+ </div>
17
+ </div>
18
+ </template>
19
+
20
+ <script>
21
+ import CountTo from 'vue-count-to'
22
+
23
+ export default {
24
+ components: {
25
+ CountTo
26
+ },
27
+ props: {
28
+ options: Object
29
+ },
30
+ methods: {
31
+ handleSetLineChartData(type) {
32
+ this.$emit('handleSetLineChartData', type)
33
+ }
34
+ }
35
+ }
36
+ </script>
37
+
38
+ <style lang="scss" scoped>
39
+ .panel-group {
40
+ margin-top: 18px;
41
+
42
+ .card-panel-col {
43
+ margin-bottom: 32px;
44
+ }
45
+
46
+ .card-panel {
47
+ height: 108px;
48
+ cursor: pointer;
49
+ font-size: 12px;
50
+ position: relative;
51
+ overflow: hidden;
52
+ color: #666;
53
+ background: #fff;
54
+ box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05);
55
+ border-color: rgba(0, 0, 0, 0.05);
56
+
57
+ &:hover {
58
+ .card-panel-icon-wrapper {
59
+ color: #fff;
60
+ }
61
+
62
+ .icon-people {
63
+ background: #40c9c6;
64
+ }
65
+
66
+ .icon-message {
67
+ background: #36a3f7;
68
+ }
69
+
70
+ .icon-money {
71
+ background: #f4516c;
72
+ }
73
+
74
+ .icon-shopping {
75
+ background: #34bfa3;
76
+ }
77
+ }
78
+
79
+ .icon-people {
80
+ color: #40c9c6;
81
+ }
82
+
83
+ .icon-message {
84
+ color: #36a3f7;
85
+ }
86
+
87
+ .icon-money {
88
+ color: #f4516c;
89
+ }
90
+
91
+ .icon-shopping {
92
+ color: #34bfa3;
93
+ }
94
+
95
+ .card-panel-icon-wrapper {
96
+ float: left;
97
+ margin: 14px 0 0 14px;
98
+ padding: 16px;
99
+ transition: all 0.38s ease-out;
100
+ border-radius: 6px;
101
+ }
102
+
103
+ .card-panel-icon {
104
+ float: left;
105
+ font-size: 48px;
106
+ }
107
+
108
+ .card-panel-description {
109
+ float: right;
110
+ font-weight: bold;
111
+ margin: 26px;
112
+ margin-left: 0px;
113
+
114
+ .card-panel-text {
115
+ line-height: 18px;
116
+ color: rgba(0, 0, 0, 0.45);
117
+ font-size: 16px;
118
+ margin-bottom: 12px;
119
+ }
120
+
121
+ .card-panel-num {
122
+ font-size: 20px;
123
+ }
124
+ }
125
+ }
126
+ }
127
+
128
+ @media (max-width: 550px) {
129
+ .card-panel-description {
130
+ display: none;
131
+ }
132
+
133
+ .card-panel-icon-wrapper {
134
+ float: none !important;
135
+ width: 100%;
136
+ height: 100%;
137
+ margin: 0 !important;
138
+
139
+ .svg-icon {
140
+ display: block;
141
+ margin: 14px auto !important;
142
+ float: none !important;
143
+ }
144
+ }
145
+ }
146
+ </style>
@@ -1,81 +1,81 @@
1
- <template>
2
- <div :class="[className,'chart-wrapper']" :style="{height:height,width:width}" />
3
- </template>
4
-
5
- <script>
6
- import echarts from 'echarts'
7
- require('echarts/theme/macarons') // echarts theme
8
- import resize from './mixins/resize'
9
-
10
- export default {
11
- mixins: [resize],
12
- props: {
13
- className: {
14
- type: String,
15
- default: 'chart'
16
- },
17
- width: {
18
- type: String,
19
- default: '100%'
20
- },
21
- height: {
22
- type: String,
23
- default: '300px'
24
- }
25
-
26
- },
27
- data() {
28
- return {
29
- chart: null,
30
- options: {
31
- tooltip: {
32
- trigger: 'item',
33
- formatter: '{a} <br/>{b} : {c} ({d}%)'
34
- },
35
- legend: {
36
- left: 'center',
37
- bottom: '10',
38
- data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts']
39
- },
40
- series: [
41
- {
42
- name: 'WEEKLY WRITE ARTICLES',
43
- type: 'pie',
44
- roseType: 'radius',
45
- radius: [15, 95],
46
- center: ['50%', '38%'],
47
- data: [
48
- { value: 320, name: 'Industries' },
49
- { value: 240, name: 'Technology' },
50
- { value: 149, name: 'Forex' },
51
- { value: 100, name: 'Gold' },
52
- { value: 59, name: 'Forecasts' }
53
- ],
54
- animationEasing: 'cubicInOut',
55
- animationDuration: 2600
56
- }
57
- ]
58
- }
59
- }
60
- },
61
- mounted() {
62
- this.$nextTick(() => {
63
- this.initChart()
64
- })
65
- },
66
- beforeDestroy() {
67
- if (!this.chart) {
68
- return
69
- }
70
- this.chart.dispose()
71
- this.chart = null
72
- },
73
- methods: {
74
- initChart() {
75
- this.chart = echarts.init(this.$el, 'macarons')
76
-
77
- this.chart.setOption(this.options)
78
- }
79
- }
80
- }
81
- </script>
1
+ <template>
2
+ <div :class="[className,'chart-wrapper']" :style="{height:height,width:width}" />
3
+ </template>
4
+
5
+ <script>
6
+ import echarts from 'echarts'
7
+ require('echarts/theme/macarons') // echarts theme
8
+ import resize from './mixins/resize'
9
+
10
+ export default {
11
+ mixins: [resize],
12
+ props: {
13
+ className: {
14
+ type: String,
15
+ default: 'chart'
16
+ },
17
+ width: {
18
+ type: String,
19
+ default: '100%'
20
+ },
21
+ height: {
22
+ type: String,
23
+ default: '300px'
24
+ }
25
+
26
+ },
27
+ data() {
28
+ return {
29
+ chart: null,
30
+ options: {
31
+ tooltip: {
32
+ trigger: 'item',
33
+ formatter: '{a} <br/>{b} : {c} ({d}%)'
34
+ },
35
+ legend: {
36
+ left: 'center',
37
+ bottom: '10',
38
+ data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts']
39
+ },
40
+ series: [
41
+ {
42
+ name: 'WEEKLY WRITE ARTICLES',
43
+ type: 'pie',
44
+ roseType: 'radius',
45
+ radius: [15, 95],
46
+ center: ['50%', '38%'],
47
+ data: [
48
+ { value: 320, name: 'Industries' },
49
+ { value: 240, name: 'Technology' },
50
+ { value: 149, name: 'Forex' },
51
+ { value: 100, name: 'Gold' },
52
+ { value: 59, name: 'Forecasts' }
53
+ ],
54
+ animationEasing: 'cubicInOut',
55
+ animationDuration: 2600
56
+ }
57
+ ]
58
+ }
59
+ }
60
+ },
61
+ mounted() {
62
+ this.$nextTick(() => {
63
+ this.initChart()
64
+ })
65
+ },
66
+ beforeDestroy() {
67
+ if (!this.chart) {
68
+ return
69
+ }
70
+ this.chart.dispose()
71
+ this.chart = null
72
+ },
73
+ methods: {
74
+ initChart() {
75
+ this.chart = echarts.init(this.$el, 'macarons')
76
+
77
+ this.chart.setOption(this.options)
78
+ }
79
+ }
80
+ }
81
+ </script>
@@ -1,119 +1,119 @@
1
- <template>
2
- <div :class="[className,'chart-wrapper']" :style="{height:height,width:width}" />
3
- </template>
4
-
5
- <script>
6
- import echarts from 'echarts'
7
- require('echarts/theme/macarons') // echarts theme
8
- import resize from './mixins/resize'
9
-
10
- const animationDuration = 3000
11
-
12
- export default {
13
- mixins: [resize],
14
- props: {
15
- className: {
16
- type: String,
17
- default: 'chart'
18
- },
19
- width: {
20
- type: String,
21
- default: '100%'
22
- },
23
- height: {
24
- type: String,
25
- default: '300px'
26
- }
27
- },
28
- data() {
29
- return {
30
- chart: null
31
- }
32
- },
33
- mounted() {
34
- this.$nextTick(() => {
35
- this.initChart()
36
- })
37
- },
38
- beforeDestroy() {
39
- if (!this.chart) {
40
- return
41
- }
42
- this.chart.dispose()
43
- this.chart = null
44
- },
45
- methods: {
46
- initChart() {
47
- this.chart = echarts.init(this.$el, 'macarons')
48
-
49
- this.chart.setOption({
50
- tooltip: {
51
- trigger: 'axis',
52
- axisPointer: {
53
- // 坐标轴指示器,坐标轴触发有效
54
- type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
55
- }
56
- },
57
- radar: {
58
- radius: '66%',
59
- center: ['50%', '42%'],
60
- splitNumber: 8,
61
- splitArea: {
62
- areaStyle: {
63
- color: 'rgba(127,95,132,.3)',
64
- opacity: 1,
65
- shadowBlur: 45,
66
- shadowColor: 'rgba(0,0,0,.5)',
67
- shadowOffsetX: 0,
68
- shadowOffsetY: 15
69
- }
70
- },
71
- indicator: [
72
- { name: 'Sales', max: 10000 },
73
- { name: 'Administration', max: 20000 },
74
- { name: 'Information Techology', max: 20000 },
75
- { name: 'Customer Support', max: 20000 },
76
- { name: 'Development', max: 20000 },
77
- { name: 'Marketing', max: 20000 }
78
- ]
79
- },
80
- legend: {
81
- left: 'center',
82
- bottom: '10',
83
- data: ['Allocated Budget', 'Expected Spending', 'Actual Spending']
84
- },
85
- series: [
86
- {
87
- type: 'radar',
88
- symbolSize: 0,
89
- areaStyle: {
90
- normal: {
91
- shadowBlur: 13,
92
- shadowColor: 'rgba(0,0,0,.2)',
93
- shadowOffsetX: 0,
94
- shadowOffsetY: 10,
95
- opacity: 1
96
- }
97
- },
98
- data: [
99
- {
100
- value: [5000, 7000, 12000, 11000, 15000, 14000],
101
- name: 'Allocated Budget'
102
- },
103
- {
104
- value: [4000, 9000, 15000, 15000, 13000, 11000],
105
- name: 'Expected Spending'
106
- },
107
- {
108
- value: [5500, 11000, 12000, 15000, 12000, 12000],
109
- name: 'Actual Spending'
110
- }
111
- ],
112
- animationDuration: animationDuration
113
- }
114
- ]
115
- })
116
- }
117
- }
118
- }
119
- </script>
1
+ <template>
2
+ <div :class="[className,'chart-wrapper']" :style="{height:height,width:width}" />
3
+ </template>
4
+
5
+ <script>
6
+ import echarts from 'echarts'
7
+ require('echarts/theme/macarons') // echarts theme
8
+ import resize from './mixins/resize'
9
+
10
+ const animationDuration = 3000
11
+
12
+ export default {
13
+ mixins: [resize],
14
+ props: {
15
+ className: {
16
+ type: String,
17
+ default: 'chart'
18
+ },
19
+ width: {
20
+ type: String,
21
+ default: '100%'
22
+ },
23
+ height: {
24
+ type: String,
25
+ default: '300px'
26
+ }
27
+ },
28
+ data() {
29
+ return {
30
+ chart: null
31
+ }
32
+ },
33
+ mounted() {
34
+ this.$nextTick(() => {
35
+ this.initChart()
36
+ })
37
+ },
38
+ beforeDestroy() {
39
+ if (!this.chart) {
40
+ return
41
+ }
42
+ this.chart.dispose()
43
+ this.chart = null
44
+ },
45
+ methods: {
46
+ initChart() {
47
+ this.chart = echarts.init(this.$el, 'macarons')
48
+
49
+ this.chart.setOption({
50
+ tooltip: {
51
+ trigger: 'axis',
52
+ axisPointer: {
53
+ // 坐标轴指示器,坐标轴触发有效
54
+ type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
55
+ }
56
+ },
57
+ radar: {
58
+ radius: '66%',
59
+ center: ['50%', '42%'],
60
+ splitNumber: 8,
61
+ splitArea: {
62
+ areaStyle: {
63
+ color: 'rgba(127,95,132,.3)',
64
+ opacity: 1,
65
+ shadowBlur: 45,
66
+ shadowColor: 'rgba(0,0,0,.5)',
67
+ shadowOffsetX: 0,
68
+ shadowOffsetY: 15
69
+ }
70
+ },
71
+ indicator: [
72
+ { name: 'Sales', max: 10000 },
73
+ { name: 'Administration', max: 20000 },
74
+ { name: 'Information Techology', max: 20000 },
75
+ { name: 'Customer Support', max: 20000 },
76
+ { name: 'Development', max: 20000 },
77
+ { name: 'Marketing', max: 20000 }
78
+ ]
79
+ },
80
+ legend: {
81
+ left: 'center',
82
+ bottom: '10',
83
+ data: ['Allocated Budget', 'Expected Spending', 'Actual Spending']
84
+ },
85
+ series: [
86
+ {
87
+ type: 'radar',
88
+ symbolSize: 0,
89
+ areaStyle: {
90
+ normal: {
91
+ shadowBlur: 13,
92
+ shadowColor: 'rgba(0,0,0,.2)',
93
+ shadowOffsetX: 0,
94
+ shadowOffsetY: 10,
95
+ opacity: 1
96
+ }
97
+ },
98
+ data: [
99
+ {
100
+ value: [5000, 7000, 12000, 11000, 15000, 14000],
101
+ name: 'Allocated Budget'
102
+ },
103
+ {
104
+ value: [4000, 9000, 15000, 15000, 13000, 11000],
105
+ name: 'Expected Spending'
106
+ },
107
+ {
108
+ value: [5500, 11000, 12000, 15000, 12000, 12000],
109
+ name: 'Actual Spending'
110
+ }
111
+ ],
112
+ animationDuration: animationDuration
113
+ }
114
+ ]
115
+ })
116
+ }
117
+ }
118
+ }
119
+ </script>