xs-common-plugins 1.2.4 → 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 -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,114 +1,114 @@
1
- <template>
2
- <div :class="{ 'has-logo': showLogo }">
3
- <logo v-if="showLogo" :collapse="isCollapse" />
4
- <el-scrollbar wrap-class="scrollbar-wrapper">
5
- <el-menu
6
- :default-active="activeMenu"
7
- :collapse="isCollapse"
8
- :background-color="variables.menuBg"
9
- :text-color="variables.menuText"
10
- :unique-opened="true"
11
- :active-text-color="variables.menuActiveText"
12
- :collapse-transition="false"
13
- mode="vertical"
14
- >
15
- <sidebar-item
16
- v-for="route in getMenuList"
17
- :key="route.id"
18
- :item="route"
19
- :base-path="route.url"
20
- />
21
- </el-menu>
22
- </el-scrollbar>
23
- </div>
24
- </template>
25
-
26
- <script>
27
- import { mapGetters } from "vuex";
28
- import Logo from "./Logo";
29
- import SidebarItem from "./SidebarItem";
30
- import variables from "@/styles/variables.scss";
31
-
32
- import { createMenuId } from "@/common/createMenuId";
33
- //TODO
34
- export default {
35
- data() {
36
- return {
37
- devMenuList: [],
38
- };
39
- },
40
- props: {
41
- fromItem: {
42
- type: Number,
43
- default: 0
44
- }
45
- },
46
- components: { SidebarItem, Logo },
47
- computed: {
48
- ...mapGetters(["sidebar", "menuList"]),
49
- activeMenu() {
50
- const route = this.$route;
51
- const { path } = route;
52
- if (route.path) {
53
- return createMenuId(route.path);
54
- }
55
- const realUrl = decodeURIComponent(path).replace(`/child-frame/`, "");
56
- return realUrl;
57
- },
58
- showLogo() {
59
- // return this.$store.state.settings.sidebarLogo;
60
- },
61
- variables() {
62
- return variables;
63
- },
64
- isCollapse() {
65
- return !this.sidebar.opened;
66
- },
67
- getMenuList () {
68
- if(process.env.NODE_ENV === 'development') {
69
- return this.devMenuList
70
- }
71
- return this.menuList
72
- }
73
- },
74
- created() {
75
- if (process.env.NODE_ENV == "development") {
76
- let router = this.$root.$router.options.routes.find(
77
- item => item.path === "/"
78
- );
79
- let { subItems } = this.formatRouter(router, {url:'/'})
80
- this.devMenuList = subItems || []
81
- }
82
- },
83
- methods: {
84
- formatRouter (obj, parent) {
85
- let item = {
86
- title: obj.meta && obj.meta.title || '',
87
- icon: obj.meta && obj.meta.icon || '',
88
- hide: obj.meta && obj.meta.hidden || false,
89
- url: '',
90
- host: window.location.host,
91
- subItems: [],
92
- id: ''
93
- }
94
- if(parent.url == '/') {
95
- obj.url = obj.path
96
- } else {
97
- obj.url = parent.url + '/'+ obj.path
98
- }
99
- item.url = obj.url
100
- item.id = createMenuId(item.url)
101
- if(obj.children && obj.children.length > 0) {
102
- let list = []
103
- obj.children.forEach((it)=>{
104
- list.push(this.formatRouter(it, obj))
105
- })
106
- if(!list.every(i => i['hide'] === true)) {
107
- item.subItems = list.filter(item => item['hide'] !== true)
108
- }
109
- }
110
- return item
111
- }
112
- }
113
- };
114
- </script>
1
+ <template>
2
+ <div :class="{ 'has-logo': showLogo }">
3
+ <logo v-if="showLogo" :collapse="isCollapse" />
4
+ <el-scrollbar wrap-class="scrollbar-wrapper">
5
+ <el-menu
6
+ :default-active="activeMenu"
7
+ :collapse="isCollapse"
8
+ :background-color="variables.menuBg"
9
+ :text-color="variables.menuText"
10
+ :unique-opened="true"
11
+ :active-text-color="variables.menuActiveText"
12
+ :collapse-transition="false"
13
+ mode="vertical"
14
+ >
15
+ <sidebar-item
16
+ v-for="route in getMenuList"
17
+ :key="route.id"
18
+ :item="route"
19
+ :base-path="route.url"
20
+ />
21
+ </el-menu>
22
+ </el-scrollbar>
23
+ </div>
24
+ </template>
25
+
26
+ <script>
27
+ import { mapGetters } from "vuex";
28
+ import Logo from "./Logo";
29
+ import SidebarItem from "./SidebarItem";
30
+ import variables from "@/styles/variables.scss";
31
+
32
+ import { createMenuId } from "@/common/createMenuId";
33
+ //TODO
34
+ export default {
35
+ data() {
36
+ return {
37
+ devMenuList: [],
38
+ };
39
+ },
40
+ props: {
41
+ fromItem: {
42
+ type: Number,
43
+ default: 0
44
+ }
45
+ },
46
+ components: { SidebarItem, Logo },
47
+ computed: {
48
+ ...mapGetters(["sidebar", "menuList"]),
49
+ activeMenu() {
50
+ const route = this.$route;
51
+ const { path } = route;
52
+ if (route.path) {
53
+ return createMenuId(route.path);
54
+ }
55
+ const realUrl = decodeURIComponent(path).replace(`/child-frame/`, "");
56
+ return realUrl;
57
+ },
58
+ showLogo() {
59
+ // return this.$store.state.settings.sidebarLogo;
60
+ },
61
+ variables() {
62
+ return variables;
63
+ },
64
+ isCollapse() {
65
+ return !this.sidebar.opened;
66
+ },
67
+ getMenuList () {
68
+ if(process.env.NODE_ENV === 'development') {
69
+ return this.devMenuList
70
+ }
71
+ return this.menuList
72
+ }
73
+ },
74
+ created() {
75
+ if (process.env.NODE_ENV == "development") {
76
+ let router = this.$root.$router.options.routes.find(
77
+ item => item.path === "/"
78
+ );
79
+ let { subItems } = this.formatRouter(router, {url:'/'})
80
+ this.devMenuList = subItems || []
81
+ }
82
+ },
83
+ methods: {
84
+ formatRouter (obj, parent) {
85
+ let item = {
86
+ title: obj.meta && obj.meta.title || '',
87
+ icon: obj.meta && obj.meta.icon || '',
88
+ hide: obj.meta && obj.meta.hidden || false,
89
+ url: '',
90
+ host: window.location.host,
91
+ subItems: [],
92
+ id: ''
93
+ }
94
+ if(parent.url == '/') {
95
+ obj.url = obj.path
96
+ } else {
97
+ obj.url = parent.url + '/'+ obj.path
98
+ }
99
+ item.url = obj.url
100
+ item.id = createMenuId(item.url)
101
+ if(obj.children && obj.children.length > 0) {
102
+ let list = []
103
+ obj.children.forEach((it)=>{
104
+ list.push(this.formatRouter(it, obj))
105
+ })
106
+ if(!list.every(i => i['hide'] === true)) {
107
+ item.subItems = list.filter(item => item['hide'] !== true)
108
+ }
109
+ }
110
+ return item
111
+ }
112
+ }
113
+ };
114
+ </script>
@@ -1,94 +1,94 @@
1
- <template>
2
- <el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" @wheel.native.prevent="handleScroll">
3
- <slot />
4
- </el-scrollbar>
5
- </template>
6
-
7
- <script>
8
- const tagAndTagSpacing = 4 // tagAndTagSpacing
9
-
10
- export default {
11
- name: 'ScrollPane',
12
- data() {
13
- return {
14
- left: 0
15
- }
16
- },
17
- computed: {
18
- scrollWrapper() {
19
- return this.$refs.scrollContainer.$refs.wrap
20
- }
21
- },
22
- mounted() {
23
- this.scrollWrapper.addEventListener('scroll', this.emitScroll, true)
24
- },
25
- beforeDestroy() {
26
- this.scrollWrapper.removeEventListener('scroll', this.emitScroll)
27
- },
28
- methods: {
29
- handleScroll(e) {
30
- const eventDelta = e.wheelDelta || -e.deltaY * 40
31
- const $scrollWrapper = this.scrollWrapper
32
- $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4
33
- },
34
- emitScroll() {
35
- this.$emit('scroll')
36
- },
37
- moveToTarget(currentTag) {
38
- const $container = this.$refs.scrollContainer.$el
39
- const $containerWidth = $container.offsetWidth
40
- const $scrollWrapper = this.scrollWrapper
41
- const tagList = this.$parent.$refs.tag
42
-
43
- let firstTag = null
44
- let lastTag = null
45
-
46
- // find first tag and last tag
47
- if (tagList.length > 0) {
48
- firstTag = tagList[0]
49
- lastTag = tagList[tagList.length - 1]
50
- }
51
-
52
- if (firstTag === currentTag) {
53
- $scrollWrapper.scrollLeft = 0
54
- } else if (lastTag === currentTag) {
55
- $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth
56
- } else {
57
- // find preTag and nextTag
58
- const currentIndex = tagList.findIndex(item => item === currentTag)
59
- const prevTag = tagList[currentIndex - 1]
60
- const nextTag = tagList[currentIndex + 1]
61
-
62
- // the tag's offsetLeft after of nextTag
63
- const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing
64
-
65
- // the tag's offsetLeft before of prevTag
66
- const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing
67
-
68
- if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {
69
- $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth
70
- } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {
71
- $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft
72
- }
73
- }
74
- }
75
- }
76
- }
77
- </script>
78
-
79
- <style lang="scss" scoped>
80
- .scroll-container {
81
- white-space: nowrap;
82
- position: relative;
83
- overflow: hidden;
84
- width: 100%;
85
- ::v-deep {
86
- .el-scrollbar__bar {
87
- bottom: 0px;
88
- }
89
- .el-scrollbar__wrap {
90
- height: 49px;
91
- }
92
- }
93
- }
94
- </style>
1
+ <template>
2
+ <el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" @wheel.native.prevent="handleScroll">
3
+ <slot />
4
+ </el-scrollbar>
5
+ </template>
6
+
7
+ <script>
8
+ const tagAndTagSpacing = 4 // tagAndTagSpacing
9
+
10
+ export default {
11
+ name: 'ScrollPane',
12
+ data() {
13
+ return {
14
+ left: 0
15
+ }
16
+ },
17
+ computed: {
18
+ scrollWrapper() {
19
+ return this.$refs.scrollContainer.$refs.wrap
20
+ }
21
+ },
22
+ mounted() {
23
+ this.scrollWrapper.addEventListener('scroll', this.emitScroll, true)
24
+ },
25
+ beforeDestroy() {
26
+ this.scrollWrapper.removeEventListener('scroll', this.emitScroll)
27
+ },
28
+ methods: {
29
+ handleScroll(e) {
30
+ const eventDelta = e.wheelDelta || -e.deltaY * 40
31
+ const $scrollWrapper = this.scrollWrapper
32
+ $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4
33
+ },
34
+ emitScroll() {
35
+ this.$emit('scroll')
36
+ },
37
+ moveToTarget(currentTag) {
38
+ const $container = this.$refs.scrollContainer.$el
39
+ const $containerWidth = $container.offsetWidth
40
+ const $scrollWrapper = this.scrollWrapper
41
+ const tagList = this.$parent.$refs.tag
42
+
43
+ let firstTag = null
44
+ let lastTag = null
45
+
46
+ // find first tag and last tag
47
+ if (tagList.length > 0) {
48
+ firstTag = tagList[0]
49
+ lastTag = tagList[tagList.length - 1]
50
+ }
51
+
52
+ if (firstTag === currentTag) {
53
+ $scrollWrapper.scrollLeft = 0
54
+ } else if (lastTag === currentTag) {
55
+ $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth
56
+ } else {
57
+ // find preTag and nextTag
58
+ const currentIndex = tagList.findIndex(item => item === currentTag)
59
+ const prevTag = tagList[currentIndex - 1]
60
+ const nextTag = tagList[currentIndex + 1]
61
+
62
+ // the tag's offsetLeft after of nextTag
63
+ const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing
64
+
65
+ // the tag's offsetLeft before of prevTag
66
+ const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing
67
+
68
+ if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {
69
+ $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth
70
+ } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {
71
+ $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ </script>
78
+
79
+ <style lang="scss" scoped>
80
+ .scroll-container {
81
+ white-space: nowrap;
82
+ position: relative;
83
+ overflow: hidden;
84
+ width: 100%;
85
+ ::v-deep {
86
+ .el-scrollbar__bar {
87
+ bottom: 0px;
88
+ }
89
+ .el-scrollbar__wrap {
90
+ height: 49px;
91
+ }
92
+ }
93
+ }
94
+ </style>