fix: 设备分配代理,虚比例,sim顺序
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m15s
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m15s
This commit is contained in:
@@ -534,7 +534,7 @@
|
||||
getSwitchModeName
|
||||
} = useAssetFormatters(deviceRealtimeRef)
|
||||
|
||||
// 排序后的设备卡列表(当前卡排在最前面)
|
||||
// 排序后的设备卡列表(按卡槽位置排序,当前卡排在最前面)
|
||||
const sortedDeviceCards = computed(() => {
|
||||
if (!props.cardInfo?.cards || props.cardInfo.cards.length === 0) {
|
||||
return []
|
||||
@@ -543,7 +543,7 @@
|
||||
return cards.sort((a, b) => {
|
||||
if (a.is_current && !b.is_current) return -1
|
||||
if (!a.is_current && b.is_current) return 1
|
||||
return 0
|
||||
return (a.slot_position ?? 0) - (b.slot_position ?? 0)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
<ElDescriptionsItem label="套餐类型">
|
||||
{{ getPackageTypeName(currentPackage.package_type) }}
|
||||
</ElDescriptionsItem>
|
||||
<ElDescriptionsItem v-if="currentPackage.enable_virtual_data" label="虚流量比例">
|
||||
<ElDescriptionsItem v-if="currentPackage.enable_virtual_data && isSuperAdmin" label="虚流量比例">
|
||||
{{ currentPackage.virtual_ratio || '-' }}
|
||||
</ElDescriptionsItem>
|
||||
<ElDescriptionsItem v-if="currentPackage.duration_days" label="套餐时长" :span="3">
|
||||
@@ -134,6 +134,8 @@
|
||||
ElAlert
|
||||
} from 'element-plus'
|
||||
import { useAssetFormatters } from '../composables/useAssetFormatters'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
import { storeToRefs } from 'pinia'
|
||||
import { formatDateTime } from '@/utils/business/format'
|
||||
import type { PackageInfo } from '../types'
|
||||
|
||||
@@ -146,6 +148,10 @@
|
||||
getProgressColorByPercentage
|
||||
} = useAssetFormatters()
|
||||
|
||||
const userStore = useUserStore()
|
||||
const { info: userInfo } = storeToRefs(userStore)
|
||||
const isSuperAdmin = computed(() => userInfo.value.user_type === 1)
|
||||
|
||||
// Props
|
||||
interface Props {
|
||||
currentPackage: PackageInfo | null
|
||||
|
||||
@@ -1365,7 +1365,7 @@
|
||||
try {
|
||||
const data = {
|
||||
device_ids: selectedDevices.value.map((d) => d.id),
|
||||
target_shop_id: allocateForm.target_shop_id!,
|
||||
target_shop_id: allocateForm.target_shop_id![0],
|
||||
remark: allocateForm.remark
|
||||
}
|
||||
const res = await DeviceService.allocateDevices(data)
|
||||
|
||||
@@ -9,24 +9,6 @@
|
||||
{{ isDark ? '' : '' }}
|
||||
</i>
|
||||
</div>
|
||||
<ElDropdown @command="changeLanguage" popper-class="langDropDownStyle">
|
||||
<!--<div class="btn language-btn">-->
|
||||
<!-- <i class="iconfont-sys icon-language"></i>-->
|
||||
<!--</div>-->
|
||||
<!--<template #dropdown>-->
|
||||
<!-- <ElDropdownMenu>-->
|
||||
<!-- <div v-for="lang in languageOptions" :key="lang.value" class="lang-btn-item">-->
|
||||
<!-- <ElDropdownItem-->
|
||||
<!-- :command="lang.value"-->
|
||||
<!-- :class="{ 'is-selected': locale === lang.value }"-->
|
||||
<!-- >-->
|
||||
<!-- <span class="menu-txt">{{ lang.label }}</span>-->
|
||||
<!-- <i v-if="locale === lang.value" class="iconfont-sys icon-check"></i>-->
|
||||
<!-- </ElDropdownItem>-->
|
||||
<!-- </div>-->
|
||||
<!-- </ElDropdownMenu>-->
|
||||
<!--</template>-->
|
||||
</ElDropdown>
|
||||
</div>
|
||||
<div class="header">
|
||||
<ArtLogo class="icon" />
|
||||
@@ -43,19 +25,6 @@
|
||||
@keyup.enter="handleSubmit"
|
||||
style="margin-top: 25px"
|
||||
>
|
||||
<!-- Mock 账号选择(仅在开发模式且使用 Mock 时显示) -->
|
||||
<ElFormItem prop="account" v-if="false">
|
||||
<ElSelect v-model="formData.account" @change="setupAccount" class="account-select">
|
||||
<ElOption
|
||||
v-for="account in mockAccounts"
|
||||
:key="account.key"
|
||||
:label="account.label"
|
||||
:value="account.key"
|
||||
>
|
||||
<span>{{ account.label }}</span>
|
||||
</ElOption>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem prop="username">
|
||||
<ElInput :placeholder="$t('login.placeholder[0]')" v-model.trim="formData.username" />
|
||||
</ElFormItem>
|
||||
@@ -74,7 +43,6 @@
|
||||
<ElCheckbox v-model="formData.rememberPassword">{{
|
||||
$t('login.rememberPwd')
|
||||
}}</ElCheckbox>
|
||||
<!--<RouterLink :to="RoutesAlias.ForgetPassword">{{ $t('login.forgetPwd') }}</RouterLink>-->
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 30px">
|
||||
@@ -97,22 +65,18 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import AppConfig from '@/config'
|
||||
import { LanguageEnum, SystemThemeEnum } from '@/enums/appEnum'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { SystemThemeEnum } from '@/enums/appEnum'
|
||||
import { useSettingStore } from '@/store/modules/setting'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
import { useTheme } from '@/composables/useTheme'
|
||||
import { useLogin } from '@/composables/useLogin'
|
||||
|
||||
defineOptions({ name: 'Login' })
|
||||
|
||||
const { locale } = useI18n()
|
||||
const settingStore = useSettingStore()
|
||||
const userStore = useUserStore()
|
||||
const { isDark, systemThemeType } = storeToRefs(settingStore)
|
||||
|
||||
// 使用登录 Composable
|
||||
const { formRef, formData, rules, loading, mockAccounts, setupAccount, handleLogin } = useLogin()
|
||||
const { formRef, formData, rules, loading, handleLogin } = useLogin()
|
||||
|
||||
const systemName = AppConfig.systemInfo.name
|
||||
|
||||
@@ -121,13 +85,6 @@
|
||||
await handleLogin()
|
||||
}
|
||||
|
||||
// 切换语言
|
||||
const changeLanguage = (lang: LanguageEnum) => {
|
||||
if (locale.value === lang) return
|
||||
locale.value = lang
|
||||
userStore.setLanguage(lang)
|
||||
}
|
||||
|
||||
// 切换主题
|
||||
const toggleTheme = () => {
|
||||
let { LIGHT, DARK } = SystemThemeEnum
|
||||
|
||||
Reference in New Issue
Block a user