@hbisty/qj-common 5.0.4 → 5.0.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 (234) hide show
  1. package/.babelrc +12 -12
  2. package/.eslintrc.js +25 -25
  3. package/.idea/common.iml +11 -11
  4. package/.idea/modules.xml +7 -7
  5. package/.idea/vcs.xml +5 -5
  6. package/.postcssrc.js +9 -9
  7. package/.prettierrc.js +7 -7
  8. package/.project +37 -37
  9. package/README.md +2 -2
  10. package/gulpfile.js +20 -20
  11. package/package.json +18 -18
  12. package/src/api/apimanage.js +146 -146
  13. package/src/api/common/index.js +192 -192
  14. package/src/api/login.js +160 -160
  15. package/src/api/shopFbu.js +515 -515
  16. package/src/api/siteMsg.js +36 -0
  17. package/src/api/upload.js +8 -8
  18. package/src/components/Bounced/index.vue +145 -145
  19. package/src/components/Breadcrumb/index.vue +71 -71
  20. package/src/components/Checkbox/index.vue +53 -53
  21. package/src/components/Hamburger/index.vue +48 -48
  22. package/src/components/Logistics/logic.vue +186 -186
  23. package/src/components/ScrollBar/index.vue +60 -60
  24. package/src/components/SiteMsg/img/readed-icon.png +0 -0
  25. package/src/components/SiteMsg/img/unread-icon.png +0 -0
  26. package/src/components/SiteMsg/index.vue +707 -0
  27. package/src/components/SiteMsg//347/253/231/345/206/205/344/277/241/346/266/210/346/201/257-/346/216/245/345/217/243/346/226/207/346/241/243.txt +191 -0
  28. package/src/components/Sticky/index.vue +76 -76
  29. package/src/components/SvgIcon/index.vue +42 -42
  30. package/src/components/ThemePicker/index.vue +243 -243
  31. package/src/components/Tinymce/components/editorImage.vue +94 -94
  32. package/src/components/Tinymce/index.vue +166 -166
  33. package/src/components/Tinymce/plugins.js +7 -7
  34. package/src/components/Tinymce/toolbar.js +6 -6
  35. package/src/components/TreeTable/customEval.js +44 -44
  36. package/src/components/TreeTable/eval.js +29 -29
  37. package/src/components/TreeTable/index.vue +124 -124
  38. package/src/components/TreeTable/readme.md +89 -89
  39. package/src/components/TreeTableApi/customEval.js +49 -49
  40. package/src/components/TreeTableApi/eval.js +29 -29
  41. package/src/components/TreeTableApi/index.vue +124 -124
  42. package/src/components/TreeTableApi/readme.md +89 -89
  43. package/src/components/Upload/singleImage.vue +123 -123
  44. package/src/components/Upload/singleImage2.vue +118 -118
  45. package/src/components/Upload/singleImage3.vue +138 -138
  46. package/src/components/Upload/upload.vue +295 -295
  47. package/src/components/workOrderList/index.vue +158 -158
  48. package/src/dependencies.js +119 -119
  49. package/src/iconShop/demo.css +539 -539
  50. package/src/iconShop/demo_index.html +8445 -8445
  51. package/src/iconShop/iconfont.css +1451 -1451
  52. package/src/iconShop/iconfont.json +2522 -2522
  53. package/src/iconShop/iconfont.svg +1070 -1070
  54. package/src/iconfont/demo.css +539 -539
  55. package/src/iconfont/demo_index.html +5276 -5276
  56. package/src/iconfont/iconfont.css +905 -905
  57. package/src/iconfont/iconfont.json +1563 -1563
  58. package/src/iconfont/iconfont.svg +692 -692
  59. package/src/icons/index.js +9 -9
  60. package/src/lang/e.js +48 -48
  61. package/src/lang/en.js +48 -48
  62. package/src/lang/zh.js +48 -48
  63. package/src/main.js +62 -62
  64. package/src/permission.js +283 -283
  65. package/src/permissionForMall.backup.js +375 -375
  66. package/src/permissionForMall.js +375 -375
  67. package/src/preset.js +67 -67
  68. package/src/router/_import_common.js +1 -1
  69. package/src/router/_import_development.js +1 -1
  70. package/src/router/_import_production.js +1 -1
  71. package/src/store/getters.js +39 -39
  72. package/src/store/index.js +18 -18
  73. package/src/store/modules/app.js +34 -34
  74. package/src/store/modules/menu.js +82 -82
  75. package/src/store/modules/user.js +234 -234
  76. package/src/styles/element-ui.scss +1368 -1368
  77. package/src/styles/index.scss +166 -166
  78. package/src/styles/mixin.scss +27 -27
  79. package/src/styles/pc-ui.scss +1031 -1031
  80. package/src/styles/scrollBar.scss +21 -21
  81. package/src/styles/sidebar.scss +123 -123
  82. package/src/styles/transition.scss +32 -32
  83. package/src/styles/variables.scss +44 -44
  84. package/src/styles/wf-ui.scss +86 -86
  85. package/src/utils/auth.js +84 -57
  86. package/src/utils/dom.js +12 -12
  87. package/src/utils/getQueryString.js +5 -5
  88. package/src/utils/import.js +5 -5
  89. package/src/utils/index.js +355 -355
  90. package/src/utils/interceptor.js +34 -34
  91. package/src/utils/menu.js +116 -116
  92. package/src/utils/proapp.js +35 -35
  93. package/src/utils/query.js +26 -26
  94. package/src/utils/request.js +374 -374
  95. package/src/utils/routeMapping.js +39 -39
  96. package/src/utils/routeMapping.json +310 -310
  97. package/src/utils/utils.js +84 -84
  98. package/src/utils/validate.js +102 -102
  99. package/src/views/404.vue +72 -72
  100. package/src/views/Layout.vue +106 -106
  101. package/src/views/imgSwiper/index.vue +34 -34
  102. package/src/views/layout/Layout.vue +181 -181
  103. package/src/views/layout/components/AppMain.vue +20 -20
  104. package/src/views/layout/components/Footer.vue +22 -22
  105. package/src/views/layout/components/LeftNavbar.vue +318 -318
  106. package/src/views/layout/components/NavMenu.vue +15 -15
  107. package/src/views/layout/components/Navbar.vue +765 -695
  108. package/src/views/layout/components/Sidebar/SidebarItem.vue +116 -116
  109. package/src/views/layout/components/Sidebar/index.vue +216 -216
  110. package/src/views/layout/components/index.js +19 -19
  111. package/src/views/layout/theme/darkBlue/Layout.vue +140 -140
  112. package/src/views/layout/theme/darkBlue/components/AppMain.vue +38 -38
  113. package/src/views/layout/theme/darkBlue/components/Footer.vue +147 -147
  114. package/src/views/layout/theme/darkBlue/components/LeftNavbar(/345/261/225/347/244/272/345/205/250/351/203/250/350/217/234/345/215/225).vue +448 -448
  115. package/src/views/layout/theme/darkBlue/components/LeftNavbar.3.vue +191 -191
  116. package/src/views/layout/theme/darkBlue/components/LeftNavbar.vue +466 -466
  117. package/src/views/layout/theme/darkBlue/components/Navbar.vue +200 -200
  118. package/src/views/layout/theme/darkBlue/components/Sidebar/SidebarItem.vue +71 -71
  119. package/src/views/layout/theme/darkBlue/components/Sidebar/index.vue +49 -49
  120. package/src/views/layout/theme/darkBlue/components/index.js +15 -15
  121. package/src/views/layout-default/Layout.vue +134 -134
  122. package/src/views/layout-default/components/AppMain.vue +19 -19
  123. package/src/views/layout-default/components/Footer.vue +22 -22
  124. package/src/views/layout-default/components/LeftNavbar.vue +164 -164
  125. package/src/views/layout-default/components/Navbar.vue +295 -295
  126. package/src/views/layout-default/components/Sidebar/SidebarItem.vue +67 -67
  127. package/src/views/layout-default/components/Sidebar/index.vue +59 -59
  128. package/src/views/layout-default/components/index.js +4 -4
  129. package/src/views/layout-default/theme/darkBlue/Layout.vue +140 -140
  130. package/src/views/layout-default/theme/darkBlue/components/AppMain.vue +38 -38
  131. package/src/views/layout-default/theme/darkBlue/components/Footer.vue +147 -147
  132. package/src/views/layout-default/theme/darkBlue/components/LeftNavbar.vue +465 -465
  133. package/src/views/layout-default/theme/darkBlue/components/Navbar.vue +200 -200
  134. package/src/views/layout-default/theme/darkBlue/components/Sidebar/SidebarItem.vue +69 -69
  135. package/src/views/layout-default/theme/darkBlue/components/Sidebar/index.vue +49 -49
  136. package/src/views/layout-default/theme/darkBlue/components/index.js +15 -15
  137. package/src/views/pc/Internationalization.vue +80 -80
  138. package/src/views/pc/default/Layout.vue +442 -442
  139. package/src/views/pc/default/LayoutCard.vue +424 -424
  140. package/src/views/pc/default/assets/flex.scss +99 -99
  141. package/src/views/pc/default/footer-modules/DgFooter/index.vue +179 -179
  142. package/src/views/pc/default/footer-modules/DgFooter/indexSDX.vue +187 -187
  143. package/src/views/pc/default/footer-modules/footer.vue +171 -171
  144. package/src/views/pc/default/footer-modules/footerAns.vue +167 -167
  145. package/src/views/pc/default/footer-modules/footerBulk.vue +169 -169
  146. package/src/views/pc/default/footer-modules/footerDM.vue +254 -254
  147. package/src/views/pc/default/footer-modules/footerDefault.vue +267 -267
  148. package/src/views/pc/default/footer-modules/footerDefaultA.vue +270 -270
  149. package/src/views/pc/default/footer-modules/footerDefaultNew.vue +201 -201
  150. package/src/views/pc/default/footer-modules/footerHDB.vue +153 -153
  151. package/src/views/pc/default/footer-modules/footerHy.vue +63 -63
  152. package/src/views/pc/default/footer-modules/footerKYW.vue +163 -163
  153. package/src/views/pc/default/footer-modules/footerMh.vue +30 -30
  154. package/src/views/pc/default/footer-modules/footerNew.vue +116 -116
  155. package/src/views/pc/default/footer-modules/footer_yzj.vue +169 -169
  156. package/src/views/pc/default/footer-modules/footerayd.vue +85 -85
  157. package/src/views/pc/default/footer-modules/ymFooter.vue +154 -154
  158. package/src/views/pc/default/footer-modules/zgl.vue +250 -250
  159. package/src/views/pc/default/header-modules/DgHeader/Logo.vue +57 -57
  160. package/src/views/pc/default/header-modules/DgHeader/Search.vue +135 -135
  161. package/src/views/pc/default/header-modules/DgHeader/Settleup.vue +46 -46
  162. package/src/views/pc/default/header-modules/DgHeader/index.vue +38 -38
  163. package/src/views/pc/default/header-modules/active.vue +177 -177
  164. package/src/views/pc/default/header-modules/header.vue +97 -97
  165. package/src/views/pc/default/header-modules/headerA.vue +142 -142
  166. package/src/views/pc/default/header-modules/headerFLPT.vue +157 -157
  167. package/src/views/pc/default/header-modules/headerMh.vue +187 -187
  168. package/src/views/pc/default/header-modules/headerNew.vue +121 -121
  169. package/src/views/pc/default/header-modules/headerSDX.vue +304 -304
  170. package/src/views/pc/default/header-modules/headerStyle2.vue +173 -173
  171. package/src/views/pc/default/header-modules/headerStyle3.vue +190 -190
  172. package/src/views/pc/default/header-modules/headerStyle4.vue +163 -163
  173. package/src/views/pc/default/header-modules/headerStyleAns.vue +400 -400
  174. package/src/views/pc/default/header-modules/headerStyleBulk.vue +427 -427
  175. package/src/views/pc/default/header-modules/headerStyleDefalut.vue +209 -209
  176. package/src/views/pc/default/header-modules/headerStyleKYW.vue +435 -435
  177. package/src/views/pc/default/header-modules/headerStyle_yzj.vue +427 -427
  178. package/src/views/pc/default/header-modules/headerayd.vue +187 -187
  179. package/src/views/pc/default/header-modules/index.vue +466 -466
  180. package/src/views/pc/default/header-modules/ymHeader.vue +292 -292
  181. package/src/views/pc/default/header-modules/ysHeader.vue +248 -248
  182. package/src/views/pc/default/header-modules/zgl.vue +855 -855
  183. package/src/views/pc/default/leftMenu-modules/leftMenu-logo.vue +194 -194
  184. package/src/views/pc/default/leftMenu-modules/leftMenu-style2.vue +206 -206
  185. package/src/views/pc/default/leftMenu-modules/leftMenu-style3.vue +207 -207
  186. package/src/views/pc/default/leftMenu-modules/leftMenu-style4.vue +192 -192
  187. package/src/views/pc/default/leftMenu-modules/leftMenu.vue +183 -183
  188. package/src/views/pc/default/leftMenu-modules/leftMenuDefault.vue +212 -212
  189. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultEn.vue +214 -214
  190. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultFLPT.vue +220 -220
  191. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultayd.vue +220 -220
  192. package/src/views/pc/default/nav-modules/nav.vue +52 -52
  193. package/src/views/pc/default/nav-modules/navAns.vue +60 -60
  194. package/src/views/pc/default/nav-modules/navBulk.vue +60 -60
  195. package/src/views/pc/default/top-modules/DgTopShortcut/index.vue +177 -177
  196. package/src/views/pc/default/top-modules/Toplg.vue +280 -280
  197. package/src/views/pc/default/top-modules/topA.vue +136 -136
  198. package/src/views/pc/default/top-modules/topAns.vue +261 -261
  199. package/src/views/pc/default/top-modules/topAns_yzj.vue +282 -282
  200. package/src/views/pc/default/top-modules/topBar.vue +304 -304
  201. package/src/views/pc/default/top-modules/topBulk.vue +280 -280
  202. package/src/views/pc/default/top-modules/topDefault.vue +244 -244
  203. package/src/views/pc/default/top-modules/topDefaultDM.vue +197 -197
  204. package/src/views/pc/default/top-modules/topDefaultNew.vue +271 -271
  205. package/src/views/pc/default/top-modules/topFLPT.vue +197 -197
  206. package/src/views/pc/default/top-modules/topHDB.vue +479 -479
  207. package/src/views/pc/default/top-modules/topKYW.vue +258 -258
  208. package/src/views/pc/default/top-modules/topMh.vue +174 -174
  209. package/src/views/pc/default/top-modules/topNew.vue +97 -97
  210. package/src/views/pc/default/top-modules/topSDX.vue +298 -298
  211. package/src/views/pc/default/top-modules/topSimple.vue +247 -247
  212. package/src/views/pc/default/top-modules/topSimpleHy.vue +256 -256
  213. package/src/views/pc/default/top-modules/topUcc.vue +264 -264
  214. package/src/views/pc/default/top-modules/topayd.vue +170 -170
  215. package/src/views/pc/default/top-modules/ymTop.vue +299 -299
  216. package/src/views/pc/default/top-modules/zgltop.vue +499 -499
  217. package/src/views/routerView.vue +9 -9
  218. package/src/views/templates/components/temp-select.vue +80 -80
  219. package/src/views/templates/components/temp-upload.vue +233 -233
  220. package/src/views/templates/readme.md +2 -2
  221. package/src/views/templates/templateInput.vue +421 -421
  222. package/src/views/templates/templateReadme.html +588 -588
  223. package/src/views/templates/templateReadme.md +619 -619
  224. package/src/views/templates/templateTable.vue +2244 -2244
  225. package/src/views/templates/templateTableData.vue +1883 -1883
  226. package/src/views/templates/templateUi/templateTableContent.vue +187 -187
  227. package/src/views/treeTemplate/index.vue +559 -559
  228. package/src/views/treeTemplate/treeTemplate.md +274 -274
  229. package/src/views/uploadDialog/index copy.vue +352 -352
  230. package/src/views/uploadDialog/index.vue +558 -558
  231. package/src/views/uploadDialog/indexOlay.vue +582 -582
  232. package/src/views/uploadDialog/indexPM.vue +578 -578
  233. package/src/views/uploadDialog/indexUpload.vue +543 -543
  234. package/src/views/uploadDialog/readme.md +45 -45
