diff --git a/frontend/src/pages/admin/agent-apps/[id].vue b/frontend/src/pages/admin/agent-apps/[id].vue index 15ea44f..cbc534e 100644 --- a/frontend/src/pages/admin/agent-apps/[id].vue +++ b/frontend/src/pages/admin/agent-apps/[id].vue @@ -6,6 +6,7 @@ import { useRoute, useRouter } from 'vue-router' import { toast } from 'vue-sonner' import { BasicPage } from '@/components/global-layout' +import { Input } from '@/components/ui/input' import api from '@/services/api' const router = useRouter() @@ -42,7 +43,6 @@ const formData = ref({ application_id: '', card_type_id: '', price: 0, - remark: '', }) const selectedAgent = computed(() => { @@ -129,23 +129,14 @@ async function fetchAgentApp() { } } +// 不自动更新价格,让用户手动输入 watch(selectedCardType, (ct) => { - if (ct && !loading.value) { + if (ct && loading.value) { formData.value.price = ct.price } }) async function handleSubmit() { - if (!formData.value.agent_id) { - toast.error(t('admin.agentApps.createForm.selectAgentRequired')) - return - } - - if (!formData.value.application_id) { - toast.error(t('admin.agentApps.createForm.selectAppRequired')) - return - } - if (!formData.value.card_type_id) { toast.error(t('admin.agentApps.createForm.selectCardRequired')) return @@ -240,34 +231,32 @@ onMounted(() => { -
-
- {{ t('admin.agentApps.createForm.selectCardType') }} * - - - - - - - {{ ct.name }} - - - -
+
+ {{ t('admin.agentApps.createForm.selectCardType') }} * + + + + + + + {{ ct.name }} + + + +
-
- {{ t('admin.agentApps.createForm.price') }} * -
- ¥ - -
+
+ {{ t('admin.agentApps.createForm.price') }} * +
+ ¥ +
diff --git a/frontend/src/pages/admin/agent-apps/components/columns.ts b/frontend/src/pages/admin/agent-apps/components/columns.ts index 7a8b9d0..7acae14 100644 --- a/frontend/src/pages/admin/agent-apps/components/columns.ts +++ b/frontend/src/pages/admin/agent-apps/components/columns.ts @@ -49,13 +49,13 @@ export function getColumns(actions: { if (!cardTypes || cardTypes.length === 0) { return h('span', { class: 'text-muted-foreground' }, '-') } - - return h('div', { class: 'flex flex-wrap gap-1' }, - cardTypes.map(ct => + + return h('div', { class: 'flex flex-wrap gap-1' }, + cardTypes.map(ct => h('span', { class: `inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs ${ - ct.can_generate - ? 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400' + ct.can_generate + ? 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400' : 'bg-gray-100 text-gray-500 dark:bg-gray-800 dark:text-gray-400' }` }, [ @@ -66,13 +66,26 @@ export function getColumns(actions: { ) }, }, + { + accessorKey: 'card_types', + id: 'price', + header: () => h('span', {}, '价格'), + cell: ({ row }) => { + const cardTypes = row.getValue('card_types') as AgentApp['card_types'] + if (!cardTypes || cardTypes.length === 0) { + return h('span', { class: 'text-muted-foreground' }, '-') + } + const price = cardTypes[0]?.price || 0 + return h('span', { class: 'font-medium' }, `¥${price}`) + }, + }, { accessorKey: 'status', header: () => h('span', {}, '状态'), cell: ({ row }) => { const status = row.getValue('status') as string const isActive = status === 'active' - return h(Badge, { variant: isActive ? 'default' : 'secondary' }, () => + return h(Badge, { variant: isActive ? 'default' : 'secondary' }, () => isActive ? '已启用' : '已禁用' ) }, @@ -137,4 +150,4 @@ export function getColumns(actions: { }, }, ] -} +} \ No newline at end of file diff --git a/frontend/src/pages/admin/agent-apps/create.vue b/frontend/src/pages/admin/agent-apps/create.vue index e226322..dc3cd07 100644 --- a/frontend/src/pages/admin/agent-apps/create.vue +++ b/frontend/src/pages/admin/agent-apps/create.vue @@ -6,6 +6,7 @@ import { useRouter } from 'vue-router' import { toast } from 'vue-sonner' import { BasicPage } from '@/components/global-layout' +import { Input } from '@/components/ui/input' import api from '@/services/api' const router = useRouter() @@ -216,34 +217,32 @@ onMounted(() => {
-
-
- {{ t('admin.agentApps.createForm.selectCardType') }} * - - - - - - - {{ ct.name }} - - - -
+
+ {{ t('admin.agentApps.createForm.selectCardType') }} * + + + + + + + {{ ct.name }} + + + +
-
- {{ t('admin.agentApps.createForm.price') }} * -
- ¥ - -
+
+ {{ t('admin.agentApps.createForm.price') }} * +
+ ¥ +
@@ -323,4 +322,4 @@ onMounted(() => {
- + \ No newline at end of file