n20-common-lib 1.2.8 → 1.2.9

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 (189) hide show
  1. package/README.md +2 -2
  2. package/package.json +87 -87
  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 +454 -454
  18. package/src/assets/css/cl-general-card.scss +11 -11
  19. package/src/assets/css/cl-layout-aside.scss +88 -88
  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 +65 -65
  29. package/src/assets/css/cl-secondary-tab.scss +39 -39
  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 +9 -9
  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/.DS_Store +0 -0
  52. package/src/components/Anchor/AnchorItem.vue +29 -29
  53. package/src/components/Anchor/index.vue +185 -185
  54. package/src/components/ApprovalButtons/index.vue +232 -232
  55. package/src/components/ApprovalCard/index.vue +128 -128
  56. package/src/components/ApprovalRecord/approvalImg.vue +39 -39
  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 +81 -81
  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 +68 -68
  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 +174 -174
  81. package/src/components/FileUploadTable/index.vue +484 -484
  82. package/src/components/Filters/index.vue +369 -369
  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 +153 -153
  88. package/src/components/InputNumber/numberRange.vue +47 -47
  89. package/src/components/InputSearch/index.vue +75 -75
  90. package/src/components/Layout/.DS_Store +0 -0
  91. package/src/components/Layout/AsideNav/index.vue +119 -119
  92. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  93. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  94. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  95. package/src/components/Layout/HeaderWrap/index.vue +348 -348
  96. package/src/components/Layout/HeaderWrap/noticePop.vue +300 -300
  97. package/src/components/Layout/SubContent/index.vue +131 -131
  98. package/src/components/Layout/TabsNav/index.vue +170 -170
  99. package/src/components/Layout/index.vue +529 -529
  100. package/src/components/Layout/utils.js +12 -12
  101. package/src/components/LoginTemporary/form.vue +537 -537
  102. package/src/components/LoginTemporary/index.vue +122 -122
  103. package/src/components/LoginTemporary/qrcode.vue +90 -90
  104. package/src/components/LoginTemporary/retrievePw.vue +28 -28
  105. package/src/components/LoginTemporary/utils.js +73 -73
  106. package/src/components/MicroApp/index.js +67 -67
  107. package/src/components/MicroFrame/index.vue +95 -95
  108. package/src/components/MoreTab/index.vue +232 -232
  109. package/src/components/NavMenu/index.vue +60 -60
  110. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +184 -184
  111. package/src/components/PageLayout/page.vue +15 -15
  112. package/src/components/Pagination/index.vue +96 -96
  113. package/src/components/SecondaryTab/index.vue +58 -58
  114. package/src/components/SelectLazy/index.vue +75 -75
  115. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  116. package/src/components/SelectTree/index.vue +205 -205
  117. package/src/components/ShowColumn/index.vue +204 -204
  118. package/src/components/Sifting/index.vue +99 -99
  119. package/src/components/Statis/index.vue +97 -97
  120. package/src/components/Statis/statisItem.vue +54 -54
  121. package/src/components/Statis/statisPopover.vue +55 -55
  122. package/src/components/Step/index.vue +38 -38
  123. package/src/components/Suspend/index.vue +72 -72
  124. package/src/components/Table/index.vue +179 -179
  125. package/src/components/Table/indexO.vue +149 -149
  126. package/src/components/Task/index.vue +26 -26
  127. package/src/components/TertiaryTab/index.vue +53 -53
  128. package/src/components/TimePicker/index.vue +28 -28
  129. package/src/components/Upload/index.vue +242 -242
  130. package/src/components/WornPagination/index.vue +73 -73
  131. package/src/directives/VClickOutside/index.js +19 -19
  132. package/src/directives/VHas/index.js +32 -32
  133. package/src/directives/VMove/index.js +42 -42
  134. package/src/directives/VTitle/index.js +64 -64
  135. package/src/directives/VTitle/tooltip.vue +21 -21
  136. package/src/index.js +225 -225
  137. package/src/plugins/CompatibleOld/index.js +57 -57
  138. package/src/plugins/Print/index.js +4 -4
  139. package/src/plugins/Print/print-js/.babelrc +12 -12
  140. package/src/plugins/Print/print-js/LICENSE +21 -21
  141. package/src/plugins/Print/print-js/README.md +98 -98
  142. package/src/plugins/Print/print-js/dist/print.css +96 -96
  143. package/src/plugins/Print/print-js/dist/print.js +990 -990
  144. package/src/plugins/Print/print-js/package.json +60 -60
  145. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  146. package/src/plugins/Print/print-js/src/index.js +10 -10
  147. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  148. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  149. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  150. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  151. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  152. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  153. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  154. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  155. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  156. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  157. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  158. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  159. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  160. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  161. package/src/plugins/Print/print.js +2 -2
  162. package/src/plugins/Print/print.scss +1 -1
  163. package/src/plugins/SetMenuTree/index.vue +41 -41
  164. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  165. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  166. package/src/plugins/SetMenuTree/utils.js +74 -74
  167. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  168. package/src/plugins/Sign/index.js +65 -65
  169. package/src/plugins/Sign/sign.js +1 -1
  170. package/src/plugins/setTabsForSub.js +2 -2
  171. package/src/utils/auth.js +53 -53
  172. package/src/utils/axios.js +203 -203
  173. package/src/utils/downloadBlob.js +19 -19
  174. package/src/utils/forEachs.js +16 -16
  175. package/src/utils/getScrollContainer.js +43 -43
  176. package/src/utils/i18n/cn2hk.json +1270 -1270
  177. package/src/utils/i18n/index.js +54 -54
  178. package/src/utils/list2tree.js +36 -36
  179. package/src/utils/msgboxPor.js +26 -26
  180. package/src/utils/print.js +161 -161
  181. package/src/utils/relaNo.js +69 -69
  182. package/src/utils/repairElementUI.js +66 -66
  183. package/src/utils/urlToGo.js +82 -82
  184. package/style/css/normalize.scss +723 -726
  185. package/style/pageDemo/demo-1.vue +130 -131
  186. package/style/pageDemo/demo-2.vue +35 -35
  187. package/style/pageDemo/demo-3.vue +22 -22
  188. package/style/pageDemo/seeCode.js +20 -20
  189. package/style/server-config.jsonc +663 -596
@@ -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>