This commit is contained in:
bb_pan 2025-11-25 14:59:45 +08:00
parent 6e022a2f27
commit 93027b8b40
10 changed files with 392 additions and 27 deletions

68
src/utils/drawMixin2.js Normal file
View File

@ -0,0 +1,68 @@
// 屏幕适配 mixin 函数
// * 默认缩放值
const scale = {
width: '1',
height: '1',
}
// * 设计稿尺寸px
const baseWidth = 1920
const baseHeight = 1080
const DEBUG_MODE = true
// * 需保持的比例默认1.77778
const baseProportion = parseFloat((baseWidth / baseHeight).toFixed(5))
export default {
data() {
return {
// * 定时函数
drawTiming: null,
}
},
mounted() {
this.calcRate()
window.addEventListener('resize', this.resize)
},
beforeDestroy() {
window.removeEventListener('resize', this.resize)
},
methods: {
calcRate() {
const appRef = this.$refs['appRef']
if (!appRef) return
// 调试模式 - start
if (DEBUG_MODE) {
// 调试模式,不缩放,居中显示
// appRef.style.transform = `translate(-25%, -45%) scale(0.9, 0.9)`
// appRef.style.overflow = 'visible'
// return
}
// 调试模式 - end
// 当前宽高比
const currentRate = parseFloat((window.innerWidth / window.innerHeight).toFixed(5))
if (appRef) {
if (currentRate > baseProportion) {
// 表示更宽
scale.width = ((window.innerHeight * baseProportion) / baseWidth).toFixed(5)
scale.height = (window.innerHeight / baseHeight).toFixed(5)
appRef.style.transform = `scale(${scale.width}, ${scale.height}) translate(-50%, -50%)`
} else {
// 表示更高
scale.height = (window.innerWidth / baseProportion / baseHeight).toFixed(5)
scale.width = (window.innerWidth / baseWidth).toFixed(5)
appRef.style.transform = `scale(${scale.width}, ${scale.height}) translate(-50%, -50%)`
}
}
},
resize() {
clearTimeout(this.drawTiming)
this.drawTiming = setTimeout(() => {
this.calcRate()
}, 200)
},
},
}

View File

@ -294,7 +294,7 @@ tbody tr:hover {
} }
::v-deep .el-select .el-input__inner { ::v-deep .el-select .el-input__inner {
background-color: #1f4a85 !important ; background-color: #0C1837 !important ;
color: #fff !important; color: #fff !important;
} }
</style> </style>

View File

