明树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
537fb7f3
Commit
537fb7f3
authored
May 19, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
9bdc48fa
Pipeline
#111580
passed with stage
in 19 seconds
Changes
5
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
250 additions
and
48 deletions
+250
-48
addProject.vue
src/views/projectManage/addProject.vue
+52
-27
JueceApproval.vue
...ews/projectManage/addProject/components/JueceApproval.vue
+179
-14
JueceFinance.vue
...iews/projectManage/addProject/components/JueceFinance.vue
+6
-4
useJueceData.js
...iews/projectManage/addProject/composables/useJueceData.js
+11
-1
useLixiangData.js
...ws/projectManage/addProject/composables/useLixiangData.js
+2
-2
No files found.
src/views/projectManage/addProject.vue
View file @
537fb7f3
...
...
@@ -266,7 +266,7 @@ const activeCollapse = reactive([
"项目批复信息"
,
"其他"
,
"投决计划"
,
"投
评报告及测算
表"
,
"投
资各方现金流量
表"
,
"项目投资资金流量表"
,
"项目资本金现金流量表"
,
"能建方现金流量表"
,
...
...
@@ -289,7 +289,7 @@ let projectId = route.query.projectId;
const
lxType
=
computed
(()
=>
formData
.
projectLzType
?.
toString
());
const
jcType
=
computed
(()
=>
jcFormData
.
projectLzType
?.
toString
());
const
isDaibanUser
=
computed
(()
=>
formData
?.
daibanUsers
?.
includes
(
userInfo
?.
id
)
formData
?.
daibanUsers
?.
includes
(
userInfo
?.
id
)
,
);
// 表单禁用状态:基于流程节点 + 待办人判断
...
...
@@ -307,25 +307,26 @@ const jcFormDisabled = computed(() => {
});
const
showSave
=
computed
(
()
=>
!
isPreview
&&
(
!
formData
.
id
||
formData
.
projectCreator
===
userInfo
?.
id
)
()
=>
!
isPreview
&&
(
!
formData
.
id
||
formData
.
projectCreator
===
userInfo
?.
id
),
);
const
showSubmitLixiang
=
computed
(
()
=>
lxType
.
value
===
"1"
&&
formData
.
projectCreator
===
userInfo
?.
id
()
=>
lxType
.
value
===
"1"
&&
formData
.
projectCreator
===
userInfo
?.
id
,
);
const
showSubmitJuece
=
computed
(
()
=>
jcType
.
value
===
"7"
&&
formData
.
projectCreator
===
userInfo
?.
id
()
=>
jcType
.
value
===
"7"
&&
formData
.
projectCreator
===
userInfo
?.
id
,
);
const
showFirstAudit
=
computed
(
()
=>
isDaibanUser
.
value
&&
lxType
.
value
===
"3"
()
=>
isDaibanUser
.
value
&&
lxType
.
value
===
"3"
,
);
const
showAuditLixiang
=
computed
(
()
=>
isDaibanUser
.
value
&&
hasApproveRole
&&
lxType
.
value
===
"4"
()
=>
isDaibanUser
.
value
&&
hasApproveRole
&&
lxType
.
value
===
"4"
,
);
const
showAuditJuece
=
computed
(
()
=>
isDaibanUser
.
value
&&
jcType
.
value
===
"8"
()
=>
isDaibanUser
.
value
&&
jcType
.
value
===
"8"
,
);
const
showApprove
=
computed
(
()
=>
isDaibanUser
.
value
&&
hasApproveRole
&&
lxType
.
value
===
"2"
()
=>
isDaibanUser
.
value
&&
hasApproveRole
&&
lxType
.
value
===
"2"
,
);
// 下载文件
...
...
@@ -348,7 +349,7 @@ const downloadTemplate = async (type) => {
headers
:
{
Authorization
:
token
.
value
,
},
}
}
,
)
.
then
((
res
)
=>
res
.
blob
())
.
then
((
blob
)
=>
{
...
...
@@ -385,7 +386,7 @@ const finance = useFinanceTables();
const
getObjSums
=
(
obj
,
objkey
)
=>
{
return
Object
.
entries
(
obj
).
reduce
(
(
acc
,
[
key
,
item
])
=>
acc
.
plus
(
new
Decimal
(
item
[
objkey
]
||
0
)),
new
Decimal
(
0
)
new
Decimal
(
0
)
,
);
};
...
...
@@ -475,6 +476,30 @@ const getProjectInfo = () => {
pageActiveName
.
value
=
"决策信息填报"
;
}
// 按zb名称将后端数据合并到前端默认树结构中
function
mergeTzzeData
(
defaultData
,
backendData
)
{
if
(
!
backendData
||
!
backendData
.
length
)
return
;
const
map
=
{};
function
flatten
(
items
)
{
for
(
const
item
of
items
)
{
if
(
item
.
zb
)
map
[
item
.
zb
]
=
item
;
if
(
item
.
children
&&
item
.
children
.
length
)
flatten
(
item
.
children
);
}
}
flatten
(
backendData
);
function
fill
(
items
)
{
for
(
const
item
of
items
)
{
const
src
=
map
[
item
.
zb
];
if
(
src
)
{
item
.
id
=
src
.
id
;
item
.
rmbjj
=
src
.
rmbjj
;
}
if
(
item
.
children
&&
item
.
children
.
length
)
fill
(
item
.
children
);
}
}
fill
(
defaultData
);
}
// 决策
let
jcData
=
res
.
juece
||
{};
Object
.
assign
(
jcFormData
,
jcData
);
...
...
@@ -491,7 +516,7 @@ const getProjectInfo = () => {
Object
.
assign
(
juece
.
tpzcclData
.
value
,
jcData
.
qtxgzccl
);
Object
.
assign
(
juece
.
tpbczcclData
.
value
,
jcData
.
bcxgzccl
);
Object
.
assign
(
juece
.
shyaData
.
value
,
jcData
.
shya
);
Object
.
assign
(
juece
.
jcTzzeqkjData
,
jcData
.
projectXmtzzes
);
mergeTzzeData
(
juece
.
jcTzzeqkjData
,
jcData
.
projectXmtzzes
);
Object
.
assign
(
juece
.
jcCwpjzbData
,
jcData
.
projectCwpjzbs
);
Object
.
assign
(
juece
.
jcHxbjtjData
,
jcData
.
projectBjtjs
);
Object
.
assign
(
juece
.
jcztshqkData
,
jcData
.
projectJczts
);
...
...
@@ -516,7 +541,7 @@ const getProjectInfo = () => {
?.
children
||
[];
resource
.
jcQxgjList
.
value
=
resource
.
jcDsgjList
.
value
.
filter
(
(
item
)
=>
item
.
key
==
jcData
.
dsjngjjw
(
item
)
=>
item
.
key
==
jcData
.
dsjngjjw
,
)[
0
]?.
children
||
[];
resource
.
jcTzsxejflList
.
value
=
resource
.
tzsxyjflList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
tzsxyjfl
)[
0
]
...
...
@@ -635,10 +660,10 @@ const processInfo = computed(() => ({
}));
const
processTableData
=
ref
([]);
const
lxProcessData
=
computed
(()
=>
processTableData
.
value
.
filter
((
r
)
=>
!
r
.
actionName
?.
includes
(
"决策"
))
processTableData
.
value
.
filter
((
r
)
=>
!
r
.
actionName
?.
includes
(
"决策"
))
,
);
const
jcProcessData
=
computed
(()
=>
processTableData
.
value
.
filter
((
r
)
=>
r
.
actionName
?.
includes
(
"决策"
))
processTableData
.
value
.
filter
((
r
)
=>
r
.
actionName
?.
includes
(
"决策"
))
,
);
const
getProcessData
=
()
=>
{
proxy
.
$post
({
...
...
src/views/projectManage/addProject/components/JueceApproval.vue
View file @
537fb7f3
...
...
@@ -16,7 +16,7 @@
border
>
<el-table-column
prop=
"xh"
label=
"序号"
/>
<el-table-column
prop=
"zb"
label=
"
指标
"
/>
<el-table-column
prop=
"zb"
label=
"
项目
"
/>
<el-table-column
prop=
"dw"
label=
""
width=
"70"
/>
<el-table-column
prop=
"rmbjj"
label=
"人民币计价"
>
<template
#
default=
"scope"
>
...
...
@@ -78,21 +78,41 @@
/>
</
template
>
</el-table-column>
<el-table-column
label=
"单位工程造价"
>
<el-table-column
prop=
"dwgczjSz"
label=
"数值"
width=
"180"
>
<el-table-column
label=
"单位工程造价
(动态)
"
>
<el-table-column
prop=
"dwgczj
Dt
Sz"
label=
"数值"
width=
"180"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwgczjSz"
v-model=
"scope.row.dwgczj
Dt
Sz"
:min=
"0"
:max=
"99999999999.99999999"
controls-position=
"right"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwgczjDw"
label=
"单位"
width=
"130"
>
<el-table-column
prop=
"dwgczjD
tD
w"
label=
"单位"
width=
"130"
>
<
template
#
default=
"scope"
>
<CommonSelector
v-model=
"scope.row.dwgczjDw"
v-model=
"scope.row.dwgczjDtDw"
dictName=
"gczjdw"
/>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"单位工程造价(静态)"
>
<el-table-column
prop=
"dwgczjJtSz"
label=
"数值"
width=
"180"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwgczjJtSz"
:min=
"0"
:max=
"99999999999.99999999"
controls-position=
"right"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwgczjJtDw"
label=
"单位"
width=
"130"
>
<
template
#
default=
"scope"
>
<CommonSelector
v-model=
"scope.row.dwgczjJtDw"
dictName=
"gczjdw"
/>
</
template
>
...
...
@@ -153,6 +173,151 @@
<el-input
v-model=
"scope.row.dwsjDw"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"其中:机制电量部分"
>
<el-table-column
prop=
"dwsjJzdlJqpjdj"
label=
"加权平均电价"
width=
"150"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjJzdlJqpjdj"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjJzdlDlzb"
label=
"电量占比"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjJzdlDlzb"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjJzdlZxqx"
label=
"执行期限"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjJzdlZxqx"
/>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"其中:中长期交易电量部分"
>
<el-table-column
prop=
"dwsjZcqjyJqpjdj"
label=
"加权平均电价"
width=
"150"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjZcqjyJqpjdj"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjZcqjyDlzb"
label=
"电量占比"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjZcqjyDlzb"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjZcqjyZxqx"
label=
"执行期限"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjZcqjyZxqx"
/>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"其中:现货交易电量部分"
>
<el-table-column
prop=
"dwsjXhjyJqpjdj"
label=
"加权平均电价"
width=
"150"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjXhjyJqpjdj"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjXhjyDlzb"
label=
"电量占比"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjXhjyDlzb"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjXhjyZxqx"
label=
"执行期限"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjXhjyZxqx"
/>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"其中:绿色价值部分"
>
<el-table-column
prop=
"dwsjLsjzJqpjdj"
label=
"加权平均电价"
width=
"150"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjLsjzJqpjdj"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjLsjzDlzb"
label=
"电量占比"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjLsjzDlzb"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjLsjzZxqx"
label=
"执行期限"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjLsjzZxqx"
/>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"其中:市场运营费用(分摊费)"
>
<el-table-column
prop=
"dwsjScyyJqpjdj"
label=
"加权平均电价"
width=
"150"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjScyyJqpjdj"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjScyyDlzb"
label=
"电量占比"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjScyyDlzb"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"dwsjScyyZxqx"
label=
"执行期限"
width=
"120"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.dwsjScyyZxqx"
/>
</
template
>
</el-table-column>
</el-table-column>
</el-table-column>
<el-table-column
label=
"盈亏平衡点"
>
<el-table-column
prop=
"ykphdlx"
label=
"类型"
width=
"130"
>
...
...
@@ -215,7 +380,7 @@
<CommonSelector
v-model=
"scope.row.hylx"
dictName=
"hylx"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"hymc"
label=
"会议
名称
"
>
<el-table-column
prop=
"hymc"
label=
"会议
届次
"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.hymc"
/>
</
template
>
...
...
@@ -298,7 +463,7 @@
<CommonSelector
v-model=
"scope.row.hylx"
dictName=
"hylx"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"hymc"
label=
"会议
名称
"
>
<el-table-column
prop=
"hymc"
label=
"会议
届次
"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.hymc"
/>
</
template
>
...
...
@@ -376,7 +541,7 @@
</el-collapse-item>
<el-collapse-item
title=
"项目批复信息"
name=
"项目批复信息"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"
8
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"最终审批意见"
label-width=
"160"
>
<CommonSelector
v-model=
"jcFormData.jczzpfyj"
...
...
@@ -384,7 +549,7 @@
/>
</el-form-item>
</el-col>
<el-col
:span=
"
8
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"项目批复时间"
>
<el-date-picker
v-model=
"jcFormData.jcxmpfsj"
...
...
@@ -393,12 +558,12 @@
/>
</el-form-item>
</el-col>
<el-col
:span=
"
8
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"项目批复文号"
>
<el-input
v-model=
"jcFormData.jcxmpfwh"
/>
</el-form-item>
</el-col>
<el-col
:span=
"
24
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"审核处室"
label-width=
"160"
>
<el-input
v-model=
"jcFormData.jcpfshcs"
/>
</el-form-item>
...
...
@@ -452,7 +617,7 @@
/>
</
template
>
</el-table-column>
<el-table-column
label=
"执行回复"
prop=
"zxhf"
>
<
!-- <
el-table-column label="执行回复" prop="zxhf">
<template #default="scope">
<el-input v-model="scope.row.zxhf" type="textarea" />
</template>
...
...
@@ -493,7 +658,7 @@
</span>
</div>
</template>
</el-table-column>
</el-table-column>
-->
<el-table-column
label=
"操作"
width=
"60"
fixed=
"right"
>
<
template
#
default=
"scope"
>
<el-button
...
...
src/views/projectManage/addProject/components/JueceFinance.vue
View file @
537fb7f3
...
...
@@ -3,10 +3,6 @@
<div
class=
"tab-content"
>
<el-form
:model=
"jcFormData"
:label-width=
"150"
:disabled=
"isPreview"
>
<el-collapse
v-model=
"activeCollapse"
>
<el-collapse-item
title=
"投评报告及测算表"
name=
"投评报告及测算表"
>
<FileUploader
v-model=
"jcFormData.tpbgjcsb"
/>
</el-collapse-item>
<el-collapse-item
title=
"投决计划"
name=
"投决计划"
>
<div
class=
"tab-handle"
>
<el-button
...
...
@@ -383,6 +379,12 @@
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title=
"投资各方现金流量表"
name=
"投资各方现金流量表"
>
<FileUploader
v-model=
"jcFormData.tpbgjcsb"
/>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
...
...
src/views/projectManage/addProject/composables/useJueceData.js
View file @
537fb7f3
...
...
@@ -403,11 +403,18 @@ export function useJueceData(jcFormData, gdlxListRef) {
},
],
},
{
xh
:
"4"
,
zb
:
"单位工程造价"
,
dw
:
"万元"
,
key
:
"2.4"
,
parentKey
:
"2"
,
},
],
},
{
xh
:
""
,
zb
:
"批复总
出
资"
,
zb
:
"批复总
投
资"
,
dw
:
"万元"
,
key
:
"3"
,
},
...
...
@@ -453,6 +460,8 @@ export function useJueceData(jcFormData, gdlxListRef) {
ykphddw
:
"%"
,
xsfwnlDw
:
"万元"
,
dwscfwzcbDw
:
"万元"
,
dwgczjDtDw
:
"元/km"
,
dwgczjJtDw
:
"元/km"
,
});
};
const
deleteJchxbjtj
=
(
index
)
=>
{
...
...
@@ -511,6 +520,7 @@ export function useJueceData(jcFormData, gdlxListRef) {
};
// 申请报告
let
bhqkData
=
reactive
([
{
lx
:
"投标保证金"
,
tjzt
:
""
,
je
:
null
,
tjsj
:
""
,
thsj
:
""
},
{
lx
:
"投资人履约保函"
,
tjzt
:
""
,
je
:
null
,
tjsj
:
""
,
thsj
:
""
},
...
...
src/views/projectManage/addProject/composables/useLixiangData.js
View file @
537fb7f3
...
...
@@ -139,7 +139,7 @@ export function useLixiangData(formData, gdlxListRef) {
children
:
[
{
xh
:
"2.1"
,
zb
:
"其中:
并非表项目我方贷款/投
保额"
,
zb
:
"其中:
非并表项目我方贷款/担
保额"
,
dw
:
"万元"
,
key
:
"2.1"
,
parentKey
:
"2"
,
...
...
@@ -163,7 +163,7 @@ export function useLixiangData(formData, gdlxListRef) {
},
{
xh
:
""
,
zb
:
"批复总
出
资"
,
zb
:
"批复总
投
资"
,
dw
:
"万元"
,
key
:
"4"
,
},
...
...
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