You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
397 lines
14 KiB
397 lines
14 KiB
<template>
|
|
<div>
|
|
<el-select
|
|
v-model="histroy"
|
|
placeholder="请选择版本"
|
|
style="margin-bottom: 10px; width: 250px"
|
|
>
|
|
<el-option
|
|
v-for="(sub, index) in sumData"
|
|
:key="sub.id"
|
|
:label="
|
|
sub.recordLoseEfficacyTime
|
|
? '版本' + index + ' - ' + sub.recordLoseEfficacyTime
|
|
: '当前版本'
|
|
"
|
|
:value="sub.id"
|
|
@click.native="chooseEdition(sub)"
|
|
></el-option>
|
|
</el-select>
|
|
<el-descriptions
|
|
class="margin-top"
|
|
:column="2"
|
|
border
|
|
:labelStyle="{
|
|
'text-align': 'left',
|
|
width: '120px',
|
|
height: '50px',
|
|
}"
|
|
:contentStyle="{}"
|
|
ref="descriptions"
|
|
>
|
|
<el-descriptions-item :contentClassName="isDiff('embankmentName')">
|
|
<template slot="label"> 堤防名称 </template>
|
|
{{ this.form.embankmentName }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('adcd')">
|
|
<template slot="label"> 行政区划 </template>
|
|
{{ formatAdcd(this.form) }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('adcdStart')">
|
|
<template slot="label"> 起点行政区划 </template>
|
|
{{ this.form.adcdStart }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('embankmentCode')">
|
|
<template slot="label"> 堤防编码 </template>
|
|
{{ this.form.embankmentCode }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('plotEmbankments')">
|
|
<template slot="label"> 标绘堤防 </template>
|
|
{{ this.form.plotEmbankments }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('adcdEnd')">
|
|
<template slot="label"> 终点行政区划 </template>
|
|
{{ this.form.adcdEnd }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('startingStationNumber')">
|
|
<template slot="label"> 起点桩号 </template>
|
|
{{ this.form.startingStationNumber }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('endStationNumber')">
|
|
<template slot="label"> 终点桩号 </template>
|
|
{{ this.form.endStationNumber }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('embankmentType')">
|
|
<template slot="label"> 堤防类型 </template>
|
|
{{ endStationNumberFormat(this.form) }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('riverLocation')">
|
|
<template slot="label"> 所在河流 </template>
|
|
{{ this.form.riverLocation }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('riversideClassification')"
|
|
>
|
|
<template slot="label"> 河流岸别 </template>
|
|
{{ riversideClassificationFormat(this.form) }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('lakeName')">
|
|
<template slot="label"> 所在湖泊名称 </template>
|
|
{{ this.form.lakeName }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('coastlineName')">
|
|
<template slot="label"> 所在海岸名称 </template>
|
|
{{ this.form.coastlineName }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('isFloodStorageDetention')"
|
|
>
|
|
<template slot="label"> 是否为蓄滞洪区堤防 </template>
|
|
{{ isFloodStorageDetentionFormat(this.form) }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('storageDetentionAreaName')"
|
|
>
|
|
<template slot="label"> 所在蓄滞洪区名称 </template>
|
|
{{ this.form.storageDetentionAreaName }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('areaStartingStationNumber')"
|
|
>
|
|
<template slot="label"> 堤防蓄滞洪区段起点桩号 </template>
|
|
{{ this.form.areaStartingStationNumber }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('areaEndStationNumber')">
|
|
<template slot="label"> 堤防蓄滞洪区段终点桩号 </template>
|
|
{{ this.form.areaEndStationNumber }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('totalLengthFloodStorage')"
|
|
>
|
|
<template slot="label"> 堤防蓄滞洪区段总长度(m) </template>
|
|
{{ this.form.totalLengthFloodStorage }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('floodStorageDetentionAreasExplanation')"
|
|
>
|
|
<template slot="label"> 蓄滞洪区特殊情况说明 </template>
|
|
{{ this.form.floodStorageDetentionAreasExplanation }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('crossBorderSituation')">
|
|
<template slot="label"> 堤防跨界情况 </template>
|
|
{{ crossBorderSituationFormat(this.form) }}
|
|
</el-descriptions-item>
|
|
|
|
<el-descriptions-item :contentClassName="isDiff('embankmentTyper')">
|
|
<template slot="label"> 堤防型式 </template>
|
|
{{ embankmentTyperFormat(this.form.embankmentTyper) }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('completionTime')">
|
|
<template slot="label"> 建成时间 </template>
|
|
{{ this.form.completionTime }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('recentComplianceReinforcementStatus')"
|
|
>
|
|
<template slot="label"> 最近达标加固完工状态 </template>
|
|
{{ this.form.recentComplianceReinforcementStatus }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('recentComplianceReinforcementTime')"
|
|
>
|
|
<template slot="label"> 最近达标加固完成时间 </template>
|
|
{{ this.form.recentComplianceReinforcementTime }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('engineeringTasks')">
|
|
<template slot="label"> 工程任务 </template>
|
|
{{ engineeringTasksFormat(this.form) }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('embankmentLevel')">
|
|
<template slot="label"> 堤防级别 </template>
|
|
{{ embankmentLevelFormat(this.form) }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('designFloodControl')">
|
|
<template slot="label"> 设计防洪 </template>
|
|
{{ this.form.designFloodControl }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('embankmentLength')">
|
|
<template slot="label"> 堤防长度(m) </template>
|
|
{{ this.form.embankmentLength }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('planningFloodControl')">
|
|
<template slot="label"> 规划防洪 </template>
|
|
{{ this.form.planningFloodControl }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('embankmentLengthPlanningStandards')"
|
|
>
|
|
<template slot="label"> 达到规划标准的堤防长度(m) </template>
|
|
{{ this.form.embankmentLengthPlanningStandards }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('populationProtection')">
|
|
<template slot="label"> 保护人口 </template>
|
|
{{ this.form.populationProtection }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('protectingFarmland')">
|
|
<template slot="label"> 保护农田 </template>
|
|
{{ this.form.protectingFarmland }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item
|
|
:contentClassName="isDiff('criticalInfrastructure')"
|
|
>
|
|
<template slot="label"> 重要基础设施 </template>
|
|
{{ this.form.criticalInfrastructure }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item :contentClassName="isDiff('relation')">
|
|
<template slot="label"> 关联字段1 </template>
|
|
{{ this.form.relation }}
|
|
</el-descriptions-item>
|
|
</el-descriptions>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import { getDikeCompare } from "@/api/yg/dikeCompare";
|
|
import { regionData, codeToText, TextToCode } from "element-china-area-data";
|
|
|
|
export default {
|
|
props: ["baseData"],
|
|
inject: ["getDiff", "granParentEle"],
|
|
data() {
|
|
return {
|
|
histroy: "当前版本",
|
|
sumData: [],
|
|
form: {},
|
|
// 堤防类型字典
|
|
embankmentTypeOptions: [],
|
|
// 河流岸别字典
|
|
riversideClassificationOptions: [],
|
|
// 是否为蓄滞洪区堤防字典
|
|
isFloodStorageDetentionOptions: [],
|
|
// 堤防跨界情况字典
|
|
crossBorderSituationOptions: [],
|
|
// 堤防型式字典
|
|
embankmentTyperOptions: [],
|
|
// 最近达标加固完工状态字典
|
|
recentComplianceReinforcementStatusOptions: [],
|
|
// 工程任务字典
|
|
engineeringTasksOptions: [],
|
|
// 堤防级别字典
|
|
embankmentLevelOptions: [],
|
|
diffPart: [],
|
|
};
|
|
},
|
|
created() {
|
|
if (this.baseData.id) {
|
|
console.log("this.baseData in basePage", this.baseData);
|
|
this.form = this.baseData;
|
|
this.histroy = this.form.id;
|
|
this.diffPart = this.getDiff("basePage");
|
|
console.log("this.diffPart in basePage", this.diffPart);
|
|
}
|
|
|
|
getDikeCompare(this.$route.query.embankmentCode).then((res) => {
|
|
this.sumData = res.data.jbxx;
|
|
console.log("this.sumData in basePage", this.sumData);
|
|
// res.data.jbxx.map((item) => {
|
|
// if (!item.recordLoseEfficacyTime) this.baseData = item;
|
|
// });
|
|
// res.data.gcgl.map((item) => {
|
|
// if (!item.recordLoseEfficacyTime) this.projectManagementData = item;
|
|
// });
|
|
});
|
|
|
|
this.getDicts("embankment_type").then((response) => {
|
|
this.embankmentTypeOptions = response.data;
|
|
});
|
|
this.getDicts("riverside_classification").then((response) => {
|
|
this.riversideClassificationOptions = response.data;
|
|
});
|
|
this.getDicts("whether").then((response) => {
|
|
this.isFloodStorageDetentionOptions = response.data;
|
|
});
|
|
this.getDicts("cross_border_situation").then((response) => {
|
|
this.crossBorderSituationOptions = response.data;
|
|
});
|
|
this.getDicts("embankment_form").then((response) => {
|
|
this.embankmentTyperOptions = response.data;
|
|
});
|
|
this.getDicts("reach_the_standard").then((response) => {
|
|
this.recentComplianceReinforcementStatusOptions = response.data;
|
|
});
|
|
this.getDicts("project_task").then((response) => {
|
|
this.engineeringTasksOptions = response.data;
|
|
});
|
|
this.getDicts("embankment_level").then((response) => {
|
|
this.embankmentLevelOptions = response.data;
|
|
});
|
|
},
|
|
mounted() {
|
|
// console.log(55555555555, this.$refs.descriptions);
|
|
},
|
|
watch: {
|
|
baseData: function (n, o) {
|
|
this.baseData = n;
|
|
this.form = this.baseData;
|
|
this.histroy = this.form.id;
|
|
// this.diffPart = this.getDiff();
|
|
// setTimeout(() => {
|
|
// this.diffPart = this.getDiff();
|
|
// }, 10);
|
|
|
|
// 异步,待数据更新完时执行
|
|
this.$nextTick(() => {
|
|
// console.log(99999999999, this.granParentEle);
|
|
this.diffPart = this.getDiff("basePage");
|
|
});
|
|
},
|
|
histroy: function (n, o) {
|
|
// this.$nextTick(() => {
|
|
// this.diffPart = this.getDiff();
|
|
// });
|
|
setTimeout(() => {
|
|
// this.diffPart = this.getDiff();
|
|
const childrenEles = Object.keys(this.granParentEle);
|
|
for (let index = 0; index < childrenEles.length; index++) {
|
|
// console.log(33333333, childrenEles[index]);
|
|
this.granParentEle[childrenEles[index]].$refs.basePage.diffPart =
|
|
this.granParentEle[childrenEles[index]].$refs.basePage.getDiff(
|
|
"basePage"
|
|
);
|
|
}
|
|
}, 10);
|
|
},
|
|
},
|
|
methods: {
|
|
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];
|
|
}
|
|
}
|
|
},
|
|
isDiff(name) {
|
|
return this.diffPart.some((item) => item === name) ? "diffEle" : "";
|
|
},
|
|
chooseEdition(data) {
|
|
this.form = data;
|
|
},
|
|
// 堤防类型字典翻译
|
|
endStationNumberFormat(row, column) {
|
|
return this.selectDictLabel(
|
|
this.embankmentTypeOptions,
|
|
row.embankmentType
|
|
);
|
|
},
|
|
// 河流岸别字典翻译
|
|
riversideClassificationFormat(row, column) {
|
|
return this.selectDictLabel(
|
|
this.riversideClassificationOptions,
|
|
row.riversideClassification
|
|
);
|
|
},
|
|
// 是否为蓄滞洪区堤防字典翻译
|
|
isFloodStorageDetentionFormat(row, column) {
|
|
return this.selectDictLabel(
|
|
this.isFloodStorageDetentionOptions,
|
|
row.isFloodStorageDetention
|
|
);
|
|
},
|
|
// 堤防跨界情况字典翻译
|
|
crossBorderSituationFormat(row, column) {
|
|
return this.selectDictLabel(
|
|
this.crossBorderSituationOptions,
|
|
row.crossBorderSituation
|
|
);
|
|
},
|
|
// 堤防型式字典翻译
|
|
embankmentTyperFormat(data) {
|
|
let res = "";
|
|
let arr = data ? JSON.parse(data) : [];
|
|
// console.log("XXXXXXXXXXXXXXXXXXXXXX", data);
|
|
if (arr) {
|
|
arr.forEach((item) => {
|
|
res =
|
|
res + "+" + this.selectDictLabel(this.embankmentTyperOptions, item);
|
|
});
|
|
return res.slice(1);
|
|
}
|
|
},
|
|
// 工程任务字典翻译
|
|
engineeringTasksFormat(row, column) {
|
|
return this.selectDictLabel(
|
|
this.engineeringTasksOptions,
|
|
row.engineeringTasks
|
|
);
|
|
},
|
|
// 堤防级别字典翻译
|
|
embankmentLevelFormat(row, column) {
|
|
return this.selectDictLabel(
|
|
this.embankmentLevelOptions,
|
|
row.embankmentLevel
|
|
);
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style lang="scss" scoped></style>
|
|
<style lang="scss">
|
|
.diffEle {
|
|
color: #f13939;
|
|
// background: skyblue;
|
|
}
|
|
</style>
|
|
|