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