Browse Source

确权划界完成,安全鉴定和防汛管理搭建

master_tdsql
xzt 1 year ago
parent
commit
589c555667
  1. 6
      src/api/yg/aqrw.js
  2. 3
      src/views/safetyManage/confirmDelimitationManage/dyke/index.vue
  3. 45
      src/views/safetyManage/confirmDelimitationManage/index.vue
  4. 3
      src/views/safetyManage/confirmDelimitationManage/reservoir/index.vue
  5. 833
      src/views/safetyManage/confirmDelimitationManage/sluice/index.vue
  6. 65
      src/views/safetyManage/declarationManage/sluice/examine/components/listPage/transform.vue
  7. 3
      src/views/safetyManage/floodControlManagement/dyke/index.vue
  8. 45
      src/views/safetyManage/floodControlManagement/floodControlPower.vue
  9. 45
      src/views/safetyManage/floodControlManagement/floodControlPreplan.vue
  10. 45
      src/views/safetyManage/floodControlManagement/floodControlSupplies.vue
  11. 45
      src/views/safetyManage/floodControlManagement/floodControlTissue.vue
  12. 3
      src/views/safetyManage/floodControlManagement/index.vue
  13. 3
      src/views/safetyManage/floodControlManagement/reservoir/index.vue
  14. 3
      src/views/safetyManage/floodControlManagement/sluice/power.vue
  15. 3
      src/views/safetyManage/floodControlManagement/sluice/preplan.vue
  16. 3
      src/views/safetyManage/floodControlManagement/sluice/supplies.vue
  17. 3
      src/views/safetyManage/floodControlManagement/sluice/tissue.vue
  18. 21
      src/views/safetyManage/responsiblePersonManage/index.vue
  19. 422
      src/views/safetyManage/responsiblePersonManage/sluice/index.vue

