Compare commits

...

2 Commits

@ -43,7 +43,7 @@ export function addmonth(data) {
url: "/gysl/projectProgress/add", url: "/gysl/projectProgress/add",
method: "post", method: "post",
data, data,
}) });
} }
// 月度进展信息修改 // 月度进展信息修改
@ -64,3 +64,20 @@ export function deletemonth(idList) {
}, },
}); });
} }
// 月度信息对接项目
// 绑定项目
export function bindProject(data) {
return request({
url: "/gysl/projectProgress/bindProject",
method: "post",
data,
});
}
export function searchProjects(params) {
return request({
url: "/gysl/project/page",
method: "get",
params,
});
}

@ -69,8 +69,10 @@
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
</div> </div>
<!-- 基本信息描述 -->
<div class="descriptionsdiv"> <div class="descriptionsdiv">
<el-descriptions class="margin-top" :column="3" border> <el-descriptions class="margin-top" :column="3" border>
<!-- 项目名称 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 项目名称 <span style="color: red">*</span> 项目名称
@ -78,6 +80,7 @@
{{ basicInfo.name }} {{ basicInfo.name }}
</el-descriptions-item> </el-descriptions-item>
<!-- 项目法人单位 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 项目法人单位 <span style="color: red">*</span> 项目法人单位
@ -85,6 +88,7 @@
{{ basicInfo.xmfrdwxz }} {{ basicInfo.xmfrdwxz }}
</el-descriptions-item> </el-descriptions-item>
<!-- 项目法人单位性质 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 项目法人单位性质 <span style="color: red">*</span> 项目法人单位性质
@ -92,20 +96,19 @@
<dict-tag :options="dict.type.xmfrdwxz" :value="basicInfo.nature" /> <dict-tag :options="dict.type.xmfrdwxz" :value="basicInfo.nature" />
</el-descriptions-item> </el-descriptions-item>
<!-- 施工单位 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">施工单位</template>
<span style="color: red">*</span> 施工单位
</template>
{{ basicInfo.sgdw }} {{ basicInfo.sgdw }}
</el-descriptions-item> </el-descriptions-item>
<!-- 设计单位 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">设计单位</template>
<span style="color: red">*</span> 设计单位
</template>
{{ basicInfo.sjdw }} {{ basicInfo.sjdw }}
</el-descriptions-item> </el-descriptions-item>
<!-- 总投资额万元 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 总投资额万元 <span style="color: red">*</span> 总投资额万元
@ -113,6 +116,7 @@
{{ basicInfo.ztze }} {{ basicInfo.ztze }}
</el-descriptions-item> </el-descriptions-item>
<!-- 所属功能区 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 所属功能区 <span style="color: red">*</span> 所属功能区
@ -120,13 +124,15 @@
<dict-tag :options="dict.type.ssgnq" :value="basicInfo.ssgnq" /> <dict-tag :options="dict.type.ssgnq" :value="basicInfo.ssgnq" />
</el-descriptions-item> </el-descriptions-item>
<!-- 建设起止时间 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label"
<span style="color: red">*</span> 建设起止时间 ><span style="color: red">*</span>建设起止时间</template
</template> >
{{ basicInfo.begainTime }} {{ basicInfo.endTime }} {{ basicInfo.begainTime }} {{ basicInfo.endTime }}
</el-descriptions-item> </el-descriptions-item>
<!-- 现状分类 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 现状分类 <span style="color: red">*</span> 现状分类
@ -134,20 +140,19 @@
<dict-tag :options="dict.type.xzfl" :value="basicInfo.xzfl" /> <dict-tag :options="dict.type.xzfl" :value="basicInfo.xzfl" />
</el-descriptions-item> </el-descriptions-item>
<!-- 建设地点 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">建设地点</template>
<span style="color: red">*</span> 建设地点
</template>
{{ basicInfo.jsdd }} {{ basicInfo.jsdd }}
</el-descriptions-item> </el-descriptions-item>
<!-- 重点发展产业 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">重点发展产业</template>
<span style="color: red">*</span> 重点发展产业
</template>
{{ basicInfo.prioritize }} {{ basicInfo.prioritize }}
</el-descriptions-item> </el-descriptions-item>
<!-- 建设模式 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 建设模式 <span style="color: red">*</span> 建设模式
@ -155,13 +160,13 @@
<dict-tag :options="dict.type.jsms" :value="basicInfo.jsms" /> <dict-tag :options="dict.type.jsms" :value="basicInfo.jsms" />
</el-descriptions-item> </el-descriptions-item>
<!-- 项目标签 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">项目标签</template>
<span style="color: red">*</span> 项目标签
</template>
{{ basicInfo.label }} {{ basicInfo.label }}
</el-descriptions-item> </el-descriptions-item>
<!-- 项目负责人 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 项目负责人 <span style="color: red">*</span> 项目负责人
@ -169,6 +174,7 @@
{{ basicInfo.projectLeader }} {{ basicInfo.projectLeader }}
</el-descriptions-item> </el-descriptions-item>
<!-- 联系方式 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 联系方式 <span style="color: red">*</span> 联系方式
@ -176,27 +182,25 @@
{{ basicInfo.phone }} {{ basicInfo.phone }}
</el-descriptions-item> </el-descriptions-item>
<!-- 施工许可证发放时间 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">施工许可证发放时间</template>
<span style="color: red">*</span> 施工许可证发放时间
</template>
{{ basicInfo.issuingTime }} {{ basicInfo.issuingTime }}
</el-descriptions-item> </el-descriptions-item>
<!-- 竣工验收时间 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">竣工验收时间</template>
<span style="color: red">*</span> 竣工验收时间
</template>
{{ basicInfo.acceptanceTime }} {{ basicInfo.acceptanceTime }}
</el-descriptions-item> </el-descriptions-item>
<!-- 建设进度 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label"> 建设进度 </template>
<span style="color: red">*</span> 建设进度
</template>
{{ basicInfo.jsjd }} {{ basicInfo.jsjd }}
</el-descriptions-item> </el-descriptions-item>
<!-- 统一社会信用代码 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span> 统一社会信用代码 <span style="color: red">*</span> 统一社会信用代码
@ -204,38 +208,33 @@
{{ basicInfo.tyshxydm }} {{ basicInfo.tyshxydm }}
</el-descriptions-item> </el-descriptions-item>
<!-- 计划投资额(亿元) -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">计划投资额(亿元)</template>
<span style="color: red">*</span> 计划投资额(亿元)
</template>
{{ basicInfo.jhtze }} {{ basicInfo.jhtze }}
</el-descriptions-item> </el-descriptions-item>
<!-- 所属产业目录 -->
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">所属产业目录</template>
<span style="color: red">*</span> 所属产业目录
</template>
<dict-tag :options="dict.type.shangloumulu" :value="basicInfo.ml" /> <dict-tag :options="dict.type.shangloumulu" :value="basicInfo.ml" />
</el-descriptions-item> </el-descriptions-item>
<!-- 所属细分产业 -->
<el-descriptions-item :span="3"> <el-descriptions-item :span="3">
<template slot="label"> <template slot="label"> 所属细分产业 </template>
<span style="color: red">*</span> 所属细分产业
</template>
<dict-tag :options="dict.type.bqlx" :value="basicInfo.xfcy" /> <dict-tag :options="dict.type.bqlx" :value="basicInfo.xfcy" />
</el-descriptions-item> </el-descriptions-item>
<!-- 项目法人单位简介 -->
<el-descriptions-item :span="3"> <el-descriptions-item :span="3">
<template slot="label"> <template slot="label">项目法人单位简介</template>
<span style="color: red">*</span> 项目法人单位简介
</template>
{{ basicInfo.unitIntroduction }} {{ basicInfo.unitIntroduction }}
</el-descriptions-item> </el-descriptions-item>
<!-- 项目简介 -->
<el-descriptions-item :span="3"> <el-descriptions-item :span="3">
<template slot="label"> <template slot="label">项目简介</template>
<span style="color: red">*</span> 项目简介
</template>
{{ basicInfo.introduction }} {{ basicInfo.introduction }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
@ -415,11 +414,13 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="施工许可证发放时间" prop="issuingTime"> <el-form-item label="施工许可证发放时间" prop="issuingTime">
<el-input <el-date-picker
v-model="form.issuingTime" v-model="form.issuingTime"
maxlength="50" type="date"
placeholder="请输入施工许可证发放时间" value-format="yyyy-MM-dd"
></el-input> placeholder="请选择施工许可证发放时间"
style="width: 100%"
></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -445,11 +446,13 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="竣工验收时间" prop="acceptanceTime"> <el-form-item label="竣工验收时间" prop="acceptanceTime">
<el-input <el-date-picker
v-model="form.acceptanceTime" v-model="form.acceptanceTime"
maxlength="50" type="date"
placeholder="请输入竣工验收时间" value-format="yyyy-MM-dd"
></el-input> placeholder="请选择竣工验收时间"
style="width: 100%"
></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -674,12 +677,6 @@ export default {
trigger: "change", trigger: "change",
}, },
], ],
sgdw: [
{ required: true, message: "施工单位不能为空", trigger: "blur" },
],
sjdw: [
{ required: true, message: "设计单位不能为空", trigger: "blur" },
],
ztze: [ ztze: [
{ required: true, message: "总投资额不能为空", trigger: "blur" }, { required: true, message: "总投资额不能为空", trigger: "blur" },
{ type: "number", message: "总投资额必须是数字", trigger: "blur" }, { type: "number", message: "总投资额必须是数字", trigger: "blur" },
@ -704,18 +701,9 @@ export default {
xzfl: [ xzfl: [
{ required: true, message: "现状分类不能为空", trigger: "change" }, { required: true, message: "现状分类不能为空", trigger: "change" },
], ],
jsdd: [
{ required: true, message: "建设地点不能为空", trigger: "blur" },
],
prioritize: [
{ required: true, message: "重点发展产业不能为空", trigger: "blur" },
],
jsms: [ jsms: [
{ required: true, message: "建设模式不能为空", trigger: "change" }, { required: true, message: "建设模式不能为空", trigger: "change" },
], ],
label: [
{ required: true, message: "项目标签不能为空", trigger: "blur" },
],
projectLeader: [ projectLeader: [
{ required: true, message: "项目负责人不能为空", trigger: "blur" }, { required: true, message: "项目负责人不能为空", trigger: "blur" },
], ],
@ -727,55 +715,8 @@ export default {
trigger: "blur", trigger: "blur",
}, },
], ],
issuingTime: [
{
required: true,
message: "施工许可证发放时间不能为空",
trigger: "blur",
},
],
acceptanceTime: [
{ required: true, message: "竣工验收时间不能为空", trigger: "blur" },
],
jsjd: [
{ required: true, message: "建设进度不能为空", trigger: "blur" },
],
tyshxydm: [
{
required: true,
message: "统一社会信用代码不能为空",
trigger: "blur",
},
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: "请输入正确格式的18位统一社会信用代码",
trigger: "blur",
},
],
jhtze: [
{
required: true,
message: "计划投资额(亿元)不能为空",
trigger: "blur",
},
],
ml: [
{
required: true,
message: "所属产业目录不能为空",
trigger: "change",
},
],
xfcy: [
{
required: true,
message: "所属细分产业不能为空",
trigger: "change",
},
],
unitIntroduction: [ unitIntroduction: [
{ {
required: true,
max: 1000, max: 1000,
message: "项目法人单位简介长度不能超过1000个字", message: "项目法人单位简介长度不能超过1000个字",
trigger: "blur", trigger: "blur",
@ -783,30 +724,17 @@ export default {
], ],
introduction: [ introduction: [
{ {
required: true,
max: 1000, max: 1000,
message: "项目简介长度不能超过1000个字", message: "项目简介长度不能超过1000个字",
trigger: "blur", trigger: "blur",
}, },
], ],
fj: [ tyshxydm: [
{ { required: true, message: "请填写", trigger: "blur" },
required: true,
message: "请上传至少一张项目代表性照片",
trigger: "change",
},
{ {
validator: (rule, value, callback) => { pattern: /^[a-zA-Z0-9]{18}$/,
if ( message: "请输入正确格式的18位统一社会信用代码",
!value || trigger: "blur",
value.split(",").filter((url) => url.trim() !== "").length === 0
) {
callback(new Error("请上传至少一张项目代表性照片"));
} else {
callback();
}
},
trigger: "change",
}, },
], ],
}, },

@ -18,8 +18,7 @@
style=" style="
border: none; border: none;
background-color: rgba(43, 98, 241, 0.1); background-color: rgba(43, 98, 241, 0.1);
color: #2b62f1; color: #2b62f1;"
"
@click="addBuildingTag" @click="addBuildingTag"
> >
<img <img
@ -131,113 +130,70 @@
<el-descriptions class="margin-top" :column="4" border> <el-descriptions class="margin-top" :column="4" border>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span>是否为重要楼栋 <span style="color: red;">*</span>
</template> 是否为重要楼栋</template>
{{ getTextForBoolean(selectedBuilding.sfwzyld) }} {{ getTextForBoolean(selectedBuilding.sfwzyld) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span>层数 <span style="color: red;">*</span>层数</template>
</template>
{{ selectedBuilding.floor }} {{ selectedBuilding.floor }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span>总建筑高度 <span style="color: red;">*</span>总建筑高度</template>
</template>
{{ selectedBuilding.totalBuildingHeight }} {{ selectedBuilding.totalBuildingHeight }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label"><span style="color: red;">*</span>首层高度平方米</template>
<span style="color: red">*</span>首层高度
</template>
{{ selectedBuilding.scgd }} {{ selectedBuilding.scgd }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">2至4层层高</template>
<span style="color: red">*</span>2至4层层高
</template>
{{ selectedBuilding.twoAndFourCg }} {{ selectedBuilding.twoAndFourCg }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">4层以上层高()</template>
<span style="color: red">*</span>4层以上层高()
</template>
{{ selectedBuilding.fourYscg }} {{ selectedBuilding.fourYscg }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label"><span style="color: red;">*</span>首层地面荷载(/)</template>
<span style="color: red">*</span>首层地面荷载(/平方米)
</template>
{{ selectedBuilding.scdmhz }} {{ selectedBuilding.scdmhz }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">二至三层楼面荷载(/平方米)</template>
<span style="color: red">*</span>二至三层楼面荷载(/平方米)
</template>
{{ selectedBuilding.twoAndThreeLmhz }} {{ selectedBuilding.twoAndThreeLmhz }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label"><span style="color: red;">*</span>标准层面积(千平方米)</template>
<span style="color: red">*</span>标准层面积(千平方米)
</template>
{{ selectedBuilding.bzcmj }} {{ selectedBuilding.bzcmj }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">柱距</template>
<span style="color: red">*</span>柱距
</template>
{{ selectedBuilding.zj }} {{ selectedBuilding.zj }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">是否有吊装口</template>
<span style="color: red">*</span>是否有吊装口
</template>
{{ getTextForBoolean(selectedBuilding.sfydzk) }} {{ getTextForBoolean(selectedBuilding.sfydzk) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">是否有汽车盘道</template>
<span style="color: red">*</span>是否有汽车盘道
</template>
{{ getTextForBoolean(selectedBuilding.sfyqcpd) }} {{ getTextForBoolean(selectedBuilding.sfyqcpd) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">四层及以上楼面荷载(/平方米)</template>
<span style="color: red">*</span>四层及以上楼面荷载(/平方米)
</template>
{{ selectedBuilding.fourYslmhz }} {{ selectedBuilding.fourYslmhz }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label"> 地基基础等级</template>
<span style="color: red">*</span>地基基础等级
</template>
{{ selectedBuilding.djjcdj }} {{ selectedBuilding.djjcdj }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label"> 吊车情况</template>
<span style="color: red">*</span>吊车情况
</template>
{{ selectedBuilding.dcqk }} {{ selectedBuilding.dcqk }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label"> 货梯情况</template>
<span style="color: red">*</span>货梯情况
</template>
{{ selectedBuilding.htqk }} {{ selectedBuilding.htqk }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
@ -319,7 +275,7 @@
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="2至4层层高" prop="twoAndFourCg"> <el-form-item label="2至4层层高" porp="twoAndFourCg">
<el-input <el-input
v-model="buildingForm.twoAndFourCg" v-model="buildingForm.twoAndFourCg"
placeholder="请输入2至4层层高" placeholder="请输入2至4层层高"
@ -591,14 +547,6 @@ export default {
trigger: "blur", trigger: "blur",
}, },
], ],
fourYscg: [
{
required: true,
message: "请输入4层以上层高",
trigger: "blur",
},
],
zj: [{ required: true, message: "请输入柱距", trigger: "blur" }],
scdmhz: [ scdmhz: [
{ {
required: true, required: true,
@ -606,13 +554,6 @@ export default {
trigger: "blur", trigger: "blur",
}, },
], ],
twoAndThreeLmhz: [
{
required: true,
message: "请输入二至三层楼面荷载(吨/平方米)",
trigger: "blur",
},
],
bzcmj: [ bzcmj: [
{ {
required: true, required: true,
@ -620,28 +561,6 @@ export default {
trigger: "blur", trigger: "blur",
}, },
], ],
sfydzk: [
{ required: true, message: "请选择是否有吊装口", trigger: "change" },
],
sfyqcpd: [
{
required: true,
message: "请选择是否有汽车盘道",
trigger: "change",
},
],
fourYslmhz: [
{
required: true,
message: "请输入四层及以上楼面荷载(吨/平方米)",
trigger: "blur",
},
],
djjcdj: [
{ required: true, message: "请输入地基基础等级", trigger: "blur" },
],
dcqk: [{ required: true, message: "请输入吊车情况", trigger: "blur" }],
htqk: [{ required: true, message: "请输入货梯情况", trigger: "blur" }],
}, },
}; };
}, },

@ -71,63 +71,63 @@
{{ (pagination.currentPage - 1) * pagination.pageSize + scope.$index + 1 }} {{ (pagination.currentPage - 1) * pagination.pageSize + scope.$index + 1 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="name" label="企业名称" show-overflow-tooltip> <el-table-column prop="qymc" label="企业名称" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEditing" v-model="scope.row.name"></el-input> <el-input v-if="scope.row.isEditing" v-model="scope.row.qymc"></el-input>
<span v-else style="color: #2B62F1;">{{ scope.row.name }}</span> <span v-else style="color: #2B62F1;">{{ scope.row.qymc }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="code" label="统一社会信用代码" width="200"> <el-table-column prop="tyshxydm" label="统一社会信用代码" width="200" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column prop="sshy" label="所属行业"> <el-table-column prop="hymc" label="所属行业" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEditing" v-model="scope.row.sshy"></el-input> <el-input v-if="scope.row.isEditing" v-model="scope.row.hymc"></el-input>
<span v-else>{{ scope.row.sshy }}</span> <span v-else>{{ scope.row.hymc }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="zjjg" label='租金价格'> <el-table-column prop="zjjg" label='租金价格' show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEditing" v-model.number="scope.row.zjjg"></el-input> <el-input v-if="scope.row.isEditing" v-model.number="scope.row.zjjg"></el-input>
<span v-else>{{ scope.row.zjjg }}</span> <span v-else>{{ scope.row.zjjg }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="zcdz" label='注册地址' show-overflow-tooltip> <el-table-column prop="qyzs" label='注册地址' show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEditing" v-model.number="scope.row.zcdz"></el-input> <el-input v-if="scope.row.isEditing" v-model.number="scope.row.qyzs"></el-input>
<span v-else>{{ scope.row.zcdz }}</span> <span v-else>{{ scope.row.qyzs }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="clrq" label='成立日期'> <el-table-column prop="clrq" label='成立日期' show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-date-picker v-if="scope.row.isEditing" v-model="scope.row.clrq" type="datetime" <el-date-picker v-if="scope.row.isEditing" v-model="scope.row.clrq" type="datetime"
value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%;"></el-date-picker> value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%;"></el-date-picker>
<span v-else>{{ scope.row.clrq ? new Date(scope.row.clrq).toLocaleDateString('en-CA') : '' }}</span> <span v-else>{{ scope.row.clrq ? new Date(scope.row.clrq).toLocaleDateString('en-CA') : '' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="zczb" label='注册资本'> <el-table-column prop="zczj" label='注册资本' show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEditing" v-model.number="scope.row.zczb"></el-input> <el-input v-if="scope.row.isEditing" v-model.number="scope.row.zczj"></el-input>
<span v-else>{{ scope.row.zczb }}</span> <span v-else>{{ scope.row.zczj }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="fddbr" label='法定代表人'> <el-table-column prop="fddbrxm" label='法定代表人' show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEditing" v-model.number="scope.row.fddbr"></el-input> <el-input v-if="scope.row.isEditing" v-model.number="scope.row.fddbrxm"></el-input>
<span v-else>{{ scope.row.fddbr }}</span> <span v-else>{{ scope.row.fddbrxm }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="qylx" label='企业类型'> <el-table-column prop="qylxmc" label='企业类型' show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEditing" v-model.number="scope.row.qylx"></el-input> <el-input v-if="scope.row.isEditing" v-model.number="scope.row.qylxmc"></el-input>
<span v-else>{{ scope.row.qylx }}</span> <span v-else>{{ scope.row.qylxmc }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="jyfw" label='经营范围'> <!-- <el-table-column prop="jyfw" label='经营范围' show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEditing" v-model.number="scope.row.jyfw"></el-input> <el-input v-if="scope.row.isEditing" v-model.number="scope.row.jyfw"></el-input>
<span v-else>{{ scope.row.jyfw }}</span> <span v-else>{{ scope.row.jyfw }}</span>
</template> </template>
</el-table-column> </el-table-column> -->
<!-- <el-table-column prop="zzjgdm" label='组织机构代码'> <!-- <el-table-column prop="zzjgdm" label='组织机构代码'>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEditing" v-model.number="scope.row.zzjgdm"></el-input> <el-input v-if="scope.row.isEditing" v-model.number="scope.row.zzjgdm"></el-input>
@ -320,7 +320,7 @@ export default {
}, },
deleteRow(index) { deleteRow(index) {
const id = this.tableData[index].id; const id = this.tableData[index].id;
const projectName = this.tableData[index].name; const projectName = this.tableData[index].qymc;
this.$modal.confirm(`是否确认删除"${projectName}"`).then(() => { this.$modal.confirm(`是否确认删除"${projectName}"`).then(() => {
deleteqyBasicInformation([id]).then(response => { deleteqyBasicInformation([id]).then(response => {
this.tableData.splice(index, 1); this.tableData.splice(index, 1);

@ -37,8 +37,8 @@
:placeholder="item.zdname === '暂无指标' ? '暂无数据' : '请输入内容'"> :placeholder="item.zdname === '暂无指标' ? '暂无数据' : '请输入内容'">
</el-input> </el-input>
</div> </div>
<div v-else> <div v-else class="label-color">
<span class="label-color">{{ item.zdname || '暂无指标' }}</span> {{ item.zdinfor || <span>{{ item.zdname || '暂无指标' }}</span> {{ item.zdinfor ||
'无' }} '无' }}
</div> </div>
</td> </td>
@ -85,7 +85,6 @@ export default {
{ value: '有', label: '有' }, { value: '有', label: '有' },
{ value: '无', label: '无' }, { value: '无', label: '无' },
], ],
//
} }
}; };
}, },
@ -226,6 +225,9 @@ export default {
.left-column { .left-column {
border-right: 1px solid #E6EAF2; border-right: 1px solid #E6EAF2;
background-color: #F4F7FE; background-color: #F4F7FE;
font-size: 0.88rem;
width: 12.5rem;
color: #909399;
} }
.right-columns { .right-columns {
@ -233,6 +235,11 @@ export default {
} }
.label-color { .label-color {
color: #808080; color:black ;
font-size: 0.88rem;
}
.label-color span {
color:#909399 ;
font-size: 0.88rem;
} }
</style> </style>

@ -3,20 +3,57 @@
<!-- 顶部信息 --> <!-- 顶部信息 -->
<div class="containertop"> <div class="containertop">
<div class="topleft"> <div class="topleft">
<img src="@/assets/images/detailsicon/1.png" alt=""> <img src="@/assets/images/detailsicon/1.png" alt="" />
<span>月度进展信息</span> <span class="lefttitle">月度进展信息</span>
<el-tooltip
:content="bindText"
placement="top"
:disabled="bindText.length <= 15"
>
<div class="bind-project" @click="handleBindProject">
{{ bindText }}
</div> </div>
<div class="topright" v-if="action === 'fill' || !action || action === 'okay'"> </el-tooltip>
<el-button type="primary" size="medium" plain </div>
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleAdd"> <div
<img src="@/assets/images/detailsicon/icon-xz@2x.png" alt="新增" class="topright"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;"> v-if="action === 'fill' || !action || action === 'okay'"
>
<el-button
type="primary"
size="medium"
plain
style="
border: none;
background-color: rgba(43, 98, 241, 0.1);
color: #2b62f1;
"
@click="handleAdd"
>
<img
src="@/assets/images/detailsicon/icon-xz@2x.png"
alt="新增"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px"
/>
新增 新增
</el-button> </el-button>
<el-button type="primary" size="medium" plain v-if="checkRole(['admin', 'common','gov'])" <el-button
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleExport"> type="primary"
<img src="@/assets/images/detailsicon/icon-dc@2x.png" alt="导出" size="medium"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;"> plain
v-if="checkRole(['admin', 'common', 'gov'])"
style="
border: none;
background-color: rgba(43, 98, 241, 0.1);
color: #2b62f1;
"
@click="handleExport"
>
<img
src="@/assets/images/detailsicon/icon-dc@2x.png"
alt="导出"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px"
/>
导出 导出
</el-button> </el-button>
</div> </div>
@ -30,22 +67,38 @@
<div class="table-cell">当月完成投资</div> <div class="table-cell">当月完成投资</div>
<div class="table-cell">累计完成投资</div> <div class="table-cell">累计完成投资</div>
<div <div
style="width: auto; text-align: center;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;padding: 0 0.5rem;"> style="
截止目前累计建成面积平方米</div> width: auto;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 0 0.5rem;
"
>
截止目前累计建成面积平方米
</div>
<div class="table-cell">项目进展详情</div> <div class="table-cell">项目进展详情</div>
<div class="table-cell">操作</div> <div class="table-cell">操作</div>
</div> </div>
<div class="custom-table-body"> <div class="custom-table-body">
<div v-if="tableData.length === 0" class="no-data-row"> <div v-if="tableData.length === 0" class="no-data-row"></div>
暂无数据 <div
</div> v-else
<div v-else v-for="item in tableData" :key="item.id" class="custom-table-row"> v-for="item in tableData"
:key="item.id"
class="custom-table-row"
>
<!-- 进度月份 --> <!-- 进度月份 -->
<div class="table-cell"> <div class="table-cell">
<template v-if="item.isEditing"> <template v-if="item.isEditing">
<el-date-picker v-model="item.month" type="month" value-format="yyyy-MM" <el-date-picker
style="width: 100%;"></el-date-picker> v-model="item.month"
type="month"
value-format="yyyy-MM"
style="width: 100%"
></el-date-picker>
</template> </template>
<template v-else> <template v-else>
{{ item.month }} {{ item.month }}
@ -54,13 +107,19 @@
<!-- 状态始终不编辑 --> <!-- 状态始终不编辑 -->
<div class="table-cell"> <div class="table-cell">
<span :style="getStatusColor(item.status)">{{ item.status }}</span> <span :style="getStatusColor(item.status)">{{
item.status
}}</span>
</div> </div>
<!-- 当月完成投资 --> <!-- 当月完成投资 -->
<div class="table-cell"> <div class="table-cell">
<template v-if="item.isEditing"> <template v-if="item.isEditing">
<el-input-number v-model.number="item.monthDoneAmount" :controls="false" style="width: 100%;" /> <el-input-number
v-model.number="item.monthDoneAmount"
:controls="false"
style="width: 100%"
/>
</template> </template>
<template v-else> <template v-else>
{{ item.monthDoneAmount }} {{ item.monthDoneAmount }}
@ -70,7 +129,11 @@
<!-- 累计完成投资 --> <!-- 累计完成投资 -->
<div class="table-cell"> <div class="table-cell">
<template v-if="item.isEditing"> <template v-if="item.isEditing">
<el-input-number v-model.number="item.totalDoneAmount" :controls="false" style="width: 100%;" /> <el-input-number
v-model.number="item.totalDoneAmount"
:controls="false"
style="width: 100%"
/>
</template> </template>
<template v-else> <template v-else>
{{ item.totalDoneAmount }} {{ item.totalDoneAmount }}
@ -80,7 +143,7 @@
<!-- 累计建成面积 --> <!-- 累计建成面积 -->
<div class="table-cell"> <div class="table-cell">
<template v-if="item.isEditing"> <template v-if="item.isEditing">
<el-input v-model="item.jzmqjc" style="width: 100%;" /> <el-input v-model="item.jzmqjc" style="width: 100%" />
</template> </template>
<template v-else> <template v-else>
{{ item.jzmqjc }} {{ item.jzmqjc }}
@ -90,7 +153,7 @@
<!-- 项目进展详情 --> <!-- 项目进展详情 -->
<div class="table-cell"> <div class="table-cell">
<template v-if="item.isEditing"> <template v-if="item.isEditing">
<el-input v-model="item.xmjzxq" style="width: 100%;" /> <el-input v-model="item.xmjzxq" style="width: 100%" />
</template> </template>
<template v-else> <template v-else>
{{ formattedXmjzxq(item.xmjzxq) }} {{ formattedXmjzxq(item.xmjzxq) }}
@ -99,10 +162,27 @@
<!-- 操作列 --> <!-- 操作列 -->
<div class="table-cell"> <div class="table-cell">
<el-button v-if="!item.isEditing" type="text" icon="el-icon-edit" @click="handleEdit(item)"></el-button> <el-button
<el-button v-else type="text" icon="el-icon-check" @click="handleSave(item)"></el-button> v-if="!item.isEditing"
<el-button type="text" icon="el-icon-delete" style="color: #F25353;" type="text"
@click="handleDelete(item)">删除</el-button> icon="el-icon-edit"
@click="handleEdit(item)"
>编辑</el-button
>
<el-button
v-else
type="text"
icon="el-icon-check"
@click="handleSave(item)"
>保存</el-button
>
<el-button
type="text"
icon="el-icon-delete"
style="color: #f25353"
@click="handleDelete(item)"
>删除</el-button
>
</div> </div>
</div> </div>
</div> </div>
@ -114,13 +194,22 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="进度月份" prop="month"> <el-form-item label="进度月份" prop="month">
<el-date-picker v-model="form.month" type="month" placeholder="选择月份" value-format="yyyy-MM" <el-date-picker
style="width: 100%;"></el-date-picker> v-model="form.month"
type="month"
placeholder="选择月份"
value-format="yyyy-MM"
style="width: 100%"
></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态" prop="status" style="display: none;"> <el-form-item label="状态" prop="status" style="display: none">
<el-select v-model="form.status" placeholder="请选择状态" style="width: 100%;"> <el-select
v-model="form.status"
placeholder="请选择状态"
style="width: 100%"
>
<el-option label="未更新" value="未更新"></el-option> <el-option label="未更新" value="未更新"></el-option>
<el-option label="已更新" value="已更新"></el-option> <el-option label="已更新" value="已更新"></el-option>
</el-select> </el-select>
@ -128,22 +217,36 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="当月完成投资" prop="monthDoneAmount"> <el-form-item label="当月完成投资" prop="monthDoneAmount">
<el-input v-model.number="form.monthDoneAmount" placeholder="请输入金额"></el-input> <el-input
v-model.number="form.monthDoneAmount"
placeholder="请输入金额"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="累计完成投资" prop="totalDoneAmount"> <el-form-item label="累计完成投资" prop="totalDoneAmount">
<el-input v-model.number="form.totalDoneAmount" placeholder="请输入金额"></el-input> <el-input
v-model.number="form.totalDoneAmount"
placeholder="请输入金额"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="截止目前累计建成面积(平方米)" prop="jzmqjc"> <el-form-item label="截止目前累计建成面积(平方米)" prop="jzmqjc">
<el-input v-model="form.jzmqjc" placeholder="请输入面积"></el-input> <el-input
v-model="form.jzmqjc"
placeholder="请输入面积"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="项目进展详情" prop="xmjzxq"> <el-form-item label="项目进展详情" prop="xmjzxq">
<el-input v-model="form.xmjzxq" type="textarea" :rows="3" placeholder="请输入详情"></el-input> <el-input
v-model="form.xmjzxq"
type="textarea"
:rows="3"
placeholder="请输入详情"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -155,6 +258,109 @@
</span> </span>
</el-dialog> </el-dialog>
<!-- 绑定项目的弹窗 -->
<el-dialog
title="绑定项目信息"
:visible.sync="bindDialogVisible"
width="50%"
>
<el-form label-width="200px">
<el-form-item label="当前系统产业项目名称:">
<el-input v-model="formDialog.name" style="width: 100%" disabled />
</el-form-item>
<el-form-item
label="绑定固投平台项目名称:"
required
v-if="!bindSuccess"
>
<el-input
v-model="bindForm.projectName"
placeholder="请输入绑定固投平台项目名称"
style="width: 84%"
:clearable="!bindSuccess"
:disabled="bindSuccess"
/>
<el-button
type="primary"
@click="searchProjects"
style="margin-left: 3%"
:disabled="bindSuccess"
>查询</el-button
>
</el-form-item>
<!-- 显示项目详情 -->
<div
v-if="selectedProject"
style="margin-top: 1rem; margin-left: 3rem; width: 100%"
>
<el-row :gutter="20">
<el-col :span="12">
<div class="grid-content">
<el-tooltip
:content="selectedProject.projectName || '暂无'"
placement="top"
:disabled="
!(
selectedProject.projectName &&
selectedProject.projectName.length > 20
)
"
>
<span
style="
display: inline-block;
max-width: 500px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
"
>
项目名称{{ selectedProject.projectName || "暂无" }}
</span>
</el-tooltip>
</div>
</el-col>
<el-col :span="12">
<div class="grid-content">
项目单位{{ selectedProject.companyName || "暂无" }}
</div>
</el-col>
<el-col :span="12" style="margin-top: 10px">
<div class="grid-content">
联系人{{ selectedProject.contactName || "暂无" }}
</div>
</el-col>
<el-col :span="12" style="margin-top: 10px">
<div class="grid-content">
联系电话{{ selectedProject.contactPhone || "暂无" }}
</div>
</el-col>
</el-row>
</div>
<!-- 已经绑定的 项目信息 -->
<el-form-item
label="固投平台项目名称:"
style="margin-top: 1rem"
v-if="bindSuccess"
>
<el-input
v-model="bindForm.projectName"
style="width: 100%"
disabled
/>
</el-form-item>
</el-form>
<span slot="footer">
<el-button @click="bindDialogVisible = false">取消</el-button>
<el-button
type="primary"
@click="confirmBinding"
:disabled="bindSuccess"
>确定</el-button
>
</span>
</el-dialog>
<!-- <div class="yuedu"> <!-- <div class="yuedu">
<yuedutouzi :xmId="xmId" /> <yuedutouzi :xmId="xmId" />
</div> --> </div> -->
@ -165,45 +371,64 @@
// //
import { getMonthInformationPage } from "@/api/ManageApi/index"; import { getMonthInformationPage } from "@/api/ManageApi/index";
// Apitwo // Apitwo
import { updateProjectProgress, deletemonth, addmonth } from "@/api/manageApitwo/index"; import {
updateProjectProgress,
deletemonth,
addmonth,
bindProject,
searchProjects,
} from "@/api/manageApitwo/index";
import { checkPermi, checkRole } from "@/utils/permission"; import { checkPermi, checkRole } from "@/utils/permission";
// //
import yuedutouzi from '@/views/components/analysis/yuedutouzi.vue' import yuedutouzi from "@/views/components/analysis/yuedutouzi.vue";
export default { export default {
components: { yuedutouzi }, components: { yuedutouzi },
props: { props: {
action: { action: {
type: String, type: String,
required: true required: true,
}, },
xmId: { xmId: {
type: Number, type: Number,
required: true required: true,
} },
basicInfo: {
type: Object,
required: true,
},
}, },
data() { data() {
return { return {
formDialog: {
name: "",
},
userInput: "", //
tableData: [], // tableData: [], //
dialogVisible: false, // dialogVisible: false, //
bindDialogVisible: false, //
bindText: "绑定项目", //
bindSuccess: false, //
bindForm: {
projectName: "",
},
selectedProject: null, //
form: { form: {
month: "", // month: "", //
status: "已更新", // status: "已更新", //
monthDoneAmount: "", // monthDoneAmount: "", //
totalDoneAmount: "", // totalDoneAmount: "", //
jzmqjc: "", // jzmqjc: "", //
xmjzxq: "" // xmjzxq: "", //
}, },
rules: { rules: {
month: [ month: [{ required: true, message: "请选择月份", trigger: "change" }],
{ required: true, message: "请选择月份", trigger: "change" }
],
monthDoneAmount: [ monthDoneAmount: [
{ required: true, message: "请输入当月完成投资", trigger: "blur" }, { required: true, message: "请输入当月完成投资", trigger: "blur" },
{ {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
if (value === '' || value === null) { if (value === "" || value === null) {
callback(new Error("请输入数字")); callback(new Error("请输入数字"));
} else if (isNaN(value)) { } else if (isNaN(value)) {
callback(new Error("只能输入数字")); callback(new Error("只能输入数字"));
@ -211,14 +436,14 @@ export default {
callback(); callback();
} }
}, },
trigger: 'blur' trigger: "blur",
} },
], ],
totalDoneAmount: [ totalDoneAmount: [
{ required: true, message: "请输入累计完成投资", trigger: "blur" }, { required: true, message: "请输入累计完成投资", trigger: "blur" },
{ {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
if (value === '' || value === null) { if (value === "" || value === null) {
callback(new Error("请输入数字")); callback(new Error("请输入数字"));
} else if (isNaN(value)) { } else if (isNaN(value)) {
callback(new Error("只能输入数字")); callback(new Error("只能输入数字"));
@ -226,23 +451,91 @@ export default {
callback(); callback();
} }
}, },
trigger: 'blur' trigger: "blur",
} },
] ],
} },
}; };
}, },
computed: { computed: {
formattedXmjzxq() { formattedXmjzxq() {
return (text) => { return (text) => {
return text === 'etry' ? '' : text; return text === "etry" ? "" : text;
};
},
},
watch: {
basicInfo: {
handler(newVal) {
if (newVal && newVal.name) {
this.formDialog = {
...this.formDialog,
name: newVal.name,
}; };
} }
}, },
immediate: true,
deep: true,
},
},
methods: { methods: {
checkPermi, checkPermi,
checkRole, checkRole,
async searchProjects() {
const userInput = this.bindForm.projectName.trim();
this.userInput = userInput;
if (!userInput) {
this.$message.warning("请输入项目名称");
this.selectedProject = null;
return;
}
try {
const res = await searchProjects({ projectName: userInput });
// res.data
if (
res.code === 200 &&
Array.isArray(res.data) &&
res.data.length > 0
) {
this.selectedProject = res.data[0];
} else {
this.selectedProject = null;
this.$message.warning("未查询到相关项目");
}
} catch (error) {
this.$message.error("查询失败,请稍后再试");
this.selectedProject = null;
}
},
async confirmBinding() {
if (!this.selectedProject) {
this.$message.warning("请先查询固投平台项目");
return;
}
try {
const res = await bindProject({
id: this.xmId,
projectId: this.selectedProject.projectId,
});
if (res.code === 200) {
this.$message.success("绑定成功");
this.bindText = `已绑定 ${this.selectedProject.projectName} 项目`;
this.bindForm.projectName = this.selectedProject.projectName;
this.bindSuccess = true;
this.bindDialogVisible = false;
} else {
this.$message.error(res.msg || "绑定失败");
}
} catch (error) {
this.$message.error("绑定失败,请稍后再试");
}
},
handleBindProject() {
this.bindForm.projectName = "";
this.selectedProject = null;
this.bindSuccess = false;
this.bindDialogVisible = true;
},
// //
handleAdd() { handleAdd() {
this.form = { this.form = {
@ -251,22 +544,22 @@ export default {
monthDoneAmount: "", monthDoneAmount: "",
totalDoneAmount: "", totalDoneAmount: "",
jzmqjc: "", jzmqjc: "",
xmjzxq: "" xmjzxq: "",
}; };
this.dialogVisible = true; this.dialogVisible = true;
}, },
// //
submitForm() { submitForm() {
this.$refs.formRef.validate(valid => { this.$refs.formRef.validate((valid) => {
if (valid) { if (valid) {
const payload = { const payload = {
...this.form, ...this.form,
xmId: this.xmId xmId: this.xmId,
}; };
addmonth(payload) addmonth(payload)
.then(response => { .then((response) => {
if (response.code === 200) { if (response.code === 200) {
this.$message.success("新增成功"); this.$message.success("新增成功");
this.dialogVisible = false; this.dialogVisible = false;
@ -275,7 +568,7 @@ export default {
this.$message.error(response.msg || "新增失败"); this.$message.error(response.msg || "新增失败");
} }
}) })
.catch(error => { .catch((error) => {
console.error("新增失败:", error); console.error("新增失败:", error);
this.$message.error("新增失败,请稍后再试"); this.$message.error("新增失败,请稍后再试");
}); });
@ -291,7 +584,7 @@ export default {
this.download( this.download(
"/gysl/projectProgress/export", "/gysl/projectProgress/export",
{ {
xmId: this.xmId xmId: this.xmId,
}, },
`月度信息${new Date().getTime()}.xlsx` `月度信息${new Date().getTime()}.xlsx`
); );
@ -304,13 +597,13 @@ export default {
if (Array.isArray(response.data) && response.data.length > 0) { if (Array.isArray(response.data) && response.data.length > 0) {
// status // status
this.tableData = response.data.map(item => ({ this.tableData = response.data.map((item) => ({
...item, ...item,
status: '已更新', status: "已更新",
monthDoneAmount: item.monthDoneAmount ?? 0, monthDoneAmount: item.monthDoneAmount ?? 0,
totalDoneAmount: item.totalDoneAmount ?? 0, totalDoneAmount: item.totalDoneAmount ?? 0,
jzmqjc: item.jzmqjc ?? '', jzmqjc: item.jzmqjc ?? "",
xmjzxq: item.xmjzxq ?? '' xmjzxq: item.xmjzxq ?? "",
})); }));
} else { } else {
this.tableData = []; this.tableData = [];
@ -324,8 +617,8 @@ export default {
// //
handleEdit(row) { handleEdit(row) {
// //
this.tableData.forEach(item => { this.tableData.forEach((item) => {
this.$set(item, 'isEditing', item.id === row.id); this.$set(item, "isEditing", item.id === row.id);
}); });
}, },
@ -338,14 +631,14 @@ export default {
monthDoneAmount: row.monthDoneAmount, monthDoneAmount: row.monthDoneAmount,
totalDoneAmount: row.totalDoneAmount, totalDoneAmount: row.totalDoneAmount,
jzmqjc: row.jzmqjc, jzmqjc: row.jzmqjc,
xmjzxq: row.xmjzxq xmjzxq: row.xmjzxq,
}; };
const response = await updateProjectProgress(updateData); const response = await updateProjectProgress(updateData);
if (response.code === 200) { if (response.code === 200) {
this.$message.success("更新成功"); this.$message.success("更新成功");
this.$set(row, 'isEditing', false); this.$set(row, "isEditing", false);
} else { } else {
this.$message.error(response.msg || "更新失败"); this.$message.error(response.msg || "更新失败");
} }
@ -360,7 +653,7 @@ export default {
this.$confirm("确定要删除此条月度进展记录吗?", "提示", { this.$confirm("确定要删除此条月度进展记录吗?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning",
}) })
.then(async () => { .then(async () => {
try { try {
@ -369,11 +662,13 @@ export default {
if (response.code === 200) { if (response.code === 200) {
this.$message({ this.$message({
type: "success", type: "success",
message: "删除成功!" message: "删除成功!",
}); });
// //
const index = this.tableData.findIndex(item => item.id === row.id); const index = this.tableData.findIndex(
(item) => item.id === row.id
);
if (index !== -1) { if (index !== -1) {
this.tableData.splice(index, 1); this.tableData.splice(index, 1);
} }
@ -388,7 +683,7 @@ export default {
.catch(() => { .catch(() => {
this.$message({ this.$message({
type: "info", type: "info",
message: "已取消删除" message: "已取消删除",
}); });
}); });
}, },
@ -403,11 +698,11 @@ export default {
default: default:
return ""; return "";
} }
} },
}, },
created() { created() {
this.getMonthInformationPage(); this.getMonthInformationPage();
} },
}; };
</script> </script>
@ -416,7 +711,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 100%; width: 100%;
background-color: #FFFFFF; background-color: #ffffff;
box-shadow: 0rem 0.13rem 0.63rem 0rem rgba(177, 177, 177, 0.1); box-shadow: 0rem 0.13rem 0.63rem 0rem rgba(177, 177, 177, 0.1);
border-radius: 0.5rem; border-radius: 0.5rem;
} }
@ -425,12 +720,12 @@ export default {
height: auto; height: auto;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: .5rem; padding: 0.5rem;
border-bottom: 1px solid #E5E5E5; border-bottom: 1px solid #e5e5e5;
} }
.topleft { .topleft {
width: 8rem; width: 50%;
height: 2rem; height: 2rem;
display: flex; display: flex;
gap: 0.4rem; gap: 0.4rem;
@ -442,29 +737,36 @@ export default {
height: 0.81rem; height: 0.81rem;
} }
.topleft span { .lefttitle {
font-family: aliregular; font-family: aliregular;
font-weight: 500; font-weight: 500;
font-size: 1rem; font-size: 1rem;
color: #3D424C; color: #3d424c;
line-height: 1rem; line-height: 1rem;
} }
.bind-project {
font-size: 0.88rem;
color: #1890ff;
cursor: pointer;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 200px;
}
.content { .content {
padding: 1rem 1rem 1rem 2rem; padding: 1rem 1rem 1rem 2rem;
} }
/* 自定义表格样式 */
.custom-table-container { .custom-table-container {
width: 100%; width: 100%;
border: 1px solid #EBEEF5; border: 1px solid #ebeef5;
overflow: hidden; overflow: hidden;
} }
.custom-table-header { .custom-table-header {
display: flex; display: flex;
background-color: #f5f7fa; background-color: #f5f7fa;
/* font-weight: bold; */
font-size: 0.88rem; font-size: 0.88rem;
padding: 0.5rem 0; padding: 0.5rem 0;
} }
@ -480,7 +782,7 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 0.5rem 0; padding: 0.5rem 0;
border-bottom: 1px solid #EBEEF5; border-bottom: 1px solid #ebeef5;
} }
.table-cell { .table-cell {
@ -498,9 +800,18 @@ export default {
color: #999; color: #999;
font-size: 0.875rem; font-size: 0.875rem;
} }
.yuedu{ .yuedu {
width: 100%; width: 100%;
height: 100%; height: 100%;
padding: 0rem 1rem 1rem 2rem; padding: 0rem 1rem 1rem 2rem;
} }
.grid-content {
min-height: 36px;
display: flex;
align-items: center; /* 垂直居中 */
font-size: 0.875rem;
color: #666;
padding: 8px 12px;
border-radius: 4px;
}
</style> </style>

@ -3,68 +3,26 @@
<!-- 顶部信息 --> <!-- 顶部信息 -->
<div class="containertop"> <div class="containertop">
<div class="topleft"> <div class="topleft">
<img src="@/assets/images/detailsicon/1.png" alt="" /> <img src="@/assets/images/detailsicon/1.png" alt="">
<span>规划信息</span> <span>规划信息</span>
</div> </div>
<div <div class="topright" v-if="action === 'fill' || !action || action === 'okay'">
class="topright" <el-button v-if="!isEditing" type="primary" size="medium" plain
v-if="action === 'fill' || !action || action === 'okay'" style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="edit">
> <img src="@/assets/images/detailsicon/icon-bj@2x.png" alt="编辑"
<el-button style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
v-if="!isEditing"
type="primary"
size="medium"
plain
style="
border: none;
background-color: rgba(43, 98, 241, 0.1);
color: #2b62f1;
"
@click="edit"
>
<img
src="@/assets/images/detailsicon/icon-bj@2x.png"
alt="编辑"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px"
/>
编辑 编辑
</el-button> </el-button>
<el-button <el-button v-else type="primary" size="medium" plain
v-else style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="save">
type="primary" <img src="@/assets/images/detailsicon/icon-bj@2x.png" alt="保存"
size="medium" style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
plain
style="
border: none;
background-color: rgba(43, 98, 241, 0.1);
color: #2b62f1;
"
@click="save"
>
<img
src="@/assets/images/detailsicon/icon-bj@2x.png"
alt="保存"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px"
/>
保存 保存
</el-button> </el-button>
<el-button <el-button type="primary" size="medium" plain v-if="checkRole(['admin', 'common','gov'])"
type="primary" style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleExport">
size="medium" <img src="@/assets/images/detailsicon/icon-dc@2x.png" alt="导出"
plain style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
v-if="checkRole(['admin', 'common', 'gov'])"
style="
border: none;
background-color: rgba(43, 98, 241, 0.1);
color: #2b62f1;
"
@click="handleExport"
>
<img
src="@/assets/images/detailsicon/icon-dc@2x.png"
alt="导出"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px"
/>
导出 导出
</el-button> </el-button>
</div> </div>
@ -75,200 +33,100 @@
<el-descriptions class="margin-top" :column="4" border> <el-descriptions class="margin-top" :column="4" border>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span>总用地面积(平方米) <span style="color: red;">*</span>
总用地面积(平方米)
</template> </template>
<el-input <el-input v-if="isEditing" v-model="form.zydmj" style="width: 100%;"></el-input>
v-if="isEditing"
v-model="form.zydmj"
style="width: 100%"
/>
<span v-else>{{ form.zydmj }}</span> <span v-else>{{ form.zydmj }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span>容积率 <span style="color: red;">*</span>
容积率
</template> </template>
<el-input v-if="isEditing" v-model="form.rjl" style="width: 100%" /> <el-input v-if="isEditing" v-model="form.rjl" style="width: 100%;"></el-input>
<span v-else>{{ form.rjl }}</span> <span v-else>{{ form.rjl }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span>总建筑面积平方米 <span style="color: red;">*</span>
总建筑面积平方米
</template> </template>
<el-input <el-input v-if="isEditing" v-model="form.zjzmj" style="width: 100%;"></el-input>
v-if="isEditing"
v-model="form.zjzmj"
style="width: 100%"
/>
<span v-else>{{ form.zjzmj }}</span> <span v-else>{{ form.zjzmj }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="标准层建筑面积(平方米)">
<el-descriptions-item> <el-input v-if="isEditing" v-model="form.bzcjzmj" style="width: 100%;"></el-input>
<template slot="label">
<span style="color: red">*</span>标准层建筑面积平方米
</template>
<el-input
v-if="isEditing"
v-model="form.bzcjzmj"
style="width: 100%"
/>
<span v-else>{{ form.bzcjzmj }}</span> <span v-else>{{ form.bzcjzmj }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="计容积率建筑面积(平方米)">
<el-descriptions-item> <el-input v-if="isEditing" v-model="form.jrjljzmj" style="width: 100%;"></el-input>
<template slot="label">
<span style="color: red">*</span>计容积率建筑面积(平方米)
</template>
<el-input
v-if="isEditing"
v-model="form.jrjljzmj"
style="width: 100%"
/>
<span v-else>{{ form.jrjljzmj }}</span> <span v-else>{{ form.jrjljzmj }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="建筑密度(%)">
<el-descriptions-item> <el-input v-if="isEditing" v-model="form.jzmd" style="width: 100%;"></el-input>
<template slot="label">
<span style="color: red">*</span>建筑密度(%)
</template>
<el-input
v-if="isEditing"
v-model="form.jzmd"
style="width: 100%"
/>
<span v-else>{{ form.jzmd }}</span> <span v-else>{{ form.jzmd }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="绿地率(%)">
<el-descriptions-item> <el-input v-if="isEditing" v-model="form.ldl" style="width: 100%;"></el-input>
<template slot="label">
<span style="color: red">*</span>绿地率(%)
</template>
<el-input v-if="isEditing" v-model="form.ldl" style="width: 100%" />
<span v-else>{{ form.ldl }}</span> <span v-else>{{ form.ldl }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span>建筑栋数 <span style="color: red;">*</span>
建筑栋数
</template> </template>
<el-input <el-input v-if="isEditing" v-model="form.jzds" style="width: 100%;"></el-input>
v-if="isEditing"
v-model="form.jzds"
style="width: 100%"
/>
<span v-else>{{ form.jzds }}</span> <span v-else>{{ form.jzds }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="地上建筑面积(平方米)">
<el-descriptions-item> <el-input v-if="isEditing" v-model="form.dsjzmj" style="width: 100%;"></el-input>
<template slot="label">
<span style="color: red">*</span>地上建筑面积(平方米)
</template>
<el-input
v-if="isEditing"
v-model="form.dsjzmj"
style="width: 100%"
/>
<span v-else>{{ form.dsjzmj }}</span> <span v-else>{{ form.dsjzmj }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="地下建筑面积(平方米)">
<el-descriptions-item> <el-input v-if="isEditing" v-model="form.dxjzmj" style="width: 100%;"></el-input>
<template slot="label">
<span style="color: red">*</span>地下建筑面积(平方米)
</template>
<el-input
v-if="isEditing"
v-model="form.dxjzmj"
style="width: 100%"
/>
<span v-else>{{ form.dxjzmj }}</span> <span v-else>{{ form.dxjzmj }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span>最高建筑层数 <span style="color: red;">*</span>
最高建筑层数
</template> </template>
<el-input <el-input v-if="isEditing" v-model="form.zgjzcs" style="width: 100%;"></el-input>
v-if="isEditing"
v-model="form.zgjzcs"
style="width: 100%"
/>
<span v-else>{{ form.zgjzcs }}</span> <span v-else>{{ form.zgjzcs }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="最高建筑高度(米)">
<el-descriptions-item> <el-input v-if="isEditing" v-model="form.zgjzgd" style="width: 100%;"></el-input>
<template slot="label">
<span style="color: red">*</span>最高建筑高度()
</template>
<el-input
v-if="isEditing"
v-model="form.zgjzgd"
style="width: 100%"
/>
<span v-else>{{ form.zgjzgd }}</span> <span v-else>{{ form.zgjzgd }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="机动车停车位(辆)">
<el-descriptions-item> <el-input v-if="isEditing" v-model="form.jdctcw" style="width: 100%;"></el-input>
<template slot="label">
<span style="color: red">*</span>机动车停车位()
</template>
<el-input
v-if="isEditing"
v-model="form.jdctcw"
style="width: 100%"
/>
<span v-else>{{ form.jdctcw }}</span> <span v-else>{{ form.jdctcw }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="非机动车停车位(辆)">
<el-descriptions-item> <el-input v-if="isEditing" v-model="form.fjdctcw" style="width: 100%;"></el-input>
<template slot="label">
<span style="color: red">*</span>非机动车停车位()
</template>
<el-input
v-if="isEditing"
v-model="form.fjdctcw"
style="width: 100%"
/>
<span v-else>{{ form.fjdctcw }}</span> <span v-else>{{ form.fjdctcw }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<span style="color: red">*</span>防火等级 <span style="color: red;">*</span>
防火等级
</template> </template>
<el-input <el-input v-if="isEditing" v-model="form.fhdj" style="width: 100%;"></el-input>
v-if="isEditing"
v-model="form.fhdj"
style="width: 100%"
/>
<span v-else>{{ form.fhdj }}</span> <span v-else>{{ form.fhdj }}</span>
</el-descriptions-item> </el-descriptions-item>
<!-- 非必填 -->
<el-descriptions-item label="规划文件"> <el-descriptions-item label="规划文件">
<div v-if="isEditing"> <div v-if="isEditing">
<span v-if="form.ghwj">{{ form.ghwj.split("/").pop() }}</span> <span v-if="form.ghwj">{{ form.ghwj.split('/').pop() }}</span>
<el-tooltip <el-tooltip class="item" effect="dark" content="支持pdf或word文件大小不得超过50MB" placement="top-start">
class="item" <el-button type="text" icon="el-icon-upload" @click="showFileDialog">
effect="dark"
content="支持pdf或word文件大小不得超过50MB"
placement="top-start"
>
<el-button
type="text"
icon="el-icon-upload"
@click="showFileDialog"
>
<span v-if="form.ghwj"></span> <span v-if="form.ghwj"></span>
<span v-else></span> <span v-else></span>
</el-button> </el-button>
</el-tooltip> </el-tooltip>
</div> </div>
<span v-else> <span v-else>
<a v-if="form.ghwj" :href="form.ghwj" target="_blank">{{ <a v-if="form.ghwj" :href="form.ghwj" target="_blank">{{ form.ghwj.split('/').pop() }}</a>
form.ghwj.split("/").pop()
}}</a>
<span v-else></span> <span v-else></span>
</span> </span>
</el-descriptions-item> </el-descriptions-item>
@ -280,16 +138,14 @@
<FileUpload @file-uploaded="handleFileUploaded" v-model="form.ghwj" /> <FileUpload @file-uploaded="handleFileUploaded" v-model="form.ghwj" />
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false" <el-button type="primary" @click="dialogVisible = false"> </el-button>
> </el-button
>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import FileUpload from "@/components/FileUpload2"; import FileUpload from '@/components/FileUpload2'
import { checkPermi, checkRole } from "@/utils/permission"; import { checkPermi, checkRole } from "@/utils/permission";
export default { export default {
@ -297,20 +153,20 @@ export default {
props: { props: {
size: { size: {
type: String, type: String,
default: "", default: ''
}, },
planInfo: { planInfo: {
type: Object, type: Object,
required: true, required: true
}, },
xmId: { xmId: {
type: Number, type: Number,
required: true, required: true
}, },
action: { action: {
type: String, type: String,
required: true, required: true
}, }
}, },
data() { data() {
return { return {
@ -335,15 +191,17 @@ export default {
jdctcw: 0, jdctcw: 0,
fjdctcw: 0, fjdctcw: 0,
fhdj: null, fhdj: null,
ghwj: "", ghwj: '',
createBy: "", createBy: '',
createId: 0, createId: 0,
createTime: null, createTime: null,
updateBy: "", updateBy: '',
updateId: 0, updateId: 0,
updateTime: null, updateTime: null,
}, },
rules: {}, rules: {
}
}; };
}, },
watch: { watch: {
@ -352,8 +210,8 @@ export default {
this.form = { ...newVal }; this.form = { ...newVal };
}, },
immediate: true, immediate: true,
deep: true, deep: true
}, }
}, },
methods: { methods: {
checkPermi, checkPermi,
@ -363,7 +221,7 @@ export default {
this.download( this.download(
"/gysl/planInformation/export", "/gysl/planInformation/export",
{ {
xmId: this.form.xmId, xmId: this.form.xmId
}, },
`规划信息${new Date().getTime()}.xlsx` `规划信息${new Date().getTime()}.xlsx`
); );
@ -371,39 +229,24 @@ export default {
// //
edit() { edit() {
this.isEditing = true; this.isEditing = true;
document.addEventListener("click", this.handleClickOutside); document.addEventListener('click', this.handleClickOutside);
}, },
// //
save() { save() {
if (this.validateForm()) { if (this.validateForm()) {
const formData = this.prepareFormData(this.form); const formData = this.prepareFormData(this.form);
// //
this.$emit("update-data", formData); this.$emit('update-data', formData);
this.isEditing = false; this.isEditing = false;
document.removeEventListener("click", this.handleClickOutside); document.removeEventListener('click', this.handleClickOutside);
} }
}, },
// //
validateForm() { validateForm() {
const requiredFields = [ const requiredFields = ['zydmj', 'rjl', 'zjzmj', 'jzds', 'zgjzcs', 'fhdj'];
"zydmj",
"rjl",
"zjzmj",
"bzcjzmj",
"jrjljzmj",
"jzmd",
"ldl",
"jzds",
"dsjzmj",
"dxjzmj",
"zgjzcs",
"jdctcw",
"fjdctcw",
"fhdj",
];
for (const field of requiredFields) { for (const field of requiredFields) {
if (!this.form[field]) { if (!this.form[field]) {
this.$message.error("请填写完整的规划信息"); this.$message.error('请填写完整的规划信息');
return false; return false;
} }
} }
@ -413,12 +256,12 @@ export default {
prepareFormData(formData) { prepareFormData(formData) {
return { return {
...formData, ...formData,
createBy: "", createBy: '',
createId: 0, createId: 0,
createTime: "", createTime: '',
updateBy: "", updateBy: '',
updateId: 0, updateId: 0,
updateTime: "", updateTime: ''
}; };
}, },
// //
@ -431,14 +274,11 @@ export default {
}, },
handleClickOutside(event) { handleClickOutside(event) {
const saveButton = this.$el.querySelector('.el-button:contains("保存")'); const saveButton = this.$el.querySelector('.el-button:contains("保存")');
if ( if (!this.$el.contains(event.target) || saveButton.contains(event.target)) {
!this.$el.contains(event.target) ||
saveButton.contains(event.target)
) {
return; return;
} }
}, }
}, }
}; };
</script> </script>
@ -447,7 +287,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 100%; width: 100%;
background-color: #ffffff; background-color: #FFFFFF;
box-shadow: 0rem 0.13rem 0.63rem 0rem rgba(177, 177, 177, 0.1); box-shadow: 0rem 0.13rem 0.63rem 0rem rgba(177, 177, 177, 0.1);
border-radius: 0.5rem 0.5rem 0.5rem 0.5rem; border-radius: 0.5rem 0.5rem 0.5rem 0.5rem;
} }
@ -461,9 +301,9 @@ export default {
height: auto; height: auto;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 0.7rem 0; padding: .7rem 0;
padding: 0.5rem; padding: .5rem;
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #E5E5E5;
} }
.topleft { .topleft {
@ -485,7 +325,7 @@ export default {
font-family: aliregular; font-family: aliregular;
font-weight: 500; font-weight: 500;
font-size: 1rem; font-size: 1rem;
color: #3d424c; color: #3D424C;
line-height: 1rem; line-height: 1rem;
text-align: right; text-align: right;
font-style: normal; font-style: normal;

@ -87,7 +87,7 @@
</div> </div>
<!-- 月度进展信息 --> <!-- 月度进展信息 -->
<div id="months"> <div id="months">
<Months :action="action" :xmId="projectId"></Months> <Months :action="action" :xmId="projectId" :basicInfo="basicInformation"></Months>
</div> </div>
<!-- 企业入驻信息 --> <!-- 企业入驻信息 -->
<div id="companyenter"> <div id="companyenter">

@ -81,7 +81,7 @@
</div> </div>
<!-- 月度进展信息 --> <!-- 月度进展信息 -->
<div id="months"> <div id="months">
<Months :action="action" :xmId="projectId"></Months> <Months :action="action" :xmId="projectId" :basicInfo="basicInformation"></Months>
</div> </div>
<!-- 企业入驻信息 --> <!-- 企业入驻信息 -->
<div id="companyenter"> <div id="companyenter">
@ -469,34 +469,20 @@ export default {
}); });
// basicInformation // basicInformation
const basicRequiredFields = [ const basicRequiredFields = [
"acceptanceTime", "name",
"xmfrdwxz",
"nature",
"ztze",
"ssgnq",
"begainTime", "begainTime",
"endTime", "endTime",
"fj", "xzfl",
"introduction",
"issuingTime",
"jsdd",
"jsjd",
"jsms", "jsms",
"label",
"latitude",
"longitude",
"name",
"nature",
"phone",
"prioritize",
"projectLeader", "projectLeader",
"sgdw", "phone",
"sjdw",
"ssgnq",
"tyshxydm",
"unitIntroduction", "unitIntroduction",
"xmfrdwxz", "introduction",
"xzfl", "tyshxydm",
"ztze",
"jhtze",
"ml",
"xfcy",
]; ];
const basicMissingFields = basicRequiredFields.filter( const basicMissingFields = basicRequiredFields.filter(
(field) => !this.basicInformation[field] (field) => !this.basicInformation[field]
@ -536,16 +522,8 @@ export default {
"zydmj", "zydmj",
"rjl", "rjl",
"zjzmj", "zjzmj",
"bzcjzmj",
"jrjljzmj",
"jzmd",
"ldl",
"jzds", "jzds",
"dsjzmj",
"dxjzmj",
"zgjzcs", "zgjzcs",
"jdctcw",
"fjdctcw",
"fhdj", "fhdj",
]; ];
const planMissingFields = planRequiredFields.filter( const planMissingFields = planRequiredFields.filter(
@ -557,8 +535,6 @@ export default {
return; return;
} }
// //
const submitData = this.prepareSubmitData(); const submitData = this.prepareSubmitData();
// console.log(':', JSON.stringify(submitData, null, 2)); // console.log(':', JSON.stringify(submitData, null, 2));

Loading…
Cancel
Save