明树Git Lab

Commit d87fef15 authored by zhanghan's avatar zhanghan

bug修改

parent 7a5a6319
Pipeline #108167 passed with stage
in 20 seconds
...@@ -17,139 +17,6 @@ ...@@ -17,139 +17,6 @@
<el-collapse v-model="activeCollapse"> <el-collapse v-model="activeCollapse">
<!-- 基本信息:字段完全对齐数据库 --> <!-- 基本信息:字段完全对齐数据库 -->
<el-collapse-item title="基本信息" name="基本信息"> <el-collapse-item title="基本信息" name="基本信息">
<el-row :gutter="20">
<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.projectForeignName"
placeholder="请输入项目外文名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申报单位">
<el-input
v-model="formData.sbdw"
placeholder="请输入申报单位"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属二级企业">
<el-input
v-model="formData.ssejqy"
placeholder="请输入所属二级企业"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目预计起始时间">
<el-date-picker
v-model="formData.xmkgsjyj"
type="date"
placeholder="请选择项目预计起始时间"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目公司名称">
<el-input
v-model="formData.xmgsmc"
placeholder="请输入项目公司名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目预计完成时间">
<el-date-picker
v-model="formData.xmjgsjyj"
type="date"
placeholder="请选择项目预计完成时间"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="填报人">
<el-input
v-model="formData.tbr"
placeholder="请输入填报人"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="填报人联系电话">
<el-input
v-model="formData.tbrlxdh"
placeholder="请输入填报人联系电话"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目建设期 (月)">
<el-input
v-model="formData.xmjsqy"
:min="0"
placeholder="请输入项目建设期 (月)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目流转状态(审批状态)">
<CommonSelector
v-model="formData.projectLzType"
dictName="xmlzzt"
></CommonSelector>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目阶段">
<CommonSelector
v-model="formData.xmjd"
dictName="xmjd"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营年限(年)">
<el-input
v-model="formData.yynxn"
:min="0"
placeholder="请输入运营年限(年)"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="建成后成效">
<el-input
v-model="formData.jchcx"
type="textarea"
:rows="3"
placeholder="请输入建成后成效"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="项目信息" required> <el-form-item label="项目信息" required>
......
...@@ -70,7 +70,7 @@ let tableColumns = ref([ ...@@ -70,7 +70,7 @@ let tableColumns = ref([
}, },
{ {
prop: "nd", prop: "nd",
label: "报送年度", label: "编制年度",
showOverflowTooltip: true, showOverflowTooltip: true,
}, },
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 文件名称 → 绑定wjmc --> <!-- 文件名称 → 绑定wjmc -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="文件名称"> <el-form-item label="文件名称" required>
<el-input <el-input
v-model="formData.wjmc" v-model="formData.wjmc"
placeholder="请输入文件名称" placeholder="请输入文件名称"
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<!-- 编制年度 → 绑定nd --> <!-- 编制年度 → 绑定nd -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="编制年度"> <el-form-item label="编制年度" required>
<el-date-picker <el-date-picker
v-model="formData.nd" v-model="formData.nd"
type="year" type="year"
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</el-col> </el-col>
<!-- 编制年度 --> <!-- 编制年度 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="编制年度"> <el-form-item label="编制年度" required>
<el-date-picker <el-date-picker
v-model="formData.planYear" v-model="formData.planYear"
type="year" type="year"
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
</el-col> </el-col>
<!-- 填报时间 --> <!-- 填报时间 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="填报时间"> <el-form-item label="填报时间" required>
<el-date-picker <el-date-picker
v-model="formData.creatorTime" v-model="formData.creatorTime"
type="datetime" type="datetime"
...@@ -221,7 +221,7 @@ const saveClick = () => { ...@@ -221,7 +221,7 @@ const saveClick = () => {
callback: () => { callback: () => {
loading.value = false; loading.value = false;
ElMessage.success( ElMessage.success(
rcTzghId.value ? "投资规划编辑成功" : "投资规划新增成功" rcTzghId.value ? "投资规划编辑成功" : "投资规划新增成功",
); );
router.back(-1); router.back(-1);
}, },
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</el-col> </el-col>
<!-- 档案分类:绑定后端archiveCategory(非空),保留通用选择器 --> <!-- 档案分类:绑定后端archiveCategory(非空),保留通用选择器 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="档案分类"> <el-form-item label="档案分类" required>
<CommonSelector <CommonSelector
v-model="formData.archiveCategory" v-model="formData.archiveCategory"
dictName="dafl" dictName="dafl"
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<!-- 档案名称:绑定后端archiveName(非空),修正原重复的qc绑定 --> <!-- 档案名称:绑定后端archiveName(非空),修正原重复的qc绑定 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="档案名称"> <el-form-item label="档案名称" required>
<el-input <el-input
v-model="formData.archiveName" v-model="formData.archiveName"
placeholder="请输入档案名称" placeholder="请输入档案名称"
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<!-- 档案日期:绑定后端archiveDate,保留时间选择器 --> <!-- 档案日期:绑定后端archiveDate,保留时间选择器 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="档案日期"> <el-form-item label="档案日期" required>
<el-date-picker <el-date-picker
v-model="formData.archiveDate" v-model="formData.archiveDate"
type="date" type="date"
......
...@@ -96,8 +96,10 @@ ...@@ -96,8 +96,10 @@
label="项目资本金总额(亿元)" label="项目资本金总额(亿元)"
> >
<el-input <el-input
type="number"
v-model.number="formData.xmzbjze" v-model.number="formData.xmzbjze"
placeholder="请输入项目资本金总额(亿元)" placeholder="请输入项目资本金总额(亿元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -107,8 +109,10 @@ ...@@ -107,8 +109,10 @@
label="公司资本金应出资总额(亿元)" label="公司资本金应出资总额(亿元)"
> >
<el-input <el-input
type="number"
v-model.number="formData.gszbjyczze" v-model.number="formData.gszbjyczze"
placeholder="请输入公司资本金应出资总额(亿元)" placeholder="请输入公司资本金应出资总额(亿元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -120,8 +124,10 @@ ...@@ -120,8 +124,10 @@
label="公司当前应出资额(亿元)" label="公司当前应出资额(亿元)"
> >
<el-input <el-input
type="number"
v-model.number="formData.gsdqycze" v-model.number="formData.gsdqycze"
placeholder="请输入公司当前应出资额(亿元)" placeholder="请输入公司当前应出资额(亿元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -131,8 +137,10 @@ ...@@ -131,8 +137,10 @@
label="公司当前已出资额(亿元)" label="公司当前已出资额(亿元)"
> >
<el-input <el-input
type="number"
v-model.number="formData.gsdqyjcze" v-model.number="formData.gsdqyjcze"
placeholder="请输入公司当前已出资额(亿元)" placeholder="请输入公司当前已出资额(亿元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -144,8 +152,10 @@ ...@@ -144,8 +152,10 @@
label="公司当前应出未出金额(亿元)" label="公司当前应出未出金额(亿元)"
> >
<el-input <el-input
type="number"
v-model.number="formData.gsdqycwcje" v-model.number="formData.gsdqycwcje"
placeholder="请输入公司当前应出未出金额(亿元)" placeholder="请输入公司当前应出未出金额(亿元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -155,8 +165,10 @@ ...@@ -155,8 +165,10 @@
label="公司当前剩余出资额(亿元)" label="公司当前剩余出资额(亿元)"
> >
<el-input <el-input
type="number"
v-model.number="formData.gsdqsycze" v-model.number="formData.gsdqsycze"
placeholder="请输入公司当前剩余出资额(亿元)" placeholder="请输入公司当前剩余出资额(亿元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -256,8 +268,10 @@ ...@@ -256,8 +268,10 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="累计获取分红(万元)"> <el-form-item label="累计获取分红(万元)">
<el-input <el-input
type="number"
v-model.number="formData.ljhqfh" v-model.number="formData.ljhqfh"
placeholder="请输入累计获取分红(万元)" placeholder="请输入累计获取分红(万元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -268,16 +282,20 @@ ...@@ -268,16 +282,20 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="应投入资金(万元)"> <el-form-item label="应投入资金(万元)">
<el-input <el-input
type="number"
v-model.number="formData.ytrzj" v-model.number="formData.ytrzj"
placeholder="请输入应投入资金(万元)" placeholder="请输入应投入资金(万元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="累计投入资金(万元)"> <el-form-item label="累计投入资金(万元)">
<el-input <el-input
type="number"
v-model.number="formData.ljtrzj" v-model.number="formData.ljtrzj"
placeholder="请输入累计投入资金(万元)" placeholder="请输入累计投入资金(万元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -286,8 +304,10 @@ ...@@ -286,8 +304,10 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="尚需投入资金(万元)"> <el-form-item label="尚需投入资金(万元)">
<el-input <el-input
type="number"
v-model.number="formData.sxtrzj" v-model.number="formData.sxtrzj"
placeholder="请输入尚需投入资金(万元)" placeholder="请输入尚需投入资金(万元)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -339,16 +359,20 @@ ...@@ -339,16 +359,20 @@
<el-table-column prop="htje" label="合同金额(万元)"> <el-table-column prop="htje" label="合同金额(万元)">
<template #default="scope"> <template #default="scope">
<el-input <el-input
type="number"
v-model.number="scope.row.htje" v-model.number="scope.row.htje"
placeholder="请输入合同金额(万元)" placeholder="请输入合同金额(万元)"
step="0.01"
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="ywlr" label="业务利润(万元)"> <el-table-column prop="ywlr" label="业务利润(万元)">
<template #default="scope"> <template #default="scope">
<el-input <el-input
type="number"
v-model.number="scope.row.ywlr" v-model.number="scope.row.ywlr"
placeholder="请输入业务利润(万元)" placeholder="请输入业务利润(万元)"
step="0.01"
/> />
</template> </template>
</el-table-column> </el-table-column>
...@@ -391,8 +415,10 @@ ...@@ -391,8 +415,10 @@
<el-table-column prop="fhje" label="分红金额(万元)"> <el-table-column prop="fhje" label="分红金额(万元)">
<template #default="scope"> <template #default="scope">
<el-input <el-input
type="number"
v-model.number="scope.row.fhje" v-model.number="scope.row.fhje"
placeholder="请输入分红金额" placeholder="请输入分红金额"
step="0.01"
/> />
</template> </template>
</el-table-column> </el-table-column>
...@@ -419,16 +445,20 @@ ...@@ -419,16 +445,20 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="静态"> <el-form-item label="静态">
<el-input <el-input
type="number"
v-model.number="formData.jt" v-model.number="formData.jt"
placeholder="请输入静态" placeholder="请输入静态"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="折现(3.5%)"> <el-form-item label="折现(3.5%)">
<el-input <el-input
type="number"
v-model.number="formData.zx" v-model.number="formData.zx"
placeholder="请输入折现(3.5%)" placeholder="请输入折现(3.5%)"
step="0.01"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -478,7 +508,6 @@ import { reactive, ref, onMounted, getCurrentInstance, h, computed } from "vue"; ...@@ -478,7 +508,6 @@ import { reactive, ref, onMounted, getCurrentInstance, h, computed } from "vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import { useUserStore } from "@/stores/user.js"; import { useUserStore } from "@/stores/user.js";
import { number } from "echarts";
// 初始化全局变量 // 初始化全局变量
const userStore = useUserStore(); const userStore = useUserStore();
...@@ -486,7 +515,7 @@ const router = useRouter(); ...@@ -486,7 +515,7 @@ const router = useRouter();
const route = useRoute(); const route = useRoute();
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const token = ref( const token = ref(
userStore.authToken || sessionStorage.getItem("authToken") || "" userStore.authToken || sessionStorage.getItem("authToken") || "",
); );
// 小记金额 // 小记金额
...@@ -515,7 +544,7 @@ const activeCollapse = ref([ ...@@ -515,7 +544,7 @@ const activeCollapse = ref([
"分红情况", "分红情况",
]); ]);
// 表单数据 // 表单数据 - 数值字段初始化为数字类型(0)
const formData = reactive({ const formData = reactive({
projectName: "", projectName: "",
qc: "", qc: "",
...@@ -523,12 +552,12 @@ const formData = reactive({ ...@@ -523,12 +552,12 @@ const formData = reactive({
nbtzglzt: "", nbtzglzt: "",
xmscjd: "", xmscjd: "",
gqjg: "", gqjg: "",
xmzbjze: "", xmzbjze: 0,
gszbjyczze: "", gszbjyczze: 0,
gsdqycze: "", gsdqycze: 0,
gsdqyjcze: "", gsdqyjcze: 0,
gsdqycwcje: "", gsdqycwcje: 0,
gsdqsycze: "", gsdqsycze: 0,
cgbczqk: "", cgbczqk: "",
wfqyhttkyd: "", wfqyhttkyd: "",
qyhqjz: "", qyhqjz: "",
...@@ -536,12 +565,12 @@ const formData = reactive({ ...@@ -536,12 +565,12 @@ const formData = reactive({
dbqk: "", dbqk: "",
lrfp: "", lrfp: "",
sfddlrfptj: "", sfddlrfptj: "",
ljhqfh: "", ljhqfh: 0,
ytrzj: "", ytrzj: 0,
ljtrzj: "", ljtrzj: 0,
sxtrzj: "", sxtrzj: 0,
jt: "", jt: 0,
zx: "", zx: 0,
lxr: "", lxr: "",
lxfs: "", lxfs: "",
bz: "", bz: "",
...@@ -632,7 +661,8 @@ const rcCgqyglId = ref(route.query.id || ""); ...@@ -632,7 +661,8 @@ const rcCgqyglId = ref(route.query.id || "");
let wtyys = ref([]); let wtyys = ref([]);
const addPfyjlsqk = () => { const addPfyjlsqk = () => {
wtyys.value.push({}); // 新增行时数值字段初始化为0
wtyys.value.push({ htje: 0, ywlr: 0 });
}; };
const deletePfyjlsqk = (index) => { const deletePfyjlsqk = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", { ElMessageBox.confirm("确认删除该项?", "提示", {
...@@ -647,7 +677,8 @@ const deletePfyjlsqk = (index) => { ...@@ -647,7 +677,8 @@ const deletePfyjlsqk = (index) => {
let tzfhs = ref([]); let tzfhs = ref([]);
// 新增 // 新增
const addTzfhs = () => { const addTzfhs = () => {
tzfhs.value.push({}); // 新增行时数值字段初始化为0
tzfhs.value.push({ fhje: 0 });
}; };
// 删除 // 删除
const deleteTzfhs = (index) => { const deleteTzfhs = (index) => {
...@@ -694,15 +725,45 @@ const getRcCgqyglDetail = () => { ...@@ -694,15 +725,45 @@ const getRcCgqyglDetail = () => {
data: { id: rcCgqyglId.value }, data: { id: rcCgqyglId.value },
callback: (data) => { callback: (data) => {
loading.value = false; loading.value = false;
Object.assign(formData, { // 处理数值字段,确保为数字类型
...data, const formatNumberFields = (obj) => {
const numberFields = [
"xmzbjze",
"gszbjyczze",
"gsdqycze",
"gsdqyjcze",
"gsdqycwcje",
"gsdqsycze",
"ljhqfh",
"ytrzj",
"ljtrzj",
"sxtrzj",
"jt",
"zx",
];
numberFields.forEach((field) => {
obj[field] = Number(obj[field]) || 0;
}); });
return obj;
};
Object.assign(formData, formatNumberFields(data));
// 处理wtyys数组的数值字段
if (data.wtyys) { if (data.wtyys) {
Object.assign(wtyys.value, data.wtyys); wtyys.value = data.wtyys.map((item) => ({
...item,
htje: Number(item.htje) || 0,
ywlr: Number(item.ywlr) || 0,
}));
} }
// 新增:加载
// 处理tzfhs数组的数值字段
if (data.tzfhs) { if (data.tzfhs) {
Object.assign(tzfhs.value, data.tzfhs); tzfhs.value = data.tzfhs.map((item) => ({
...item,
fhje: Number(item.fhje) || 0,
}));
} }
}, },
}); });
...@@ -726,13 +787,49 @@ const saveClick = () => { ...@@ -726,13 +787,49 @@ const saveClick = () => {
? "/api/project/updateCgqygl" ? "/api/project/updateCgqygl"
: "/api/project/createCgqygl"; : "/api/project/createCgqygl";
// 处理空数字字段:空值转为null,避免提交空字符串 // 处理空数字字段:确保所有数值字段为数字类型
const submitData = { const formatSubmitData = (data) => {
const numberFields = [
"xmzbjze",
"gszbjyczze",
"gsdqycze",
"gsdqyjcze",
"gsdqycwcje",
"gsdqsycze",
"ljhqfh",
"ytrzj",
"ljtrzj",
"sxtrzj",
"jt",
"zx",
];
numberFields.forEach((field) => {
data[field] = Number(data[field]) || 0;
});
// 处理数组中的数值字段
data.wtyys = data.wtyys.map((item) => ({
...item,
htje: Number(item.htje) || 0,
ywlr: Number(item.ywlr) || 0,
}));
data.tzfhs = data.tzfhs.map((item) => ({
...item,
fhje: Number(item.fhje) || 0,
}));
return data;
};
// 组装提交数据
const submitData = formatSubmitData({
...formData, ...formData,
projectId: formData.projectId + "", projectId: formData.projectId + "",
wtyys: wtyys.value, wtyys: wtyys.value,
tzfhs: tzfhs.value, tzfhs: tzfhs.value,
}; });
proxy.$post({ proxy.$post({
url: url, url: url,
......
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="颁布时间"> <el-form-item label="颁布时间" required>
<el-date-picker <el-date-picker
v-model="formData.bbsj" v-model="formData.bbsj"
type="year" type="date"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
placeholder="请选择颁布时间" placeholder="请选择颁布时间"
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 会议编号(必填、唯一) --> <!-- 会议编号(必填、唯一) -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="会议编号"> <el-form-item label="会议编号" required>
<el-input <el-input
v-model="formData.meetingCode" v-model="formData.meetingCode"
placeholder="请输入会议编号(如:TWH202601)" placeholder="请输入会议编号(如:TWH202601)"
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</el-col> </el-col>
<!-- 会议名称(必填) --> <!-- 会议名称(必填) -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="会议名称"> <el-form-item label="会议名称" required>
<el-input <el-input
v-model="formData.meetingName" v-model="formData.meetingName"
placeholder="请输入会议名称" placeholder="请输入会议名称"
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</el-col> </el-col>
<!-- 会议时间(必填) --> <!-- 会议时间(必填) -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="会议时间"> <el-form-item label="会议时间" required>
<el-date-picker <el-date-picker
v-model="formData.meetingDate" v-model="formData.meetingDate"
type="date" type="date"
......
...@@ -1542,6 +1542,7 @@ const spyjColumns = ref([ ...@@ -1542,6 +1542,7 @@ const spyjColumns = ref([
// 10. 债权融资列配置 // 10. 债权融资列配置
const debtFinancingColumns = ref([ const debtFinancingColumns = ref([
{ {
disabled: true,
prop: "amount", prop: "amount",
label: "金额(万元)", label: "金额(万元)",
type: "input", type: "input",
......
...@@ -273,12 +273,123 @@ ...@@ -273,12 +273,123 @@
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="资金构成" name="资金构成"
>资金构成资金构成资金构成资金构成 <!-- 资金构成 -->
<el-collapse-item title="资金构成" name="资金构成">
<el-table
:data="formData.zjgc"
border
style="width: 100%"
size="small"
>
<el-table-column
prop="index"
label="序号"
width="80"
align="center"
/>
<el-table-column
prop="label"
label="指标"
min-width="300"
/>
<el-table-column
prop="unit"
label="单位"
width="100"
align="center"
/>
<el-table-column
prop="value"
label="人民币计价"
align="right"
min-width="200"
>
<template #default="{ row }">
<el-input
v-if="row.editable && !isPreview"
v-model="row.value"
:precision="2"
controls-position="right"
placeholder="0.00"
type="number"
style="width: 100%"
@change="handleZjgcChange(row)"
/>
<span v-else>{{ row.value || "-" }}</span>
</template>
</el-table-column>
</el-table>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="财务评价指标" name="财务评价指标"
>财务评价指标</el-collapse-item <!-- 财务评价指标 -->
<el-collapse-item title="财务评价指标" name="财务评价指标">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="决策:项目投资内部收益率(税前):">
<el-input
v-model="formData.jcxmtznbsylsq"
:precision="2"
:disabled="isPreview"
placeholder="0.00"
type="number"
suffix="%"
@change="handleFinancialIndexChange('jcxmtznbsylsq')"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目资本金内部收益率:">
<el-input
v-model="formData.xmzbjnbsyl"
:precision="2"
:disabled="isPreview"
placeholder="0.00"
type="number"
suffix="%"
@change="handleFinancialIndexChange('xmzbjnbsyl')"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目投资回收期(税前):">
<el-input
v-model="formData.xmtzhsq"
:disabled="isPreview"
placeholder="0.00"
suffix="年"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="实际:预测项目全投资内部收益率(税前):"
> >
<el-input
v-model="formData.sjycxmqtznbsylsq"
:precision="2"
:disabled="isPreview"
placeholder="0.00"
type="number"
suffix="%"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="预测项目资本金内部收益率(税后):">
<el-input
v-model="formData.ycxmzbjnbsylsh"
:precision="2"
:disabled="isPreview"
placeholder="0.00"
type="number"
suffix="%"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 项目中止内容 --> <!-- 项目中止内容 -->
<el-collapse-item <el-collapse-item
v-if="formData.djlx == 1" v-if="formData.djlx == 1"
...@@ -293,6 +404,7 @@ ...@@ -293,6 +404,7 @@
type="textarea" type="textarea"
rows="2" rows="2"
placeholder="请输入中止原因" placeholder="请输入中止原因"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -303,6 +415,7 @@ ...@@ -303,6 +415,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入中止详细原因" placeholder="请输入中止详细原因"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -313,18 +426,23 @@ ...@@ -313,18 +426,23 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入其他说明" placeholder="请输入其他说明"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="中止报告"> <el-form-item label="中止报告">
<FileUploader v-model="formData.xmzzbg"></FileUploader> <FileUploader
v-model="formData.xmzzbg"
:disabled="isPreview"
></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="其他相关支撑材料"> <el-form-item label="其他相关支撑材料">
<FileUploader <FileUploader
v-model="formData.qtxgzccl" v-model="formData.qtxgzccl"
:disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -332,6 +450,7 @@ ...@@ -332,6 +450,7 @@
<el-form-item label="报批报备文件"> <el-form-item label="报批报备文件">
<FileUploader <FileUploader
v-model="formData.bpbbwjlj" v-model="formData.bpbbwjlj"
:disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -352,6 +471,7 @@ ...@@ -352,6 +471,7 @@
type="date" type="date"
placeholder="请选择计划重启时间" placeholder="请选择计划重启时间"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -362,6 +482,7 @@ ...@@ -362,6 +482,7 @@
type="textarea" type="textarea"
rows="2" rows="2"
placeholder="请输入重启原因" placeholder="请输入重启原因"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -372,23 +493,31 @@ ...@@ -372,23 +493,31 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入其他说明" placeholder="请输入其他说明"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="重启报告"> <el-form-item label="重启报告">
<FileUploader v-model="formData.xmcqbg"></FileUploader> <FileUploader
v-model="formData.xmcqbg"
:disabled="isPreview"
></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="决策文件"> <el-form-item label="决策文件">
<FileUploader v-model="formData.jcwj"></FileUploader> <FileUploader
v-model="formData.jcwj"
:disabled="isPreview"
></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="报批报备文件"> <el-form-item label="报批报备文件">
<FileUploader <FileUploader
v-model="formData.bpbbwjlj" v-model="formData.bpbbwjlj"
:disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -409,6 +538,7 @@ ...@@ -409,6 +538,7 @@
type="textarea" type="textarea"
rows="2" rows="2"
placeholder="请输入终止原因" placeholder="请输入终止原因"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -419,6 +549,7 @@ ...@@ -419,6 +549,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入终止原因详细分析" placeholder="请输入终止原因详细分析"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -429,6 +560,7 @@ ...@@ -429,6 +560,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入项目实施现状" placeholder="请输入项目实施现状"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -439,6 +571,7 @@ ...@@ -439,6 +571,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入可能发生的法律纠纷和经济损失" placeholder="请输入可能发生的法律纠纷和经济损失"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -449,6 +582,7 @@ ...@@ -449,6 +582,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入其他说明" placeholder="请输入其他说明"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -456,6 +590,7 @@ ...@@ -456,6 +590,7 @@
<el-form-item label="终止报告"> <el-form-item label="终止报告">
<FileUploader <FileUploader
v-model="formData.xmzhongzbg" v-model="formData.xmzhongzbg"
:disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -463,6 +598,7 @@ ...@@ -463,6 +598,7 @@
<el-form-item label="其他相关支撑材料"> <el-form-item label="其他相关支撑材料">
<FileUploader <FileUploader
v-model="formData.qtxgzccl" v-model="formData.qtxgzccl"
:disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -470,6 +606,7 @@ ...@@ -470,6 +606,7 @@
<el-form-item label="报批报备文件"> <el-form-item label="报批报备文件">
<FileUploader <FileUploader
v-model="formData.bpbbwjlj" v-model="formData.bpbbwjlj"
:disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -490,6 +627,8 @@ ...@@ -490,6 +627,8 @@
:min="0" :min="0"
:precision="2" :precision="2"
placeholder="0.00" placeholder="0.00"
type="number"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -500,6 +639,8 @@ ...@@ -500,6 +639,8 @@
:min="0" :min="0"
:precision="2" :precision="2"
placeholder="0.00" placeholder="0.00"
type="number"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -510,6 +651,8 @@ ...@@ -510,6 +651,8 @@
:min="0" :min="0"
:precision="2" :precision="2"
placeholder="0.00" placeholder="0.00"
type="number"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -520,6 +663,7 @@ ...@@ -520,6 +663,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入存在的问题" placeholder="请输入存在的问题"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -530,6 +674,7 @@ ...@@ -530,6 +674,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入下一步工作措施" placeholder="请输入下一步工作措施"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -540,6 +685,7 @@ ...@@ -540,6 +685,7 @@
type="textarea" type="textarea"
rows="2" rows="2"
placeholder="请输入退出原因" placeholder="请输入退出原因"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -550,6 +696,7 @@ ...@@ -550,6 +696,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入退出原因详细分析" placeholder="请输入退出原因详细分析"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -560,6 +707,7 @@ ...@@ -560,6 +707,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入项目实施现状" placeholder="请输入项目实施现状"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -570,6 +718,7 @@ ...@@ -570,6 +718,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入可能发生的法律纠纷和经济损失" placeholder="请输入可能发生的法律纠纷和经济损失"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -580,6 +729,7 @@ ...@@ -580,6 +729,7 @@
type="textarea" type="textarea"
rows="3" rows="3"
placeholder="请输入其他说明" placeholder="请输入其他说明"
:disabled="isPreview"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -595,7 +745,7 @@ ...@@ -595,7 +745,7 @@
</template> </template>
<script setup> <script setup>
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import DynamicTable from "@/components/FormDynamicTable/index.vue"; import DynamicTable from "@/components/FormDynamicTable/index.vue";
...@@ -606,6 +756,7 @@ const transferColumns = ref([ ...@@ -606,6 +756,7 @@ const transferColumns = ref([
prop: "njfcgbl", prop: "njfcgbl",
label: "审批时", label: "审批时",
type: "input", type: "input",
disabled: true,
headerGroup: "投资总额(万元)", headerGroup: "投资总额(万元)",
placeholder: "请输入审批时金额", placeholder: "请输入审批时金额",
}, },
...@@ -619,6 +770,7 @@ const transferColumns = ref([ ...@@ -619,6 +770,7 @@ const transferColumns = ref([
{ {
prop: "njfcgblqk_nt", prop: "njfcgblqk_nt",
label: "审批时", label: "审批时",
disabled: true,
type: "input", type: "input",
headerGroup: "我方资本金出资(万元)", headerGroup: "我方资本金出资(万元)",
placeholder: "请填写审批时", placeholder: "请填写审批时",
...@@ -632,6 +784,7 @@ const transferColumns = ref([ ...@@ -632,6 +784,7 @@ const transferColumns = ref([
}, },
{ {
prop: "jjcgbl", prop: "jjcgbl",
disabled: true,
label: "审批时", label: "审批时",
type: "input", type: "input",
headerGroup: "项目全投资内部收益率(税前)%", headerGroup: "项目全投资内部收益率(税前)%",
...@@ -648,6 +801,7 @@ const transferColumns = ref([ ...@@ -648,6 +801,7 @@ const transferColumns = ref([
{ {
prop: "jjcgbl2", prop: "jjcgbl2",
label: "审批时", label: "审批时",
disabled: true,
type: "input", type: "input",
headerGroup: "项目全投资内部收益率(税后)%", headerGroup: "项目全投资内部收益率(税后)%",
placeholder: "请填写预计", placeholder: "请填写预计",
...@@ -684,10 +838,10 @@ const isPreview = ref(!!route.query.isPreview); ...@@ -684,10 +838,10 @@ const isPreview = ref(!!route.query.isPreview);
const projectList = ref([]); const projectList = ref([]);
const rcCgqyglId = ref(route.query.id || ""); const rcCgqyglId = ref(route.query.id || "");
// ========== 表单数据(仅保留核心使用的字段) ========== // ========== 表单数据(完全适配原有后端字段) ==========
const formData = reactive({ const formData = reactive({
// 原有字段
xmtzxy: [{}], xmtzxy: [{}],
// 动态表格数据
projectGdxxs: [ projectGdxxs: [
{ {
njfcgbl: "", njfcgbl: "",
...@@ -700,34 +854,144 @@ const formData = reactive({ ...@@ -700,34 +854,144 @@ const formData = reactive({
njfglmc2: "", njfglmc2: "",
}, },
], ],
// 基础字段
projectId: "", projectId: "",
projectName: "", projectName: "",
djlx: "", // 登记类型 djlx: "",
xmbh: "", // 项目编号 projectCode: "",
sfLht: "", // 是否联合体 sfybb: "",
sbdw: "", // 申报单位 sbdw: "",
ssejqy: "", // 所属二级企业 ssejqy: "",
yjFl: "", // 一级分类 tzsxyjfl: "",
ejFl: "", // 二级分类 tzsxejfl: "",
tzBk: "", // 投资板块 tzbk: "",
xfBk: "", // 细分板块 jnw: "",
xmgsmc: "", // 项目公司全称 cwbblx: "",
xmPfsj: "", // 项目批复时间 xmgsqc: "",
bbsj: "", // 报备时间 xmjsqy: 0,
xmkgsjyj: "", // 项目预计起始时间 yynxn: 0,
xmjgsjyj: "", // 项目预计完成时间 xmkgsjyj: "",
tcSqrq: "", // 退出申请日期 xmjgsjyj: "",
sqrq: "", // 申请日期 tcsqrq: "",
xmjsqy: 0, // 项目建设期(月) tcrq: "",
yynxn: 0, // 运营年限(年) yjwcsj: "",
tbr: "", // 填报人 tblxr: "",
tbrlxdh: "", // 填报人联系电话 tblxrdh: "",
zqRz: 0.0, // 当前净资产 dqjzc: 0.0,
xmJsContent: "", // 项目主要建设内容 jsnrjgm: "",
cgRatio: "", // 我方出资人及持股比例 cgRatio: "",
// 资金构成(使用原有zjgc字段,默认初始化表格结构)
zjgc: [
{ index: "—", label: "项目资金构成", unit: "", value: "", editable: false },
{
index: "1",
label: "项目资本金",
unit: "万元",
value: "",
editable: true,
},
{
index: "1.1",
label: "能建方出资",
unit: "万元",
value: "",
editable: true,
},
{
index: "1.2",
label: "外部股东",
unit: "万元",
value: "",
editable: true,
},
{ index: "2", label: "贷款", unit: "万元", value: "", editable: true },
{
index: "2.1",
label: "其中: 非并表项目我方贷款/担保额",
unit: "万元",
value: "",
editable: true,
},
{ index: "3", label: "其他出资", unit: "万元", value: "", editable: true },
{
index: "3.1",
label: "其中: 能建方出资",
unit: "万元",
value: "",
editable: true,
},
{ 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 handleZjgcChange = (row) => {
// 1. 批复总投资变更 → 同步到投资总额(万元)-审批时
if (row.label === "批复总投资" && row.value !== "") {
// 确保xmtzxy有数据行
if (!formData.xmtzxy[0]) formData.xmtzxy[0] = {};
formData.xmtzxy[0].njfcgbl = row.value;
}
// 2. 项目资本金变更 → 同步到我方资本金出资(万元)-审批时
if (row.label === "项目资本金" && row.value !== "") {
if (!formData.xmtzxy[0]) formData.xmtzxy[0] = {};
formData.xmtzxy[0].njfcgblqk_nt = row.value;
}
};
// ========== 新增:财务指标变更处理方法 ==========
const handleFinancialIndexChange = (field) => {
if (!formData.xmtzxy[0]) formData.xmtzxy[0] = {};
// 1. 决策:项目投资内部收益率(税前) → 同步到项目全投资内部收益率(税前)%-审批时
if (field === "jcxmtznbsylsq" && formData.jcxmtznbsylsq !== "") {
formData.xmtzxy[0].jjcgbl = formData.jcxmtznbsylsq;
}
// 2. 项目资本金内部收益率 → 同步到项目全投资内部收益率(税后)%-审批时
if (field === "xmzbjnbsyl" && formData.xmzbjnbsyl !== "") {
formData.xmtzxy[0].jjcgbl2 = formData.xmzbjnbsyl;
}
};
// ========== 业务方法:获取项目列表 ========== // ========== 业务方法:获取项目列表 ==========
const getProjectData = () => { const getProjectData = () => {
proxy.$post({ proxy.$post({
...@@ -742,19 +1006,22 @@ const getProjectData = () => { ...@@ -742,19 +1006,22 @@ const getProjectData = () => {
// ========== 选择项目同步名称及相关信息 ========== // ========== 选择项目同步名称及相关信息 ==========
const changeProject = (val) => { const changeProject = (val) => {
loading.value = true;
proxy.$post({ proxy.$post({
url: "/api/project/getProjectFinalInfo", url: "/api/project/getProjectFinalInfo",
data: { id: val }, data: { id: val },
callback: (data) => { callback: (data) => {
loading.value = false; loading.value = false;
if (!data) return;
// 回填基础信息
formData.projectName = data.projectName || ""; formData.projectName = data.projectName || "";
formData.sbdw = data.sbdw || ""; formData.sbdw = data.sbdw || "";
formData.xmgsmc = data.xmgsmc || ""; formData.xmgsqc = data.xmgsqc || "";
formData.xmkgsjyj = data.xmkgsjyj || ""; formData.xmkgsjyj = data.xmkgsjyj || "";
formData.xmjgsjyj = data.xmjgsjyj || ""; formData.xmjgsjyj = data.xmjgsjyj || "";
formData.xmjd = data.xmjd || ""; formData.yynxn = data.yynxn || 0;
formData.yynxn = data.yynxn || ""; formData.xmjsqy = data.xmjsqy || 0;
formData.xmjsqy = data.xmjsqy || "";
// 回填项目投资效益表格数据 // 回填项目投资效益表格数据
formData.projectGdxxs[0].njfcgblqk_nt = formData.projectGdxxs[0].njfcgblqk_nt =
...@@ -763,6 +1030,21 @@ const changeProject = (val) => { ...@@ -763,6 +1030,21 @@ const changeProject = (val) => {
data.projectXmtzzes?.at(2)?.rmbjj || ""; data.projectXmtzzes?.at(2)?.rmbjj || "";
formData.projectGdxxs[0].jjcgbl = data.projectCwpjzbs?.at(0)?.num || ""; formData.projectGdxxs[0].jjcgbl = data.projectCwpjzbs?.at(0)?.num || "";
formData.projectGdxxs[0].jjcgbl2 = data.projectCwpjzbs?.at(1)?.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,
}));
}
// 回填财务评价指标
formData.jcxmtznbsylsq = data.jcxmtznbsylsq || "";
formData.xmzbjnbsyl = data.xmzbjnbsyl || "";
formData.xmtzhsq = data.xmtzhsq || "";
formData.sjycxmqtznbsylsq = data.sjycxmqtznbsylsq || "";
formData.ycxmzbjnbsylsh = data.ycxmzbjnbsylsh || "";
}, },
error: () => { error: () => {
loading.value = false; loading.value = false;
...@@ -783,10 +1065,82 @@ const getJsqtzjcDetail = () => { ...@@ -783,10 +1065,82 @@ const getJsqtzjcDetail = () => {
callback: async (data) => { callback: async (data) => {
loading.value = false; loading.value = false;
if (!data) return ElMessage.error("未查询到数据"); if (!data) return ElMessage.error("未查询到数据");
// 回填表单数据(自动适配所有原有字段)
Object.assign(formData, data); Object.assign(formData, data);
// 确保资金构成字段是数组格式
if (!Array.isArray(formData.zjgc)) {
formData.zjgc = [
{
index: "—",
label: "项目资金构成",
unit: "",
value: "",
editable: false,
},
{
index: "1",
label: "项目资本金",
unit: "万元",
value: "",
editable: true,
},
{
index: "1.1",
label: "能建方出资",
unit: "万元",
value: "",
editable: true,
},
{
index: "1.2",
label: "外部股东",
unit: "万元",
value: "",
editable: true,
},
{
index: "2",
label: "贷款",
unit: "万元",
value: "",
editable: true,
},
{
index: "2.1",
label: "其中: 非并表项目我方贷款/担保额",
unit: "万元",
value: "",
editable: true,
},
{
index: "3",
label: "其他出资",
unit: "万元",
value: "",
editable: true,
},
{
index: "3.1",
label: "其中: 能建方出资",
unit: "万元",
value: "",
editable: true,
},
{
index: "",
label: "批复总投资",
unit: "万元",
value: "",
editable: true,
},
];
}
}, },
error: () => { error: () => {
loading.value = false; loading.value = false;
ElMessage.error("获取详情失败");
}, },
}); });
}; };
...@@ -799,7 +1153,7 @@ const saveClick = () => { ...@@ -799,7 +1153,7 @@ const saveClick = () => {
? "/api/project/updateXmtc" ? "/api/project/updateXmtc"
: "/api/project/createXmtc"; : "/api/project/createXmtc";
// 组装提交数据 // 组装提交数据(完全使用原有字段,不新增)
const submitData = { const submitData = {
...formData, ...formData,
projectId: String(formData.projectId), projectId: String(formData.projectId),
...@@ -834,4 +1188,59 @@ onMounted(() => { ...@@ -834,4 +1188,59 @@ onMounted(() => {
<style scoped lang="less"> <style scoped lang="less">
@import "@/styles/verticalManages.less"; @import "@/styles/verticalManages.less";
.add-project-container {
width: 100%;
height: 100%;
padding: 20px;
box-sizing: border-box;
}
.add-project-content {
background: #fff;
border-radius: 8px;
padding: 20px;
height: 100%;
overflow-y: auto;
}
.add-project-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 1px solid #e6e6e6;
}
.header-right {
display: flex;
gap: 10px;
}
.tabs-content {
width: 100%;
}
.project-tab-content {
width: 100%;
}
.tab-content {
width: 100%;
}
.el-collapse {
--el-collapse-header-text-color: #303133;
--el-collapse-header-font-size: 16px;
}
.el-table {
--el-table-row-hover-bg-color: #f8f9fa;
margin-bottom: 10px;
}
.el-input-number {
width: 100%;
}
</style> </style>
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