fix: issues

This commit is contained in:
Rogee
2024-12-11 16:33:37 +08:00
parent c87bca1acd
commit 5adfe396de
3 changed files with 16 additions and 105 deletions

BIN
backend/__debug_bin3572908368 Normal file → Executable file

Binary file not shown.

View File

@@ -1,95 +1,3 @@
<template> <template>
<van-search v-model="search" placeholder="请输入搜索关键词" /> <h1>Bought</h1>
</template>
<van-back-top bottom="80" />
<van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" offset="100" @load="loadData">
<van-card v-for="item in items" :key="item" :desc="item.title" :thumb="item.poster" @click="play(item)">
<template #title>
<span>{{ item.title }}</span>
</template>
<template #price>
<template v-if="item.discount == 100"> 价格{{ item.price }} </template>
<template v-else>
<del>{{ item.price }}</del>
<span>{{ (item.price * item.discount) / 100 }}</span>
</template>
</template>
<template #tags>
<van-space>
<van-tag v-for="resource in item.resources" plain type="primary">
<template v-if="resource == 'video'">视频</template>
<template v-if="resource == 'audio'">音频</template>
</van-tag>
</van-space>
</template>
</van-card>
</van-list>
</template>
<script setup>
import { ref } from "vue";
import { useRouter } from "vue-router";
import request from "@/utils/request";
const router = useRouter();
const search = ref("");
const items = ref([]);
const loading = ref(false);
const finished = ref(false);
const pageLimit = ref(10);
const offset = ref("");
const play = (item) => {
// vue router goto play view
console.log("play -", item);
router.push({ name: "play", params: { id: item } });
};
const loadData = () => {
// request /v1/medias
const data = {
offset: offset.value,
limit: pageLimit.value,
action: 0,
bought: true,
};
console.log("loadData, data: ", data);
loading.value = true;
request
.post("/medias", data)
.then((res) => {
loading.value = false;
console.log("response: ", res);
if (offset.value == "") {
items.value = res.data;
} else {
items.value = items.value.concat(res.data);
}
if (res.data.length < pageLimit.value) {
console.log("finished");
finished.value = true;
loading.value = false;
}
offset.value = res.data[res.data.length - 1].hash;
})
.catch((err) => {
console.error(err);
})
.finally(() => {
// finished.value = true;
});
};
onMounted(() => {
// loadData();
});
</script>

View File

@@ -48,14 +48,16 @@ const pageLimit = ref(10);
const offset = ref(""); const offset = ref("");
const onLoad = () => { };
const play = (item) => { const play = (item) => {
// vue router goto play view // vue router goto play view
console.log("play -", item); console.log("play -", item);
router.push({ name: "play", params: { id: item } }); router.push({ name: "play", params: { id: item } });
}; };
setInterval(() => {
console.log("loading finished: ", loading.value, finished.value);
}, 1000);
const loadData = () => { const loadData = () => {
// request /v1/medias // request /v1/medias
const data = { const data = {
@@ -65,37 +67,38 @@ const loadData = () => {
}; };
console.log("loadData, data: ", data); console.log("loadData, data: ", data);
loading.value = false;
request request
.post("/medias", data) .post("/medias", data)
.then((res) => { .then((res) => {
loading.value = false;
console.log("response: ", res); console.log("response: ", res);
if (res === undefined) {
console.error("response error with undefined");
return;
}
if (offset.value == "") { if (offset.value == "") {
items.value = res.data; items.value = res.data;
} else { } else {
items.value = items.value.concat(res.data); items.value = items.value.concat(res.data);
} }
offset.value = res.data[res.data.length - 1].hash; offset.value = res.data[res.data.length - 1].hash;
console.log("offset: ", offset.value);
if (res.data.length < pageLimit.value) { if (res.data.length < pageLimit.value) {
console.log("finished"); console.log("finished");
finished.value = true; finished.value = true;
loading.value = false;
} }
}) })
.catch((err) => { .catch((err) => {
console.error(err); console.error("ERROR", err);
}) })
.finally(() => { .finally(() => {
// loading.value = true; loading.value = false;
// finished.value = true; console.log("finally: ", loading.value, finished.value);
}); });
}; };
onMounted(() => { onMounted(() => {
// loadData(); loadData();
}); });
</script> </script>