明树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
af5f598d
Commit
af5f598d
authored
Mar 26, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目模块完成
parent
727ed250
Pipeline
#108889
passed with stage
in 21 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
536 additions
and
195 deletions
+536
-195
investmentCecoveryAdd.vue
src/views/castbehind/investmentCecoveryAdd.vue
+9
-0
constructionTime.vue
src/views/investingManage/constructionTime.vue
+1
-1
constructionTimeAdd.vue
src/views/investingManage/constructionTimeAdd.vue
+526
-194
No files found.
src/views/castbehind/investmentCecoveryAdd.vue
View file @
af5f598d
...
...
@@ -400,6 +400,15 @@
</
template
>
</div>
</div>
<!-- 预览模式底部信息区域 -->
<el-collapse
v-model=
"activeCollapse"
v-if=
"isPreview"
style=
"margin-top: 20px;"
>
<el-collapse-item
title=
"相关信息"
name=
"相关信息"
>
<div
style=
"padding: 20px; color: #909399; text-align: center;"
>
<p>
此为预览模式,如需编辑请返回列表页点击"编辑"按钮
</p>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
</template>
...
...
src/views/investingManage/constructionTime.vue
View file @
af5f598d
...
...
@@ -104,7 +104,7 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
params
)
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getJsqtzhsList"
,
...
...
src/views/investingManage/constructionTimeAdd.vue
View file @
af5f598d
...
...
@@ -9,7 +9,19 @@
<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-date-picker
v-model=
"formData.nd"
type=
"year"
placeholder=
"请选择年度"
format=
"YYYY"
value-format=
"YYYY"
style=
"width: 100%"
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"项目名称"
required
>
<el-select
v-model=
"formData.projectId"
...
...
@@ -26,7 +38,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 +46,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 +55,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 +64,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 +72,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 +81,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 +89,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 +97,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 +106,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 +114,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 +137,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 +146,8 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"我方资本金出资额-决策值(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.wfzbjczejc"
placeholder=
"请输入我方资本金出资额-决策值(万元)"
/>
...
...
@@ -141,23 +155,26 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"投资总额-实际值(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.tzzesj"
placeholder=
"请输入投资总额-实际值(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"我方资本家出资额--实际值(万元)"
>
<el-input
<el-form-item
label=
"我方资本金出资额--实际值(万元)"
>
<el-input-number
precision=
"2"
v-model=
"formData.wfzbjczesj"
placeholder=
"请输入我方资本
家
出资额--实际值(万元)"
placeholder=
"请输入我方资本
金
出资额--实际值(万元)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"投资总额-计划值(万元)"
>
<el-input
<el-input-number
precision=
"2"
v-model=
"formData.tzzejhz"
placeholder=
"请输入投资总额-计划值(万元)"
/>
...
...
@@ -167,47 +184,47 @@
</el-collapse-item>
<el-collapse-item
title=
"2025年投资回收累计完成情况-年度更新
"
name=
"2025年投资回收累计完成情况-年度更新
"
:title=
"dynamicTitles.yearlyUpdateTitle
"
:name=
"dynamicTitles.yearlyUpdateTitle
"
>
<el-row
gutter=
"20"
>
<!-- 第一行:决策目标值相关数字项 -->
<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 +233,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 +345,45 @@
:is-preview=
"isPreview"
/>
</el-collapse-item>
<el-collapse-item
title=
"投资回收(
决策
)"
name=
"投资回收(
决策
)"
title=
"投资回收(
计划
)"
name=
"投资回收(
计划
)"
>
<FinancialTable
v-model=
"formData.tzhsjc"
v-model=
"formData.tzhsjh"
:showSerialColumn=
"false"
:is-preview=
"isPreview"
:showNameColumn=
"false"
:showTotalColumn=
"false"
/>
</el-collapse-item>
<el-collapse-item
title=
"投资回收(计划)
"
name=
"投资回收(计划)
"
:title=
"dynamicTitles.yearlyCompletionTitle
"
:name=
"dynamicTitles.yearlyCompletionTitle
"
>
<
Financial
Table
v-model=
"formData.tzhs
jh
"
<
InvestmentRecovery
Table
v-model=
"formData.tzhs
wcqkndgx
"
:is-preview=
"isPreview"
table-type=
"year"
:table-title=
"dynamicTitles.yearlyCompletionTitle"
/>
</el-collapse-item>
<el-collapse-item
:title=
"dynamicTitles.monthlyCompletionTitle"
:name=
"dynamicTitles.monthlyCompletionTitle"
>
<InvestmentRecoveryTable
v-model=
"formData.tzhswcqkydgx"
:is-preview=
"isPreview"
table-type=
"month"
:table-title=
"dynamicTitles.monthlyCompletionTitle"
:plan-data=
"formData.tzhsjh"
:decision-data=
"formData.tzhsjc"
:last-year-plan-data=
"formData.lastyeartzhs"
:current-year=
"currentYear"
/>
</el-collapse-item>
</el-collapse>
...
...
@@ -360,16 +400,38 @@
</
template
>
</div>
</div>
<!-- 预览模式底部信息区域 -->
<el-collapse
v-model=
"activeCollapse"
v-if=
"isPreview"
style=
"margin-top: 20px"
>
<el-collapse-item
title=
"相关信息"
name=
"相关信息"
>
<div
style=
"padding: 20px; color: #909399; text-align: center"
>
<p>
此为预览模式,如需编辑请返回列表页点击"编辑"按钮
</p>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onMounted
,
getCurrentInstance
,
h
,
computed
}
from
"vue"
;
import
{
reactive
,
watch
,
ref
,
onMounted
,
getCurrentInstance
,
h
,
computed
,
}
from
"vue"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
ElMessage
}
from
"element-plus"
;
import
DynamicTable
from
"@/components/FormDynamicTable/index.vue"
;
import
FinancialTable
from
"@/components/FinancialTable.vue"
;
import
InvestmentRecoveryTable
from
"@/components/InvestmentRecoveryTable.vue"
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
const
transferColumns
=
ref
([
{
...
...
@@ -414,172 +476,439 @@ const router = useRouter();
const
route
=
useRoute
();
const
{
proxy
}
=
getCurrentInstance
();
// 折叠面板默认展开项
const
activeCollapse
=
ref
([
"项目基本信息"
,
"出资情况"
,
"合同约定权益获取"
,
"分红情况"
,
"投资额完成情况(万元)"
,
"投资回收(决策)"
,
"投资回收(计划)"
,
"2025年投资回收累计完成情况-年度更新"
,
"净现金流"
,
"截止12月末累计应收"
,
"截止12月末累计实收"
,
"资金流出"
,
"分红情况"
,
]);
// 表单数据
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
},
// 使用 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
:
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
:
[],
};
formData
.
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
,
},
],
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
:
[],
};
formData
.
tzhsjc
=
{
// 指标列表
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
:
true
,
noTotal
:
true
},
],
// 时间列表(月度)
dynamicTimeList
:
[
"一季度"
,
"二季度"
,
"三季度"
,
"四季度"
],
// 表格数据(子组件会自动初始化,父组件可传初始值)
tableData
:
[],
};
formData
.
tzhsjh
=
{
// 指标列表
indicatorList
:
[
{
name
:
" "
,
},
],
// 时间列表(月度)- 使用动态年度
get
dynamicTimeList
()
{
const
year
=
formData
.
nd
;
const
yearStr
=
`
${
year
}
年`
;
const
q1Str
=
`
${
year
}
年(一季度)`
;
const
q2Str
=
`
${
year
}
年(二季度)`
;
const
q3Str
=
`
${
year
}
年(三季度)`
;
const
q4Str
=
`
${
year
}
年(四季度)`
;
return
[
// 第一组:投资回收(决策) -> 动态年度
{
name
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
isTextRow
:
false
,
noTotal
:
false
,
label
:
"合计"
,
prop
:
"a1"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
name
:
"资产盘活"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"股权分红"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"其他"
,
isTextRow
:
false
,
noTotal
:
false
},
// 关键:标记为文本行+不需要合计
{
name
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
noTotal
:
true
},
],
// 时间列表(月度)
dynamicTimeList
:
[
"一月"
,
"二月"
,
"三月"
,
"四月"
,
"五月"
,
"六月"
,
"七月"
,
"八月"
,
"九月"
,
"十月"
,
"十一月"
,
"十二月"
,
],
// 表格数据(子组件会自动初始化,父组件可传初始值)
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
,
label
:
"政府付费"
,
prop
:
"a2"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
name
:
"资产盘活"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"股权分红"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"其他"
,
isTextRow
:
false
,
noTotal
:
false
},
// 关键:标记为文本行+不需要合计
{
name
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
noTotal
:
true
},
],
// 时间列表(月度)
dynamicTimeList
:
[
"一月"
,
"二月"
,
"三月"
,
"四月"
,
"五月"
,
"六月"
,
"七月"
,
"八月"
,
"九月"
,
"十月"
,
"十一月"
,
"十二月"
,
],
// 表格数据(子组件会自动初始化,父组件可传初始值)
tableData
:
[],
},
tzhsjc
:
{
// 指标列表
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
,
label
:
"政府补助"
,
prop
:
"a3"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
label
:
"使用者付费"
,
prop
:
"a4"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
label
:
"使用者欠付"
,
prop
:
"a5"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
label
:
"补贴收入"
,
prop
:
"a6"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a7"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
label
:
"资产盘活"
,
prop
:
"a8"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
label
:
"股权分红"
,
prop
:
"a9"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
label
:
"其他"
,
prop
:
"a10"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a11"
,
headerGroup
:
"投资回收(决策)"
,
subGroup
:
yearStr
,
},
// 第二组:动态年度
{
label
:
"合计"
,
prop
:
"a12"
,
headerGroup
:
yearStr
},
{
label
:
"政府付费"
,
prop
:
"a13"
,
headerGroup
:
yearStr
},
{
label
:
"政府补助"
,
prop
:
"a14"
,
headerGroup
:
yearStr
},
{
label
:
"使用者付费"
,
prop
:
"a15"
,
headerGroup
:
yearStr
},
{
label
:
"使用者欠付"
,
prop
:
"a16"
,
headerGroup
:
yearStr
},
{
label
:
"补贴收入"
,
prop
:
"a17"
,
headerGroup
:
yearStr
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a18"
,
headerGroup
:
yearStr
,
},
{
label
:
"资产盘活"
,
prop
:
"a19"
,
headerGroup
:
yearStr
},
{
label
:
"股权分红"
,
prop
:
"a20"
,
headerGroup
:
yearStr
},
{
label
:
"其他"
,
prop
:
"a21"
,
headerGroup
:
yearStr
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a22"
,
headerGroup
:
yearStr
,
},
// 第三组:动态年度(一季度)
{
label
:
"合计"
,
prop
:
"a23"
,
headerGroup
:
q1Str
},
{
label
:
"政府付费"
,
prop
:
"a24"
,
headerGroup
:
q1Str
},
{
label
:
"政府补助"
,
prop
:
"a25"
,
headerGroup
:
q1Str
},
{
label
:
"使用者付费"
,
prop
:
"a26"
,
headerGroup
:
q1Str
},
{
label
:
"使用者欠付"
,
prop
:
"a27"
,
headerGroup
:
q1Str
},
{
label
:
"补贴收入"
,
prop
:
"a28"
,
headerGroup
:
q1Str
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a29"
,
headerGroup
:
q1Str
,
},
{
label
:
"资产盘活"
,
prop
:
"a30"
,
headerGroup
:
q1Str
},
{
label
:
"股权分红"
,
prop
:
"a31"
,
headerGroup
:
q1Str
},
{
label
:
"其他"
,
prop
:
"a32"
,
headerGroup
:
q1Str
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a33"
,
headerGroup
:
q1Str
,
},
// 第四组:投资回收(计划) -> 动态年度
{
label
:
"合计"
,
prop
:
"a34"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
label
:
"政府付费"
,
prop
:
"a35"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
label
:
"政府补助"
,
prop
:
"a36"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
label
:
"使用者付费"
,
prop
:
"a37"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
label
:
"使用者欠付"
,
prop
:
"a38"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
label
:
"补贴收入"
,
prop
:
"a39"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
name
:
"资产盘活"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"股权分红"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"其他"
,
isTextRow
:
false
,
noTotal
:
false
},
// 关键:标记为文本行+不需要合计
{
name
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
noTotal
:
true
},
],
// 时间列表(月度)
dynamicTimeList
:
[
"一季度"
,
"二季度"
,
"三季度"
,
"四季度"
],
// 表格数据(子组件会自动初始化,父组件可传初始值)
tableData
:
[],
},
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
,
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a40"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
name
:
"资产盘活"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"股权分红"
,
isTextRow
:
false
,
noTotal
:
false
},
{
name
:
"其他"
,
isTextRow
:
false
,
noTotal
:
false
},
// 关键:标记为文本行+不需要合计
{
name
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
noTotal
:
true
},
],
// 时间列表(月度)
dynamicTimeList
:
[
"一季度"
,
"二季度"
,
"三季度"
,
"四季度"
],
// 表格数据(子组件会自动初始化,父组件可传初始值)
tableData
:
[],
{
label
:
"资产盘活"
,
prop
:
"a41"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
label
:
"股权分红"
,
prop
:
"a42"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
label
:
"其他"
,
prop
:
"a43"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a44"
,
headerGroup
:
"投资回收(计划)"
,
subGroup
:
yearStr
,
},
// 第五组:动态年度(三季度)
{
label
:
"合计"
,
prop
:
"a45"
,
headerGroup
:
q3Str
},
{
label
:
"政府付费"
,
prop
:
"a46"
,
headerGroup
:
q3Str
},
{
label
:
"政府补助"
,
prop
:
"a47"
,
headerGroup
:
q3Str
},
{
label
:
"使用者付费"
,
prop
:
"a48"
,
headerGroup
:
q3Str
},
{
label
:
"使用者欠付"
,
prop
:
"a49"
,
headerGroup
:
q3Str
},
{
label
:
"补贴收入"
,
prop
:
"a50"
,
headerGroup
:
q3Str
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a51"
,
headerGroup
:
q3Str
,
},
{
label
:
"资产盘活"
,
prop
:
"a52"
,
headerGroup
:
q3Str
},
{
label
:
"股权分红"
,
prop
:
"a53"
,
headerGroup
:
q3Str
},
{
label
:
"其他"
,
prop
:
"a54"
,
headerGroup
:
q3Str
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a55"
,
headerGroup
:
q3Str
,
},
// 第六组:动态年度(四季度)
{
label
:
"合计"
,
prop
:
"a56"
,
headerGroup
:
q4Str
},
{
label
:
"政府付费"
,
prop
:
"a57"
,
headerGroup
:
q4Str
},
{
label
:
"政府补助"
,
prop
:
"a58"
,
headerGroup
:
q4Str
},
{
label
:
"使用者付费"
,
prop
:
"a59"
,
headerGroup
:
q4Str
},
{
label
:
"使用者欠付"
,
prop
:
"a60"
,
headerGroup
:
q4Str
},
{
label
:
"补贴收入"
,
prop
:
"a61"
,
headerGroup
:
q4Str
},
{
label
:
"销售回款(含房地产、水泥、新能源售电、其他生产制造收入等)"
,
prop
:
"a62"
,
headerGroup
:
q4Str
,
},
{
label
:
"资产盘活"
,
prop
:
"a63"
,
headerGroup
:
q4Str
},
{
label
:
"股权分红"
,
prop
:
"a64"
,
headerGroup
:
q4Str
},
{
label
:
"其他"
,
prop
:
"a65"
,
headerGroup
:
q4Str
},
{
label
:
"目标(决策)与计划差异说明"
,
isTextRow
:
true
,
prop
:
"a66"
,
headerGroup
:
q4Str
,
},
];
},
});
// 表格数据(子组件会自动初始化,父组件可传初始值)
tableData
:
[],
};
formData
.
tzhswcqkndgx
=
{
tableData
:
[],
};
formData
.
tzhswcqkydgx
=
{
tableData
:
[],
};
};
const
formData
=
reactive
({
nd
:
new
Date
().
getFullYear
().
toString
(),
// 年度,默认当前年份
jzymljys
:
{},
jzymljsh
:
{},
tzhsjc
:
{},
tzhsjh
:
{},
tzhswcqkndgx
:
{},
tzhswcqkydgx
:
{},
lastyeartzhs
:
null
,
// 去年投资回收计划数据
projectGdxxs
:
[],
});
// 计算属性:动态生成年份相关的标题
const
currentYear
=
computed
(
()
=>
formData
.
nd
||
new
Date
().
getFullYear
().
toString
(),
);
const
lastYear
=
computed
(()
=>
{
const
year
=
parseInt
(
currentYear
.
value
);
return
(
year
-
1
).
toString
();
});
// 动态标题
const
dynamicTitles
=
computed
(()
=>
({
// 投资回收累计完成情况-年度更新
yearlyUpdateTitle
:
`
${
currentYear
.
value
}
年投资回收累计完成情况-年度更新`
,
// 投资回收完成情况-年度更新
yearlyCompletionTitle
:
`
${
currentYear
.
value
}
年投资回收完成情况(年度更新)`
,
// 投资回收完成情况-月度更新
monthlyCompletionTitle
:
`
${
currentYear
.
value
}
年投资回收完成情况(月度更新)`
,
}));
// 折叠面板默认展开项(动态计算)
const
getActiveCollapseItems
=
()
=>
[
"项目基本信息"
,
"出资情况"
,
"合同约定权益获取"
,
"分红情况"
,
"投资额完成情况(万元)"
,
"投资回收(决策)"
,
"投资回收(计划)"
,
dynamicTitles
.
value
.
yearlyUpdateTitle
,
"净现金流"
,
"截止12月末累计应收"
,
"截止12月末累计实收"
,
"资金流出"
,
"分红情况"
,
dynamicTitles
.
value
.
yearlyCompletionTitle
,
dynamicTitles
.
value
.
monthlyCompletionTitle
,
];
const
activeCollapse
=
ref
(
getActiveCollapseItems
());
// 监听年度变化,更新 activeCollapse
watch
(
()
=>
formData
.
nd
,
()
=>
{
activeCollapse
.
value
=
getActiveCollapseItems
();
},
{
immediate
:
false
},
);
let
options
=
ref
();
// ========== 选择项目同步名称(通用) ==========
...
...
@@ -625,6 +954,7 @@ const getProjectData = (params = {}) => {
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
...
...
@@ -644,11 +974,12 @@ const getRcCgqyglDetail = () => {
data
:
{
id
:
rcCgqyglId
.
value
},
callback
:
(
data
)
=>
{
loading
.
value
=
false
;
console
.
log
(
data
.
jzymljys
.
tableData
[
0
],
"1111"
);
console
.
log
(
data
.
jzymljys
,
"jzymljys详情数据"
);
console
.
log
(
data
.
jzymljsh
,
"jzymljsh详情数据"
);
console
.
log
(
data
.
lastyeartzhs
,
"lastyeartzhs"
);
Object
.
assign
(
formData
,
{
...
data
,
});
// 合并其他非表格字段
Object
.
assign
(
formData
,
data
);
},
});
};
...
...
@@ -675,6 +1006,7 @@ const saveClick = () => {
const
submitData
=
{
...
formData
,
projectId
:
formData
.
projectId
+
""
,
id
:
route
.
query
.
id
||
null
,
};
proxy
.
$post
({
...
...
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