修复: 1.代理卡密筛选status显示(JSON key冲突) 2.财务管理SelectItem空字符串value报错
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -2814,7 +2814,7 @@
|
|||||||
"cardCode": "卡密",
|
"cardCode": "卡密",
|
||||||
"app": "应用",
|
"app": "应用",
|
||||||
"cardType": "卡类",
|
"cardType": "卡类",
|
||||||
"status": "状态",
|
"statusFilter": "状态",
|
||||||
"createTime": "创建时间",
|
"createTime": "创建时间",
|
||||||
"useTime": "使用时间",
|
"useTime": "使用时间",
|
||||||
"unused": "未使用",
|
"unused": "未使用",
|
||||||
|
|||||||
Reference in New Issue
Block a user