Browse Source

fix: 修复bug

sy-water-data-board-ui
panyuyi 12 months ago
parent
commit
277b37a794
  1. 5
      src/views/dike/engineeringCondition/dikeBaseInfo/options/basePage.vue
  2. 82
      src/views/dike/runManage/components/DikeBaseInfo/index.vue
  3. 44
      src/views/dike/runManage/components/DikeBaseInfoDialog/index.vue
  4. 358
      src/views/dike/runManage/maintenance/maintenancePlan/DetailsDialog.vue
  5. 16
      src/views/dike/runManage/maintenance/maintenancePlan/DetailsMap.vue
  6. 40
      src/views/dike/runManage/maintenance/maintenancePlan/index.vue
  7. 36
      src/views/dike/runManage/maintenance/maintenanceRecords/index.vue
  8. 21
      src/views/dike/runManage/monitoring/dike/index.vue
  9. 8
      src/views/dike/runManage/pestAnimalControl/planManagement/index.vue
  10. 5
      src/views/sluice/engineeringCondition/sluiceBaseInfo/options/basePage.vue
  11. 65
      src/views/sluice/runManage/components/SluiceBaseInfo/index.vue
  12. 44
      src/views/sluice/runManage/components/SluiceBaseInfoDialog/index.vue
  13. 189
      src/views/sluice/runManage/dispatch/record/components/edit.vue
  14. 189
      src/views/sluice/runManage/dispatch/record/index.vue
  15. 43
      src/views/sluice/runManage/maintenance/maintenancePlan/index.vue
  16. 47
      src/views/sluice/runManage/maintenance/maintenanceRecords/index.vue

5
src/views/dike/engineeringCondition/dikeBaseInfo/options/basePage.vue