@ -28,6 +28,7 @@
v-model="queryParams.deptName" v-model="queryParams.deptName"
placeholder="请选择" placeholder="请选择"
clearable clearable
:popper-append-to-body="false"
style="width: 240px" style="width: 240px"
@change="changeDept" @change="changeDept"
> >
@ -35,7 +36,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="产权单位" prop="propertyUnit"> <el-form-item label="产权单位" prop="propertyUnit">
<el-select v-model="queryParams.propertyUnit" placeholder="请选择" clearable style="width: 240px"> <el-select
v-model="queryParams.propertyUnit"
placeholder="请选择"
clearable
:popper-append-to-body="false"
style="width: 240px"
>
<el-option <el-option
v-for="item in companyNameList" v-for="item in companyNameList"
:key="item.deptId" :key="item.deptId"
@ -49,6 +56,7 @@
v-model="queryParams.major" v-model="queryParams.major"
placeholder="请选择" placeholder="请选择"
clearable clearable
:popper-append-to-body="false"
style="width: 240px" style="width: 240px"
@change="changeProType" @change="changeProType"
> >
@ -57,6 +65,7 @@
</el-form-item> </el-form-item>
<el-form-item label="装备类目" prop="deviceSeries"> <el-form-item label="装备类目" prop="deviceSeries">
<el-cascader <el-cascader
popper-class="my-cas"
v-model="deviceSeries" v-model="deviceSeries"
:options="deviceSeriesList" :options="deviceSeriesList"
clearable clearable
@ -77,12 +86,24 @@
<el-input v-model="queryParams.originalCode" placeholder="请输入" clearable style="width: 240px" /> <el-input v-model="queryParams.originalCode" placeholder="请输入" clearable style="width: 240px" />
</el-form-item> </el-form-item>
<el-form-item label="装备状态" prop="changeStatus"> <el-form-item label="装备状态" prop="changeStatus">
<el-select v-model="queryParams.changeStatus" placeholder="请选择" clearable style="width: 240px"> <el-select
v-model="queryParams.changeStatus"
placeholder="请选择"
clearable
:popper-append-to-body="false"
style="width: 240px"
>
<el-option v-for="item in changeStatusList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in changeStatusList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所在项目" prop="onProject"> <el-form-item label="所在项目" prop="onProject">
<el-select v-model="queryParams.onProject" placeholder="请选择" clearable style="width: 240px"> <el-select
v-model="queryParams.onProject"
placeholder="请选择"
clearable
:popper-append-to-body="false"
style="width: 240px"
>
<el-option <el-option
v-for="item in onProjectList" v-for="item in onProjectList"
:key="item.proCode" :key="item.proCode"
@ -99,6 +120,7 @@
</el-form-item> </el-form-item>
<el-form-item label="出厂日期" prop="productionDate"> <el-form-item label="出厂日期" prop="productionDate">
<el-date-picker <el-date-picker
popper-class="my-date"
v-model="queryParams.productionDate" v-model="queryParams.productionDate"
type="date" type="date"
placeholder="请选择" placeholder="请选择"
@ -109,7 +131,13 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="使用年限" prop="maxServiceLifeYears"> <el-form-item label="使用年限" prop="maxServiceLifeYears">
<el-select v-model="queryParams.maxServiceLifeYears" placeholder="请选择" clearable style="width: 240px"> <el-select
v-model="queryParams.maxServiceLifeYears"
placeholder="请选择"
clearable
:popper-append-to-body="false"
style="width: 240px"
>
<el-option v-for="item in workingHoursList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in workingHoursList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -118,6 +146,7 @@
</el-form-item> </el-form-item>
<el-form-item label="下次检测日期" prop="nextMaintenanceDate"> <el-form-item label="下次检测日期" prop="nextMaintenanceDate">
<el-date-picker <el-date-picker
popper-class="my-date"
v-model="queryParams.nextMaintenanceDate" v-model="queryParams.nextMaintenanceDate"
type="date" type="date"
placeholder="请选择" placeholder="请选择"
@ -477,6 +506,41 @@ export default {
::v-deep .el-dialog__header { ::v-deep .el-dialog__header {
display: none; display: none;
} }
::v-deep .el-table {
//
&.el-table--striped .el-table__body {
tr.el-table__row--striped td {
background-color: #0d214580 !important; //
}
}
.el-table__header {
background: transparent;
}
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
background-color: rgba(16, 37, 81, 0.9) !important;
}
}
::v-deep .el-table td,
::v-deep .el-table th.is-leaf {
border-bottom: none !important;
}
::v-deep .el-table::before,
.el-table--group::after,
.el-table--border::after {
background-color: transparent !important;
}
/* 隐藏表格滚动条 */
::v-deep .el-table__body-wrapper::-webkit-scrollbar {
width: 0 !important;
height: 0 !important;
}
::v-deep .el-table__body-wrapper {
scrollbar-width: none !important; /* Firefox */
-ms-overflow-style: none !important; /* IE/Edge */
}
// //
::v-deep .el-input__inner { ::v-deep .el-input__inner {
background: rgba(3, 16, 44, 0.5) !important; background: rgba(3, 16, 44, 0.5) !important;
@ -536,6 +600,22 @@ export default {
::v-deep .el-pagination.is-background .btn-next { ::v-deep .el-pagination.is-background .btn-next {
background-color: rgba(16, 37, 81, 0.5); background-color: rgba(16, 37, 81, 0.5);
} }
::v-deep .el-select-dropdown {
background-color: #0C1837 !important;
border: 1px solid #0C1837 !important;
overflow: hidden;
}
::v-deep .el-scrollbar {
/* height: 184px !important; */
background-color: #0C1837 !important;
}
::v-deep .el-select-dropdown__item {
color: #fff !important;
}
::v-deep .el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {
background: #0C1837 !important;
}
// -- // --
.btn { .btn {
@ -579,3 +659,21 @@ export default {
} }
} }
</style> </style>
<style lang="scss">
.my-cas {
background-color: #0C1837 !important;
}
.my-cas .el-cascader-menu {
color: #fff !important;
}
.my-cas .el-cascader-node:not(.is-disabled):hover,
.el-cascader-node:not(.is-disabled):focus {
background-color: #0C1837 !important;
}
.my-date {
background-color: #0C1837 !important;
}
.my-date .el-picker-panel {
color: #fff !important;
}
</style>

View File

@ -16,7 +16,13 @@
<!-- 表单 --> <!-- 表单 -->
<el-form v-show="showSearch" :model="queryParams" ref="queryForm" size="small" inline @submit.native.prevent> <el-form v-show="showSearch" :model="queryParams" ref="queryForm" size="small" inline @submit.native.prevent>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择" clearable style="width: 240px"> <el-select
v-model="queryParams.status"
placeholder="请选择"
clearable
style="width: 240px"
:popper-append-to-body="false"
>
<el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -191,6 +197,41 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-table {
//
&.el-table--striped .el-table__body {
tr.el-table__row--striped td {
background-color: #0d214580 !important; //
}
}
.el-table__header {
background: transparent;
}
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
background-color: rgba(16, 37, 81, 0.9) !important;
}
}
::v-deep .el-table td,
::v-deep .el-table th.is-leaf {
border-bottom: none !important;
}
::v-deep .el-table::before,
.el-table--group::after,
.el-table--border::after {
background-color: transparent !important;
}
/* 隐藏表格滚动条 */
::v-deep .el-table__body-wrapper::-webkit-scrollbar {
width: 0 !important;
height: 0 !important;
}
::v-deep .el-table__body-wrapper {
scrollbar-width: none !important; /* Firefox */
-ms-overflow-style: none !important; /* IE/Edge */
}
::v-deep .el-dialog { ::v-deep .el-dialog {
background: transparent !important; background: transparent !important;
} }
@ -301,4 +342,19 @@ export default {
font-weight: 800; font-weight: 800;
} }
} }
::v-deep .el-select-dropdown {
background-color: #0C1837 !important;
border: 1px solid #0C1837 !important;
overflow: hidden;
}
::v-deep .el-scrollbar {
background-color: #0C1837 !important;
}
::v-deep .el-select-dropdown__item {
color: #fff !important;
}
::v-deep .el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {
background: #0C1837 !important;
}
</style> </style>

