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.
362 lines
9.0 KiB
362 lines
9.0 KiB
<!-- 监督检查办法管理-堤防 -->
|
|
<script>
|
|
import {
|
|
putDFPreventionControlPlan,
|
|
deleteDFMaintenancePlan,
|
|
postDFNewPreventionControlPlan,
|
|
postDFPreventionControlPlanList,
|
|
getDFPreventionControlPlan,
|
|
listUser,
|
|
} from "@/api/management";
|
|
import { listDikeInfo } from "@/api/yg/dikeInfo";
|
|
|
|
export default {
|
|
name: "InspectionItems",
|
|
data() {
|
|
return {
|
|
paramsData: {
|
|
name: "",
|
|
type: null,
|
|
dikeName: "",
|
|
selectLevel: "",
|
|
selectType: "",
|
|
},
|
|
dialogVisible: false,
|
|
prohibitEditing: false,
|
|
dikeTypeList: [],
|
|
personnelList: [], // 人员列表
|
|
patrolType: [], // 提醒周期类型
|
|
workMonth: [], // 工作月份
|
|
embankmentList: [], //堤防列表
|
|
dikeLevel: [], // 堤防级别列表
|
|
controlType: [], // 防治类型
|
|
tableData: [], // 检查列表
|
|
pageData: {
|
|
pageNum: 1, // 当前页
|
|
pageSize: 10, // 请求数量
|
|
pageSizes: [10, 20, 50, 100],
|
|
total: 0, // 总数量
|
|
},
|
|
ruleForm: {
|
|
dikeCode: "",
|
|
dikeName: "",
|
|
name: "",
|
|
type: "",
|
|
instruction: "",
|
|
month: "",
|
|
details: [],
|
|
cycleType: "",
|
|
frequency: "",
|
|
operators: [],
|
|
isReminder: 1,
|
|
otherConfig: {
|
|
selectUser: [],
|
|
week: "",
|
|
day: "",
|
|
},
|
|
reminderTime: "",
|
|
},
|
|
rules: {
|
|
dikeCode: [
|
|
{ required: true, message: "请选择堤防名称", trigger: "blur" },
|
|
],
|
|
name: [
|
|
{ required: true, message: "请输入防治计划名称", trigger: "blur" },
|
|
{ max: 100, message: "名称最长为100个字符", trigger: "blur" },
|
|
],
|
|
type: [
|
|
{ required: true, message: "请选择防治类型", trigger: "change" },
|
|
],
|
|
instruction: [
|
|
{ required: true, message: "请输入防治说明", trigger: "change" },
|
|
],
|
|
month: [
|
|
{ required: true, message: "请选择工作月份", trigger: "change" },
|
|
],
|
|
cycleType: [
|
|
{ required: true, message: "请选择提醒日期", trigger: "change" },
|
|
],
|
|
frequency: [
|
|
{ required: true, message: "请输入次数", trigger: "change" },
|
|
],
|
|
"otherConfig.selectUser": [
|
|
{ required: true, message: "请选择责任人", trigger: "change" },
|
|
],
|
|
"otherConfig.week": [
|
|
{ required: true, message: "请选择星期", trigger: "change" },
|
|
],
|
|
"otherConfig.day": [
|
|
{ required: true, message: "请输入", trigger: "change" },
|
|
],
|
|
reminderTime: [
|
|
{ required: true, message: "请选择提醒时间", trigger: "change" },
|
|
],
|
|
},
|
|
};
|
|
},
|
|
watch: {
|
|
dialogVisible(newVal, oldVal) {
|
|
if (oldVal) {
|
|
this.prohibitEditing = false;
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
// 获取堤防等级
|
|
resolveDikeGrad(dikeGrad) {
|
|
return (
|
|
this.dikeLevel.find((v) => v.dictValue === dikeGrad)?.dictLabel ||
|
|
dikeGrad
|
|
);
|
|
},
|
|
// 获取堤防类型
|
|
resolveDikeType(dikeType) {
|
|
return (
|
|
this.dikeTypeList.find((v) => v.dictValue == dikeType)?.dictLabel ||
|
|
dikeType
|
|
);
|
|
},
|
|
// 获取防治类型
|
|
resolveType(type) {
|
|
return (
|
|
this.controlType.find((v) => v.dictValue == type)?.dictLabel || type
|
|
);
|
|
},
|
|
// 跳转新增办法页面
|
|
handleAddMethod() {
|
|
this.$router.push("methodManageDetails");
|
|
},
|
|
// 跳转编辑办法页面
|
|
handleEditMethod(row) {
|
|
this.$router.push({
|
|
path: "methodManageDetails",
|
|
query: {
|
|
id: row.id,
|
|
mode: "edit",
|
|
},
|
|
});
|
|
},
|
|
// 跳转预览办法页面
|
|
handlePreviewMethod(row) {
|
|
this.$router.push({
|
|
path: "methodManageDetails",
|
|
query: {
|
|
id: row.id,
|
|
mode: "preview",
|
|
},
|
|
});
|
|
},
|
|
// 导出文件
|
|
handleExportMethod() {},
|
|
// 复制办法
|
|
handleCopyMethod() {},
|
|
// 获取列表数据
|
|
getTableData() {
|
|
postDFPreventionControlPlanList({
|
|
data: {
|
|
timeView: {
|
|
timeField: "create_time",
|
|
},
|
|
name: this.paramsData.name,
|
|
type: this.paramsData.type,
|
|
dikeName: this.paramsData.dikeName,
|
|
dikeGrad: this.paramsData.dikeGrad,
|
|
dikeType: this.paramsData.dikeType,
|
|
},
|
|
cv: {
|
|
name: "name",
|
|
type: "like",
|
|
value: this.name,
|
|
},
|
|
params: {
|
|
orderBy: "create_time",
|
|
sort: "desc",
|
|
},
|
|
pageSize: this.pageData.pageSize,
|
|
pageNum: this.pageData.pageNum,
|
|
}).then((res) => {
|
|
if (res) {
|
|
this.tableData = res.records;
|
|
this.pageData.total = res.total;
|
|
}
|
|
});
|
|
},
|
|
// 获取堤防列表信息
|
|
getEmbData() {
|
|
listDikeInfo({
|
|
pageNum: 1,
|
|
pageSize: 20,
|
|
ids: null,
|
|
data: {
|
|
embankmentName: null,
|
|
endStationNumber: null,
|
|
embankmentType: null,
|
|
},
|
|
// 排序方式
|
|
params: {
|
|
// 按哪个字段排序
|
|
orderBy: "create_time",
|
|
// desc降序,升序asc
|
|
sort: "desc",
|
|
},
|
|
}).then((res) => {
|
|
this.embankmentList = res?.records || [];
|
|
});
|
|
},
|
|
// 跳转数据项配置列表
|
|
handleToItemsList(row) {
|
|
this.$router.push({
|
|
path: "methodsItemsList",
|
|
query: {
|
|
id: row.id,
|
|
},
|
|
});
|
|
},
|
|
},
|
|
created() {
|
|
this.getDicts("embankment_type").then((response) => {
|
|
this.dikeTypeList = response.data;
|
|
});
|
|
},
|
|
mounted() {
|
|
// 获取列表数据
|
|
this.getTableData();
|
|
this.getEmbData();
|
|
this.getDicts("dh_jh_type").then((res) => {
|
|
this.controlType = res.data;
|
|
});
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<div class="body slider-right">
|
|
<div class="top-title">基础信息管理</div>
|
|
<div class="table-box">
|
|
<el-button
|
|
class="search-btn"
|
|
style="margin-right: 16px; margin-bottom: 8px; float: right"
|
|
type="success"
|
|
@click="handleAddMethod()"
|
|
>添加</el-button
|
|
>
|
|
<el-table class="table" height="640" :data="tableData" border>
|
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
|
<el-table-column prop="name" align="center" label="名称" />
|
|
<el-table-column prop="createTime" align="center" label="发布时间">
|
|
</el-table-column>
|
|
<el-table-column prop="updateTime" align="center" label="更新时间" />
|
|
<el-table-column
|
|
prop="status"
|
|
align="center"
|
|
sortable
|
|
label="当前状态"
|
|
/>
|
|
<el-table-column prop="address" align="center" label="操作">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
@click="handleEditMethod(scope.row)"
|
|
>编辑</el-button
|
|
>
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
@click="handlePreviewMethod(scope.row)"
|
|
>预览</el-button
|
|
>
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
@click="handleExportMethod(scope.row)"
|
|
>导出</el-button
|
|
>
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
@click="handleCopyMethod(scope.row)"
|
|
>复制</el-button
|
|
>
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
@click="handleToItemsList(scope.row)"
|
|
>配置数据项</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="getTableData()"
|
|
>
|
|
</el-pagination>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped lang="less">
|
|
.body {
|
|
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;
|
|
background-color: white;
|
|
|
|
.top-search {
|
|
margin-bottom: 8px;
|
|
|
|
.search-input {
|
|
width: 202px;
|
|
margin-right: 10px;
|
|
}
|
|
}
|
|
|
|
.table {
|
|
height: calc(680px - 34px);
|
|
}
|
|
}
|
|
|
|
.search-btn {
|
|
margin-left: 10px;
|
|
background-color: #37b29e;
|
|
border: none;
|
|
|
|
&:hover {
|
|
background-color: #5ac6b9;
|
|
}
|
|
|
|
&:active {
|
|
background-color: #2b8070;
|
|
}
|
|
}
|
|
}
|
|
|
|
/deep/.el-input__count {
|
|
height: 15px;
|
|
line-height: 15px;
|
|
margin-right: 10px;
|
|
margin-bottom: -4px;
|
|
}
|
|
</style>
|
|
|