This commit is contained in:
13121765685 2025-12-28 14:56:58 +08:00
parent 87c7fffd3e
commit 66d4805935
12 changed files with 44 additions and 44 deletions

View File

@ -184,18 +184,7 @@ export const permissionRoutes = [
// requiresAuth: true // requiresAuth: true
// } // }
// }, // },
{
path: 'users/:id/invites',
name: 'AdminUserInvites',
component: AdminUserInvites,
meta: {
title: '邀请列表',
icon: 'UserFilled',
menuOrder: 9,
hideInMenu: true,
requiresAuth: true
}
},
@ -268,7 +257,18 @@ const routes = [
hideInMenu: true, hideInMenu: true,
requiresAuth: true requiresAuth: true
} }
},{
path: 'users/:id/invites',
name: 'AdminUserInvites',
component: AdminUserInvites,
meta: {
title: '邀请列表',
icon: 'UserFilled',
menuOrder: 9,
hideInMenu: true,
requiresAuth: true
} }
},
]//[]// ]//[]//
}, },
{ {

View File

@ -95,7 +95,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="orderPrice" :label="t('admin.review.orderPrice')" min-width="120"> <el-table-column prop="orderPrice" :label="t('admin.review.orderPrice')" min-width="120">
<template #default="{ row }"> <template #default="{ row }">
¥{{ row.orderPrice.toFixed(2) }} ${{ row.orderPrice.toFixed(2) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="status" :label="t('admin.review.status')" min-width="120"> <el-table-column prop="status" :label="t('admin.review.status')" min-width="120">

View File

@ -58,7 +58,7 @@
<el-icon><Money /></el-icon> <el-icon><Money /></el-icon>
</div> </div>
<div class="stat-info"> <div class="stat-info">
<div class="stat-number">¥{{ formatNumber(stats.revenue) }}</div> <div class="stat-number">${{ formatNumber(stats.revenue) }}</div>
<div class="stat-label">{{ t('admin.dashboard.stats.revenue') }}</div> <div class="stat-label">{{ t('admin.dashboard.stats.revenue') }}</div>
</div> </div>
</div> </div>
@ -91,7 +91,7 @@
height: `${(point.value / maxSalesValue) * 200}px`, height: `${(point.value / maxSalesValue) * 200}px`,
background: `linear-gradient(to top, #6b46c1, #a78bfa)` background: `linear-gradient(to top, #6b46c1, #a78bfa)`
}" }"
:title="`${point.date}: ¥${formatNumber(point.value)}`" :title="`${point.date}: $${formatNumber(point.value)}`"
></div> ></div>
</div> </div>
<div class="chart-labels"> <div class="chart-labels">

View File

@ -37,7 +37,7 @@
<el-icon><Money /></el-icon> <el-icon><Money /></el-icon>
</div> </div>
<div class="stat-info"> <div class="stat-info">
<div class="stat-number">¥{{ orderStats.revenue.toLocaleString() }}</div> <div class="stat-number">${{ orderStats.revenue.toLocaleString() }}</div>
<div class="stat-label">{{ t('admin.orders.stats.revenue') }}</div> <div class="stat-label">{{ t('admin.orders.stats.revenue') }}</div>
</div> </div>
</div> </div>
@ -131,7 +131,7 @@
<el-table-column prop="customerName" :label="t('admin.orders.customer')" width="120" /> <el-table-column prop="customerName" :label="t('admin.orders.customer')" width="120" />
<el-table-column prop="totalAmount" :label="t('admin.orders.total')" width="120"> <el-table-column prop="totalAmount" :label="t('admin.orders.total')" width="120">
<template #default="{ row }"> <template #default="{ row }">
¥{{ row.totalAmount.toFixed(2) }} ${{ row.totalAmount.toFixed(2) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="status" :label="t('admin.orders.status')" width="120"> <el-table-column prop="status" :label="t('admin.orders.status')" width="120">
@ -239,7 +239,7 @@
{{ selectedOrder.customerName }} {{ selectedOrder.customerName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="t('admin.orders.total')"> <el-descriptions-item :label="t('admin.orders.total')">
¥{{ selectedOrder.totalAmount.toFixed(2) }} ${{ selectedOrder.totalAmount.toFixed(2) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="t('admin.orders.status')"> <el-descriptions-item :label="t('admin.orders.status')">
<el-tag :type="getStatusTagType(selectedOrder.status)"> <el-tag :type="getStatusTagType(selectedOrder.status)">
@ -257,7 +257,7 @@
<el-table-column prop="quantity" :label="t('admin.orders.quantity')" width="100" /> <el-table-column prop="quantity" :label="t('admin.orders.quantity')" width="100" />
<el-table-column prop="price" :label="t('admin.orders.price')" width="120"> <el-table-column prop="price" :label="t('admin.orders.price')" width="120">
<template #default="{ row }"> <template #default="{ row }">
¥{{ row.price.toFixed(2) }} ${{ row.price.toFixed(2) }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

View File

@ -37,7 +37,7 @@
<el-icon><Money /></el-icon> <el-icon><Money /></el-icon>
</div> </div>
<div class="stat-info"> <div class="stat-info">
<div class="stat-number">¥{{ orderStats.revenue }}</div> <div class="stat-number">${{ orderStats.revenue }}</div>
<div class="stat-label">{{ t('admin.orders.stats.revenue') }}</div> <div class="stat-label">{{ t('admin.orders.stats.revenue') }}</div>
</div> </div>
</div> </div>
@ -126,7 +126,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="actual_amount" :label="t('admin.orders.total')" width="120"> <el-table-column prop="actual_amount" :label="t('admin.orders.total')" width="120">
<template #default="{ row }"> <template #default="{ row }">
¥{{ row.actual_amount.toFixed(2) }} ${{ row.actual_amount.toFixed(2) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="status" :label="t('admin.orders.status')" width="120"> <el-table-column prop="status" :label="t('admin.orders.status')" width="120">
@ -188,7 +188,7 @@
{{ selectedOrder?.order_info?.shipping?.firstName || '-'+selectedOrder?.order_info?.shipping?.lastName || '-' }} {{ selectedOrder?.order_info?.shipping?.firstName || '-'+selectedOrder?.order_info?.shipping?.lastName || '-' }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="t('admin.orders.total')"> <el-descriptions-item :label="t('admin.orders.total')">
¥{{ selectedOrder?.actual_amount?.toFixed(2) || '-' }} ${{ selectedOrder?.actual_amount?.toFixed(2) || '-' }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="t('admin.orders.status')"> <el-descriptions-item :label="t('admin.orders.status')">
<el-tag :type="getStatusTagType(selectedOrder).status"> <el-tag :type="getStatusTagType(selectedOrder).status">
@ -216,7 +216,7 @@
<el-table-column prop="quantity" :label="t('admin.orders.quantity')" width="100" /> <el-table-column prop="quantity" :label="t('admin.orders.quantity')" width="100" />
<el-table-column prop="price" :label="t('admin.orders.price')" width="120"> <el-table-column prop="price" :label="t('admin.orders.price')" width="120">
<template #default="{ row }"> <template #default="{ row }">
¥{{ row.price.toFixed(2) }} ${{ row.price.toFixed(2) }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

View File

@ -36,7 +36,7 @@
<span class="product-name">{{ order.order_info.ipName||'rob' }}</span> <span class="product-name">{{ order.order_info.ipName||'rob' }}</span>
<span class="product-quantity">x{{ order.order_info.quantity }}</span> <span class="product-quantity">x{{ order.order_info.quantity }}</span>
</div> </div>
<div class="product-price">¥{{order.actual_amount}}</div> <div class="product-price">${{order.actual_amount}}</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -9,20 +9,20 @@
<div class="summary-items"> <div class="summary-items">
<div class="summary-item"> <div class="summary-item">
<span>{{ $t('payment.subtotal') }}</span> <span>{{ $t('payment.subtotal') }}</span>
<span>¥{{ (amount / 100).toFixed(2) }}</span> <span>${{ (amount / 100).toFixed(2) }}</span>
</div> </div>
<div class="summary-item"> <div class="summary-item">
<span>{{ $t('payment.tax') }}</span> <span>{{ $t('payment.tax') }}</span>
<span>¥{{ (taxAmount / 100).toFixed(2) }}</span> <span>${{ (taxAmount / 100).toFixed(2) }}</span>
</div> </div>
<div class="summary-item"> <div class="summary-item">
<span>{{ $t('payment.shipping') }}</span> <span>{{ $t('payment.shipping') }}</span>
<span>{{ shippingAmount > 0 ? `¥${(shippingAmount / 100).toFixed(2)}` : $t('payment.free') }}</span> <span>{{ shippingAmount > 0 ? `$${(shippingAmount / 100).toFixed(2)}` : $t('payment.free') }}</span>
</div> </div>
<div class="summary-divider"></div> <div class="summary-divider"></div>
<div class="summary-item total"> <div class="summary-item total">
<span>{{ $t('payment.total') }}</span> <span>{{ $t('payment.total') }}</span>
<span>¥{{ ((amount + taxAmount + shippingAmount) / 100).toFixed(2) }}</span> <span>${{ ((amount + taxAmount + shippingAmount) / 100).toFixed(2) }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -45,7 +45,7 @@
:disabled="!canPay" :disabled="!canPay"
> >
<el-icon v-if="!processing"><Lock /></el-icon> <el-icon v-if="!processing"><Lock /></el-icon>
{{ $t('payment.payNow') }} ¥{{ ((amount + taxAmount + shippingAmount - discountAmount) / 100).toFixed(2) }} {{ $t('payment.payNow') }} ${{ ((amount + taxAmount + shippingAmount - discountAmount) / 100).toFixed(2) }}
</el-button> </el-button>
</div> </div>

View File

@ -315,10 +315,10 @@
<!-- 官方服务 --> <!-- 官方服务 -->
<el-form-item <el-form-item
:label="t('agentTemplate.officialServices')" :label="t('agentTemplate.officialServices')"
prop="knowledge_base_ids" prop="mcp_endpoints"
class="knowledge-base-item" class="knowledge-base-item"
> >
<el-checkbox-group v-model="agentForm.knowledge_base_ids" style="width: 100%;"> <el-checkbox-group v-model="agentForm.mcp_endpoints" style="width: 100%;">
<el-checkbox label="2" style="margin-right: 20px;">{{ t('agentTemplate.weather') }}</el-checkbox> <el-checkbox label="2" style="margin-right: 20px;">{{ t('agentTemplate.weather') }}</el-checkbox>
<el-checkbox label="8" style="margin-right: 20px;">{{ t('agentTemplate.jokes') }}</el-checkbox> <el-checkbox label="8" style="margin-right: 20px;">{{ t('agentTemplate.jokes') }}</el-checkbox>
<el-checkbox label="9" style="margin-right: 20px;">{{ t('agentTemplate.music') }}</el-checkbox> <el-checkbox label="9" style="margin-right: 20px;">{{ t('agentTemplate.music') }}</el-checkbox>
@ -473,7 +473,7 @@ Communication Style:
asr_speed: 'normal', asr_speed: 'normal',
tts_speech_speed: 'normal', tts_speech_speed: 'normal',
tts_pitch: 0, tts_pitch: 0,
knowledge_base_ids: ['2', '8', '9', '101'] mcp_endpoints: ['2', '8', '9', '101']// ID
}) })
// //
@ -618,7 +618,7 @@ const formRules = computed(() => ({
tts_pitch: [ tts_pitch: [
{ required: true, message: '请调整角色音调', trigger: 'change' } { required: true, message: '请调整角色音调', trigger: 'change' }
], ],
knowledge_base_ids: [ mcp_endpoints: [
{ type: 'array', message: '请至少选择一个官方服务', trigger: 'change' } { type: 'array', message: '请至少选择一个官方服务', trigger: 'change' }
] ]
})) }))
@ -739,7 +739,7 @@ const saveAgent = async () => {
character: agentForm.introduction, character: agentForm.introduction,
memory: agentForm.memory, memory: agentForm.memory,
memory_type: agentForm.memoryType, memory_type: agentForm.memoryType,
knowledge_base_ids: agentForm.knowledge_base_ids mcp_endpoints: agentForm.mcp_endpoints
} }
let result let result
@ -873,7 +873,7 @@ const getAgentDetail = async (agentId) => {
agentForm.asr_speed = agentDetail.asr_speed || 'normal' agentForm.asr_speed = agentDetail.asr_speed || 'normal'
agentForm.tts_speech_speed = agentDetail.tts_speech_speed || 'normal' agentForm.tts_speech_speed = agentDetail.tts_speech_speed || 'normal'
agentForm.tts_pitch = agentDetail.tts_pitch || 0 agentForm.tts_pitch = agentDetail.tts_pitch || 0
agentForm.knowledge_base_ids = agentDetail.knowledge_base_ids || [] agentForm.mcp_endpoints = agentDetail.mcp_endpoints || []
// id // id
agentForm.id = agentId agentForm.id = agentId

View File

@ -20,7 +20,7 @@
<span class="name">{{ order.order_info.ipName }}</span> <span class="name">{{ order.order_info.ipName }}</span>
<span style="margin-top: 10px;" class="qty">x{{ order.order_info.quantity }}</span> <span style="margin-top: 10px;" class="qty">x{{ order.order_info.quantity }}</span>
</div> </div>
<div class="price">¥{{order.actual_amount}}</div> <div class="price">${{order.actual_amount}}</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -296,9 +296,9 @@ const userData = ref({
combinedInviteList: [], combinedInviteList: [],
// //
totalConsumption: '¥0', totalConsumption: '$0',
totalCommission: '¥0', totalCommission: '$0',
availableCommission: '¥0' availableCommission: '$0'
}) })
// //

View File

@ -295,9 +295,9 @@ const userData = ref({
combinedInviteList: [], combinedInviteList: [],
// //
totalConsumption: '¥0', totalConsumption: '$0',
totalCommission: '¥0', totalCommission: '$0',
availableCommission: '¥0' availableCommission: '$0'
}) })
// //

View File

@ -27,7 +27,7 @@ export function formatCurrency(amount, currency = 'CNY', locale = 'zh-CN', decim
}).format(amount) }).format(amount)
} catch { } catch {
// 回退到简单的格式化 // 回退到简单的格式化
const symbol = currency === 'CNY' ? '¥' : currency const symbol = currency === 'CNY' ? '$' : currency
return symbol + formatNumber(amount, decimals) return symbol + formatNumber(amount, decimals)
} }
} }