Browse Source

标准化建设

master_tdsql
xzt 1 year ago
parent
commit
986f4f7ff4
  1. 62
      src/api/yg/dike/bzhjs.js
  2. 53
      src/api/yg/dike/dagl.js
  3. 61
      src/api/yg/dike/jfgl.js
  4. 619
      src/views/dike/managementGuarantee/archivesManagement/index.vue
  5. 246
      src/views/dike/managementGuarantee/fundGuarantee/components/maintenanceFund.vue
  6. 246
      src/views/dike/managementGuarantee/fundGuarantee/components/personnelExpenses.vue
  7. 533
      src/views/dike/managementGuarantee/fundGuarantee/index.vue
  8. 13
      src/views/dike/managementGuarantee/index.vue
  9. 196
      src/views/dike/managementGuarantee/standardizationConstruction/dataCharts.vue
  10. 48
      src/views/dike/managementGuarantee/standardizationConstruction/index.vue
  11. 1004
      src/views/dike/managementGuarantee/standardizationConstruction/listPage/index.vue
  12. 4
      src/views/dike/safetyManage/declarationManage/declare/components/listPage/index.vue
  13. 17
      src/views/sluice/managementGuarantee/archivesManagement/index.vue
  14. 17
      src/views/sluice/managementGuarantee/fundGuarantee/index.vue
  15. 45
      src/views/sluice/managementGuarantee/standardizationConstruction/listPage/index.vue

62
src/api/yg/dike/bzhjs.js

@ -0,0 +1,62 @@
import request from '@/utils/request'
// 查询堤防标准化表格
export function listBzh(query) {
return request({
url: '/df/bzh/list',
method: 'post',
data: query
})
}
// 查询堤防标准化建设列表
export function listBzhjs(query) {
return request({
url: '/df/bzhjs/list',
method: 'post',
data: query
})
}
// 查询堤防标准化建设详细
export function getBzhjs(id) {
return request({
url: '/df/bzhjs/' + id,
method: 'get'
})
}
// 新增堤防标准化建设
export function addBzhjs(data) {
return request({
url: '/df/bzhjs',
method: 'post',
data: data
})
}
// 修改堤防标准化建设
export function updateBzhjs(data) {
return request({
url: '/df/bzhjs',
method: 'put',
data: data
})
}
// 删除堤防标准化建设
export function delBzhjs(id) {
return request({
url: '/df/bzhjs/' + id,
method: 'delete'
})
}
// 导出堤防标准化建设
export function exportBzhjs(query) {
return request({
url: '/df/bzhjs/export',
method: 'get',
params: query
})
}

53
src/api/yg/dike/dagl.js

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询堤防档案管理列表
export function listDagl(query) {
return request({
url: '/df/dagl/list',
method: 'post',
data: query
})
}
// 查询堤防档案管理详细
export function getDagl(id) {
return request({
url: '/df/dagl/' + id,
method: 'get'
})
}
// 新增堤防档案管理
export function addDagl(data) {
return request({
url: '/df/dagl',
method: 'post',
data: data
})
}
// 修改堤防档案管理
export function updateDagl(data) {
return request({
url: '/df/dagl',
method: 'put',
data: data
})
}
// 删除堤防档案管理
export function delDagl(id) {
return request({
url: '/df/dagl/' + id,
method: 'delete'
})
}
// 导出堤防档案管理
export function exportDagl(query) {
return request({
url: '/df/dagl/export',
method: 'get',
params: query
})
}

61
src/api/yg/dike/jfgl.js