6
src/api/yg/aqrw.js

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询水闸安全鉴定任务信息列表
export function listAqrw(query) {
return request({
url: '/aqrw/aqrw/list',
url: '/aqrw/list',
method: 'post',
data: query
})
@ -12,7 +12,7 @@ export function listAqrw(query) {
// 查询水闸安全鉴定任务信息详细
export function getAqrw(id) {
return request({
url: '/aqrw/aqrw/' + id,
url: '/aqrw/' + id,
method: 'get'
})
}
@ -20,7 +20,7 @@ export function getAqrw(id) {
// 新增水闸安全鉴定任务信息
export function addAqrw(data) {
return request({
url: '/aqrw/aqrw',
url: '/aqrw',
method: 'post',
data: data
})

3
src/views/safetyManage/confirmDelimitationManage/dyke/index.vue

@ -0,0 +1,3 @@
<template>
<div>堤防确权划界</div>
</template>

45
src/views/safetyManage/confirmDelimitationManage/index.vue

@ -0,0 +1,45 @@
<template>
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="{ path: item.path }"
>
{{ item.routeName }}
</el-breadcrumb-item>
</el-breadcrumb>
<reservoirResponsible v-if="selectTab == 0" />
<sluiceResponsible v-if="selectTab == 1" />
<dykeResponsible v-if="selectTab == 2" />
</div>
</template>
<script>
import sluiceResponsible from "../confirmDelimitationManage/sluice/index.vue";
import dykeResponsible from "../confirmDelimitationManage/dyke/index.vue";
import reservoirResponsible from "../confirmDelimitationManage/reservoir/index.vue";
export default {
components: {
sluiceResponsible,
dykeResponsible,
reservoirResponsible,
},
computed: {
selectTab() {
return this.$store.state.topTab.selectTab;
},
},
data() {
return {
//
routeList: [
{
path: "/safetyManage/confirmDelimitationManage",
routeName: "确权划界管理列表",
},
],
};
},
};
</script>

3
src/views/safetyManage/confirmDelimitationManage/reservoir/index.vue

@ -0,0 +1,3 @@
<template>
<div>水库</div>
</template>

833
src/views/safetyManage/confirmDelimitationManage/sluice/index.vue

@ -0,0 +1,833 @@
<template>
<div>
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="水闸名称" prop="wagaName">
<el-input
v-model="queryParams.data.wagaName"
placeholder="请输入水闸名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
>
<el-button
type="primary"
slot="append"
icon="el-icon-search"
size="small"
@click="handleQuery"
></el-button>
</el-input>
</el-form-item>
<el-form-item label="水闸类型" prop="wagaType">
<el-select
v-model="queryParams.data.wagaType"
placeholder="请选择水闸类型"
clearable
size="small"
@change="handleQuery"
>
<el-option
v-for="dict in sluiceTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item>
<!-- <el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
> -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="viewInfo"
v-hasPermi="['yg:qqhj:view']"
>查看</el-button
>
</el-col> -->
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
@click="comfirm"
v-hasPermi="['yg:qqhj:comfirm']"
>确权划界</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['yg:qqhj:remove']"
>删除</el-button
>
</el-col> -->
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="jbxxList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" fixed />
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed
/>
<el-table-column
label="水闸名称"
align="center"
prop="wagaName"
min-width="120"
/>
<el-table-column
label="水闸代码"
align="center"
prop="wagaCode"
min-width="120"
/>
<el-table-column
label="行政区划"
align="center"
prop="adcd"
:formatter="formatAdcd"
min-width="120"
/>
<el-table-column
label="工程规模"
align="center"
prop="engScal"
:formatter="projectScaleFormat"
min-width="120"
/>
<el-table-column
label="水闸类型"
align="center"
prop="wagaType"
:formatter="sluiceTypeFormat"
min-width="120"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="viewInfo(scope.row)"
v-hasPermi="['yg:qqhj:view']"
>查看</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit-outline"
@click="comfirm(scope.row)"
v-hasPermi="['yg:qqhj:comfirm']"
>确权划界</el-button
>
<!-- <el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['yg:jbxx:remove']"
>删除</el-button
> -->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改确权划界信息对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
:close-on-click-modal="false"
>
<el-row :gutter="15">
<el-form ref="form" :model="form" :rules="rules" label-width="84px">
<!-- <el-form-item label="水闸id" prop="wagaId">
<el-input v-model="form.wagaId" placeholder="请输入水闸id" />
</el-form-item> -->
<el-form-item label="工程功能" prop="engineeringFunctions">
<el-input
v-model="form.engineeringFunctions"
placeholder="请输入工程功能"
/>
</el-form-item>
<el-form-item label="土地用途" prop="landUse">
<el-input v-model="form.landUse" placeholder="请输入土地用途" />
</el-form-item>
<el-form-item label="限制条件" prop="limitations">
<el-input v-model="form.limitations" placeholder="请输入限制条件" />
</el-form-item>
<el-form-item label="产权所有者" prop="propertyOwner">
<el-input
v-model="form.propertyOwner"
placeholder="请输入产权所有者"
/>
</el-form-item>
<el-form-item label="所有者权力及义务" prop="ownerRights">
<el-input
v-model="form.ownerRights"
placeholder="请输入所有者权力及义务"
/>
</el-form-item>
<el-form-item label="有效期" prop="periodValidity">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.periodValidity"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择有效期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="产权证书" prop="certificateTitle">
<!-- <el-input
v-model="form.certificateTitle"
placeholder="请输入产权证书"
/> -->
<el-upload
class="upload-demo"
action="thinking/common/upload"
:headers="headers"
:on-preview="handlePreview"
:on-remove="(file) => handleRemove(file, 'fileList')"
:before-remove="beforeRemove"
multiple
:on-exceed="handleExceed"
:on-success="(_, fileList) => submitUpload(fileList, 'fileList')"
:file-list="fileList"
>
<el-button size="small" type="primary" plain>
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div slot="tip" class="el-upload__tip">
支持jpg/png文件等不超过100M
</div>
</el-upload>
</el-form-item>
<el-form-item label="管理范围" prop="managementScope">
<el-input
v-model="form.managementScope"
placeholder="请输入管理范围"
/>
</el-form-item>
<el-form-item label="保护范围" prop="protectScope">
<el-input
v-model="form.protectScope"
placeholder="请输入保护范围"
/>
</el-form-item>
</el-form>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog
:title="viewTitle"
:visible.sync="viewOpen"
width="1200px"
append-to-body
:close-on-click-modal="false"
@close="closeView"
>
<el-descriptions
class="margin-top"
:column="1"
border
:labelStyle="{
'text-align': 'left',
width: '180px',
height: '50px',
}"
:contentStyle="{}"
>
<el-descriptions-item>
<template slot="label"> 工程功能 </template>
{{ this.viewMsg.engineeringFunctions }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 土地用途 </template>
{{ this.viewMsg.landUse }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 限制条件 </template>
{{ this.viewMsg.limitations }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 产权所有者 </template>
{{ this.viewMsg.propertyOwner }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 所有者权力及义务 </template>
{{ this.viewMsg.ownerRights }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 有效期 </template>
{{ this.viewMsg.periodValidity }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 产权证书 </template>
<!-- {{ this.viewMsg.certificateTitle }} -->
<template v-if="this.viewMsg.certificateTitle">
<div
v-for="(item, index) in JSON.parse(this.viewMsg.certificateTitle)"
:key="item + index"
>
{{ item.name }}
<i
class="el-icon-download"
@click="downloadFile2(item, index)"
style="cursor: pointer"
></i>
</div>
</template>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 管理范围 </template>
{{ this.viewMsg.managementScope }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 保护范围 </template>
{{ this.viewMsg.protectScope }}
</el-descriptions-item>
</el-descriptions>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="viewOpen = false"> </el-button>
<!-- <el-button @click="cancel"> </el-button> -->
</div>
</el-dialog>
</div>
</template>
<script>
import { listJbxx, getJbxx, delJbxx, addJbxx, updateJbxx } from "@/api/yg/jbxx";
import {
listQqhj,
getQqhj,
delQqhj,
addQqhj,
updateQqhj,
exportQqhj,
} from "@/api/yg/qqhj";
import { getAreasData } from "@/api/areas/index";
import { regionData, codeToText, TextToCode } from "element-china-area-data";
import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
export default {
name: "qqhj",
data() {
return {
areasOptionProps: {
emitPath: false,
checkStrictly: true, //
},
areasOptions: [],
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
jbxxList: [],
//
title: "",
viewTitle: "",
//
open: false,
viewOpen: false,
//
projectScaleOptions: [],
//
sluiceTypeOptions: [],
//
engineerLevelOptions: [],
//
majorStructureLevelOptions: [],
//
engineerConstructionSituationOptions: [],
//
isGateProjectOptions: [],
//
observationProjectOptions: [],
//
securityCategoryOptions: [],
//
securityStatusOptions: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
wagaName: null,
wagaCode: null,
engScal: null,
wagaStartLong: null,
wagaStartLat: null,
wagaEndLong: null,
wagaEndLat: null,
wagaLoc: null,
wagaType: null,
wagaUse: null,
engGrad: null,
mainBuildGrad: null,
desLockDisc: null,
gaorNum: null,
gaorTotNetWid: null,
engStat: null,
startDate: null,
compDate: null,
admDep: null,
isGateProject: null,
observationProject: null,
levelDatum: null,
sluiceOverview: null,
createUid: null,
updateUid: null,
owerDept: null,
relation: null,
status: null,
securityCategory: null,
securityStatus: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
//
rules: {},
//
routeList: [
{
path: "/safetyManage/declarationManage1",
routeName: "申报基础信息管理",
},
],
djOpen: false,
baseMsg: {},
viewMsg: {},
//
headers: {
shuili: "water " + getToken(),
},
fileList: [],
};
},
created() {
this.getList();
this.getTreeData();
this.getDicts("engineering_scale").then((response) => {
this.projectScaleOptions = response.data;
});
this.getDicts("sluice_type").then((response) => {
this.sluiceTypeOptions = response.data;
});
this.getDicts("engineering_grade").then((response) => {
this.engineerLevelOptions = response.data;
});
this.getDicts("building_level").then((response) => {
this.majorStructureLevelOptions = response.data;
});
this.getDicts("engineering_construct_situation").then((response) => {
this.engineerConstructionSituationOptions = response.data;
});
this.getDicts("whether").then((response) => {
this.isGateProjectOptions = response.data;
});
this.getDicts("observation_project").then((response) => {
this.observationProjectOptions = response.data;
});
this.getDicts("security_category").then((response) => {
this.securityCategoryOptions = response.data;
});
this.getDicts("safety_evaluation_status").then((response) => {
this.securityStatusOptions = response.data;
});
},
methods: {
closeView() {
this.viewMsg = {};
},
viewInfo(row) {
const id = row.id;
listQqhj({ data: { wagaId: id } }).then((res) => {
// console.log(res);
if (res.records[0]) {
this.viewMsg = res.records[0];
}
this.viewOpen = true;
this.viewTitle = "查看确权划界信息";
});
},
comfirm(row) {
this.baseMsg = row;
const id = row.id;
listQqhj({ data: { wagaId: id } }).then((res) => {
// console.log(res);
if (res.records[0]) {
this.form = res.records[0];
if (this.form.certificateTitle) {
this.fileList = JSON.parse(this.form.certificateTitle);
}
}
this.open = true;
this.title = "确权划界信息";
});
},
formatAdcd(row) {
if (row.adcd) {
let provinceCode = row.adcd.slice(0, 2);
let cityCode = row.adcd.slice(2, 4);
let areaCode = row.adcd.slice(4, 6);
if (areaCode != "00") {
return (
codeToText[provinceCode] +
"-" +
codeToText[provinceCode + cityCode] +
"-" +
codeToText[provinceCode + cityCode + areaCode]
);
} else if (cityCode != "00") {
return (
codeToText[provinceCode] + "-" + codeToText[provinceCode + cityCode]
);
} else {
return codeToText[provinceCode];
}
}
},
getTreeData() {
getAreasData().then((items) => {
// console.log("getAreasData", 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);
// console.log(66666666666, res);
this.areasOptions = res;
// return res;
});
},
/** 查询水闸安全管理基本信息列表 */
getList() {
this.loading = true;
listJbxx(this.queryParams).then((response) => {
this.jbxxList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
projectScaleFormat(row, column) {
return this.selectDictLabel(this.projectScaleOptions, row.engScal);
},
//
sluiceTypeFormat(row, column) {
return this.selectDictLabel(this.sluiceTypeOptions, row.wagaType);
},
//
engineerLevelFormat(row, column) {
return this.selectDictLabel(this.engineerLevelOptions, row.engGrad);
},
//
majorStructureLevelFormat(row, column) {
return this.selectDictLabel(
this.majorStructureLevelOptions,
row.mainBuildGrad
);
},
//
engineerConstructionSituationFormat(row, column) {
return this.selectDictLabel(
this.engineerConstructionSituationOptions,
row.engStat
);
},
//
isGateProjectFormat(row, column) {
return this.selectDictLabel(this.isGateProjectOptions, row.isGateProject);
},
//
observationProjectFormat(row, column) {
return this.selectDictLabel(
this.observationProjectOptions,
row.observationProject
);
},
//
securityCategoryFormat(row, column) {
return this.selectDictLabel(
this.securityCategoryOptions,
row.securityCategory
);
},
//
securityStatusFormat(row, column) {
return this.selectDictLabel(
this.securityStatusOptions,
row.securityStatus
);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.baseMsg = {};
this.form = {
id: null,
sluiceId: null,
engineeringFunctions: null,
landUse: null,
limitations: null,
propertyOwner: null,
ownerRights: null,
periodValidity: null,
certificateTitle: null,
managementScope: null,
protectScope: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
owerDept: null,
remark: null,
relation: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
wagaName: null,
wagaCode: null,
engScal: null,
wagaStartLong: null,
wagaStartLat: null,
wagaEndLong: null,
wagaEndLat: null,
wagaLoc: null,
wagaType: null,
wagaUse: null,
engGrad: null,
mainBuildGrad: null,
desLockDisc: null,
gaorNum: null,
gaorTotNetWid: null,
engStat: null,
startDate: null,
compDate: null,
admDep: null,
isGateProject: null,
observationProject: null,
levelDatum: null,
sluiceOverview: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
owerDept: null,
remark: null,
relation: null,
status: "0",
securityCategory: null,
securityStatus: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.certificateTitle = JSON.stringify(this.fileList);
if (this.form.id != null) {
updateQqhj(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
this.form.wagaId = this.baseMsg.id;
addQqhj(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
//
submitUpload(fileList, name) {
console.log(name, fileList);
this[name].push({
name: fileList.name,
fileName: fileList.response.fileName,
url: fileList.response.url,
uid: fileList.uid,
});
console.log(name, this[name]);
},
handleRemove(file, name) {
// console.log(file, fileList1);
let index = this[name].findIndex((item) => item.uid === file.uid);
//
this[name].splice(index, 1);
},
downloadFile2(info, index) {
console.log(info);
this.handlePreview(info);
},
//
handlePreview(file) {
// console.log(file);
getFileStream({ fileName: file.fileName }).then((res) => {
const blob = new Blob([res], {
// type
// application/xlsx application/zip
type: "application/xlsx",
}); //excel,pdf
const href = URL.createObjectURL(blob); //URLblob
const a = document.createElement("a"); //a
a.style.display = "none";
a.href = href; //
a.download = file.name; //
a.click(); //
URL.revokeObjectURL(a.href); //URL
});
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
::v-deep {
.el-dialog {
margin-top: 4vh !important;
}
}
</style>

65
src/views/safetyManage/declarationManage/sluice/examine/components/listPage/transform.vue

@ -144,6 +144,7 @@
</el-descriptions>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="notPass">不通过</el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
@ -333,11 +334,7 @@ export default {
row.securityIsPass
);
},
//
cancel() {
this.reset();
this.open = false;
},
//
reset() {
this.form = {
@ -440,31 +437,41 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.securityAppraisalSituation = JSON.stringify(this.fileList1);
this.form.securityCategoryAttachment = JSON.stringify(this.fileList2);
console.log("审核通过");
// this.$refs["form"].validate((valid) => {
// if (valid) {
// this.form.securityAppraisalSituation = JSON.stringify(this.fileList1);
// this.form.securityCategoryAttachment = JSON.stringify(this.fileList2);
if (this.form.id != null) {
updateHzxx(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
this.form.wageId = this.inFo.id;
addHzxx(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
// if (this.form.id != null) {
// updateHzxx(this.form).then((response) => {
// if (response.code === 200) {
// this.msgSuccess("");
// this.open = false;
// this.getList();
// }
// });
// } else {
// this.form.wageId = this.inFo.id;
// addHzxx(this.form).then((response) => {
// if (response.code === 200) {
// this.msgSuccess("");
// this.open = false;
// this.getList();
// }
// });
// }
// }
// });
},
//
notPass() {
console.log("审核不通过");
},
//
cancel() {
this.reset();
this.open = false;
},
/** 删除按钮操作 */
handleDelete(row) {

3
src/views/safetyManage/floodControlManagement/dyke/index.vue

@ -0,0 +1,3 @@
<template>
<div>堤防防汛</div>
</template>

45
src/views/safetyManage/floodControlManagement/floodControlPower.vue

@ -0,0 +1,45 @@
<template>
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="{ path: item.path }"
>
{{ item.routeName }}
</el-breadcrumb-item>
</el-breadcrumb>
<reservoirResponsible v-if="selectTab == 0" />
<sluiceResponsible v-if="selectTab == 1" />
<dykeResponsible v-if="selectTab == 2" />
</div>
</template>
<script>
import sluiceResponsible from "./sluice/power.vue";
import dykeResponsible from "./dyke/index.vue";
import reservoirResponsible from "./reservoir/index.vue";
export default {
components: {
sluiceResponsible,
dykeResponsible,
reservoirResponsible,
},
computed: {
selectTab() {
return this.$store.state.topTab.selectTab;
},
},
data() {
return {
//
routeList: [
{
path: "/safetyManage/floodControlManagement/power",
routeName: "防汛电源管理",
},
],
};
},
};
</script>

45
src/views/safetyManage/floodControlManagement/floodControlPreplan.vue

@ -0,0 +1,45 @@
<template>
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="{ path: item.path }"
>
{{ item.routeName }}
</el-breadcrumb-item>
</el-breadcrumb>
<reservoirResponsible v-if="selectTab == 0" />
<sluiceResponsible v-if="selectTab == 1" />
<dykeResponsible v-if="selectTab == 2" />
</div>
</template>
<script>
import sluiceResponsible from "./sluice/preplan.vue";
import dykeResponsible from "./dyke/index.vue";
import reservoirResponsible from "./reservoir/index.vue";
export default {
components: {
sluiceResponsible,
dykeResponsible,
reservoirResponsible,
},
computed: {
selectTab() {
return this.$store.state.topTab.selectTab;
},
},
data() {
return {
//
routeList: [
{
path: "/safetyManage/floodControlManagement/preplan",
routeName: "防汛预案管理",
},
],
};
},
};
</script>

45
src/views/safetyManage/floodControlManagement/floodControlSupplies.vue

@ -0,0 +1,45 @@
<template>
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="{ path: item.path }"
>
{{ item.routeName }}
</el-breadcrumb-item>
</el-breadcrumb>
<reservoirResponsible v-if="selectTab == 0" />
<sluiceResponsible v-if="selectTab == 1" />
<dykeResponsible v-if="selectTab == 2" />
</div>
</template>
<script>
import sluiceResponsible from "./sluice/supplies.vue";
import dykeResponsible from "./dyke/index.vue";
import reservoirResponsible from "./reservoir/index.vue";
export default {
components: {
sluiceResponsible,
dykeResponsible,
reservoirResponsible,
},
computed: {
selectTab() {
return this.$store.state.topTab.selectTab;
},
},
data() {
return {
//
routeList: [
{
path: "/safetyManage/floodControlManagement/supplies",
routeName: "防汛物资管理",
},
],
};
},
};
</script>

45
src/views/safetyManage/floodControlManagement/floodControlTissue.vue

@ -0,0 +1,45 @@
<template>
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="{ path: item.path }"
>
{{ item.routeName }}
</el-breadcrumb-item>
</el-breadcrumb>
<reservoirResponsible v-if="selectTab == 0" />
<sluiceResponsible v-if="selectTab == 1" />
<dykeResponsible v-if="selectTab == 2" />
</div>
</template>
<script>
import sluiceResponsible from "./sluice/tissue.vue";
import dykeResponsible from "./dyke/index.vue";
import reservoirResponsible from "./reservoir/index.vue";
export default {
components: {
sluiceResponsible,
dykeResponsible,
reservoirResponsible,
},
computed: {
selectTab() {
return this.$store.state.topTab.selectTab;
},
},
data() {
return {
//
routeList: [
{
path: "/safetyManage/floodControlManagement/tissue",
routeName: "防汛组织管理",
},
],
};
},
};
</script>

3
src/views/safetyManage/floodControlManagement/index.vue

@ -0,0 +1,3 @@
<template>
<router-view />
</template>

3
src/views/safetyManage/floodControlManagement/reservoir/index.vue

@ -0,0 +1,3 @@
<template>
<div>水库</div>
</template>

3
src/views/safetyManage/floodControlManagement/sluice/power.vue

@ -0,0 +1,3 @@
<template>
<div>电源</div>
</template>

3
src/views/safetyManage/floodControlManagement/sluice/preplan.vue

@ -0,0 +1,3 @@
<template>
<div>预案</div>
</template>

3
src/views/safetyManage/floodControlManagement/sluice/supplies.vue

@ -0,0 +1,3 @@
<template>
<div>物资</div>
</template>

3
src/views/safetyManage/floodControlManagement/sluice/tissue.vue

@ -0,0 +1,3 @@
<template>
<div>组织</div>
</template>

21
src/views/safetyManage/responsiblePersonManage/index.vue

@ -1,5 +1,15 @@
<template>
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="{ path: item.path }"
>
{{ item.routeName }}
</el-breadcrumb-item>
</el-breadcrumb>
<sluiceDataCharts v-if="selectTab == 1" />
<dykeDataCharts v-if="selectTab == 2" />
@ -27,5 +37,16 @@ export default {
return this.$store.state.topTab.selectTab;
},
},
data() {
return {
//
routeList: [
{
path: "/safetyManage/responsiblePerson",
routeName: "责任人管理列表",
},
],
};
},
};
</script>

422
src/views/safetyManage/responsiblePersonManage/sluice/index.vue

@ -7,164 +7,49 @@
v-show="showSearch"
label-width="68px"
>
<el-form-item label="负责人名称" prop="name">
<el-input
v-model="queryParams.data.name"
placeholder="请输入负责人名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="负责人单位" prop="unit">
<el-input
v-model="queryParams.data.unit"
placeholder="请输入负责人单位"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="职务" prop="duties">
<el-input
v-model="queryParams.data.duties"
placeholder="请输入职务"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号" prop="phone">
<el-input
v-model="queryParams.data.phone"
placeholder="请输入手机号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="责任人类型" prop="personResponsibleType">
<el-form-item label="水闸名称" prop="wageName">
<el-select
v-model="queryParams.data.personResponsibleType"
placeholder="请选择责任人类型"
clearable
size="small"
v-model="queryParams.data.wagaId"
placeholder="请选择水闸名称"
style="width: 100%"
@change="handleQuery"
filterable
>
<el-option
v-for="dict in personResponsibleTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
v-for="dict in wagaNameOptions"
:key="dict.id"
:label="dict.wagaName"
:value="dict.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="主管部门" prop="competentDepartment">
<el-input
v-model="queryParams.data.competentDepartment"
placeholder="请输入主管部门"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="主管部门职务" prop="competentDepartmentDuties">
<el-input
v-model="queryParams.data.competentDepartmentDuties"
placeholder="请输入主管部门职务"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生效日期" prop="effectiveDate">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.effectiveDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择生效日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="生效日期" prop="createUid">
<el-input
v-model="queryParams.data.createUid"
placeholder="请输入生效日期"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生效日期" prop="updateUid">
<!-- <el-form-item label="水闸类型" prop="wageType">
<el-input
v-model="queryParams.data.updateUid"
placeholder="请输入生效日期"
v-model="queryParams.data.wageType"
placeholder="请输入水闸类型"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生效日期" prop="proCode">
<el-form-item label="行政区划" prop="adcd">
<el-input
v-model="queryParams.data.proCode"
placeholder="请输入生效日期"
v-model="queryParams.data.adcd"
placeholder="请输入行政区划"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生效日期" prop="proNo">
<el-input
v-model="queryParams.data.proNo"
placeholder="请输入生效日期"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生效日期" prop="owerDept">
<el-input
v-model="queryParams.data.owerDept"
placeholder="请输入生效日期"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生效日期" prop="relation">
<el-input
v-model="queryParams.data.relation"
placeholder="请输入生效日期"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="类型" prop="type">
<el-select
v-model="queryParams.data.type"
placeholder="请选择类型"
clearable
size="small"
>
<el-option
v-for="dict in typeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item>
<el-button
<!-- <el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
> -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
@ -204,16 +89,7 @@
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['yg:fzr:export']"
>导出</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
@ -233,15 +109,22 @@
align="center"
fixed
/>
<el-table-column
label="负责人名称"
label="水闸名称"
align="center"
prop="wageId"
:formatter="wageIdFormat"
min-width="120"
>
</el-table-column>
<el-table-column
label="责任人名称"
align="center"
prop="name"
min-width="120"
/>
<el-table-column
label="负责人单位"
label="责人单位"
align="center"
prop="unit"
min-width="120"
@ -287,48 +170,6 @@
<span>{{ parseTime(scope.row.effectiveDate, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="生效日期"
align="center"
prop="createUid"
min-width="120"
/>
<el-table-column
label="生效日期"
align="center"
prop="updateUid"
min-width="120"
/>
<el-table-column
label="生效日期"
align="center"
prop="proCode"
min-width="120"
/>
<el-table-column
label="生效日期"
align="center"
prop="proNo"
min-width="120"
/>
<el-table-column
label="生效日期"
align="center"
prop="owerDept"
min-width="120"
/>
<el-table-column
label="生效日期"
align="center"
prop="remark"
min-width="120"
/>
<el-table-column
label="生效日期"
align="center"
prop="relation"
min-width="120"
/>
<el-table-column
label="类型"
align="center"
@ -372,7 +213,7 @@
@pagination="getList"
/>
<!-- 添加或修改水闸责人对话框 -->
<!-- 添加或修改水闸责人对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
@ -380,20 +221,52 @@
append-to-body
:close-on-click-modal="false"
>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="负责人名称" prop="name">
<el-input v-model="form.name" placeholder="请输入负责人名称" />
<el-form ref="form" :model="form" :rules="rules" label-width="124px">
<el-form-item label="水闸名称" prop="wagaId">
<el-select
v-model="form.wagaId"
placeholder="请选择水闸名称"
style="width: 100%"
>
<el-option
v-for="dict in wagaNameOptions"
:key="dict.id"
:label="dict.wagaName"
:value="dict.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="责任人部门类型" prop="type">
<el-select
v-model="form.type"
placeholder="请选择责任人部门类型"
style="width: 100%"
>
<el-option
v-for="dict in typeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="责任人名称" prop="name">
<el-input v-model="form.name" placeholder="请输入责任人名称" />
</el-form-item>
<el-form-item label="负责人单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入负责人单位" />
<el-form-item label="责人单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入责人单位" />
</el-form-item>
<el-form-item label="职务" prop="duties">
<el-form-item label="责任人职务" prop="duties">
<el-input v-model="form.duties" placeholder="请输入职务" />
</el-form-item>
<el-form-item label="手机号" prop="phone">
<el-form-item label="责任人手机号" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号" />
</el-form-item>
<el-form-item label="责任人类型" prop="personResponsibleType">
<el-form-item
label="责任人类型"
prop="personResponsibleType"
v-if="form.type == '0'"
>
<el-select
v-model="form.personResponsibleType"
placeholder="请选择责任人类型"
@ -407,23 +280,15 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="主管部门" prop="competentDepartment">
<el-input
v-model="form.competentDepartment"
placeholder="请输入主管部门"
/>
</el-form-item>
<el-form-item label="主管部门职务" prop="competentDepartmentDuties">
<el-input
v-model="form.competentDepartmentDuties"
placeholder="请输入主管部门职务"
/>
</el-form-item>
<el-form-item label="生效日期" prop="effectiveDate">
<el-form-item
label="生效日期"
prop="effectiveDate"
v-if="form.type == '2'"
>
<el-date-picker
clearable
size="small"
style="width: 200px"
style="width: 100%"
v-model="form.effectiveDate"
type="date"
value-format="yyyy-MM-dd"
@ -431,41 +296,18 @@
>
</el-date-picker>
</el-form-item>
<el-form-item label="生效日期" prop="createUid">
<el-input v-model="form.createUid" placeholder="请输入生效日期" />
</el-form-item>
<el-form-item label="生效日期" prop="updateUid">
<el-input v-model="form.updateUid" placeholder="请输入生效日期" />
</el-form-item>
<el-form-item label="生效日期" prop="proCode">
<el-input v-model="form.proCode" placeholder="请输入生效日期" />
</el-form-item>
<el-form-item label="生效日期" prop="proNo">
<el-input v-model="form.proNo" placeholder="请输入生效日期" />
</el-form-item>
<el-form-item label="生效日期" prop="owerDept">
<el-input v-model="form.owerDept" placeholder="请输入生效日期" />
</el-form-item>
<el-form-item label="生效日期" prop="remark">
<el-input v-model="form.remark" placeholder="请输入生效日期" />
</el-form-item>
<el-form-item label="生效日期" prop="relation">
<el-input v-model="form.relation" placeholder="请输入生效日期" />
</el-form-item>
<el-form-item label="类型" prop="type">
<el-select
v-model="form.type"
placeholder="请选择类型"
style="width: 100%"
>
<el-option
v-for="dict in typeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
<!-- <el-form-item label="主管部门" prop="competentDepartment">
<el-input
v-model="form.competentDepartment"
placeholder="请输入主管部门"
/>
</el-form-item>
<el-form-item label="主管部门职务" prop="competentDepartmentDuties">
<el-input
v-model="form.competentDepartmentDuties"
placeholder="请输入主管部门职务"
/>
</el-form-item> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -484,6 +326,7 @@ import {
updateFzr,
exportFzr,
} from "@/api/yg/fzr";
import { listJbxx, getJbxx } from "@/api/yg/jbxx";
export default {
name: "Fzr",
@ -501,7 +344,7 @@ export default {
showSearch: true,
//
total: 0,
//
//
fzrList: [],
//
title: "",
@ -511,6 +354,8 @@ export default {
personResponsibleTypeOptions: [],
//
typeOptions: [],
//
wagaNameOptions: [],
//
queryParams: {
pageNum: 1,
@ -544,11 +389,41 @@ export default {
//
form: {},
//
rules: {},
rules: {
wagaId: [
{ required: true, message: "请选择水闸名称", trigger: "blur" },
],
type: [
{ required: true, message: "请选择责任人类型", trigger: "blur" },
],
name: [
{ required: true, message: "请输入责任人姓名", trigger: "blur" },
],
unit: [
{ required: true, message: "请输入责任人单位", trigger: "blur" },
],
duties: [
{ required: true, message: "请输入责任人职务", trigger: "blur" },
],
phone: [
{ required: true, message: "请输入责任人手机号", trigger: "blur" },
{
pattern:
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
message: "手机号格式不正确",
trigger: "blur",
},
],
},
};
},
created() {
this.getList();
listJbxx({}).then((res) => {
// console.log(111, res);
this.wagaNameOptions = res.records;
});
//
this.getDicts("person_type").then((response) => {
this.personResponsibleTypeOptions = response.data;
});
@ -557,7 +432,7 @@ export default {
});
},
methods: {
/** 查询水闸责人列表 */
/** 查询水闸责人列表 */
getList() {
this.loading = true;
listFzr(this.queryParams).then((response) => {
@ -566,6 +441,17 @@ export default {
this.loading = false;
});
},
wageIdFormat(row) {
const id = row.wagaId;
// const name = await new Promise(function (resolve, reject) {
// getJbxx(id).then((res) => {
// // console.log(111, res);
// resolve(res.data.wagaName);
// });
// });
let data = this.wagaNameOptions.find((res) => res.id == id);
if (data) return data.wagaName;
},
//
personResponsibleTypeFormat(row, column) {
return this.selectDictLabel(
@ -656,7 +542,7 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加水闸责人";
this.title = "添加水闸责人";
},
/** 修改按钮操作 */
handleUpdate(row) {
@ -665,7 +551,7 @@ export default {
getFzr(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改水闸责人";
this.title = "修改水闸责人";
});
},
/** 提交按钮 */
@ -713,28 +599,14 @@ export default {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportFzr(queryParams);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
})
.catch(function () {});
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
// ::v-deep {
// .el-dialog {
// margin-top: 2vh !important;
// }
// }
</style>

Loading…
Cancel
Save