@ -262,6 +262,9 @@ import { regionData, codeToText, TextToCode } from "element-china-area-data";
export default {
name: "Jbxx",
props: {
baseDataId: String,
},
data() {
return {
areasOptionProps: {
@ -495,7 +498,7 @@ export default {
/** 查询堤防安全管理基本信息列表 */
getList() {
this.loading = true;
const id = this.$route.query.baseDataId;
const id = this.$route.query.baseDataId || this.baseDataId;
getJbxx(id).then((response) => {
console.log(1111, response);
this.form = response.data;

82
src/views/dike/runManage/components/DikeBaseInfo/index.vue

@ -0,0 +1,82 @@
<template>
<el-tabs v-model="activeName">
<el-tab-pane label="堤防基本信息" name="basePage" :lazy="true">
<basePage :baseDataId="this.id" />
</el-tab-pane>
<el-tab-pane label="堤防横断面" name="dikeCrossSection" :lazy="true">
<dikeCrossSection :dikeCode="this.code" />
</el-tab-pane>
<el-tab-pane
label="堤防横断面特征值"
name="dikeCrossSectionTrait"
:lazy="true"
>
<dikeCrollSectionTrait :dikeCode="this.code" />
</el-tab-pane>
<el-tab-pane
label="水文特征"
name="hydrologicalCharacteristics"
:lazy="true"
>
<hydrologicalCharacteristics :dikeCode="this.code" />
</el-tab-pane>
<el-tab-pane label="管理体制" name="managementSystem" :lazy="true">
<managementSystem :dikeCode="this.code" />
</el-tab-pane>
<el-tab-pane
label="历史决溢记录"
name="historyOverflowsRecords"
:lazy="true"
>
<historyOverflowsRecords :dikeCode="this.code" />
</el-tab-pane>
<el-tab-pane label="主要效益指标" name="bainBenefitIndex" :lazy="true">
<bainBenefitIndex :dikeCode="this.code" />
</el-tab-pane>
<!-- <el-tab-pane
label="风险隐患调查信息"
name="riskInvestigationInformation"
:lazy="true"
>
<riskInvestigationInformation :dikeCode="this.code"/>
</el-tab-pane> -->
</el-tabs>
</template>
<script>
import basePage from "../../../../dike/engineeringCondition/dikeBaseInfo/options/basePage.vue";
import dikeCrossSection from "../../../../dike/engineeringCondition/dikeBaseInfo/options/dikeCrossSection.vue";
import dikeCrollSectionTrait from "../../../../dike/engineeringCondition/dikeBaseInfo/options/dikeCrossSectionTrait.vue";
import hydrologicalCharacteristics from "../../../../dike/engineeringCondition/dikeBaseInfo/options/hydrologicalCharacteristics.vue";
import managementSystem from "../../../../dike/engineeringCondition/dikeBaseInfo/options/managementSystem.vue";
import historyOverflowsRecords from "../../../../dike/engineeringCondition/dikeBaseInfo/options/historyOverflowsRecords.vue";
import bainBenefitIndex from "../../../../dike/engineeringCondition/dikeBaseInfo/options/bainBenefitIndex.vue";
import riskInvestigationInformation from "../../../../dike/engineeringCondition/dikeBaseInfo/options/riskInvestigationInformation.vue";
export default {
components: {
basePage,
dikeCrossSection,
dikeCrollSectionTrait,
hydrologicalCharacteristics,
managementSystem,
historyOverflowsRecords,
bainBenefitIndex,
riskInvestigationInformation,
},
props: {
id: String,
code: String,
},
data() {
return {
activeName: "basePage",
};
},
created() {},
methods: {
reset() {
this.activeName = "basePage";
},
},
};
</script>
<style scoped lang="less"></style>

44
src/views/dike/runManage/components/DikeBaseInfoDialog/index.vue

@ -0,0 +1,44 @@
<template>
<div class="dike-detail-page">
<el-dialog :visible.sync="showDialog" title="堤防详情" width="960px">
<DikeBaseInfo ref="dikeRef" :id="this.id" :code="this.code" />
</el-dialog>
</div>
</template>
<script>
import DikeBaseInfo from "@/views/dike/runManage/components/DikeBaseInfo/index.vue";
export default {
components: { DikeBaseInfo },
props: {
value: Boolean,
id: String,
code: String,
},
data() {
return {};
},
computed: {
showDialog: {
get() {
return this.value;
},
set(val) {
this.$emit("input", val);
},
},
},
watch: {
value(newVal, old) {
if (newVal) {
} else {
this.$refs.dikeRef?.reset();
}
},
},
methods: {},
created() {},
mounted() {},
};
</script>
<style scoped lang="less"></style>

358
src/views/dike/runManage/maintenance/maintenancePlan/DetailsDialog.vue

@ -1,358 +0,0 @@
<template>
<div class="dike-detail-page">
<el-dialog :visible.sync="showDialog" title="堤防详情" width="960px">
<div class="title">工程基础信息</div>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>堤防名称</span>
<span>这是什么名称啊啊啊啊啊</span>
</el-col>
<el-col :span="8">
<span>堤防编码</span>
<span>44011111000009</span>
</el-col>
<el-col :span="8">
<span>起点所在行政区划</span>
<span>广东省广州市白云区</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>终点所在行政区划</span>
<span>广州市白云区</span>
</el-col>
<el-col :span="8">
<span>空间位置</span>
<el-button type="primary" link>打开地图</el-button>
</el-col>
<el-col :span="8">
<span>起点桩号</span>
<span>沉香沙0+000</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>终点桩号</span>
<span>沉香沙3+212</span>
</el-col>
<el-col :span="8">
<span>堤防类型</span>
<span>江河堤</span>
</el-col>
<el-col :span="8">
<span>是否为蓄滞洪区堤防</span>
<span></span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>堤防跨界情况</span>
<span>未跨县</span>
</el-col>
<el-col :span="8">
<span>所在河流</span>
<span>珠江西航道支1</span>
</el-col>
<el-col :span="8">
<span>河流岸别</span>
<span>左岸</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>堤防型式</span>
<span>土石混合堤</span>
</el-col>
<el-col :span="8">
<span>最近达标加固完工状态</span>
<span>已开展达标加固</span>
</el-col>
<el-col :span="8">
<span>最近达标加固完工时间</span>
<span>2021-11-12</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>建成时间</span>
<span>-</span>
</el-col>
<el-col :span="8">
<span>工程任务</span>
<span>防洪</span>
</el-col>
<el-col :span="8">
<span>堤防级别</span>
<span>4</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>设计防洪()标准[重现期]</span>
<span>20</span>
</el-col>
<el-col :span="8">
<span>规划防洪()标准[重现期]</span>
<span>20</span>
</el-col>
<el-col :span="8">
<span>堤防长度(m)</span>
<span>3631</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>达标长度(m)</span>
<span>-</span>
</el-col>
<el-col :span="8">
<span>保护人口(单位:万人)</span>
<span>0</span>
</el-col>
<el-col :span="8">
<span>保护农田(单位:万亩)</span>
<span></span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>重要基础设施</span>
<span></span>
</el-col>
<!-- <el-col :span="8">
<span></span>
<span></span>
</el-col>
<el-col :span="8">
<span></span>
<span></span>
</el-col> -->
</el-row>
<div class="title mt-20">工程管理情况</div>
<div class="tile-line mt-10">
<span class="pl-2 pr-2">工程管理单位</span>
</div>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>工程管理单位</span>
<span>广州市珠江前后航道流域实物中心</span>
</el-col>
<el-col :span="8">
<span>工程管理单位性质</span>
<span>事业</span>
</el-col>
<el-col :span="8">
<span>工程管理单位权属</span>
<span>市级管理</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>工程管理单位责任人</span>
<span>胡细凤</span>
</el-col>
<el-col :span="8">
<span>工程管理单位负责人职务</span>
<span>主任</span>
</el-col>
<el-col :span="8">
<span>工程管理单位责任人电话</span>
<span>13609037391</span>
</el-col>
</el-row>
<div class="tile-line mt-10">
<span class="pl-2 pr-2">水行政主管部门</span>
</div>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>水行政主管部门</span>
<span>广州市水务局</span>
</el-col>
<el-col :span="8">
<span>水行政主管部门性质</span>
<span>机关</span>
</el-col>
<el-col :span="8">
<span>水行政主管部门负责人</span>
<span>何矩文</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>水行政主管部门责任人职务</span>
<span>二级调研员</span>
</el-col>
<el-col :span="8">
<span>水行政主管部门责任人电话</span>
<span>13800000000</span>
</el-col>
<el-col :span="8">
<span>行业归口管理部门水利部门</span>
<span>13609037391</span>
</el-col>
</el-row>
<div class="tile-line mt-10">
<span class="pl-2 pr-2">防汛行政责任人</span>
</div>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>防汛行政责任人</span>
<span>周军</span>
</el-col>
<el-col :span="8">
<span>防汛行政责任人职务</span>
<span>白云区副区长</span>
</el-col>
<el-col :span="8">
<span>防汛行政责任人手机号码</span>
<span>13580325008</span>
</el-col>
</el-row>
<div class="tile-line mt-10">
<span class="pl-2 pr-2">划界确权</span>
</div>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>管理范围划界</span>
<span>完成划定</span>
</el-col>
<el-col :span="8">
<span>完成时间</span>
<span>2021-07</span>
</el-col>
<el-col :span="8">
<span></span>
<span></span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="24">
<span>上传证明材料</span>
<span>xxxxxxx报告.pdf</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>管理范围确权</span>
<span>尚未开展</span>
</el-col>
<el-col :span="8">
<span>保护范围划界</span>
<span>完成划定</span>
</el-col>
<el-col :span="8">
<span>完成时间</span>
<span>2021-07</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="24">
<span>上传证明材料</span>
<span>尚未开展</span>
</el-col>
</el-row>
<el-row class="mt-12" :gutter="10">
<el-col :span="24">
<span>工程图片</span>
<span></span>
</el-col>
</el-row>
<div class="tile-line mt-10">
<span class="pl-2 pr-2">监控类型</span>
</div>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>监控类型</span>
<span>无监控</span>
</el-col>
</el-row>
<div class="title mt-20">工程管理情况</div>
<el-row class="mt-12" :gutter="10">
<el-col :span="8">
<span>监控类型</span>
<span>无监控</span>
</el-col>
</el-row>
</el-dialog>
</div>
</template>
<script>
import { getDikeInfo } from "@/api/yg/dikeInfo";
export default {
props: {
value: Boolean,
id: String,
},
data() {
return {
detailsData: null,
};
},
computed: {
showDialog: {
get() {
return this.value;
},
set(val) {
this.$emit("input", val);
},
},
},
watch: {
value(newVal, old) {
if (newVal) {
this.initData();
}
},
},
methods: {
initData() {
if (this.id) {
getDikeInfo(this.id).then((res) => {
this.detailsData = res;
});
}
},
},
created() {},
mounted() {},
};
</script>
<style scoped lang="less">
.dike-detail-page {
.title {
position: relative;
font-size: 14px;
font-weight: 700;
padding-left: 20px;
&::before {
position: absolute;
left: 0;
top: 0;
content: " ";
background: #31a08e;
width: 4px;
height: 14px;
}
}
.tile-line {
display: flex;
align-items: center;
&::before {
flex: 1;
content: " ";
width: auto;
height: 1px;
background: #999;
}
&::after {
flex: 1;
content: " ";
width: auto;
height: 1px;
background: #999;
}
}
}
</style>

16
src/views/dike/runManage/maintenance/maintenancePlan/DetailsMap.vue

@ -1,16 +0,0 @@
<template>
<div class='dike-details-map-page'></div>
</template>
<script>
export default {
data(){
return {}
},
created(){},
methods:{}
}
</script>
<style scoped lang='less'>
.dike-details-map-page{
}
</style>

40
src/views/dike/runManage/maintenance/maintenancePlan/index.vue

@ -9,20 +9,22 @@ import {
} from "@/api/management";
import { listJbxx } from "@/api/yg/dike/jbxx";
import { getDikeYhPlanList } from "@/api/dike";
import DetailsDialog from "./DetailsDialog.vue";
import DikeBaseInfoDialog from "@/views/dike/runManage/components/DikeBaseInfoDialog/index.vue";
export default {
name: "InspectionItems",
components: { DetailsDialog },
components: { DikeBaseInfoDialog },
data() {
return {
searchInput: "",
dialogVisible: false,
prohibitEditing: false,
dikeDetailsDialog: {
//
baseInfoDialog: {
show: false,
id: "",
code: "",
},
searchInput: "",
dialogVisible: false,
prohibitEditing: false,
dikeLevel: [
{
id: 1,
@ -126,7 +128,7 @@ export default {
});
},
addPlan() {
this.ruleForm.dikeCode = this.$route.query.dikeCode;
// this.ruleForm.dikeCode = this.$route.query.dikeCode;
this.dialogVisible = true;
},
//
@ -261,14 +263,14 @@ export default {
});
},
handleChangeDike(value) {
// this.ruleForm.name = this.ruleForm.dikeCode;
let res = this.embankmentList.find((v) => v.dikeCode === value);
this.dikeDetailsDialog.id = res?.id || "";
this.baseInfoDialog.id = res?.id || "";
this.baseInfoDialog.code = this.ruleForm.dikeCode;
},
//
handleOpenDetails() {
if (this.dikeDetailsDialog.id) {
this.dikeDetailsDialog.show = true;
if (this.baseInfoDialog.id) {
this.baseInfoDialog.show = true;
} else {
this.$message.warning("缺少id");
}
@ -443,12 +445,7 @@ export default {
@click="handleOpenDetails"
>详情</el-button
>
<el-button
:disabled="!ruleForm.dikeCode"
class="ml-6"
type="success"
size="small"
@click="handleOpenMap"
<el-button :disabled="true" class="ml-6" type="info" size="small"
>打开地图</el-button
>
</el-form-item>
@ -549,10 +546,11 @@ export default {
</div>
</el-dialog>
<DetailsDialog
v-model="dikeDetailsDialog.show"
:id="dikeDetailsDialog.id"
></DetailsDialog>
<DikeBaseInfoDialog
v-model="baseInfoDialog.show"
:id="baseInfoDialog.id"
:code="baseInfoDialog.code"
></DikeBaseInfoDialog>
</div>
</template>

36
src/views/dike/runManage/maintenance/maintenanceRecords/index.vue

@ -12,10 +12,19 @@ import {
} from "@/api/management";
import { getDikeYhRecordList, updateYhRecordStatus } from "@/api/dike";
import DikeBaseInfoDialog from "@/views/dike/runManage/components/DikeBaseInfoDialog/index.vue";
export default {
name: "InspectionItems",
components: { DikeBaseInfoDialog },
data() {
return {
//
baseInfoDialog: {
show: false,
id: "",
code: "",
},
tableHeight: null,
createTimeArr: [],
updateTimeArr: [],
@ -27,6 +36,7 @@ export default {
statusList: [], //
personnelList: [], //
planData: {
dikeName: "",
dikeCode: "",
planTime: "",
nationalSupplement: "",
@ -95,6 +105,14 @@ export default {
this.$message.success("删除成功");
});
},
//
handleOpenDetails() {
if (this.baseInfoDialog.id) {
this.baseInfoDialog.show = true;
} else {
this.$message.warning("缺少id");
}
},
//
viewOrEditPlanDetails(row, edit = false) {
if (!edit) {
@ -238,6 +256,9 @@ export default {
},
//
changeSelectPlan() {
let p = this.planList.find((item) => item.id === this.ruleForm.planId);
this.baseInfoDialog.id = p?.dikeId;
this.baseInfoDialog.code = p?.dikeCode;
getDFMaintenancePlan(this.ruleForm.planId).then((res) => {
if (res.data) {
this.ruleForm.name = res.data.name;
@ -541,10 +562,15 @@ export default {
>
</el-option>
</el-select>
<el-button :disabled="true" class="!ml-10" type="success" size="small"
<el-button
:disabled="!ruleForm.planId"
class="!ml-10"
type="success"
size="small"
@click="handleOpenDetails"
>详情</el-button
>
<el-button :disabled="true" class="ml-6" type="success" size="small"
<el-button :disabled="true" class="ml-6" type="info" size="small"
>打开地图</el-button
>
</el-form-item>
@ -721,6 +747,12 @@ export default {
>
</div>
</el-dialog>
<DikeBaseInfoDialog
v-model="baseInfoDialog.show"
:id="baseInfoDialog.id"
:code="baseInfoDialog.code"
></DikeBaseInfoDialog>
</div>
</template>

21
src/views/dike/runManage/monitoring/dike/index.vue

@ -9,8 +9,7 @@ export default {
data() {
return {
searchForm: {
adcdStart: "",
adcdEnd: "",
adcd: "",
dikeGrad: -1,
dikeName: "",
},
@ -84,8 +83,7 @@ export default {
timeView: {
timeField: "create_time",
},
adcdStart: this.searchForm.adcdStart,
adcdEnd: this.searchForm.adcdEnd,
adcd: this.searchForm.adcd,
dikeGrad:
this.searchForm.dikeGrad == -1 ? "" : this.searchForm.dikeGrad,
dikeName: this.searchForm.dikeName,
@ -157,17 +155,7 @@ export default {
<el-form-item label="起/终点所在地:" prop="adcd">
<el-cascader
:options="areasOptions"
v-model="searchForm.adcdStart"
:props="areasOptionProps"
placeholder="请选择"
clearable
size="small"
>
</el-cascader>
-
<el-cascader
:options="areasOptions"
v-model="searchForm.adcdEnd"
v-model="searchForm.adcd"
:props="areasOptionProps"
placeholder="请选择"
clearable
@ -219,8 +207,7 @@ export default {
</el-table-column>
<el-table-column align="center" label="起/终点所在地">
<template slot-scope="scope">
{{ scope.row.adcdStart | filterAdcd }} -
{{ scope.row.adcdEnd | filterAdcd }}
{{ scope.row.adcd | filterAdcd }}
</template>
</el-table-column>
<el-table-column

8
src/views/dike/runManage/pestAnimalControl/planManagement/index.vue

@ -9,11 +9,13 @@ import {
listUser,
} from "@/api/management";
import { listJbxx } from "@/api/yg/dike/jbxx";
import dayjs from "dayjs";
export default {
name: "InspectionItems",
data() {
return {
dayjs,
paramsData: {
name: "",
type: null,
@ -420,7 +422,11 @@ export default {
align="center"
sortable
label="计划时间"
/>
>
<template #default="{ row }">{{
dayjs(row.planTime).format("YYYY-MM")
}}</template>
</el-table-column>
<el-table-column
prop="createTime"
align="center"

5
src/views/sluice/engineeringCondition/sluiceBaseInfo/options/basePage.vue

@ -139,6 +139,9 @@ import { regionData, codeToText, TextToCode } from "element-china-area-data";
export default {
name: "Jbxx",
props: {
baseDataId: String,
},
data() {
return {
areasOptionProps: {
@ -339,7 +342,7 @@ export default {
/** 查询水闸安全管理基本信息列表 */
getList() {
this.loading = true;
const id = this.$route.query.baseDataId;
const id = this.$route.query.baseDataId || this.baseDataId;
getJbxx(id).then((response) => {
console.log(1111, response);
this.form = response.data;

65
src/views/sluice/runManage/components/SluiceBaseInfo/index.vue

@ -0,0 +1,65 @@
<template>
<el-tabs v-model="activeName">
<el-tab-pane label="水闸基本信息" name="basePage" :lazy="true">
<basePage :baseDataId="this.id" />
</el-tab-pane>
<el-tab-pane label="设计参数" name="designParameter2" :lazy="true">
<designParameter2 :wagaCode="this.code" />
</el-tab-pane>
<el-tab-pane label="泄流能力" name="dischargeCapacity2" :lazy="true">
<dischargeCapacity2 :wagaCode="this.code" />
</el-tab-pane>
<el-tab-pane label="管理体制" name="managementSystem" :lazy="true">
<managementSystem :wagaCode="this.code" />
</el-tab-pane>
<el-tab-pane
label="工程特性"
name="engineeringCharacteristics"
:lazy="true"
>
<engineeringCharacteristics :wagaCode="this.code" />
</el-tab-pane>
<el-tab-pane label="工程结构" name="engineeringStructure" :lazy="true">
<engineeringStructure :wagaCode="this.code" />
</el-tab-pane>
<el-tab-pane label="出险记录" name="accidentRecord" :lazy="true">
<accidentRecord :wagaCode="this.code" />
</el-tab-pane>
</el-tabs>
</template>
<script>
import basePage from "../../../../sluice/engineeringCondition/sluiceBaseInfo/options/basePage.vue";
import designParameter2 from "../../../../sluice/engineeringCondition/sluiceBaseInfo/options/designParameter2.vue";
import dischargeCapacity2 from "../../../../sluice/engineeringCondition/sluiceBaseInfo/options/dischargeCapacity2.vue";
import managementSystem from "../../../../sluice/engineeringCondition/sluiceBaseInfo/options/managementSystem.vue";
import engineeringCharacteristics from "../../../../sluice/engineeringCondition/sluiceBaseInfo/options/engineeringCharacteristics.vue";
import engineeringStructure from "../../../../sluice/engineeringCondition/sluiceBaseInfo/options/engineeringStructure.vue";
import accidentRecord from "../../../../sluice/engineeringCondition/sluiceBaseInfo/options/accidentRecord.vue";
export default {
components: {
basePage,
designParameter2,
dischargeCapacity2,
managementSystem,
engineeringCharacteristics,
engineeringStructure,
accidentRecord,
},
props: {
id: String,
code: String,
},
data() {
return {
activeName: "basePage",
};
},
created() {},
methods: {
reset() {
this.activeName = "basePage";
},
},
};
</script>
<style scoped lang="less"></style>

44
src/views/sluice/runManage/components/SluiceBaseInfoDialog/index.vue

@ -0,0 +1,44 @@
<template>
<div class="sluice-detail-page">
<el-dialog :visible.sync="showDialog" title="水闸详情" width="960px">
<SluiceBaseInfo ref="domRef" :id="this.id" :code="this.code" />
</el-dialog>
</div>
</template>
<script>
import SluiceBaseInfo from "@/views/sluice/runManage/components/SluiceBaseInfo/index.vue";
export default {
components: { SluiceBaseInfo },
props: {
value: Boolean,
id: String,
code: String,
},
data() {
return {};
},
computed: {
showDialog: {
get() {
return this.value;
},
set(val) {
this.$emit("input", val);
},
},
},
watch: {
value(newVal, old) {
if (newVal) {
} else {
this.$refs.domRef?.reset();
}
},
},
methods: {},
created() {},
mounted() {},
};
</script>
<style scoped lang="less"></style>

189
src/views/sluice/runManage/dispatch/record/components/edit.vue

@ -1,80 +1,83 @@
<script>
import {
getRunSzOperaRecord
} from "@/api/scheduling/operaRecord";
import { getRunSzOperaRecord } from "@/api/scheduling/operaRecord";
//
const validateNotChinese = (rule, value, callback) => {
if (value && !/^[^\u4e00-\u9fa5]+$/.test(value)) {
callback(new Error("不能输入中文"));
} else {
callback();
}
};
export default {
name: "Edit",
props: {
model: {
type: Object,
default: null
}
default: null,
},
},
data() {
return {
ruleForm: {
gate: '',
gateNum: '',
controlLevel: '',
commandNum: '',
leftDry: '',
rightDry: '',
upstreamLevel: '',
downstreamLevel: '',
opening: '',
operatorTime: ''
gate: "",
gateNum: "",
controlLevel: "",
commandNum: "",
leftDry: "",
rightDry: "",
upstreamLevel: "",
downstreamLevel: "",
opening: "",
operatorTime: "",
},
rules: {
gate: [
{required: true, message: "请输入闸门名称", trigger: "blur"},
],
gate: [{ required: true, message: "请输入闸门名称", trigger: "blur" }],
controlLevel: [
{required: true, message: "请输入控制水位", trigger: "blur"},
],
leftDry: [
{required: true, message: "请输入左干", trigger: "blur"},
{ required: true, message: "请输入控制水位", trigger: "blur" },
],
rightDry: [
{required: true, message: "请输入右干", trigger: "blur"},
],
}
}
leftDry: [{ required: true, message: "请输入左干", trigger: "blur" }],
rightDry: [{ required: true, message: "请输入右干", trigger: "blur" }],
gateNum: [{ validator: validateNotChinese, trigger: "blur" }],
commandNum: [{ validator: validateNotChinese, trigger: "blur" }],
},
};
},
async mounted() {
this.ruleForm.operatorTime = Date.now()
this.ruleForm.operatorTime = Date.now();
//
if (this.model) {
const data = await getRunSzOperaRecord(this.model.id)
this.ruleForm.gate = data.data.gate
this.ruleForm.gateNum = data.data.gateNum
this.ruleForm.controlLevel = data.data.controlLevel
this.ruleForm.commandNum = data.data.commandNum
this.ruleForm.leftDry = data.data.leftDry
this.ruleForm.rightDry = data.data.rightDry
this.ruleForm.upstreamLevel = data.data.upstreamLevel
this.ruleForm.downstreamLevel = data.data.downstreamLevel
this.ruleForm.opening = data.data.opening
const data = await getRunSzOperaRecord(this.model.id);
this.ruleForm.gate = data.data.gate;
this.ruleForm.gateNum = data.data.gateNum;
this.ruleForm.controlLevel = data.data.controlLevel;
this.ruleForm.commandNum = data.data.commandNum;
this.ruleForm.leftDry = data.data.leftDry;
this.ruleForm.rightDry = data.data.rightDry;
this.ruleForm.upstreamLevel = data.data.upstreamLevel;
this.ruleForm.downstreamLevel = data.data.downstreamLevel;
this.ruleForm.opening = data.data.opening;
}
},
methods: {
handleInputVal(val, e) {
this.ruleForm[val] = e.replace(/[\W]/g, '');
this.ruleForm[val] = e.replace(/[\W]/g, "");
},
handleInput(val, e) {
this.ruleForm[val] = e.replace(/\D/g, '');
this.ruleForm[val] = e.replace(/\D/g, "");
},
submitForm(callback) {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
callback({
...this.ruleForm
})
...this.ruleForm,
});
}
})
});
},
}
}
},
};
</script>
<template>
@ -82,11 +85,11 @@ export default {
<div style="display: flex; margin-bottom: 16px">
<div
style="
width: 5px;
height: 16px;
background-color: #31a08e;
margin-right: 8px;
"
width: 5px;
height: 16px;
background-color: #31a08e;
margin-right: 8px;
"
></div>
<span style="font-weight: 600">基础信息</span>
</div>
@ -99,56 +102,112 @@ export default {
>
<el-col :span="12">
<el-form-item label-width="120px" label="闸门" prop="gate">
<el-input style="width: 202px" v-model="ruleForm.gate" maxlength="50"></el-input>
<el-input
style="width: 202px"
v-model="ruleForm.gate"
maxlength="50"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="闸号" prop="gateNum">
<el-input style="width: 202px" v-model="ruleForm.gateNum" maxlength="50"></el-input>
<el-input
style="width: 202px"
v-model="ruleForm.gateNum"
maxlength="50"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="控制水位" prop="controlLevel">
<el-input style="width: 202px" v-model="ruleForm.controlLevel" maxlength="50" @input="(e) => handleInput('controlLevel', e)"></el-input>
<el-input
style="width: 202px"
v-model="ruleForm.controlLevel"
maxlength="50"
@input="(e) => handleInput('controlLevel', e)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="指令号" prop="commandNum">
<el-input style="width: 202px" v-model="ruleForm.commandNum" maxlength="50"></el-input>
<el-input
style="width: 202px"
v-model="ruleForm.commandNum"
maxlength="50"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="左干" prop="leftDry">
<el-input style="width: 202px" v-model="ruleForm.leftDry" maxlength="50" @input="(e) => handleInput('leftDry', e)"></el-input>
<el-input
style="width: 202px"
v-model="ruleForm.leftDry"
maxlength="50"
@input="(e) => handleInput('leftDry', e)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="右干" prop="rightDry">
<el-input style="width: 202px" v-model="ruleForm.rightDry" maxlength="50" @input="(e) => handleInput('rightDry', e)"></el-input>
<el-input
style="width: 202px"
v-model="ruleForm.rightDry"
maxlength="50"
@input="(e) => handleInput('rightDry', e)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="上游水位" prop="upstream" @input="(e) => handleInput('upstreamLevel', e)">
<el-input style="width: 202px" v-model="ruleForm.upstreamLevel" maxlength="50"></el-input>
<el-form-item
label-width="120px"
label="上游水位"
prop="upstream"
@input="(e) => handleInput('upstreamLevel', e)"
>
<el-input
style="width: 202px"
v-model="ruleForm.upstreamLevel"
maxlength="50"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="下游水位" prop="downstream" @input="(e) => handleInput('downstreamLevel', e)">
<el-input style="width: 202px" v-model="ruleForm.downstreamLevel" maxlength="50"></el-input>
<el-form-item
label-width="120px"
label="下游水位"
prop="downstream"
@input="(e) => handleInput('downstreamLevel', e)"
>
<el-input
style="width: 202px"
v-model="ruleForm.downstreamLevel"
maxlength="50"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="开度" prop="opening" @input="(e) => handleInput('opening', e)">
<el-input style="width: 202px" v-model="ruleForm.opening" maxlength="50"></el-input>
<el-form-item
label-width="120px"
label="开度"
prop="opening"
@input="(e) => handleInput('opening', e)"
>
<el-input
style="width: 202px"
v-model="ruleForm.opening"
maxlength="50"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="时间" prop="time">
<el-date-picker
style="width: 202px"
v-model="ruleForm.operatorTime"
type="datetime"
value-format="timestamp"
placeholder="选择日期时间">
placeholder="选择日期时间"
>
</el-date-picker>
</el-form-item>
</el-col>
@ -156,6 +215,4 @@ export default {
</div>
</template>
<style scoped lang="scss">
</style>
<style scoped lang="scss"></style>

189
src/views/sluice/runManage/dispatch/record/index.vue

@ -1,29 +1,29 @@
<!-- 操作记录-水闸 -->
<script>
import Edit from './components/edit.vue'
import Edit from "./components/edit.vue";
import {
postRunSzOperaRecordList,
postRunSzOperaRecord,
putRunSzOperaRecord,
delRunSzOperaRecord
delRunSzOperaRecord,
} from "@/api/scheduling/operaRecord";
export default {
name: "record",
components: {
Edit
Edit,
},
data() {
return {
searchForm: {
gate: '',
commandNum: '',
gateNum: ''
gate: "",
commandNum: "",
gateNum: "",
},
dialog: {
title: '新增操作记录',
dom: '',
visible: false
title: "新增操作记录",
dom: "",
visible: false,
},
mdl: null,
tableData: [],
@ -51,32 +51,32 @@ export default {
//
resetSearch() {
this.pageData.pageNum = 1;
if (!this.$refs['searchForm']) return
this.$refs['searchForm'].resetFields()
if (!this.$refs["searchForm"]) return;
this.$refs["searchForm"].resetFields();
this.getTableData();
},
//
handleAdd() {
this.dialog.title = '新增操作记录'
this.dialog.dom = 'Edit'
this.dialog.visible = true
this.dialog.title = "新增操作记录";
this.dialog.dom = "Edit";
this.dialog.visible = true;
},
handleCheck(row) {
this.dialog.title = '查看操作记录'
this.dialog.dom = 'Edit'
this.mdl = {...row}
this.dialog.visible = true
this.dialog.title = "查看操作记录";
this.dialog.dom = "Edit";
this.mdl = { ...row };
this.dialog.visible = true;
},
handleEdit(row) {
this.dialog.title = '编辑操作记录'
this.dialog.dom = 'Edit'
this.mdl = {...row, eventType: 'edit'}
this.dialog.visible = true
this.dialog.title = "编辑操作记录";
this.dialog.dom = "Edit";
this.mdl = { ...row, eventType: "edit" };
this.dialog.visible = true;
},
async handleDelete(row) {
await delRunSzOperaRecord(row.id)
this.$message.success('删除成功')
this.getTableData()
await delRunSzOperaRecord(row.id);
this.$message.success("删除成功");
this.getTableData();
},
submitForm() {
this.$refs.component.submitForm(async (from) => {
@ -84,25 +84,25 @@ export default {
await putRunSzOperaRecord({
id: this.mdl.id,
...from,
wagaCode: this.$route.query.wagaCode
})
this.closeDialog()
this.getTableData()
this.$message.success('修改成功')
wagaCode: this.$route.query.wagaCode,
});
this.closeDialog();
this.getTableData();
this.$message.success("修改成功");
} else {
await postRunSzOperaRecord({
...from,
wagaCode: this.$route.query.wagaCode
})
this.$message.success('新增成功')
this.closeDialog()
this.getTableData()
wagaCode: this.$route.query.wagaCode,
});
this.$message.success("新增成功");
this.closeDialog();
this.getTableData();
}
})
});
},
closeDialog() {
this.dialog.visible = false
this.mdl = null
this.dialog.visible = false;
this.mdl = null;
},
getTableData() {
postRunSzOperaRecordList({
@ -110,7 +110,7 @@ export default {
gate: this.searchForm.gate,
gateNum: this.searchForm.gateNum,
commandNum: this.searchForm.commandNum,
wagaCode: this.$route.query.wagaCode
wagaCode: this.$route.query.wagaCode,
},
cv: {
name: "name",
@ -137,18 +137,37 @@ export default {
<div class="slider-right">
<div class="top-title">水闸操作记录</div>
<div class="table-box">
<el-form inline :model="searchForm" ref="searchForm" class="demo-ruleForm">
<el-form
inline
:model="searchForm"
ref="searchForm"
class="demo-ruleForm"
>
<el-form-item label="闸门:" prop="gate">
<el-input v-model="searchForm.gate" class="search-input" placeholder="请输入闸门"></el-input>
<el-input
v-model="searchForm.gate"
class="search-input"
placeholder="请输入闸门"
></el-input>
</el-form-item>
<el-form-item label="指令号:" prop="commandNum">
<el-input v-model="searchForm.commandNum" class="search-input" placeholder="请输入指令号"></el-input>
<el-input
v-model="searchForm.commandNum"
class="search-input"
placeholder="请输入指令号"
></el-input>
</el-form-item>
<el-form-item label="闸号:" prop="gateNum">
<el-input v-model="searchForm.gateNum" class="search-input" placeholder="请输入闸号"></el-input>
<el-input
v-model="searchForm.gateNum"
class="search-input"
placeholder="请输入闸号"
></el-input>
</el-form-item>
<el-form-item>
<el-button class="search-btn" type="success" @click="search()">查询</el-button>
<el-button class="search-btn" type="success" @click="search()"
>查询</el-button
>
<el-button @click="resetSearch()">重置</el-button>
</el-form-item>
</el-form>
@ -158,29 +177,73 @@ export default {
type="success"
v-hasPermi="['sz:run:du:record:add']"
@click="handleAdd()"
>新增
</el-button
>
>新增
</el-button>
<el-table height="625" :data="tableData" border style="width: 100%">
<el-table-column type="index" align="center" label="序号">
</el-table-column>
<el-table-column prop="gate" align="center" label="闸门" min-width="150">
<el-table-column
prop="gate"
align="center"
label="闸门"
min-width="150"
>
</el-table-column>
<el-table-column prop="commandNum" align="center" label="指令号" min-width="120">
<el-table-column
prop="commandNum"
align="center"
label="指令号"
min-width="120"
>
</el-table-column>
<el-table-column prop="controlLevel" align="center" label="控制水位(m)" min-width="120">
<el-table-column
prop="controlLevel"
align="center"
label="控制水位(m)"
min-width="120"
>
</el-table-column>
<el-table-column prop="leftDry" align="center" label="左干(m³/s)" min-width="120">
<el-table-column
prop="leftDry"
align="center"
label="左干(m³/s)"
min-width="120"
>
</el-table-column>
<el-table-column prop="rightDry" align="center" label="右干(m³/s)" min-width="120">
<el-table-column
prop="rightDry"
align="center"
label="右干(m³/s)"
min-width="120"
>
</el-table-column>
<el-table-column prop="upstreamLevel" align="center" label="上游水位(m)" min-width="120">
<el-table-column
prop="upstreamLevel"
align="center"
label="上游水位(m)"
min-width="120"
>
</el-table-column>
<el-table-column prop="downstreamLevel" align="center" label="下游水位(m)" min-width="120">
<el-table-column
prop="downstreamLevel"
align="center"
label="下游水位(m)"
min-width="120"
>
</el-table-column>
<el-table-column prop="gateNum" align="center" label="闸号" min-width="150">
<el-table-column
prop="gateNum"
align="center"
label="闸号"
min-width="150"
>
</el-table-column>
<el-table-column prop="name" align="center" label="操作人" min-width="120">
<el-table-column
prop="name"
align="center"
label="操作人"
min-width="120"
>
</el-table-column>
<el-table-column
min-width="200"
@ -253,15 +316,19 @@ export default {
:title="dialog.title"
@close="closeDialog"
:visible.sync="dialog.visible"
width="50%"
width="680px"
>
<component :is="dialog.dom" v-if="dialog.visible" ref="component" :model="mdl"></component>
<component
:is="dialog.dom"
v-if="dialog.visible"
ref="component"
:model="mdl"
></component>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="closeDialog"> </el-button>
<el-button size="mini" type="primary" @click="submitForm('ruleForm')"
>保存
</el-button
>
>保存
</el-button>
</div>
</el-dialog>
</div>

43
src/views/sluice/runManage/maintenance/maintenancePlan/index.vue

@ -10,18 +10,25 @@ import {
import { listJbxx } from "@/api/yg/jbxx";
import SluiceBaseInfoDialog from "@/views/sluice/runManage/components/SluiceBaseInfoDialog/index.vue";
export default {
name: "InspectionItems",
components: {
SluiceBaseInfoDialog,
},
data() {
return {
//
baseInfoDialog: {
show: false,
id: "",
code: "",
},
searchPlan: "",
dialogVisible: false,
prohibitEditing: false,
isLoadingSluice: false,
wagaDetailsDialog: {
show: false,
id: "",
},
sluiceList: [], //
tableData: [], //
pageData: {
@ -105,7 +112,6 @@ export default {
});
},
addPlan() {
this.ruleForm.wagaCode = this.$route.query.wagaCode;
this.dialogVisible = true;
},
//
@ -213,12 +219,18 @@ export default {
});
},
handleChangeSluice(value) {
// this.ruleForm.name = this.ruleForm.wagaCode;
let res = this.sluiceList.find((v) => v.wagaCode === value);
this.wagaDetailsDialog.id = res?.id || "";
this.baseInfoDialog.id = res?.id || "";
this.baseInfoDialog.code = this.ruleForm.wagaCode;
},
//
handleOpenDetails() {},
handleOpenDetails() {
if (this.baseInfoDialog.id) {
this.baseInfoDialog.show = true;
} else {
this.$message.warning("缺少id");
}
},
//
handleOpenMap(wagaCode) {
if (wagaCode) {
@ -395,12 +407,7 @@ export default {
@click="handleOpenDetails"
>详情</el-button
>
<el-button
:disabled="!ruleForm.wagaCode"
class="ml-6"
type="success"
size="small"
@click="handleOpenMap"
<el-button :disabled="true" class="ml-6" type="info" size="small"
>打开地图</el-button
>
</el-form-item>
@ -500,6 +507,12 @@ export default {
>
</div>
</el-dialog>
<SluiceBaseInfoDialog
v-model="baseInfoDialog.show"
:id="baseInfoDialog.id"
:code="baseInfoDialog.code"
></SluiceBaseInfoDialog>
</div>
</template>
@ -514,7 +527,7 @@ export default {
}
.table-box {
height: calc(100% - 50px - 24px);
height: calc(100% - 24px);
margin-top: 24px;
padding: 16px;
background-color: white;

47
src/views/sluice/runManage/maintenance/maintenanceRecords/index.vue

@ -12,10 +12,20 @@ import {
getSluiceYhPlanDetails,
updateYhRecordStatus,
} from "@/api/sluice";
import SluiceBaseInfoDialog from "@/views/sluice/runManage/components/SluiceBaseInfoDialog/index.vue";
export default {
name: "maintenanceRecords",
components: { SluiceBaseInfoDialog },
data() {
return {
//
baseInfoDialog: {
show: false,
id: "",
code: "",
},
createTimeArr: [],
updateTimeArr: [],
repairCostArr: ["", ""],
@ -79,6 +89,14 @@ export default {
},
},
methods: {
handleCurrentPageChange(page) {
this.pageData.pageNum = page;
this.getTableData();
},
handlePageSizeChange(pageSize) {
this.pageData.pageSize = pageSize;
this.getTableData();
},
//
deleteTableItem(row) {
deleteSluiceYhRecord(row.id).then((res) => {
@ -86,6 +104,14 @@ export default {
this.$message.success("删除成功");
});
},
//
handleOpenDetails() {
if (this.baseInfoDialog.id) {
this.baseInfoDialog.show = true;
} else {
this.$message.warning("缺少id");
}
},
//
viewOrEditPlanDetails(row, edit = false) {
if (!edit) {
@ -227,6 +253,9 @@ export default {
},
//
changeSelectPlan() {
let p = this.planList.find((item) => item.id === this.ruleForm.planId);
this.baseInfoDialog.id = p?.wagaId;
this.baseInfoDialog.code = p?.wagaCode;
getSluiceYhPlanDetails(this.ruleForm.planId).then((res) => {
if (res.data) {
this.ruleForm.name = res.data.name;
@ -487,7 +516,8 @@ export default {
:page-sizes="pageData.pageSizes"
layout="total, prev, pager, next, sizes, jumper"
:total="pageData.total"
@size-change="getTableData()"
@current-change="(e) => handleCurrentPageChange(e)"
@size-change="(e) => handlePageSizeChange(e)"
>
</el-pagination>
</div>
@ -529,10 +559,15 @@ export default {
>
</el-option>
</el-select>
<el-button :disabled="true" class="!ml-10" type="success" size="small"
<el-button
:disabled="!ruleForm.planId"
class="!ml-10"
type="success"
size="small"
@click="handleOpenDetails"
>详情</el-button
>
<el-button :disabled="true" class="ml-6" type="success" size="small"
<el-button :disabled="true" class="ml-6" type="info" size="small"
>打开地图</el-button
>
</el-form-item>
@ -709,6 +744,12 @@ export default {
>
</div>
</el-dialog>
<SluiceBaseInfoDialog
v-model="baseInfoDialog.show"
:id="baseInfoDialog.id"
:code="baseInfoDialog.code"
></SluiceBaseInfoDialog>
</div>
</template>

Loading…
Cancel
Save