Skip to content

Commit 162645b

Browse files
committed
Merge branch 'next' of https://github.com/jdf2e/nutui into next
2 parents c40ff52 + 39d2ddd commit 162645b

File tree

6 files changed

+43
-11
lines changed

6 files changed

+43
-11
lines changed

src/packages/__VUE/noticebar/__tests__/noticebar.spec.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ test('close event', async () => {
4545
expect(content.html()).toContain('123');
4646
});
4747

48+
test('across-end event', async () => {
49+
const wrapper = mount(NoticeBar, {
50+
props: {
51+
text: 'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。'
52+
}
53+
});
54+
wrapper.vm.onAnimationEnd();
55+
expect(wrapper.emitted('across-end')).toBeTruthy();
56+
});
57+
4858
test('slot event', async () => {
4959
const wrapper = mount(NoticeBar, {
5060
slots: {

src/packages/__VUE/noticebar/demo.vue

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,19 @@
6868
</template>
6969
</nut-noticebar>
7070
</div>
71+
72+
<h2>{{ translate('scrollEvent') }}</h2>
73+
<div class="interstroll-list">
74+
<nut-noticebar
75+
:text="`${translate('text')} - ${translate('scrollCount')}:[${acrossCount}]`"
76+
@across-end="onAcrossEnd"
77+
/>
78+
</div>
7179
</div>
7280
</template>
7381

7482
<script lang="ts">
75-
import { onMounted, reactive, toRefs } from 'vue';
83+
import { reactive, toRefs } from 'vue';
7684
import { createComponent } from '@/packages/utils/create';
7785
const { createDemo, translate } = createComponent('noticebar');
7886
import { useTranslate } from '@/sites/assets/util/useTranslate';
@@ -91,7 +99,9 @@ const initTranslate = () =>
9199
text: 'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。',
92100
textShort: 'NutUI 是移动端组件库',
93101
horseLamp: ['NoticeBar 公告栏', 'Cascader 级联选择', 'DatePicker 日期选择器', 'CheckBox 复选按钮'],
94-
jd: '京东商城'
102+
jd: '京东商城',
103+
scrollCount: '滚动次数',
104+
scrollEvent: '横向 - 滚动结束事件'
95105
},
96106
'en-US': {
97107
basic: 'Basic Usage',
@@ -105,7 +115,9 @@ const initTranslate = () =>
105115
text: 'Nutui is a Jingdong style mobile terminal component library. It uses Vue language to write applications that can be used on H5 and applet platforms to help R & D personnel improve development efficiency and development experience.',
106116
textShort: 'Nutui is a mobile terminal component library.',
107117
horseLamp: ['NoticeBar', 'Cascader', 'DatePicker', 'CheckBox'],
108-
jd: 'Jingdong'
118+
jd: 'Jingdong',
119+
scrollCount: 'scroll count',
120+
scrollEvent: 'across - scrolling end event'
109121
}
110122
});
111123
@@ -117,7 +129,8 @@ export default createDemo({
117129
horseLamp1: translate('horseLamp'),
118130
horseLamp2: translate('horseLamp'),
119131
horseLamp3: translate('horseLamp'),
120-
text: translate('text')
132+
text: translate('text'),
133+
acrossCount: 0
121134
});
122135
123136
const hello = () => {
@@ -127,10 +140,16 @@ export default createDemo({
127140
console.log(item);
128141
};
129142
143+
const onAcrossEnd = () => {
144+
state.acrossCount++;
145+
console.log('动画结束');
146+
};
147+
130148
return {
131149
...toRefs(state),
132150
hello,
133151
go,
152+
onAcrossEnd,
134153
translate
135154
};
136155
}
@@ -147,6 +166,7 @@ export default createDemo({
147166
color: $dark-color;
148167
}
149168
}
169+
150170
.demo {
151171
padding-bottom: 30px !important;
152172

src/packages/__VUE/noticebar/doc.en-US.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,3 +254,4 @@ When text is long, you can enable multi-line display by setting the wrapable pro
254254
| ---------- | --------------------------------------- | ------------ |
255255
| click | Emitted when NoticeBar is clicked | event: Event |
256256
| close | Emitted when NoticeBar is closed | event: Event |
257+
| across-end | Emitted when across scrolling ends | event: Event |

src/packages/__VUE/noticebar/doc.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,4 +254,5 @@ app.use(NoticeBar);
254254
| 字段 | 说明 | 回调参数 |
255255
| ----- | ---------------- | ------------ |
256256
| click | 外层点击事件回调 | event: Event |
257-
| close | 关闭通知栏时触发 | event: Event |
257+
| close | 关闭通知栏时触发 | event: Event |
258+
| across-end | 横向滚动结束时触发 | event: Event |

src/packages/__VUE/noticebar/index.taro.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ export default create({
152152
return h(props.item);
153153
}
154154
},
155-
emits: ['click', 'close'],
155+
emits: ['click', 'close', 'across-end'],
156156
157157
setup(props, { emit, slots }) {
158158
// console.log('componentName', componentName);
@@ -308,9 +308,9 @@ export default create({
308308
emit('close', event);
309309
};
310310
311-
const onAnimationEnd = () => {
311+
const onAnimationEnd = (event: Event) => {
312312
state.firstRound = false;
313-
313+
emit('across-end', event);
314314
setTimeout(() => {
315315
state.duration = (state.offsetWidth + state.wrapWidth) / props.speed;
316316
state.animationClass = 'play-infinite';

src/packages/__VUE/noticebar/index.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ export default create({
163163
return h(props.item);
164164
}
165165
},
166-
emits: ['click', 'close'],
166+
emits: ['click', 'close', 'across-end'],
167167
168168
setup(props, { emit, slots }) {
169169
// console.log('componentName', componentName);
@@ -306,9 +306,9 @@ export default create({
306306
emit('close', event);
307307
};
308308
309-
const onAnimationEnd = () => {
309+
const onAnimationEnd = (event: Event) => {
310310
state.firstRound = false;
311-
311+
emit('across-end', event);
312312
setTimeout(() => {
313313
state.duration = (state.offsetWidth + state.wrapWidth) / props.speed;
314314
state.animationClass = 'play-infinite';

0 commit comments

Comments
 (0)