diff --git a/frontend/src/views/Prices.vue b/frontend/src/views/Prices.vue
index 38b7ba3..4fc7671 100644
--- a/frontend/src/views/Prices.vue
+++ b/frontend/src/views/Prices.vue
@@ -62,6 +62,19 @@
+
+
@@ -202,7 +215,7 @@
-
@@ -210,7 +223,7 @@
-
@@ -464,6 +477,7 @@ const form = ref({
const router = useRouter()
const selectedProvider = ref('')
const selectedModelType = ref('')
+const selectedStatus = ref('')
const searchQuery = ref('')
const isAdmin = computed(() => props.user?.role === 'admin')
@@ -529,6 +543,10 @@ const loadPrices = async () => {
if (selectedModelType.value) {
params.model_type = selectedModelType.value
}
+ // 添加状态筛选参数
+ if (selectedStatus.value) {
+ params.status = selectedStatus.value
+ }
// 添加搜索参数
if (searchQuery.value) {
params.search = searchQuery.value
@@ -545,7 +563,7 @@ const loadPrices = async () => {
providers.value = providersRes.data
// 缓存数据
- const cacheKey = `${currentPage.value}-${pageSize.value}-${selectedProvider.value}-${selectedModelType.value}-${searchQuery.value}`
+ const cacheKey = `${currentPage.value}-${pageSize.value}-${selectedProvider.value}-${selectedModelType.value}-${selectedStatus.value}-${searchQuery.value}`
cachedPrices.value.set(cacheKey, {
prices: pricesRes.data.data,
total: pricesRes.data.total
@@ -991,7 +1009,7 @@ const handleCurrentChange = (val) => {
loadPrices()
}
-// 当选择厂商时重新加载数据
+// 监听厂商选择变化
watch(selectedProvider, () => {
currentPage.value = 1 // 重置到第一页
loadPrices()
@@ -1003,6 +1021,12 @@ watch(selectedModelType, () => {
loadPrices()
})
+// 监听状态选择变化
+watch(selectedStatus, () => {
+ currentPage.value = 1 // 重置到第一页
+ loadPrices()
+})
+
// 监听搜索查询变化
watch(searchQuery, () => {
// 使用防抖处理,避免频繁请求
@@ -1114,6 +1138,13 @@ onMounted(() => {
align-items: center;
}
+.status-filters {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+ align-items: center;
+}
+
.model-type-filters {
display: flex;
flex-wrap: wrap;