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.

459 lines
16 KiB

1 year ago
<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="{}"
>
<el-descriptions-item
:contentClassName="isDiff('engineeringManagementUnit')"
>
<template slot="label"> 工程管理单位 </template>
{{ this.form.engineeringManagementUnit }}
</el-descriptions-item>
<el-descriptions-item :contentClassName="isDiff('managementUnitNature')">
<template slot="label"> 工程管理单位性质 </template>
{{ managementUnitNatureFormat(this.form) }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('engineeringManagementOwnership')"
>
<template slot="label"> 工程管理单位权属 </template>
{{ engineeringManagementOwnershipFormat(this.form) }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('engineeringManagementPerson')"
>
<template slot="label"> 工程管理单位责任人 </template>
{{ this.form.engineeringManagementPerson }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('engineeringManagementPosition')"
>
<template slot="label"> 工程管理单位责任人职务 </template>
{{ this.form.engineeringManagementPosition }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('engineeringManagementPhone')"
>
<template slot="label"> 工程管理单位责任人手机号码 </template>
{{ this.form.engineeringManagementPhone }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('waterAdministrativeDepartment')"
>
<template slot="label"> 水行政主管部门 </template>
{{ waterAdministrativeDepartmentFormat(this.form) }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('administrationDepartmentNature')"
>
<template slot="label"> 水行政主管部门性质 </template>
{{ administrationDepartmentNatureFormat(this.form) }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('administrationDepartmentPerson')"
>
<template slot="label"> 水行政主管部门责任人 </template>
{{ this.form.administrationDepartmentPerson }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('administrationDepartmentPosition')"
>
<template slot="label"> 水行政主管部门责任人职务 </template>
{{ this.form.administrationDepartmentPosition }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('administrationDepartmentPhone')"
>
<template slot="label"> 水行政主管部门责任人手机号码 </template>
{{ this.form.administrationDepartmentPhone }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('centralizedManagementDepartment')"
>
<template slot="label"> 行业归口管理部门 </template>
{{ centralizedManagementDepartmentFormat(this.form) }}
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('managementDelimitation')"
>
<template slot="label"> 管理范围划界 </template>
{{ managementDelimitationFormat(this.form) }}
</el-descriptions-item>
<el-descriptions-item :contentClassName="isDiff('delimitationTime')">
<template slot="label"> 管理范围划界完成时间 </template>
{{ this.form.delimitationTime }}
</el-descriptions-item>
<el-descriptions-item :contentClassName="isDiff('')">
<template slot="label"> 管理范围划界证明材料 </template>
<!-- {{ this.form.delimitationEvidence }} -->
<div
v-for="(item, index) in JSON.parse(
this.form.delimitationEvidence
? this.form.delimitationEvidence
: JSON.stringify({})
)"
:key="item + index"
>
<span :class="isDiff('delimitationEvidence')">
<i class="el-icon-document"></i>
<span>{{ item.name }}</span>
</span>
<i
class="el-icon-download"
@click="downloadFile(item, index)"
style="cursor: pointer"
></i>
</div>
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('managementConfirmation')"
>
<template slot="label"> 管理范围确权 </template>
{{ managementConfirmationFormat(this.form) }}
</el-descriptions-item>
<el-descriptions-item :contentClassName="isDiff('confirmationTime')">
<template slot="label"> 管理范围确权完成时间 </template>
{{ this.form.confirmationTime }}
</el-descriptions-item>
<el-descriptions-item :contentClassName="isDiff('')">
<template slot="label"> 管理范围确权证明材料 </template>
<!-- {{ this.form.confirmationEvidence }} -->
<div
v-for="(item, index) in JSON.parse(
this.form.confirmationEvidence
? this.form.confirmationEvidence
: JSON.stringify({})
)"
:key="item + index"
>
<span :class="isDiff('confirmationEvidence')">
<i class="el-icon-document"></i>
<span>{{ item.name }}</span>
</span>
<i
class="el-icon-download"
@click="downloadFile(item, index)"
style="cursor: pointer"
></i>
</div>
</el-descriptions-item>
<el-descriptions-item
:contentClassName="isDiff('protectionDelimitation')"
>
<template slot="label"> 保护范围划界 </template>
{{ protectionDelimitationFormat(this.form) }}
</el-descriptions-item>
<el-descriptions-item :contentClassName="isDiff('protectionTime')">
<template slot="label"> 保护范围划界完成时间 </template>
{{ this.form.protectionTime }}
</el-descriptions-item>
<el-descriptions-item :contentClassName="isDiff('')">
<template slot="label"> 保护范围划界证明材料 </template>
<!-- {{ this.form.protectionEvidence }} -->
<div
v-for="(item, index) in JSON.parse(
this.form.protectionEvidence
? this.form.protectionEvidence
: JSON.stringify({})
)"
:key="item + index"
>
<span :class="isDiff('protectionEvidence')">
<i class="el-icon-document"></i>
<span>{{ item.name }}</span>
</span>
<i
class="el-icon-download"
@click="downloadFile(item, index)"
style="cursor: pointer"
></i>
</div>
</el-descriptions-item>
<el-descriptions-item :contentClassName="isDiff('')">
<template slot="label"> 工程照片 </template>
1 year ago
<!-- {{ this.form.engineeringPanoramicPhotos }} -->
<div
v-for="(item, index) in JSON.parse(
this.form.engineeringPanoramicPhotos
? this.form.engineeringPanoramicPhotos
: JSON.stringify({})
)"
:key="item + index"
>
<span :class="isDiff('engineeringPanoramicPhotos')">
<i class="el-icon-document"></i>
<span>{{ item.name }}</span>
</span>
<i
class="el-icon-download"
@click="downloadFile(item, index)"
style="cursor: pointer"
></i>
</div>
</el-descriptions-item>
<el-descriptions-item :contentClassName="isDiff('monitoringType')">
<template slot="label"> 监控类型 </template>
{{ monitoringTypeFormat(this.form.monitoringType) }}
1 year ago
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
import { getDikeCompare } from "@/api/yg/dikeCompare";
1 year ago
import { getFileStream } from "@/api/system/upload";
export default {
props: ["projectManagementData"],
inject: ["getDiff", "granParentEle"],
data() {
return {
histroy: "当前版本",
sumData: [],
form: {},
// 工程管理单位性质字典
managementUnitNatureOptions: [],
// 工程管理单位权属字典
engineeringManagementOwnershipOptions: [],
// 水行政主管部门字典
waterAdministrativeDepartmentOptions: [],
// 水行政主管部门性质字典
administrationDepartmentNatureOptions: [],
// 行业归口管理部门字典
centralizedManagementDepartmentOptions: [],
// 管理范围划界字典
managementDelimitationOptions: [],
// 管理范围确权字典
managementConfirmationOptions: [],
// 保护范围划界字典
protectionDelimitationOptions: [],
// 监控类型字典
monitoringTypeOptions: [],
1 year ago
diffPart: [],
};
},
created() {
if (this.projectManagementData && this.projectManagementData.id) {
console.log(
"this.projectManagementData in projectManagement",
this.projectManagementData
);
this.form = this.projectManagementData;
console.log("this.form", this.form);
this.histroy = this.form.id;
this.$nextTick(() => {
this.diffPart = this.getDiff("projectManagement");
console.log("this.diffPart in projectManagement", this.diffPart);
});
}
this.getDicts("engineering_management_nature").then((response) => {
this.managementUnitNatureOptions = response.data;
});
this.getDicts("engineering_management_ownership").then((response) => {
this.engineeringManagementOwnershipOptions = response.data;
});
this.getDicts("water_administrative_department").then((response) => {
this.waterAdministrativeDepartmentOptions = response.data;
});
this.getDicts("water_administrative_department_nature").then((response) => {
this.administrationDepartmentNatureOptions = response.data;
});
this.getDicts("centralized_management_department").then((response) => {
this.centralizedManagementDepartmentOptions = response.data;
});
this.getDicts("scope_delineation").then((response) => {
this.managementDelimitationOptions = response.data;
});
this.getDicts("scope_confirmation").then((response) => {
this.managementConfirmationOptions = response.data;
});
this.getDicts("scope_delineation").then((response) => {
this.protectionDelimitationOptions = response.data;
});
this.getDicts("monitoring_type").then((response) => {
this.monitoringTypeOptions = response.data;
});
1 year ago
getDikeCompare(this.$route.query.embankmentCode).then((res) => {
1 year ago
this.sumData = res.data.gcgl;
console.log("this.sumData in projectManagement", this.sumData);
// res.data.jbxx.map((item) => {
// if (!item.recordLoseEfficacyTime) this.baseData = item;
// });
// res.data.gcgl.map((item) => {
// if (!item.recordLoseEfficacyTime) this.projectManagementData = item;
// });
});
},
watch: {
// baseprojectManagementDataData: function (n, o) {
// this.projectManagementData = n;
// this.form = this.projectManagementData;
// this.histroy = this.form.id;
// // this.diffPart = this.getDiff();
// // setTimeout(() => {
// // this.diffPart = this.getDiff();
// // }, 10);
// // 异步,待数据更新完时执行
// this.$nextTick(() => {
// console.log(123456);
// // console.log(99999999999, this.granParentEle);
// this.diffPart = this.getDiff("projectManagement");
// });
// },
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.projectManagement.diffPart =
this.granParentEle[
childrenEles[index]
].$refs.projectManagement.getDiff("projectManagement");
}
}, 10);
},
},
methods: {
isDiff(name) {
return this.diffPart.some((item) => item === name) ? "diffEle" : "";
},
chooseEdition(data) {
this.form = data;
},
// 工程管理单位性质字典翻译
managementUnitNatureFormat(row, column) {
return this.selectDictLabel(
this.managementUnitNatureOptions,
row.managementUnitNature
);
},
// 工程管理单位权属字典翻译
engineeringManagementOwnershipFormat(row, column) {
return this.selectDictLabel(
this.engineeringManagementOwnershipOptions,
row.engineeringManagementOwnership
);
},
// 水行政主管部门字典翻译
waterAdministrativeDepartmentFormat(row, column) {
return this.selectDictLabel(
this.waterAdministrativeDepartmentOptions,
row.waterAdministrativeDepartment
);
},
// 水行政主管部门性质字典翻译
administrationDepartmentNatureFormat(row, column) {
return this.selectDictLabel(
this.administrationDepartmentNatureOptions,
row.administrationDepartmentNature
);
},
// 行业归口管理部门字典翻译
centralizedManagementDepartmentFormat(row, column) {
return this.selectDictLabel(
this.centralizedManagementDepartmentOptions,
row.centralizedManagementDepartment
);
},
// 管理范围划界字典翻译
managementDelimitationFormat(row, column) {
return this.selectDictLabel(
this.managementDelimitationOptions,
row.managementDelimitation
);
},
// 管理范围确权字典翻译
managementConfirmationFormat(row, column) {
return this.selectDictLabel(
this.managementConfirmationOptions,
row.managementConfirmation
);
},
// 保护范围划界字典翻译
protectionDelimitationFormat(row, column) {
return this.selectDictLabel(
this.protectionDelimitationOptions,
row.protectionDelimitation
);
},
// 监控类型字典翻译
monitoringTypeFormat(data) {
let res = "";
let arr = data ? JSON.parse(data) : [];
// console.log("XXXXXXXXXXXXXXXXXXXXXX", data);
if (arr) {
arr.forEach((item) => {
res =
res + "+" + this.selectDictLabel(this.monitoringTypeOptions, item);
});
return res.slice(1);
}
},
1 year ago
// 查看信息中, 下载
downloadFile(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); //创建新的URL表示指定的blob对象
const a = document.createElement("a"); //创建a标签
a.style.display = "none";
a.href = href; // 指定下载链接
a.download = file.name; //指定下载文件名
a.click(); //触发下载
URL.revokeObjectURL(a.href); //释放URL对象
});
},
},
};
</script>
<style lang="scss" scoped></style>
<style lang="scss">
.diffEle {
color: #f13939;
// background: skyblue;
}
</style>