fix: 套餐
This commit is contained in:
@@ -111,7 +111,10 @@
|
||||
<SwitchModeDialog
|
||||
v-model="switchModeDialogVisible"
|
||||
:device-identifier="cardInfo?.virtual_no || ''"
|
||||
:current-mode="cardInfo?.switch_mode as number"
|
||||
:current-mode="Number(cardInfo?.switch_mode ?? 0)"
|
||||
:cards="switchModeCards"
|
||||
:has-imei="hasSwitchModeImei"
|
||||
:confirm-loading="switchModeLoading"
|
||||
@confirm="handleConfirmSwitchMode"
|
||||
/>
|
||||
<WiFiConfigDialog
|
||||
@@ -160,10 +163,11 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, watch, onMounted, nextTick } from 'vue'
|
||||
import { computed, nextTick, onMounted, ref, watch } from 'vue'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { ElMessage, ElCard, ElEmpty } from 'element-plus'
|
||||
import { RoutesAlias } from '@/router/routesAlias'
|
||||
import { DeviceService } from '@/api/modules'
|
||||
|
||||
// 引入子组件
|
||||
import AssetSearchCard from './components/AssetSearchCard.vue'
|
||||
@@ -190,10 +194,21 @@
|
||||
import { useAssetOperations } from './composables/useAssetOperations'
|
||||
|
||||
// 引入类型
|
||||
import type { SwitchCardForm, WiFiForm } from './types'
|
||||
import type { BindingCard, SwitchCardForm, WiFiForm } from './types'
|
||||
|
||||
defineOptions({ name: 'SingleCard' })
|
||||
|
||||
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 route = useRoute()
|
||||
const router = useRouter()
|
||||
|
||||
@@ -239,6 +254,7 @@
|
||||
// ========== 对话框状态 ==========
|
||||
const switchCardDialogVisible = ref(false)
|
||||
const switchModeDialogVisible = ref(false)
|
||||
const switchModeLoading = ref(false)
|
||||
const setWiFiDialogVisible = ref(false)
|
||||
const rechargeDialogVisible = ref(false)
|
||||
const dailyRecordsDialogVisible = ref(false)
|
||||
@@ -252,6 +268,27 @@
|
||||
const bindingCardRealnameStatusIccid = ref('')
|
||||
const bindingCardRealnameStatusValue = ref<number>(0)
|
||||
|
||||
const switchModeCards = computed<SwitchModeCardOption[]>(() =>
|
||||
(cardInfo.value?.cards || [])
|
||||
.map((card: BindingCard) => ({
|
||||
iot_card_id: Number(card.card_id ?? 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: SwitchModeCardOption) => Number.isFinite(card.iot_card_id) && Boolean(card.iccid)
|
||||
)
|
||||
)
|
||||
|
||||
const hasSwitchModeImei = computed(() => Boolean(cardInfo.value?.imei))
|
||||
|
||||
// ========== 套餐列表分页状态 ==========
|
||||
const packagePagination = ref({
|
||||
page: 1,
|
||||
@@ -375,19 +412,25 @@
|
||||
/**
|
||||
* 确认切换模式
|
||||
*/
|
||||
const handleConfirmSwitchMode = async (form: { switch_mode: number }) => {
|
||||
const handleConfirmSwitchMode = async (form: { iot_card_id: number; switch_mode: 0 | 1 }) => {
|
||||
const identifier = cardInfo.value?.virtual_no || ''
|
||||
if (!identifier) return
|
||||
|
||||
switchModeLoading.value = true
|
||||
try {
|
||||
const { DeviceService } = await import('@/api/modules')
|
||||
const identifier = cardInfo.value?.virtual_no || ''
|
||||
const res = await DeviceService.setSwitchMode(identifier, form.switch_mode)
|
||||
const res = await DeviceService.setSwitchMode(identifier, form)
|
||||
if (res.code === 0) {
|
||||
ElMessage.success('设置切卡模式成功')
|
||||
switchModeDialogVisible.value = false
|
||||
await loadRealtimeStatus(identifier, 'device')
|
||||
} else {
|
||||
ElMessage.error(res.msg || '设置切卡模式失败')
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.error('设置切卡模式失败:', error)
|
||||
ElMessage.error('设置切卡模式失败')
|
||||
} finally {
|
||||
switchModeLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user