明树Git Lab

Commit 09e7c682 authored by zhanghan's avatar zhanghan

责任书书写完成

parent c76a6f19
Pipeline #108765 passed with stage
in 19 seconds
......@@ -286,6 +286,9 @@
font-size: 12px;
color: #969696;
}
.el-form-item {
margin-bottom: 4px;
}
.el-form-item__label {
min-width: 100px;
font-weight: 400;
......
......@@ -309,6 +309,9 @@
}
// ==========================设置定制化样式 start ==========================
.el-form-item {
margin-bottom: 4px;
}
.el-form-item__label {
min-width: 100px;
font-weight: 400;
......
......@@ -4,108 +4,128 @@
<routerBack />
<div class="tabs-content">
<el-tabs v-model="pageActiveName" type="border-card">
<el-tab-pane label="投资目标责任书" name="投资目标责任书">
<div class="project-tab-content">
<div class="tab-content">
<el-form :model="formData" :label-width="180" :disabled="isPreview">
<el-collapse v-model="ndActiveCollapse">
<!-- 基本信息 -->
<el-collapse-item title="基本信息" name="基本信息">
<el-row :gutter="20">
<el-form
:model="formData"
:label-width="130"
:disabled="isPreview"
>
<el-collapse v-model="activeCollapse">
<el-collapse-item
title="责任书基本信息"
name="责任书基本信息"
>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="责任书类型">
<el-tree-select
v-model="formData.zrslx"
:data="zrslxList"
node-key="key"
:props="zrslxProps"
placeholder="请选择"
render-after-expand
@node-click="changeZrslx"
>
<template #label>
<span>{{ selectedFullPath }}</span>
</template>
</el-tree-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目信息" required>
<el-select
v-model="formData.projectId"
placeholder="请选择"
no-data-text="暂无数据"
@change="changeProject"
>
<el-option
v-for="item in projectList"
:key="item.id"
:label="item.projectName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目名称">
<el-input v-model="formData.nd_xmxx_projectName" />
<el-input v-model="formData.projectName" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="决策主体">
<el-input v-model="formData.nd_xmxx_jczt" />
<el-input v-model="formData.jczt" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="监管单位">
<el-select
v-model="formData.nd_xmxx_jgdw"
placeholder="请选择"
clearable
>
<el-option
v-for="item in jgdwList"
:key="item.key"
:label="item.name"
:value="item.key"
/>
</el-select>
<el-input v-model="formData.jgdw" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="签订单位">
<el-select
v-model="formData.nd_xmxx_qddw"
placeholder="请选择"
clearable
>
<el-option
v-for="item in qddwList"
:key="item.key"
:label="item.name"
:value="item.key"
/>
</el-select>
<el-input v-model="formData.qddw" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="24">
<el-form-item label="投资主体">
<el-input v-model="formData.nd_xmxx_tzzt" />
<el-input v-model="formData.tzzt" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="24">
<el-form-item label="项目地点">
<el-input v-model="formData.nd_xmxx_xmdd" />
<el-input v-model="formData.xmdd" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="建设期(月份)">
<el-input-number
v-model="formData.nd_xmxx_jsq"
v-model="formData.jsqyf"
:min="0"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="项目投产时间">
<el-date-picker
v-model="formData.nd_xmxx_xmccsj"
v-model="formData.xmtcsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营期">
<el-col :span="8">
<el-form-item label="运营期(年)">
<el-input-number
v-model="formData.nd_xmxx_yyq"
v-model="formData.yyq"
:min="0"
controls-position="right"
/>
<span style="margin-left: 5px"></span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="计划竣工时间">
<el-date-picker
v-model="formData.nd_xmxx_jhgcsj"
v-model="formData.jhjgsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="决策时间">
<el-date-picker
v-model="formData.nd_xmxx_jcsj"
v-model="formData.jcsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
......@@ -115,7 +135,7 @@
<el-col :span="24">
<el-form-item label="项目内容">
<el-input
v-model="formData.nd_xmxx_xmnr"
v-model="formData.xmnr"
type="textarea"
:autosize="{ minRows: 3, maxRows: 6 }"
/>
......@@ -124,16 +144,16 @@
<el-col :span="24">
<el-form-item label="项目主要方案内容">
<el-input
v-model="formData.nd_xmxx_xmzyfanr"
v-model="formData.xmzyfanr"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="全投资财务内部收益率%(税前)">
<el-input-number
v-model="formData.nd_xmxx_qtzwsyln"
v-model="formData.qtzcwnbsyl"
:min="0"
:max="100"
:precision="2"
......@@ -141,10 +161,10 @@
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="资本金财务内部收益率%(税后)">
<el-input-number
v-model="formData.nd_xmxx_zjbwsylh"
v-model="formData.zbjcwnbsyl"
:min="0"
:max="100"
:precision="2"
......@@ -152,19 +172,19 @@
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="签订日期">
<el-date-picker
v-model="formData.nd_xmxx_qdrq"
v-model="formData.qdrq"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="填报人">
<el-input v-model="formData.nd_xmxx_tbr" />
<el-input v-model="formData.tbr" />
</el-form-item>
</el-col>
</el-row>
......@@ -174,7 +194,10 @@
<el-collapse-item title="造价信息" name="造价信息">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="项目总投资(万元)">
<el-form-item
label-width="180"
label="项目总投资(万元)"
>
<el-input-number
v-model="formData.xmztz"
:min="0"
......@@ -184,7 +207,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建安费(万元)">
<el-form-item label-width="180" label="建安费(万元)">
<el-input-number
v-model="formData.jaf"
:min="0"
......@@ -194,7 +217,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="设备及工具购置费(万元)">
<el-form-item
label-width="180"
label="设备及工具购置费(万元)"
>
<el-input-number
v-model="formData.sbjgjgzf"
:min="0"
......@@ -204,7 +230,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地相关费用(万元)">
<el-form-item
label-width="180"
label="土地相关费用(万元)"
>
<el-input-number
v-model="formData.tdxgfy"
:min="0"
......@@ -214,7 +243,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建设单位管理费(万元)">
<el-form-item
label-width="180"
label="建设单位管理费(万元)"
>
<el-input-number
v-model="formData.jsdwglf"
:min="0"
......@@ -224,7 +256,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="其他建设项目管理费(万元)">
<el-form-item
label-width="180"
label="其他建设项目管理费(万元)"
>
<el-input-number
v-model="formData.qtjsxmglf"
:min="0"
......@@ -234,7 +269,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="其他费用(万元)">
<el-form-item
label-width="180"
label="其他费用(万元)"
>
<el-input-number
v-model="formData.qtfy"
:min="0"
......@@ -244,7 +282,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建方建安费(万元)">
<el-form-item
label-width="180"
label="能建方建安费(万元)"
>
<el-input-number
v-model="formData.njfjaf"
:min="0"
......@@ -254,7 +295,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建设期利息(万元)">
<el-form-item
label-width="180"
label="建设期利息(万元)"
>
<el-input-number
v-model="formData.jsqlx"
:min="0"
......@@ -265,21 +309,196 @@
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="年度" name="年度">
<el-row>
<el-col :span="8">
<el-form-item label="年度" required>
<el-date-picker
v-model="formData.niandu"
type="year"
format="YYYY"
value-format="YYYY"
placeholder="请选择编制年度"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title="投融资与运营指标(万元)"
name="投融资与运营指标(万元)"
>
<DynamicTable
:columns="transferColumns1"
:disabled="isPreview"
v-model="formData.trzyyyzb"
<el-table
:data="zrsjtzbData"
style="width: 100%"
empty-text="暂无数据"
border
show-summary
:summary-method="getSummaries"
>
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="zbmc" label="指标名称" />
<el-table-column
prop="zbmbz"
label="指标目标值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.zbmbz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="khjzf"
label="考核基准分"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.khjzf"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="sfsy"
label="是否适用"
width="90"
>
<template #default="scope">
<el-switch
v-model="scope.row.sfsy"
inline-prompt
active-value="1"
active-text="是"
inactive-value="2"
inactive-text="否"
/>
</template>
</el-table-column>
<el-table-column prop="khsm" label="考核说明">
<template #default="scope">
<el-input
v-model="scope.row.khsm"
type="textarea"
/>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="批复意见落实情况"
name="批复意见落实情况"
>
<div class="tab-handle">
<el-button
type="primary"
size="small"
@click="addPfyjlsqk"
>新增</el-button
>
</div>
<el-table
:data="pfyjlsqkData"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" width="60" />
<el-table-column prop="lx" label="类型">
<template #default="scope">
<el-select
v-model="scope.row.lx"
placeholder="请选择"
no-data-text="暂无数据"
>
<el-option
v-for="item in pfyjlxList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="pfyj" label="批复意见">
<template #default="scope">
<el-input
v-model="scope.row.pfyj"
type="textarea"
/>
</template>
</el-table-column>
<el-table-column prop="jzf" label="基准分">
<template #default="scope">
<el-input-number
v-model="scope.row.jzf"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column prop="lsqk" label="落实情况">
<template #default="scope">
<el-select
v-model="scope.row.lsqk"
placeholder="请选择"
no-data-text="暂无数据"
>
<el-option
v-for="item in lsqkList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="lssj" label="落实时间">
<template #default="scope">
<el-date-picker
v-model="scope.row.lssj"
type="datetime"
placeholder="请选择"
value-format="YYYY-MM-DD HH:mm:ss"
/>
</template>
</el-table-column>
<el-table-column
prop="lsqkjtsm"
label="落实情况具体说明"
>
<template #default="scope">
<el-input
v-model="scope.row.lsqkjtsm"
type="textarea"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="60">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deletePfyjlsqk(scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="颠覆性影响的边界条件"
name="颠覆性影响的边界条件"
title="其他对项目决策与实施有颠覆性影响的边界条件"
name="其他对项目决策与实施有颠覆性影响的边界条件"
>
<DynamicTable
:columns="transferColumns2"
......@@ -289,8 +508,8 @@
</el-collapse-item>
<el-collapse-item
title="市场开拓相关指标"
name="市场开拓相关指标"
title="项目实施过程中其他提高项目投资收益或带动公司市场开拓的情况"
name="项目实施过程中其他提高项目投资收益或带动公司市场开拓的情况"
>
<DynamicTable
:columns="transferColumns2"
......@@ -298,28 +517,17 @@
v-model="formData.xmssgczqttgxmtzsylhddgsscktqk"
/>
</el-collapse-item>
<!-- 签订信息 -->
<el-collapse-item title="签订信息" name="签订信息">
<el-row :gutter="20">
<el-col :span="12">
<el-row :gutter="24">
<el-col :span="6">
<el-form-item label="签订状态">
<el-input v-model="formData.qdzt" />
<!-- <el-select
<CommonSelector
v-model="formData.qdzt"
placeholder="请选择"
clearable
>
<el-option
v-for="item in qdztList"
:key="item.key"
:label="item.name"
:value="item.key"
/>
</el-select> -->
dictName="mbzrsqdqk"
></CommonSelector>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="是否按时签订">
<CommonSelector
v-model="formData.sfasqd"
......@@ -328,13 +536,16 @@
></CommonSelector>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="签订单位">
<el-input v-model="formData.qddw" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="已盖章签字的运营阶段目标责任书附件">
<el-form-item
style="padding: 8px 0"
:label="`已盖章签字的${formData?.niandu}年度目标责任书附件`"
>
<FileUploader
v-model="formData.ygzqzdyyjdmbzrsfj"
></FileUploader>
......@@ -346,6 +557,154 @@
</el-form>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="全生命周期管理策划" name="全生命周期管理策划">
<div class="project-tab-content">
<div class="tab-content">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="策划文件">
<el-upload
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:disabled="isPreview"
:on-success="addChwjFile"
>
<el-button :disabled="isPreview" type="default"
>上传</el-button
>
</el-upload>
<el-button
type="default"
@click="multiDeleteChwj"
:disabled="!chwjSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-form-item label=" ">
<el-table
:data="chwjData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="chwjSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间">
<template #default="{ row }">
<span>{{
moment(row.updatedAt).format(
"YYYY-MM-DD HH:mm:SS",
)
}}</span>
</template>
</el-table-column>
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, index }">
<span
class="always-click"
@click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteChwj(index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="年度经营管理责任书" name="年度经营管理责任书">
<div class="project-tab-content">
<div class="tab-content">
<el-form
:model="formData"
:label-width="100"
:disabled="isPreview"
>
<el-col :span="24">
<el-form-item label="责任书文件">
<el-upload
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addZrsFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteZrs"
:disabled="!zrsSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-form-item label="">
<el-table
:data="zrsData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="zrsSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间">
<template #default="{ row, index }">
<span>{{
moment(row.updatedAt).format(
"YYYY-MM-DD HH:mm:SS",
)
}}</span>
</template>
</el-table-column>
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, index }">
<span
class="always-click"
@click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteZrs(index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-form>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="add-project-header">
<div class="header-left"></div>
......@@ -430,25 +789,22 @@ const transferColumns2 = ref([
// 表单数据
const pageActiveName = ref("全生命周期责任书");
const pageActiveName = ref("投资目标责任书");
let token = ref("");
token.value = userStore.authToken || sessionStorage.getItem("authToken") || "";
import routerBack from "@/components/common/routerBack.vue";
const activeCollapse = reactive([
"责任书基本信息",
"责任书具体指标",
"批复意见落实情况",
]);
const ndActiveCollapse = reactive([
"基本信息",
"投融资与运营指标(万元)",
"市场开拓相关指标",
"颠覆性影响的边界条件",
"造价信息",
"年度",
"投融资与运营指标(万元)",
"其他对项目决策与实施有颠覆性影响的边界条件",
"项目实施过程中其他提高项目投资收益或带动公司市场开拓的情况",
"批复意见落实情况",
"签订信息",
]);
let formData = reactive({
qtdxmjcyssydfxyxdbj: [],
xmssgczqttgxmtzsylhddgsscktqk: [],
......@@ -622,227 +978,515 @@ const multiDeleteZrs = () => {
})
.catch(() => {});
};
// 责任书具体指标
// 投融资与运营指标(万元)
let zrsjtzbData = ref([
{
xh: "1",
zbmc: "项目总投资(亿元)",
zbmc: "项目总投资",
},
{
xh: "1.1",
zbmc: "建安费用(亿元)",
zbmc: "建安费用",
},
{
xh: "2",
zbmc: "项目带动工程收益(亿元)",
zbmc: "项目带动工程收益",
},
]);
let qsmzqZrs = [
{
xh: "1",
zbmc: "项目总投资(亿元)",
},
{
xh: "1.1",
zbmc: "建安费用(亿元)",
zbmc: "项目总投资 ",
},
{
xh: "2",
zbmc: "项目带动工程收益(亿元)",
},
{
xh: "2.1",
zbmc: "工程收益率(%)",
zbmc: "建安费用不低于 ",
},
{
xh: "3",
zbmc: "政府补助资金到位(亿元)",
zbmc: "征地拆迁费不高于 ",
},
{
xh: "4",
zbmc: "我方资本金投入(亿元)",
zbmc: "项目带动工程收益 ",
},
{
xh: "5",
zbmc: "我方负责引入的股权融资(亿元)",
zbmc: "工程收益率 (%)",
},
{
xh: "6",
zbmc: "项目融资额(亿元)",
},
{
xh: "6.1",
zbmc: "融资利率(%)",
zbmc: "政府补助资金到位 ",
},
{
xh: "7",
zbmc: "项目实现营业收入累计(亿元)",
zbmc: "我方资本金投入 ",
},
{
xh: "8",
zbmc: "项目经营净现金流累计(亿元)",
zbmc: "我方负责引入的股权融资 ",
},
{
xh: "9",
zbmc: "项目全投资财务内部收益率(税前)(%)",
zbmc: "股权融资成本 (%)",
},
{
xh: "10",
zbmc: "项目资本金财务内部收益率(%)",
zbmc: "项目融资额 ",
},
{
xh: "11",
zbmc: "项目竣工投产时间(年月)",
zbmc: "融资利率 (%)",
},
];
let jsqZrs = [
{
xh: "1",
zbmc: "项目总投资 (亿元)",
xh: "12",
zbmc: "项目实现营业收入累计 ",
},
{
xh: "1.1",
zbmc: "建安费用(亿元)",
xh: "13",
zbmc: "利润总额累计 ",
},
{
xh: "2",
zbmc: "项目带动工程收益 (亿元)",
xh: "14",
zbmc: "项目经营净现金流累计 ",
},
{
xh: "2.1",
zbmc: "工程收益率(%)",
xh: "15",
zbmc: "项目全投资财务内部收益率 (税前%)",
},
{
xh: "3",
zbmc: "建设期政府补助资金(亿元)",
xh: "16",
zbmc: "回收额 ",
},
{
xh: "4",
zbmc: "我方资本金投入(亿元)",
xh: "17",
zbmc: "投资回报率 (%)",
},
{
xh: "5",
zbmc: "我方负责引入的股权融资(亿元)",
xh: "18",
zbmc: "政府应付 ",
},
{
xh: "5.1",
zbmc: "股权融资成本(%)",
xh: "19",
zbmc: "政府欠付 (逾期金额) ",
},
{
xh: "6",
zbmc: "项目建设期融资额(亿元)",
xh: "20",
zbmc: "使用者应付 ",
},
{
xh: "21",
zbmc: "使用者欠付 ",
},
{
xh: "22",
zbmc: "分项销售收入 (销售收入) ",
},
{
xh: "23",
zbmc: "补贴收入 (政府补贴) ",
},
{
xh: "24",
zbmc: "销售成本 (销售费用) ",
},
{
xh: "25",
zbmc: "经营活动产生净现金流 ",
},
{
xh: "26",
zbmc: "筹资活动产生净现金流 ",
},
{
xh: "27",
zbmc: "累计净现金流合计 ",
},
{
xh: "28",
zbmc: "投资活动产生净现金流 ",
},
{
xh: "29",
zbmc: "利息备付率",
},
{
xh: "30",
zbmc: "偿债备付率",
},
{
xh: "31",
zbmc: "能建方分红 (税前) ",
},
{
xh: "32",
zbmc: "未分配利润 ",
},
{
xh: "33",
zbmc: "项目资本金财务内部收益率 (税后%)",
},
{
xh: "34",
zbmc: "项目竣工投产时间 (年_月)",
},
];
let jsqZrs = [
{
xh: "1",
zbmc: "项目总投资",
},
{
xh: "2",
zbmc: "建安费用不低于",
},
{
xh: "3",
zbmc: "征地拆迁费不高于",
},
{
xh: "6.1",
zbmc: "融资利率(%)",
xh: "4",
zbmc: "项目带动工程收益",
},
{
xh: "5",
zbmc: "工程收益率 (%)",
},
{
xh: "6",
zbmc: "建设期政府补助资金到位",
},
{
xh: "7",
zbmc: "项目全投资财务内部收益率(税前)(%)",
zbmc: "我方资本金投入",
},
{
xh: "8",
zbmc: "项目资本金财务内部收益率(%)",
zbmc: "我方负责引入的股权融资",
},
{
xh: "9",
zbmc: "项目竣工投产时间(年月)",
zbmc: "股权融资成本 (%)",
},
{
xh: "10",
zbmc: "项目建设期项目融资额",
},
{
xh: "11",
zbmc: "融资利率 (%)",
},
{
xh: "12",
zbmc: "项目全投资财务内部收益率 (税前%)",
},
{
xh: "13",
zbmc: "回收额",
},
{
xh: "14",
zbmc: "投资回收率",
},
{
xh: "15",
zbmc: "政府应付",
},
{
xh: "16",
zbmc: "政府欠付 (逾期金额)",
},
{
xh: "17",
zbmc: "使用者应付",
},
{
xh: "18",
zbmc: "使用者欠付",
},
{
xh: "19",
zbmc: "分项销售收入 (销售收入)",
},
{
xh: "20",
zbmc: "补贴收入 (政府补贴)",
},
{
xh: "21",
zbmc: "销售成本 (销售费用)",
},
{
xh: "22",
zbmc: "经营活动产生净现金流",
},
{
xh: "23",
zbmc: "筹资活动产生净现金流",
},
{
xh: "24",
zbmc: "累计净现金流合计",
},
{
xh: "25",
zbmc: "投资活动产生净现金流",
},
{
xh: "26",
zbmc: "利息备付率",
},
{
xh: "27",
zbmc: "偿债备付率",
},
{
xh: "28",
zbmc: "能建方分红 (税前)",
},
{
xh: "29",
zbmc: "未分配利润",
},
{
xh: "30",
zbmc: "项目资本金财务内部收益率 (税后%)",
},
{
xh: "31",
zbmc: "项目竣工投产时间_年_月",
},
];
let yyqZrs = [
{
xh: "1",
zbmc: "运营期政府补助资金到位(亿元)",
zbmc: "运营期政府补助资金到位",
},
{
xh: "2",
zbmc: "项目运营期融资额(亿元)",
},
{
xh: "2.1",
zbmc: "融资利率(%)",
zbmc: "项目运营期融资额",
},
{
xh: "3",
zbmc: "项目实现营业收入累计(亿元)",
},
{
xh: "3.1",
zbmc: "利润总额累计(亿元)",
zbmc: "融资利率 (%)",
},
{
xh: "4",
zbmc: "项目经营净现金流累计(亿元)",
zbmc: "项目实现营业收入累计",
},
{
xh: "5",
zbmc: "项目全投资财务内部收益率(税前)(%)",
zbmc: "利润总额累计",
},
{
xh: "6",
zbmc: "项目资本金财务内部收益率(%)",
zbmc: "项目经营净现金流累计",
},
];
let ndZrs = [
{
xh: "1",
zbmc: "本年度完成投资(亿元)",
xh: "7",
zbmc: "项目全投资财务内部收益率 (税前%)",
},
{
xh: "1.1",
zbmc: "建安费用(亿元)",
xh: "8",
zbmc: "回收额",
},
{
xh: "9",
zbmc: "投资回收率",
},
{
xh: "1.2",
zbmc: "项目征地拆迁费(亿元)",
xh: "10",
zbmc: "政府应付",
},
{
xh: "2",
zbmc: "本年度工程收益(亿元)",
xh: "11",
zbmc: "政府欠付 (逾期金额)",
},
{
xh: "2.1",
zbmc: "工程收益率(%)",
xh: "12",
zbmc: "使用者应付",
},
{
xh: "3",
zbmc: "本年度政府补助资金(亿元)",
xh: "13",
zbmc: "使用者欠付",
},
{
xh: "4",
zbmc: "本年度我方资本金投入(亿元)",
xh: "14",
zbmc: "分项销售收入 (销售收入)",
},
{
xh: "5",
zbmc: "本年度我方负责引入的股权融资(亿元)",
xh: "15",
zbmc: "补贴收入 (政府补贴)",
},
{
xh: "5.1",
zbmc: "股权融资成本(%)",
xh: "16",
zbmc: "销售成本 (销售费用)",
},
{
xh: "6",
zbmc: "本年度项目融资额(亿元)",
xh: "17",
zbmc: "经营活动产生净现金流",
},
{
xh: "18",
zbmc: "筹资活动产生净现金流",
},
{
xh: "19",
zbmc: "累计净现金流合计",
},
{
xh: "6.1",
zbmc: "融资利率(%)",
xh: "20",
zbmc: "投资活动产生净现金流",
},
{
xh: "21",
zbmc: "利息备付率",
},
{
xh: "22",
zbmc: "偿债备付率",
},
{
xh: "23",
zbmc: "能建方分红 (税前)",
},
{
xh: "24",
zbmc: "未分配利润",
},
{
xh: "25",
zbmc: "项目资本金财务内部收益率 (税后%)",
},
];
let ndZrs = [
{
xh: "1",
zbmc: "本年度完成投资",
},
{
xh: "2",
zbmc: "建安费用不低于",
},
{
xh: "3",
zbmc: "征地拆迁费不高于",
},
{
xh: "4",
zbmc: "本年度工程收益",
},
{
xh: "5",
zbmc: "本年度政府补助资金",
},
{
xh: "6",
zbmc: "本年度我方资本金投入",
},
{
xh: "7",
zbmc: "本年度投资项目实现营业收入(亿元)",
zbmc: "本年度我方负责引入的股权融资",
},
{
xh: "8",
zbmc: "本年度项目经营净现金流(亿元)",
zbmc: "股权融资成本 (%)",
},
{
xh: "9",
zbmc: "项目全投资财务内部收益率(税前)(%)",
zbmc: "本年度项目融资额",
},
{
xh: "10",
zbmc: "项目资本金财务内部收益率(%)",
zbmc: "融资利率 (%)",
},
{
xh: "11",
zbmc: "本年度投资项目实现营业收入",
},
{
xh: "12",
zbmc: "利润总额",
},
{
xh: "13",
zbmc: "本年度项目经营净现金流",
},
{
xh: "14",
zbmc: "项目全投资财务内部收益率 (税前%)",
},
{
xh: "15",
zbmc: "回收额",
},
{
xh: "16",
zbmc: "投资回收率",
},
{
xh: "17",
zbmc: "政府应付",
},
{
xh: "18",
zbmc: "政府欠付 (逾期金额)",
},
{
xh: "19",
zbmc: "使用者应付",
},
{
xh: "20",
zbmc: "使用者欠付",
},
{
xh: "21",
zbmc: "分项销售收入 (销售收入)",
},
{
xh: "22",
zbmc: "补贴收入 (政府补贴)",
},
{
xh: "23",
zbmc: "销售成本 (销售费用)",
},
{
xh: "24",
zbmc: "经营活动产生净现金流",
},
{
xh: "25",
zbmc: "筹资活动产生净现金流",
},
{
xh: "26",
zbmc: "累计净现金流合计",
},
{
xh: "27",
zbmc: "投资活动产生净现金流",
},
{
xh: "28",
zbmc: "利息备付率",
},
{
xh: "29",
zbmc: "偿债备付率",
},
{
xh: "30",
zbmc: "能建方分红 (税前)",
},
{
xh: "31",
zbmc: "未分配利润",
},
{
xh: "32",
zbmc: "项目资本金财务内部收益率 (税后%)",
},
];
// 选择责任书类型,同步切换责任书具体指标数据
......
......@@ -4,440 +4,9 @@
<routerBack />
<div class="tabs-content">
<el-tabs v-model="pageActiveName" type="border-card">
<el-tab-pane label="全生命周期责任书" name="全生命周期责任书">
<div class="project-tab-content">
<div class="tab-content">
<el-form
:model="formData"
:label-width="130"
:disabled="isPreview"
>
<el-collapse v-model="activeCollapse">
<el-collapse-item
title="责任书基本信息"
name="责任书基本信息"
>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="责任书类型">
<el-tree-select
v-model="formData.zrslx"
:data="zrslxList"
node-key="key"
:props="zrslxProps"
placeholder="请选择"
render-after-expand
@node-click="changeZrslx"
>
<template #label>
<span>{{ selectedFullPath }}</span>
</template>
</el-tree-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目信息" required>
<el-select
v-model="formData.projectId"
placeholder="请选择"
no-data-text="暂无数据"
@change="changeProject"
>
<el-option
v-for="item in projectList"
:key="item.id"
:label="item.projectName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="责任书文件">
<el-upload
:action="
windowConfig.baseUrl + '/api/file/upload'
"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addZrsFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteZrs"
:disabled="!zrsSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-form-item label="">
<el-table
:data="zrsData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="zrsSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column
prop="originalname"
label="文件名"
/>
<el-table-column
prop="updatedAt"
label="上传时间"
>
<template #default="{ row, index }">
<span>{{
moment(row.updatedAt).format(
"YYYY-MM-DD HH:mm:SS",
)
}}</span>
</template>
</el-table-column>
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="100"
>
<template #default="{ row, index }">
<!-- 需要在查看表单disabled时保持允许下载 -->
<span
class="always-click"
@click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteZrs(index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称">
<el-input v-model="formData.projectName" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="投资主体">
<el-input v-model="formData.tzzt" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目地点">
<el-input v-model="formData.xmdd" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目开工日期">
<el-date-picker
v-model="formData.xmkgrq"
type="date"
placeholder="请选择"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目实施期限">
<el-input-number
v-model="formData.xmssqx"
:min="0"
:max="99999999999.99999999"
controls-position="right"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目内容概述">
<el-input
v-model="formData.xmnrgs"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目经济指标概述">
<el-input
v-model="formData.xmjjzbgs"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title="责任书具体指标"
name="责任书具体指标"
>
<el-table
:data="zrsjtzbData"
style="width: 100%"
empty-text="暂无数据"
border
show-summary
:summary-method="getSummaries"
>
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="zbmc" label="指标名称" />
<el-table-column
prop="zbmbz"
label="指标目标值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.zbmbz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="khjzf"
label="考核基准分"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.khjzf"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="sfsy"
label="是否适用"
width="90"
>
<template #default="scope">
<el-switch
v-model="scope.row.sfsy"
inline-prompt
active-value="1"
active-text="是"
inactive-value="2"
inactive-text="否"
/>
</template>
</el-table-column>
<el-table-column prop="khsm" label="考核说明">
<template #default="scope">
<el-input
v-model="scope.row.khsm"
type="textarea"
/>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="批复意见落实情况"
name="批复意见落实情况"
>
<div class="tab-handle">
<el-button
type="primary"
size="small"
@click="addPfyjlsqk"
>新增</el-button
>
</div>
<el-table
:data="pfyjlsqkData"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" width="60" />
<el-table-column prop="lx" label="类型">
<template #default="scope">
<el-select
v-model="scope.row.lx"
placeholder="请选择"
no-data-text="暂无数据"
>
<el-option
v-for="item in pfyjlxList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="pfyj" label="批复意见">
<template #default="scope">
<el-input
v-model="scope.row.pfyj"
type="textarea"
/>
</template>
</el-table-column>
<el-table-column prop="jzf" label="基准分">
<template #default="scope">
<el-input-number
v-model="scope.row.jzf"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column prop="lsqk" label="落实情况">
<template #default="scope">
<el-select
v-model="scope.row.lsqk"
placeholder="请选择"
no-data-text="暂无数据"
>
<el-option
v-for="item in lsqkList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="lssj" label="落实时间">
<template #default="scope">
<el-date-picker
v-model="scope.row.lssj"
type="datetime"
placeholder="请选择"
value-format="YYYY-MM-DD HH:mm:ss"
/>
</template>
</el-table-column>
<el-table-column
prop="lsqkjtsm"
label="落实情况具体说明"
>
<template #default="scope">
<el-input
v-model="scope.row.lsqkjtsm"
type="textarea"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="60">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deletePfyjlsqk(scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="全生命周期管理策划" name="全生命周期管理策划">
<div class="project-tab-content">
<div class="tab-content">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="策划文件">
<el-upload
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:disabled="isPreview"
:on-success="addChwjFile"
>
<el-button :disabled="isPreview" type="default"
>上传</el-button
>
</el-upload>
<el-button
type="default"
@click="multiDeleteChwj"
:disabled="!chwjSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-form-item label="">
<el-table
:data="chwjData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="chwjSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间">
<template #default="{ row }">
<span>{{
moment(row.updatedAt).format(
"YYYY-MM-DD HH:mm:SS",
)
}}</span>
</template>
</el-table-column>
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, index }">
<span
class="always-click"
@click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteChwj(index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="年度经营管理责任书" name="年度经营管理责任书">
<div class="project-tab-content">
<div class="tab-content">
<el-form
:model="formData"
:label-width="180"
:disabled="isPreview"
>
<el-form :model="formData" :label-width="180" :disabled="isPreview">
<el-collapse v-model="ndActiveCollapse">
<!-- 基本信息 -->
<el-collapse-item title="基本信息" name="基本信息">
......@@ -765,9 +334,7 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
label="已盖章签字的运营阶段目标责任书附件"
>
<el-form-item label="已盖章签字的运营阶段目标责任书附件">
<FileUploader
v-model="formData.ygzqzdyyjdmbzrsfj"
></FileUploader>
......@@ -779,8 +346,6 @@
</el-form>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="add-project-header">
<div class="header-left"></div>
......
......@@ -7,20 +7,14 @@
<div class="tab-content">
<el-form :model="formData" label-width="150" :disabled="isPreview">
<el-collapse v-model="activeCollapse">
<!-- 选择类型 -->
<el-collapse-item title="选择类型" name="选择类型">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="请选择登记类型" required>
<el-radio-group v-model="formData.djlx">
<el-radio value="1">中止</el-radio>
<el-radio value="2">重启</el-radio>
<el-radio value="3">终止</el-radio>
<el-radio value="4">退出</el-radio>
</el-radio-group>
<!-- 移除原有的选择类型折叠面板 -->
<el-collapse-item title="登记类型" name="登记类型">
<el-form-item label="登记类型">
<el-tag v-if="formData.djlx == 1">中止</el-tag>
<el-tag v-if="formData.djlx == 2">重启</el-tag>
<el-tag v-if="formData.djlx == 3">终止</el-tag>
<el-tag v-if="formData.djlx == 4">退出</el-tag>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 基本信息 -->
......@@ -742,11 +736,47 @@
</div>
</div>
</div>
<!-- 新增:选择类型弹窗 -->
<el-dialog
v-model="showTypeDialog"
title="选择登记类型"
width="500px"
:close-on-click-modal="false"
:close-on-press-escape="false"
:show-close="false"
>
<el-form :model="formData" label-width="140">
<el-form-item
style="margin-bottom: 24px"
label="请选择登记类型"
required
>
<el-radio-group v-model="formData.djlx">
<el-radio value="1">中止</el-radio>
<el-radio value="2">重启</el-radio>
<el-radio value="3">终止</el-radio>
<el-radio value="4">退出</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="showTypeDialog = false">取 消</el-button>
<el-button type="primary" @click="confirmType">确 定</el-button>
</template>
</el-dialog>
</div>
</template>
<script setup>
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
import {
reactive,
ref,
onMounted,
getCurrentInstance,
watch,
nextTick,
} from "vue";
import { useRouter, useRoute } from "vue-router";
import { ElMessage } from "element-plus";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
......@@ -824,7 +854,6 @@ const { proxy } = getCurrentInstance();
// ========== 基础配置 ==========
const activeCollapse = ref([
"选择类型",
"基本信息",
"项目中止内容",
"项目重启内容",
......@@ -832,12 +861,15 @@ const activeCollapse = ref([
"项目退出内容",
"项目投资效益",
"资金构成",
"登记类型",
"财务评价指标",
]);
const loading = ref(false);
const isPreview = ref(!!route.query.isPreview);
const projectList = ref([]);
const rcCgqyglId = ref(route.query.id || "");
// 新增:控制类型选择弹窗显示
const showTypeDialog = ref(false);
// ========== 表单数据(完全适配原有后端字段) ==========
const formData = reactive({
......@@ -855,31 +887,6 @@ const formData = reactive({
njfglmc2: "",
},
],
projectId: "",
projectName: "",
djlx: "",
projectCode: "",
sfybb: "",
sbdw: "",
ssejqy: "",
tzsxyjfl: "",
tzsxejfl: "",
tzbk: "",
jnw: "",
cwbblx: "",
xmgsqc: "",
xmjsqy: 0,
yynxn: 0,
xmkgsjyj: "",
xmjgsjyj: "",
tcsqrq: "",
tcrq: "",
yjwcsj: "",
tblxr: "",
tblxrdh: "",
dqjzc: 0.0,
jsnrjgm: "",
cgRatio: "",
// 资金构成(使用原有zjgc字段,默认初始化表格结构)
zjgc: [
......@@ -924,44 +931,23 @@ const formData = reactive({
{ index: "", label: "批复总投资", unit: "万元", value: "", editable: true },
],
// 财务评价指标(使用原有字段)
jcxmtznbsylsq: "",
xmzbjnbsyl: "",
xmtzhsq: "",
sjycxmqtznbsylsq: "",
ycxmzbjnbsylsh: "",
// 项目中止
zzyy: "",
zzxxyy: "",
qtsm: "",
xmzzbg: [],
qtxgzccl: [],
bpbbwjlj: [],
// 项目重启
jhcqsj: "",
cqyy: "",
xmcqbg: [],
jcwj: [],
// 项目终止
zhongzyy: "",
zhongzyyxxfx: "",
xmssxz: "",
knfsdfljfhjjss: "",
xmzhongzbg: [],
// 项目退出
zmjz: 0.0,
tcphsr: 0.0,
ysdtcphzj: 0.0,
czdwt: "",
xxbgzcs: "",
tcyy: "",
tcyyxxfx: "",
});
// ========== 新增:弹窗确认选择类型 ==========
const confirmType = () => {
if (!formData.djlx) {
return ElMessage.warning("请选择登记类型");
}
showTypeDialog.value = false;
};
// ========== 新增:资金构成变更处理方法 ==========
const handleZjgcChange = (row) => {
// 1. 批复总投资变更 → 同步到投资总额(万元)-审批时
......@@ -1021,37 +1007,37 @@ const changeProject = (val) => {
loading.value = false;
if (!data) return;
// 回填基础信息
formData.projectName = data.projectName || "";
formData.sbdw = data.sbdw || "";
formData.xmgsqc = data.xmgsqc || "";
formData.xmkgsjyj = data.xmkgsjyj || "";
formData.xmjgsjyj = data.xmjgsjyj || "";
formData.yynxn = data.yynxn || 0;
formData.xmjsqy = data.xmjsqy || 0;
// // 回填基础信息
// formData.projectName = data.projectName || "";
// formData.sbdw = data.sbdw || "";
// formData.xmgsqc = data.xmgsqc || "";
// formData.xmkgsjyj = data.xmkgsjyj || "";
// formData.xmjgsjyj = data.xmjgsjyj || "";
// formData.yynxn = data.yynxn || 0;
// formData.xmjsqy = data.xmjsqy || 0;
// 回填项目投资效益表格数据
formData.projectGdxxs[0].njfcgblqk_nt =
data.projectXmtzzes?.at(1)?.children?.at(0)?.rmbjj || "";
formData.projectGdxxs[0].njfcgbl =
data.projectXmtzzes?.at(2)?.rmbjj || "";
formData.projectGdxxs[0].jjcgbl = data.projectCwpjzbs?.at(0)?.num || "";
formData.projectGdxxs[0].jjcgbl2 = data.projectCwpjzbs?.at(1)?.num || "";
// // 回填项目投资效益表格数据
// formData.projectGdxxs[0].njfcgblqk_nt =
// data.projectXmtzzes?.at(1)?.children?.at(0)?.rmbjj || "";
// formData.projectGdxxs[0].njfcgbl =
// data.projectXmtzzes?.at(2)?.rmbjj || "";
// formData.projectGdxxs[0].jjcgbl = data.projectCwpjzbs?.at(0)?.num || "";
// formData.projectGdxxs[0].jjcgbl2 = data.projectCwpjzbs?.at(1)?.num || "";
// 回填资金构成(兼容后端返回的zjgc数据)
if (data.zjgc && Array.isArray(data.zjgc)) {
formData.zjgc = data.zjgc.map((item) => ({
...item,
editable: item.editable !== false,
}));
}
// // 回填资金构成(兼容后端返回的zjgc数据)
// if (data.zjgc && Array.isArray(data.zjgc)) {
// formData.zjgc = data.zjgc.map((item) => ({
// ...item,
// editable: item.editable !== false,
// }));
// }
// 回填财务评价指标
formData.jcxmtznbsylsq = data.jcxmtznbsylsq || "";
formData.xmzbjnbsyl = data.xmzbjnbsyl || "";
formData.xmtzhsq = data.xmtzhsq || "";
formData.sjycxmqtznbsylsq = data.sjycxmqtznbsylsq || "";
formData.ycxmzbjnbsylsh = data.ycxmzbjnbsylsh || "";
// // 回填财务评价指标
// formData.jcxmtznbsylsq = data.jcxmtznbsylsq || "";
// formData.xmzbjnbsyl = data.xmzbjnbsyl || "";
// formData.xmtzhsq = data.xmtzhsq || "";
// formData.sjycxmqtznbsylsq = data.sjycxmqtznbsylsq || "";
// formData.ycxmzbjnbsylsh = data.ycxmzbjnbsylsh || "";
},
error: () => {
loading.value = false;
......@@ -1144,6 +1130,13 @@ const getJsqtzjcDetail = () => {
},
];
}
// 编辑状态下如果已有类型值,不弹出弹窗;否则弹出
if (!isPreview.value) {
nextTick(() => {
showTypeDialog.value = true;
});
}
},
error: () => {
loading.value = false;
......@@ -1154,6 +1147,13 @@ const getJsqtzjcDetail = () => {
// ========== 保存表单 ==========
const saveClick = () => {
// 新增:保存前校验类型是否选择
if (!formData.djlx) {
ElMessage.warning("请先选择登记类型");
showTypeDialog.value = true;
return;
}
if (!formData.projectId) return ElMessage.warning("请选择项目信息");
loading.value = true;
const url = rcCgqyglId.value
......@@ -1186,9 +1186,23 @@ const backClick = () => router.back(-1);
onMounted(() => {
getProjectData();
// 非预览状态下自动弹出类型选择弹窗
if (!isPreview.value) {
if (rcCgqyglId.value) {
// 编辑/预览:拉取接口数据
// 编辑状态:先获取详情,再判断是否弹出
getJsqtzjcDetail();
} else {
// 新增状态:直接弹出
nextTick(() => {
showTypeDialog.value = true;
});
}
} else {
// 预览状态:获取详情但不弹出弹窗
if (rcCgqyglId.value) {
getJsqtzjcDetail();
}
}
});
</script>
......
......@@ -86,14 +86,14 @@ let tableColumns = ref([
showOverflowTooltip: true,
},
{
prop: "xmkgrq",
label: "项目开工日期",
prop: "xmtcsj",
label: "项目投产时间",
showOverflowTooltip: true,
width: 170,
},
{
prop: "xmssqx",
label: "项目实施期限(年)",
prop: "jhjgsj",
label: "计划竣工时间",
showOverflowTooltip: true,
width: 120,
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment