明树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
f034cb1c
Commit
f034cb1c
authored
Jan 21, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
本地检查评价创建路由
parent
de3122d4
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1218 additions
and
3 deletions
+1218
-3
routes.js
src/router/routes.js
+33
-0
evaluate.vue
src/views/castbehind/evaluate.vue
+160
-0
evaluateAdd.vue
src/views/castbehind/evaluateAdd.vue
+429
-0
runningPeriod.vue
src/views/castbehind/runningPeriod.vue
+160
-0
runningPeriodAdd.vue
src/views/castbehind/runningPeriodAdd.vue
+429
-0
bigIssuesAdd.vue
src/views/investingManage/bigIssuesAdd.vue
+7
-3
No files found.
src/router/routes.js
View file @
f034cb1c
...
@@ -142,6 +142,39 @@ const routes = [
...
@@ -142,6 +142,39 @@ const routes = [
},
},
],
],
},
},
{
path
:
"/castbehind"
,
name
:
"castbehind"
,
title
:
"投后管理"
,
redirect
:
"/runningPeriod"
,
children
:
[
{
path
:
"/runningPeriod"
,
name
:
"runningPeriod"
,
title
:
"运营期投资检查"
,
component
:
()
=>
import
(
"@/views/castbehind/runningPeriod.vue"
),
},
{
path
:
"/runningPeriodAdd"
,
name
:
"runningPeriodAdd"
,
title
:
"运营期投资检查"
,
component
:
()
=>
import
(
"@/views/castbehind/runningPeriodAdd.vue"
),
},
{
path
:
"/evaluate"
,
name
:
"evaluate"
,
title
:
"投资后评价"
,
component
:
()
=>
import
(
"@/views/castbehind/evaluate.vue"
),
},
{
path
:
"/evaluateAdd"
,
name
:
"evaluateAdd"
,
title
:
"投资后评价"
,
component
:
()
=>
import
(
"@/views/castbehind/evaluateAdd.vue"
),
},
],
},
{
{
path
:
"/templateManage"
,
path
:
"/templateManage"
,
name
:
"templateManage"
,
name
:
"templateManage"
,
...
...
src/views/castbehind/evaluate.vue
0 → 100644
View file @
f034cb1c
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
<el-button
type=
"primary"
@
click=
"constructionAdd"
>
新增
</el-button>
</div>
</div>
<div
class=
"manage-content"
v-loading=
"loading"
>
<common-table
:autoHeight=
"true"
:maxRows=
"10"
:data=
"tableData"
:columns=
"tableColumns"
:total=
"total"
:current-page=
"currentPage"
:page-size=
"pageSize"
:index=
"true"
:indexLabel=
"'序号'"
title=
""
:border=
"true"
@
size-change=
"handleSizeChange"
@
current-page-change=
"handleCurrentPageChange"
>
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewStatement(row)"
>
查看
</el-button
>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editStatement(row)"
>
编辑
</el-button
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteStatement(row)"
>
删除
</el-button
>
</
template
>
</common-table>
</div>
</div>
</div>
</template>
<
script
setup
>
import
{
ref
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
{
prop
:
"projectName"
,
label
:
"项目信息"
,
showOverflowTooltip
:
true
,
},
{
prop
:
"operations"
,
label
:
"操作"
,
width
:
170
,
slot
:
"operations"
,
fixed
:
"right"
,
align
:
"center"
,
},
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getStatementData
=
()
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getJsqtzjcList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
},
callback
:
(
data
)
=>
{
console
.
log
(
data
,
"data"
);
tableData
.
value
=
data
.
rows
;
total
.
value
=
data
.
count
;
loading
.
value
=
false
;
},
});
};
// 分页
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
getStatementData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
getStatementData
();
};
const
constructionAdd
=
()
=>
{
router
.
push
(
"/constructionAdd"
);
};
const
editStatement
=
(
item
)
=>
{
router
.
push
({
name
:
"constructionAdd"
,
query
:
{
id
:
item
.
id
,
},
});
};
const
previewStatement
=
(
item
)
=>
{
router
.
push
({
name
:
"constructionAdd"
,
query
:
{
isPreview
:
true
,
id
:
item
.
id
,
},
});
};
const
deleteStatement
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
proxy
.
$post
({
url
:
"/api/project/deleteJsqtzjc"
,
data
:
{
id
:
item
.
id
,
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
getStatementData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
getStatementData
();
});
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/manage.less";
</
style
>
src/views/castbehind/evaluateAdd.vue
0 → 100644
View file @
f034cb1c
<
template
>
<div
class=
"add-project-container"
>
<div
class=
"add-project-content"
v-loading=
"loading"
>
<div
class=
"add-project-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
<el-button
type=
"default"
@
click=
"backClick"
>
返回
</el-button>
<template
v-if=
"!loading && !isPreview"
>
<el-button
type=
"primary"
@
click=
"saveClick"
>
保存
</el-button>
</
template
>
</div>
</div>
<div
class=
"tabs-content"
>
<div
class=
"project-tab-content"
>
<div
class=
"tab-content"
>
<el-form
:model=
"formData"
:label-width=
"200"
: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-select
v-model=
"formData.projectId"
placeholder=
"请选择项目信息"
no-data-text=
"暂无数据"
@
change=
"changeProject"
>
<el-option
v-for=
"item in projectList"
:key=
"item.key"
: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.jcztz"
placeholder="请输入决策总投资 一次填报锁定"
/>
</el-form-item>
</el-col> -->
</el-row>
<!-- <el-row :gutter="20">
<el-col :span="12">
<el-form-item label="资本金内部收益率(%) 一次填报锁定">
<el-input
v-model="formData.zbjnbsyl"
placeholder="请输入资本金内部收益率(%) 一次填报锁定"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="预测总投资">
<el-input
v-model="formData.ycztz"
placeholder="请输入预测总投资"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="确认总投资">
<el-input
v-model="formData.qrztz"
placeholder="请输入确认总投资"
/>
</el-form-item>
</el-col>
</el-row> -->
</el-collapse-item>
<!-- 投资(成本)分析会资料 -->
<el-collapse-item
title=
"投资(成本)分析会资料"
name=
"投资(成本)分析会资料"
>
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
@
click=
"addjsqtzjcTzfxs"
>
新增
</el-button
>
</div>
<el-table
:data=
"jsqtzjcTzfxsList"
style=
"width: 100%"
empty-text=
"暂无数据"
border
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<el-table-column
prop=
"jd"
label=
"时间 "
>
<
template
#
default=
"scope"
>
<!--
<el-date-picker
v-model=
"scope.row.jd"
type=
"datetime"
format=
"YYYY-MM-DD HH:mm:ss"
value-format=
"YYYY-MM-DD HH:mm:ss"
placeholder=
"请选择"
/>
-->
<el-input
v-model=
"scope.row.jd"
placeholder=
"请按照 xx年xx季度 格式填写"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"ycztz"
label=
"当期预测总投资"
>
<
template
#
default=
"scope"
>
<el-input
type=
"number"
v-model
.
number=
"scope.row.ycztz"
placeholder=
"请输入当期预测总投资"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"zbjnbsyl"
label=
"资本金内部收益率(%)"
>
<
template
#
default=
"scope"
>
<el-input
v-model
.
number=
"scope.row.zbjnbsyl"
placeholder=
"请输入资本金内部收益率(%)"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"tzcbfxhzl"
label=
"投资(成本)分析会资料"
>
<
template
#
default=
"scope"
>
<FileUploader
v-model=
"scope.row.tzcbfxhzl"
:isInline=
"true"
></FileUploader>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"60"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deletejsqtzjcTzfxs(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-collapse-item>
<!-- 专项检查 -->
<el-collapse-item
title=
"专项检查"
name=
"专项检查"
>
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
@
click=
"addJsqtzjcZxjcs"
>
新增
</el-button
>
</div>
<el-table
:data=
"jsqtzjcZxjcsList"
style=
"width: 100%"
empty-text=
"暂无数据"
border
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<el-table-column
prop=
"zxjcfl"
label=
"专项检查类型"
>
<
template
#
default=
"scope"
>
<el-select
v-model=
"scope.row.zxjcfl"
placeholder=
"请选择专项检查类型"
>
<el-option
v-for=
"item in options?.construction_classify"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"jcjg"
label=
"检查结果"
>
<
template
#
default=
"scope"
>
<el-input
v-model
.
number=
"scope.row.jcjg"
placeholder=
"请输入检查结果"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"zgcsqd"
label=
"整改措施清单"
>
<
template
#
default=
"scope"
>
<el-input
v-model
.
number=
"scope.row.zgcsqd"
placeholder=
"请输入整改措施清单"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"fjcl"
label=
"附件材料"
>
<
template
#
default=
"scope"
>
<FileUploader
v-model=
"scope.row.fjcl"
:isInline=
"true"
></FileUploader>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"60"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteJsqtzjcZxjcs(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</div>
</div>
</div>
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
FileUploader
from
"../../components/FileUploader/index.vue"
;
// 初始化全局变量
const
router
=
useRouter
();
const
route
=
useRoute
();
const
{
proxy
}
=
getCurrentInstance
();
// 折叠面板默认展开项
const
activeCollapse
=
ref
([
"基本信息"
,
"投资(成本)分析会资料"
,
"专项检查"
]);
// 表单数据
const
formData
=
reactive
({
projectName
:
""
,
projectId
:
""
,
del
:
0
,
// 删除标记,0为正常
createdAt
:
""
,
updatedAt
:
""
,
});
// 加载状态
const
loading
=
ref
(
false
);
// 是否预览模式
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
// 项目列表数据
const
projectList
=
ref
([]);
// 当前编辑的记录ID
const
rcCgqyglId
=
ref
(
route
.
query
.
id
||
""
);
// 投资(成本)分析会资料列表
const
jsqtzjcTzfxsList
=
ref
([]);
// 专项检查列表
const
jsqtzjcZxjcsList
=
ref
([]);
// ========== 投资(成本)分析会资料 操作方法 ==========
const
addjsqtzjcTzfxs
=
()
=>
{
jsqtzjcTzfxsList
.
value
.
push
({
jd
:
""
,
ycztz
:
""
,
zbjnbsyl
:
""
,
jsqtzjcTzfxs
:
[],
});
};
const
deletejsqtzjcTzfxs
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}).
then
(()
=>
{
jsqtzjcTzfxsList
.
value
.
splice
(
index
,
1
);
ElMessage
.
success
(
"删除成功"
);
});
};
// ========== 专项检查 操作方法 ==========
const
addJsqtzjcZxjcs
=
()
=>
{
jsqtzjcZxjcsList
.
value
.
push
({
zxjcfl
:
""
,
jcjg
:
""
,
zgcsqd
:
""
,
fjcl
:
[],
});
};
const
deleteJsqtzjcZxjcs
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}).
then
(()
=>
{
jsqtzjcZxjcsList
.
value
.
splice
(
index
,
1
);
ElMessage
.
success
(
"删除成功"
);
});
};
// ========== 通用方法 ==========
// 获取项目列表
const
getProjectData
=
()
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
},
});
};
// 选择项目后同步项目名称
const
changeProject
=
(
val
)
=>
{
const
selectItem
=
projectList
.
value
.
find
((
item
)
=>
item
.
id
===
val
);
if
(
selectItem
)
{
formData
.
projectName
=
selectItem
.
projectName
;
}
};
// 获取单条记录详情(编辑/预览)
const
getJsqtzjcDetail
=
()
=>
{
if
(
!
rcCgqyglId
.
value
)
return
;
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getJsqtzjcInfo"
,
data
:
{
id
:
rcCgqyglId
.
value
},
callback
:
(
data
)
=>
{
loading
.
value
=
false
;
// 赋值基础表单数据
Object
.
assign
(
formData
,
data
);
// 赋值列表数据
jsqtzjcTzfxsList
.
value
=
data
.
jsqtzjcTzfxs
||
[];
jsqtzjcZxjcsList
.
value
=
data
.
jsqtzjcZxjcs
||
[];
},
});
};
// 返回上一页
const
backClick
=
()
=>
{
router
.
back
(
-
1
);
};
// 保存/提交表单
const
saveClick
=
()
=>
{
// 基础校验
if
(
!
formData
.
projectId
)
{
ElMessage
.
warning
(
"请选择项目信息"
);
return
;
}
loading
.
value
=
true
;
// 区分新增/编辑
const
url
=
rcCgqyglId
.
value
?
"/api/project/updateJsqtzjc"
:
"/api/project/createJsqtzjc"
;
// 组装提交数据
const
submitData
=
{
...
formData
,
projectId
:
formData
.
projectId
+
""
,
// 确保为字符串类型
jsqtzjcTzfxs
:
jsqtzjcTzfxsList
.
value
,
jsqtzjcZxjcs
:
jsqtzjcZxjcsList
.
value
,
};
proxy
.
$post
({
url
:
url
,
data
:
submitData
,
callback
:
()
=>
{
loading
.
value
=
false
;
ElMessage
.
success
(
rcCgqyglId
.
value
?
"编辑成功"
:
"新增成功"
);
router
.
back
(
-
1
);
},
});
};
let
options
=
ref
();
// 页面初始化
onMounted
(()
=>
{
// 获取项目列表
getProjectData
();
options
.
value
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
// 如果有ID则加载详情
if
(
rcCgqyglId
.
value
)
{
getJsqtzjcDetail
();
}
});
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/verticalManages.less";
.tab-handle {
margin-bottom: 10px;
text-align: left;
}
.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;
}
}
</
style
>
src/views/castbehind/runningPeriod.vue
0 → 100644
View file @
f034cb1c
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
<el-button
type=
"primary"
@
click=
"constructionAdd"
>
新增
</el-button>
</div>
</div>
<div
class=
"manage-content"
v-loading=
"loading"
>
<common-table
:autoHeight=
"true"
:maxRows=
"10"
:data=
"tableData"
:columns=
"tableColumns"
:total=
"total"
:current-page=
"currentPage"
:page-size=
"pageSize"
:index=
"true"
:indexLabel=
"'序号'"
title=
""
:border=
"true"
@
size-change=
"handleSizeChange"
@
current-page-change=
"handleCurrentPageChange"
>
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewStatement(row)"
>
查看
</el-button
>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editStatement(row)"
>
编辑
</el-button
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteStatement(row)"
>
删除
</el-button
>
</
template
>
</common-table>
</div>
</div>
</div>
</template>
<
script
setup
>
import
{
ref
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
{
prop
:
"projectName"
,
label
:
"项目信息"
,
showOverflowTooltip
:
true
,
},
{
prop
:
"operations"
,
label
:
"操作"
,
width
:
170
,
slot
:
"operations"
,
fixed
:
"right"
,
align
:
"center"
,
},
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getStatementData
=
()
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getYyqtzjcList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
},
callback
:
(
data
)
=>
{
console
.
log
(
data
,
"data"
);
tableData
.
value
=
data
.
rows
;
total
.
value
=
data
.
count
;
loading
.
value
=
false
;
},
});
};
// 分页
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
getStatementData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
getStatementData
();
};
const
constructionAdd
=
()
=>
{
router
.
push
(
"/constructionAdd"
);
};
const
editStatement
=
(
item
)
=>
{
router
.
push
({
name
:
"constructionAdd"
,
query
:
{
id
:
item
.
id
,
},
});
};
const
previewStatement
=
(
item
)
=>
{
router
.
push
({
name
:
"constructionAdd"
,
query
:
{
isPreview
:
true
,
id
:
item
.
id
,
},
});
};
const
deleteStatement
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
proxy
.
$post
({
url
:
"/api/project/deleteYyqtzjc"
,
data
:
{
id
:
item
.
id
,
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
getStatementData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
getStatementData
();
});
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/manage.less";
</
style
>
src/views/castbehind/runningPeriodAdd.vue
0 → 100644
View file @
f034cb1c
<
template
>
<div
class=
"add-project-container"
>
<div
class=
"add-project-content"
v-loading=
"loading"
>
<div
class=
"add-project-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
<el-button
type=
"default"
@
click=
"backClick"
>
返回
</el-button>
<template
v-if=
"!loading && !isPreview"
>
<el-button
type=
"primary"
@
click=
"saveClick"
>
保存
</el-button>
</
template
>
</div>
</div>
<div
class=
"tabs-content"
>
<div
class=
"project-tab-content"
>
<div
class=
"tab-content"
>
<el-form
:model=
"formData"
:label-width=
"200"
: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-select
v-model=
"formData.projectId"
placeholder=
"请选择项目信息"
no-data-text=
"暂无数据"
@
change=
"changeProject"
>
<el-option
v-for=
"item in projectList"
:key=
"item.key"
: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.jcztz"
placeholder="请输入决策总投资 一次填报锁定"
/>
</el-form-item>
</el-col> -->
</el-row>
<!-- <el-row :gutter="20">
<el-col :span="12">
<el-form-item label="资本金内部收益率(%) 一次填报锁定">
<el-input
v-model="formData.zbjnbsyl"
placeholder="请输入资本金内部收益率(%) 一次填报锁定"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="预测总投资">
<el-input
v-model="formData.ycztz"
placeholder="请输入预测总投资"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="确认总投资">
<el-input
v-model="formData.qrztz"
placeholder="请输入确认总投资"
/>
</el-form-item>
</el-col>
</el-row> -->
</el-collapse-item>
<!-- 投资(成本)分析会资料 -->
<el-collapse-item
title=
"投资(成本)分析会资料"
name=
"投资(成本)分析会资料"
>
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
@
click=
"addjsqtzjcTzfxs"
>
新增
</el-button
>
</div>
<el-table
:data=
"jsqtzjcTzfxsList"
style=
"width: 100%"
empty-text=
"暂无数据"
border
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<el-table-column
prop=
"jd"
label=
"时间 "
>
<
template
#
default=
"scope"
>
<!--
<el-date-picker
v-model=
"scope.row.jd"
type=
"datetime"
format=
"YYYY-MM-DD HH:mm:ss"
value-format=
"YYYY-MM-DD HH:mm:ss"
placeholder=
"请选择"
/>
-->
<el-input
v-model=
"scope.row.jd"
placeholder=
"请按照 xx年xx季度 格式填写"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"ycztz"
label=
"当期预测总投资"
>
<
template
#
default=
"scope"
>
<el-input
type=
"number"
v-model
.
number=
"scope.row.ycztz"
placeholder=
"请输入当期预测总投资"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"zbjnbsyl"
label=
"资本金内部收益率(%)"
>
<
template
#
default=
"scope"
>
<el-input
v-model
.
number=
"scope.row.zbjnbsyl"
placeholder=
"请输入资本金内部收益率(%)"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"tzcbfxhzl"
label=
"投资(成本)分析会资料"
>
<
template
#
default=
"scope"
>
<FileUploader
v-model=
"scope.row.tzcbfxhzl"
:isInline=
"true"
></FileUploader>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"60"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deletejsqtzjcTzfxs(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-collapse-item>
<!-- 专项检查 -->
<el-collapse-item
title=
"专项检查"
name=
"专项检查"
>
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
@
click=
"addJsqtzjcZxjcs"
>
新增
</el-button
>
</div>
<el-table
:data=
"jsqtzjcZxjcsList"
style=
"width: 100%"
empty-text=
"暂无数据"
border
>
<el-table-column
type=
"index"
width=
"60"
label=
"序号"
/>
<el-table-column
prop=
"zxjcfl"
label=
"专项检查类型"
>
<
template
#
default=
"scope"
>
<el-select
v-model=
"scope.row.zxjcfl"
placeholder=
"请选择专项检查类型"
>
<el-option
v-for=
"item in options?.construction_classify"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"jcjg"
label=
"检查结果"
>
<
template
#
default=
"scope"
>
<el-input
v-model
.
number=
"scope.row.jcjg"
placeholder=
"请输入检查结果"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"zgcsqd"
label=
"整改措施清单"
>
<
template
#
default=
"scope"
>
<el-input
v-model
.
number=
"scope.row.zgcsqd"
placeholder=
"请输入整改措施清单"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"fjcl"
label=
"附件材料"
>
<
template
#
default=
"scope"
>
<FileUploader
v-model=
"scope.row.fjcl"
:isInline=
"true"
></FileUploader>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"60"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteJsqtzjcZxjcs(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</div>
</div>
</div>
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
FileUploader
from
"../../components/FileUploader/index.vue"
;
// 初始化全局变量
const
router
=
useRouter
();
const
route
=
useRoute
();
const
{
proxy
}
=
getCurrentInstance
();
// 折叠面板默认展开项
const
activeCollapse
=
ref
([
"基本信息"
,
"投资(成本)分析会资料"
,
"专项检查"
]);
// 表单数据
const
formData
=
reactive
({
projectName
:
""
,
projectId
:
""
,
del
:
0
,
// 删除标记,0为正常
createdAt
:
""
,
updatedAt
:
""
,
});
// 加载状态
const
loading
=
ref
(
false
);
// 是否预览模式
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
// 项目列表数据
const
projectList
=
ref
([]);
// 当前编辑的记录ID
const
rcCgqyglId
=
ref
(
route
.
query
.
id
||
""
);
// 投资(成本)分析会资料列表
const
jsqtzjcTzfxsList
=
ref
([]);
// 专项检查列表
const
jsqtzjcZxjcsList
=
ref
([]);
// ========== 投资(成本)分析会资料 操作方法 ==========
const
addjsqtzjcTzfxs
=
()
=>
{
jsqtzjcTzfxsList
.
value
.
push
({
jd
:
""
,
ycztz
:
""
,
zbjnbsyl
:
""
,
jsqtzjcTzfxs
:
[],
});
};
const
deletejsqtzjcTzfxs
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}).
then
(()
=>
{
jsqtzjcTzfxsList
.
value
.
splice
(
index
,
1
);
ElMessage
.
success
(
"删除成功"
);
});
};
// ========== 专项检查 操作方法 ==========
const
addJsqtzjcZxjcs
=
()
=>
{
jsqtzjcZxjcsList
.
value
.
push
({
zxjcfl
:
""
,
jcjg
:
""
,
zgcsqd
:
""
,
fjcl
:
[],
});
};
const
deleteJsqtzjcZxjcs
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}).
then
(()
=>
{
jsqtzjcZxjcsList
.
value
.
splice
(
index
,
1
);
ElMessage
.
success
(
"删除成功"
);
});
};
// ========== 通用方法 ==========
// 获取项目列表
const
getProjectData
=
()
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
},
});
};
// 选择项目后同步项目名称
const
changeProject
=
(
val
)
=>
{
const
selectItem
=
projectList
.
value
.
find
((
item
)
=>
item
.
id
===
val
);
if
(
selectItem
)
{
formData
.
projectName
=
selectItem
.
projectName
;
}
};
// 获取单条记录详情(编辑/预览)
const
getJsqtzjcDetail
=
()
=>
{
if
(
!
rcCgqyglId
.
value
)
return
;
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getYyqtzjcInfo"
,
data
:
{
id
:
rcCgqyglId
.
value
},
callback
:
(
data
)
=>
{
loading
.
value
=
false
;
// 赋值基础表单数据
Object
.
assign
(
formData
,
data
);
// 赋值列表数据
jsqtzjcTzfxsList
.
value
=
data
.
jsqtzjcTzfxs
||
[];
jsqtzjcZxjcsList
.
value
=
data
.
jsqtzjcZxjcs
||
[];
},
});
};
// 返回上一页
const
backClick
=
()
=>
{
router
.
back
(
-
1
);
};
// 保存/提交表单
const
saveClick
=
()
=>
{
// 基础校验
if
(
!
formData
.
projectId
)
{
ElMessage
.
warning
(
"请选择项目信息"
);
return
;
}
loading
.
value
=
true
;
// 区分新增/编辑
const
url
=
rcCgqyglId
.
value
?
"/api/project/updateYyqtzjc"
:
"/api/project/createYyqtzjc"
;
// 组装提交数据
const
submitData
=
{
...
formData
,
projectId
:
formData
.
projectId
+
""
,
// 确保为字符串类型
jsqtzjcTzfxs
:
jsqtzjcTzfxsList
.
value
,
jsqtzjcZxjcs
:
jsqtzjcZxjcsList
.
value
,
};
proxy
.
$post
({
url
:
url
,
data
:
submitData
,
callback
:
()
=>
{
loading
.
value
=
false
;
ElMessage
.
success
(
rcCgqyglId
.
value
?
"编辑成功"
:
"新增成功"
);
router
.
back
(
-
1
);
},
});
};
let
options
=
ref
();
// 页面初始化
onMounted
(()
=>
{
// 获取项目列表
getProjectData
();
options
.
value
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
// 如果有ID则加载详情
if
(
rcCgqyglId
.
value
)
{
getJsqtzjcDetail
();
}
});
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/verticalManages.less";
.tab-handle {
margin-bottom: 10px;
text-align: left;
}
.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;
}
}
</
style
>
src/views/investingManage/bigIssuesAdd.vue
View file @
f034cb1c
...
@@ -90,13 +90,17 @@
...
@@ -90,13 +90,17 @@
<el-row
:gutter=
"20"
>
<el-row
:gutter=
"20"
>
<!-- 股权结构 -->
<!-- 股权结构 -->
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"股权结构"
>
<el-form-item
label=
"股权结构、资金来源及构成发生重大变化的报告及审批文件"
>
<FileUploader
v-model=
"formData.gqjg"
/>
<FileUploader
v-model=
"formData.gqjg"
/>
</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.cwjr"
/>
<FileUploader
v-model=
"formData.cwjr"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
...
...
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