View File

@ -104,6 +104,41 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-table {
//
&.el-table--striped .el-table__body {
tr.el-table__row--striped td {
background-color: #0d214580 !important; //
}
}
.el-table__header {
background: transparent;
}
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
background-color: rgba(16, 37, 81, 0.9) !important;
}
}
::v-deep .el-table td,
::v-deep .el-table th.is-leaf {
border-bottom: none !important;
}
::v-deep .el-table::before,
.el-table--group::after,
.el-table--border::after {
background-color: transparent !important;
}
/* 隐藏表格滚动条 */
::v-deep .el-table__body-wrapper::-webkit-scrollbar {
width: 0 !important;
height: 0 !important;
}
::v-deep .el-table__body-wrapper {
scrollbar-width: none !important; /* Firefox */
-ms-overflow-style: none !important; /* IE/Edge */
}
::v-deep .el-dialog { ::v-deep .el-dialog {
background: transparent !important; background: transparent !important;
} }

View File

@ -95,6 +95,41 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-table {
//
&.el-table--striped .el-table__body {
tr.el-table__row--striped td {
background-color: #0d214580 !important; //
}
}
.el-table__header {
background: transparent;
}
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
background-color: rgba(16, 37, 81, 0.9) !important;
}
}
::v-deep .el-table td,
::v-deep .el-table th.is-leaf {
border-bottom: none !important;
}
::v-deep .el-table::before,
.el-table--group::after,
.el-table--border::after {
background-color: transparent !important;
}
/* 隐藏表格滚动条 */
::v-deep .el-table__body-wrapper::-webkit-scrollbar {
width: 0 !important;
height: 0 !important;
}
::v-deep .el-table__body-wrapper {
scrollbar-width: none !important; /* Firefox */
-ms-overflow-style: none !important; /* IE/Edge */
}
::v-deep .el-dialog { ::v-deep .el-dialog {
background: transparent !important; background: transparent !important;
} }

View File

