明树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
3a83439f
Commit
3a83439f
authored
Apr 16, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调整项目信息
parent
f4c9ec20
Pipeline
#109870
passed with stage
in 20 seconds
Changes
26
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
253 additions
and
4 deletions
+253
-4
projectInfo.js
src/stores/projectInfo.js
+73
-0
evaluate.vue
src/views/castbehind/evaluate.vue
+4
-0
evaluateAdd.vue
src/views/castbehind/evaluateAdd.vue
+9
-0
investmentCecovery.vue
src/views/castbehind/investmentCecovery.vue
+4
-0
investmentCecoveryAdd.vue
src/views/castbehind/investmentCecoveryAdd.vue
+10
-0
runningPeriod.vue
src/views/castbehind/runningPeriod.vue
+4
-0
runningPeriodAdd.vue
src/views/castbehind/runningPeriodAdd.vue
+9
-0
turnover.vue
src/views/castbehind/turnover.vue
+4
-0
turnoverAdd.vue
src/views/castbehind/turnoverAdd.vue
+9
-0
addControl.vue
src/views/investingManage/addControl.vue
+9
-0
addRisk.vue
src/views/investingManage/addRisk.vue
+10
-1
addStatement.vue
src/views/investingManage/addStatement.vue
+10
-1
bigIssues.vue
src/views/investingManage/bigIssues.vue
+4
-0
bigIssuesAdd.vue
src/views/investingManage/bigIssuesAdd.vue
+9
-0
construction.vue
src/views/investingManage/construction.vue
+4
-0
constructionAdd.vue
src/views/investingManage/constructionAdd.vue
+9
-0
constructionTime.vue
src/views/investingManage/constructionTime.vue
+4
-0
constructionTimeAdd.vue
src/views/investingManage/constructionTimeAdd.vue
+9
-0
decision.vue
src/views/investingManage/decision.vue
+4
-0
decisionAdd.vue
src/views/investingManage/decisionAdd.vue
+9
-1
majorRisk.vue
src/views/investingManage/majorRisk.vue
+4
-0
quit.vue
src/views/investingManage/quit.vue
+4
-0
quitAdd.vue
src/views/investingManage/quitAdd.vue
+9
-0
targetControl.vue
src/views/investingManage/targetControl.vue
+4
-0
targetLiabilityStatement.vue
src/views/investingManage/targetLiabilityStatement.vue
+4
-0
xmdakDetaill.vue
src/views/projectManage/xmdakDetaill.vue
+21
-1
No files found.
src/stores/projectInfo.js
0 → 100644
View file @
3a83439f
import
{
defineStore
}
from
"pinia"
;
export
const
useProjectInfoStore
=
defineStore
(
"projectInfo"
,
{
state
:
()
=>
({
projectInfo
:
null
,
}),
getters
:
{
getProjectInfo
:
(
state
)
=>
state
.
projectInfo
,
},
actions
:
{
// 设置项目信息(增)
setProjectInfo
(
data
)
{
this
.
projectInfo
=
data
;
sessionStorage
.
setItem
(
"projectFinalInfo"
,
JSON
.
stringify
(
data
));
},
// 更新项目信息的某个字段(改)
updateProjectInfo
(
field
,
value
)
{
if
(
this
.
projectInfo
)
{
this
.
projectInfo
[
field
]
=
value
;
sessionStorage
.
setItem
(
"projectFinalInfo"
,
JSON
.
stringify
(
this
.
projectInfo
),
);
}
},
// 批量更新项目信息(改)
batchUpdateProjectInfo
(
updates
)
{
if
(
this
.
projectInfo
)
{
Object
.
assign
(
this
.
projectInfo
,
updates
);
sessionStorage
.
setItem
(
"projectFinalInfo"
,
JSON
.
stringify
(
this
.
projectInfo
),
);
}
},
// 获取项目信息(查)- 优先从 state 取,没有则从 sessionStorage 恢复
loadProjectInfo
()
{
if
(
this
.
projectInfo
)
return
this
.
projectInfo
;
const
raw
=
sessionStorage
.
getItem
(
"projectFinalInfo"
);
if
(
raw
)
{
try
{
this
.
projectInfo
=
JSON
.
parse
(
raw
);
return
this
.
projectInfo
;
}
catch
{
return
null
;
}
}
return
null
;
},
// 通过接口获取并保存项目信息(查 + 增)
fetchProjectInfo
(
proxy
,
projectId
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
proxy
.
$post
({
url
:
"/api/project/getProjectFinalInfo"
,
data
:
{
id
:
projectId
},
callback
:
(
data
)
=>
{
this
.
setProjectInfo
({
...
data
,
projectId
:
projectId
-
0
});
resolve
(
data
);
},
error
:
()
=>
{
console
.
error
(
"获取项目详情失败"
);
reject
(
new
Error
(
"获取项目详情失败"
));
},
});
});
},
// 清除项目信息(删)
clearProjectInfo
()
{
this
.
projectInfo
=
null
;
sessionStorage
.
removeItem
(
"projectFinalInfo"
);
},
},
});
src/views/castbehind/evaluate.vue
View file @
3a83439f
...
...
@@ -59,6 +59,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -181,6 +182,9 @@ const deleteStatement = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/castbehind/evaluateAdd.vue
View file @
3a83439f
...
...
@@ -18,6 +18,7 @@
<el-form-item
label=
"项目信息"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择项目信息"
no-data-text=
"暂无数据"
@
change=
"changeProject"
...
...
@@ -176,6 +177,7 @@ import FileUploader from "../../components/FileUploader/index.vue";
// 引入增强后的DynamicTable组件
import
DynamicTable
from
"../../components/FormDynamicTable/index.vue"
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
// 初始化全局变量
const
router
=
useRouter
();
const
route
=
useRoute
();
...
...
@@ -289,6 +291,7 @@ const formData = reactive({
// 加载状态
const
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
// 是否预览模式
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
// 项目列表数据
...
...
@@ -389,6 +392,12 @@ let options = ref();
// 页面初始化
onMounted
(()
=>
{
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
try
{
options
.
value
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
))
||
{};
// 合并全局选项到selectOptions
...
...
src/views/castbehind/investmentCecovery.vue
View file @
3a83439f
...
...
@@ -61,6 +61,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
searchItems
=
[
{
...
...
@@ -226,6 +227,9 @@ const deleteStatement = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/castbehind/investmentCecoveryAdd.vue
View file @
3a83439f
...
...
@@ -32,6 +32,7 @@
<el-form-item
label=
"项目名称"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择项目名称"
no-data-text=
"暂无数据"
@
change=
"changeProject"
...
...
@@ -540,6 +541,7 @@ import FinancialTable from "@/components/FinancialTable.vue";
import
InvestmentRecoveryTable
from
"@/components/InvestmentRecoveryTable.vue"
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
CollapseNavigation
from
"@/components/CollapseNavigation/index.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
transferColumns
=
ref
([
{
prop
:
"njfcgbl"
,
...
...
@@ -1299,6 +1301,7 @@ const changeProject = (val) => {
};
// 加载状态
const
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
// 是否预览模式
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
// 项目列表数据
...
...
@@ -1384,12 +1387,19 @@ const saveClick = () => {
onMounted
(()
=>
{
// 获取项目列表
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
options
.
value
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
// 如果有ID则加载详情
if
(
rcCgqyglId
.
value
)
{
getRcCgqyglDetail
();
}
else
{
initTableData
();
// 新增模式:从 store 读取缓存的项目信息
}
});
</
script
>
...
...
src/views/castbehind/runningPeriod.vue
View file @
3a83439f
...
...
@@ -59,6 +59,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
...
...
@@ -155,6 +156,9 @@ const deleteStatement = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/castbehind/runningPeriodAdd.vue
View file @
3a83439f
...
...
@@ -22,6 +22,7 @@
<el-form-item
label=
"项目信息"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择项目信息"
no-data-text=
"暂无数据"
@
change=
"changeProject"
...
...
@@ -85,6 +86,7 @@ import { useRouter, useRoute } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
DynamicTable
from
"@/components/FormDynamicTable/index.vue"
;
// 引入通用组件
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
// 初始化全局变量
const
router
=
useRouter
();
const
route
=
useRoute
();
...
...
@@ -196,6 +198,7 @@ const formData = reactive({
// 加载状态
const
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
// 是否预览模式
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
// 项目列表数据
...
...
@@ -296,6 +299,12 @@ let options = ref();
onMounted
(()
=>
{
// 获取项目列表
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
options
.
value
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
// 如果有ID则加载详情
...
...
src/views/castbehind/turnover.vue
View file @
3a83439f
...
...
@@ -60,6 +60,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -190,6 +191,9 @@ const deleteStatement = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/castbehind/turnoverAdd.vue
View file @
3a83439f
...
...
@@ -18,6 +18,7 @@
<el-form-item
label=
"项目信息"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择项目信息"
no-data-text=
"暂无数据"
@
change=
"changeProject"
...
...
@@ -96,6 +97,7 @@ import { useRouter, useRoute } from "vue-router";
import
{
ElMessage
}
from
"element-plus"
;
import
DynamicTable
from
"@/components/FormDynamicTable/index.vue"
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
// 路由与全局实例
const
router
=
useRouter
();
const
route
=
useRoute
();
...
...
@@ -136,6 +138,7 @@ const formData = reactive({
// 状态管理
const
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
const
projectList
=
ref
([]);
const
rcCgqyglId
=
ref
(
route
.
query
.
id
||
""
);
...
...
@@ -246,6 +249,12 @@ const saveClick = () => {
// 页面初始化
onMounted
(()
=>
{
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
options
.
value
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
if
(
rcCgqyglId
.
value
)
getJsqtzjcDetail
();
});
...
...
src/views/investingManage/addControl.vue
View file @
3a83439f
...
...
@@ -20,6 +20,7 @@
<el-form-item
label=
"项目信息"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
...
...
@@ -1017,6 +1018,7 @@ import FileUploader from "@/components/FileUploader/index.vue";
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
CollapseNavigation
from
"@/components/CollapseNavigation/index.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
const
userStore
=
useUserStore
();
const
router
=
useRouter
();
...
...
@@ -1089,6 +1091,7 @@ const handleNavClick = (item) => {
};
let
formData
=
reactive
({});
let
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
// 项目列表
let
projectList
=
ref
([]);
...
...
@@ -1194,6 +1197,12 @@ let lyList = reactive([]); // 安全质量环保-来源列表
onMounted
(()
=>
{
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
let
resourceData
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
ssjdList
=
resourceData
.
ssjd
;
jcdwList
=
resourceData
.
jcdw
;
...
...
src/views/investingManage/addRisk.vue
View file @
3a83439f
...
...
@@ -18,6 +18,7 @@
<el-form-item
label=
"项目信息"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
...
...
@@ -32,7 +33,7 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目名称"
>
<el-input
v-model=
"formData.projectName"
/>
<el-input
v-model=
"formData.projectName"
:disabled=
"projectDisabled"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
...
...
@@ -407,10 +408,12 @@ const { proxy } = getCurrentInstance();
let
token
=
ref
(
""
);
token
.
value
=
userStore
.
authToken
||
sessionStorage
.
getItem
(
"authToken"
)
||
""
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
activeCollapse
=
reactive
([
"基本信息"
,
"已发现或暴露的风险"
]);
let
formData
=
reactive
({});
let
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
let
isPreview
=
!!
route
.
query
.
isPreview
;
let
riskId
=
route
.
query
.
riskId
;
const
getRiskInfo
=
()
=>
{
...
...
@@ -465,6 +468,12 @@ let tzbkProps = {
let
xmlxList
=
ref
([]);
//项目类型
onMounted
(()
=>
{
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
let
resourceData
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
jnwList
=
resourceData
.
dqlx
;
tzbkList
=
resourceData
.
tzbk
;
...
...
src/views/investingManage/addStatement.vue
View file @
3a83439f
...
...
@@ -44,6 +44,7 @@
<el-form-item
label=
"项目信息"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择"
no-data-text=
"暂无数据"
@
change=
"changeProject"
...
...
@@ -60,7 +61,7 @@
<el-col
:span=
"12"
>
<el-form-item
label=
"项目名称"
>
<el-input
v-model=
"formData.projectName"
/>
<el-input
v-model=
"formData.projectName"
:disabled=
"projectDisabled"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
...
...
@@ -808,6 +809,7 @@ const pageActiveName = ref("投资目标责任书");
let
token
=
ref
(
""
);
token
.
value
=
userStore
.
authToken
||
sessionStorage
.
getItem
(
"authToken"
)
||
""
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
activeCollapse
=
reactive
([
"责任书基本信息"
,
...
...
@@ -899,6 +901,7 @@ const deletePfyjlsqk = (index) => {
};
let
isPreview
=
!!
route
.
query
.
isPreview
;
const
projectDisabled
=
ref
(
false
);
let
statementId
=
route
.
query
.
statementId
;
// 查看编辑详情
const
getStatementInfo
=
()
=>
{
...
...
@@ -929,6 +932,12 @@ const getStatementInfo = () => {
};
onMounted
(()
=>
{
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
let
resourceData
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
zrslxList
=
resourceData
.
level
;
pfyjlxList
=
resourceData
.
ssjd
;
...
...
src/views/investingManage/bigIssues.vue
View file @
3a83439f
...
...
@@ -59,6 +59,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -192,6 +193,9 @@ const deleteStatement = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/investingManage/bigIssuesAdd.vue
View file @
3a83439f
...
...
@@ -20,6 +20,7 @@
<el-form-item
label=
"项目信息"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择项目信息"
no-data-text=
"暂无数据"
@
change=
"changeProject"
...
...
@@ -238,6 +239,7 @@ import { useRouter, useRoute } from "vue-router";
import
{
ElMessage
}
from
"element-plus"
;
import
FileUploader
from
"../../components/FileUploader/index.vue"
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
// 初始化全局变量
const
router
=
useRouter
();
const
route
=
useRoute
();
...
...
@@ -277,6 +279,7 @@ const formData = reactive({
// 加载状态
const
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
// 是否预览模式
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
// 项目列表数据
...
...
@@ -377,6 +380,12 @@ const saveClick = () => {
onMounted
(()
=>
{
// 获取项目列表
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
if
(
rcCgqyglId
.
value
)
{
getJsqtzjcDetail
();
}
...
...
src/views/investingManage/construction.vue
View file @
3a83439f
...
...
@@ -59,6 +59,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -157,6 +158,9 @@ const deleteStatement = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/investingManage/constructionAdd.vue
View file @
3a83439f
...
...
@@ -19,6 +19,7 @@
<el-form-item
label=
"项目信息"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择项目信息"
no-data-text=
"暂无数据"
@
change=
"changeProject"
...
...
@@ -316,6 +317,7 @@ import { useRouter, useRoute } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
FileUploader
from
"../../components/FileUploader/index.vue"
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
// 初始化全局变量
const
router
=
useRouter
();
...
...
@@ -336,6 +338,7 @@ const formData = reactive({
// 加载状态
const
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
// 是否预览模式
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
// 项目列表数据
...
...
@@ -482,6 +485,12 @@ let options = ref();
onMounted
(()
=>
{
// 获取项目列表
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
options
.
value
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
// 如果有ID则加载详情
...
...
src/views/investingManage/constructionTime.vue
View file @
3a83439f
...
...
@@ -61,6 +61,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -164,6 +165,9 @@ const deleteStatement = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/investingManage/constructionTimeAdd.vue
View file @
3a83439f
...
...
@@ -32,6 +32,7 @@
<el-form-item
label=
"项目名称"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择项目名称"
no-data-text=
"暂无数据"
@
change=
"changeProject"
...
...
@@ -540,6 +541,7 @@ import FinancialTable from "@/components/FinancialTable.vue";
import
InvestmentRecoveryTable
from
"@/components/InvestmentRecoveryTable.vue"
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
CollapseNavigation
from
"@/components/CollapseNavigation/index.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
// 接收父组件传递的 isPreview prop
const
props
=
defineProps
({
...
...
@@ -1301,6 +1303,7 @@ const changeProject = (val) => {
};
// 加载状态
const
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
// 是否预览模式 - 优先使用父组件传递的 prop,否则从路由参数读取
const
isPreview
=
computed
(()
=>
{
// 如果父组件显式传递了 isPreview prop,使用 prop 的值
...
...
@@ -1393,6 +1396,12 @@ const saveClick = () => {
onMounted
(()
=>
{
// 获取项目列表
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
options
.
value
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
// 如果有ID则加载详情
if
(
rcCgqyglId
.
value
)
{
...
...
src/views/investingManage/decision.vue
View file @
3a83439f
...
...
@@ -79,6 +79,7 @@ import { useRouter } from "vue-router";
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -174,6 +175,9 @@ const getProjectData = (params = {}) => {
});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
// 分页
...
...
src/views/investingManage/decisionAdd.vue
View file @
3a83439f
...
...
@@ -24,7 +24,7 @@
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目名称"
>
<el-input
v-model=
"jcFormData.projectName"
/>
<el-input
v-model=
"jcFormData.projectName"
:disabled=
"projectDisabled"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
...
...
@@ -3230,6 +3230,7 @@ import DynamicTable from "@/components/FormDynamicTable/index.vue";
import
_
from
"lodash"
;
import
Decimal
from
"decimal.js"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
router
=
useRouter
();
const
route
=
useRoute
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -3309,6 +3310,7 @@ const jcpfcollapse = reactive([
let
formData
=
reactive
({});
let
jcFormData
=
reactive
({});
let
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
// 单选框点击事件
const
radioClick
=
(
value
,
key
)
=>
{
if
(
formData
[
key
]
!==
value
)
{
...
...
@@ -4697,6 +4699,12 @@ const getProjectInfo = () => {
let
resourceData
=
null
;
onMounted
(()
=>
{
projectId
&&
getProjectInfo
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
resourceData
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
zyList
=
resourceData
.
zyfzy
;
cwbblxList
=
resourceData
.
cwbblx
;
...
...
src/views/investingManage/majorRisk.vue
View file @
3a83439f
...
...
@@ -51,6 +51,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -152,6 +153,9 @@ const deleteRisk = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/investingManage/quit.vue
View file @
3a83439f
...
...
@@ -59,6 +59,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -183,6 +184,9 @@ const deleteStatement = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/investingManage/quitAdd.vue
View file @
3a83439f
...
...
@@ -28,6 +28,7 @@
<el-form-item
label=
"项目名称"
required
>
<el-select
v-model=
"formData.projectId"
:disabled=
"projectDisabled"
placeholder=
"请选择项目名称"
no-data-text=
"暂无数据"
@
change=
"changeProject"
...
...
@@ -799,6 +800,7 @@ import { ElMessage } from "element-plus";
import
DynamicTable
from
"@/components/FormDynamicTable/index.vue"
;
import
FileUploader
from
"@/components/FileUploader/index.vue"
;
import
routerBack
from
"@/components/common/routerBack.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
transferColumns
=
ref
([
{
prop
:
"njfcgbl"
,
...
...
@@ -882,6 +884,7 @@ const activeCollapse = ref([
"财务评价指标"
,
]);
const
loading
=
ref
(
false
);
const
projectDisabled
=
ref
(
false
);
const
isPreview
=
ref
(
!!
route
.
query
.
isPreview
);
const
projectList
=
ref
([]);
const
rcCgqyglId
=
ref
(
route
.
query
.
id
||
""
);
...
...
@@ -1203,6 +1206,12 @@ const backClick = () => router.back(-1);
onMounted
(()
=>
{
getProjectData
();
const
cachedInfo
=
useProjectInfoStore
().
loadProjectInfo
();
if
(
cachedInfo
)
{
formData
.
projectName
=
cachedInfo
.
projectName
||
""
;
formData
.
projectId
=
cachedInfo
.
projectId
||
""
;
projectDisabled
.
value
=
true
;
}
// 非预览状态下自动弹出类型选择弹窗
if
(
!
isPreview
.
value
)
{
...
...
src/views/investingManage/targetControl.vue
View file @
3a83439f
...
...
@@ -58,6 +58,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -166,6 +167,9 @@ const deleteControl = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
let
resourceData
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
jcdwList
=
resourceData
.
jcdw
;
...
...
src/views/investingManage/targetLiabilityStatement.vue
View file @
3a83439f
...
...
@@ -59,6 +59,7 @@ import { useRouter } from "vue-router";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
...
...
@@ -178,6 +179,9 @@ const deleteStatement = (item) => {
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
if
(
!
window
.
location
.
href
.
includes
(
"xmdakDetaill"
))
{
useProjectInfoStore
().
clearProjectInfo
();
}
getProjectData
();
});
</
script
>
...
...
src/views/projectManage/xmdakDetaill.vue
View file @
3a83439f
...
...
@@ -54,8 +54,19 @@
</template>
<
script
setup
>
import
{
ref
,
computed
,
markRaw
,
onMounted
,
watch
}
from
"vue"
;
import
{
ref
,
computed
,
markRaw
,
onMounted
,
watch
,
getCurrentInstance
,
}
from
"vue"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
useProjectInfoStore
}
from
"@/stores/projectInfo"
;
const
{
proxy
}
=
getCurrentInstance
();
const
projectInfoStore
=
useProjectInfoStore
();
import
{
Document
,
FolderOpened
,
...
...
@@ -240,9 +251,18 @@ const currentTabChildren = computed(() => {
return
routeChildren
[
currentKey
]
||
[];
});
// 请求项目详情并保存到 sessionStorage
const
fetchProjectInfo
=
()
=>
{
if
(
!
projectId
.
value
)
return
;
projectInfoStore
.
fetchProjectInfo
(
proxy
,
projectId
.
value
);
};
// 初始化:优先恢复缓存状态,否则加载默认 tab
onMounted
(
async
()
=>
{
if
(
projectId
.
value
)
{
// 请求项目详情并缓存
fetchProjectInfo
();
const
saved
=
restoreTabState
();
if
(
saved
&&
saved
.
activeTab
!==
undefined
&&
saved
.
activeSubItem
)
{
// 恢复之前离开的位置
...
...
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