n20-common-lib 1.2.39 → 1.2.42

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 +2 -2
  2. package/package.json +88 -88
  3. package/src/_qiankun/index.js +113 -113
  4. package/src/_qiankun/postMessage.js +48 -48
  5. package/src/assets/css/_coreLib.scss +35 -35
  6. package/src/assets/css/cl-anchor.scss +23 -23
  7. package/src/assets/css/cl-approve-card.scss +58 -58
  8. package/src/assets/css/cl-dialog.scss +99 -99
  9. package/src/assets/css/cl-drag-list.scss +22 -22
  10. package/src/assets/css/cl-empty.scss +10 -10
  11. package/src/assets/css/cl-expandable-pane.scss +26 -26
  12. package/src/assets/css/cl-expandable.scss +24 -24
  13. package/src/assets/css/cl-file-upload-table.scss +11 -11
  14. package/src/assets/css/cl-filter.scss +4 -4
  15. package/src/assets/css/cl-flow-step.scss +185 -185
  16. package/src/assets/css/cl-footer-box.scss +10 -10
  17. package/src/assets/css/cl-form-item.scss +612 -612
  18. package/src/assets/css/cl-general-card.scss +11 -11
  19. package/src/assets/css/cl-layout-aside.scss +92 -92
  20. package/src/assets/css/cl-layout-content.scss +16 -16
  21. package/src/assets/css/cl-layout-header.scss +73 -73
  22. package/src/assets/css/cl-layout-tabs.scss +87 -87
  23. package/src/assets/css/cl-layout.scss +97 -97
  24. package/src/assets/css/cl-login-temporary.scss +37 -37
  25. package/src/assets/css/cl-message.scss +75 -75
  26. package/src/assets/css/cl-more-tab.scss +98 -98
  27. package/src/assets/css/cl-nav-menu.scss +5 -5
  28. package/src/assets/css/cl-pagination.scss +128 -128
  29. package/src/assets/css/cl-secondary-tab.scss +53 -53
  30. package/src/assets/css/cl-showcolumn.scss +23 -23
  31. package/src/assets/css/cl-sifting.scss +51 -51
  32. package/src/assets/css/cl-statis.scss +42 -42
  33. package/src/assets/css/cl-step.scss +73 -73
  34. package/src/assets/css/cl-suspend.scss +19 -19
  35. package/src/assets/css/cl-tertiary-tab.scss +54 -54
  36. package/src/assets/css/cl-upload.scss +41 -41
  37. package/src/assets/css/cl-worn-pagination.scss +50 -50
  38. package/src/assets/css/el-button.scss +173 -173
  39. package/src/assets/css/el-table.scss +79 -79
  40. package/src/assets/css/element-variables.scss +1061 -1061
  41. package/src/assets/css/element.dev.scss +21 -21
  42. package/src/assets/css/font-icon.scss +27 -27
  43. package/src/assets/css/index.dev.scss +4 -4
  44. package/src/assets/css/index.scss +11 -11
  45. package/src/assets/css/normalize.scss +726 -726
  46. package/src/assets/css/rootvar.scss +139 -139
  47. package/src/assets/css/select.scss +25 -25
  48. package/src/assets/css/title-pop.scss +4 -4
  49. package/src/assets/getJsonc.js +50 -50
  50. package/src/assets/realUrl.js +12 -12
  51. package/src/components/Anchor/AnchorItem.vue +29 -29
  52. package/src/components/Anchor/index.vue +185 -185
  53. package/src/components/ApprovalButtons/index.vue +233 -233
  54. package/src/components/ApprovalCard/index.vue +128 -128
  55. package/src/components/ApprovalRecord/approvalImg.vue +44 -44
  56. package/src/components/ApprovalRecord/flowDialog.vue +45 -45
  57. package/src/components/ApprovalRecord/index.vue +59 -59
  58. package/src/components/Button/button-group.vue +150 -150
  59. package/src/components/Button/icon-group-button.vue +61 -61
  60. package/src/components/Button/index.vue +56 -56
  61. package/src/components/CascaderArea/index.vue +103 -103
  62. package/src/components/ContentLoading/index.vue +41 -41
  63. package/src/components/ContentNull/index.vue +19 -19
  64. package/src/components/DatePicker/index.vue +27 -27
  65. package/src/components/DatePicker/por.vue +169 -169
  66. package/src/components/Dialog/index.vue +26 -26
  67. package/src/components/Dialog/indexO.vue +116 -116
  68. package/src/components/DragList/index.vue +75 -75
  69. package/src/components/Empty/img/abnormal.svg +108 -108
  70. package/src/components/Empty/img/dispose.svg +71 -71
  71. package/src/components/Empty/img/empty.svg +57 -57
  72. package/src/components/Empty/img/general.svg +58 -58
  73. package/src/components/Empty/img/lock.svg +57 -57
  74. package/src/components/Empty/img/network.svg +59 -59
  75. package/src/components/Empty/img/relevant.svg +68 -68
  76. package/src/components/Empty/img/search.svg +72 -72
  77. package/src/components/Empty/index.vue +92 -92
  78. package/src/components/Expandable/index.vue +49 -49
  79. package/src/components/Expandable/main.vue +52 -52
  80. package/src/components/FileExportAsync/index.vue +178 -178
  81. package/src/components/FileUploadTable/index.vue +484 -484
  82. package/src/components/Filters/index.vue +371 -371
  83. package/src/components/Filters/indexO.vue +104 -104
  84. package/src/components/FlowStep/index.vue +68 -68
  85. package/src/components/FooterBox/index.vue +21 -21
  86. package/src/components/GeneralCard/index.vue +15 -15
  87. package/src/components/InputNumber/index.vue +169 -169
  88. package/src/components/InputNumber/numberRange.vue +47 -47
  89. package/src/components/InputSearch/index.vue +75 -75
  90. package/src/components/Layout/AsideNav/index.vue +120 -119
  91. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  92. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  93. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  94. package/src/components/Layout/HeaderWrap/index.vue +371 -371
  95. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  96. package/src/components/Layout/SubContent/index.vue +127 -127
  97. package/src/components/Layout/TabsNav/index.vue +170 -170
  98. package/src/components/Layout/index.vue +518 -518
  99. package/src/components/Layout/utils.js +12 -12
  100. package/src/components/LoginTemporary/form.vue +570 -570
  101. package/src/components/LoginTemporary/index.vue +139 -139
  102. package/src/components/LoginTemporary/retrievePw.vue +372 -372
  103. package/src/components/MicroApp/index.js +67 -67
  104. package/src/components/MicroFrame/index.vue +95 -95
  105. package/src/components/MoreTab/index.vue +232 -232
  106. package/src/components/NavMenu/index.vue +60 -60
  107. package/src/components/PageLayout/page.vue +15 -15
  108. package/src/components/Pagination/index.vue +165 -165
  109. package/src/components/SecondaryTab/index.vue +58 -58
  110. package/src/components/SelectLazy/index.vue +75 -75
  111. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  112. package/src/components/SelectTree/index.vue +205 -205
  113. package/src/components/ShowColumn/index.vue +213 -213
  114. package/src/components/Sifting/index.vue +99 -99
  115. package/src/components/Statis/index.vue +97 -97
  116. package/src/components/Statis/statisItem.vue +54 -54
  117. package/src/components/Statis/statisPopover.vue +55 -55
  118. package/src/components/Step/index.vue +38 -38
  119. package/src/components/Suspend/index.vue +72 -72
  120. package/src/components/Table/index.vue +209 -209
  121. package/src/components/Table/indexO.vue +149 -149
  122. package/src/components/Task/index.vue +26 -26
  123. package/src/components/TertiaryTab/index.vue +63 -63
  124. package/src/components/TimePicker/index.vue +28 -28
  125. package/src/components/Upload/index.vue +242 -242
  126. package/src/components/WornPagination/index.vue +73 -73
  127. package/src/directives/VClickOutside/index.js +19 -19
  128. package/src/directives/VHas/index.js +58 -58
  129. package/src/directives/VMove/index.js +42 -42
  130. package/src/directives/VTitle/index.js +69 -69
  131. package/src/directives/VTitle/tooltip.vue +21 -21
  132. package/src/index.js +232 -232
  133. package/src/plugins/CompatibleOld/index.js +57 -57
  134. package/src/plugins/Print/index.js +4 -4
  135. package/src/plugins/Print/print-js/.babelrc +12 -12
  136. package/src/plugins/Print/print-js/LICENSE +21 -21
  137. package/src/plugins/Print/print-js/README.md +98 -98
  138. package/src/plugins/Print/print-js/dist/print.css +96 -96
  139. package/src/plugins/Print/print-js/dist/print.js +990 -990
  140. package/src/plugins/Print/print-js/package.json +60 -60
  141. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  142. package/src/plugins/Print/print-js/src/index.js +10 -10
  143. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  144. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  145. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  146. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  147. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  148. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  149. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  150. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  151. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  152. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  153. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  154. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  155. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  156. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  157. package/src/plugins/Print/print.js +2 -2
  158. package/src/plugins/Print/print.scss +1 -1
  159. package/src/plugins/SetMenuTree/index.vue +41 -41
  160. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  161. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  162. package/src/plugins/SetMenuTree/utils.js +74 -74
  163. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  164. package/src/plugins/Sign/index.js +65 -65
  165. package/src/plugins/Sign/sign.js +1 -1
  166. package/src/plugins/setTabsForSub.js +2 -2
  167. package/src/utils/auth.js +53 -53
  168. package/src/utils/axios.js +203 -203
  169. package/src/utils/downloadBlob.js +19 -19
  170. package/src/utils/forEachs.js +16 -16
  171. package/src/utils/getScrollContainer.js +43 -43
  172. package/src/utils/i18n/cn2hk.json +1270 -1270
  173. package/src/utils/i18n/index.js +50 -50
  174. package/src/utils/list2tree.js +36 -36
  175. package/src/utils/msgboxPor.js +26 -26
  176. package/src/utils/print.js +161 -161
  177. package/src/utils/relaNo.js +72 -72
  178. package/src/utils/repairElementUI.js +95 -66
  179. package/src/utils/urlToGo.js +82 -82
  180. package/style/css/normalize.scss +726 -0
  181. package/style/index.css +3 -3
  182. package/style/index.css.map +1 -1
  183. package/style/pageDemo/demo-1.vue +131 -0
  184. package/style/pageDemo/demo-2.vue +35 -0
  185. package/style/pageDemo/demo-3.vue +22 -0
  186. package/style/pageDemo/seeCode.js +20 -0
  187. package/style/server-config.jsonc +606 -0
  188. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +0 -185
