Skip to content

Commit e472f19

Browse files
fix: 修复 imagepreview 动态设置 initNo 显示不正确问题 #1849 && InfiniteLoading 某些情况下会错误触发下拉刷新#1819 (#1853)
1 parent 0f6c98a commit e472f19

File tree

3 files changed

+32
-3
lines changed

3 files changed

+32
-3
lines changed

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

+10-1
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ export default create({
169169
state.showPop = false;
170170
state.store.scale = 1;
171171
scaleNow();
172-
state.active = 1;
172+
// state.active = 1;
173173
emit('close');
174174
};
175175
@@ -290,6 +290,15 @@ export default create({
290290
}
291291
);
292292
293+
watch(
294+
() => props.initNo,
295+
(val) => {
296+
if (val != state.active) {
297+
state.active = val;
298+
}
299+
}
300+
);
301+
293302
const initPage = computed(() => {
294303
const maxNo = props.images.length;
295304
const _initPage = props.initNo > maxNo ? maxNo - 1 : props.initNo - 1;

src/packages/__VUE/imagepreview/index.vue

+10-1
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ export default create({
191191
// 执行关闭
192192
const closeDone = () => {
193193
state.showPop = false;
194-
state.active = 1;
194+
// state.active = 1;
195195
emit('close');
196196
};
197197
@@ -215,6 +215,15 @@ export default create({
215215
}
216216
);
217217
218+
watch(
219+
() => props.initNo,
220+
(val) => {
221+
if (val != state.active) {
222+
state.active = val;
223+
}
224+
}
225+
);
226+
218227
const initPage = computed(() => {
219228
const maxNo = props.images.length + props.videos.length;
220229
const _initPage = props.initNo > maxNo ? maxNo - 1 : props.initNo - 1;

src/packages/__VUE/infiniteloading/index.vue

+12-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ import {
4242
} from 'vue';
4343
import { createComponent } from '@/packages/utils/create';
4444
const { componentName, create, translate } = createComponent('infiniteloading');
45+
import { useTouch } from '@/packages/utils/useTouch';
46+
4547
export default create({
4648
props: {
4749
hasMore: {
@@ -92,6 +94,7 @@ export default create({
9294
emits: ['scroll-change', 'load-more', 'refresh'],
9395
9496
setup(props, { emit, slots }) {
97+
const touch: any = useTouch();
9598
const state = reactive({
9699
scrollEl: window as Window | HTMLElement | (Node & ParentNode),
97100
scroller: null as null | HTMLElement,
@@ -198,6 +201,8 @@ export default create({
198201
};
199202
200203
const touchStart = (event: TouchEvent) => {
204+
touch.start(event);
205+
201206
if (state.beforeScrollTop == 0 && !state.isTouching && props.isOpenRefresh) {
202207
state.y = event.touches[0].pageY;
203208
state.isTouching = true;
@@ -208,9 +213,11 @@ export default create({
208213
};
209214
210215
const touchMove = (event: TouchEvent) => {
216+
touch.move(event);
217+
211218
state.distance = event.touches[0].pageY - state.y;
212219
213-
if (state.distance > 0 && state.isTouching) {
220+
if ((touch as any).isVertical() && state.distance > 0 && state.isTouching) {
214221
event.preventDefault();
215222
if (state.distance >= state.refreshMaxH) state.distance = state.refreshMaxH;
216223
} else {
@@ -227,6 +234,10 @@ export default create({
227234
emit('refresh', refreshDone);
228235
}
229236
}
237+
238+
setTimeout(() => {
239+
touch.reset();
240+
}, 0);
230241
};
231242
232243
// 滚动监听对象

0 commit comments

Comments
 (0)