Merge branch 'develop' into single-develop

This commit is contained in:
白菜
2025-12-05 09:16:54 +08:00
3 changed files with 204 additions and 161 deletions

View File

@ -190,6 +190,9 @@
//公共表格样式
.el-table{
font-size:13px;
}
.common-table.el-table{
color:#333333;
.el-table__header-wrapper th, .el-table__fixed-header-wrapper th {

View File

@ -1,7 +1,10 @@
<template>
<el-dialog :visible.sync="show" class="ems-dialog" title="点位上传" width="400px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
<el-dialog :visible.sync="show" class="ems-dialog" title="点位上传" width="400px" append-to-body
:close-on-click-modal="false" :close-on-press-escape="false">
<!-- <file-upload :fileType='["xls", "xlsx"]' value="String" :limit="1" :drag="false" @input="updateFile"/>-->
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url" :data="upload.data" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url"
:data="upload.data" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
@ -21,6 +24,7 @@
</style>
<script>
import {getToken} from "@/utils/auth"
export default {
data() {
return {
@ -38,8 +42,8 @@ export default {
}
},
methods: {
showDialog({siteId,deviceId,deviceCategory}){
this.upload.data={siteId,deviceId,deviceCategory}
showDialog({siteId, code}) {
this.upload.data = {siteId, deviceCategory: code}
this.show = true;
},
//关闭弹窗 重置数据

View File

@ -1,10 +1,11 @@
<template>
<div class="ems-dashboard-editor-container" style="background-color: #ffffff" v-loading="loading">
<el-form :inline="true" class="select-container">
<el-form-item label="站点选择">
<el-select v-model="siteId" placeholder="请选择换电站名称" :loading="searchLoading" loading-text="正在加载数据" @change="onSearch" clearable>
<el-option :label="item.siteName" :value="item.siteId" v-for="(item,index) in siteList" :key="index+'zdxeSelect'"></el-option>
<el-select v-model="siteId" placeholder="请选择换电站名称" :loading="searchLoading" loading-text="正在加载数据"
@change="onSearch" clearable>
<el-option :label="item.siteName" :value="item.siteId" v-for="(item,index) in siteList"
:key="index+'zdxeSelect'"></el-option>
</el-select>
</el-form-item>
<el-form-item>
@ -13,6 +14,36 @@
</el-form-item>
</el-form>
<el-button type="primary" @click="addDevice" native-type="button">新增设备</el-button>
<el-dropdown @command="downloadPointDetail">
<el-button
style="margin-left:10px;"
type="primary"
plain>
下载点位清单
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item,index) in deviceCategoryList" :key="index+'deviceCategoryList'"
:command="item">
{{ item.name }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-dropdown @command="uploadPointDetail">
<el-button
style="margin-left:10px;"
type="success"
plain>
上传点位清单
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item,index) in deviceCategoryList" :key="index+'deviceCategoryList'"
:command="item">
{{ item.name }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-table
class="common-table"
:data="tableData"
@ -65,23 +96,6 @@
报警点位清单
</el-button>
<br>
<el-button
@click="downloadPointDetail(scope.row)"
style="margin-top:10px;"
type="primary"
plain
size="mini">
下载点位清单
</el-button>
<el-button
@click="uploadPointDetail(scope.row)"
style="margin-top:10px;"
type="success"
plain
size="mini">
上传点位清单
</el-button>
<br>
<el-button
@click="editDevice(scope.row)"
style="margin-top:10px;"
@ -112,10 +126,14 @@
style="margin-top:15px;text-align: center"
>
</el-pagination>
<el-dialog :visible.sync="dialogTableVisible" class="ems-dialog" title=" 详细信息" :close-on-click-modal="false" :before-close="handleClosed">
<el-dialog :visible.sync="dialogTableVisible" class="ems-dialog" title=" 详细信息" :close-on-click-modal="false"
:before-close="handleClosed">
<div class="descriptions-main" style="padding: 0">
<el-descriptions direction="vertical" :column="2" :colon="false" border>
<el-descriptions-item v-for="(item,index) in detailData" :key="index+'descriptions'" labelClassName="descriptions-label" contentClassName="descriptions-direction" :span="1" :label="item.label">{{item.value}}</el-descriptions-item>
<el-descriptions-item v-for="(item,index) in detailData" :key="index+'descriptions'"
labelClassName="descriptions-label" contentClassName="descriptions-direction" :span="1"
:label="item.label">{{ item.value }}
</el-descriptions-item>
</el-descriptions>
</div>
</el-dialog>
@ -126,12 +144,14 @@
</template>
<script>
import {getDeviceInfoList,getDeviceDetailInfo,deleteService} from'@/api/ems/site'
import {deleteService, getDeviceDetailInfo, getDeviceInfoList} from '@/api/ems/site'
import {getAllSites} from '@/api/ems/zddt'
import {formatNumber} from "@/filters/ems";
import {getAllDeviceCategory} from '@/api/ems/search'
import PointTable from './PointTable.vue'
import AddDevice from "./AddDevice.vue";
import PointUpload from "./PointUpload.vue";
export default {
name: "Sblb",
components: {AddDevice, PointTable, PointUpload},
@ -144,6 +164,7 @@ export default {
siteId: '',
siteList: [],
tableData: [],
deviceCategoryList: [],//设备类别
pageSize: 10,//分页栏当前每个数据总数
pageNum: 1,//分页栏当前页数
totalSize: 0,//table表格数据总数
@ -172,20 +193,26 @@ export default {
}
},
methods: {
// 获取设备类别
getDeviceCategoryList() {
getAllDeviceCategory().then(response => {
this.deviceCategoryList = response?.data || []
})
},
// 查看设备电位表格
pointDetail(row, dataType) {
this.$refs.pointTable.showTable(row, dataType)
},
// 下载点位清单
downloadPointDetail({siteId,deviceCategory,deviceName}){
downloadPointDetail(command) {
this.download('ems/pointMatch/export', {
siteId,
deviceCategory
}, `点位清单_${deviceName}_${new Date().getTime()}.xlsx`)
siteId: this.siteId,
deviceCategory: command.code
}, `点位清单_${command.name}_${new Date().getTime()}.xlsx`)
},
// 上传点位清单
uploadPointDetail(row){
this.$refs.pointUpload.showDialog(row)
uploadPointDetail(command) {
this.$refs.pointUpload.showDialog({...command, siteId: this.siteId})
},
clearEditDeviceData() {
this.mode = '';
@ -235,7 +262,9 @@ export default {
});
},
handleClosed(done) {
this.detailData.forEach((item)=>{item.value = ''})
this.detailData.forEach((item) => {
item.value = ''
})
done()
},
toDetail(id) {
@ -251,7 +280,9 @@ export default {
})
this.dialogTableVisible = true
}).finally(() => {this.loading = false})
}).finally(() => {
this.loading = false
})
},
// 分页
@ -285,7 +316,9 @@ export default {
getDeviceInfoList({siteId, pageNum, pageSize}).then(response => {
this.tableData = response?.rows || [];
this.totalSize = response?.total || 0
}).finally(() => {this.loading=false})
}).finally(() => {
this.loading = false
})
},
//获取站点列表
getZdList() {
@ -293,13 +326,16 @@ export default {
return getAllSites().then(response => {
this.siteList = response?.data || []
if (this.siteList.length > 0) this.siteId = this.siteList[0].siteId
}).finally(() => {this.searchLoading=false})
}).finally(() => {
this.searchLoading = false
})
}
},
mounted() {
this.loading = true
this.siteId = ''
this.pageNum = 1//每次搜索从1开始搜索
this.getDeviceCategoryList()
this.getZdList().then(() => {
this.getData()
})