@@ -1,185 +1,185 @@
1
- <template>
2
- <el-scrollbar id="page-scrollbar" style="height: 100%">
3
- <div ref="Anchor">
4
- <slot></slot>
5
- <ul class="n20-anchor">
6
- <li
7
- v-for="(item, index) in AnchorNavList"
8
- :key="index"
9
- :class="[
10
- 'n20-anchor-item',
11
- value === item.id ? 'n20-anchor-activit' : ''
12
- ]"
13
- @click="getAnchorItem(item.id, index)"
14
- >
15
- {{ item.title }}
16
- </li>
17
- </ul>
18
- </div>
19
- </el-scrollbar>
20
- </template>
21
-
22
- <script>
23
- import {
24
- getScrollContainer,
25
- vueDebounce
26
- } from '../../utils/getScrollContainer.js'
27
-
28
- export default {
29
- name: 'Anchor',
30
- props: {
31
- scrollDom: {
32
- type: String,
33
- default: ''
34
- },
35
- // 默认选中tab按钮
36
- value: {
37
- type: String,
38
- default: ''
39
- }
40
- },
41
- data() {
42
- return {
43
- AnchorNavList: [], // 按钮数据
44
- AnchorNavMap: {}, // 楼层高度的映射
45
- scrollDisabled: false, //禁止滚动函数执行
46
- valueType: 1, //当前楼层改变的类型,1是组件传递、按钮直达改变,2是通过滚动监听自动改变
47
- scrollFunDebounceFun: vueDebounce('scrollFun', 100)
48
- }
49
- },
50
- computed: {
51
- scrollWrap() {
52
- if (this.scrollDom) {
53
- return document.querySelector(this.scrollDom)
54
- } else {
55
- return getScrollContainer(this.$refs.Anchor, true)
56
- }
57
- }
58
- },
59
- watch: {
60
- // 监听楼层变化,当为父组件传递,或者按钮直达时,手动滚动到当前楼层
61
- value: function (val) {
62
- this.valueType === 1 && this.scrollDomFun(this.AnchorNavMap[val])
63
- }
64
- },
65
- async mounted() {
66
- await this.init()
67
- // 如果传了当前楼层,直接到达对应的高度
68
- if (this.value) {
69
- this.scrollWrap.scrollTop = this.AnchorNavMap[this.value]
70
- } else {
71
- //没有传楼层,则根据当前高度自动获取
72
- this.getAnchorValue(this.scrollWrap.scrollTop)
73
- }
74
- this.scrollWrap.addEventListener('scroll', this.scrollFunDebounce)
75
- },
76
- beforeDestroy() {
77
- this.scrollWrap.removeEventListener('scroll', this.scrollFunDebounce)
78
- },
79
- methods: {
80
- // 初始化,获取电梯按钮数据,获取楼层高度映射
81
- init() {
82
- let parentTop =
83
- this.$refs.Anchor.getBoundingClientRect().top -
84
- this.scrollWrap.getBoundingClientRect().top
85
- let list = this.$children[0].$children.map((item) => {
86
- let rect = item.$el.getBoundingClientRect()
87
- let itemScrollTop = item.$el.offsetTop
88
- this.AnchorNavMap[item.id] = itemScrollTop
89
- return {
90
- scrollTop: itemScrollTop,
91
- top: rect.top - parentTop,
92
- bottom: rect.bottom - parentTop,
93
- height: rect.height,
94
- title: item.title,
95
- id: item.id
96
- }
97
- })
98
- // 去掉多余的节点
99
- this.AnchorNavList = list.filter(
100
- (val) => val.id !== undefined && val.title !== undefined
101
- )
102
- },
103
- //滚动的函数
104
- scrollFun(e) {
105
- this.getAnchorValue(e.target.scrollTop)
106
- },
107
- scrollFunDebounce(e) {
108
- !this.scrollDisabled && this.scrollFunDebounceFun(e)
109
- },
110
- // 根据当前高度获取楼层位置
111
- getAnchorValue(scrollTop) {
112
- let arr = []
113
- for (let i = 0; i < this.AnchorNavList.length; i++) {
114
- let item = this.AnchorNavList[i]
115
- let height = this.scrollWrap.getBoundingClientRect().height + scrollTop
116
- let value = 0
117
- if (scrollTop <= item.top) {
118
- value = height - item.top
119
- if (value > item.height) {
120
- value = item.height
121
- } else if (value < 0) {
122
- value = 0
123
- }
124
- } else if (scrollTop > item.top && scrollTop <= item.bottom) {
125
- value = item.bottom - scrollTop
126
- }
127
- value = value / item.height
128
- arr.push(value)
129
- }
130
- let max = Math.max(...arr)
131
- for (let i = 0; i < arr.length; i++) {
132
- if (arr[i] === max) {
133
- this.valueType = 2
134
- this.$emit('input', this.AnchorNavList[i].id)
135
- break
136
- }
137
- }
138
- },
139
- getAnchorItem(id, i) {
140
- //直达楼层
141
- if (id === this.value || this.scrollDisabled) {
142
- return
143
- }
144
- this.$children[0].$children[i].show = true
145
- this.valueType = 1
146
- this.$emit('input', id)
147
- },
148
- // 模拟滚动
149
- scrollDomFun(itemScrollTop) {
150
- this.scrollDisabled = true //模拟滚动过程中,禁用直达楼层和监听的滚动事件
151
- let speed = 50
152
- let scrollTop = this.scrollWrap.scrollTop
153
- if (itemScrollTop > scrollTop) {
154
- // 向下滚动
155
- let timer = setInterval(() => {
156
- scrollTop += speed
157
- if (scrollTop < itemScrollTop) {
158
- this.scrollWrap.scrollTop = scrollTop
159
- } else {
160
- this.scrollWrap.scrollTop = itemScrollTop
161
- clearInterval(timer)
162
- setTimeout(() => {
163
- this.scrollDisabled = false
164
- }, 100)
165
- }
166
- }, 20)
167
- } else {
168
- // 向上滚动
169
- let timer = setInterval(() => {
170
- scrollTop -= speed
171
- if (scrollTop >= itemScrollTop) {
172
- this.scrollWrap.scrollTop = scrollTop
173
- } else {
174
- this.scrollWrap.scrollTop = itemScrollTop
175
- clearInterval(timer)
176
- setTimeout(() => {
177
- this.scrollDisabled = false
178
- }, 100)
179
- }
180
- }, 20)
181
- }
182
- }
183
- }
184
- }
185
- </script>
1
+ <template>
2
+ <el-scrollbar id="page-scrollbar" style="height: 100%">
3
+ <div ref="Anchor">
4
+ <slot></slot>
5
+ <ul class="n20-anchor">
6
+ <li
7
+ v-for="(item, index) in AnchorNavList"
8
+ :key="index"
9
+ :class="[
10
+ 'n20-anchor-item',
11
+ value === item.id ? 'n20-anchor-activit' : ''
12
+ ]"
13
+ @click="getAnchorItem(item.id, index)"
14
+ >
15
+ {{ item.title }}
16
+ </li>
17
+ </ul>
18
+ </div>
19
+ </el-scrollbar>
20
+ </template>
21
+
22
+ <script>
23
+ import {
24
+ getScrollContainer,
25
+ vueDebounce
26
+ } from '../../utils/getScrollContainer.js'
27
+
28
+ export default {
29
+ name: 'Anchor',
30
+ props: {
31
+ scrollDom: {
32
+ type: String,
33
+ default: ''
34
+ },
35
+ // 默认选中tab按钮
36
+ value: {
37
+ type: String,
38
+ default: ''
39
+ }
40
+ },
41
+ data() {
42
+ return {
43
+ AnchorNavList: [], // 按钮数据
44
+ AnchorNavMap: {}, // 楼层高度的映射
45
+ scrollDisabled: false, //禁止滚动函数执行
46
+ valueType: 1, //当前楼层改变的类型,1是组件传递、按钮直达改变,2是通过滚动监听自动改变
47
+ scrollFunDebounceFun: vueDebounce('scrollFun', 100)
48
+ }
49
+ },
50
+ computed: {
51
+ scrollWrap() {
52
+ if (this.scrollDom) {
53
+ return document.querySelector(this.scrollDom)
54
+ } else {
55
+ return getScrollContainer(this.$refs.Anchor, true)
56
+ }
57
+ }
58
+ },
59
+ watch: {
60
+ // 监听楼层变化,当为父组件传递,或者按钮直达时,手动滚动到当前楼层
61
+ value: function (val) {
62
+ this.valueType === 1 && this.scrollDomFun(this.AnchorNavMap[val])
63
+ }
64
+ },
65
+ async mounted() {
66
+ await this.init()
67
+ // 如果传了当前楼层,直接到达对应的高度
68
+ if (this.value) {
69
+ this.scrollWrap.scrollTop = this.AnchorNavMap[this.value]
70
+ } else {
71
+ //没有传楼层,则根据当前高度自动获取
72
+ this.getAnchorValue(this.scrollWrap.scrollTop)
73
+ }
74
+ this.scrollWrap.addEventListener('scroll', this.scrollFunDebounce)
75
+ },
76
+ beforeDestroy() {
77
+ this.scrollWrap.removeEventListener('scroll', this.scrollFunDebounce)
78
+ },
79
+ methods: {
80
+ // 初始化,获取电梯按钮数据,获取楼层高度映射
81
+ init() {
82
+ let parentTop =
83
+ this.$refs.Anchor.getBoundingClientRect().top -
84
+ this.scrollWrap.getBoundingClientRect().top
85
+ let list = this.$children[0].$children.map((item) => {
86
+ let rect = item.$el.getBoundingClientRect()
87
+ let itemScrollTop = item.$el.offsetTop
88
+ this.AnchorNavMap[item.id] = itemScrollTop
89
+ return {
90
+ scrollTop: itemScrollTop,
91
+ top: rect.top - parentTop,
92
+ bottom: rect.bottom - parentTop,
93
+ height: rect.height,
94
+ title: item.title,
95
+ id: item.id
96
+ }
97
+ })
98
+ // 去掉多余的节点
99
+ this.AnchorNavList = list.filter(
100
+ (val) => val.id !== undefined && val.title !== undefined
101
+ )
102
+ },
103
+ //滚动的函数
104
+ scrollFun(e) {
105
+ this.getAnchorValue(e.target.scrollTop)
106
+ },
107
+ scrollFunDebounce(e) {
108
+ !this.scrollDisabled && this.scrollFunDebounceFun(e)
109
+ },
110
+ // 根据当前高度获取楼层位置
111
+ getAnchorValue(scrollTop) {
112
+ let arr = []
113
+ for (let i = 0; i < this.AnchorNavList.length; i++) {
114
+ let item = this.AnchorNavList[i]
115
+ let height = this.scrollWrap.getBoundingClientRect().height + scrollTop
116
+ let value = 0
117
+ if (scrollTop <= item.top) {
118
+ value = height - item.top
119
+ if (value > item.height) {
120
+ value = item.height
121
+ } else if (value < 0) {
122
+ value = 0
123
+ }
124
+ } else if (scrollTop > item.top && scrollTop <= item.bottom) {
125
+ value = item.bottom - scrollTop
126
+ }
127
+ value = value / item.height
128
+ arr.push(value)
129
+ }
130
+ let max = Math.max(...arr)
131
+ for (let i = 0; i < arr.length; i++) {
132
+ if (arr[i] === max) {
133
+ this.valueType = 2
134
+ this.$emit('input', this.AnchorNavList[i].id)
135
+ break
136
+ }
137
+ }
138
+ },
139
+ getAnchorItem(id, i) {
140
+ //直达楼层
141
+ if (id === this.value || this.scrollDisabled) {
142
+ return
143
+ }
144
+ this.$children[0].$children[i].show = true
145
+ this.valueType = 1
146
+ this.$emit('input', id)
147
+ },
148
+ // 模拟滚动
149
+ scrollDomFun(itemScrollTop) {
150
+ this.scrollDisabled = true //模拟滚动过程中,禁用直达楼层和监听的滚动事件
151
+ let speed = 50
152
+ let scrollTop = this.scrollWrap.scrollTop
153
+ if (itemScrollTop > scrollTop) {
154
+ // 向下滚动
155
+ let timer = setInterval(() => {
156
+ scrollTop += speed
157
+ if (scrollTop < itemScrollTop) {
158
+ this.scrollWrap.scrollTop = scrollTop
159
+ } else {
160
+ this.scrollWrap.scrollTop = itemScrollTop
161
+ clearInterval(timer)
162
+ setTimeout(() => {
163
+ this.scrollDisabled = false
164
+ }, 100)
165
+ }
166
+ }, 20)
167
+ } else {
168
+ // 向上滚动
169
+ let timer = setInterval(() => {
170
+ scrollTop -= speed
171
+ if (scrollTop >= itemScrollTop) {
172
+ this.scrollWrap.scrollTop = scrollTop
173
+ } else {
174
+ this.scrollWrap.scrollTop = itemScrollTop
175
+ clearInterval(timer)
176
+ setTimeout(() => {
177
+ this.scrollDisabled = false
178
+ }, 100)
179
+ }
180
+ }, 20)
181
+ }
182
+ }
183
+ }
184
+ }
185
+ </script>