张延森 2 лет назад
Родитель
Сommit
8e3ef9dbc5
2 измененных файлов: 61 добавлений и 2 удалений
  1. 53
    2
      src/pages/index.vue
  2. 8
    0
      src/vant.js

+ 53
- 2
src/pages/index.vue Просмотреть файл

@@ -1,3 +1,54 @@
1 1
 <template>
2
-  
3
-</template>
2
+  <div>
3
+    <van-search
4
+      v-model="value"
5
+      show-action
6
+      placeholder="请输入单位名称"
7
+      @search="onSearch"
8
+    >
9
+      <template #action>
10
+        <div @click="onSearch">搜索</div>
11
+      </template>
12
+    </van-search>
13
+    <van-list
14
+      v-model:loading="loading"
15
+      :finished="finished"
16
+      finished-text="没有更多了"
17
+      @load="onLoad"
18
+    >
19
+      <van-cell v-for="item in list" :key="item" :title="item" />
20
+    </van-list>
21
+  </div>
22
+</template>
23
+
24
+<script setup>
25
+import { ref } from 'vue';
26
+
27
+const value = ref()
28
+const list = ref([]);
29
+const loading = ref(false);
30
+const finished = ref(false);
31
+
32
+const onLoad = () => {
33
+  // 异步更新数据
34
+  // setTimeout 仅做示例,真实场景中一般为 ajax 请求
35
+  setTimeout(() => {
36
+    for (let i = 0; i < 10; i++) {
37
+      list.value.push(list.value.length + 1);
38
+    }
39
+
40
+    // 加载状态结束
41
+    loading.value = false;
42
+
43
+    // 数据全部加载完成
44
+    if (list.value.length >= 40) {
45
+      finished.value = true;
46
+    }
47
+  }, 1000);
48
+};
49
+
50
+const onSearch = (val) => {
51
+  const text = val || value.value
52
+}
53
+
54
+</script>

+ 8
- 0
src/vant.js Просмотреть файл

@@ -1,10 +1,14 @@
1 1
 // Toast
2 2
 import {
3 3
   Button,
4
+  Cell,
5
+  CellGroup,
4 6
   Dialog,
5 7
   Loading,
8
+  List,
6 9
   Notify,
7 10
   ImagePreview,
11
+  Search,
8 12
   Toast,
9 13
 } from 'vant';
10 14
 
@@ -15,9 +19,13 @@ import 'vant/es/image-preview/style';
15 19
 
16 20
 export default function vant(app) {
17 21
   app.use(Button);
22
+  app.use(Cell);
23
+  app.use(CellGroup);
18 24
   app.use(Dialog);
19 25
   app.use(Loading);
26
+  app.use(List);
20 27
   app.use(Notify);
21 28
   app.use(ImagePreview);
29
+  app.use(Search);
22 30
   app.use(Toast);
23 31
 }