fix: 套餐
This commit is contained in:
@@ -480,6 +480,9 @@
|
||||
v-model="switchModeDialogVisible"
|
||||
:device-identifier="currentOperatingDeviceIdentifier"
|
||||
:current-mode="currentDeviceSwitchMode"
|
||||
:cards="switchModeCards"
|
||||
:has-imei="currentOperatingDeviceHasImei"
|
||||
:confirm-loading="switchModeLoading"
|
||||
@confirm="handleConfirmSwitchMode"
|
||||
/>
|
||||
|
||||
@@ -535,6 +538,17 @@
|
||||
|
||||
defineOptions({ name: 'DeviceList' })
|
||||
|
||||
interface SwitchModeCardOption {
|
||||
iot_card_id: number
|
||||
iccid: string
|
||||
slot_position?: number
|
||||
carrier_name?: string
|
||||
msisdn?: string
|
||||
network_status?: number
|
||||
real_name_status?: number
|
||||
is_current?: boolean
|
||||
}
|
||||
|
||||
const { hasAuth } = useAuth()
|
||||
const router = useRouter()
|
||||
|
||||
@@ -638,7 +652,9 @@
|
||||
// 切换模式相关
|
||||
const switchModeDialogVisible = ref(false)
|
||||
const switchModeLoading = ref(false)
|
||||
const switchModeCards = ref<SwitchModeCardOption[]>([])
|
||||
const currentOperatingDeviceIdentifier = ref<string>('')
|
||||
const currentOperatingDeviceHasImei = ref(false)
|
||||
const currentDeviceSwitchMode = ref<number>(0)
|
||||
|
||||
// 实名认证策略相关
|
||||
@@ -1678,7 +1694,7 @@
|
||||
await handleClearDeviceSeries(deviceNo)
|
||||
break
|
||||
case 'switch-mode':
|
||||
showSwitchModeDialog(deviceNo, device?.switch_mode)
|
||||
await showSwitchModeDialog(deviceNo)
|
||||
break
|
||||
case 'realname-policy':
|
||||
showRealnamePolicyDialog(deviceNo, device?.realname_policy)
|
||||
@@ -1866,20 +1882,62 @@
|
||||
}
|
||||
|
||||
// 显示切换模式对话框
|
||||
const showSwitchModeDialog = (deviceIdentifier: string, currentMode?: number) => {
|
||||
const normalizeSwitchModeCards = (cards: Array<Record<string, any>>): SwitchModeCardOption[] => {
|
||||
return cards
|
||||
.map((card) => ({
|
||||
iot_card_id: Number(card.iot_card_id),
|
||||
iccid: card.iccid,
|
||||
slot_position: card.slot_position,
|
||||
carrier_name: card.carrier_name,
|
||||
msisdn: card.msisdn,
|
||||
network_status:
|
||||
card.network_status === undefined ? undefined : Number(card.network_status),
|
||||
real_name_status:
|
||||
card.real_name_status === undefined ? undefined : Number(card.real_name_status),
|
||||
is_current: card.is_current
|
||||
}))
|
||||
.filter((card) => Number.isFinite(card.iot_card_id) && Boolean(card.iccid))
|
||||
}
|
||||
|
||||
// 显示切换模式对话框
|
||||
const showSwitchModeDialog = async (deviceIdentifier: string) => {
|
||||
const device = currentOperatingDevice.value
|
||||
if (!device) {
|
||||
ElMessage.error('未找到设备信息')
|
||||
return
|
||||
}
|
||||
|
||||
currentOperatingDeviceIdentifier.value = deviceIdentifier
|
||||
currentDeviceSwitchMode.value = currentMode ?? 0
|
||||
currentDeviceSwitchMode.value = Number(device.switch_mode ?? 0)
|
||||
currentOperatingDeviceHasImei.value = Boolean(device.imei)
|
||||
switchModeCards.value = []
|
||||
|
||||
if (currentOperatingDeviceHasImei.value) {
|
||||
try {
|
||||
const res = await DeviceService.getDeviceCards(device.virtual_no)
|
||||
if (res.code !== 0 || !res.data) {
|
||||
ElMessage.error(res.msg || '加载设备绑定卡失败')
|
||||
return
|
||||
}
|
||||
|
||||
switchModeCards.value = normalizeSwitchModeCards(
|
||||
(res.data.bindings || []) as Array<Record<string, any>>
|
||||
)
|
||||
} catch (error) {
|
||||
console.error('加载切卡模式绑定卡失败:', error)
|
||||
ElMessage.error('加载设备绑定卡失败')
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
switchModeDialogVisible.value = true
|
||||
}
|
||||
|
||||
// 确认切换模式
|
||||
const handleConfirmSwitchMode = async (data: { switch_mode: number }) => {
|
||||
const handleConfirmSwitchMode = async (data: { iot_card_id: number; switch_mode: 0 | 1 }) => {
|
||||
switchModeLoading.value = true
|
||||
try {
|
||||
const res = await DeviceService.setSwitchMode(
|
||||
currentOperatingDeviceIdentifier.value,
|
||||
data.switch_mode
|
||||
)
|
||||
const res = await DeviceService.setSwitchMode(currentOperatingDeviceIdentifier.value, data)
|
||||
if (res.code === 0) {
|
||||
ElMessage.success('设置切卡模式成功')
|
||||
switchModeDialogVisible.value = false
|
||||
|
||||
Reference in New Issue
Block a user