@@ -0,0 +1,191 @@
1
+ 1.查询顶部tab消息类型和左侧tab状态类型接口
2
+ 地址:/web/mns/mnsblist/queryMailMnsblistPageTree.json
3
+ 入参: {
4
+ mnslistBustype: 'smail' //固定值
5
+ }
6
+ 返回: {
7
+ mnsTabTreeNodeList: [
8
+ {
9
+ "code": "order",
10
+ "message": "订单",
11
+ "parentType": "",
12
+ "badge": 0,
13
+ "children": [
14
+ {
15
+ "code": "order_purchase",
16
+ "message": "订单请购",
17
+ "parentType": "order",
18
+ "badge": 0,
19
+ "children": []
20
+ },
21
+ {
22
+ "code": "new_order",
23
+ "message": "新订单",
24
+ "parentType": "order",
25
+ "badge": 0,
26
+ "children": []
27
+ },
28
+ {
29
+ "code": "receive_complete",
30
+ "message": "收货完成",
31
+ "parentType": "order",
32
+ "badge": 0,
33
+ "children": []
34
+ },
35
+ {
36
+ "code": "order_cancel",
37
+ "message": "订单取消",
38
+ "parentType": "order",
39
+ "badge": 0,
40
+ "children": []
41
+ },
42
+ {
43
+ "code": "service_after_sale",
44
+ "message": "服务及售后",
45
+ "parentType": "order",
46
+ "badge": 0,
47
+ "children": []
48
+ },
49
+ {
50
+ "code": "received",
51
+ "message": "已收货",
52
+ "parentType": "order",
53
+ "badge": 0,
54
+ "children": []
55
+ }
56
+ ]
57
+ },
58
+ {
59
+ "code": "settlement_sign",
60
+ "message": "结算签章",
61
+ "parentType": "",
62
+ "badge": 0,
63
+ "children": [
64
+ {
65
+ "code": "pending_sign",
66
+ "message": "待签章",
67
+ "parentType": "settlement_sign",
68
+ "badge": 0,
69
+ "children": []
70
+ },
71
+ {
72
+ "code": "pending_pay",
73
+ "message": "待付款",
74
+ "parentType": "settlement_sign",
75
+ "badge": 0,
76
+ "children": []
77
+ },
78
+ {
79
+ "code": "pay_complete",
80
+ "message": "付款完成",
81
+ "parentType": "settlement_sign",
82
+ "badge": 0,
83
+ "children": []
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "code": "goods",
89
+ "message": "商品",
90
+ "parentType": "",
91
+ "badge": 0,
92
+ "children": [
93
+ {
94
+ "code": "goods_publish",
95
+ "message": "商品发布",
96
+ "parentType": "goods",
97
+ "badge": 0,
98
+ "children": []
99
+ },
100
+ {
101
+ "code": "goods_offline",
102
+ "message": "商品下架",
103
+ "parentType": "goods",
104
+ "badge": 0,
105
+ "children": []
106
+ },
107
+ {
108
+ "code": "goods_online",
109
+ "message": "商品上架",
110
+ "parentType": "goods",
111
+ "badge": 0,
112
+ "children": []
113
+ },
114
+ {
115
+ "code": "goods_publish_audit",
116
+ "message": "商品发布审核",
117
+ "parentType": "goods",
118
+ "badge": 0,
119
+ "children": []
120
+ },
121
+ {
122
+ "code": "goods_online_audit",
123
+ "message": "商品上架审核",
124
+ "parentType": "goods",
125
+ "badge": 0,
126
+ "children": []
127
+ }
128
+ ]
129
+ },
130
+ {
131
+ "code": "brand_auth",
132
+ "message": "品牌授权",
133
+ "parentType": "",
134
+ "badge": 0,
135
+ "children": [
136
+ {
137
+ "code": "add_brand_auth",
138
+ "message": "新增品牌授权",
139
+ "parentType": "brand_auth",
140
+ "badge": 0,
141
+ "children": []
142
+ },
143
+ {
144
+ "code": "del_brand_auth",
145
+ "message": "删除品牌授权",
146
+ "parentType": "brand_auth",
147
+ "badge": 0,
148
+ "children": []
149
+ },
150
+ {
151
+ "code": "brand_auth_expire",
152
+ "message": "品牌授权到期",
153
+ "parentType": "brand_auth",
154
+ "badge": 0,
155
+ "children": []
156
+ }
157
+ ]
158
+ }
159
+ ], //tab1,2级tree形结构数据
160
+ badge: 18, //所有未读消息总数
161
+ }
162
+
163
+ 2.根据1,2级选中的类型查询消息列表接口
164
+ 地址:/web/mns/mnsblist/queryMnsblistPage.json
165
+ 入参: {
166
+ page: 1,
167
+ rows: 10,
168
+ mnslistBustype: 'smail', //固定值
169
+ mnslistBustnameExt: '', //一级菜单code
170
+ mnslistBustypeExt: '', //二级菜单code
171
+ stateExt: '', //状态:0未读1已读(查全部则不传)
172
+ mnslistContent: '', //模糊搜索关键词
173
+ }
174
+ 返回: {
175
+ rows: [
176
+ mnschannelName: '', //消息名称
177
+ mnslistContent: '', //消息内容
178
+ stateExt: '', // 状态0未读1已读
179
+ ],
180
+ total: 10,
181
+ }
182
+
183
+ 3.单个已读接口
184
+ 地址: web/mns/mnsblist/updateMnsblist.json
185
+ 入参: {
186
+ mnsblistId: '',
187
+ stateExt: '',
188
+ }
189
+
190
+ 4.全部已读接口
191
+ 待开发,先不联调
@@ -1,76 +1,76 @@
1
- <template>
2
- <div :style="{height:height+'px',zIndex:zIndex}">
3
- <div :class="className" :style="{top:stickyTop+'px',zIndex:zIndex,position:position,width:width,height:height+'px'}">
4
- <slot>
5
- <div>sticky</div>
6
- </slot>
7
- </div>
8
- </div>
9
- </template>
10
-
11
- <script>
12
- export default {
13
- name: 'Sticky',
14
- props: {
15
- stickyTop: {
16
- type: Number,
17
- default: 0
18
- },
19
- zIndex: {
20
- type: Number,
21
- default: 1
22
- },
23
- className: {
24
- type: String
25
- }
26
- },
27
- data() {
28
- return {
29
- active: false,
30
- position: '',
31
- currentTop: '',
32
- width: undefined,
33
- height: undefined,
34
- child: null,
35
- stickyHeight: 0
36
- }
37
- },
38
- mounted() {
39
- this.height = this.$el.getBoundingClientRect().height
40
- window.addEventListener('scroll', this.handleScroll)
41
- },
42
- activated() {
43
- this.handleScroll()
44
- },
45
- destroyed() {
46
- window.removeEventListener('scroll', this.handleScroll)
47
- },
48
- methods: {
49
- sticky() {
50
- if (this.active) {
51
- return
52
- }
53
- this.position = 'fixed'
54
- this.active = true
55
- this.width = this.width + 'px'
56
- },
57
- reset() {
58
- if (!this.active) {
59
- return
60
- }
61
- this.position = ''
62
- this.width = 'auto'
63
- this.active = false
64
- },
65
- handleScroll() {
66
- this.width = this.$el.getBoundingClientRect().width
67
- const offsetTop = this.$el.getBoundingClientRect().top
68
- if (offsetTop <= this.stickyTop) {
69
- this.sticky()
70
- return
71
- }
72
- this.reset()
73
- }
74
- }
75
- }
76
- </script>
1
+ <template>
2
+ <div :style="{height:height+'px',zIndex:zIndex}">
3
+ <div :class="className" :style="{top:stickyTop+'px',zIndex:zIndex,position:position,width:width,height:height+'px'}">
4
+ <slot>
5
+ <div>sticky</div>
6
+ </slot>
7
+ </div>
8
+ </div>
9
+ </template>
10
+
11
+ <script>
12
+ export default {
13
+ name: 'Sticky',
14
+ props: {
15
+ stickyTop: {
16
+ type: Number,
17
+ default: 0
18
+ },
19
+ zIndex: {
20
+ type: Number,
21
+ default: 1
22
+ },
23
+ className: {
24
+ type: String
25
+ }
26
+ },
27
+ data() {
28
+ return {
29
+ active: false,
30
+ position: '',
31
+ currentTop: '',
32
+ width: undefined,
33
+ height: undefined,
34
+ child: null,
35
+ stickyHeight: 0
36
+ }
37
+ },
38
+ mounted() {
39
+ this.height = this.$el.getBoundingClientRect().height
40
+ window.addEventListener('scroll', this.handleScroll)
41
+ },
42
+ activated() {
43
+ this.handleScroll()
44
+ },
45
+ destroyed() {
46
+ window.removeEventListener('scroll', this.handleScroll)
47
+ },
48
+ methods: {
49
+ sticky() {
50
+ if (this.active) {
51
+ return
52
+ }
53
+ this.position = 'fixed'
54
+ this.active = true
55
+ this.width = this.width + 'px'
56
+ },
57
+ reset() {
58
+ if (!this.active) {
59
+ return
60
+ }
61
+ this.position = ''
62
+ this.width = 'auto'
63
+ this.active = false
64
+ },
65
+ handleScroll() {
66
+ this.width = this.$el.getBoundingClientRect().width
67
+ const offsetTop = this.$el.getBoundingClientRect().top
68
+ if (offsetTop <= this.stickyTop) {
69
+ this.sticky()
70
+ return
71
+ }
72
+ this.reset()
73
+ }
74
+ }
75
+ }
76
+ </script>
@@ -1,42 +1,42 @@
1
- <template>
2
- <svg :class="svgClass" aria-hidden="true">
3
- <use :xlink:href="iconName"></use>
4
- </svg>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- name: 'svg-icon',
10
- props: {
11
- iconClass: {
12
- type: String,
13
- required: true
14
- },
15
- className: {
16
- type: String
17
- }
18
- },
19
- computed: {
20
- iconName() {
21
- return `#icon-${this.iconClass}`
22
- },
23
- svgClass() {
24
- if (this.className) {
25
- return 'svg-icon ' + this.className
26
- } else {
27
- return 'svg-icon'
28
- }
29
- }
30
- }
31
- }
32
- </script>
33
-
34
- <style scoped>
35
- .svg-icon {
36
- width: 1em;
37
- height: 1em;
38
- vertical-align: -0.15em;
39
- fill: currentColor;
40
- overflow: hidden;
41
- }
42
- </style>
1
+ <template>
2
+ <svg :class="svgClass" aria-hidden="true">
3
+ <use :xlink:href="iconName"></use>
4
+ </svg>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'svg-icon',
10
+ props: {
11
+ iconClass: {
12
+ type: String,
13
+ required: true
14
+ },
15
+ className: {
16
+ type: String
17
+ }
18
+ },
19
+ computed: {
20
+ iconName() {
21
+ return `#icon-${this.iconClass}`
22
+ },
23
+ svgClass() {
24
+ if (this.className) {
25
+ return 'svg-icon ' + this.className
26
+ } else {
27
+ return 'svg-icon'
28
+ }
29
+ }
30
+ }
31
+ }
32
+ </script>
33
+
34
+ <style scoped>
35
+ .svg-icon {
36
+ width: 1em;
37
+ height: 1em;
38
+ vertical-align: -0.15em;
39
+ fill: currentColor;
40
+ overflow: hidden;
41
+ }
42
+ </style>