明树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
355db9e2
Commit
355db9e2
authored
May 14, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
状态处理
parent
330f85bb
Pipeline
#111286
passed with stage
in 20 seconds
Changes
4
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
34 deletions
+69
-34
ProcessFlowChart.vue
src/components/common/ProcessFlowChart.vue
+31
-11
routerBack.vue
src/components/common/routerBack.vue
+11
-3
addProject.vue
src/views/projectManage/addProject.vue
+19
-7
projectSetUp.vue
src/views/projectManage/projectSetUp.vue
+8
-13
No files found.
src/components/common/ProcessFlowChart.vue
View file @
355db9e2
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
v-for=
"(node, index) in activeNodes"
v-for=
"(node, index) in activeNodes"
:key=
"index"
:key=
"index"
class=
"flow-node-wrap"
class=
"flow-node-wrap"
:ref=
"
el => nodeEls[index] = el
"
:ref=
"
(el) => (nodeEls[index] = el)
"
>
>
<div
<div
class=
"flow-node"
class=
"flow-node"
...
@@ -15,7 +15,9 @@
...
@@ -15,7 +15,9 @@
>
>
<span
class=
"node-label"
>
{{
node
.
label
}}
</span>
<span
class=
"node-label"
>
{{
node
.
label
}}
</span>
</div>
</div>
<div
v-if=
"node.annotation"
class=
"flow-annotation"
>
{{
node
.
annotation
}}
</div>
<div
v-if=
"node.annotation"
class=
"flow-annotation"
>
{{
node
.
annotation
}}
</div>
<div
v-if=
"index
<
activeNodes
.
length
-
1
"
class=
"flow-arrow"
>
<div
v-if=
"index
<
activeNodes
.
length
-
1
"
class=
"flow-arrow"
>
<div
class=
"arrow-line"
></div>
<div
class=
"arrow-line"
></div>
<div
class=
"arrow-head"
></div>
<div
class=
"arrow-head"
></div>
...
@@ -29,7 +31,14 @@
...
@@ -29,7 +31,14 @@
:height=
"svgHeight"
:height=
"svgHeight"
>
>
<defs>
<defs>
<marker
id=
"arrowMarker"
markerWidth=
"8"
markerHeight=
"6"
refX=
"8"
refY=
"3"
orient=
"auto"
>
<marker
id=
"arrowMarker"
markerWidth=
"8"
markerHeight=
"6"
refX=
"8"
refY=
"3"
orient=
"auto"
>
<path
d=
"M0,0 L8,3 L0,6 Z"
fill=
"#909399"
/>
<path
d=
"M0,0 L8,3 L0,6 Z"
fill=
"#909399"
/>
</marker>
</marker>
</defs>
</defs>
...
@@ -50,7 +59,9 @@
...
@@ -50,7 +59,9 @@
text-anchor=
"middle"
text-anchor=
"middle"
dominant-baseline=
"middle"
dominant-baseline=
"middle"
:transform=
"`rotate(-90, $
{path.textX}, ${path.textY})`"
:transform=
"`rotate(-90, $
{path.textX}, ${path.textY})`"
>退回修改
</text>
>
退回修改
</text>
</g>
</g>
</svg>
</svg>
</div>
</div>
...
@@ -89,15 +100,24 @@ const simpleNodes = [
...
@@ -89,15 +100,24 @@ const simpleNodes = [
];
];
const
complexLevelMap
=
{
const
complexLevelMap
=
{
1
:
2
,
2
:
2
,
7
:
2
,
1
:
2
,
2
:
2
,
7
:
2
,
3
:
4
,
3
:
4
,
4
:
6
,
8
:
6
,
4
:
6
,
5
:
7
,
9
:
7
,
13
:
7
,
14
:
7
,
15
:
7
,
8
:
6
,
5
:
7
,
9
:
7
,
13
:
7
,
14
:
7
,
15
:
7
,
};
};
const
simpleLevelMap
=
{
const
simpleLevelMap
=
{
1
:
2
,
2
:
2
,
1
:
2
,
3
:
3
,
4
:
3
,
2
:
2
,
3
:
3
,
4
:
3
,
5
:
4
,
5
:
4
,
};
};
...
@@ -179,7 +199,7 @@ watch(
...
@@ -179,7 +199,7 @@ watch(
()
=>
[
props
.
flowType
,
props
.
currentState
],
()
=>
[
props
.
flowType
,
props
.
currentState
],
()
=>
{
()
=>
{
nextTick
(()
=>
nextTick
(
calcReturnPaths
));
nextTick
(()
=>
nextTick
(
calcReturnPaths
));
}
}
,
);
);
</
script
>
</
script
>
...
@@ -215,7 +235,7 @@ watch(
...
@@ -215,7 +235,7 @@ watch(
.return-svg
{
.return-svg
{
position
:
absolute
;
position
:
absolute
;
top
:
0
;
top
:
0
;
left
:
0
;
left
:
-20px
;
pointer-events
:
none
;
pointer-events
:
none
;
overflow
:
visible
;
overflow
:
visible
;
}
}
...
...
src/components/common/routerBack.vue
View file @
355db9e2
...
@@ -71,7 +71,11 @@
...
@@ -71,7 +71,11 @@
<el-table-column
label=
"操作人"
min-width=
"100"
>
<el-table-column
label=
"操作人"
min-width=
"100"
>
<template
#
default=
"
{ row }">
{{
row
.
creator
?.
name
}}
</
template
>
<template
#
default=
"
{ row }">
{{
row
.
creator
?.
name
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"actionName"
label=
"项目步骤"
min-width=
"120"
/>
<el-table-column
prop=
"actionName"
label=
"项目步骤"
min-width=
"120"
/>
<el-table-column
<el-table-column
prop=
"approvalMessage"
prop=
"approvalMessage"
label=
"审核意见"
label=
"审核意见"
...
@@ -81,7 +85,10 @@
...
@@ -81,7 +85,10 @@
</el-table>
</el-table>
</div>
</div>
<div
class=
"process-right"
>
<div
class=
"process-right"
>
<ProcessFlowChart
:flow-type=
"flowType"
:current-state=
"currentState"
/>
<ProcessFlowChart
:flow-type=
"flowType"
:current-state=
"currentState"
/>
</div>
</div>
</div>
</div>
<
template
#
footer
>
<
template
#
footer
>
...
@@ -213,7 +220,8 @@ const handleProcess = () => {
...
@@ -213,7 +220,8 @@ const handleProcess = () => {
}
}
.process-right
{
.process-right
{
width
:
420px
;
// width: 360px;
max-width
:
420px
;
flex-shrink
:
0
;
flex-shrink
:
0
;
border-left
:
1px
solid
#ebeef5
;
border-left
:
1px
solid
#ebeef5
;
display
:
flex
;
display
:
flex
;
...
...
src/views/projectManage/addProject.vue
View file @
355db9e2
...
@@ -72,7 +72,10 @@
...
@@ -72,7 +72,10 @@
>
>
<el-button
<el-button
type=
"primary"
type=
"primary"
v-if=
"formData.projectLzType == '1'"
v-if=
"
formData.projectLzType == '1' &&
formData.projectCreator == userInfo?.id
"
@
click=
"saveClick('submit')"
@
click=
"saveClick('submit')"
>
发起立项填报
</el-button
>
发起立项填报
</el-button
>
>
...
@@ -94,7 +97,7 @@
...
@@ -94,7 +97,7 @@
"
"
type=
"primary"
type=
"primary"
@
click=
"auditDialogVisible = true"
@
click=
"auditDialogVisible = true"
>
{{ formData.projectLzType ==
'3' ? '初审' : '审核'
}}
</el-button
>
{{ formData.projectLzType ==
"3" ? "初审" : "审核"
}}
</el-button
>
>
<el-button
<el-button
v-if=
"
v-if=
"
...
@@ -180,12 +183,18 @@
...
@@ -180,12 +183,18 @@
</div>
</div>
</
template
>
</
template
>
</el-dialog>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
reactive
,
ref
,
computed
,
onMounted
,
getCurrentInstance
,
provide
}
from
"vue"
;
import
{
reactive
,
ref
,
computed
,
onMounted
,
getCurrentInstance
,
provide
,
}
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"
;
...
@@ -214,6 +223,8 @@ const userInfo =
...
@@ -214,6 +223,8 @@ const userInfo =
(
sessionStorage
.
getItem
(
"userInfo"
)
&&
(
sessionStorage
.
getItem
(
"userInfo"
)
&&
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)))
||
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)))
||
{};
{};
console
.
log
(
userInfo
,
"userInfo"
);
let
canAudit
=
ref
(
false
);
let
canAudit
=
ref
(
false
);
userInfo
.
roles
.
map
((
item
)
=>
{
userInfo
.
roles
.
map
((
item
)
=>
{
if
([
"xmlx_sp"
,
"xmjc_sp"
].
includes
(
item
.
key
))
{
if
([
"xmlx_sp"
,
"xmjc_sp"
].
includes
(
item
.
key
))
{
...
@@ -221,15 +232,16 @@ userInfo.roles.map((item) => {
...
@@ -221,15 +232,16 @@ userInfo.roles.map((item) => {
}
}
});
});
const
isTouGuanBu
=
userInfo
.
departs
?.
some
(
d
=>
d
.
name
===
'投资管理部门'
);
const
isTouGuanBu
=
userInfo
.
departs
?.
some
(
(
d
)
=>
d
.
name
===
"投资管理部门"
);
const
currentFlowState
=
computed
(()
=>
{
const
currentFlowState
=
computed
(()
=>
{
const
lxState
=
Number
(
formData
.
projectLzType
)
||
0
;
const
lxState
=
Number
(
formData
.
projectLzType
)
||
0
;
const
jcState
=
Number
(
jcFormData
.
projectLzType
)
||
0
;
const
jcState
=
Number
(
jcFormData
.
projectLzType
)
||
0
;
return
jcState
>=
7
?
jcState
:
lxState
;
return
jcState
>=
7
?
jcState
:
lxState
;
});
});
const
flowType
=
computed
(()
=>
{
const
flowType
=
computed
(()
=>
{
if
(
isTouGuanBu
&&
currentFlowState
.
value
>=
1
&&
currentFlowState
.
value
<=
6
)
return
'simple'
;
if
(
isTouGuanBu
&&
currentFlowState
.
value
>=
1
&&
currentFlowState
.
value
<=
6
)
return
'complex'
;
return
"simple"
;
return
"complex"
;
});
});
// tab相关
// tab相关
...
...
src/views/projectManage/projectSetUp.vue
View file @
355db9e2
...
@@ -96,19 +96,14 @@ let tableColumns = ref([
...
@@ -96,19 +96,14 @@ let tableColumns = ref([
width
:
120
,
width
:
120
,
align
:
"center"
,
align
:
"center"
,
formatter
:
(
data
)
=>
{
formatter
:
(
data
)
=>
{
return
data
.
projectLzType
===
"1"
const
type
=
data
.
projectLzType
;
?
"待立项"
if
(
type
===
"1"
)
return
"待立项"
;
:
data
.
projectLzType
===
"3"
if
(
type
===
"2"
||
type
===
"3"
||
type
===
"4"
)
return
"立项审批中"
;
?
"立项审批中"
if
(
type
===
"5"
)
return
"已立项"
;
:
data
.
projectLzType
===
"5"
if
(
type
===
"7"
)
return
"决策填报中"
;
?
"已立项"
if
(
type
===
"8"
)
return
"决策审批中"
;
:
data
.
projectLzType
===
"7"
if
(
type
===
"9"
)
return
"已决策"
;
?
"决策填报中"
return
"待立项"
;
:
data
.
projectLzType
===
"8"
?
"决策审批中"
:
data
.
projectLzType
===
"9"
?
"已决策"
:
"待立项"
;
},
},
},
},
{
{
...
...
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