|
@@ -1,51 +1,33 @@
|
|
<template>
|
|
<template>
|
|
- <div class="_ptbxBook">
|
|
|
|
|
|
+ <div class="oa-sys-list-view">
|
|
<div class="searchBox">
|
|
<div class="searchBox">
|
|
<div class="form">
|
|
<div class="form">
|
|
- <span class="formSpan">报销单号:</span>
|
|
|
|
- <el-input v-model="queryParams.commonCostNo" placeholder="请输入报销单号" />
|
|
|
|
|
|
+ <span class="formSpan">申请时间:</span>
|
|
|
|
+ <el-date-picker v-model="queryParams.year" type="year" />
|
|
</div>
|
|
</div>
|
|
<div class="form">
|
|
<div class="form">
|
|
- <span class="formSpan">报销人:</span>
|
|
|
|
- <el-input v-model="queryParams.userId" placeholder="请输入报销人" />
|
|
|
|
|
|
+ <span class="formSpan">申请部门:</span>
|
|
|
|
+ <DeptSelect v-model="queryParams.deptId" />
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
<div class="form">
|
|
<div class="form">
|
|
- <span class="formSpan">报销人部门:</span>
|
|
|
|
- <el-select width="160px" v-model="queryParams.deptId" placeholder="请选择部门">
|
|
|
|
|
|
+ <span class="formSpan">申请岗位:</span>
|
|
|
|
+ <el-select v-model="queryParams.post" :options placeholder="请选择岗位">
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in industryListAll"
|
|
|
|
- :key="item.value"
|
|
|
|
- :label="item.label"
|
|
|
|
- :value="item.value"
|
|
|
|
|
|
+ v-for="{ label, value } in postDict"
|
|
|
|
+ :key="value"
|
|
|
|
+ :label="label"
|
|
|
|
+ :value="value"
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
- <div class="form" style="width: 380px">
|
|
|
|
- <span class="formSpan">申请时间:</span>
|
|
|
|
- <el-date-picker
|
|
|
|
- v-model="queryParams.applyTime"
|
|
|
|
- type="daterange"
|
|
|
|
- unlink-panels
|
|
|
|
- range-separator="到"
|
|
|
|
- start-placeholder="开始日期"
|
|
|
|
- end-placeholder="结束日期"
|
|
|
|
- />
|
|
|
|
- </div>
|
|
|
|
<div class="form">
|
|
<div class="form">
|
|
- <span class="formSpan">项目部门:</span>
|
|
|
|
- <el-input v-model="queryParams.projectDeptId" placeholder="请输入项目部门" />
|
|
|
|
|
|
+ <span class="formSpan">所属类别:</span>
|
|
|
|
+ <el-input v-model="queryParams.type" placeholder="请输入报销人" />
|
|
</div>
|
|
</div>
|
|
<div class="form">
|
|
<div class="form">
|
|
- <span class="formSpan">报销类型:</span>
|
|
|
|
- <el-input v-model="queryParams.costType" placeholder="请输入报销类型" />
|
|
|
|
- </div>
|
|
|
|
- <div class="form">
|
|
|
|
- <span class="formSpan">状态:</span>
|
|
|
|
- <el-input v-model="queryParams.status" />
|
|
|
|
- </div>
|
|
|
|
- <div class="form">
|
|
|
|
- <span class="formSpan">报销总金额:</span>
|
|
|
|
- <el-input v-model="queryParams.totalAmount" placeholder="请输入报销总金额" />
|
|
|
|
|
|
+ <span class="formSpan">项目部门:</span>
|
|
|
|
+ <el-input v-model="queryParams.status" placeholder="请输入项目部门" />
|
|
</div>
|
|
</div>
|
|
<div class="from">
|
|
<div class="from">
|
|
<div class="btnBox">
|
|
<div class="btnBox">
|
|
@@ -69,7 +51,7 @@
|
|
</ul>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="tableBox">
|
|
<div class="tableBox">
|
|
- <TableLayout :is-loading="isLoading" :data="data?.records">
|
|
|
|
|
|
+ <TableLayout :is-loading="isLoading" :data="data?.page?.records">
|
|
<el-table-column type="index" />
|
|
<el-table-column type="index" />
|
|
<el-table-column show-overflow-tooltip="true" align="center" prop="deptName" label="部门" />
|
|
<el-table-column show-overflow-tooltip="true" align="center" prop="deptName" label="部门" />
|
|
<el-table-column show-overflow-tooltip="true" align="center" prop="post" label="岗位" />
|
|
<el-table-column show-overflow-tooltip="true" align="center" prop="post" label="岗位" />
|
|
@@ -109,7 +91,7 @@
|
|
:page-size="10"
|
|
:page-size="10"
|
|
background
|
|
background
|
|
layout="total, prev, pager, next, jumper"
|
|
layout="total, prev, pager, next, jumper"
|
|
- :total="data?.total ?? 0"
|
|
|
|
|
|
+ :total="data?.page?.total ?? 0"
|
|
@current-change="handleCurrentChange"
|
|
@current-change="handleCurrentChange"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
@@ -123,11 +105,19 @@ import TableLayout from '../../oaViews/layout/TableLayout.vue'
|
|
import { RecruitListDTO } from '@/interface/demand'
|
|
import { RecruitListDTO } from '@/interface/demand'
|
|
import { useQuery } from '@tanstack/vue-query'
|
|
import { useQuery } from '@tanstack/vue-query'
|
|
import { getRecruitList } from '@/service/demand'
|
|
import { getRecruitList } from '@/service/demand'
|
|
|
|
+import DeptSelect from '@/components/DeptSelect/index.vue'
|
|
|
|
+import { useDict } from '@/hooks/web/useDict'
|
|
|
|
|
|
defineOptions({ name: 'TravelCost' })
|
|
defineOptions({ name: 'TravelCost' })
|
|
|
|
+const { data: postDict } = useDict('post_type')
|
|
const queryParams = reactive<RecruitListDTO>({
|
|
const queryParams = reactive<RecruitListDTO>({
|
|
pageNo: 1,
|
|
pageNo: 1,
|
|
- pageSize: 10
|
|
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ year: '',
|
|
|
|
+ deptId: '',
|
|
|
|
+ post: '',
|
|
|
|
+ type: '',
|
|
|
|
+ status: ''
|
|
})
|
|
})
|
|
const infoList: any = ref([
|
|
const infoList: any = ref([
|
|
{
|
|
{
|
|
@@ -146,7 +136,11 @@ const infoList: any = ref([
|
|
|
|
|
|
const { data, isLoading } = useQuery(
|
|
const { data, isLoading } = useQuery(
|
|
[getRecruitList.name, queryParams],
|
|
[getRecruitList.name, queryParams],
|
|
- async () => await getRecruitList(queryParams)
|
|
|
|
|
|
+ async () =>
|
|
|
|
+ await getRecruitList({
|
|
|
|
+ ...queryParams,
|
|
|
|
+ year: (queryParams?.year ?? '') !== '' ? new Date(queryParams?.year)?.getFullYear() : ''
|
|
|
|
+ })
|
|
)
|
|
)
|
|
|
|
|
|
/** 搜索按钮操作 */
|
|
/** 搜索按钮操作 */
|