Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
psa-web
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
高滢
psa-web
Commits
2ea918d9
Commit
2ea918d9
authored
Apr 01, 2025
by
祁正
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
差旅审批-通过
parent
44c02373
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
81 deletions
+40
-81
tripReimburseApprove.vue
...age/examineAndApprove/components/tripReimburseApprove.vue
+40
-81
No files found.
src/views/costManage/examineAndApprove/components/tripReimburseApprove.vue
View file @
2ea918d9
...
@@ -103,7 +103,7 @@
...
@@ -103,7 +103,7 @@
</div>
</div>
</div>
</div>
<!-- 表格数据 -->
<!-- 表格数据 -->
<el-table
@
cell-mouse-enter=
"handleHover"
@
cell-mouse-leave=
"handleLeave"
v-loading=
"loading"
:data=
"
tripReimburse
List"
border
style=
"width: 100%"
@
selection-change=
"handleSelectionChange"
>
<el-table
@
cell-mouse-enter=
"handleHover"
@
cell-mouse-leave=
"handleLeave"
v-loading=
"loading"
:data=
"
ReimbursementRequest
List"
border
style=
"width: 100%"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"40"
align=
"right"
:selectable=
"rowSelectable"
/>
<el-table-column
type=
"selection"
width=
"40"
align=
"right"
:selectable=
"rowSelectable"
/>
<el-table-column
label=
"申请人"
align=
"center"
prop=
"updateBy"
fixed
min-width=
"120"
/>
<el-table-column
label=
"申请人"
align=
"center"
prop=
"updateBy"
fixed
min-width=
"120"
/>
<el-table-column
label=
"项目编号"
align=
"center"
prop=
"projectNumber"
min-width=
"160"
/>
<el-table-column
label=
"项目编号"
align=
"center"
prop=
"projectNumber"
min-width=
"160"
/>
...
@@ -155,16 +155,16 @@
...
@@ -155,16 +155,16 @@
</div>
</div>
</div>
</div>
<!-- 驳回弹出框-->
<!-- 驳回弹出框-->
<el-dialog
style=
"width: 745px;height: 300px;margin-top: 300px"
:fullscreen=
"true"
v-model=
"dialogFormVisible"
title=
"驳回"
:top=
"'30'"
width=
"700
"
>
<el-dialog
style=
"width: 745px;height: 300px;margin-top: 300px"
:fullscreen=
"true"
v-model=
"dialogFormVisible"
title=
"驳回
"
>
<
template
#
header
>
<
template
#
header
>
<div
style=
"margin-bottom:30px;color: #0062FF;font-family: PingFangSC-Regular;font-weight: 400;font-size: 20px;"
>
驳回
</div>
<div
class=
"text_weight"
>
驳回
<el-divider
/>
</div>
</
template
>
</
template
>
<el-form
:model=
"form"
>
<div
style=
"padding: 5px;display: flex;flex-direction:column;"
>
<el-form-item
label=
"驳回原因"
>
<div
class=
"text"
>
驳回原因
</div>
<el-input
:rows=
"4"
type=
"textarea"
v-model=
"form.name"
placeholder=
"请输入驳回原因"
/>
<div
style=
"width: 95%;margin-top:10px"
>
<el-input
v-model=
"rejectObj.groundsForRejection"
:rows=
"3"
type=
"textarea"
placeholder=
"请输入驳回原因"
/></div>
</el-form-item>
</div>
</el-form>
<
template
#
footer
>
<
template
#
footer
>
<div
style=
"position: absolute;left: 35%;display: flex"
>
<div
style=
"position: absolute;left: 35%;display: flex"
>
<el-button
@
click=
"cancelReject"
class=
"btn-B"
>
取消
</el-button>
<el-button
@
click=
"cancelReject"
class=
"btn-B"
>
取消
</el-button>
...
@@ -174,36 +174,24 @@
...
@@ -174,36 +174,24 @@
</el-dialog>
</el-dialog>
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
getCurrentInstance
,
onMounted
,
reactive
,
ref
}
from
"vue"
;
import
{
onMounted
,
reactive
,
ref
}
from
"vue"
;
import
{
ArrowDown
}
from
"@element-plus/icons-vue"
;
const
{
proxy
}
=
getCurrentInstance
()
;
import
FlowChart
from
'@/components/FlowChart/index.vue'
import
FlowChart
from
'@/components/FlowChart/index.vue'
import
{
useRouter
}
from
"vue-router
"
;
import
{
ElMessage
}
from
"element-plus
"
;
import
{
import
{
getApproveNodeList
,
getApproveNodeList
,
getProjectManagerName
,
getProjectName
,
getProjectName
,
getRoleId
,
getRoleId
,
travelOnBusinessNotPass
,
travelOnBusinessPass
,
travelOnBusinessPass
,
tripApplicationApproval
,
travelOnBusinessNotPass
tripApplicationPassNotPass
}
from
"../../../../api/examineAndApprove/examineAndApprove.js"
;
}
from
"../../../../api/examineAndApprove/examineAndApprove.js"
;
const
{
project_status
,
cost_daily_status
,
project_type
}
=
proxy
.
useDict
(
'project_status'
,
'cost_daily_status'
,
'project_type'
);
import
{
listTripApplication
,
listTripReimburse
}
from
"../../../../api/costManage/cost.js"
;
import
{
listTripApplication
,
listTripReimburse
}
from
"../../../../api/costManage/cost.js"
;
import
{
ElMessage
}
from
"element-plus"
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
const
{
cost_daily_status
,
project_status
,
project_type
}
=
proxy
.
useDict
(
'cost_daily_status'
,
'project_status'
,
'project_type'
);
const
list
=
ref
([])
// 流程图内容,只有值
const
list
=
ref
([])
// 流程图内容,只有值
const
allList
=
ref
([])
// 流程图内容,值和角色id
const
allList
=
ref
([])
// 流程图内容,值和角色id
const
tripReimburseList
=
reactive
([]);
const
total
=
ref
(
0
);
const
total
=
ref
(
0
);
const
loading
=
ref
(
true
);
const
projectNameList
=
ref
([]);
const
projectNameList
=
ref
([]);
const
projectManagerNameList
=
ref
([]);
//当前登录用户角色组
//当前登录用户角色组
const
currentUserRoleInfoList
=
ref
([])
const
currentUserRoleInfoList
=
ref
([])
...
@@ -213,65 +201,47 @@ const passObjList = []
...
@@ -213,65 +201,47 @@ const passObjList = []
//驳回对象
//驳回对象
let
rejectObj
=
reactive
({
let
rejectObj
=
reactive
({
projectCost
Id
:
null
,
travelOnBusiness
Id
:
null
,
groundsForRejection
:
null
groundsForRejection
:
null
})
})
//是否一键驳回标识 false 不是
//是否一键驳回标识 false 不是
let
oneClickFlag
=
false
let
oneClickFlag
=
false
//
弹出框
//弹出框
const
dialogFormVisible
=
ref
(
false
)
const
dialogFormVisible
=
ref
(
false
)
// 更多搜索框
const
isExpanded
=
ref
(
false
);
const
changProjectNumber
=
ref
(
''
)
const
changProjectNumber
=
ref
(
''
)
const
stepActive
=
ref
(
1
)
const
stepActive
=
ref
(
1
)
const
queryParams
=
reactive
({
const
queryParams
=
reactive
({
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
10
,
pageSize
:
10
,
projectNumber
:
null
,
projectName
:
null
,
projectName
:
null
,
projectType
:
null
,
projectType
:
null
,
status
:
null
projectUserName
:
null
,
status
:
null
,
})
})
// 切换展开/折叠状态
const
toggleSearch
=
()
=>
{
isExpanded
.
value
=
!
isExpanded
.
value
;
}
// 搜索表单——获取所有项目名称
// 搜索表单——获取所有项目名称
const
getAllProjectName
=
()
=>
{
const
getAllProjectName
=
()
=>
{
getProjectName
(
queryParams
).
then
(
response
=>
{
getProjectName
(
queryParams
).
then
(
response
=>
{
console
.
log
(
"出差-所有项目名称"
,
response
.
data
)
projectNameList
.
value
=
response
.
data
;
projectNameList
.
value
=
response
.
data
;
// console.log("项目名称",projectNameList.value)
});
});
}
}
getAllProjectName
()
getAllProjectName
()
// 搜索表单——获取所有项目名经理
const
getAllProjectManagerName
=
()
=>
{
getProjectManagerName
(
queryParams
).
then
(
response
=>
{
console
.
log
(
"出差-所有项目经理"
,
response
.
data
)
projectManagerNameList
.
value
=
response
.
data
;
});
}
getAllProjectManagerName
()
// 重置表单
// 重置表单
const
reset
=
()
=>
{
const
reset
=
()
=>
{
queryParams
.
projectName
=
null
queryParams
.
projectName
=
null
queryParams
.
projectType
=
null
queryParams
.
projectType
=
null
queryParams
.
status
=
null
queryParams
.
status
=
null
getList
()
//
getList()
}
}
//获取所有流程列表,根据审批id
(差旅报销的流程配置id是24)
//获取所有流程列表,根据审批id
const
getNodeList
=
()
=>
{
const
getNodeList
=
()
=>
{
getApproveNodeList
(
2
4
).
then
(
res
=>
{
getApproveNodeList
(
2
3
).
then
(
res
=>
{
console
.
log
(
"
差旅报销审批-所有流程"
,
res
)
console
.
log
(
"
项目费用报销-所有流程"
,
res
.
data
)
allList
.
value
=
res
.
data
.
nodeList
allList
.
value
=
res
.
data
.
nodeList
list
.
value
=
res
.
data
.
nodeList
.
map
(
item
=>
{
list
.
value
=
res
.
data
.
nodeList
.
map
(
item
=>
{
return
item
.
roleName
return
item
.
roleName
...
@@ -282,27 +252,27 @@ const getNodeList = ()=>{
...
@@ -282,27 +252,27 @@ const getNodeList = ()=>{
//获取当前用户角色信息
//获取当前用户角色信息
const
getRoleInfo
=
()
=>
{
const
getRoleInfo
=
()
=>
{
getRoleId
().
then
(
res
=>
{
getRoleId
().
then
(
res
=>
{
console
.
log
(
"
角色信息"
,
res
)
console
.
log
(
"
项目费用报销-角色信息"
,
res
.
data
)
currentUserRoleInfoList
.
value
=
res
.
data
currentUserRoleInfoList
.
value
=
res
.
data
})
})
}
}
// 出差申请 列表
// 列表
const
ReimbursementRequestList
=
reactive
([]);
const
getList
=
()
=>
{
const
getList
=
()
=>
{
l
oading
.
value
=
true
;
l
istTripReimburse
(
queryParams
).
then
(
response
=>
{
listTripReimburse
(
queryParams
).
then
(
res
=>
{
console
.
log
(
"差旅报销-列表"
,
response
.
rows
)
total
.
value
=
res
.
total
;
total
.
value
=
res
ponse
.
total
Object
.
assign
(
tripReimburseList
,
res
.
rows
);
Object
.
assign
(
ReimbursementRequestList
,
response
.
rows
);
loading
.
value
=
false
;
for
(
let
i
in
ReimbursementRequestList
){
for
(
let
i
in
tripReimburseList
){
console
.
log
(
ReimbursementRequestList
[
i
])
tripReimburseList
[
i
].
currentStatus
=
approvalStatusChange
(
tripReimburseList
[
i
].
status
,
tripReimburse
List
[
i
].
currentAuditRoleId
)
ReimbursementRequestList
[
i
].
currentStatus
=
approvalStatusChange
(
ReimbursementRequestList
[
i
].
status
,
ReimbursementRequest
List
[
i
].
currentAuditRoleId
)
}
}
console
.
log
(
"差旅报销审批-列表"
,
tripReimburseList
)
getTopApproveInfo
()
getTopApproveInfo
()
});
});
}
}
//表格多选
//表格多选
const
handleSelectionChange
=
(
val
)
=>
{
const
handleSelectionChange
=
(
val
)
=>
{
passObjList
.
length
=
0
passObjList
.
length
=
0
...
@@ -312,7 +282,7 @@ const handleSelectionChange = (val) => {
...
@@ -312,7 +282,7 @@ const handleSelectionChange = (val) => {
let
index
=
allList
.
value
.
findIndex
(
item
=>
item
.
nodeId
===
currentAuditRoleId
)
let
index
=
allList
.
value
.
findIndex
(
item
=>
item
.
nodeId
===
currentAuditRoleId
)
let
obj
=
{
let
obj
=
{
//
差旅报销
id
//
项目费用
id
travelOnBusinessId
:
item
.
id
,
travelOnBusinessId
:
item
.
id
,
//下一个节点nodeId
//下一个节点nodeId
nextNodeId
:
null
,
nextNodeId
:
null
,
...
@@ -359,7 +329,7 @@ const approvalStatusChange = (status,currentNodeId)=>{
...
@@ -359,7 +329,7 @@ const approvalStatusChange = (status,currentNodeId)=>{
//获取列表第一个顶部信息
//获取列表第一个顶部信息
const
getTopApproveInfo
=
()
=>
{
const
getTopApproveInfo
=
()
=>
{
let
item2
=
tripReimburse
List
[
0
]
let
item2
=
ReimbursementRequest
List
[
0
]
changProjectNumber
.
value
=
item2
.
projectNumber
changProjectNumber
.
value
=
item2
.
projectNumber
let
i
=
allList
.
value
.
findIndex
((
item
)
=>
item
.
nodeId
===
item2
.
currentAuditRoleId
)
let
i
=
allList
.
value
.
findIndex
((
item
)
=>
item
.
nodeId
===
item2
.
currentAuditRoleId
)
if
(
i
===
-
1
)
stepActive
.
value
=
1
if
(
i
===
-
1
)
stepActive
.
value
=
1
...
@@ -410,7 +380,7 @@ const passProjectCost = (row)=>{
...
@@ -410,7 +380,7 @@ const passProjectCost = (row)=>{
let
index
=
allList
.
value
.
findIndex
(
item
=>
item
.
nodeId
===
currentAuditRoleId
)
let
index
=
allList
.
value
.
findIndex
(
item
=>
item
.
nodeId
===
currentAuditRoleId
)
let
obj
=
{
let
obj
=
{
//
差旅报销
id
//
项目费用
id
travelOnBusinessId
:
row
.
id
,
travelOnBusinessId
:
row
.
id
,
//下一个节点nodeId
//下一个节点nodeId
nextNodeId
:
null
,
nextNodeId
:
null
,
...
@@ -491,16 +461,6 @@ const cancelReject = ()=>{
...
@@ -491,16 +461,6 @@ const cancelReject = ()=>{
})
})
}
}
/** 搜索按钮操作 */
function
handleQuery
()
{
}
/** 重置按钮操作 */
function
resetQuery
()
{
}
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
//获取所有审批列表
//获取所有审批列表
await
getNodeList
()
await
getNodeList
()
...
@@ -509,7 +469,6 @@ onMounted(async ()=>{
...
@@ -509,7 +469,6 @@ onMounted(async ()=>{
//获取列表
//获取列表
await
getList
()
await
getList
()
})
})
</
script
>
</
script
>
...
...
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