@@ -30,6 +30,7 @@ const dataLastIndex = ref('');
30
30
const dialog = ref (false );
31
31
const scrollPosition = ref (0 );
32
32
const searchQuery = ref (' ' ); // 新增搜尋用的變數
33
+ const loadDataCount = ref (30 );
33
34
const containerWidth = computed (() => {
34
35
if (width .value < 750 ) return ` 340px ` ;
35
36
if (width .value < 1280 ) return ` ${340 * 2 }px ` ;
@@ -147,9 +148,11 @@ const loadActors = async () => {
147
148
const { data : value } = await getActors ({
148
149
lastIndex: get (dataLastIndex ),
149
150
search: searchQuery .value ,
151
+ count: loadDataCount .value ,
150
152
});
153
+
151
154
// !這裡加上判斷式,是由於 onSearch 及 onLoad 會同時呼叫 loadActors
152
- // 由於 onSearch 清除 data,當 data 變動時 ,onLoad 也會被觸發
155
+ // 由於 onSearch 清除 data,當 data 清空,而觸發 scrollbar 變動 ,onLoad 也會被觸發
153
156
if (value .list ) {
154
157
// 使用 Set 來跟蹤已存在的 id
155
158
const existingIds = new Set (data .value .map ((item : Actor ) => item .id ));
@@ -161,17 +164,17 @@ const loadActors = async () => {
161
164
data .value .push (... filteredList );
162
165
set (dataLastIndex , value .lastIndex );
163
166
}
164
- return value ;
167
+ return Object . assign ({}, value , { next: value . list . length === loadDataCount . value }) ;
165
168
} catch (err ) {
166
169
console .error (err );
167
- return { list: null };
170
+ return { list: null , next: false };
168
171
}
169
172
};
170
173
171
174
const onLoad = async ({ done }: { done: Function }) => {
172
175
try {
173
176
const value = await loadActors ();
174
- if (value .list ) {
177
+ if (value .next ) {
175
178
done (' ok' );
176
179
} else {
177
180
done (' empty' );
0 commit comments