<template> <div> <div class="leakage-top"> <div style="color: #666666"></div> <div class="operate-btn"> <delids :multipleSelection2="multipleSelection" @del="del()" >删除</delids > <el-button type="primary" @click="refresh">刷新</el-button> <el-button type="primary" @click="block = !block">查询</el-button> <el-button type="primary" @click="exportData">导出</el-button> </div> </div> <el-form class="search-div" v-if="block" :model="FSUForm" :inline="true" size="mini" > <el-form-item label="设备名称:"> <el-input placeholder="请输入设备名称" v-model="FSUForm.equipName" clearable > </el-input> </el-form-item> <el-form-item label="FSU身份编号:"> <el-input placeholder="请输入FSU身份编号" v-model="FSUForm.fsuCode" clearable > </el-input> </el-form-item> <el-form-item label="IP地址:"> <el-input placeholder="请输入IP地址" v-model="FSUForm.ip" clearable> </el-input> </el-form-item> <el-form-item label="所在铁路线:"> <el-select placeholder="请选择所在铁路线" v-model="FSUForm.wayId" clearable @change="changerailWay()" > <el-option v-for="item in railWaySelect" :key="item.id" :label="item.name" :value="item.id" ></el-option> </el-select> </el-form-item> <el-form-item label="所在站点:"> <el-select placeholder="请选择所在站点" v-model="FSUForm.siteId" clearable > <el-option v-for="item in stationSelect2" :key="item.id" :label="item.siteName" :value="item.id" ></el-option> </el-select> </el-form-item> <el-form-item> <el-button class="seabtn" @click="searchQuery()">查询</el-button> <el-button class="seabtn" @click="reset">重置</el-button> </el-form-item> </el-form> <el-table ref="multipleTable" class="statistics-table" :data="tableData" tooltip-effect="dark" style="width: 100%" :row-class-name="tableRowClassName" :row-style="{ height: '50px' }" :header-cell-style="{ background: '#eaf1fe', color: '#000', fontWeight: 700, height: '50px', }" @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55" align="center" /> <el-table-column prop="equipName" label="设备名称" align="center" /> <el-table-column prop="fsuCode" label="FSU身份编号" show-overflow-tooltip align="center" /> <el-table-column prop="ip" label="IP地址" show-overflow-tooltip align="center" /> <el-table-column prop="railWayName" label="所在铁路线" align="center" /> <el-table-column prop="siteName" label="所在站点" show-overflow-tooltip align="center" /> <el-table-column prop="action" label="详细信息" show-overflow-tooltip align="center" > <template slot-scope="{ row }"> <el-link type="primary" :underline="false" @click="handleView(row)" >查看</el-link > </template> </el-table-column> </el-table> <Pagination :limit="FSUForm.size" :page="FSUForm.current" :total="total" class="pagination" @pagination="handlePageChange" /> </div> </template> <script> import { fsulist, fsubatchDelete, fsudetail, railWaylist, selectForSite, } from "../../api"; import { successAlert, warningAlert } from "@/utils/alert"; export default { props: [], components: {}, data() { return { railWaySelect: [], stationSelect: [], stationSelect2: [], FSUForm: formInit(), visible: false, tableData: [], params: { current: 1, size: 10, }, total: 10, multipleSelection: [], ids: [], block: 0, istrue: 0, }; }, computed: {}, methods: { changerailWay() { selectForSite({ wayId: this.FSUForm.wayId }).then((res) => { this.stationSelect2 = res; }); }, tableRowClassName({ row, rowIndex }) { return rowIndex % 2 === 0 ? "" : "single-row"; }, changeType(item) { this.activeName = item.key; }, del() { let ids = this.ids; fsubatchDelete({ ids }).then((res) => { if (res.code == 200) { successAlert("删除成功"); this.getTableData(); } else { warningAlert("删除失败"); } }); }, refresh() { this.reset(); this.getTableData(); }, searchQuery() { this.istrue = 1; this.getTableData(); }, reset() { this.FSUForm = formInit(); }, exportData() {}, handleSelectionChange(val) { this.multipleSelection = val; this.ids = this.multipleSelection.map((i) => i.id); }, handleView(row) { this.$router.push({ path: "/detail", query: { id: row.id, type: 3, }, }); }, handlePageChange(pageData) { this.FSUForm.size = pageData.size; this.FSUForm.current = pageData.page; this.getTableData(); }, getTableData() { fsulist(this.FSUForm).then((res) => { let list = res.records || []; this.tableData = list; this.total = res.total; if (this.istrue == 1) { if (this.tableData.length != 0) { successAlert("查询成功"); } else { warningAlert("查询结果为空"); } this.istrue = 0; } }); }, getAllWay() { railWaylist(this.params).then((res) => { this.railWaySelect = res.records; if (res.total > this.params.size) { this.params.size = res.total; this.getAllWay(); } }); }, }, created() { var that = this; document.onkeydown = function (e) { var key = window.event.keyCode; if (key == 13) { that.searchQuery(); } }; }, mounted() { this.getTableData(); this.getAllWay(); }, }; function formInit(data = {}) { return { fsuCode: "", equipName: "", equipSerialNumber: "", ip: "", parentId: "", siteId: "", siteName: "", wayId: "", current: 1, size: 10, ...data, }; } </script> <style lang="scss" scoped> .leakage-cable { .leakage-top { margin-bottom: 20px; display: flex; align-items: flex-end; justify-content: space-between; } & ::v-deep .cell { color: #333333; } & ::v-deep .stripe { background-color: #eaf1fe; } & ::v-deep .red { background-color: #f00; } & ::v-deep .green { background-color: green; } .page { display: flex; align-items: center; justify-content: center; margin: 20px 0; .pageNum { margin: 0 20px; } } } </style> <style lang="scss"> .statistics-table { .single-row { background: #f1f6ff; } td { padding: 5px !important; } } </style>