|
|
|
@ -54,31 +54,188 @@
|
|
|
|
|
<div class="content">
|
|
|
|
|
<div class="picturediv">
|
|
|
|
|
<!-- 图片展示 -->
|
|
|
|
|
<img
|
|
|
|
|
v-if="basicInfo.fj"
|
|
|
|
|
:src="baseUrl + basicInfo.fj"
|
|
|
|
|
alt="项目代表性照片"
|
|
|
|
|
/>
|
|
|
|
|
<el-carousel :autoplay="false" height="26rem">
|
|
|
|
|
<el-carousel-item v-for="(url, index) in carouselImages" :key="index">
|
|
|
|
|
<img
|
|
|
|
|
:src="url"
|
|
|
|
|
alt="项目图片"
|
|
|
|
|
style="
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
object-fit: contain;
|
|
|
|
|
object-position: center;
|
|
|
|
|
"
|
|
|
|
|
/>
|
|
|
|
|
</el-carousel-item>
|
|
|
|
|
</el-carousel>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 基本信息描述 -->
|
|
|
|
|
<div class="descriptionsdiv">
|
|
|
|
|
<el-descriptions class="margin-top" :column="3" border>
|
|
|
|
|
<el-descriptions-item
|
|
|
|
|
v-for="(item, index) in descriptions"
|
|
|
|
|
:key="index"
|
|
|
|
|
:span="
|
|
|
|
|
item.label === '项目法人单位简介' || item.label === '所属细分产业'
|
|
|
|
|
? 3
|
|
|
|
|
: 1
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<!-- 项目名称 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span v-if="item.required" style="color: red; margin-right: 4px"
|
|
|
|
|
>*</span
|
|
|
|
|
>
|
|
|
|
|
{{ item.label }}
|
|
|
|
|
<span style="color: red">*</span> 项目名称
|
|
|
|
|
</template>
|
|
|
|
|
{{ basicInfo.name }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 项目法人单位 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span style="color: red">*</span> 项目法人单位
|
|
|
|
|
</template>
|
|
|
|
|
{{ basicInfo.xmfrdwxz }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 项目法人单位性质 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span style="color: red">*</span> 项目法人单位性质
|
|
|
|
|
</template>
|
|
|
|
|
<dict-tag :options="dict.type.xmfrdwxz" :value="basicInfo.nature" />
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 施工单位 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">施工单位</template>
|
|
|
|
|
{{ basicInfo.sgdw }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 设计单位 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">设计单位</template>
|
|
|
|
|
{{ basicInfo.sjdw }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 总投资额(万元) -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span style="color: red">*</span> 总投资额(万元)
|
|
|
|
|
</template>
|
|
|
|
|
{{ basicInfo.ztze }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 所属功能区 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span style="color: red">*</span> 所属功能区
|
|
|
|
|
</template>
|
|
|
|
|
<dict-tag :options="dict.type.ssgnq" :value="basicInfo.ssgnq" />
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 建设起止时间 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label"
|
|
|
|
|
><span style="color: red">*</span>建设起止时间</template
|
|
|
|
|
>
|
|
|
|
|
{{ basicInfo.begainTime }} 至 {{ basicInfo.endTime }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 现状分类 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span style="color: red">*</span> 现状分类
|
|
|
|
|
</template>
|
|
|
|
|
<dict-tag :options="dict.type.xzfl" :value="basicInfo.xzfl" />
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 建设地点 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">建设地点</template>
|
|
|
|
|
{{ basicInfo.jsdd }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 重点发展产业 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">重点发展产业</template>
|
|
|
|
|
{{ basicInfo.prioritize }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 建设模式 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span style="color: red">*</span> 建设模式
|
|
|
|
|
</template>
|
|
|
|
|
<dict-tag :options="dict.type.jsms" :value="basicInfo.jsms" />
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 项目标签 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">项目标签</template>
|
|
|
|
|
{{ basicInfo.label }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 项目负责人 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span style="color: red">*</span> 项目负责人
|
|
|
|
|
</template>
|
|
|
|
|
{{ basicInfo.projectLeader }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 联系方式 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span style="color: red">*</span> 联系方式
|
|
|
|
|
</template>
|
|
|
|
|
{{ basicInfo.phone }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
{{ item.value }}
|
|
|
|
|
<!-- 施工许可证发放时间 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">施工许可证发放时间</template>
|
|
|
|
|
{{ basicInfo.issuingTime }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 竣工验收时间 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">竣工验收时间</template>
|
|
|
|
|
{{ basicInfo.acceptanceTime }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 建设进度 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label"> 建设进度 </template>
|
|
|
|
|
{{ basicInfo.jsjd }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 统一社会信用代码 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">
|
|
|
|
|
<span style="color: red">*</span> 统一社会信用代码
|
|
|
|
|
</template>
|
|
|
|
|
{{ basicInfo.tyshxydm }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 计划投资额(亿元) -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">计划投资额(亿元)</template>
|
|
|
|
|
{{ basicInfo.jhtze }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 所属产业目录 -->
|
|
|
|
|
<el-descriptions-item>
|
|
|
|
|
<template slot="label">所属产业目录</template>
|
|
|
|
|
<dict-tag :options="dict.type.shangloumulu" :value="basicInfo.ml" />
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 所属细分产业 -->
|
|
|
|
|
<el-descriptions-item :span="3">
|
|
|
|
|
<template slot="label"> 所属细分产业 </template>
|
|
|
|
|
<dict-tag :options="dict.type.bqlx" :value="basicInfo.xfcy" />
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 项目法人单位简介 -->
|
|
|
|
|
<el-descriptions-item :span="3">
|
|
|
|
|
<template slot="label">项目法人单位简介</template>
|
|
|
|
|
{{ basicInfo.unitIntroduction }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
|
|
|
|
<!-- 项目简介 -->
|
|
|
|
|
<el-descriptions-item :span="3">
|
|
|
|
|
<template slot="label">项目简介</template>
|
|
|
|
|
{{ basicInfo.introduction }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
</el-descriptions>
|
|
|
|
|
</div>
|
|
|
|
@ -257,11 +414,13 @@
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="施工许可证发放时间" prop="issuingTime">
|
|
|
|
|
<el-input
|
|
|
|
|
<el-date-picker
|
|
|
|
|
v-model="form.issuingTime"
|
|
|
|
|
maxlength="50"
|
|
|
|
|
placeholder="请输入施工许可证发放时间"
|
|
|
|
|
></el-input>
|
|
|
|
|
type="date"
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
placeholder="请选择施工许可证发放时间"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
@ -287,11 +446,13 @@
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="竣工验收时间" prop="acceptanceTime">
|
|
|
|
|
<el-input
|
|
|
|
|
<el-date-picker
|
|
|
|
|
v-model="form.acceptanceTime"
|
|
|
|
|
maxlength="50"
|
|
|
|
|
placeholder="请输入竣工验收时间"
|
|
|
|
|
></el-input>
|
|
|
|
|
type="date"
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
placeholder="请选择竣工验收时间"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
@ -409,7 +570,7 @@
|
|
|
|
|
placeholder="请输入项目简介"
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="项目代表性照片">
|
|
|
|
|
<el-form-item label="项目代表性照片" prop="fj">
|
|
|
|
|
<ImageUpload v-model="form.fj" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
@ -465,19 +626,6 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
requiredFields: [
|
|
|
|
|
"项目名称",
|
|
|
|
|
"项目法人单位",
|
|
|
|
|
"项目法人单位性质",
|
|
|
|
|
"建设模式",
|
|
|
|
|
"项目负责人",
|
|
|
|
|
"总投资额(万元)",
|
|
|
|
|
"联系方式",
|
|
|
|
|
"所属功能区",
|
|
|
|
|
"建设起止时间",
|
|
|
|
|
"现状分类",
|
|
|
|
|
"统一社会信用代码",
|
|
|
|
|
],
|
|
|
|
|
baseUrl: process.env.VUE_APP_BASE_API,
|
|
|
|
|
descriptions: [],
|
|
|
|
|
dialogImageUrl: "",
|
|
|
|
@ -590,47 +738,21 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
// select映射
|
|
|
|
|
ssgnqMap: {
|
|
|
|
|
1: "高端制造与国际贸易区",
|
|
|
|
|
2: "独墅湖科教创新区",
|
|
|
|
|
3: "阳澄湖半岛旅游度假区",
|
|
|
|
|
4: "金鸡湖商务区",
|
|
|
|
|
5: "苏相合作区",
|
|
|
|
|
},
|
|
|
|
|
xmfrdwxzMap: {
|
|
|
|
|
1: "国企",
|
|
|
|
|
2: "外资企业",
|
|
|
|
|
3: "民营企业",
|
|
|
|
|
4: "其他",
|
|
|
|
|
},
|
|
|
|
|
jsmsMap: {
|
|
|
|
|
1: "工地实施",
|
|
|
|
|
2: "利用存量用地改扩建",
|
|
|
|
|
},
|
|
|
|
|
xzflMap: {
|
|
|
|
|
1: "已建",
|
|
|
|
|
2: "在建",
|
|
|
|
|
3: "拟建",
|
|
|
|
|
},
|
|
|
|
|
mlMap: {
|
|
|
|
|
1: "重点鼓励上楼",
|
|
|
|
|
2: "有条件上楼",
|
|
|
|
|
},
|
|
|
|
|
xfMap: {
|
|
|
|
|
1: "新一代信息技术",
|
|
|
|
|
2: "高端装备制造",
|
|
|
|
|
3: "生物医药及大健康",
|
|
|
|
|
4: "纳米技术应用及新材料",
|
|
|
|
|
5: "人工智能及数字产业",
|
|
|
|
|
6: "新能源及绿色产业",
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
watch: {
|
|
|
|
|
basicInfo: {
|
|
|
|
|
handler(newVal) {
|
|
|
|
|
this.descriptions = this.formatDescriptions(newVal);
|
|
|
|
|
// 处理图片轮播数据
|
|
|
|
|
if (newVal.fj) {
|
|
|
|
|
this.carouselImages = newVal.fj
|
|
|
|
|
.split(",")
|
|
|
|
|
.map((url) => this.baseUrl + url.trim());
|
|
|
|
|
} else {
|
|
|
|
|
this.carouselImages = [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 设置表单数据
|
|
|
|
|
this.form = {
|
|
|
|
|
...newVal,
|
|
|
|
|
begainTime: newVal.begainTime ? new Date(newVal.begainTime) : "",
|
|
|
|
@ -651,7 +773,7 @@ export default {
|
|
|
|
|
this.form.latitude = location.lat; // 设置纬度
|
|
|
|
|
this.mapDialogVisible = false; // 关闭地图弹窗
|
|
|
|
|
},
|
|
|
|
|
/** 导出按钮操作 */
|
|
|
|
|
/* 导出按钮操作 */
|
|
|
|
|
handleExport() {
|
|
|
|
|
this.download(
|
|
|
|
|
"/gysl/basicInformation/export",
|
|
|
|
@ -661,47 +783,6 @@ export default {
|
|
|
|
|
`基本信息导出${new Date().getTime()}.xlsx`
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
// 格式化描述信息
|
|
|
|
|
formatDescriptions(data) {
|
|
|
|
|
const requiredFields = this.requiredFields;
|
|
|
|
|
return [
|
|
|
|
|
{ label: "项目名称", value: data.name },
|
|
|
|
|
{ label: "项目法人单位", value: data.xmfrdwxz },
|
|
|
|
|
{
|
|
|
|
|
label: "项目法人单位性质",
|
|
|
|
|
value: this.xmfrdwxzMap[data.nature] || "",
|
|
|
|
|
},
|
|
|
|
|
{ label: "施工单位", value: data.sgdw },
|
|
|
|
|
{ label: "设计单位", value: data.sjdw },
|
|
|
|
|
{ label: "总投资额(万元)", value: data.ztze },
|
|
|
|
|
{ label: "所属功能区", value: this.ssgnqMap[data.ssgnq] || "" },
|
|
|
|
|
{
|
|
|
|
|
label: "建设起止时间",
|
|
|
|
|
value: `${data.begainTime ? data.begainTime : ""} 至 ${
|
|
|
|
|
data.endTime ? data.endTime : ""
|
|
|
|
|
}`,
|
|
|
|
|
},
|
|
|
|
|
{ label: "现状分类", value: this.xzflMap[data.xzfl] || "" },
|
|
|
|
|
{ label: "建设地点", value: data.jsdd },
|
|
|
|
|
{ label: "重点发展产业", value: data.prioritize },
|
|
|
|
|
{ label: "建设模式", value: this.jsmsMap[data.jsms] || "" },
|
|
|
|
|
{ label: "项目标签", value: data.label },
|
|
|
|
|
{ label: "项目负责人", value: data.projectLeader },
|
|
|
|
|
{ label: "联系方式", value: data.phone },
|
|
|
|
|
{ label: "施工许可证发放时间", value: data.issuingTime },
|
|
|
|
|
{ label: "竣工验收时间", value: data.acceptanceTime },
|
|
|
|
|
{ label: "建设进度", value: data.jsjd },
|
|
|
|
|
{ label: "统一社会信用代码", value: data.tyshxydm },
|
|
|
|
|
{ label: "计划投资额(亿元)", value: data.jhtze },
|
|
|
|
|
{ label: "所属产业目录", value: this.mlMap[data.ml] || "" },
|
|
|
|
|
{ label: "所属细分产业", value: this.xfMap[data.xfcy] || "" },
|
|
|
|
|
{ label: "项目法人单位简介", value: data.unitIntroduction },
|
|
|
|
|
{ label: "项目简介", value: data.introduction },
|
|
|
|
|
].map((item) => ({
|
|
|
|
|
...item,
|
|
|
|
|
required: requiredFields.includes(item.label),
|
|
|
|
|
}));
|
|
|
|
|
},
|
|
|
|
|
// 打开编辑对话框
|
|
|
|
|
edit() {
|
|
|
|
|
this.dialogVisible = true;
|
|
|
|
@ -734,14 +815,12 @@ export default {
|
|
|
|
|
// 格式化日期字段
|
|
|
|
|
const formatDate = (date) => {
|
|
|
|
|
if (!date) return "";
|
|
|
|
|
// 如果是 Date 对象,直接格式化;如果是字符串,保持原样
|
|
|
|
|
return date instanceof Date ? date.toISOString().split("T")[0] : date;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
...formData,
|
|
|
|
|
begainTime: formatDate(formData.begainTime), // 单独格式化 begainTime
|
|
|
|
|
endTime: formatDate(formData.endTime),
|
|
|
|
|
endTime: formatDate(formData.endTime),
|
|
|
|
|
createBy: "",
|
|
|
|
|
createId: 0,
|
|
|
|
|
createTime: "",
|
|
|
|
@ -760,7 +839,6 @@ export default {
|
|
|
|
|
// const d = date instanceof Date ? date : new Date(date);
|
|
|
|
|
// return d.toISOString().split('T')[0]; // 取 YYYY-MM-DD 部分
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
// return [
|
|
|
|
|
// formatDate(dateRange[0]), // 开始日期
|
|
|
|
|
// formatDate(dateRange[1]) // 结束日期
|
|
|
|
@ -840,8 +918,8 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.picturediv {
|
|
|
|
|
width: 18.31rem;
|
|
|
|
|
height: 25rem;
|
|
|
|
|
width: 24.4rem;
|
|
|
|
|
height: 26rem;
|
|
|
|
|
position: relative;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
}
|
|
|
|
@ -859,7 +937,7 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.descriptionsdiv {
|
|
|
|
|
width: calc(100% - 18.31rem);
|
|
|
|
|
width: calc(100% - 25rem);
|
|
|
|
|
margin-left: 1rem;
|
|
|
|
|
height: auto;
|
|
|
|
|
}
|
|
|
|
|