<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="railData" :inline="true" size="mini" > <el-form-item label="铁路名称:"> <el-input placeholder="请输入铁路名称" style="width: 180px" v-model="railData.name" clearable > </el-input> </el-form-item> <el-form-item label="铁路起点站名:"> <el-input placeholder="请输入起点站名" v-model="railData.startPointName" style="width: 180px" clearable > </el-input> </el-form-item> <el-form-item label="铁路终点站名:"> <el-input placeholder="请输入终点站名" v-model="railData.endPointName" style="width: 180px" clearable > </el-input> </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="name" label="铁路名称" align="center" /> <el-table-column prop="startPointName" label="铁路起点站名" align="center" /> <el-table-column prop="endPointName" label="铁路终点站名" show-overflow-tooltip align="center" /> <el-table-column prop="totalLong" 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="railData.size" :page="railData.current" :total="total" class="pagination" @pagination="handlePageChange" /> </div> </template> <script> import { railWaylist, railWaydetail, railWaybatchDelete, roleAdd, } from "../../api"; import { mapGetters, mapActions } from "vuex"; import { successAlert, warningAlert } from "@/utils/alert"; export default { props: [], components: {}, data() { return { railData: { endPointName: "", name: "", startPointName: "", current: 1, size: 10, }, visible: false, tableData: [], params: { pageNum: 1, pageSize: 10, }, total: 10, multipleSelection: [], ids: [], block: 0, istrue: 0, }; }, computed: {}, methods: { ...mapActions({ asyncrailWayList: "railWay/asyncList", }), tableRowClassName({ row, rowIndex }) { return rowIndex % 2 === 0 ? "" : "single-row"; }, changeType(item) { this.activeName = item.key; }, del() { let ids = this.ids; railWaybatchDelete({ ids }).then((res) => { if (res.code == 200) { successAlert("删除成功"); this.asyncrailWayList(); this.getTableData(); } else { warningAlert("删除失败"); } }); }, refresh() { this.reset(); this.getTableData(); }, searchQuery() { this.istrue = 1; this.getTableData(); }, reset() { this.railData = { endPointName: "", name: "", startPointName: "", current: 1, size: 10, }; }, exportData() {}, handleSelectionChange(val) { this.multipleSelection = val; // console.log(val); this.ids = this.multipleSelection.map((i) => i.id); }, handleView(row) { this.$router.push({ path: "/detail", query: { id: row.id, type: 1, }, }); let id = row.id; railWaydetail({ id }).then((res) => {}); }, handlePageChange(pageData) { this.railData.size = pageData.size; this.railData.current = pageData.page; this.getTableData(); }, getTableData() { let params = { current: this.params.pageNum, size: this.params.pageSize, }; railWaylist(this.railData).then((res) => { let list = res.records || []; this.tableData = list; this.total = res.total; if (this.istrue == 1) { if (this.tableData.length) { successAlert("查询成功"); } else { warningAlert("查询结果为空"); } this.istrue = 0; } }); }, }, created() { var that = this; document.onkeydown = function (e) { var key = window.event.keyCode; if (key == 13) { that.searchQuery(); } }; }, mounted() { this.getTableData(); }, }; </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>