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
54d01e73
Commit
54d01e73
authored
Mar 27, 2025
by
yanzhengyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增日常报销费用审批页
parent
ebf6c96e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
341 additions
and
2 deletions
+341
-2
dailyReimburseApprove.vue
...ge/examineAndApprove/components/dailyReimburseApprove.vue
+341
-2
No files found.
src/views/costManage/examineAndApprove/components/dailyReimburseApprove.vue
View file @
54d01e73
<
template
>
<
template
>
<div
class=
"app-container"
>
<!-- 搜索表单-->
日常报销审批
<div
class=
"formSearch"
>
<el-form
:model=
"queryParams"
ref=
"queryRef"
:inline=
"true"
label-width=
"120px"
>
<!-- 默认显示的查询条件 -->
<el-form-item
label=
"项目名称"
prop=
"projectName"
>
<el-select
v-model=
"queryParams.projectStatus"
placeholder=
"请选择项目名称"
style=
"width: 220px"
clearable
>
<el-option
v-for=
"dict in project_status"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"报销类型"
prop=
"reimbursementType"
>
<el-select
v-model=
"queryParams.reimbursementType"
placeholder=
"请选择"
clearable
style=
"width: 220px"
>
<el-option
v-for=
"dict in cost_daily_type"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"审批状态"
prop=
"projectStatus"
>
<el-select
v-model=
"queryParams.projectStatus"
placeholder=
"请选择项目状态"
style=
"width: 220px"
clearable
>
<el-option
v-for=
"dict in project_status"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<!-- 操作按钮 -->
<el-form-item
style=
"padding-left: 5.4%"
>
<el-button
icon=
"Refresh"
@
click=
"resetQuery"
class=
"el-button-defalut"
>
重置
</el-button>
<el-button
type=
"primary"
icon=
"Search"
@
click=
"handleQuery"
class=
"el-button-primary"
>
查询
</el-button>
<el-button
size=
"large"
type=
"text"
@
click=
"toggleSearch"
>
{{
isExpanded
?
' 收起'
:
' 展开'
}}
<el-icon
class=
"el-icon--right"
>
<arrow-down
/>
</el-icon>
</el-button>
</el-form-item>
<!-- 可折叠的查询条件 -->
<transition>
<div
v-if=
"isExpanded"
>
<el-form-item
label=
"项目经理"
prop=
"projectManagerId"
>
<el-select
v-model=
"queryParams.projectStatus"
placeholder=
"请选择项目经理"
style=
"width: 220px"
clearable
>
<el-option
v-for=
"dict in project_status"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"事业部负责人"
prop=
"projectType"
>
<el-select
v-model=
"queryParams.projectType"
placeholder=
"请选择事业部负责人"
style=
"width: 220px"
clearable
>
<el-option
v-for=
"dict in project_type"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"报销月份"
>
<el-date-picker
v-model=
"dateRange"
value-format=
"YYYY-MM"
type=
"month"
placeholder=
"请选择报销月份"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"申请人"
>
<el-input
style=
"width: 220px"
placeholder=
"请输入申请人姓名"
/>
</el-form-item>
</div>
</transition>
</el-form>
</div>
</div>
<div
class=
"contentTable"
>
<!-- 标题、按钮-->
<div
class=
"shadow_box_bottom_add"
>
<div
class=
"topDiv"
>
<span
class=
"bold-text1"
style=
""
>
日常报销审批
</span>
</div>
<!-- 按钮-->
<div>
<el-button
class=
"el-button-defalut"
type=
"default"
@
click=
""
>
一键驳回
</el-button>
<el-button
class=
"el-button-primary"
style=
"margin-left: 20px"
type=
"primary"
@
click=
""
>
一键通过
</el-button>
</div>
</div>
<!-- 步骤条-->
<div
class=
"shadow_box_bottom_step"
>
<text
class=
"text1"
>
审批流程
</text>
<div
class=
"text2"
>
<text>
项目编号
</text>
<text>
{{}}
</text>
</div>
<div
>
<FlowChart
:dataList=
"list"
:itemWidth=
"'130px'"
:activeIndex=
"2"
/>
</div>
</div>
<!-- 表格数据 -->
<el-table
:data=
"projectList"
border
style=
"width: 100%"
>
<el-table-column
type=
"selection"
width=
"40"
align=
"right"
/>
<el-table-column
label=
"申请人"
align=
"center"
prop=
"shenqingren"
fixed
width=
"100px"
/>
<el-table-column
label=
"项目编号"
align=
"center"
prop=
"projectNumber"
width=
"180px"
/>
<el-table-column
label=
"项目名称"
align=
"center"
prop=
"projectName"
width=
"120px"
/>
<el-table-column
label=
"项目经理"
align=
"center"
prop=
"projectUserName"
width=
"120px"
/>
<el-table-column
label=
"事业部负责人"
align=
"center"
prop=
"departmentUserName"
width=
"150px"
/>
<el-table-column
label=
"提交时间"
align=
"center"
prop=
"registrationTime"
width=
"180px"
/>
<el-table-column
label=
"报销月份"
align=
"center"
prop=
"reimbursement"
width=
"120px"
/>
<el-table-column
label=
"餐饮费"
align=
"center"
prop=
"totalFoodCost"
width=
"100px"
/>
<el-table-column
label=
"交通费"
align=
"center"
prop=
"totalTaxiCost"
width=
"100px"
/>
<el-table-column
label=
"总额"
align=
"center"
prop=
"totalMoney"
width=
"100px"
/>
<el-table-column
label=
"审批状态"
align=
"center"
prop=
"status"
width=
"100px"
/>
<el-table-column
prop=
"detail"
label=
"详情"
align=
"center"
width=
"100px"
>
<el-tooltip
content=
"详情"
placement=
"top"
>
<el-button
link
type=
"text"
@
click=
"handleView()"
>
<img
src=
"@/assets/icons/common/check.png"
height=
"32"
width=
"32"
/>
</el-button>
</el-tooltip>
</el-table-column>
<!-- 操作按钮-->
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
width=
"120px"
>
<template
#
default=
"scope"
>
<el-button
link
type=
"primary"
size=
"small"
style=
"font-size: 15px"
>
通过
</el-button>
<el-button
link
@
click=
"dialogFormVisible = true"
type=
"danger"
size=
"small"
style=
"font-size: 15px"
>
驳回
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"pagination-box"
>
<pagination
v-show=
"total > 0"
:total=
"total"
v-model:page=
"queryParams.pageNum"
v-model:limit=
"queryParams.pageSize"
@
pagination=
"projectList"
/>
</div>
</div>
<!-- 驳回弹出框-->
<el-dialog
style=
"width: 745px;height: 300px"
v-model=
"dialogFormVisible"
title=
"驳回"
>
<
template
#
header
>
<div
class=
"text_weight"
>
驳回
<el-divider
/></div>
</
template
>
<div
style=
"padding: 5px;display: flex;flex-direction:column;"
>
<div
class=
"text"
>
驳回原因
</div>
<div
style=
"width: 95%;margin-top:10px"
>
<el-input
:rows=
"3"
type=
"textarea"
v-model=
"form.name"
placeholder=
"请输入驳回原因"
/></div>
</div>
<
template
#
footer
>
<div
style=
"position: absolute;left: 35%;display: flex"
>
<el-button
@
click=
"dialogFormVisible = false"
class=
"btn-B"
>
取消
</el-button>
<el-button
@
click=
"dialogFormVisible"
class=
"btn-A"
type=
"primary"
>
确定
</el-button>
</div>
</
template
>
</el-dialog>
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
ArrowDown
}
from
"@element-plus/icons-vue"
;
import
FlowChart
from
'@/components/FlowChart/index.vue'
import
{
ElMessageBox
}
from
"element-plus"
;
import
{
useRouter
}
from
"vue-router"
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
const
{
project_status
,
project_type
}
=
proxy
.
useDict
(
'project_status'
,
'project_type'
);
const
list
=
ref
([
'个人'
,
'项目经理'
,
'事业部负责人'
,
'财务'
,
'总经理'
])
// 流程图内容,只有值
const
allList
=
ref
([])
// 流程图内容,值和角色id
const
dialogFormVisible
=
ref
(
false
)
const
projectList
=
ref
([
{
shenqingren
:
'张三'
,
projectNumber
:
'20250306RL001'
,
createTime
:
'2025-03-18 10:10:34'
,
projectName
:
'餐饮项目'
,
projectUserName
:
'张三经理'
,
departmentUserName
:
'蔡徐坤'
,
registrationTime
:
'2025-03-11'
,
reimbursement
:
'2025-03'
,
totalFoodCost
:
'27'
,
totalTaxiCost
:
'1399'
,
totalMoney
:
'1426'
,
status
:
'进行中'
},
{
shenqingren
:
'张三'
,
projectNumber
:
'20250306RL001'
,
createTime
:
'2025-03-18 10:10:34'
,
projectName
:
'餐饮项目'
,
projectUserName
:
'张三经理'
,
departmentUserName
:
'蔡徐坤'
,
registrationTime
:
'2025-03-11'
,
reimbursement
:
'2025-03'
,
totalFoodCost
:
'27'
,
totalTaxiCost
:
'1399'
,
totalMoney
:
'1426'
,
status
:
'进行中'
}
]);
const
loading
=
ref
(
true
);
const
total
=
ref
(
1
);
const
dateRange
=
ref
([]);
// 更多搜索框
const
isExpanded
=
ref
(
false
);
const
data
=
reactive
({
form
:
{},
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
projectNumber
:
null
,
projectName
:
null
,
projectType
:
null
,
departmentLeaderId
:
null
,
projectManagerId
:
null
,
projectStatus
:
null
,
},
});
const
{
queryParams
,
form
}
=
toRefs
(
data
);
// 切换展开/折叠状态
const
toggleSearch
=
()
=>
{
isExpanded
.
value
=
!
isExpanded
.
value
;
}
/** 搜索按钮操作 */
function
handleQuery
()
{
}
/** 重置按钮操作 */
function
resetQuery
()
{
}
/** 查看详情按钮操作 */
function
handleView
(){
}
</
script
>
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
scoped
lang=
"scss"
>
//步骤条
.shadow_box_bottom_step
{
display
:
flex
;
margin-top
:
10px
;
margin-bottom
:
20px
;
padding
:
20px
0px
;
width
:
100%
;
justify-content
:
space-evenly
;
align-items
:
center
;
background-color
:
#F9F9FA
;
.text1
{
font-size
:
18px
;
font-weight
:
550
;
}
.text2
{
display
:
flex
;
flex-direction
:
column
;
font-size
:
18px
;
align-items
:
center
;
}
.step
{
width
:
80%
;
}
}
//导航 、 按钮
.shadow_box_bottom_add
{
display
:
flex
;
width
:
100%
;
justify-content
:
space-between
;
align-items
:
center
;
padding
:
10px
0
;
.topDiv
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
.bold-text1
{
border-bottom
:
4px
solid
#0062FF
;
padding-bottom
:
22px
;
height
:
15px
;
font-family
:
"PingFangSC-Medium"
,
sans-serif
;
font-weight
:
900
;
font-size
:
18px
;
color
:
#0D162A
;
letter-spacing
:
0
;
line-height
:
15px
;
}
}
.text_weight
{
font-family
:
"PingFangSC-Medium"
,
sans-serif
;
font-weight
:
600
;
font-size
:
16px
;
}
.bohui
{
font-family
:
"PingFangSC-Medium"
,
sans-serif
;
font-weight
:
500
;
font-size
:
16px
;
color
:
#0D162A
;
}
.pagination-box
{
padding-right
:
40%
;
margin-top
:
20px
;
}
</
style
>
</
style
>
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