@ -0,0 +1,61 @@
import request from '@/utils/request'
// code查询经费列表
export function listByCode(dikeCode) {
return request({
url: '/df/jfgl/listByCode/'+dikeCode,
method: 'get',
})
}
// 查询经费管理列表
export function listJfgl(query) {
return request({
url: '/df/jfgl/list',
method: 'post',
data: query
})
}
// 查询经费管理详细
export function getJfgl(id) {
return request({
url: '/df/jfgl/' + id,
method: 'get'
})
}
// 新增经费管理
export function addJfgl(data) {
return request({
url: '/df/jfgl',
method: 'post',
data: data
})
}
// 修改经费管理
export function updateJfgl(data) {
return request({
url: '/df/jfgl',
method: 'put',
data: data
})
}
// 删除经费管理
export function delJfgl(id) {
return request({
url: '/df/jfgl/' + id,
method: 'delete'
})
}
// 导出经费管理
export function exportJfgl(query) {
return request({
url: '/df/jfgl/export',
method: 'get',
params: query
})
}

619
src/views/dike/managementGuarantee/archivesManagement/index.vue

@ -0,0 +1,619 @@
<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>
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="堤防编码" prop="dikeCode">
<el-input
v-model="queryParams.data.dikeCode"
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>
<!-- <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="handleAdd"
v-hasPermi="['sz:dagl:add']"
>上传档案</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['sz:dagl:edit']"
>修改档案</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="['sz:dagl:remove']"
>删除</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="daglList"
@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="dikeCode"
min-width="120"
/>
<el-table-column
label="堤防名称"
align="center"
prop="dikeName"
min-width="120"
/>
<el-table-column
label="堤防类型"
align="center"
prop="dikeType"
:formatter="dikeTypeFormat"
min-width="120"
/>
<!-- <el-table-column
label="工程规模"
align="center"
prop="engScal"
:formatter="projectScaleFormat"
min-width="120"
/> -->
<el-table-column
label="堤防主管部门"
align="center"
prop="unit"
min-width="120"
/>
<el-table-column
label="所在行政区划"
align="center"
prop="adcd"
:formatter="$formatAdcd"
min-width="120"
/>
<el-table-column
label="堤防调度规程"
align="center"
prop="regulationsAttachment"
min-width="120"
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(scope.row.regulationsAttachment)"
:key="item + index"
>
<i class="el-icon-document"></i>
{{ item.name }}
<i
class="el-icon-download"
@click="downloadFile(scope.row.regulationsAttachment, index)"
style="cursor: pointer"
></i>
</div>
</template>
</el-table-column>
<el-table-column
label="年度调度运用计划"
align="center"
prop="planAttachment"
min-width="150"
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(scope.row.planAttachment)"
:key="item + index"
>
<i class="el-icon-document"></i>
{{ item.name }}
<i
class="el-icon-download"
@click="downloadFile(scope.row.planAttachment, index)"
style="cursor: pointer"
></i>
</div>
</template>
</el-table-column>
<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-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['sz:dagl:edit']"
>修改档案</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['sz:dagl: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-form ref="form" :model="form" :rules="rules" label-width="124px">
<el-form-item label="堤防名称" prop="dikeCode">
<!-- <el-input v-model="form.dikeCode" placeholder="请输入堤防编码" /> -->
<el-select
v-model="form.dikeCode"
placeholder="请选择堤防名称"
style="width: 100%"
>
<el-option
v-for="dict in dikeNameOptions"
:key="dict.id"
:label="dict.dikeName"
:value="dict.dikeCode"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="堤防调度规程" prop="regulationsAttachment">
<!-- <el-input
v-model="form.regulationsAttachment"
placeholder="请输入堤防调度规程"
/> -->
<el-upload
class="upload-demo"
action="thinking/common/upload"
:headers="headers"
:on-preview="handlePreview"
:on-remove="(file) => handleRemove(file, 'fileList1')"
:before-remove="beforeRemove"
multiple
:on-exceed="handleExceed"
:on-success="(_, fileList) => submitUpload(fileList, 'fileList1')"
:file-list="fileList1"
>
<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="planAttachment">
<!-- <el-input
v-model="form.planAttachment"
placeholder="请输入年度调度运用计划"
/> -->
<el-upload
class="upload-demo"
action="thinking/common/upload"
:headers="headers"
:on-preview="handlePreview"
:on-remove="(file) => handleRemove(file, 'fileList2')"
:before-remove="beforeRemove"
multiple
:on-exceed="handleExceed"
:on-success="(_, fileList) => submitUpload(fileList, 'fileList2')"
:file-list="fileList2"
>
<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>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listDagl,
getDagl,
delDagl,
addDagl,
updateDagl,
exportDagl,
} from "@/api/yg/dike/dagl";
import { listJbxx } from "@/api/yg/dike/jbxx";
import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
export default {
name: "Dagl",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
daglList: [],
//
title: "",
//
open: false,
//
dikeTypeOptions: [],
//
projectScaleOptions: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
dikeCode: null,
regulationsAttachment: null,
planAttachment: null,
createUid: null,
updateUid: null,
owerDept: null,
relation: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sortBy: "desc",
},
},
//
form: {},
//
rules: {},
dikeNameOptions: [],
//
headers: {
shuili: "water " + getToken(),
},
fileList1: [],
fileList2: [],
//
routeList: [
{
path: "/dike/managementGuarantee/archivesManagement",
routeName: "档案管理",
},
],
};
},
created() {
this.getList();
listJbxx({ data: {} }).then((res) => {
// console.log(111, res);
this.dikeNameOptions = res.records;
});
this.getDicts("engineering_scale").then((response) => {
this.projectScaleOptions = response.data;
});
this.getDicts("embankment_type").then((response) => {
this.dikeTypeOptions = response.data;
});
},
methods: {
/** 查询堤防档案管理列表 */
getList() {
this.loading = true;
listDagl(this.queryParams).then((response) => {
this.daglList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
projectScaleFormat(row, column) {
return this.selectDictLabel(this.projectScaleOptions, row.engScal);
},
//
dikeTypeFormat(row, column) {
return this.selectDictLabel(this.dikeTypeOptions, row.dikeType);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
dikeCode: null,
regulationsAttachment: null,
planAttachment: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
remark: null,
owerDept: null,
relation: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
dikeCode: null,
regulationsAttachment: null,
planAttachment: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
remark: null,
owerDept: null,
relation: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sortBy: "desc",
},
};
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;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加堤防档案管理";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getDagl(id).then((response) => {
this.form = response.data;
if (this.form.regulationsAttachment) {
this.fileList1 = JSON.parse(this.form.regulationsAttachment);
}
if (this.form.planAttachment) {
this.fileList2 = JSON.parse(this.form.planAttachment);
}
this.open = true;
this.title = "修改堤防档案管理";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.regulationsAttachment = JSON.stringify(this.fileList1);
this.form.planAttachment = JSON.stringify(this.fileList2);
if (this.form.id != null) {
updateDagl(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addDagl(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delDagl(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
//
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);
},
downloadFile(item, index) {
let file = JSON.parse(item)[index];
this.handlePreview(file);
},
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: 2vh !important;
// }
// }
</style>

246
src/views/dike/managementGuarantee/fundGuarantee/components/maintenanceFund.vue

@ -0,0 +1,246 @@
<template>
<div style="margin-bottom: 20px">
<el-table v-loading="loading" :data="jfList">
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed
/>
<el-table-column
label="单位名称"
align="center"
prop="unitName"
min-width="120"
/>
<el-table-column
label="经费"
align="center"
prop="funds"
min-width="120"
/>
<el-table-column
label="经费用途"
align="center"
prop="fundsPurpose"
min-width="120"
/>
<el-table-column
label="备注"
align="center"
prop="remark"
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-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['yg:fxzz:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['yg:fxzz:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 添加或修改防汛组织对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="800px"
append-to-body
:close-on-click-modal="false"
@close="close"
>
<el-row :gutter="15">
<el-form ref="form" :model="form" :rules="rules" label-width="96px">
<el-form-item label="单位名称" prop="unitName">
<el-input v-model="form.unitName" placeholder="请输入单位名称" />
</el-form-item>
<el-form-item label="经费" prop="funds">
<el-input v-model="form.funds" placeholder="请输入经费">
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item label="经费用途" prop="fundsPurpose">
<el-input
v-model="form.fundsPurpose"
placeholder="请输入经费用途"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" 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>
</div>
</template>
<script>
import {
listByCode,
getJfgl,
delJfgl,
addJfgl,
updateJfgl,
} from "@/api/yg/dike/jfgl";
export default {
props: ["dikeCode"],
data() {
return {
//
loading: true,
//
total: 0,
//
jfList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {},
//
params: {
//
orderBy: "create_time",
// descasc
sortBy: "desc",
},
},
//
form: {},
//
rules: {
peopleNum: [
{
pattern: /^[1-9]\d*$/,
message: "请输入正整数,不包含0",
trigger: "blur",
},
],
funds: [
{
pattern:
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
message: "请输入数字,可保留两位小数",
trigger: "blur",
},
],
},
};
},
created() {
this.getList();
},
methods: {
/** 查询防汛组织列表 */
getList() {
this.loading = true;
listByCode(this.dikeCode).then((response) => {
this.jfList = response.data.filter((item) => item.type == "1");
this.total = response.total;
this.loading = false;
});
},
cancel() {
this.form = {};
this.open = false;
},
close() {
this.form = {};
},
/** 新增按钮操作 */
handleAdd() {
this.open = true;
this.title = "添加经费管理";
},
/** 修改按钮操作 */
handleUpdate(row) {
const id = row.id || this.ids;
getJfgl(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改经费管理";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateJfgl(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
this.form.dikeCode = this.dikeCode;
this.form.type = "1";
addJfgl(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delJfgl(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
},
};
</script>

246
src/views/dike/managementGuarantee/fundGuarantee/components/personnelExpenses.vue

@ -0,0 +1,246 @@
<template>
<div style="margin-bottom: 20px">
<el-table v-loading="loading" :data="jfList">
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed
/>
<el-table-column
label="单位名称"
align="center"
prop="unitName"
min-width="120"
/>
<el-table-column
label="人员数量"
align="center"
prop="peopleNum"
min-width="120"
/>
<el-table-column
label="经费"
align="center"
prop="funds"
min-width="120"
/>
<el-table-column
label="经费用途"
align="center"
prop="fundsPurpose"
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-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['yg:fxzz:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['yg:fxzz:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 添加或修改防汛组织对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="800px"
append-to-body
:close-on-click-modal="false"
@close="close"
>
<el-row :gutter="15">
<el-form ref="form" :model="form" :rules="rules" label-width="96px">
<el-form-item label="单位名称" prop="unitName">
<el-input v-model="form.unitName" placeholder="请输入单位名称" />
</el-form-item>
<el-form-item label="人员数量" prop="peopleNum">
<el-input v-model="form.peopleNum" placeholder="请输入人员数量" />
</el-form-item>
<el-form-item label="经费" prop="funds">
<el-input v-model="form.funds" placeholder="请输入经费">
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item label="经费用途" prop="fundsPurpose">
<el-input
v-model="form.fundsPurpose"
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>
</div>
</template>
<script>
import {
listByCode,
getJfgl,
delJfgl,
addJfgl,
updateJfgl,
} from "@/api/yg/dike/jfgl";
export default {
props: ["dikeCode"],
data() {
return {
//
loading: true,
//
total: 0,
//
jfList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {},
//
params: {
//
orderBy: "create_time",
// descasc
sortBy: "desc",
},
},
//
form: {},
//
rules: {
peopleNum: [
{
pattern: /^[1-9]\d*$/,
message: "请输入正整数,不包含0",
trigger: "blur",
},
],
funds: [
{
pattern:
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
message: "请输入数字,可保留两位小数",
trigger: "blur",
},
],
},
};
},
created() {
this.getList();
},
methods: {
/** 查询防汛组织列表 */
getList() {
this.loading = true;
listByCode(this.dikeCode).then((response) => {
this.jfList = response.data.filter((item) => item.type == "0");
this.total = response.total;
this.loading = false;
});
},
cancel() {
this.form = {};
this.open = false;
},
close() {
this.form = {};
},
/** 新增按钮操作 */
handleAdd() {
this.open = true;
this.title = "添加经费管理";
},
/** 修改按钮操作 */
handleUpdate(row) {
const id = row.id || this.ids;
getJfgl(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改经费管理";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateJfgl(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
this.form.dikeCode = this.dikeCode;
this.form.type = "0";
addJfgl(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delJfgl(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
},
};
</script>

533
src/views/dike/managementGuarantee/fundGuarantee/index.vue

@ -0,0 +1,533 @@
<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>
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="单位名称" prop="unitName">
<el-input
v-model="queryParams.data.unitName"
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>
<!-- <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">
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="jfglList"
@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="dikeCode"
min-width="120"
/>
<el-table-column
label="堤防名称"
align="center"
prop="dikeName"
min-width="120"
/>
<el-table-column
label="堤防类型"
align="center"
prop="dikeType"
:formatter="dikeTypeFormat"
min-width="120"
/>
<!-- <el-table-column
label="工程规模"
align="center"
prop="engScal"
:formatter="projectScaleFormat"
min-width="120"
/> -->
<el-table-column
label="堤防主管部门"
align="center"
prop="unit"
min-width="120"
/>
<el-table-column
label="所在行政区划"
align="center"
prop="adcd"
:formatter="$formatAdcd"
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-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['sz:jfgl:edit']"
>经费管理</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['sz:jfgl: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"
v-if="open"
>
<el-row :gutter="15">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-col :span="8">
<el-form-item label="堤防编码" prop="dikeCode">
<el-input
v-model="form.dikeCode"
placeholder="请输入堤防编码"
:disabled="true"
/>
<!-- <el-select
v-model="form.dikeCode"
placeholder="请选择堤防名称"
style="width: 100%"
>
<el-option
v-for="dict in dikeNameOptions"
:key="dict.id"
:label="dict.dikeName"
:value="dict.dikeCode"
></el-option>
</el-select> -->
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="堤防名称" prop="dikeName">
<el-input
v-model="form.dikeName"
placeholder="请输入堤防名称"
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="堤防类型" prop="dikeType">
<!-- <el-input v-model="form.dikeType" placeholder="请输入堤防类型" /> -->
<el-select
v-model="form.dikeType"
placeholder="请选择堤防类型"
style="width: 100%"
:disabled="true"
>
<el-option
v-for="dict in dikeTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-form-item label="人员数量" prop="peopleNum">
<el-input v-model="form.peopleNum" placeholder="请输入人员数量" />
</el-form-item>
<el-form-item label="经费" prop="funds">
<el-input v-model="form.funds" placeholder="请输入经费" />
</el-form-item>
<el-form-item label="经费用途" prop="fundsPurpose">
<el-input v-model="form.fundsPurpose" placeholder="请输入经费用途" />
</el-form-item> -->
</el-form>
</el-row>
<el-row>
<div class="listTitle">
<span>人员经费</span>
<span class="addBtn" @click="handleAddList('0')">
<i class="el-icon-plus"></i>
添加
</span>
</div>
<personnelExpenses
ref="personnelExpenses"
:dikeCode="this.form.dikeCode"
/>
</el-row>
<el-row>
<div class="listTitle">
<span>维修养护经费</span>
<span class="addBtn" @click="handleAddList('1')">
<i class="el-icon-plus"></i>
添加
</span>
</div>
<maintenanceFund ref="maintenanceFund" :dikeCode="this.form.dikeCode" />
</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>
</div>
</template>
<script>
import {
listJfgl,
getJfgl,
delJfgl,
addJfgl,
updateJfgl,
exportJfgl,
} from "@/api/yg/dike/jfgl";
// import { listJbxx } from "@/api/yg/jbxx";
import personnelExpenses from "./components/personnelExpenses.vue";
import maintenanceFund from "./components/maintenanceFund.vue";
export default {
name: "Jfgl",
components: {
personnelExpenses,
maintenanceFund,
},
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
jfglList: [],
//
title: "",
//
open: false,
//
dikeTypeOptions: [],
//
projectScaleOptions: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
dikeCode: null,
unitName: null,
peopleNum: null,
funds: null,
fundsPurpose: null,
createUid: null,
updateUid: null,
owerDept: null,
relation: null,
type: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sortBy: "desc",
},
},
//
form: {},
//
rules: {},
// dikeNameOptions: [],
//
routeList: [
{
path: "/sluice/managementGuarantee/fundGuarantee",
routeName: "经费保障",
},
],
};
},
created() {
this.getList();
// listJbxx({ data: {} }).then((res) => {
// // console.log(111, res);
// this.dikeNameOptions = res.records;
// });
this.getDicts("engineering_scale").then((response) => {
this.projectScaleOptions = response.data;
});
this.getDicts("embankment_type").then((response) => {
this.dikeTypeOptions = response.data;
});
},
methods: {
handleAddList(key) {
if (key == "0") this.$refs.personnelExpenses.handleAdd();
if (key == "1") this.$refs.maintenanceFund.handleAdd();
},
/** 查询经费管理列表 */
getList() {
this.loading = true;
listJfgl(this.queryParams).then((response) => {
this.jfglList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
projectScaleFormat(row, column) {
return this.selectDictLabel(this.projectScaleOptions, row.engScal);
},
//
dikeTypeFormat(row, column) {
return this.selectDictLabel(this.dikeTypeOptions, row.dikeType);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
dikeCode: null,
unitName: null,
peopleNum: null,
funds: null,
fundsPurpose: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
owerDept: null,
remark: null,
relation: null,
type: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
dikeCode: null,
unitName: null,
peopleNum: null,
funds: null,
fundsPurpose: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
owerDept: null,
remark: null,
relation: null,
type: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sortBy: "desc",
},
};
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;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加经费管理";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
// const id = row.id || this.ids;
// getJfgl(id).then((response) => {
this.form = row;
this.open = true;
this.title = "修改经费管理";
// });
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateJfgl(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addJfgl(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delJfgl(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
// ::v-deep {
// .el-dialog {
// margin-top: 2vh !important;
// }
// }
.listTitle {
font-size: 14px;
padding-left: 10px;
padding-right: 30px;
margin: 20px 0;
border-left: 2px solid #36b29e;
display: flex;
justify-content: space-between;
span:nth-child(1) {
font-weight: bold;
// color: #000;
}
.addBtn {
color: #36b29e;
cursor: pointer;
}
.addBtn:hover {
color: #31a08e;
}
}
.listTitle:nth-child(1) {
margin-top: 0;
}
</style>

13
src/views/dike/managementGuarantee/index.vue

@ -0,0 +1,13 @@
<template>
<Layout>
<router-view />
</Layout>
</template>
<script>
import Layout from "@/layout";
export default {
components: { Layout },
};
</script>

196
src/views/dike/managementGuarantee/standardizationConstruction/dataCharts.vue

@ -0,0 +1,196 @@
<template>
<div class="content">
暂无数据
<!-- <div ref="pieEle" style="width: 30%; height: 100%"></div> -->
<!-- <div ref="barEle" style="width: 100%; height: 100%"></div> -->
</div>
</template>
<script>
import { getPie, getHistogram } from "@/api/yg/dike/fzr";
import * as echarts from "echarts";
export default {
data() {
return {
pieChartData: [],
barChartData: [],
};
},
created() {
// this.getData();
},
methods: {
async getData() {
// const res1 = await getPie();
const res2 = await getHistogram();
// for (let key in res1[0]) {
// this.pieChartData.push({ value: res1[0][key], name: key });
// }
this.barChartData = res2;
// this.pieInit();
this.barInit();
// console.log("pieChartData", this.pieChartData);
console.log("barChartData", this.barChartData);
},
// pieInit() {
// let chartDom = this.$refs.pieEle;
// let myChart = echarts.init(chartDom);
// let option = {
// title: {
// // text: "Referer of a Website",
// // subtext: "Fake Data",
// left: "center",
// },
// color: ["#6DD48C", "#5DB1FF", "#FBD437", "#36CBCB"],
// tooltip: {
// trigger: "item",
// },
// legend: {
// orient: "horizontal",
// bottom: "2%",
// icon: "circle",
// },
// series: [
// {
// name: "",
// type: "pie",
// radius: "65%",
// data: this.pieChartData,
// label: {
// formatter: (params) => {
// // console.log(11, params);
// return `${params.name}: ${params.value}`;
// },
// },
// emphasis: {
// itemStyle: {
// shadowBlur: 10,
// shadowOffsetX: 0,
// shadowColor: "rgba(0, 0, 0, 0.5)",
// },
// },
// },
// ],
// };
// option && myChart.setOption(option);
// window.addEventListener("resize", function () {
// myChart.resize();
// });
// },
barInit() {
let chartDom = this.$refs.barEle;
let myChart = echarts.init(chartDom);
let option;
console.log(9999, this.barChartData);
// if (Object.keys(this.barChartData).length == 0) {
// option = {
// title: {
// text: "~~",
// x: "center",
// y: "center",
// textStyle: {
// fontSize: 14,
// fontWeight: "normal",
// },
// },
// };
// } else {
option = {
title: {
// text: "World Population",
},
color: ["#38A0FF", "#4CCA73", "#FBD437"],
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
},
legend: {
orient: "horizontal",
bottom: "2%",
icon: "circle",
},
grid: {
left: "3%",
right: "4%",
bottom: "12%",
containLabel: true,
},
xAxis: {
type: "category",
axisLine: {
show: false,
},
axisTick: {
alignWithLabel: true,
},
data: Object.keys(this.barChartData),
},
yAxis: {
type: "value",
axisLine: {
show: false,
},
axisTick: {
show: false,
},
splitLine: {
//线
show: true, //
lineStyle: {
//线
// color: "#0735a2", //线
// width: 1, //线
type: "dashed", //线
},
},
minInterval: 1, //1
max: function (value) {
return value.max + Math.ceil(0.2 * value.max);
},
// boundaryGap: [0, 1],
},
series: [
{
name: "政府部门责任人",
type: "bar",
data: Object.values(this.barChartData).map((res) => res["0"]),
barMaxWidth: "10%",
},
{
name: "主管部门责任人",
type: "bar",
data: Object.values(this.barChartData).map((res) => res["1"]),
barMaxWidth: "10%",
},
{
name: "管理单位责任人",
type: "bar",
data: Object.values(this.barChartData).map((res) => res["2"]),
barMaxWidth: "10%",
},
],
};
// }
option && myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();
});
},
},
};
</script>
<style lang="scss" scoped>
.content {
height: 300px;
// border: 1px solid #000;
background: #fff;
box-shadow: 2px 4px 6px 2px rgba(0, 0, 0, 0.2);
margin-bottom: 10px;
display: flex;
}
</style>

48
src/views/dike/managementGuarantee/standardizationConstruction/index.vue

@ -0,0 +1,48 @@
<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>
<dataCharts ref="dataCharts" />
<listPage :chartEleGetData="chartEleGetData" />
</div>
</template>
<script>
import dataCharts from "./dataCharts.vue";
import listPage from "./listPage/index.vue";
export default {
components: {
dataCharts,
listPage,
},
data() {
return {
//
routeList: [
{
path: "/sluice/managementGuarantee/standardizationConstruction",
routeName: "标准化建设列表",
},
],
chartEleGetData: "",
};
},
watch: {},
// computed: {
// chartEleGetData() {
// console.log(111, this.$refs.dataCharts?.getData);
// return this.$refs.dataCharts?.getData;
// },
// },
mounted() {
this.chartEleGetData = this.$refs.dataCharts?.getData;
},
};
</script>

1004
src/views/dike/managementGuarantee/standardizationConstruction/listPage/index.vue

File diff suppressed because it is too large

4
src/views/dike/safetyManage/declarationManage/declare/components/listPage/index.vue

@ -1136,8 +1136,8 @@ export default {
status: "0",
securityCategory: null,
adcd: null,
hzStatus: "0",
zxStatus: "0",
hzStatus: null,
zxStatus: null,
reason: null,
startLoc: null,
endLoc: null,

17
src/views/sluice/managementGuarantee/archivesManagement/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>
<el-form
:model="queryParams"
ref="queryForm"
@ -368,6 +378,13 @@ export default {
},
fileList1: [],
fileList2: [],
//
routeList: [
{
path: "/sluice/managementGuarantee/archivesManagement",
routeName: "档案管理",
},
],
};
},
created() {

17
src/views/sluice/managementGuarantee/fundGuarantee/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>
<el-form
:model="queryParams"
ref="queryForm"
@ -310,6 +320,13 @@ export default {
//
rules: {},
// wagaNameOptions: [],
//
routeList: [
{
path: "/sluice/managementGuarantee/fundGuarantee",
routeName: "经费保障",
},
],
};
},
created() {

45
src/views/sluice/managementGuarantee/standardizationConstruction/listPage/index.vue

@ -174,6 +174,7 @@
width="1600px"
append-to-body
:close-on-click-modal="false"
@close="closeDialog"
>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="水闸名称" prop="wagaCode">
@ -227,7 +228,13 @@
<el-input v-model="form.score" placeholder="请输入分数" />
</el-form-item> -->
</el-form>
<div class="listTitle">
<span>评价表</span>
<!-- <span class="addBtn" @click="handleAddList('0')">
<i class="el-icon-plus"></i>
添加
</span> -->
</div>
<div class="tableBox">
<table class="infoTable" border="1">
<tbody>
@ -621,7 +628,7 @@ export default {
//
title: "",
//
open: true,
open: false,
//
wagaTypeOptions: [],
//
@ -727,6 +734,12 @@ export default {
console.log("评价表", this.evalData);
});
},
closeDialog() {
this.evalForm = {
score: {},
reason: {},
};
},
/** 查询水闸标准化建设列表 */
getList() {
this.loading = true;
@ -818,6 +831,9 @@ export default {
const id = row.id || this.ids;
getBzhjs(id).then((response) => {
this.form = response.data;
if (this.form.score) {
this.evalForm = JSON.parse(this.form.score);
}
this.open = true;
this.title = "修改水闸标准化建设";
});
@ -931,6 +947,31 @@ export default {
margin-top: 2vh !important;
}
}
.listTitle {
font-size: 14px;
padding-left: 10px;
padding-right: 30px;
margin: 20px 0;
border-left: 2px solid #36b29e;
display: flex;
justify-content: space-between;
span:nth-child(1) {
font-weight: bold;
// color: #000;
}
.addBtn {
color: #36b29e;
cursor: pointer;
}
.addBtn:hover {
color: #31a08e;
}
}
.listTitle:nth-child(1) {
margin-top: 0;
}
.tableBox {
height: 600px;
overflow-y: auto;

Loading…
Cancel
Save