feat: 新增卡视角以及设备视角的实名同步时间,卡状态同步时间,流量同步时间
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m56s

This commit is contained in:
sexygoat
2026-05-18 12:23:35 +08:00
parent 877c741d72
commit 894aea0e74
18 changed files with 544 additions and 63 deletions

View File

@@ -379,6 +379,15 @@
>
<ElInput v-model="seriesBindingForm.iccid_end" placeholder="请输入结束ICCID" />
</ElFormItem>
<div
v-if="
seriesBindingForm.selection_type === CardSelectionType.RANGE &&
seriesBindingRangeCountText
"
class="range-allocation-hint range-allocation-hint--card"
>
共分配{{ seriesBindingRangeCountText }}张卡
</div>
<ElFormItem
v-if="seriesBindingForm.selection_type === CardSelectionType.FILTER"
label="运营商"
@@ -608,7 +617,7 @@
</template>
<script setup lang="ts">
import { h } from 'vue'
import { computed, h } from 'vue'
import { useRouter } from 'vue-router'
import { RoutesAlias } from '@/router/routesAlias'
import {
@@ -689,6 +698,31 @@
batch_no: ''
})
const seriesBindingForm = reactive(createInitialSeriesBindingState())
const parseNumericStringToBigInt = (value: string): bigint | null => {
const normalizedValue = value.trim()
if (!normalizedValue || !/^\d+$/.test(normalizedValue)) {
return null
}
try {
return BigInt(normalizedValue)
} catch {
return null
}
}
const getPositiveRangeCountText = (start: bigint | null, end: bigint | null): string => {
if (start === null || end === null || end < start) {
return ''
}
return (end - start + 1n).toString()
}
const seriesBindingRangeCountText = computed(() =>
getPositiveRangeCountText(
parseNumericStringToBigInt(seriesBindingForm.iccid_start),
parseNumericStringToBigInt(seriesBindingForm.iccid_end)
)
)
const seriesBindingRules = reactive<FormRules>({
selection_type: [{ required: true, message: '请选择选卡方式', trigger: 'change' }],
series_id: [{ required: true, message: '请选择套餐系列', trigger: 'change' }],
@@ -2149,6 +2183,16 @@
</script>
<style lang="scss" scoped>
.range-allocation-hint {
color: var(--el-text-color-secondary);
font-size: 13px;
line-height: 20px;
}
.range-allocation-hint--card {
margin: -6px 0 18px 100px;
}
:deep(.el-table__row.table-row-with-context-menu) {
cursor: pointer;
}