This commit is contained in:
8
src/types/components.d.ts
vendored
8
src/types/components.d.ts
vendored
@@ -86,10 +86,8 @@ declare module 'vue' {
|
|||||||
ElAlert: typeof import('element-plus/es')['ElAlert']
|
ElAlert: typeof import('element-plus/es')['ElAlert']
|
||||||
ElAvatar: typeof import('element-plus/es')['ElAvatar']
|
ElAvatar: typeof import('element-plus/es')['ElAvatar']
|
||||||
ElButton: typeof import('element-plus/es')['ElButton']
|
ElButton: typeof import('element-plus/es')['ElButton']
|
||||||
ElCalendar: typeof import('element-plus/es')['ElCalendar']
|
|
||||||
ElCard: typeof import('element-plus/es')['ElCard']
|
ElCard: typeof import('element-plus/es')['ElCard']
|
||||||
ElCascader: typeof import('element-plus/es')['ElCascader']
|
ElCascader: typeof import('element-plus/es')['ElCascader']
|
||||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
|
||||||
ElCol: typeof import('element-plus/es')['ElCol']
|
ElCol: typeof import('element-plus/es')['ElCol']
|
||||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||||
@@ -112,9 +110,7 @@ declare module 'vue' {
|
|||||||
ElOption: typeof import('element-plus/es')['ElOption']
|
ElOption: typeof import('element-plus/es')['ElOption']
|
||||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||||
ElPopover: typeof import('element-plus/es')['ElPopover']
|
ElPopover: typeof import('element-plus/es')['ElPopover']
|
||||||
ElProgress: typeof import('element-plus/es')['ElProgress']
|
|
||||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||||
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
|
|
||||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||||
ElRow: typeof import('element-plus/es')['ElRow']
|
ElRow: typeof import('element-plus/es')['ElRow']
|
||||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||||
@@ -123,11 +119,7 @@ declare module 'vue' {
|
|||||||
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
||||||
ElTable: typeof import('element-plus/es')['ElTable']
|
ElTable: typeof import('element-plus/es')['ElTable']
|
||||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||||
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
|
||||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
|
||||||
ElTag: typeof import('element-plus/es')['ElTag']
|
ElTag: typeof import('element-plus/es')['ElTag']
|
||||||
ElTimeline: typeof import('element-plus/es')['ElTimeline']
|
|
||||||
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
|
|
||||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||||
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
|
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
|
||||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
<template v-if="isAdminOrPlatform">
|
<template v-if="isAdminOrPlatform">
|
||||||
<div class="flow-stats-container">
|
<div class="flow-stats-container">
|
||||||
<!-- 真流量 -->
|
<!-- 真流量 -->
|
||||||
<div v-if="canViewCurrentPackageRealUsage" class="flow-stat-section">
|
<div v-if="canShowCurrentPackageRealUsage" class="flow-stat-section">
|
||||||
<div class="flow-stat-label">真流量使用</div>
|
<div class="flow-stat-label">真流量使用</div>
|
||||||
<div class="flow-stat-row">
|
<div class="flow-stat-row">
|
||||||
<span class="stat-item">
|
<span class="stat-item">
|
||||||
@@ -303,13 +303,17 @@
|
|||||||
const canViewCurrentPackageVirtualUsage = computed(() =>
|
const canViewCurrentPackageVirtualUsage = computed(() =>
|
||||||
hasAuth('asset_info:view_current_package_virtual_usage')
|
hasAuth('asset_info:view_current_package_virtual_usage')
|
||||||
)
|
)
|
||||||
|
const canShowCurrentPackageRealUsage = computed(
|
||||||
|
() =>
|
||||||
|
canViewCurrentPackageRealUsage.value || props.currentPackage?.enable_virtual_data === false
|
||||||
|
)
|
||||||
const canShowCurrentPackageVirtualUsage = computed(
|
const canShowCurrentPackageVirtualUsage = computed(
|
||||||
() =>
|
() =>
|
||||||
canViewCurrentPackageVirtualUsage.value && props.currentPackage?.enable_virtual_data !== false
|
canViewCurrentPackageVirtualUsage.value && props.currentPackage?.enable_virtual_data !== false
|
||||||
)
|
)
|
||||||
const shouldShowTrafficCard = computed(() => {
|
const shouldShowTrafficCard = computed(() => {
|
||||||
if (!isAdminOrPlatform.value) return true
|
if (!isAdminOrPlatform.value) return true
|
||||||
return canViewCurrentPackageRealUsage.value || canShowCurrentPackageVirtualUsage.value
|
return canShowCurrentPackageRealUsage.value || canShowCurrentPackageVirtualUsage.value
|
||||||
})
|
})
|
||||||
|
|
||||||
const descriptionsColumn = computed(() => {
|
const descriptionsColumn = computed(() => {
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div class="traffic-progress">
|
<div class="traffic-progress">
|
||||||
<template v-if="isAdminOrPlatform && shouldShowAdminTrafficBreakdown(scope.row)">
|
<template v-if="isAdminOrPlatform && shouldShowAdminTrafficBreakdown(scope.row)">
|
||||||
<div v-if="canViewCurrentPackageRealUsage" class="progress-text">
|
<div v-if="canShowPackageRealUsage(scope.row)" class="progress-text">
|
||||||
<span class="used"
|
<span class="used"
|
||||||
>已使用真流量: {{ formatDataSize(scope.row.real_used_mb || 0) }}</span
|
>已使用真流量: {{ formatDataSize(scope.row.real_used_mb || 0) }}</span
|
||||||
>
|
>
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
>停机阈值: {{ formatDataSize(scope.row.virtual_total_mb || 0) }}</span
|
>停机阈值: {{ formatDataSize(scope.row.virtual_total_mb || 0) }}</span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="canViewCurrentPackageRealUsage" class="progress-wrapper">
|
<div v-if="canShowPackageRealUsage(scope.row)" class="progress-wrapper">
|
||||||
<div class="progress-track">
|
<div class="progress-track">
|
||||||
<ElProgress
|
<ElProgress
|
||||||
style="margin-top: 4px"
|
style="margin-top: 4px"
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
<div
|
<div
|
||||||
v-if="canShowPackageVirtualUsage(scope.row)"
|
v-if="canShowPackageVirtualUsage(scope.row)"
|
||||||
class="progress-text"
|
class="progress-text"
|
||||||
:style="{ marginTop: canViewCurrentPackageRealUsage ? '8px' : '0' }"
|
:style="{ marginTop: canShowPackageRealUsage(scope.row) ? '8px' : '0' }"
|
||||||
>
|
>
|
||||||
<span class="used"
|
<span class="used"
|
||||||
>已使用流量: {{ formatDataSize(scope.row.virtual_used_mb || 0) }}</span
|
>已使用流量: {{ formatDataSize(scope.row.virtual_used_mb || 0) }}</span
|
||||||
@@ -300,12 +300,7 @@
|
|||||||
width="30%"
|
width="30%"
|
||||||
@closed="resetUsedDataForm"
|
@closed="resetUsedDataForm"
|
||||||
>
|
>
|
||||||
<ElForm
|
<ElForm ref="usedDataFormRef" :model="usedDataForm" :rules="usedDataRules" label-width="90px">
|
||||||
ref="usedDataFormRef"
|
|
||||||
:model="usedDataForm"
|
|
||||||
:rules="usedDataRules"
|
|
||||||
label-width="90px"
|
|
||||||
>
|
|
||||||
<ElFormItem label="套餐名称">
|
<ElFormItem label="套餐名称">
|
||||||
<span>{{ selectedPackage?.package_name || '-' }}</span>
|
<span>{{ selectedPackage?.package_name || '-' }}</span>
|
||||||
</ElFormItem>
|
</ElFormItem>
|
||||||
@@ -595,12 +590,15 @@
|
|||||||
// Props 使用 API 类型
|
// Props 使用 API 类型
|
||||||
type PackageInfo = AssetPackageUsageRecord
|
type PackageInfo = AssetPackageUsageRecord
|
||||||
|
|
||||||
|
const canShowPackageRealUsage = (pkg: PackageInfo) =>
|
||||||
|
canViewCurrentPackageRealUsage.value || pkg.enable_virtual_data === false
|
||||||
|
|
||||||
const canShowPackageVirtualUsage = (pkg: PackageInfo) =>
|
const canShowPackageVirtualUsage = (pkg: PackageInfo) =>
|
||||||
canViewCurrentPackageVirtualUsage.value && pkg.enable_virtual_data !== false
|
canViewCurrentPackageVirtualUsage.value && pkg.enable_virtual_data !== false
|
||||||
|
|
||||||
const shouldShowAdminTrafficBreakdown = (pkg: PackageInfo) => {
|
const shouldShowAdminTrafficBreakdown = (pkg: PackageInfo) => {
|
||||||
if (!isAdminOrPlatform.value) return true
|
if (!isAdminOrPlatform.value) return true
|
||||||
return canViewCurrentPackageRealUsage.value || canShowPackageVirtualUsage(pkg)
|
return canShowPackageRealUsage(pkg) || canShowPackageVirtualUsage(pkg)
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|||||||
Reference in New Issue
Block a user