@ -135,6 +135,41 @@ export default {
::v-deep .el-dialog__header { ::v-deep .el-dialog__header {
display: none; display: none;
} }
::v-deep .el-table {
//
&.el-table--striped .el-table__body {
tr.el-table__row--striped td {
background-color: #0d214580 !important; //
}
}
.el-table__header {
background: transparent;
}
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
background-color: rgba(16, 37, 81, 0.9) !important;
}
}
::v-deep .el-table td,
::v-deep .el-table th.is-leaf {
border-bottom: none !important;
}
::v-deep .el-table::before,
.el-table--group::after,
.el-table--border::after {
background-color: transparent !important;
}
/* 隐藏表格滚动条 */
::v-deep .el-table__body-wrapper::-webkit-scrollbar {
width: 0 !important;
height: 0 !important;
}
::v-deep .el-table__body-wrapper {
scrollbar-width: none !important; /* Firefox */
-ms-overflow-style: none !important; /* IE/Edge */
}
// //
::v-deep .el-input__inner { ::v-deep .el-input__inner {
background: rgba(3, 16, 44, 0.5) !important; background: rgba(3, 16, 44, 0.5) !important;

View File

@ -317,15 +317,15 @@ tbody tr:hover {
} }
::v-deep .el-select .el-input__inner { ::v-deep .el-select .el-input__inner {
background-color: #1f4a85 !important ; background-color: #0C1837 !important ;
color: #fff !important; color: #fff !important;
} }
::v-deep .el-select-dropdown { ::v-deep .el-select-dropdown {
background-color: #1f4a85 !important; background-color: #0C1837 !important;
left: -300px !important; left: -300px !important;
width: 400px !important; width: 400px !important;
height: 180px !important; height: 180px !important;
border: 1px solid #1f4a85 !important; border: 1px solid #0C1837 !important;
overflow: hidden; overflow: hidden;
} }
::v-deep .el-scrollbar { ::v-deep .el-scrollbar {
@ -336,6 +336,6 @@ tbody tr:hover {
} }
::v-deep .el-select-dropdown__item.hover, ::v-deep .el-select-dropdown__item.hover,
.el-select-dropdown__item:hover { .el-select-dropdown__item:hover {
background: #1f4a85 !important; background: #0C1837 !important;
} }
</style> </style>

View File

@ -11,7 +11,7 @@
<div> <div>
<!-- 自定义title --> <!-- 自定义title -->
<i class="close-btn" @click="dialogVisible = false" /> <i class="close-btn" @click="dialogVisible = false" />
<div class="dlg-title">各单位装备在用率情况</div> <div class="dlg-title">各单位在用率情况</div>
<el-table <el-table
v-loading="isLoading" v-loading="isLoading"
@ -107,6 +107,22 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-table {
//
&.el-table--striped .el-table__body {
tr.el-table__row--striped td {
background-color: #0d214580 !important; //
}
}
.el-table__header {
background: transparent;
}
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
background-color: rgba(16, 37, 81, 0.9) !important;
}
}
::v-deep .el-dialog { ::v-deep .el-dialog {
background: transparent !important; background: transparent !important;
} }
@ -178,6 +194,24 @@ export default {
::v-deep .el-pagination.is-background .btn-next { ::v-deep .el-pagination.is-background .btn-next {
background-color: rgba(16, 37, 81, 0.5); background-color: rgba(16, 37, 81, 0.5);
} }
::v-deep .el-table td,
::v-deep .el-table th.is-leaf {
border-bottom: none !important;
}
::v-deep .el-table::before, .el-table--group::after, .el-table--border::after {
background-color: transparent !important;
}
/* 隐藏表格滚动条 */
::v-deep .el-table__body-wrapper::-webkit-scrollbar {
width: 0 !important;
height: 0 !important;
}
::v-deep .el-table__body-wrapper {
scrollbar-width: none !important; /* Firefox */
-ms-overflow-style: none !important; /* IE/Edge */
}
// -- // --
.btn { .btn {

View File

@ -1,26 +1,25 @@
<template> <template>
<div id="index" ref="appRef"> <div class="wrap">
<div class="bg" id="app"> <div id="index" ref="appRef">
<!-- <left /> <div class="bg" id="app">
<center /> <el-row :gutter="0">
<right /> --> <el-col :span="7" :offset="0"><left /></el-col>
<el-row :gutter="0"> <el-col :span="10" :offset="0"><center /></el-col>
<el-col :span="7" :offset="0"><left /></el-col> <el-col class="right" :span="7" :offset="0"><right /></el-col>
<el-col :span="10" :offset="0"><center /></el-col> </el-row>
<el-col class="right" :span="7" :offset="0"><right /></el-col> </div>
</el-row>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
// import drawMixin from '@/utils/drawMixin2' import drawMixin from '@/utils/drawMixin2'
import left from './components/left' import left from './components/left'
import center from './components/center' import center from './components/center'
import right from './components/right' import right from './components/right'
export default { export default {
// mixins: [drawMixin], mixins: [drawMixin],
components: { components: {
left, left,
center, center,
@ -49,17 +48,22 @@ export default {
font-family: 'DIN'; font-family: 'DIN';
src: url('../../../assets/font-family/DIN/DIN-Medium.otf'); src: url('../../../assets/font-family/DIN/DIN-Medium.otf');
} }
.wrap {
width: 100%;
height: 100%;
background-color: #333;
}
#index { #index {
color: #d3d6dd; color: #d3d6dd;
/* width: 100%; /* width: 100%;
height: 100%; */ height: 100%; */
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
/* position: absolute; */ position: absolute;
/* top: 50%; top: 50%;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
transform-origin: left top; */ transform-origin: left top;
overflow: hidden; overflow: hidden;
background-image: url('../../screen/wsScreen/img/bg.jpg'); background-image: url('../../screen/wsScreen/img/bg.jpg');
background-size: 100% 100%; background-size: 100% 100%;
@ -74,6 +78,6 @@ export default {
} }
.right { .right {
// //
transform: translateX(-40px); margin-left: -40px;
} }
</style> </style>