Merge pull request #968 from xinnan-tech/web-vue-ota-modify

Web vue ota modify
This commit is contained in:
Sakura-RanChen
2025-04-24 11:54:08 +08:00
committed by GitHub
+124 -14
View File
@@ -15,8 +15,15 @@
<div class="content-panel"> <div class="content-panel">
<div class="content-area"> <div class="content-area">
<el-card class="params-card" shadow="never"> <el-card class="params-card" shadow="never">
<el-table ref="paramsTable" :data="paramsList" class="transparent-table" <el-table
:header-cell-class-name="headerCellClassName"> ref="paramsTable"
:data="paramsList"
class="transparent-table"
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(255, 255, 255, 0.7)"
:header-cell-class-name="headerCellClassName">
<el-table-column label="选择" align="center" width="120"> <el-table-column label="选择" align="center" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-checkbox v-model="scope.row.selected"></el-checkbox> <el-checkbox v-model="scope.row.selected"></el-checkbox>
@@ -107,6 +114,7 @@ export default {
data() { data() {
return { return {
searchName: "", searchName: "",
loading: false,
paramsList: [], paramsList: [],
firmwareList: [], firmwareList: [],
currentPage: 1, currentPage: 1,
@@ -158,6 +166,7 @@ export default {
this.fetchFirmwareList(); this.fetchFirmwareList();
}, },
fetchFirmwareList() { fetchFirmwareList() {
this.loading = true;
const params = { const params = {
pageNum: this.currentPage, pageNum: this.currentPage,
pageSize: this.pageSize, pageSize: this.pageSize,
@@ -166,6 +175,7 @@ export default {
order: "desc" order: "desc"
}; };
Api.ota.getOtaList(params, (res) => { Api.ota.getOtaList(params, (res) => {
this.loading = false;
res = res.data res = res.data
if (res.code === 0) { if (res.code === 0) {
this.firmwareList = res.data.list.map(item => ({ this.firmwareList = res.data.list.map(item => ({
@@ -460,12 +470,20 @@ export default {
.params-card { .params-card {
background: white; background: white;
border: none; flex: 1;
box-shadow: none;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex: 1; border: none;
box-shadow: none;
overflow: hidden; overflow: hidden;
::v-deep .el-card__body {
padding: 15px;
display: flex;
flex-direction: column;
flex: 1;
overflow: hidden;
}
} }
.table_bottom { .table_bottom {
@@ -513,7 +531,7 @@ export default {
.custom-pagination { .custom-pagination {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 10px; gap: 5px;
.el-select { .el-select {
margin-right: 8px; margin-right: 8px;
@@ -580,21 +598,67 @@ export default {
.page-size-select { .page-size-select {
width: 100px; width: 100px;
} margin-right: 10px;
.custom-selection-header { :deep(.el-input__inner) {
text-align: center !important; height: 32px;
line-height: 32px;
border-radius: 4px;
border: 1px solid #e4e7ed;
background: #dee7ff;
color: #606266;
font-size: 14px;
}
:deep(.el-input__suffix) {
right: 6px;
width: 15px;
height: 20px;
display: flex;
justify-content: center;
align-items: center;
top: 6px;
border-radius: 4px;
}
:deep(.el-input__suffix-inner) {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
}
:deep(.el-icon-arrow-up:before) {
content: "";
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 9px solid #606266;
position: relative;
transform: rotate(0deg);
transition: transform 0.3s;
}
} }
:deep(.transparent-table) { :deep(.transparent-table) {
background-color: transparent; background: white;
flex: 1;
width: 100%;
display: flex;
flex-direction: column;
.el-table__body-wrapper {
flex: 1;
overflow-y: auto;
max-height: none !important;
}
.el-table__header-wrapper { .el-table__header-wrapper {
flex-shrink: 0; flex-shrink: 0;
} }
.el-table__header th { .el-table__header th {
background-color: white !important; background: white !important;
color: black; color: black;
font-weight: 600; font-weight: 600;
height: 40px; height: 40px;
@@ -603,10 +667,12 @@ export default {
border-bottom: 1px solid #e4e7ed; border-bottom: 1px solid #e4e7ed;
} }
.el-table__body-wrapper { .el-table__body tr {
background-color: white;
td { td {
background-color: transparent; border-top: 1px solid rgba(0, 0, 0, 0.04);
border-bottom: 1px solid #e4e7ed; border-bottom: 1px solid rgba(0, 0, 0, 0.04);
padding: 8px 0; padding: 8px 0;
height: 40px; height: 40px;
color: #606266; color: #606266;
@@ -617,6 +683,10 @@ export default {
.el-table__row:hover>td { .el-table__row:hover>td {
background-color: #f5f7fa !important; background-color: #f5f7fa !important;
} }
&::before {
display: none;
}
} }
:deep(.el-table .el-button--text) { :deep(.el-table .el-button--text) {
@@ -640,4 +710,44 @@ export default {
background-color: #5f70f3 !important; background-color: #5f70f3 !important;
border-color: #5f70f3 !important; border-color: #5f70f3 !important;
} }
:deep(.el-loading-mask) {
background-color: rgba(255, 255, 255, 0.6) !important;
backdrop-filter: blur(2px);
}
:deep(.el-loading-spinner .path) {
stroke: #6b8cff;
}
.el-table {
--table-max-height: calc(100vh - 40vh);
max-height: var(--table-max-height);
.el-table__body-wrapper {
max-height: calc(var(--table-max-height) - 40px);
}
}
@media (min-width: 1144px) {
.table_bottom {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 40px;
}
:deep(.transparent-table) {
.el-table__body tr {
td {
padding-top: 16px;
padding-bottom: 16px;
}
&+tr {
margin-top: 10px;
}
}
}
}
</style> </style>