明树Git Lab
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
J
jt_front
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
jt_front
Commits
aebc53b7
Commit
aebc53b7
authored
Mar 20, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
年度计划完成
parent
8d55f729
Pipeline
#108599
passed with stage
in 20 seconds
Changes
8
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1932 additions
and
753 deletions
+1932
-753
settings.local.json
.claude/settings.local.json
+7
-0
FinancialTable.vue
src/components/FinancialTable.vue
+113
-76
manage.css
src/styles/manage.css
+4
-3
manage.less
src/styles/manage.less
+4
-3
investmentCecoveryAdd.vue
src/views/castbehind/investmentCecoveryAdd.vue
+218
-116
annualAdd.vue
src/views/everydayPage/annualAdd.vue
+6
-6
annualPlan.vue
src/views/everydayPage/annualPlan.vue
+50
-8
shareAdd.vue
src/views/everydayPage/shareAdd.vue
+1530
-541
No files found.
.claude/settings.local.json
0 → 100644
View file @
aebc53b7
{
"permissions"
:
{
"allow"
:
[
"mcp__zai-mcp-server__analyze_image"
]
}
}
src/components/FinancialTable.vue
View file @
aebc53b7
<
template
>
<div
class=
"mixed-table-wrap"
>
<!-- 调试用:可删除 -->
<!--
{{
tableDataRef
}}
tableData -->
<!-- 总标题(可配置) -->
<div
v-if=
"tableTitle"
class=
"table-main-title"
:style=
"
{
paddingLeft:
!showSerialColumn
&&
!showNameColumn
&&
!showTotalColumn
? '0'
: '80px',
}"
>
{{
tableTitle
}}
</div>
<el-table
:data=
"tableDataRef"
style=
"width: 100%"
...
...
@@ -10,16 +22,18 @@
row-key=
"serialNumber"
v-if=
"validConfig"
>
<!-- 序号列:
保留原逻辑
-->
<!-- 序号列:
控制参数 showSerialColumn
-->
<el-table-column
v-if=
"showSerialColumn"
prop=
"serialNumber"
label=
"序号"
width=
"80"
fixed=
"left"
align=
"center"
/>
<!-- 指标项列
(层级缩进):保留原逻辑
-->
<!-- 指标项列
:控制参数 showNameColumn
-->
<el-table-column
v-if=
"showNameColumn"
prop=
"indicatorName"
label=
"名称"
fixed=
"left"
...
...
@@ -28,6 +42,7 @@
>
<template
#
default=
"
{ row }">
<div
class=
"indicatorName"
:style=
"
{
textIndent: row.level ? `${row.level * 20}px` : '0px',
textAlign: 'left',
...
...
@@ -37,9 +52,14 @@
</div>
</
template
>
</el-table-column>
<!-- 合计列:文本行隐藏合计值,不显示0.00 → 从内部数据取值 -->
<el-table-column
fixed=
"left"
label=
"合计"
width=
"140"
align=
"right"
>
<!-- 合计列:控制参数 showTotalColumn -->
<el-table-column
v-if=
"showTotalColumn"
fixed=
"left"
label=
"合计"
width=
"140"
align=
"right"
>
<
template
#
default=
"{ row }"
>
<span
v-if=
"!row.noTotal"
>
{{
row
.
total
?
Number
(
row
.
total
).
toFixed
(
2
)
:
"0.00"
}}
万元
...
...
@@ -48,8 +68,7 @@
</
template
>
</el-table-column>
<!-- 🌟 新增:多级时间列表头渲染逻辑 -->
<!-- 有时间列分组 → 渲染多级表头 -->
<!-- 多级时间列表头渲染逻辑 -->
<
template
v-if=
"hasTimeHeaderGroup"
>
<el-table-column
v-for=
"group in timeColumnGroups"
...
...
@@ -57,7 +76,6 @@
:label="group.label"
align="right"
>
<!-- 二级表头:时间列 -->
<el-table-column
v-for=
"timeItem in group.children"
:key=
"`time-col-$
{timeItem.prop}`"
...
...
@@ -66,8 +84,9 @@
align="center"
>
<template
#
default=
"
{ row }">
<!-- 🌟 核心修改:优先使用列级isTextRow配置,其次行级 -->
<el-input
v-if=
"row.isTextRow"
v-if=
"
timeItem.isTextRow ||
row.isTextRow"
v-model=
"row[timeItem.prop]"
type=
"textarea"
:rows=
"2"
...
...
@@ -76,11 +95,10 @@
style=
"width: 100%"
@
input=
"() => handleTextInput(row)"
/>
<!--
2.
数字行:金额输入框 -->
<el-input
-number
<!-- 数字行:金额输入框 -->
<el-input
v-else
v-model=
"row[timeItem.prop]"
:min=
"0"
:precision=
"2"
controls-position=
"right"
:disabled=
"isPreview"
...
...
@@ -93,19 +111,19 @@
</el-table-column>
</template>
<!-- 无时间列分组 →
保持原有
单级表头逻辑 -->
<!-- 无时间列分组 → 单级表头逻辑 -->
<el-table-column
v-else
v-for=
"time in validDynamicTime
List
"
v-for=
"time in validDynamicTime
Config
"
:key=
"`time-col-${time.prop || time}`"
:label=
"time.label || time"
min-width=
"140"
align=
"center"
>
<
template
#
default=
"{ row }"
>
<!--
1. 文本行:多行文本输入框
-->
<!--
🌟 核心修改:优先使用列级isTextRow配置,其次行级
-->
<el-input
v-if=
"row.isTextRow"
v-if=
"
time.isTextRow ||
row.isTextRow"
v-model=
"row[time.prop || time]"
type=
"textarea"
:rows=
"2"
...
...
@@ -114,11 +132,10 @@
style=
"width: 100%"
@
input=
"() => handleTextInput(row)"
/>
<!--
2.
数字行:金额输入框 -->
<el-input
-number
<!-- 数字行:金额输入框 -->
<el-input
v-else
v-model=
"row[time.prop || time]"
:min=
"0"
:precision=
"2"
controls-position=
"right"
:disabled=
"isPreview"
...
...
@@ -129,7 +146,6 @@
</
template
>
</el-table-column>
</el-table>
<!-- 配置不合法提示:保留原逻辑 -->
<div
v-else
style=
"text-align: center; padding: 20px; color: #909399"
>
请传入合法的表格配置(包含indicatorList、dynamicTimeList)
</div>
...
...
@@ -139,9 +155,8 @@
<
script
setup
>
import
{
ref
,
computed
,
watch
,
nextTick
,
defineProps
,
defineEmits
}
from
"vue"
;
// 1.
重构Props/Emit:兼容多级表头配置
// 1.
新增总标题Props参数
const
props
=
defineProps
({
// 核心配置对象:包含indicatorList/dynamicTimeList/tableData
modelValue
:
{
type
:
Object
,
default
:
()
=>
({
indicatorList
:
[],
dynamicTimeList
:
[],
tableData
:
[]
}),
...
...
@@ -150,70 +165,79 @@ const props = defineProps({
Array
.
isArray
(
val
.
indicatorList
)
&&
Array
.
isArray
(
val
.
dynamicTimeList
),
},
// 预览模式:保留原配置
isPreview
:
{
type
:
Boolean
,
default
:
false
,
},
// 控制序号列显示(默认显示)
showSerialColumn
:
{
type
:
Boolean
,
default
:
true
,
},
// 控制名称列显示(默认显示)
showNameColumn
:
{
type
:
Boolean
,
default
:
true
,
},
// 控制合计列显示(默认显示)
showTotalColumn
:
{
type
:
Boolean
,
default
:
true
,
},
// 表格总标题(不传则不显示)
tableTitle
:
{
type
:
String
,
default
:
""
,
},
});
// 定义发射事件:双向绑定+业务事件
const
emit
=
defineEmits
([
"update:modelValue"
,
// v-model双向绑定更新
"handleTableChange"
,
// 自定义业务变化事件
]);
const
emit
=
defineEmits
([
"update:modelValue"
,
"handleTableChange"
]);
// 2. 核心:创建组件内部响应式数据
const
tableDataRef
=
ref
([]);
// 3. 🌟 新增:处理动态时间列表(兼容单级/多级配置)
// 支持两种格式:
// - 单级:["一月", "二月"]
// - 多级:[{ label: "一月", prop: "一月", headerGroup: "一季度" }, ...]
// 处理动态时间列表(兼容单级/多级配置,新增isTextRow字段处理)
const
validDynamicTimeConfig
=
computed
(()
=>
{
const
rawTimeList
=
props
.
modelValue
.
dynamicTimeList
||
[];
if
(
!
Array
.
isArray
(
rawTimeList
)
||
rawTimeList
.
length
===
0
)
{
// 兜底默认值
return
[
{
label
:
"2025"
,
prop
:
"2025"
,
headerGroup
:
""
},
{
label
:
"2026"
,
prop
:
"2026"
,
headerGroup
:
""
},
{
label
:
"2027"
,
prop
:
"2027"
,
headerGroup
:
""
},
{
label
:
"2025"
,
prop
:
"2025"
,
headerGroup
:
""
,
isTextRow
:
false
},
{
label
:
"2026"
,
prop
:
"2026"
,
headerGroup
:
""
,
isTextRow
:
false
},
{
label
:
"2027"
,
prop
:
"2027"
,
headerGroup
:
""
,
isTextRow
:
false
},
];
}
// 标准化配置:统一转为对象格式(兼容字符串数组)
return
rawTimeList
.
map
((
item
)
=>
{
if
(
typeof
item
===
"string"
)
{
return
{
label
:
item
.
trim
(),
prop
:
item
.
trim
(),
headerGroup
:
""
,
// 无分组
headerGroup
:
""
,
isTextRow
:
false
,
// 字符串格式默认数字列
};
}
return
{
label
:
item
.
label
?.
trim
()
||
""
,
prop
:
item
.
prop
?.
trim
()
||
item
.
label
?.
trim
()
||
""
,
headerGroup
:
item
.
headerGroup
?.
trim
()
||
""
,
isTextRow
:
item
.
isTextRow
===
true
,
// 显式转换为布尔值,默认false
};
})
.
filter
((
item
)
=>
!!
item
.
prop
);
// 过滤空值
.
filter
((
item
)
=>
!!
item
.
prop
);
});
//
🌟 新增:判断是否有时间列分组(多级表头开关)
//
判断是否有时间列分组
const
hasTimeHeaderGroup
=
computed
(()
=>
{
return
validDynamicTimeConfig
.
value
.
some
((
item
)
=>
!!
item
.
headerGroup
);
});
//
🌟 新增:时间列分组计算(按headerGroup自动分组,保持原始顺序)
//
时间列分组计算
const
timeColumnGroups
=
computed
(()
=>
{
const
timeConfig
=
validDynamicTimeConfig
.
value
;
if
(
!
timeConfig
.
length
)
return
[];
// 构建分组映射
const
groupMap
=
{};
timeConfig
.
forEach
((
item
)
=>
{
// 无headerGroup用唯一标识,避免分组混乱
const
groupKey
=
item
.
headerGroup
||
`single_
${
item
.
prop
}
`
;
if
(
!
groupMap
[
groupKey
])
{
groupMap
[
groupKey
]
=
{
...
...
@@ -225,7 +249,6 @@ const timeColumnGroups = computed(() => {
groupMap
[
groupKey
].
children
.
push
(
item
);
});
// 保持原始顺序,避免分组后列乱序
const
result
=
[];
const
addedKeys
=
new
Set
();
timeConfig
.
forEach
((
item
)
=>
{
...
...
@@ -239,13 +262,12 @@ const timeColumnGroups = computed(() => {
return
result
;
});
//
兼容原有逻辑:
提取纯时间prop列表(用于数据初始化/计算合计)
// 提取纯时间prop列表(用于数据初始化/计算合计)
const
validDynamicTimeList
=
computed
(()
=>
{
// 兼容多级/单级配置,只提取prop
return
validDynamicTimeConfig
.
value
.
map
((
item
)
=>
item
.
prop
);
});
//
4. 配置合法性校验:基于标准化后的时间配置
//
配置合法性校验
const
validConfig
=
computed
(()
=>
{
const
{
indicatorList
}
=
props
.
modelValue
;
return
(
...
...
@@ -255,38 +277,50 @@ const validConfig = computed(() => {
);
});
//
5. 工具方法:初始化行的时间字段(适配新的时间配置)
//
🌟 核心修改:初始化行的时间字段时,适配列级isTextRow配置
const
initRowTimeField
=
(
row
)
=>
{
if
(
!
row
||
typeof
row
!==
"object"
)
return
;
validDynamicTimeList
.
value
.
forEach
((
timeProp
)
=>
{
if
(
row
.
isTextRow
)
{
// 文本行:无值则置空字符串
validDynamicTimeConfig
.
value
.
forEach
((
timeConfig
)
=>
{
const
timeProp
=
timeConfig
.
prop
;
// 列级配置为文本 → 按文本初始化;否则按行级配置
const
isColumnTextRow
=
timeConfig
.
isTextRow
;
if
(
isColumnTextRow
)
{
// 列级文本:置空字符串
row
[
timeProp
]
=
row
[
timeProp
]
===
undefined
||
row
[
timeProp
]
===
null
?
""
:
String
(
row
[
timeProp
]);
}
else
if
(
row
.
isTextRow
)
{
// 行级文本:置空字符串
row
[
timeProp
]
=
row
[
timeProp
]
===
undefined
||
row
[
timeProp
]
===
null
?
""
:
String
(
row
[
timeProp
]);
}
else
{
// 数字
行:无值/非数字则
置0
// 数字
列:
置0
row
[
timeProp
]
=
row
[
timeProp
]
===
undefined
||
row
[
timeProp
]
===
null
||
isNaN
(
Number
(
row
[
timeProp
]))
?
0
?
null
:
Number
(
row
[
timeProp
]);
}
});
};
//
6. 工具方法:计算单行合计(逻辑不变,适配prop列表
)
//
计算单行合计(排除文本列
)
const
calculateRowTotal
=
(
row
)
=>
{
if
(
!
row
||
typeof
row
!==
"object"
||
row
.
noTotal
||
row
.
isTextRow
)
return
0
;
const
total
=
validDynamicTimeList
.
value
.
reduce
((
sum
,
timeProp
)
=>
{
const
total
=
validDynamicTimeConfig
.
value
.
filter
((
timeConfig
)
=>
!
timeConfig
.
isTextRow
)
// 🌟 过滤文本列,不参与合计
.
reduce
((
sum
,
timeConfig
)
=>
{
const
timeProp
=
timeConfig
.
prop
;
return
sum
+
(
Number
(
row
[
timeProp
])
||
0
);
},
0
);
return
Number
(
total
.
toFixed
(
2
));
// 解决浮点精度问题
return
Number
(
total
.
toFixed
(
2
));
};
//
7. 核心工具方法:深拷贝+数据处理(逻辑不变)
//
核心工具方法:深拷贝+数据处理
const
handleTableData
=
(
sourceIndicatorList
,
sourceTableData
)
=>
{
if
(
!
validConfig
.
value
)
return
[];
const
newData
=
[];
...
...
@@ -294,7 +328,6 @@ const handleTableData = (sourceIndicatorList, sourceTableData) => {
const
{
name
,
isTextRow
=
false
,
noTotal
=
false
}
=
item
;
const
level
=
item
?.
level
||
0
;
const
serialNumber
=
item
?.
serialNumber
||
index
+
1
;
// 深拷贝源数据行
const
originRow
=
sourceTableData
.
find
((
row
)
=>
row
.
indicatorName
===
name
)
||
{};
const
rowData
=
JSON
.
parse
(
...
...
@@ -308,16 +341,14 @@ const handleTableData = (sourceIndicatorList, sourceTableData) => {
...
originRow
,
}),
);
// 初始化时间字段
initRowTimeField
(
rowData
);
// 计算合计
rowData
.
total
=
calculateRowTotal
(
rowData
);
newData
.
push
(
rowData
);
});
return
newData
;
};
//
8. 工具方法:数据变化后统一发射(逻辑不变)
//
数据变化后统一发射
const
emitDataChange
=
(
newInnerData
)
=>
{
if
(
props
.
isPreview
)
return
;
const
emitData
=
JSON
.
parse
(
JSON
.
stringify
(
newInnerData
));
...
...
@@ -329,7 +360,7 @@ const emitDataChange = (newInnerData) => {
emit
(
"handleTableChange"
,
newModelValue
);
};
//
9. 监听Props变化:同步到内部数据(逻辑不变)
//
监听Props变化
watch
(
()
=>
props
.
modelValue
,
async
(
newVal
)
=>
{
...
...
@@ -344,20 +375,20 @@ watch(
{
deep
:
true
,
immediate
:
true
},
);
//
10. 数字行输入回调(逻辑不变)
//
数字行输入回调
const
handleFinancialChange
=
(
currentRow
)
=>
{
if
(
props
.
isPreview
||
!
currentRow
||
currentRow
.
noTotal
)
return
;
currentRow
.
total
=
calculateRowTotal
(
currentRow
);
emitDataChange
(
tableDataRef
.
value
);
};
//
11. 文本行输入回调(逻辑不变)
//
文本行输入回调
const
handleTextInput
=
(
currentRow
)
=>
{
if
(
props
.
isPreview
||
!
currentRow
)
return
;
emitDataChange
(
tableDataRef
.
value
);
};
//
12. 表格单元格样式(保留原逻辑)
//
表格单元格样式
const
tableCellStyle
=
({
row
})
=>
{
if
(
row
?.
isTotal
)
{
return
{
background
:
"#f5f7fa"
,
fontWeight
:
"bold"
,
textAlign
:
"right"
};
...
...
@@ -367,14 +398,24 @@ const tableCellStyle = ({ row }) => {
</
script
>
<
style
scoped
lang=
"scss"
>
// 外层容器:适配滚动
.mixed-table-wrap
{
width
:
100%
;
box-sizing
:
border-box
;
overflow-x
:
auto
;
}
// 数字输入框样式
// 总标题样式
.table-main-title
{
font-size
:
16px
;
font-weight
:
600
;
color
:
#1f2937
;
border-bottom
:
1px
solid
#ebeef5
;
height
:
48px
;
line-height
:
48px
;
background
:
#f5f7fa
;
text-align
:
center
;
}
:deep
(
.el-input-number
)
{
width
:
100%
;
}
...
...
@@ -384,14 +425,12 @@ const tableCellStyle = ({ row }) => {
width
:
100%
!
important
;
}
// 文本输入框样式
:deep
(
.el-input__textarea
)
{
resize
:
none
;
text-align
:
left
!
important
;
min-height
:
40px
!
important
;
}
// 表格列头样式
:deep
(
.el-table__header-cell
)
{
text-align
:
right
!
important
;
&
.el-table__header-cell--align-center
{
...
...
@@ -399,14 +438,12 @@ const tableCellStyle = ({ row }) => {
}
}
// 表格单元格
:deep
(
.el-table__cell
)
{
padding
:
4px
8px
!
important
;
height
:
48px
!
important
;
vertical-align
:
middle
!
important
;
}
// 表格行高
:deep
(
.el-table__row
)
{
height
:
48px
!
important
;
}
...
...
src/styles/manage.css
View file @
aebc53b7
...
...
@@ -315,8 +315,9 @@
}
.add-project-content
.el-collapse-item__header
{
background-color
:
#f5f7fa
;
height
:
48px
!important
;
padding
:
16px
;
padding
:
0
24px
;
margin
:
0
;
margin-bottom
:
24px
;
font-size
:
14px
;
margin-bottom
:
16px
;
border-radius
:
4px
;
}
src/styles/manage.less
View file @
aebc53b7
...
...
@@ -343,10 +343,11 @@
}
.el-collapse-item__header {
background-color: #f5f7fa;
height: 48px !important;
padding: 16px;
padding: 0 24px;
margin: 0;
margin-bottom: 24px;
font-size: 14px;
margin-bottom: 16px;
border-radius: 4px;
}
}
// ==========================设置定制化样式 end ==========================
src/views/castbehind/investmentCecoveryAdd.vue
View file @
aebc53b7
...
...
@@ -9,7 +9,7 @@
<el-collapse
v-model=
"activeCollapse"
>
<el-collapse-item
title=
"项目基本信息"
name=
"项目基本信息"
>
<el-row
:gutter=
"24"
>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"项目名称"
required
>
<el-select
v-model=
"formData.projectId"
...
...
@@ -26,7 +26,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"所属行业"
>
<CommonSelector
v-model=
"formData.sshy"
...
...
@@ -34,7 +34,7 @@
/>
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"项目公司名称"
>
<el-input
v-model=
"formData.xmgsmc"
...
...
@@ -43,7 +43,7 @@
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"填报单位名称"
>
<el-input
v-model=
"formData.sbdw"
...
...
@@ -52,7 +52,7 @@
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"所属二级企业"
>
<el-input
v-model=
"formData.ssejqy"
...
...
@@ -60,7 +60,7 @@
/>
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"项目阶段"
>
<CommonSelector
v-model=
"formData.xmjd"
...
...
@@ -69,7 +69,7 @@
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"项目类别"
>
<CommonSelector
v-model=
"formData.xmlx"
...
...
@@ -77,7 +77,7 @@
></CommonSelector>
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"投资模式分类"
>
<CommonSelector
v-model=
"formData.tzms"
...
...
@@ -85,7 +85,7 @@
/>
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"投资回收方式"
>
<CommonSelector
v-model=
"formData.tzhsfs"
...
...
@@ -94,7 +94,7 @@
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"下年项目阶段"
>
<CommonSelector
v-model=
"formData.xnxmjd"
...
...
@@ -102,7 +102,7 @@
/>
</el-form-item>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"财务报表类型"
>
<CommonSelector
v-model=
"formData.cwbblx"
...
...
@@ -125,7 +125,8 @@
><el-row
gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目投资总额(决策值)(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.tzzejc"
placeholder=
"请输入项目投资总额(决策值)(万元)"
/>
...
...
@@ -133,7 +134,8 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"我方资本金出资额-决策值(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.wfzbjczejc"
placeholder=
"请输入我方资本金出资额-决策值(万元)"
/>
...
...
@@ -141,7 +143,8 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"投资总额-实际值(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.tzzesj"
placeholder=
"请输入投资总额-实际值(万元)"
/>
...
...
@@ -149,7 +152,8 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"我方资本金出资额--实际值(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.wfzbjczesj"
placeholder=
"请输入我方资本金出资额--实际值(万元)"
/>
...
...
@@ -157,7 +161,8 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"投资总额-计划值(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.tzzejhz"
placeholder=
"请输入投资总额-计划值(万元)"
/>
...
...
@@ -174,40 +179,40 @@
<!-- 第一行:决策目标值相关数字项 -->
<el-col
:span=
"12"
>
<el-form-item
label=
"本年完成 投资回收决策目标值(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.bnwc"
type=
"number"
precision=
"8"
placeholder=
"请输入本年完成 投资回收决策目标值(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"截止本年累计(决策目标值)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.jzbnlj"
type=
"number"
precision=
"8"
placeholder=
"请输入截止本年累计(决策目标值)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"下一年完成数(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.xynwcs"
type=
"number"
precision=
"8"
placeholder=
"请输入下一年完成数(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"本年计划(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.bnjh"
type=
"number"
precision=
"8"
placeholder=
"请输入本年计划(万元)"
/>
</el-form-item>
...
...
@@ -216,40 +221,40 @@
<!-- 第二行:实际值相关数字项 -->
<el-col
:span=
"12"
>
<el-form-item
label=
"本年完成--投资回收实际值(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.bnwcsjz"
type=
"number"
precision=
"8"
placeholder=
"请输入本年完成--投资回收实际值(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"截止本年累计--投资回收实际值"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.jzbnljsjz"
type=
"number"
precision=
"8"
placeholder=
"请输入截止本年累计--投资回收实际值"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"累计欠收(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.ljqs"
type=
"number"
precision=
"8"
placeholder=
"请输入累计欠收(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"完成率(%)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.wcl"
type=
"number"
precision=
"2"
placeholder=
"请输入完成率(%)"
/>
</el-form-item>
...
...
@@ -328,22 +333,18 @@
:is-preview=
"isPreview"
/>
</el-collapse-item>
<el-collapse-item
title=
"投资回收(决策)"
name=
"投资回收(决策)"
>
<FinancialTable
v-model=
"formData.tzhsjc"
:is-preview=
"isPreview"
/>
</el-collapse-item>
<el-collapse-item
title=
"投资回收(计划)"
name=
"投资回收(计划)"
>
<FinancialTable
v-model=
"formData.tzhsjh"
:showSerialColumn=
"false"
:is-preview=
"isPreview"
table-title=
"2026年投资回收计划明细"
:showNameColumn=
"false"
:showTotalColumn=
"false"
/>
</el-collapse-item>
</el-collapse>
...
...
@@ -435,79 +436,87 @@ const activeCollapse = ref([
let
initTableData
=
()
=>
{
Object
.
assign
(
formData
,
{
jzymljys
:
{
// 指标列表
indicatorList
:
[
{
name
:
"政府付费"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"政府补贴"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"使用者付费"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"使用者欠付"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"补贴收入"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
isTextRow
:
false
,
noTotal
:
false
,
},
{
name
:
"资产盘活"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"股权分红"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"其他"
,
isTextRow
:
false
,
noTotal
:
false
},
// 关键:标记为文本行+不需要合计
{
name
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
noTotal
:
true
},
{
name
:
"一月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"二月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"三月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"四月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"五月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"六月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"七月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"八月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"九月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"十月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"十一月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"十二月"
,
isTextRow
:
false
,
noTotal
:
false
},
],
// 时间列表(月度)
dynamicTimeList
:
[
"一月"
,
"二月"
,
"三月"
,
"四月"
,
"五月"
,
"六月"
,
"七月"
,
"八月"
,
"九月"
,
"十月"
,
"十一月"
,
"十二月"
,
{
label
:
"政府付费"
,
prop
:
"a1"
},
{
label
:
"政府补贴"
,
prop
:
"a2"
},
{
label
:
"使用者付费"
,
prop
:
"a3"
},
{
label
:
"使用者欠付"
,
prop
:
"a4"
},
{
label
:
"补贴收入"
,
prop
:
"a5"
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a6"
,
},
{
label
:
"资产盘活"
,
prop
:
"a7"
},
{
label
:
"股权分红"
,
prop
:
"a8"
},
{
label
:
"其他"
,
prop
:
"a9"
},
{
label
:
"目标(决策)与计划差异说明"
,
prop
:
"a10"
,
isTextRow
:
true
,
},
],
// 表格数据(子组件会自动初始化,父组件可传初始值)
// 表格数据(子组件自动初始化,无需手动赋值)
tableData
:
[],
},
jzymljsh
:
{
// 指标列表
indicatorList
:
[
{
name
:
"政府付费"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"政府补贴"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"使用者付费"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"使用者欠付"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"补贴收入"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"一月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"二月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"三月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"四月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"五月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"六月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"七月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"八月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"九月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"十月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"十一月"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"
销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)
"
,
name
:
"
十二月
"
,
isTextRow
:
false
,
noTotal
:
false
,
},
{
name
:
"资产盘活"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"股权分红"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"其他"
,
isTextRow
:
false
,
noTotal
:
false
},
// 关键:标记为文本行+不需要合计
{
name
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
noTotal
:
true
},
],
// 时间列表(月度)
dynamicTimeList
:
[
"一月"
,
"二月"
,
"三月"
,
"四月"
,
"五月"
,
"六月"
,
"七月"
,
"八月"
,
"九月"
,
"十月"
,
"十一月"
,
"十二月"
,
{
label
:
"政府付费"
,
prop
:
"a1"
},
{
label
:
"政府补贴"
,
prop
:
"a2"
},
{
label
:
"使用者付费"
,
prop
:
"a3"
},
{
label
:
"使用者欠付"
,
prop
:
"a4"
},
{
label
:
"补贴收入"
,
prop
:
"a5"
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a6"
,
},
{
label
:
"资产盘活"
,
prop
:
"a7"
},
{
label
:
"股权分红"
,
prop
:
"a8"
},
{
label
:
"其他"
,
prop
:
"a9"
},
{
label
:
"目标(决策)与计划差异说明"
,
prop
:
"a10"
,
isTextRow
:
true
,
},
],
// 表格数据(子组件会自动初始化,父组件可传初始值)
// 表格数据(子组件自动初始化,无需手动赋值)
tableData
:
[],
},
tzhsjc
:
{
...
...
@@ -543,30 +552,123 @@ let initTableData = () => {
tzhsjh
:
{
// 指标列表
indicatorList
:
[
{
name
:
"建设期政府付费"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"运营期政府付费"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"投资价差收取"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"参股项目投资回收"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"代建工程款回收"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"政府付费"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"政府补贴"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"使用者付费"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"使用者欠付"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"补贴收入"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
isTextRow
:
false
,
noTotal
:
false
,
name
:
" "
,
},
{
name
:
"资产盘活"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"股权分红"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"其他"
,
isTextRow
:
false
,
noTotal
:
false
},
// 关键:标记为文本行+不需要合计
{
name
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
noTotal
:
true
},
],
// 时间列表(月度)
dynamicTimeList
:
[
"一季度"
,
"二季度"
,
"三季度"
,
"四季度"
],
dynamicTimeList
:
[
// 第一组:2026年
{
label
:
"合计"
,
prop
:
"a1"
,
headerGroup
:
"2026年"
},
{
label
:
"政府付费"
,
prop
:
"a2"
,
headerGroup
:
"2026年"
},
{
label
:
"政府补助"
,
prop
:
"a3"
,
headerGroup
:
"2026年"
},
{
label
:
"使用者付费"
,
prop
:
"a4"
,
headerGroup
:
"2026年"
},
{
label
:
"使用者欠付"
,
prop
:
"a5"
,
headerGroup
:
"2026年"
},
{
label
:
"补贴收入"
,
prop
:
"a6"
,
headerGroup
:
"2026年"
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a7"
,
headerGroup
:
"2026年"
,
},
{
label
:
"资产盘活"
,
prop
:
"a8"
,
headerGroup
:
"2026年"
},
{
label
:
"股权分红"
,
prop
:
"a9"
,
headerGroup
:
"2026年"
},
{
label
:
"其他"
,
prop
:
"a10"
,
headerGroup
:
"2026年"
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a11"
,
headerGroup
:
"2026年"
,
},
// 第三组:2026年(一季度)
{
label
:
"合计"
,
prop
:
"a23"
,
headerGroup
:
"2026年(一季度)"
},
{
label
:
"政府付费"
,
prop
:
"a24"
,
headerGroup
:
"2026年(一季度)"
},
{
label
:
"政府补助"
,
prop
:
"a25"
,
headerGroup
:
"2026年(一季度)"
},
{
label
:
"使用者付费"
,
prop
:
"a26"
,
headerGroup
:
"2026年(一季度)"
},
{
label
:
"使用者欠付"
,
prop
:
"a27"
,
headerGroup
:
"2026年(一季度)"
},
{
label
:
"补贴收入"
,
prop
:
"a28"
,
headerGroup
:
"2026年(一季度)"
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a29"
,
headerGroup
:
"2026年(一季度)"
,
},
{
label
:
"资产盘活"
,
prop
:
"a30"
,
headerGroup
:
"2026年(一季度)"
},
{
label
:
"股权分红"
,
prop
:
"a31"
,
headerGroup
:
"2026年(一季度)"
},
{
label
:
"其他"
,
prop
:
"a32"
,
headerGroup
:
"2026年(一季度)"
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a33"
,
headerGroup
:
"2026年(一季度)"
,
},
// 第四组:2026年(二季度)
{
label
:
"合计"
,
prop
:
"a34"
,
headerGroup
:
"2026年(二季度)"
},
{
label
:
"政府付费"
,
prop
:
"a35"
,
headerGroup
:
"2026年(二季度)"
},
{
label
:
"政府补助"
,
prop
:
"a36"
,
headerGroup
:
"2026年(二季度)"
},
{
label
:
"使用者付费"
,
prop
:
"a37"
,
headerGroup
:
"2026年(二季度)"
},
{
label
:
"使用者欠付"
,
prop
:
"a38"
,
headerGroup
:
"2026年(二季度)"
},
{
label
:
"补贴收入"
,
prop
:
"a39"
,
headerGroup
:
"2026年(二季度)"
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a40"
,
headerGroup
:
"2026年(二季度)"
,
},
{
label
:
"资产盘活"
,
prop
:
"a41"
,
headerGroup
:
"2026年(二季度)"
},
{
label
:
"股权分红"
,
prop
:
"a42"
,
headerGroup
:
"2026年(二季度)"
},
{
label
:
"其他"
,
prop
:
"a43"
,
headerGroup
:
"2026年(二季度)"
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a44"
,
headerGroup
:
"2026年(二季度)"
,
},
// 第五组:2026年(三季度)
{
label
:
"合计"
,
prop
:
"a45"
,
headerGroup
:
"2026年(三季度)"
},
{
label
:
"政府付费"
,
prop
:
"a46"
,
headerGroup
:
"2026年(三季度)"
},
{
label
:
"政府补助"
,
prop
:
"a47"
,
headerGroup
:
"2026年(三季度)"
},
{
label
:
"使用者付费"
,
prop
:
"a48"
,
headerGroup
:
"2026年(三季度)"
},
{
label
:
"使用者欠付"
,
prop
:
"a49"
,
headerGroup
:
"2026年(三季度)"
},
{
label
:
"补贴收入"
,
prop
:
"a50"
,
headerGroup
:
"2026年(三季度)"
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a51"
,
headerGroup
:
"2026年(三季度)"
,
},
{
label
:
"资产盘活"
,
prop
:
"a52"
,
headerGroup
:
"2026年(三季度)"
},
{
label
:
"股权分红"
,
prop
:
"a53"
,
headerGroup
:
"2026年(三季度)"
},
{
label
:
"其他"
,
prop
:
"a54"
,
headerGroup
:
"2026年(三季度)"
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a55"
,
headerGroup
:
"2026年(三季度)"
,
},
// 第六组:2026年(四季度)
{
label
:
"合计"
,
prop
:
"a56"
,
headerGroup
:
"2026年(四季度)"
},
{
label
:
"政府付费"
,
prop
:
"a57"
,
headerGroup
:
"2026年(四季度)"
},
{
label
:
"政府补助"
,
prop
:
"a58"
,
headerGroup
:
"2026年(四季度)"
},
{
label
:
"使用者付费"
,
prop
:
"a59"
,
headerGroup
:
"2026年(四季度)"
},
{
label
:
"使用者欠付"
,
prop
:
"a60"
,
headerGroup
:
"2026年(四季度)"
},
{
label
:
"补贴收入"
,
prop
:
"a61"
,
headerGroup
:
"2026年(四季度)"
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a62"
,
headerGroup
:
"2026年(四季度)"
,
},
{
label
:
"资产盘活"
,
prop
:
"a63"
,
headerGroup
:
"2026年(四季度)"
},
{
label
:
"股权分红"
,
prop
:
"a64"
,
headerGroup
:
"2026年(四季度)"
},
{
label
:
"其他"
,
prop
:
"a65"
,
headerGroup
:
"2026年(四季度)"
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a66"
,
headerGroup
:
"2026年(四季度)"
,
},
],
// 表格数据(子组件会自动初始化,父组件可传初始值)
tableData
:
[],
},
...
...
src/views/everydayPage/annualAdd.vue
View file @
aebc53b7
...
...
@@ -527,7 +527,7 @@
<el-table-column
prop=
"indicatorName"
label=
"指标项"
min-width=
"
28
0"
min-width=
"
30
0"
>
<template
#
default=
"
{ row }">
<div
:style=
"
{ textIndent: `${row.level * 20}px` }">
...
...
@@ -606,9 +606,9 @@
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"项目
融资落地时间或预计落地
时间"
>
<el-form-item
label=
"项目
预计起始
时间"
>
<el-date-picker
v-model=
"formData.xm
RzLdSjHyyjLdS
j"
v-model=
"formData.xm
kgsjy
j"
type=
"date"
placeholder=
"请选择时间"
value-format=
"YYYY-MM-DD"
...
...
@@ -616,9 +616,9 @@
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"项目
融资落地时间或预计落地
时间"
>
<el-form-item
label=
"项目
预计完成
时间"
>
<el-date-picker
v-model=
"formData.xm
RzLdSjHyyjLdS
j"
v-model=
"formData.xm
jgsjy
j"
type=
"date"
placeholder=
"请选择时间"
value-format=
"YYYY-MM-DD"
...
...
@@ -1326,7 +1326,7 @@ const initAnnualPlanTable = () => {
if
(
rcCgqyglId
.
value
)
return
;
if
(
annualDynamicTimeList
.
value
.
length
===
0
)
return
;
// 生成17行带唯一id的独立数据(保留基础id,子组件会保留所有字段)
const
tableData
=
Array
.
from
({
length
:
17
},
(
_
,
index
)
=>
({
const
tableData
=
Array
.
from
({
length
:
24
},
(
_
,
index
)
=>
({
id
:
index
+
1
,
// 子组件唯一标识,必须保留
total
:
0
,
...
annualDynamicTimeList
.
value
.
reduce
(
...
...
src/views/everydayPage/annualPlan.vue
View file @
aebc53b7
...
...
@@ -7,7 +7,9 @@
<tbody>
<!-- 计划资金来源(全口径)模块 -->
<tr>
<td
rowspan=
"18"
class=
"first-col"
>
年度投资计划
</td>
<!-- 调整rowspan:从18改为26(原15行 + 新增11行) -->
<td
rowspan=
"24"
class=
"first-col"
>
年度投资计划
</td>
<!-- 调整rowspan:从16改为26 -->
<td
rowspan=
"16"
class=
"second-col"
>
计划投资完成及资金来源
</td>
<td
rowspan=
"9"
class=
"third-col"
>
计划资金来源(全口径)
</td>
<td
style=
"height: 48px"
></td>
...
...
@@ -52,7 +54,7 @@
</tr>
<!-- 资金来源(新口径)模块 -->
<tr>
<td
rowspan=
"
6
"
class=
"third-col"
>
资金来源(新口径)
</td>
<td
rowspan=
"
7
"
class=
"third-col"
>
资金来源(新口径)
</td>
<td>
合计
</td>
<td></td>
<td>
{{
getRowTotal
(
9
)
}}
万元
</td>
...
...
@@ -83,23 +85,58 @@
<tr>
<td>
其他
</td>
<td></td>
<td></td>
<td>
{{
getRowTotal
(
15
)
}}
万元
</td>
</tr>
<!-- 合计与政府付费模块 -->
<!-- 新增:计划投资回款及相关模块 -->
<tr>
<td>
合计
</td>
<td
rowspan=
"5"
class=
"fourth-col"
>
计划投资回款
</td>
<td
colspan=
"3"
>
合计
</td>
<td>
{{
getRowTotal
(
16
)
}}
万元
</td>
</tr>
<tr>
<td
colspan=
"3"
>
政府付费*
</td>
<td>
{{
getRowTotal
(
17
)
}}
万元
</td>
</tr>
<tr>
<td
colspan=
"3"
>
使用者付费(销售回款)*
</td>
<td>
{{
getRowTotal
(
18
)
}}
万元
</td>
</tr>
<tr>
<td
colspan=
"3"
>
政府补助*
</td>
<td>
{{
getRowTotal
(
19
)
}}
万元
</td>
</tr>
<tr>
<td
colspan=
"3"
>
其他*
</td>
<td>
{{
getRowTotal
(
20
)
}}
万元
</td>
</tr>
<tr>
<td
class=
"fourth-col"
>
计划投资价差*
</td>
<td></td>
<td></td>
<td></td>
<td>
{{
getRowTotal
(
16
)
}}
万元
</td>
<td>
{{
getRowTotal
(
21
)
}}
万元
</td>
</tr>
<tr>
<td
>
政府付费
*
</td>
<td
class=
"fourth-col"
>
计划带动工程合同额
*
</td>
<td></td>
<td></td>
<td></td>
<td>
{{
getRowTotal
(
17
)
}}
万元
</td>
<td>
{{
getRowTotal
(
22
)
}}
万元
</td>
</tr>
<tr>
<td
class=
"fourth-col"
>
计划带动工程收益*
</td>
<td></td>
<td></td>
<td></td>
<td>
{{
getRowTotal
(
23
)
}}
万元
</td>
</tr>
<tr>
<td
class=
"first-col"
>
年度投资预算
</td>
<td
class=
"second-col"
>
本年度投资预算
</td>
<td>
资本金
</td>
<td
colspan=
"2"
>
我方(仅指本单位)
</td>
<td>
{{
getRowTotal
(
24
)
}}
万元
</td>
</tr>
</tbody>
</table>
...
...
@@ -322,6 +359,11 @@ onMounted(() => {
font-weight
:
500
;
background-color
:
#f5f7fa
;
}
// 新增:第四列样式(计划投资回款等模块)
.fourth-col
{
background-color
:
#f5f7fa
;
font-weight
:
500
;
}
// 样式优化:移除不必要的隐藏,确保元素可见
:deep
(
.el-table
)
{
--el-table-border-color
:
#ebeef5
;
...
...
src/views/everydayPage/shareAdd.vue
View file @
aebc53b7
...
...
@@ -8,13 +8,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-col
:span=
"
6
"
>
<el-form-item
label=
"
参股公司名称
"
required
>
<el-select
v-model=
"formData.projectId"
placeholder=
"请选择
项目信息
"
placeholder=
"请选择
参股公司名称
"
no-data-text=
"暂无数据"
@
change=
"changeProject"
>
...
...
@@ -27,449 +28,1463 @@
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目所处阶段"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"境内/外"
>
<el-select
v-model=
"formData.jnw"
placeholder=
"请选择境内/外"
>
<el-option
label=
"境内"
value=
"境内"
></el-option>
<el-option
label=
"境外"
value=
"境外"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"省(境)内/洲(境)外"
>
<el-input
v-model=
"formData.sqnzw"
placeholder=
"请输入省(境)内/洲(境)外"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"项目名称"
>
<el-input
v-model=
"formData.xmmc"
placeholder=
"请输入项目名称"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"项目编号"
>
<el-input
v-model=
"formData.xmbh"
placeholder=
"请输入项目编号"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"区县(境)内/国家(境)外"
>
<el-input
v-model=
"formData.qxnzwgw"
placeholder=
"请输入区县(境)内/国家(境)外"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"申报单位"
>
<el-input
v-model=
"formData.sbdw"
placeholder=
"请输入申报单位"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"所属二级单位"
>
<el-input
v-model=
"formData.ssejdw"
placeholder=
"请输入所属二级单位"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否境外企业"
>
<el-select
v-model=
"formData.sfjwqy"
placeholder=
"请选择是否境外企业"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"形成参股原因"
>
<el-select
v-model=
"formData.x
mscjd
"
placeholder=
"请选择
项目所处阶段
"
v-model=
"formData.x
ccgyy
"
placeholder=
"请选择
形成参股原因
"
>
<el-option
v-for=
"item in options?.xmjd"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
label=
"合资设立"
value=
"合资设立"
></el-option>
<el-option
label=
"股权受让"
value=
"股权受让"
></el-option>
<el-option
label=
"增资扩股"
value=
"增资扩股"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"其他参股原因"
>
<el-input
v-model=
"formData.qtcgyy"
placeholder=
"请输入其他参股原因"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"参股分类"
>
<el-select
v-model=
"formData.cgfl"
placeholder=
"请选择参股分类"
>
<el-option
label=
"绝对控股"
value=
"绝对控股"
></el-option>
<el-option
label=
"相对控股"
value=
"相对控股"
></el-option>
<el-option
label=
"参股"
value=
"参股"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"
12
"
>
<el-form-item
label=
"
全称
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"
项目状态
"
>
<el-input
v-model=
"formData.
qc
"
placeholder=
"请输入
全称
"
v-model=
"formData.
xmzt
"
placeholder=
"请输入
项目状态
"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"简称"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否集团主业"
>
<el-select
v-model=
"formData.sfjtzy"
placeholder=
"请选择是否集团主业"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否属主业关联产业"
>
<el-select
v-model=
"formData.sfzyglcy"
placeholder=
"请选择是否属主业关联产业"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否属于战略性持有或有培育期"
>
<el-select
v-model=
"formData.sfgzxccyypyq"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"所属行业"
>
<el-input
v-model=
"formData.
jc
"
placeholder=
"请输入
简称
"
v-model=
"formData.
sshy
"
placeholder=
"请输入
所属行业
"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否为民营企业"
>
<el-select
v-model=
"formData.sfwmqy"
placeholder=
"请选择是否为民营企业"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否上市公司"
>
<el-select
v-model=
"formData.sfssgs"
placeholder=
"请选择是否上市公司"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否为问题整改项目"
>
<el-select
v-model=
"formData.sfwtzgxm"
placeholder=
"请选择是否为问题整改项目"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"内部投资管理主体"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否民营企业实际运营"
>
<el-select
v-model=
"formData.sfmqysjyy"
placeholder=
"请选择是否民营企业实际运营"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否整改完成"
>
<el-select
v-model=
"formData.sfzgwc"
placeholder=
"请选择是否整改完成"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否落号"
>
<el-select
v-model=
"formData.sflh"
placeholder=
"请选择是否落号"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"决策批复时间"
>
<el-date-picker
v-model=
"formData.jcpfsj"
type=
"date"
placeholder=
"请选择决策批复时间"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"参股形成时间"
>
<el-date-picker
v-model=
"formData.cgxcjsj"
type=
"date"
placeholder=
"请选择参股形成时间"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"计划退出年份"
>
<el-input
v-model=
"formData.
nbtzglzt
"
placeholder=
"请输入
内部投资管理主体
"
v-model=
"formData.
jhtcnf
"
placeholder=
"请输入
计划退出年份
"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"股权结构"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"风险金额(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.fxje"
placeholder=
"请输入风险金额(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"是否我方控股非并表企业"
>
<el-select
v-model=
"formData.sfwfkgfbbqy"
placeholder=
"请选择是否我方控股非并表企业"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"主营业务"
>
<el-input
v-model=
"formData.gqjg"
placeholder=
"请输入股权结构"
v-model=
"formData.zyyw"
type=
"textarea"
:rows=
"2"
placeholder=
"请输入主营业务"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title=
"出资情况"
name=
"出资情况"
>
<!-- 规模指标及额度 -->
<el-collapse-item
title=
"规模指标及额度"
name=
"规模指标及额度"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"210"
label=
"项目资本金总额(亿元)"
<el-col
:span=
"6"
>
<el-form-item
label=
"十二大业务板块"
>
<el-select
v-model=
"formData.sehybk"
placeholder=
"请选择十二大业务板块"
>
<el-option
label=
"E综合交通"
value=
"E综合交通"
></el-option>
<el-option
label=
"F城建"
value=
"F城建"
></el-option>
<el-option
label=
"G能源"
value=
"G能源"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"指标名称"
>
<el-input
type=
"number"
v-model
.
number=
"formData.xmzbjze"
placeholder=
"请输入项目资本金总额(亿元)"
step=
"0.01"
v-model=
"formData.zbmc"
placeholder=
"请输入指标名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"210"
label=
"公司资本金应出资总额(亿元)"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"数量"
>
<el-input-number
precision=
"2"
v-model=
"formData.sl"
placeholder=
"请输入数量"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"单位"
>
<el-input
type=
"number"
v-model
.
number=
"formData.gszbjyczze"
placeholder=
"请输入公司资本金应出资总额(亿元)"
step=
"0.01"
v-model=
"formData.dwdw"
placeholder=
"请输入单位"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"批复文件"
>
<el-button
type=
"primary"
>
上传
</el-button>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"营业执照"
>
<el-button
type=
"primary"
>
上传
</el-button>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"合作协议"
>
<el-button
type=
"primary"
>
上传
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 股东信息 -->
<el-collapse-item
title=
"股东信息"
name=
"股东信息"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"210"
label=
"公司当前应出资额(亿元)"
<el-form-item
label=
"是否无实际控制人"
>
<el-select
v-model=
"formData.sfwjskzr"
placeholder=
"请选择是否无实际控制人"
>
<el-input
type=
"number"
v-model
.
number=
"formData.gsdqycze"
placeholder=
"请输入公司当前应出资额(亿元)"
step=
"0.01"
/>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"210"
label=
"公司当前已出资额(亿元)"
<el-form-item
label=
"是否平股"
>
<el-select
v-model=
"formData.sfpg"
placeholder=
"请选择是否平股"
>
<el-input
type=
"number"
v-model
.
number=
"formData.gsdqyjcze"
placeholder=
"请输入公司当前已出资额(亿元)"
step=
"0.01"
/>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"210"
label=
"公司当前应出未出金额(亿元)"
>
<el-form-item
label=
"股东名称"
>
<el-input
type=
"number"
v-model
.
number=
"formData.gsdqycwcje"
placeholder=
"请输入公司当前应出未出金额(亿元)"
step=
"0.01"
v-model=
"formData.gdmc"
placeholder=
"请输入股东名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"210"
label=
"公司当前剩余出资额(亿元)"
>
<el-input
type=
"number"
v-model
.
number=
"formData.gsdqsycze"
placeholder=
"请输入公司当前剩余出资额(亿元)"
step=
"0.01"
<el-form-item
label=
"股比(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.gbl"
placeholder=
"请输入股比(%)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"210"
label=
"超股比出资情况"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"国有股东合计股比(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.gdgdhjgbl"
placeholder=
"请输入国有股东合计股比(%)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"新建参股合计(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.xjcghj"
placeholder=
"请输入新建参股合计(%)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"一致行动人股比合计(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.yzxdrhjhj"
placeholder=
"请输入一致行动人股比合计(%)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"一致行动人单位名称"
>
<el-input
v-model=
"formData.yzxdrdwmc"
placeholder=
"请输入一致行动人单位名称"
/>
</el-form-item>
</el-col>
</el-row>
<!-- 股东信息表格 -->
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
@
click=
"addGdxx"
>
新增
</el-button>
<el-button
type=
"primary"
>
章程:上传
</el-button>
</div>
<el-table
:data=
"gdxxList"
style=
"width: 100%"
empty-text=
"暂无数据"
border
show-summary
:summary-method=
"sumGdxxColumns"
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<el-table-column
prop=
"gdmc"
label=
"股东名称"
>
<template
#
default=
"scope"
>
<el-input
v-model=
"formData.cgbczqk"
placeholder=
"请输入超股比出资情况"
v-model=
"scope.row.gdmc"
placeholder=
"请输入股东名称"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"gdxz"
label=
"股东性质"
>
<
template
#
default=
"scope"
>
<el-select
v-model=
"scope.row.gdxz"
placeholder=
"请选择股东性质"
>
<el-option
label=
"中央企业"
value=
"中央企业"
></el-option>
<el-option
label=
"地方国有企业"
value=
"地方国有企业"
></el-option>
<el-option
label=
"其他"
value=
"其他"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"gbl"
label=
"股比(%)"
>
<
template
#
default=
"scope"
>
<el-input-number
precision=
"2"
v-model=
"scope.row.gbl"
placeholder=
"请输入股比(%)"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"sfkgdg"
label=
"是否控股股东"
>
<
template
#
default=
"scope"
>
<el-select
v-model=
"scope.row.sfkgdg"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"sfjtcydw"
label=
"是否集团内成员单位"
>
<
template
#
default=
"scope"
>
<el-select
v-model=
"scope.row.sfjtcydw"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"sfskdw"
label=
"是否实控单位"
>
<
template
#
default=
"scope"
>
<el-select
v-model=
"scope.row.sfskdw"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"sfyzxdr"
label=
"是否一致行动人"
>
<
template
#
default=
"scope"
>
<el-select
v-model=
"scope.row.sfyzxdr"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"80"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteGdxx(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-collapse-item>
<!-- 企业工商注册资本金 -->
<el-collapse-item
title=
"企业工商注册资本金"
name=
"企业工商注册资本金"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"企业工商注册资本金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.qygszczij"
placeholder=
"请输入企业工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"我方参数比例(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.wfcgbl"
placeholder=
"请输入我方参数比例(%)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"我方认缴企业工商注册资本金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.wfrjqygszczij"
placeholder=
"请输入我方认缴企业工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"工商注册资本金我方实际已出资金额(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.gszczijwfysjczje"
placeholder=
"请输入工商注册资本金我方实际已出资金额(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"企业工商注册资本金我方首次出资时间"
>
<el-date-picker
v-model=
"formData.qygszczijwfscczsj"
type=
"date"
placeholder=
"请选择企业工商注册资本金我方首次出资时间"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"能建合计认缴工商注册资本金比例(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.njhjrjqygszczijbl"
placeholder=
"请输入能建合计认缴工商注册资本金比例(%)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"能建合计认缴工商注册资本金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.njhjrjqygszczij"
placeholder=
"请输入能建合计认缴工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"能建合计实缴工商注册资本金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.njhjsjqygszczij"
placeholder=
"请输入能建合计实缴工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 项目资本金 -->
<el-collapse-item
title=
"项目资本金"
name=
"项目资本金"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"项目资本金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.xmzbj"
placeholder=
"请输入项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"我方认缴项目资本金比例(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.wfrjxmzbjbl"
placeholder=
"请输入我方认缴项目资本金比例(%)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"我方认缴项目资本金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.wfrjxmzbj"
placeholder=
"请输入我方认缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"我方实缴项目资本金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.wfsjxmzbj"
placeholder=
"请输入我方实缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"项目资本金能建合计持股比例(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.xmzbjnjhjcgbll"
placeholder=
"请输入项目资本金能建合计持股比例(%)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"能建合计认缴项目资本金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.njhjrjxmzbj"
placeholder=
"请输入能建合计认缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"能建合计实缴项目资本金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.njhjsjxmzbj"
placeholder=
"请输入能建合计实缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"出资文件"
>
<el-button
type=
"primary"
>
上传
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 财务经营信息 -->
<el-collapse-item
title=
"财务经营信息"
name=
"财务经营信息"
>
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
@
click=
"addCwxx"
>
新增
</el-button>
</div>
<el-table
:data=
"cwxxList"
style=
"width: 100%"
empty-text=
"暂无数据"
border
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<el-table-column
prop=
"nd"
label=
"年度"
width=
"100"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.nd"
placeholder=
"请输入年度"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"zzc"
label=
"总资产(万元)"
width=
"140"
>
<
template
#
default=
"scope"
>
<el-input-number
precision=
"2"
v-model=
"scope.row.zzc"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"jzc"
label=
"净资产(审计后)(万元)"
width=
"180"
>
<
template
#
default=
"scope"
>
<el-input-number
precision=
"2"
v-model=
"scope.row.jzc"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"gsnjfznc"
label=
"归属能建方净资产(万元)"
width=
"180"
>
<
template
#
default=
"scope"
>
<el-input-number
precision=
"2"
v-model=
"scope.row.gsnjfznc"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"yysr"
label=
"营业收入(万元)"
width=
"140"
>
<
template
#
default=
"scope"
>
<el-input-number
precision=
"2"
v-model=
"scope.row.yysr"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"jlr"
label=
"净利润(万元)"
width=
"140"
>
<
template
#
default=
"scope"
>
<el-input-number
precision=
"2"
v-model=
"scope.row.jlr"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"gsnjfndjdfh"
label=
"归属能建方年度决策分红(万元)"
width=
"220"
>
<
template
#
default=
"scope"
>
<el-input-number
precision=
"2"
v-model=
"scope.row.gsnjfndjdfh"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"gdhjcdffhsj"
label=
"股东会决策分红时间"
width=
"160"
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.gdhjcdffhsj"
type=
"date"
placeholder=
"请选择"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"gsnjfndysdfh"
label=
"归属能建方年度已收到分红(万元)"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input-number
precision=
"2"
v-model=
"scope.row.gsnjfndysdfh"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"sjsdfhsj"
label=
"实际收到分红时间"
width=
"160"
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.sjsdfhsj"
type=
"date"
placeholder=
"请选择"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"bndjtnzyjtzttzrb"
label=
"本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)"
width=
"360"
>
<
template
#
default=
"scope"
>
<el-input-number
precision=
"2"
v-model=
"scope.row.bndjtnzyjtzttzrb"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"80"
fixed=
"right"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteCwxx(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-collapse-item>
<!-- 分红与投资情况 -->
<el-collapse-item
title=
"分红与投资情况"
name=
"分红与投资情况"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"2020年以前累计分红金额(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.enyqljfhje"
placeholder=
"请输入2020年以前累计分红金额(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"2019年以前累计收到分红金额(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.esnqljsdfhje"
placeholder=
"请输入2019年以前累计收到分红金额(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"历年累计收到分红金额(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.lnljsdfhje"
placeholder=
"请输入历年累计收到分红金额(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"累计参股投资回报率(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.ljcgtzhibl"
placeholder=
"请输入累计参股投资回报率(%)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"归属集团内投资主体所有权益(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.gsjtntzztzsuyq"
placeholder=
"请输入归属集团内投资主体所有权益(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"总体参股投资保值增值率(%)"
>
<el-input-number
precision=
"2"
v-model=
"formData.ztcgtzbzzzl"
placeholder=
"请输入总体参股投资保值增值率(%)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"拉动营收"
>
<el-input-number
precision=
"2"
v-model=
"formData.ldys"
placeholder=
"请输入拉动营收"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"拉动利润"
>
<el-input-number
precision=
"2"
v-model=
"formData.ldlr"
placeholder=
"请输入拉动利润"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"当前持有股数"
>
<el-input-number
precision=
"2"
v-model=
"formData.dqcygs"
placeholder=
"请输入当前持有股数"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否能够及时掌握财务数据和经营情况"
>
<el-select
v-model=
"formData.sfnkjzwsjyjjyqk"
placeholder=
"请选择是否能够及时掌握财务数据和经营情况"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否满5年未分红"
>
<el-select
v-model=
"formData.sfmwnwfkh"
placeholder=
"请选择是否满5年未分红"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否连续5年长期亏损"
>
<el-select
v-model=
"formData.sflxwnlcqks"
placeholder=
"请选择是否连续5年长期亏损"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否非持续经营"
>
<el-select
v-model=
"formData.sffcxjy"
placeholder=
"请选择是否非持续经营"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否属于低效无效资产"
>
<el-select
v-model=
"formData.sfdydwxzc"
placeholder=
"请选择是否属于低效无效资产"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"财务报表文件"
>
<el-button
type=
"primary"
>
上传
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 法人治理 -->
<el-collapse-item
title=
"法人治理"
name=
"法人治理"
>
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
@
click=
"addFrzl"
>
新增
</el-button>
</div>
<el-table
:data=
"frzlList"
style=
"width: 100%"
empty-text=
"暂无数据"
border
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<el-table-column
prop=
"zcypcdrdbprs"
label=
"章程约定派出股东代表人数"
width=
"200"
>
<
template
#
default=
"scope"
>
<el-input-number
v-model=
"scope.row.zcypcdrdbprs"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"sjpccrdbprs"
label=
"实际派出股东代表人数"
width=
"200"
>
<
template
#
default=
"scope"
>
<el-input-number
v-model=
"scope.row.sjpccrdbprs"
placeholder=
"请输入"
:controls=
"false"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"zcypxpcsjqksqk"
label=
"章程约定选派董事、监事或重要岗位人员情况"
width=
"280"
>
<
template
#
default=
"scope"
>
<el-checkbox-group
v-model=
"scope.row.zcypxpcsjqksqk"
>
<el-checkbox
label=
"国有股东代表"
></el-checkbox>
<el-checkbox
label=
"董事"
></el-checkbox>
<el-checkbox
label=
"监事"
></el-checkbox>
<el-checkbox
label=
"重要岗位"
></el-checkbox>
<el-checkbox
label=
"其他高级管理人员"
></el-checkbox>
</el-checkbox-group>
</
template
>
</el-table-column>
<el-table-column
prop=
"sjxpcsjqksqk"
label=
"实际选派董事、监事或重要岗位人员情况"
width=
"280"
>
<
template
#
default=
"scope"
>
<el-checkbox-group
v-model=
"scope.row.sjxpcsjqksqk"
>
<el-checkbox
label=
"国有股东代表"
></el-checkbox>
<el-checkbox
label=
"董事"
></el-checkbox>
<el-checkbox
label=
"监事"
></el-checkbox>
<el-checkbox
label=
"重要岗位"
></el-checkbox>
<el-checkbox
label=
"其他高级管理人员"
></el-checkbox>
</el-checkbox-group>
</
template
>
</el-table-column>
<el-table-column
prop=
"sfytdtsfjq"
label=
"是否有特定事项否决权"
width=
"150"
>
<
template
#
default=
"scope"
>
<el-select
v-model=
"scope.row.sfytdtsfjq"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"fjqnr"
label=
"否决权内容"
width=
"200"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.fjqnr"
placeholder=
"请输入否决权内容"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"80"
fixed=
"right"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteFrzl(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"2020年自查整改至今新增或调整参股企业董事监事及重要岗位人员人数"
>
<el-input-number
precision=
"0"
v-model=
"formData.ezjzccjtgqdsjcyjsryrs"
placeholder=
"请输入人数"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"2020年自查整改至今新增或修订参股企业公司章程条款"
>
<el-input-number
precision=
"0"
v-model=
"formData.ezjzccjtqsgszxtk"
placeholder=
"请输入条数"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否建立党的组织"
>
<el-select
v-model=
"formData.sfjldjzz"
placeholder=
"请选择是否建立党的组织"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"2020年自查整改至今是否开展党的活动"
>
<el-select
v-model=
"formData.ezjzccsfkzdhd"
placeholder=
"请选择是否开展党的活动"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"2020年自查整改至今是否开展党的活动次数"
>
<el-input-number
precision=
"0"
v-model=
"formData.ezjzccsfkzdhdcs"
placeholder=
"请输入次数"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"董监高任命文件"
>
<el-button
type=
"primary"
>
上传
</el-button>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"股东会文件"
>
<el-button
type=
"primary"
>
上传
</el-button>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"董事会决议文件"
>
<el-button
type=
"primary"
>
上传
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 集团内投资主体相关信息 -->
<el-collapse-item
title=
"
合同约定权益获取
"
name=
"
合同约定权益获取
"
title=
"
集团内投资主体相关信息
"
name=
"
集团内投资主体相关信息
"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"我方权益合同条款约定"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否使用集团内投资主体字号、经营资质"
>
<el-select
v-model=
"formData.sfssytzztzzhjyzz"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"字号及经营资质名称"
>
<el-input
type=
"textarea"
v-model=
"formData.wfqyhttkyd"
placeholder=
"请输入我方权益合同条款约定(市场、设计、施工、运营权、养护份额等权益)"
:rows=
"3"
v-model=
"formData.zhjyzzmc"
placeholder=
"请输入字号及经营资质名称"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"权益获取进展"
>
<el-input
type=
"textarea"
v-model=
"formData.qyhqjz"
placeholder=
"请输入权益获取进展"
:rows=
"3"
/>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否使用集团内投资主体产品注册商标"
>
<el-select
v-model=
"formData.sfsytzztzcptzcsh"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"权益获取与约定不一致的情况"
>
<el-input
type=
"textarea"
v-model=
"formData.qyhqyyd"
placeholder=
"请输入权益获取与约定不一致的情况"
:rows=
"3"
/>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否采取公允价格"
>
<el-select
v-model=
"formData.sfcqgyjg"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"督办情况"
>
<el-input
type=
"textarea"
v-model=
"formData.dbqk"
placeholder=
"请输入督办情况"
:rows=
"3"
<el-col
:span=
"12"
>
<el-form-item
label=
"集团内投资主体实际担保"
>
<el-select
v-model=
"formData.sftzztjcsjdb"
placeholder=
"请选择"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"担保金额(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.dbje"
placeholder=
"请输入担保金额(万元)"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title=
"分红情况"
name=
"分红情况"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"
利润分配/分红约定
"
>
<el-input
v-model=
"formData.lrfp
"
placeholder=
"请输入利润分配/分红约定
"
:rows=
"2
"
<el-form-item
label=
"
其中:超股权比例担保金额
"
>
<el-input
-number
precision=
"2
"
v-model=
"formData.cgqblcjedbje
"
placeholder=
"请输入超股权比例担保金额
"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否达到利润分配条件"
>
<el-radio-group
placeholder=
"请选择是否达到利润分配条件"
v-model=
"formData.sfddlrfptj"
>
<el-radio
v-for=
"item in options?.sf"
:key=
"item.id"
:id=
"item.name"
:value=
"item.key"
>
{{
item
.
name
}}
</el-radio
<el-form-item
label=
"是否办理国有产权登记"
>
<el-select
v-model=
"formData.sfblgqcqdj"
placeholder=
"请选择"
>
</el-radio-group>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 股权退出信息 -->
<el-collapse-item
title=
"股权退出信息"
name=
"股权退出信息"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"累计获取分红(万元)"
>
<el-input
type=
"number"
v-model
.
number=
"formData.ljhqfh"
placeholder=
"请输入累计获取分红(万元)"
step=
"0.01"
<el-form-item
label=
"股权是否退出"
required
>
<el-select
v-model=
"formData.gqsfct"
placeholder=
"请选择股权是否退出"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"股权退出收回资金(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.gqcthszj"
placeholder=
"请输入股权退出收回资金(万元)"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title=
"资金流出"
name=
"资金流出"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"应投入资金(万元)"
>
<el-input
type=
"number"
v-model
.
number=
"formData.ytrzj"
placeholder=
"请输入应投入资金(万元)"
step=
"0.01"
<el-form-item
label=
"股权退出时间"
>
<el-date-picker
v-model=
"formData.gqctsj"
type=
"date"
placeholder=
"请选择股权退出时间"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"累计投入资金(万元)"
>
<el-input
type=
"number"
v-model
.
number=
"formData.ljtrzj"
placeholder=
"请输入累计投入资金(万元)"
step=
"0.01"
<el-form-item
label=
"股权退出收回资金到账金额(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.gqcthszjdzje"
placeholder=
"请输入股权退出收回资金到账金额(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"尚需投入资金(万元)"
>
<el-input
type=
"number"
v-model
.
number=
"formData.sxtrzj"
placeholder=
"请输入尚需投入资金(万元)"
step=
"0.01"
<el-form-item
label=
"股权退出收回资金到账时间"
>
<el-date-picker
v-model=
"formData.gqcthszjdzsj"
type=
"date"
placeholder=
"请选择股权退出收回资金到账时间"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title=
"资金流入"
name=
"资金流入"
>
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
@
click=
"addPfyjlsqk"
>
新增
</el-button
>
</div>
<el-table
:data=
"wtyys"
style=
"width: 100%"
empty-text=
"暂无数据"
show-summary
:summary-method=
"sumWtyysColumns"
border
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<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 options?.participation_capital"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"fwsj"
label=
"服务时间"
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.fwsj"
type=
"datetime"
format=
"YYYY-MM-DD HH:mm:ss"
value-format=
"YYYY-MM-DD HH:mm:ss"
placeholder=
"请选择"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"htje"
label=
"合同金额(万元)"
>
<
template
#
default=
"scope"
>
<el-input
type=
"number"
v-model
.
number=
"scope.row.htje"
placeholder=
"请输入合同金额(万元)"
step=
"0.01"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"ywlr"
label=
"业务利润(万元)"
>
<
template
#
default=
"scope"
>
<el-input
type=
"number"
v-model
.
number=
"scope.row.ywlr"
placeholder=
"请输入业务利润(万元)"
step=
"0.01"
/>
</
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>
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
@
click=
"addTzfhs"
>
新增
</el-button>
</div>
<el-table
:data=
"tzfhs"
style=
"width: 100%"
empty-text=
"暂无数据"
show-summary
:summary-method=
"sumTzfhsColumns"
border
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<el-table-column
prop=
"fhsj"
label=
"分红时间"
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.fhsj"
type=
"datetime"
format=
"YYYY-MM-DD HH:mm:ss"
value-format=
"YYYY-MM-DD HH:mm:ss"
placeholder=
"请选择"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"fhje"
label=
"分红金额(万元)"
>
<
template
#
default=
"scope"
>
<el-input
type=
"number"
v-model
.
number=
"scope.row.fhje"
placeholder=
"请输入分红金额"
step=
"0.01"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"60"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteTzfhs(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
<div
class=
"subtotal"
>
<div
class=
"label"
>
流入小计
</div>
<div
class=
"value"
>
{{ subtotalNum }}(万元)
</div>
</div>
</el-collapse-item>
<el-collapse-item
title=
"净现金流"
name=
"净现金流"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"静态"
>
<el-input
type=
"number"
v-model
.
number=
"formData.jt"
placeholder=
"请输入静态"
step=
"0.01"
/>
<el-form-item
label=
"退出文件"
>
<el-button
type=
"primary"
>
上传
</el-button>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"折现(3.5%)"
>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"股权退出原因"
>
<el-input
type=
"number
"
v-model
.
number=
"formData.zx
"
placeholder=
"请输入折现(3.5%)
"
step=
"0.01
"
v-model=
"formData.gqctyy
"
type=
"textarea
"
:rows=
"3
"
placeholder=
"请输入股权退出原因
"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 自查问题整改信息 -->
<el-collapse-item
title=
"自查问题整改信息"
name=
"自查问题整改信息"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"联系人"
>
<el-input
v-model=
"formData.lxr"
placeholder=
"请输入联系人"
/>
<el-form-item
label=
"自查是否发现问题"
required
>
<el-select
v-model=
"formData.zcsffjwt"
placeholder=
"请选择自查是否发现问题"
>
<el-option
label=
"是"
value=
"是"
></el-option>
<el-option
label=
"否"
value=
"否"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"联系方式"
>
</el-row>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"自查发现的主要问题及整改计划"
>
<el-input
v-model=
"formData.lxfs"
placeholder=
"请输入联系方式"
v-model=
"formData.zcfxdzzywtjzgjh"
type=
"textarea"
:rows=
"4"
placeholder=
"请输入自查发现的主要问题及整改计划"
/>
</el-form-item>
</el-col>
...
...
@@ -478,10 +1493,10 @@
<el-col
:span=
"24"
>
<el-form-item
label=
"备注"
>
<el-input
type=
"textarea"
v-model=
"formData.bz"
placeholder=
"请输入备注
"
type=
"textarea
"
:rows=
"4"
placeholder=
"请输入备注"
/>
</el-form-item>
</el-col>
...
...
@@ -509,188 +1524,236 @@
import
{
reactive
,
ref
,
onMounted
,
getCurrentInstance
,
h
,
computed
}
from
"vue"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
// 初始化全局变量
const
userStore
=
useUserStore
();
const
router
=
useRouter
();
const
route
=
useRoute
();
const
{
proxy
}
=
getCurrentInstance
();
const
token
=
ref
(
userStore
.
authToken
||
sessionStorage
.
getItem
(
"authToken"
)
||
""
,
);
// 小记金额
const
subtotalNum
=
computed
(()
=>
{
let
totalHtje
=
tzfhs
.
value
.
reduce
((
sum
,
item
)
=>
{
const
num
=
Number
(
item
.
fhje
)
||
0
;
// 兼容空值/非数字
return
sum
+
num
;
},
0
);
let
totalYwlr
=
wtyys
.
value
.
reduce
((
sum
,
item
)
=>
{
const
num
=
Number
(
item
.
ywlr
)
||
0
;
// 兼容空值/非数字
return
sum
+
num
;
},
0
);
return
(
totalHtje
+
totalYwlr
).
toFixed
(
2
);
});
// 折叠面板默认展开项
const
activeCollapse
=
ref
([
"基本信息"
,
"出资情况"
,
"合同约定权益获取"
,
"分红情况"
,
"资金流入"
,
"净现金流"
,
"资金流出"
,
"分红情况"
,
"规模指标及额度"
,
"股东信息"
,
"企业工商注册资本金"
,
"项目资本金"
,
"财务经营信息"
,
"分红与投资情况"
,
"法人治理"
,
"集团内投资主体相关信息"
,
"股权退出信息"
,
"自查问题整改信息"
,
]);
// 表单数据
- 数值字段初始化为数字类型(0)
// 表单数据
const
formData
=
reactive
({
// projectName: "",
// qc: "",
// jc: "",
// nbtzglzt: "",
// xmscjd: "",
// gqjg: "",
// xmzbjze: 0,
// gszbjyczze: 0,
// gsdqycze: 0,
// gsdqyjcze: 0,
// gsdqycwcje: 0,
// gsdqsycze: 0,
// cgbczqk: "",
// wfqyhttkyd: "",
// qyhqjz: "",
// qyhqyyd: "",
// dbqk: "",
// lrfp: "",
// sfddlrfptj: "",
// ljhqfh: 0,
// ytrzj: 0,
// ljtrzj: 0,
// sxtrzj: 0,
// jt: 0,
// zx: 0,
// lxr: "",
// lxfs: "",
// bz: "",
// projectId: "",
// del: 0, // del字段保留0默认值(删除标记,0为正常)
projectId
:
""
,
jnw
:
""
,
sqnzw
:
""
,
xmmc
:
""
,
xmbh
:
""
,
qxnzwgw
:
""
,
sbdw
:
""
,
ssejdw
:
""
,
sfjwqy
:
""
,
xccgyy
:
""
,
qtcgyy
:
""
,
cgfl
:
""
,
xmzt
:
""
,
sfjtzy
:
""
,
sfzyglcy
:
""
,
sfgzxccyypyq
:
""
,
sshy
:
""
,
sfwmqy
:
""
,
sfssgs
:
""
,
sfwtzgxm
:
""
,
sfmqysjyy
:
""
,
sfzgwc
:
""
,
sflh
:
""
,
jcpfsj
:
""
,
cgxcjsj
:
""
,
jhtcnf
:
""
,
fxje
:
null
,
sfwfkgfbbqy
:
""
,
zyyw
:
""
,
sehybk
:
""
,
zbmc
:
""
,
sl
:
null
,
dwdw
:
""
,
sfwjskzr
:
""
,
sfpg
:
""
,
gdmc
:
""
,
gbl
:
null
,
gdgdhjgbl
:
null
,
xjcghj
:
null
,
yzxdrhjhj
:
null
,
yzxdrdwmc
:
""
,
qygszczij
:
null
,
wfcgbl
:
null
,
wfrjqygszczij
:
null
,
gszczijwfysjczje
:
null
,
qygszczijwfscczsj
:
""
,
njhjrjqygszczijbl
:
null
,
njhjrjqygszczij
:
null
,
njhjsjqygszczij
:
null
,
xmzbj
:
null
,
wfrjxmzbjbl
:
null
,
wfrjxmzbj
:
null
,
wfsjxmzbj
:
null
,
xmzbjnjhjcgbll
:
null
,
njhjrjxmzbj
:
null
,
njhjsjxmzbj
:
null
,
enyqljfhje
:
null
,
esnqljsdfhje
:
null
,
lnljsdfhje
:
null
,
ljcgtzhibl
:
null
,
gsjtntzztzsuyq
:
null
,
ztcgtzbzzzl
:
null
,
ldys
:
null
,
ldlr
:
null
,
dqcygs
:
null
,
sfnkjzwsjyjjyqk
:
""
,
sfmwnwfkh
:
""
,
sflxwnlcqks
:
""
,
sffcxjy
:
""
,
sfdydwxzc
:
""
,
ezjzccjtgqdsjcyjsryrs
:
null
,
ezjzccjtqsgszxtk
:
null
,
sfjldjzz
:
""
,
ezjzccsfkzdhd
:
""
,
ezjzccsfkzdhdcs
:
null
,
sfssytzztzzhjyzz
:
""
,
zhjyzzmc
:
""
,
sfsytzztzcptzcsh
:
""
,
sfcqgyjg
:
""
,
sftzztjcsjdb
:
""
,
dbje
:
null
,
cgqblcjedbje
:
null
,
sfblgqcqdj
:
""
,
gqsfct
:
""
,
gqcthszj
:
null
,
gqctsj
:
""
,
gqcthszjdzje
:
null
,
gqcthszjdzsj
:
""
,
gqctyy
:
""
,
zcsffjwt
:
""
,
zcfxdzzywtjzgjh
:
""
,
bz
:
""
,
});
let
options
=
ref
();
function
sumWtyysColumns
(
param
)
{
const
{
columns
,
data
}
=
param
;
const
sums
=
[];
columns
.
forEach
((
column
,
index
)
=>
{
if
(
index
===
0
)
{
sums
[
index
]
=
h
(
"div"
,
"合计"
);
return
;
}
const
prop
=
column
.
property
;
if
(
prop
===
"lx"
||
prop
===
"fwsj"
||
!
prop
)
{
sums
[
index
]
=
""
;
return
;
}
// 股东信息列表
const
gdxxList
=
ref
([]);
if
(
prop
===
"htje"
)
{
const
values
=
data
.
map
((
item
)
=>
Number
(
item
.
htje
)
||
0
);
const
total
=
values
.
reduce
((
prev
,
curr
)
=>
prev
+
curr
,
0
);
sums
[
index
]
=
total
.
toFixed
(
2
)
+
"(万元)"
;
return
;
}
// 财务信息列表
const
cwxxList
=
ref
([]);
if
(
prop
===
"ywlr"
)
{
const
values
=
data
.
map
((
item
)
=>
Number
(
item
.
ywlr
)
||
0
);
const
total
=
values
.
reduce
((
prev
,
curr
)
=>
prev
+
curr
,
0
);
sums
[
index
]
=
total
.
toFixed
(
2
)
+
"(万元)"
;
return
;
}
// 法人治理列表
const
frzlList
=
ref
([]);
sums
[
index
]
=
""
;
// 新增股东信息
const
addGdxx
=
()
=>
{
gdxxList
.
value
.
push
({
gdmc
:
""
,
gdxz
:
""
,
gbl
:
null
,
sfkgdg
:
""
,
sfjtcydw
:
""
,
sfskdw
:
""
,
sfyzxdr
:
""
,
});
};
return
sums
;
}
// 删除股东信息
const
deleteGdxx
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}).
then
(()
=>
{
gdxxList
.
value
.
splice
(
index
,
1
);
});
};
function
sumTzfhsColumns
(
param
)
{
// 股东信息表格合计
const
sumGdxxColumns
=
(
param
)
=>
{
const
{
columns
,
data
}
=
param
;
const
sums
=
[];
columns
.
forEach
((
column
,
index
)
=>
{
if
(
index
===
0
)
{
sums
[
index
]
=
h
(
"div"
,
"合计"
);
return
;
}
const
prop
=
column
.
property
;
if
(
prop
===
"fhsj"
||
!
prop
)
{
sums
[
index
]
=
""
;
return
;
}
// 分红金额合计
if
(
prop
===
"fhje"
)
{
const
values
=
data
.
map
((
item
)
=>
Number
(
item
.
fhje
)
||
0
);
if
(
column
.
property
===
"gbl"
)
{
const
values
=
data
.
map
((
item
)
=>
Number
(
item
.
gbl
)
||
0
);
const
total
=
values
.
reduce
((
prev
,
curr
)
=>
prev
+
curr
,
0
);
sums
[
index
]
=
total
.
toFixed
(
2
)
+
"
(万元)
"
;
sums
[
index
]
=
total
.
toFixed
(
2
)
+
"
%
"
;
return
;
}
sums
[
index
]
=
""
;
});
return
sums
;
}
// 加载状态
const
loading
=
ref
(
false
);
// 是否预览模式
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
// 项目列表数据
const
projectList
=
ref
([]);
// 当前编辑的记录ID
const
rcCgqyglId
=
ref
(
route
.
query
.
id
||
""
);
};
let
wtyys
=
ref
([]);
const
addPfyjlsqk
=
()
=>
{
// 新增行时数值字段初始化为0
wtyys
.
value
.
push
({
htje
:
0
,
ywlr
:
0
});
// 新增财务信息
const
addCwxx
=
()
=>
{
cwxxList
.
value
.
push
({
nd
:
""
,
zzc
:
null
,
jzc
:
null
,
gsnjfznc
:
null
,
yysr
:
null
,
jlr
:
null
,
gsnjfndjdfh
:
null
,
gdhjcdffhsj
:
""
,
gsnjfndysdfh
:
null
,
sjsdfhsj
:
""
,
bndjtnzyjtzttzrb
:
null
,
});
};
const
deletePfyjlsqk
=
(
index
)
=>
{
// 删除财务信息
const
deleteCwxx
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}).
then
(()
=>
{
wtyys
.
value
.
splice
(
index
,
1
);
cwxxList
.
value
.
splice
(
index
,
1
);
});
};
let
tzfhs
=
ref
([]);
// 新增
const
addTzfhs
=
()
=>
{
// 新增行时数值字段初始化为0
tzfhs
.
value
.
push
({
fhje
:
0
});
// 新增法人治理
const
addFrzl
=
()
=>
{
frzlList
.
value
.
push
({
zcypcdrdbprs
:
null
,
sjpccrdbprs
:
null
,
zcypxpcsjqksqk
:
[],
sjxpcsjqksqk
:
[],
sfytdtsfjq
:
""
,
fjqnr
:
""
,
});
};
// 删除
const
deleteTzfhs
=
(
index
)
=>
{
// 删除法人治理
const
deleteFrzl
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}).
then
(()
=>
{
tzfhs
.
value
.
splice
(
index
,
1
);
frzlList
.
value
.
splice
(
index
,
1
);
});
};
// 加载状态
const
loading
=
ref
(
false
);
// 是否预览模式
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
// 项目列表数据
const
projectList
=
ref
([]);
// 当前编辑的记录ID
const
rcCgqyglId
=
ref
(
route
.
query
.
id
||
""
);
// 获取项目列表
const
getProjectData
=
(
params
=
{})
=>
{
proxy
.
$post
({
...
...
@@ -726,45 +1789,21 @@ const getRcCgqyglDetail = () => {
data
:
{
id
:
rcCgqyglId
.
value
},
callback
:
(
data
)
=>
{
loading
.
value
=
false
;
// 处理数值字段,确保为数字类型
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
,
data
);
Object
.
assign
(
formData
,
formatNumberFields
(
data
));
// 处理股东信息列表
if
(
data
.
gdxxList
)
{
gdxxList
.
value
=
data
.
gdxxList
;
}
// 处理wtyys数组的数值字段
if
(
data
.
wtyys
)
{
wtyys
.
value
=
data
.
wtyys
.
map
((
item
)
=>
({
...
item
,
htje
:
Number
(
item
.
htje
)
||
0
,
ywlr
:
Number
(
item
.
ywlr
)
||
0
,
}));
// 处理财务信息列表
if
(
data
.
cwxxList
)
{
cwxxList
.
value
=
data
.
cwxxList
;
}
// 处理tzfhs数组的数值字段
if
(
data
.
tzfhs
)
{
tzfhs
.
value
=
data
.
tzfhs
.
map
((
item
)
=>
({
...
item
,
fhje
:
Number
(
item
.
fhje
)
||
0
,
}));
// 处理法人治理列表
if
(
data
.
frzlList
)
{
frzlList
.
value
=
data
.
frzlList
;
}
},
});
...
...
@@ -788,49 +1827,14 @@ const saveClick = () => {
?
"/api/project/updateCgqygl"
:
"/api/project/createCgqygl"
;
// 处理空数字字段:确保所有数值字段为数字类型
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
(
{
const
submitData
=
{
...
formData
,
projectId
:
formData
.
projectId
+
""
,
wtyys
:
wtyys
.
value
,
tzfhs
:
tzfhs
.
value
,
});
gdxxList
:
gdxxList
.
value
,
cwxxList
:
cwxxList
.
value
,
frzlList
:
frzlList
.
value
,
};
proxy
.
$post
({
url
:
url
,
...
...
@@ -847,7 +1851,6 @@ const saveClick = () => {
onMounted
(()
=>
{
// 获取项目列表
getProjectData
();
options
.
value
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
// 如果有ID则加载详情
if
(
rcCgqyglId
.
value
)
{
getRcCgqyglDetail
();
...
...
@@ -856,21 +1859,7 @@ onMounted(() => {
</
script
>
<
style
scoped
lang=
"less"
>
.subtotal {
background-color: #f5f7fa;
height: 40px;
display: flex;
.label {
width: 100px;
height: 40px;
text-align: center;
line-height: 40px;
border-right: 1px solid #ebeef5;
}
.value {
padding-left: 16px;
width: 100%;
line-height: 40px;
}
.tab-handle {
margin-bottom: 10px;
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment