xs-common-plugins 1.2.3 → 1.2.5

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 +298 -298
  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 -52
  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,160 +1,160 @@
1
- <!--
2
- * @Author: your name
3
- * @Date: 2021-01-15 15:38:11
4
- * @LastEditTime: 2021-01-16 15:06:42
5
- * @LastEditors: Please set LastEditors
6
- * @Description: In User Settings Edit
7
- * @FilePath: \dev\src\components\im\pages\chatRoom\index.vue
8
- -->
9
- <template>
10
- <div class="chatroom" id="chatroom">
11
- <div class="goback" @click="goback">
12
- <i class="el-icon-arrow-left" />
13
- {{
14
- currentItem.latestMessage.content.userInfo
15
- ? currentItem.latestMessage.content.userInfo.userName
16
- : ""
17
- }}
18
- </div>
19
- <chatCom
20
- :targetId="currentItem.targetId"
21
- :type="currentItem.type"
22
- :targetName="
23
- currentItem.content.userInfo
24
- ? currentItem.content.userInfo.targetName
25
- : '客服'
26
- "
27
- :chatObj="currentItem"
28
- >
29
- <div slot="message" slot-scope="props">
30
- <ImageMessage
31
- v-if="props.message.name == 'RC:ImgMsg'"
32
- :message="props.message"
33
- />
34
- <TextMessage
35
- v-if="props.message.name == 'RC:TxtMsg'"
36
- :message="props.message"
37
- />
38
- </div>
39
- <template slot="slot-top" slot-scope="row">
40
- <div class="fixedMessage" v-if="showFixed(row.list)">
41
- <div class="image">
42
- <img :src="goodInfo.url" />
43
- </div>
44
- <div class="info">
45
- <p class="title">{{ goodInfo.title }}</p>
46
- <p class="content"><span class="price"> ¥{{ goodInfo.price }} </span> <span>选货价:¥{{ goodInfo.costPrice }} </span></p>
47
- </div>
48
- </div>
49
- </template>
50
- </chatCom>
51
- </div>
52
- </template>
53
- <script>
54
- export default {
55
- props: {
56
- currentItem: [Object]
57
- },
58
- data () {
59
- return {
60
- goodInfo: {
61
- title: '',
62
- price: '',
63
- costPrice: '',
64
- url: ''
65
- }
66
- }
67
- },
68
- methods: {
69
- goback() {
70
- this.$emit("goback");
71
- },
72
- showFixed(list) {
73
- const goodsList = list.filter(item => item.content && item.content.OutGoodsId)
74
- if (goodsList.length > 0) {
75
- this.getGoodInfo(goodsList[goodsList.length - 1])
76
- }
77
- return goodsList.length > 0 ? true : false;
78
- },
79
- getGoodInfo(row) {
80
- this.$http.post('api.Product.GetById', { productId: row.content.OutGoodsId }).then(res => {
81
- const data = res.data
82
- this.goodInfo.title = data.baseInfo.title
83
- this.goodInfo.price = data.baseInfo.superPrice
84
- this.goodInfo.costPrice = data.baseInfo.costPrice
85
- this.goodInfo.url = data.baseInfo.listWapDescImg[0]
86
- })
87
- }
88
- }
89
- };
90
- </script>
91
- <style lang="scss" scoped>
92
- .chatroom {
93
- width: 100%;
94
- height: 100vh;
95
- background: #dfdfe2;
96
- }
97
- .goback {
98
- cursor: pointer;
99
- background-color: #f4f4f5;
100
- color: #909399;
101
- width: 100%;
102
- padding: 12px 16px;
103
- margin: 0;
104
- -webkit-box-sizing: border-box;
105
- box-sizing: border-box;
106
- font-size: 13px;
107
- margin-bottom: 15px;
108
- position: absolute;
109
- left: 0;
110
- top: 0;
111
- z-index: 999;
112
- }
113
- .fixedMessage {
114
- width: 400px;
115
- float: right;
116
- height: 80px;
117
- line-height: 80px;
118
- display: flex;
119
- z-index: 99;
120
- position: relative;
121
- background-color: #fff;
122
- margin-top: 18px;
123
- padding: 0 10px;
124
- &>div{
125
- height: 100%;
126
- }
127
- p {
128
- padding: 0px;
129
- margin: 0px;
130
- line-height: 30px;
131
- }
132
- .image {
133
- width: 60px;
134
- height: 60px;
135
- margin-right: 5px;
136
- margin-top: 10px;
137
- border-radius: 5px;
138
- overflow: hidden;
139
- img {
140
- width: 100%;
141
- border-radius: 5px;
142
- }
143
- }
144
- .info {
145
- padding: 10px 0 10px 10px;
146
- .title {
147
- font-size: 15px;
148
- color: #666;
149
- }
150
- .price {
151
- color: #ff455b;
152
- font-size: 18px;
153
- }
154
- .content {
155
- font-size: 13px;
156
- color: #999;
157
- }
158
- }
159
- }
1
+ <!--
2
+ * @Author: your name
3
+ * @Date: 2021-01-15 15:38:11
4
+ * @LastEditTime: 2021-01-16 15:06:42
5
+ * @LastEditors: Please set LastEditors
6
+ * @Description: In User Settings Edit
7
+ * @FilePath: \dev\src\components\im\pages\chatRoom\index.vue
8
+ -->
9
+ <template>
10
+ <div class="chatroom" id="chatroom">
11
+ <div class="goback" @click="goback">
12
+ <i class="el-icon-arrow-left" />
13
+ {{
14
+ currentItem.latestMessage.content.userInfo
15
+ ? currentItem.latestMessage.content.userInfo.userName
16
+ : ""
17
+ }}
18
+ </div>
19
+ <chatCom
20
+ :targetId="currentItem.targetId"
21
+ :type="currentItem.type"
22
+ :targetName="
23
+ currentItem.content.userInfo
24
+ ? currentItem.content.userInfo.targetName
25
+ : '客服'
26
+ "
27
+ :chatObj="currentItem"
28
+ >
29
+ <div slot="message" slot-scope="props">
30
+ <ImageMessage
31
+ v-if="props.message.name == 'RC:ImgMsg'"
32
+ :message="props.message"
33
+ />
34
+ <TextMessage
35
+ v-if="props.message.name == 'RC:TxtMsg'"
36
+ :message="props.message"
37
+ />
38
+ </div>
39
+ <template slot="slot-top" slot-scope="row">
40
+ <div class="fixedMessage" v-if="showFixed(row.list)">
41
+ <div class="image">
42
+ <img :src="goodInfo.url" />
43
+ </div>
44
+ <div class="info">
45
+ <p class="title">{{ goodInfo.title }}</p>
46
+ <p class="content"><span class="price"> ¥{{ goodInfo.price }} </span> <span>选货价:¥{{ goodInfo.costPrice }} </span></p>
47
+ </div>
48
+ </div>
49
+ </template>
50
+ </chatCom>
51
+ </div>
52
+ </template>
53
+ <script>
54
+ export default {
55
+ props: {
56
+ currentItem: [Object]
57
+ },
58
+ data () {
59
+ return {
60
+ goodInfo: {
61
+ title: '',
62
+ price: '',
63
+ costPrice: '',
64
+ url: ''
65
+ }
66
+ }
67
+ },
68
+ methods: {
69
+ goback() {
70
+ this.$emit("goback");
71
+ },
72
+ showFixed(list) {
73
+ const goodsList = list.filter(item => item.content && item.content.OutGoodsId)
74
+ if (goodsList.length > 0) {
75
+ this.getGoodInfo(goodsList[goodsList.length - 1])
76
+ }
77
+ return goodsList.length > 0 ? true : false;
78
+ },
79
+ getGoodInfo(row) {
80
+ this.$http.post('api.Product.GetById', { productId: row.content.OutGoodsId }).then(res => {
81
+ const data = res.data
82
+ this.goodInfo.title = data.baseInfo.title
83
+ this.goodInfo.price = data.baseInfo.superPrice
84
+ this.goodInfo.costPrice = data.baseInfo.costPrice
85
+ this.goodInfo.url = data.baseInfo.listWapDescImg[0]
86
+ })
87
+ }
88
+ }
89
+ };
90
+ </script>
91
+ <style lang="scss" scoped>
92
+ .chatroom {
93
+ width: 100%;
94
+ height: 100vh;
95
+ background: #dfdfe2;
96
+ }
97
+ .goback {
98
+ cursor: pointer;
99
+ background-color: #f4f4f5;
100
+ color: #909399;
101
+ width: 100%;
102
+ padding: 12px 16px;
103
+ margin: 0;
104
+ -webkit-box-sizing: border-box;
105
+ box-sizing: border-box;
106
+ font-size: 13px;
107
+ margin-bottom: 15px;
108
+ position: absolute;
109
+ left: 0;
110
+ top: 0;
111
+ z-index: 999;
112
+ }
113
+ .fixedMessage {
114
+ width: 400px;
115
+ float: right;
116
+ height: 80px;
117
+ line-height: 80px;
118
+ display: flex;
119
+ z-index: 99;
120
+ position: relative;
121
+ background-color: #fff;
122
+ margin-top: 18px;
123
+ padding: 0 10px;
124
+ &>div{
125
+ height: 100%;
126
+ }
127
+ p {
128
+ padding: 0px;
129
+ margin: 0px;
130
+ line-height: 30px;
131
+ }
132
+ .image {
133
+ width: 60px;
134
+ height: 60px;
135
+ margin-right: 5px;
136
+ margin-top: 10px;
137
+ border-radius: 5px;
138
+ overflow: hidden;
139
+ img {
140
+ width: 100%;
141
+ border-radius: 5px;
142
+ }
143
+ }
144
+ .info {
145
+ padding: 10px 0 10px 10px;
146
+ .title {
147
+ font-size: 15px;
148
+ color: #666;
149
+ }
150
+ .price {
151
+ color: #ff455b;
152
+ font-size: 18px;
153
+ }
154
+ .content {
155
+ font-size: 13px;
156
+ color: #999;
157
+ }
158
+ }
159
+ }
160
160
  </style>
