You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

275 lines
7.4 KiB

<!-- 测试报告管理页 -->
<template>
<div class="patrol-manage-page">
<div class="top-title">{{ $router.currentRoute.meta.title }}</div>
<div class="table-box">
<div class="top-search">
<span>/终点所在地</span>
<el-cascader
:options="areasOptions"
v-model="paramsData.adcd"
:props="areasOptionProps"
placeholder="请选择"
clearable
size="small"
>
</el-cascader>
<!-- <span class="ml-12">堤防级别:</span>
<el-select v-model="paramsData.dikeGrad" placeholder="请选择">
<el-option
v-for="item in dikeGradList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> -->
<span class="ml-12">堤防名称:</span>
<el-input
class="search-input"
v-model="paramsData.dikeName"
placeholder="请输入"
></el-input>
<el-button class="!ml-10" type="success" @click="getTableData()"
>搜索</el-button
>
<el-button @click="resetSearch()">重置</el-button>
</div>
<el-table class="mt-16" :data="tableData" border>
<el-table-column type="index" align="center" label="序号" width="80" />
<el-table-column prop="dikeName" align="center" label="堤防名称" />
<el-table-column prop="dikeGrad" align="center" label="堤防级别">
<template #default="{ row }">{{
getDikeGrad(row.dikeGrad)
}}</template>
</el-table-column>
<!-- <el-table-column prop="dikeType" align="center" label="堤防类别">
<template #default="{ row }">{{
getDikeType(row.dikeType)
}}</template>
</el-table-column> -->
<el-table-column
prop="dikeLen"
align="center"
sortable
label="堤防长度"
/>
<el-table-column prop="adcd" align="center" label="起/终点所在地">
</el-table-column>
<el-table-column
prop="engineeringManagementUnit"
align="center"
label="工程管理单位"
/>
<el-table-column prop="operate" align="center" label="操作">
<template slot-scope="scope">
<el-button
@click="handleGoReport(scope.row)"
type="text"
size="small"
v-hasPermi="['df:run:yq:record:view']"
>水雨情监测</el-button
>
<el-button
@click="handleGoAnalyse(scope.row)"
type="text"
size="small"
v-hasPermi="['df:run:yq:analyse:view']"
>智能分析</el-button
>
</template>
</el-table-column>
</el-table>
<el-pagination
background
class="pagination"
style="margin-top: 16px; margin-right: 16px; float: right"
:current-page="pageData.pageNum"
:page-sizes="pageData.pageSizes"
layout="total, prev, pager, next, sizes, jumper"
:total="pageData.total"
@size-change="(e) => handlePageSizeChange(e)"
@current-change="(e) => handleCurrentPageChange(e)"
>
</el-pagination>
</div>
</div>
</template>
<script>
import { getAreasData } from "@/api/areas/index";
import { regionData, codeToText, TextToCode } from "element-china-area-data";
import { getDikeWaterRainProjectList } from "@/api/dike";
export default {
data() {
return {
dialogVisible: false,
areasOptionProps: {
emitPath: false,
checkStrictly: true, //选择任意一级
},
pageData: {
pageNum: 1,
pageSize: 10,
total: 0,
},
paramsData: {
adcd: "",
startAdcd: "",
endAdcd: "",
dikeGrad: "",
dikeName: "",
},
areasOptions: [],
dikeTypeList: [], // 堤防类型列表
dikeGradList: [], // 堤防级别列表
tableData: [],
};
},
created() {
this.getDicts("embankment_level").then((response) => {
this.dikeGradList = response.data;
});
this.getDicts("embankment_type").then((response) => {
this.dikeTypeList = response.data;
});
},
mounted() {
this.getTableData();
this.getTreeData();
},
methods: {
handleCurrentPageChange(page) {
this.pageData.pageNum = page;
this.getTableData();
},
handlePageSizeChange(pageSize) {
this.pageData.pageSize = pageSize;
this.getTableData();
},
// 获取列表信息
getTableData() {
getDikeWaterRainProjectList({
pageNum: this.pageData.pageNum,
pageSize: this.pageData.pageSize,
data: {
adcd: this.paramsData.adcd || "",
dikeGrad: this.paramsData.dikeGrad || "",
dikeName: this.paramsData.dikeName || "",
},
}).then((res) => {
if (res) {
this.tableData = res.records;
this.pageData.total = res.total;
}
});
},
// 重置搜索条件
resetSearch() {
this.paramsData.dikeGrad = "";
this.paramsData.dikeName = "";
this.paramsData.adcd = "";
this.getTableData();
},
// 水雨情监测
handleGoReport(row) {
this.$router.push({
path: "waterRainMonitoring",
query: {
dikeCode: row.dikeCode,
dikeName: row.dikeName,
},
});
},
// 智能分析
handleGoAnalyse(row) {
this.$router.push({
path: "waterRainSmartAnalyse",
query: {
dikeCode: row.dikeCode,
dikeName: row.dikeName,
},
});
},
// 获取地区树数据
getTreeData() {
getAreasData().then((items) => {
if (items?.data) {
let res = [];
let getChildren = (res, pid) => {
for (const i of items.data) {
if (i.parentid === pid) {
const newItem = {
label: i.name,
value: i.id,
};
if (i.layer != 3) newItem.children = [];
res.push(newItem);
getChildren(newItem.children, newItem.value);
}
}
};
getChildren(res, items.data[0].parentid);
this.areasOptions = res;
}
});
},
// 获取堤防级别
getDikeGrad(key) {
return (
this.dikeGradList?.filter((v) => v.dictValue === key)?.[0]?.dictLabel ||
key
);
},
// 获取堤防类型
getDikeType(key) {
return (
this.dikeTypeList?.filter((v) => v.dictValue === key)?.[0]?.dictLabel ||
key
);
},
// 获取地区
getAreas(row) {
return codeToText[row.adcdStart] + "-" + codeToText[row.adcdEnd];
},
},
};
</script>
<style scoped lang="scss">
.patrol-manage-page {
width: 100%;
min-height: calc(100vh - 56px);
padding-left: 24px;
.top-title {
height: 40px;
background-color: white;
display: flex;
padding-left: 16px;
align-items: center;
font-weight: 600;
}
.table-box {
width: 100%;
// min-height: calc(100vh - 56px - 64px);
margin-top: 24px;
padding: 16px;
padding-bottom: 60px;
background-color: white;
.top-search {
margin-bottom: 8px;
.search-input {
width: 202px;
margin-right: 10px;
}
}
.table {
height: calc(680px - 34px);
}
}
}
</style>