新增运营商
Some checks failed
构建并部署前端到测试环境 / build-and-deploy (push) Failing after 8s

This commit is contained in:
sexygoat
2026-03-31 16:55:54 +08:00
parent 3372be99b8
commit 01f81c2178
6 changed files with 666 additions and 555 deletions

1136
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -53,10 +53,10 @@
"@vueuse/core": "^11.0.0",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "next",
"axios": "^1.7.5",
"axios": "1.13.5",
"crypto-js": "^4.2.0",
"echarts": "^5.4.0",
"element-plus": "^2.8.0",
"element-plus": "2.11.3",
"file-saver": "^2.0.5",
"highlight.js": "^11.10.0",
"md-editor-v3": "^4.17.0",
@@ -68,7 +68,7 @@
"qrcode.vue": "^3.6.0",
"vue": "^3.5.12",
"vue-draggable-plus": "^0.6.0",
"vue-i18n": "^9.14.0",
"vue-i18n": "11.1.10",
"vue-router": "^4.4.2",
"vue3-count-to": "^1.1.2",
"xgplayer": "^3.0.20",
@@ -106,7 +106,7 @@
"typescript-eslint": "^8.9.0",
"unplugin-auto-import": "^0.18.3",
"unplugin-vue-components": "^0.27.4",
"vite": "^6.1.0",
"vite": "7.1.11",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-imagemin": "^0.6.1",
"vue-demi": "^0.14.9",

View File

@@ -19,6 +19,7 @@ export interface Carrier {
carrier_name: string
carrier_type: CarrierType
description?: string
data_reset_day?: number | null // 上游流量重置日(1-28)
status: number
created_at: string
updated_at: string
@@ -37,12 +38,14 @@ export interface CreateCarrierParams {
carrier_name: string
carrier_type: CarrierType
description?: string
data_reset_day?: number | null // 上游流量重置日(1-28)
}
// 更新运营商请求参数
export interface UpdateCarrierParams {
carrier_name?: string
description?: string
data_reset_day?: number | null // 上游流量重置日(1-28)
}
// 更新运营商状态参数

View File

@@ -85,6 +85,7 @@ export interface DeviceCardBinding {
carrier_name: string // 运营商名称
slot_position: number // 插槽位置 (1-4)
status: number // 卡状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)
network_status: number // 网络状态 (0:停机, 1:开机)
bind_time: string | null // 绑定时间
is_current?: boolean // 是否为设备当前使用的卡
}

View File

@@ -413,10 +413,10 @@
</ElTableColumn>
<ElTableColumn prop="iccid" label="ICCID" min-width="180" />
<ElTableColumn prop="msisdn" label="接入号" width="140" />
<ElTableColumn prop="status" label="状态" width="100" align="center">
<ElTableColumn prop="network_status" label="网络状态" width="100" align="center">
<template #default="{ row }">
<ElTag :type="getCardStatusTagType(row.status)">
{{ getCardStatusText(row.status) }}
<ElTag :type="getNetworkStatusTagType(row.network_status)">
{{ getNetworkStatusText(row.network_status) }}
</ElTag>
</template>
</ElTableColumn>
@@ -1072,6 +1072,29 @@
return textMap[status] || '未知'
}
// 获取网络状态标签类型
const getNetworkStatusTagType = (networkStatus: number) => {
// 0: 停机 (danger 红色)
// 1: 开机 - 正常/异常 (success 绿色 / warning 黄色)
if (networkStatus === 0) {
return 'danger' // 停机 - 红色
} else if (networkStatus === 1) {
return 'success' // 开机正常 - 绿色
}
return 'info' // 未知状态
}
// 获取网络状态文本
const getNetworkStatusText = (networkStatus: number) => {
// 0: 停机
// 1: 开机 - 显示为"正常"
const textMap: Record<number, string> = {
0: '停机',
1: '正常' // 开机显示为"正常"
}
return textMap[networkStatus] || '未知'
}
// 获取设备状态标签类型
const getDeviceStatusTagType = (status: number) => {
const typeMap: Record<number, any> = {

View File

@@ -105,6 +105,20 @@
placeholder="请输入运营商描述"
/>
</ElFormItem>
<ElFormItem label="流量重置日" prop="data_reset_day">
<ElInputNumber
v-model="form.data_reset_day"
:min="1"
:max="28"
:step="1"
controls-position="right"
placeholder="请输入流量重置日"
style="width: 100%"
/>
<div style="margin-top: 5px; font-size: 12px; color: #909399">
运营商每月清零网关计数器的日期1-28默认为1日
</div>
</ElFormItem>
<ElFormItem label="实名链接类型" prop="realname_link_type">
<ElSelect
v-model="form.realname_link_type"
@@ -270,6 +284,27 @@
],
carrier_type: [{ required: true, message: '请选择运营商类型', trigger: 'change' }],
description: [{ max: 500, message: '描述不能超过500个字符', trigger: 'blur' }],
data_reset_day: [
{
validator: (rule: any, value: any, callback: any) => {
if (value === null || value === undefined || value === '') {
callback() // 允许为空
} else {
const numValue = Number(value)
if (isNaN(numValue)) {
callback(new Error('请输入有效的数字'))
} else if (!Number.isInteger(numValue)) {
callback(new Error('请输入整数'))
} else if (numValue < 1 || numValue > 28) {
callback(new Error('流量重置日必须在1-28之间'))
} else {
callback()
}
}
},
trigger: 'blur'
}
],
realname_link_type: [{ required: true, message: '请选择实名链接类型', trigger: 'change' }],
realname_link_template: [
{
@@ -292,6 +327,7 @@
carrier_name: '',
carrier_type: null,
description: '',
data_reset_day: 1,
realname_link_type: 'none',
realname_link_template: ''
})
@@ -433,6 +469,7 @@
form.carrier_name = row.carrier_name
form.carrier_type = row.carrier_type
form.description = row.description
form.data_reset_day = row.data_reset_day || 1
form.realname_link_type = row.realname_link_type || 'none'
form.realname_link_template = row.realname_link_template || ''
} else {
@@ -441,6 +478,7 @@
form.carrier_name = ''
form.carrier_type = null
form.description = ''
form.data_reset_day = 1
form.realname_link_type = 'none'
form.realname_link_template = ''
}
@@ -493,7 +531,8 @@
carrier_code: form.carrier_code,
carrier_name: form.carrier_name,
carrier_type: form.carrier_type as CarrierType,
description: form.description || undefined
description: form.description || undefined,
data_reset_day: form.data_reset_day || null
}
if (dialogType.value === 'add') {
@@ -502,7 +541,8 @@
} else {
const updateData = {
carrier_name: form.carrier_name,
description: form.description || undefined
description: form.description || undefined,
data_reset_day: form.data_reset_day || null
}
await CarrierService.updateCarrier(form.id, updateData)
ElMessage.success('修改成功')