@@ -1,4 +1,4 @@
1
- export default () => {
2
- return {
3
- }
1
+ export default () => {
2
+ return {
3
+ }
4
4
  };
@@ -1,26 +1,26 @@
1
- .avatar-uploader {
2
- // border: 1px dashed #d9d9d9;
3
- border-radius: 6px;
4
- cursor: pointer;
5
- position: relative;
6
- overflow: hidden;
7
- }
8
- .el-upload--text{
9
- border: 1px dashed #d9d9d9;
10
- }
11
- .avatar-uploader .el-upload:hover {
12
- border-color: #409EFF;
13
- }
14
- .avatar-uploader-icon {
15
- font-size: 28px;
16
- color: #8c939d;
17
- width: 178px;
18
- height: 178px;
19
- line-height: 178px;
20
- text-align: center;
21
- }
22
- .avatar {
23
- width: 178px;
24
- height: 178px;
25
- display: block;
26
- }
1
+ .avatar-uploader {
2
+ // border: 1px dashed #d9d9d9;
3
+ border-radius: 6px;
4
+ cursor: pointer;
5
+ position: relative;
6
+ overflow: hidden;
7
+ }
8
+ .el-upload--text{
9
+ border: 1px dashed #d9d9d9;
10
+ }
11
+ .avatar-uploader .el-upload:hover {
12
+ border-color: #409EFF;
13
+ }
14
+ .avatar-uploader-icon {
15
+ font-size: 28px;
16
+ color: #8c939d;
17
+ width: 178px;
18
+ height: 178px;
19
+ line-height: 178px;
20
+ text-align: center;
21
+ }
22
+ .avatar {
23
+ width: 178px;
24
+ height: 178px;
25
+ display: block;
26
+ }
@@ -1,56 +1,56 @@
1
- <template>
2
- <div ref="imageUrl">
3
- <el-upload
4
- :action="actionUrl"
5
- class="avatar-uploader"
6
- :headers="myHeaders"
7
- :show-file-list="false"
8
- :before-upload="handleBeforeUpload"
9
- :on-success="handleSuccess"
10
- >
11
- <img v-if="imageUrl" :src="imageUrl" class="avatar">
12
- <i v-else class="el-icon-plus avatar-uploader-icon" />
13
- </el-upload>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- import data from './data'
19
- import methods from './methods'
20
- import { getConfig } from '@/utils/global-config'
21
- import { getToken } from '@/utils/auth'
22
- const tokenKey = `${getConfig('CLIENT_ID')}_token`
23
-
24
- export default {
25
- components: {},
26
- mixins: [],
27
- props: {
28
- imageUrl: {
29
- type: String,
30
- default: ''
31
- }
32
- },
33
- data() {
34
- return {
35
- myHeaders: {
36
- Authorization: 'Bearer ' + getToken(tokenKey),
37
- 'Client-Id': getConfig('CLIENT_ID')
38
- },
39
- actionUrl: getConfig('UPLOAD_API')
40
- }
41
- },
42
- computed: {},
43
- watch: {},
44
- // ------------------------------------------------------------------
45
- // pragma mark - Life Cycle(生命周期)
46
- // ------------------------------------------------------------------
47
- created() {
48
- this.createdInit()
49
- },
50
- mounted() {
51
- this.mountedInit()
52
- },
53
- methods
54
- }
55
- </script>
56
- <style lang="scss" src="./index.scss"></style>
1
+ <template>
2
+ <div ref="imageUrl">
3
+ <el-upload
4
+ :action="actionUrl"
5
+ class="avatar-uploader"
6
+ :headers="myHeaders"
7
+ :show-file-list="false"
8
+ :before-upload="handleBeforeUpload"
9
+ :on-success="handleSuccess"
10
+ >
11
+ <img v-if="imageUrl" :src="imageUrl" class="avatar">
12
+ <i v-else class="el-icon-plus avatar-uploader-icon" />
13
+ </el-upload>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ import data from './data'
19
+ import methods from './methods'
20
+ import { getConfig } from '@/utils/global-config'
21
+ import { getToken } from '@/utils/auth'
22
+ const tokenKey = `${getConfig('CLIENT_ID')}_token`
23
+
24
+ export default {
25
+ components: {},
26
+ mixins: [],
27
+ props: {
28
+ imageUrl: {
29
+ type: String,
30
+ default: ''
31
+ }
32
+ },
33
+ data() {
34
+ return {
35
+ myHeaders: {
36
+ Authorization: 'Bearer ' + getToken(tokenKey),
37
+ 'Client-Id': getConfig('CLIENT_ID')
38
+ },
39
+ actionUrl: getConfig('UPLOAD_API')
40
+ }
41
+ },
42
+ computed: {},
43
+ watch: {},
44
+ // ------------------------------------------------------------------
45
+ // pragma mark - Life Cycle(生命周期)
46
+ // ------------------------------------------------------------------
47
+ created() {
48
+ this.createdInit()
49
+ },
50
+ mounted() {
51
+ this.mountedInit()
52
+ },
53
+ methods
54
+ }
55
+ </script>
56
+ <style lang="scss" src="./index.scss"></style>
@@ -1,31 +1,31 @@
1
- export default {
2
- // ------------------------------------------------------------------
3
- // pragma mark - inti(初始化行为)
4
- // ------------------------------------------------------------------
5
- createdInit() {
6
- },
7
- mountedInit() {
8
- },
9
- handleSuccess(res, file) {
10
- if (res.code === 0) {
11
- this.singleUpload(res.data);
12
- } else {
13
- this.$message.error(res.message);
14
- }
15
- },
16
- handleBeforeUpload(file) {
17
- const isFormat = /^image\/(jpeg|png|jpg|ico|gif)$/.test(file.type);
18
- const isLt4M = file.size / 1024 / 1024 < 4;
19
- if (!isFormat) {
20
- this.$message.error('上传图片只能是 JPEG/PNG/JPG/ICO/gif 格式!');
21
- }
22
- if (!isLt4M) {
23
- this.$message.error('上传图片大小不能超过 4MB!');
24
- }
25
- return isFormat && isLt4M;
26
- },
27
- singleUpload(val) {
28
- this.imageUrl = val;
29
- this.$emit('singleUpload', val);
30
- }
1
+ export default {
2
+ // ------------------------------------------------------------------
3
+ // pragma mark - inti(初始化行为)
4
+ // ------------------------------------------------------------------
5
+ createdInit() {
6
+ },
7
+ mountedInit() {
8
+ },
9
+ handleSuccess(res, file) {
10
+ if (res.code === 0) {
11
+ this.singleUpload(res.data);
12
+ } else {
13
+ this.$message.error(res.message);
14
+ }
15
+ },
16
+ handleBeforeUpload(file) {
17
+ const isFormat = /^image\/(jpeg|png|jpg|ico|gif)$/.test(file.type);
18
+ const isLt4M = file.size / 1024 / 1024 < 4;
19
+ if (!isFormat) {
20
+ this.$message.error('上传图片只能是 JPEG/PNG/JPG/ICO/gif 格式!');
21
+ }
22
+ if (!isLt4M) {
23
+ this.$message.error('上传图片大小不能超过 4MB!');
24
+ }
25
+ return isFormat && isLt4M;
26
+ },
27
+ singleUpload(val) {
28
+ this.imageUrl = val;
29
+ this.$emit('singleUpload', val);
30
+ }
31
31
  }
@@ -1,8 +1,8 @@
1
- export default () => {
2
- return {
3
- imageUrl: '',
4
- uploadFileList: [], // 文件上传列表
5
- dialogImageUrl: [],
6
- dialogVisible: false,
7
- }
1
+ export default () => {
2
+ return {
3
+ imageUrl: '',
4
+ uploadFileList: [], // 文件上传列表
5
+ dialogImageUrl: [],
6
+ dialogVisible: false,
7
+ }
8
8
  };
@@ -1,42 +1,42 @@
1
- <template>
2
- <div class="image-upload-wrapper">
3
- <el-upload
4
- class="avatar-uploader"
5
- action
6
- list-type="picture-card"
7
- :auto-upload="false"
8
- :file-list="uploadFileList"
9
- :on-change="uploadImageStatusChange"
10
- :on-preview="handlePictureCardPreview"
11
- :on-remove="handleRemove"
12
- >
13
- <i class="el-icon-plus"></i>
14
- </el-upload>
15
- <el-dialog :visible.sync="dialogVisible">
16
- <img width="100%" :src="dialogImageUrl" alt />
17
- </el-dialog>
18
- </div>
19
- </template>
20
-
21
- <script>
22
- import data from "./data";
23
- import methods from "./methods";
24
- export default {
25
- props: {},
26
- data,
27
- methods,
28
- mixins: [],
29
- components: {},
30
- watch: {},
31
- computed: {},
32
- // ------------------------------------------------------------------
33
- // pragma mark - Life Cycle(生命周期)
34
- // ------------------------------------------------------------------
35
- created() {
36
- this.createdInit();
37
- },
38
- mounted() {
39
- this.mountedInit();
40
- }
41
- };
1
+ <template>
2
+ <div class="image-upload-wrapper">
3
+ <el-upload
4
+ class="avatar-uploader"
5
+ action
6
+ list-type="picture-card"
7
+ :auto-upload="false"
8
+ :file-list="uploadFileList"
9
+ :on-change="uploadImageStatusChange"
10
+ :on-preview="handlePictureCardPreview"
11
+ :on-remove="handleRemove"
12
+ >
13
+ <i class="el-icon-plus"></i>
14
+ </el-upload>
15
+ <el-dialog :visible.sync="dialogVisible">
16
+ <img width="100%" :src="dialogImageUrl" alt />
17
+ </el-dialog>
18
+ </div>
19
+ </template>
20
+
21
+ <script>
22
+ import data from "./data";
23
+ import methods from "./methods";
24
+ export default {
25
+ props: {},
26
+ data,
27
+ methods,
28
+ mixins: [],
29
+ components: {},
30
+ watch: {},
31
+ computed: {},
32
+ // ------------------------------------------------------------------
33
+ // pragma mark - Life Cycle(生命周期)
34
+ // ------------------------------------------------------------------
35
+ created() {
36
+ this.createdInit();
37
+ },
38
+ mounted() {
39
+ this.mountedInit();
40
+ }
41
+ };
42
42
  </script>