明树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
6489b8a5
Commit
6489b8a5
authored
May 13, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
bf028b85
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
138 additions
and
22 deletions
+138
-22
routerBack.vue
src/components/common/routerBack.vue
+58
-1
manage.css
src/styles/manage.css
+6
-0
addProject.vue
src/views/projectManage/addProject.vue
+74
-21
No files found.
src/components/common/routerBack.vue
View file @
6489b8a5
...
...
@@ -6,7 +6,16 @@
<span
class=
"backText"
>
返回
</span>
</div>
<span
class=
"backName"
>
{{
route
.
meta
.
title
}}
</span>
<div
class=
"back-actions"
v-if=
"showSave || showExport"
>
<div
class=
"back-actions"
v-if=
"showSave || showExport || showProcess"
>
<el-button
v-if=
"showProcess"
type=
"primary"
plain
@
click=
"processDialogVisible = true"
>
办理过程
</el-button>
<el-button
v-if=
"showExport"
type=
"primary"
...
...
@@ -28,9 +37,43 @@
</el-button>
</div>
</div>
<!-- 办理过程弹窗 -->
<el-dialog
v-if=
"showProcess"
v-model=
"processDialogVisible"
:title=
"processInfo.projectName || '全部办理记录'"
width=
"80%"
top=
"5vh"
:close-on-click-modal=
"false"
:close-on-press-escape=
"true"
>
<div
class=
"process-dialog-content"
>
<el-table
:data=
"processData"
border
style=
"width: 100%"
class=
"process-table"
:header-cell-style=
"
{ background: '#f5f7fa', color: '#333', textAlign: 'center', fontWeight: 600 }"
:cell-style="{ textAlign: 'center' }"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"80"
/>
<el-table-column
prop=
"handleStep"
label=
"办理环节"
min-width=
"120"
/>
<el-table-column
prop=
"handleDept"
label=
"办理处室"
min-width=
"150"
/>
<el-table-column
prop=
"handlePerson"
label=
"办理人"
min-width=
"120"
/>
<el-table-column
prop=
"nextPerson"
label=
"下一步办理人"
min-width=
"120"
/>
<el-table-column
prop=
"handleOpinion"
label=
"办理意见"
min-width=
"120"
/>
<el-table-column
prop=
"handleTime"
label=
"办理时间"
min-width=
"180"
/>
</el-table>
</div>
<template
#
footer
>
<el-button
@
click=
"processDialogVisible = false"
>
关闭
</el-button>
</
template
>
</el-dialog>
</div>
</template>
<
script
setup
>
import
{
ref
}
from
"vue"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
const
props
=
defineProps
({
...
...
@@ -58,6 +101,18 @@ const props = defineProps({
type
:
Boolean
,
default
:
false
,
},
showProcess
:
{
type
:
Boolean
,
default
:
false
,
},
processInfo
:
{
type
:
Object
,
default
:
()
=>
({}),
},
processData
:
{
type
:
Array
,
default
:
()
=>
[],
},
});
const
emit
=
defineEmits
([
"save"
,
"back"
,
"export"
]);
...
...
@@ -65,6 +120,8 @@ const emit = defineEmits(["save", "back", "export"]);
const
route
=
useRoute
();
const
router
=
useRouter
();
const
processDialogVisible
=
ref
(
false
);
const
handleBack
=
()
=>
{
emit
(
"back"
);
router
.
back
();
...
...
src/styles/manage.css
View file @
6489b8a5
...
...
@@ -395,3 +395,9 @@
border-color
:
#ebeef5
;
padding
:
8px
0
;
}
.process-dialog-content
{
padding
:
0
;
}
.process-dialog-content
.process-table
{
font-size
:
13px
;
}
src/views/projectManage/addProject.vue
View file @
6489b8a5
...
...
@@ -9,8 +9,12 @@
['1', '5', '7'].includes(formData.projectLzType.toString()))
"
:loading=
"loading"
:show-process=
"true"
:process-info=
"processInfo"
:process-data=
"processTableData"
@
save=
"() => saveClick('save')"
></routerBack>
<div
class=
"tabs-content"
>
<el-tabs
v-model=
"pageActiveName"
type=
"border-card"
>
<el-tab-pane
label=
"立项填报"
name=
"立项填报"
>
...
...
@@ -126,11 +130,12 @@
</div>
</
template
>
</el-dialog>
</div>
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onMounted
,
getCurrentInstance
,
provide
}
from
"vue"
;
import
{
reactive
,
ref
,
computed
,
onMounted
,
getCurrentInstance
,
provide
}
from
"vue"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
...
...
@@ -281,22 +286,32 @@ const getObjSums = (obj, objkey) => {
// Provide for child components - 立项
provide
(
"lxShared"
,
{
formData
,
isPreview
,
activeCollapse
,
formData
,
isPreview
,
activeCollapse
,
...
lixiang
,
downloadFile
,
ElMessageBox
,
downloadFile
,
ElMessageBox
,
...
resource
,
windowConfig
:
proxy
.
windowConfig
,
token
,
windowConfig
:
proxy
.
windowConfig
,
token
,
});
// Provide for child components - 决策
provide
(
"jcShared"
,
{
jcFormData
,
formData
,
isPreview
,
activeCollapse
,
jcFormData
,
formData
,
isPreview
,
activeCollapse
,
...
juece
,
...
finance
,
getObjSums
,
downloadFile
,
downloadTemplate
,
ElMessageBox
,
downloadFile
,
downloadTemplate
,
ElMessageBox
,
...
resource
,
windowConfig
:
proxy
.
windowConfig
,
token
,
windowConfig
:
proxy
.
windowConfig
,
token
,
});
// 获取项目信息
...
...
@@ -328,19 +343,26 @@ const getProjectInfo = () => {
// 关联筛选
resource
.
szjList
.
value
=
resource
.
jnwList
.
filter
((
item
)
=>
item
.
key
==
data
.
jnw
)[
0
]?.
children
||
[];
resource
.
jnwList
.
filter
((
item
)
=>
item
.
key
==
data
.
jnw
)[
0
]?.
children
||
[];
resource
.
dsgjList
.
value
=
resource
.
szjList
.
value
.
filter
((
item
)
=>
item
.
key
==
data
.
sjnzjjw
)[
0
]?.
children
||
[];
resource
.
szjList
.
value
.
filter
((
item
)
=>
item
.
key
==
data
.
sjnzjjw
)[
0
]
?.
children
||
[];
resource
.
qxgjList
.
value
=
resource
.
dsgjList
.
value
.
filter
((
item
)
=>
item
.
key
==
data
.
dsjngjjw
)[
0
]?.
children
||
[];
resource
.
dsgjList
.
value
.
filter
((
item
)
=>
item
.
key
==
data
.
dsjngjjw
)[
0
]
?.
children
||
[];
resource
.
tzsxejflList
.
value
=
resource
.
tzsxyjflList
.
filter
((
item
)
=>
item
.
key
==
data
.
tzsxyjfl
)[
0
]?.
children
||
[];
resource
.
tzsxyjflList
.
filter
((
item
)
=>
item
.
key
==
data
.
tzsxyjfl
)[
0
]
?.
children
||
[];
resource
.
tzsxxfbkList
.
value
=
resource
.
tzsxtzbkList
.
filter
((
item
)
=>
item
.
key
==
data
.
tzbk
)[
0
]?.
children
||
[];
resource
.
tzsxtzbkList
.
filter
((
item
)
=>
item
.
key
==
data
.
tzbk
)[
0
]
?.
children
||
[];
resource
.
tzmdejflList
.
value
=
resource
.
tzmdyjflList
.
filter
((
item
)
=>
item
.
key
==
data
.
tzmdyjfl
)[
0
]?.
children
||
[];
resource
.
tzmdyjflList
.
filter
((
item
)
=>
item
.
key
==
data
.
tzmdyjfl
)[
0
]
?.
children
||
[];
resource
.
tzznejflList
.
value
=
resource
.
tzznyjflList
.
filter
((
item
)
=>
item
.
key
==
data
.
tzznyjfl
)[
0
]?.
children
||
[];
resource
.
tzznyjflList
.
filter
((
item
)
=>
item
.
key
==
data
.
tzznyjfl
)[
0
]
?.
children
||
[];
if
(
Number
(
formData
.
projectLzType
)
>=
5
)
{
pageActiveName
.
value
=
"决策信息填报"
;
...
...
@@ -380,19 +402,27 @@ const getProjectInfo = () => {
// 决策关联筛选
resource
.
jcSzjList
.
value
=
resource
.
jnwList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
jnw
)[
0
]?.
children
||
[];
resource
.
jnwList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
jnw
)[
0
]
?.
children
||
[];
resource
.
jcDsgjList
.
value
=
resource
.
jcSzjList
.
value
.
filter
((
item
)
=>
item
.
key
==
jcData
.
sjnzjjw
)[
0
]?.
children
||
[];
resource
.
jcSzjList
.
value
.
filter
((
item
)
=>
item
.
key
==
jcData
.
sjnzjjw
)[
0
]
?.
children
||
[];
resource
.
jcQxgjList
.
value
=
resource
.
jcDsgjList
.
value
.
filter
((
item
)
=>
item
.
key
==
jcData
.
dsjngjjw
)[
0
]?.
children
||
[];
resource
.
jcDsgjList
.
value
.
filter
(
(
item
)
=>
item
.
key
==
jcData
.
dsjngjjw
,
)[
0
]?.
children
||
[];
resource
.
jcTzsxejflList
.
value
=
resource
.
tzsxyjflList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
tzsxyjfl
)[
0
]?.
children
||
[];
resource
.
tzsxyjflList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
tzsxyjfl
)[
0
]
?.
children
||
[];
resource
.
jcTzsxxfbkList
.
value
=
resource
.
tzsxtzbkList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
tzbk
)[
0
]?.
children
||
[];
resource
.
tzsxtzbkList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
tzbk
)[
0
]
?.
children
||
[];
resource
.
jcTzmdejflList
.
value
=
resource
.
tzmdyjflList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
tzmdyjfl
)[
0
]?.
children
||
[];
resource
.
tzmdyjflList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
tzmdyjfl
)[
0
]
?.
children
||
[];
resource
.
jcTzznejflList
.
value
=
resource
.
tzznyjflList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
tzznyjfl
)[
0
]?.
children
||
[];
resource
.
tzznyjflList
.
filter
((
item
)
=>
item
.
key
==
jcData
.
tzznyjfl
)[
0
]
?.
children
||
[];
},
});
};
...
...
@@ -492,6 +522,29 @@ const saveClick = (type) => {
}
};
// 办理过程数据
const
processInfo
=
computed
(()
=>
({
projectName
:
formData
.
projectName
,
}));
const
processTableData
=
reactive
([
{
handleStep
:
"用户发起"
,
handleDept
:
"—"
,
handlePerson
:
"张三"
,
nextPerson
:
"李四"
,
handleOpinion
:
"用户提交"
,
handleTime
:
"2026-05-13 10:17:28"
,
},
{
handleStep
:
"项目编码"
,
handleDept
:
"规划发展部"
,
handlePerson
:
"李四"
,
nextPerson
:
"—"
,
handleOpinion
:
"同意编码"
,
handleTime
:
"2026-05-13 10:19:32"
,
},
]);
// 审核
let
auditFormData
=
ref
({});
let
auditForm
=
ref
();
...
...
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