修复: 1.代理卡密筛选status显示(JSON key冲突) 2.财务管理SelectItem空字符串value报错

This commit is contained in:
2026-05-10 17:00:19 +08:00
parent 409ec4f75b
commit 5561587cde
4 changed files with 14 additions and 7 deletions
+1 -1
View File
@@ -339,7 +339,7 @@ onMounted(async () => {
/> />
<SingleFilter <SingleFilter
v-model="statusFilter" v-model="statusFilter"
:title="t('agent.cards.status')" :title="t('agent.cards.statusFilter')"
:options="statusOptions" :options="statusOptions"
/> />
<DateRangeFilter <DateRangeFilter
@@ -1,6 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import type { Table } from '@tanstack/vue-table' import type { Table } from '@tanstack/vue-table'
import { X } from 'lucide-vue-next'
import { computed } from 'vue' import { computed } from 'vue'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
@@ -18,12 +19,11 @@ const emit = defineEmits<{
const { t } = useI18n() const { t } = useI18n()
const typeModel = computed({ const typeModel = computed({
get: () => props.typeFilter, get: () => props.typeFilter || undefined,
set: (value: string) => emit('update:typeFilter', value), set: (value: string) => emit('update:typeFilter', value || ''),
}) })
const typeOptions = computed(() => [ const typeOptions = computed(() => [
{ label: t('agent.finance.allTypes'), value: '' },
{ label: t('agent.finance.types.recharge'), value: 'recharge' }, { label: t('agent.finance.types.recharge'), value: 'recharge' },
{ label: t('agent.finance.types.consume'), value: 'consume' }, { label: t('agent.finance.types.consume'), value: 'consume' },
{ label: t('agent.finance.types.refund'), value: 'refund' }, { label: t('agent.finance.types.refund'), value: 'refund' },
@@ -34,7 +34,7 @@ const typeOptions = computed(() => [
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<UiSelect v-model="typeModel" class="w-[120px]"> <UiSelect v-model="typeModel" class="w-[120px]">
<UiSelectTrigger> <UiSelectTrigger>
<UiSelectValue :placeholder="t('agent.finance.selectType')" /> <UiSelectValue :placeholder="t('agent.finance.allTypes')" />
</UiSelectTrigger> </UiSelectTrigger>
<UiSelectContent> <UiSelectContent>
<UiSelectItem v-for="opt in typeOptions" :key="opt.value" :value="opt.value"> <UiSelectItem v-for="opt in typeOptions" :key="opt.value" :value="opt.value">
@@ -42,5 +42,12 @@ const typeOptions = computed(() => [
</UiSelectItem> </UiSelectItem>
</UiSelectContent> </UiSelectContent>
</UiSelect> </UiSelect>
<button
v-if="typeFilter"
class="inline-flex items-center justify-center rounded-md size-6 text-muted-foreground hover:text-foreground transition-colors"
@click="emit('update:typeFilter', '')"
>
<X class="size-3.5" />
</button>
</div> </div>
</template> </template>
+1 -1
View File
@@ -2813,7 +2813,7 @@
"cardCode": "Card Code", "cardCode": "Card Code",
"app": "Application", "app": "Application",
"cardType": "Card Type", "cardType": "Card Type",
"status": "Status", "statusFilter": "Status",
"createTime": "Create Time", "createTime": "Create Time",
"useTime": "Use Time", "useTime": "Use Time",
"unused": "Unused", "unused": "Unused",
+1 -1
View File
@@ -2814,7 +2814,7 @@
"cardCode": "卡密", "cardCode": "卡密",
"app": "应用", "app": "应用",
"cardType": "卡类", "cardType": "卡类",
"status": "状态", "statusFilter": "状态",
"createTime": "创建时间", "createTime": "创建时间",
"useTime": "使用时间", "useTime": "使用时间",
"unused": "未使用", "unused": "未使用",