fetch(add): 账户管理

This commit is contained in:
sexygoat
2026-01-23 17:18:24 +08:00
parent 339abca4c0
commit b53fea43c6
93 changed files with 7094 additions and 3153 deletions

View File

@@ -21,7 +21,9 @@
</template>
</ElAlert>
<ElButton type="primary" :icon="Download" @click="downloadTemplate">下载导入模板</ElButton>
<ElButton type="primary" :icon="Download" @click="downloadTemplate"
>下载导入模板</ElButton
>
</ElCol>
<ElCol :xs="24" :lg="12">
@@ -44,7 +46,12 @@
</template>
</ElUpload>
<div style="margin-top: 16px; text-align: center">
<ElButton type="success" :loading="uploading" :disabled="!fileList.length" @click="submitUpload">
<ElButton
type="success"
:loading="uploading"
:disabled="!fileList.length"
@click="submitUpload"
>
开始导入
</ElButton>
<ElButton @click="clearFiles">清空</ElButton>
@@ -71,7 +78,9 @@
<div class="stat-label">成功绑定</div>
<div class="stat-value" style="color: var(--el-color-success)">1,180</div>
</div>
<el-icon class="stat-icon" style="color: var(--el-color-success)"><SuccessFilled /></el-icon>
<el-icon class="stat-icon" style="color: var(--el-color-success)"
><SuccessFilled
/></el-icon>
</ElCard>
</ElCol>
<ElCol :xs="24" :sm="12" :lg="6">
@@ -80,7 +89,9 @@
<div class="stat-label">导入失败</div>
<div class="stat-value" style="color: var(--el-color-danger)">70</div>
</div>
<el-icon class="stat-icon" style="color: var(--el-color-danger)"><CircleCloseFilled /></el-icon>
<el-icon class="stat-icon" style="color: var(--el-color-danger)"
><CircleCloseFilled
/></el-icon>
</ElCard>
</ElCol>
<ElCol :xs="24" :sm="12" :lg="6">
@@ -89,7 +100,9 @@
<div class="stat-label">成功率</div>
<div class="stat-value">94.4%</div>
</div>
<el-icon class="stat-icon" style="color: var(--el-color-warning)"><TrendCharts /></el-icon>
<el-icon class="stat-icon" style="color: var(--el-color-warning)"
><TrendCharts
/></el-icon>
</ElCard>
</ElCol>
</ElRow>
@@ -97,10 +110,15 @@
<!-- 导入记录 -->
<ElCard shadow="never" style="margin-top: 20px">
<template #header>
<div style="display: flex; justify-content: space-between; align-items: center">
<div style="display: flex; align-items: center; justify-content: space-between">
<span style="font-weight: 500">导入记录</span>
<div>
<ElSelect v-model="statusFilter" placeholder="状态筛选" style="width: 120px; margin-right: 12px" clearable>
<ElSelect
v-model="statusFilter"
placeholder="状态筛选"
style="width: 120px; margin-right: 12px"
clearable
>
<ElOption label="全部" value="" />
<ElOption label="处理中" value="processing" />
<ElOption label="完成" value="success" />
@@ -190,7 +208,10 @@
</ElDescriptions>
<ElDivider content-position="left">失败明细</ElDivider>
<div v-if="currentDetail.failReasons && currentDetail.failReasons.length" style="max-height: 300px; overflow-y: auto">
<div
v-if="currentDetail.failReasons && currentDetail.failReasons.length"
style="max-height: 300px; overflow-y: auto"
>
<ElTable :data="currentDetail.failReasons" border size="small">
<ElTableColumn label="行号" prop="row" width="80" />
<ElTableColumn label="设备编号" prop="deviceCode" width="150" />
@@ -202,7 +223,12 @@
<template #footer>
<ElButton @click="detailDialogVisible = false">关闭</ElButton>
<ElButton v-if="currentDetail.failCount > 0" type="primary" :icon="Download" @click="downloadFailData(currentDetail)">
<ElButton
v-if="currentDetail.failCount > 0"
type="primary"
:icon="Download"
@click="downloadFailData(currentDetail)"
>
下载失败数据
</ElButton>
</template>
@@ -303,7 +329,12 @@
importTime: '2026-01-07 10:15:00',
operator: 'operator01',
failReasons: [
{ row: 10, deviceCode: 'GPS001', iccid: '89860123456789012349', message: 'ICCID 已被其他设备绑定' },
{
row: 10,
deviceCode: 'GPS001',
iccid: '89860123456789012349',
message: 'ICCID 已被其他设备绑定'
},
{ row: 20, deviceCode: 'GPS002', iccid: '89860123456789012350', message: 'ICCID 状态异常' }
]
}
@@ -368,7 +399,12 @@
importTime: new Date().toLocaleString('zh-CN'),
operator: 'admin',
failReasons: [
{ row: 12, deviceCode: 'TEST001', iccid: '89860123456789012351', message: 'ICCID 不存在' },
{
row: 12,
deviceCode: 'TEST001',
iccid: '89860123456789012351',
message: 'ICCID 不存在'
},
{ row: 34, deviceCode: 'TEST002', iccid: '89860123456789012352', message: '设备类型无效' }
]
}
@@ -421,18 +457,18 @@
}
:deep(.el-icon--upload) {
margin-bottom: 16px;
font-size: 67px;
color: var(--el-text-color-placeholder);
margin-bottom: 16px;
}
:deep(.el-upload__text) {
color: var(--el-text-color-regular);
font-size: 14px;
color: var(--el-text-color-regular);
em {
color: var(--el-color-primary);
font-style: normal;
color: var(--el-color-primary);
}
}
@@ -444,6 +480,7 @@
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
@@ -459,9 +496,9 @@
.stat-content {
.stat-label {
margin-bottom: 8px;
font-size: 14px;
color: var(--el-text-color-secondary);
margin-bottom: 8px;
}
.stat-value {