费用结算报表+费用推送审核-页面

This commit is contained in:
bb_pan 2025-03-20 18:06:58 +08:00
parent b2aace1c98
commit cb178bb9b0
2 changed files with 384 additions and 0 deletions

View File

@ -0,0 +1,201 @@
<template>
<div class="app-container" id="costApplyList">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="结算单位" prop="unitId">
<el-select v-model="queryParams.unitId" placeholder="请选择结算单位" clearable filterable>
<el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
</el-select>
</el-form-item>
<el-form-item label="结算工程" prop="projectIds">
<el-cascader
v-model="queryParams.projectIds"
:options="projectList"
:props="{ checkStrictly: true, multiple: true, label: 'projectName', value: 'projectId' }"
clearable
filterable
></el-cascader>
</el-form-item>
<el-form-item label="协议号" prop="agreementNo">
<el-input v-model="queryParams.agreementNo" placeholder="请输入协议号"></el-input>
</el-form-item>
<!-- 推送月份 -->
<el-form-item label="推送月份" prop="pushMonth">
<el-date-picker
v-model="queryParams.pushMonth"
type="month"
placeholder="选择月份"
value-format="yyyy-MM"
></el-date-picker>
</el-form-item>
<el-form-item label="结算状态" prop="sltStatus">
<el-select v-model="queryParams.sltStatus" placeholder="请选择结算状态" clearable filterable>
<el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="审核状态" prop="auditStatus">
<el-select v-model="queryParams.auditStatus" placeholder="请选择审核状态" clearable filterable>
<el-option v-for="item in auditList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain size="mini" icon="el-icon-download" @click="handleExport">导出数据</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain size="mini" icon="el-icon-plus" @click="handleSubmit">提交</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="agreementList" border ref="tableRef" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column
align="center"
label="序号"
type="index"
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)"
/>
<el-table-column label="协议号" align="center" prop="agreementNo" show-overflow-tooltip />
<el-table-column label="单位名称" align="center" prop="unitName" show-overflow-tooltip />
<el-table-column label="工程名称" align="center" prop="projectName" show-overflow-tooltipp />
<el-table-column label="推送月份" align="center" prop="costData" show-overflow-tooltip />
<el-table-column label="租赁费用" align="center">
<template slot-scope="{ row }">
<span class="text-blue">{{ row.leaseExpense }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { getUnitList, getProjectList } from '@/api/claimAndRefund/receive'
import { getSltAgreementInfo } from '@/api/cost/cost'
export default {
data() {
return {
//
loading: false,
//
ids: [],
//
showSearch: true,
//
total: 0,
//
unitList: [],
//
projectList: [],
statusList: [
{ id: '', name: '全部' },
{ id: '0', name: '结算中' },
{ id: '1', name: '已结算' },
], //
auditList: [
{ id: '', name: '全部' },
{ id: '0', name: '未审核' },
{ id: '1', name: '已审核' },
],
//
agreementList: [
{
agreementCode: '测试',
leaseExpense: 100.89,
},
],
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
keyWord: undefined,
sltStatus: '',
unitId: '',
projectId: '',
agreementNo: '', //
pushMonth: '', //
},
}
},
created() {
// this.getList()
this.getUnitList()
this.getProjectList()
},
methods: {
// ,getUnitList, getProjectList
getUnitList() {
getUnitList().then((response) => {
this.unitList = response.data
})
},
getProjectList() {
getProjectList().then((response) => {
this.projectList = response.data
})
},
/** 查询字典类型列表 */
getList() {
console.log('🚀 ~ getList ~ :', this.queryParams)
this.loading = true
getSltAgreementInfo(this.queryParams)
.then((response) => {
this.agreementList = response.rows
this.total = response.total
this.loading = false
})
.catch((error) => {
console.log('🚀 ~ getList ~ error:', error)
this.loading = false
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm('queryForm')
this.handleQuery()
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item)
console.log('🚀 ~ handleSelectionChange ~ this.ids:', this.ids)
},
//
handleExport() {},
//
handleSubmit() {
console.log('🚀 ~ handleSubmit ~ handleSubmit:')
},
},
}
</script>
<style lang="scss" scoped>
.text-blue {
color: #409eff;
cursor: pointer;
}
</style>

View File

@ -0,0 +1,183 @@
<template>
<div class="app-container" id="costApplyList">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="结算单位" prop="unitId">
<el-select v-model="queryParams.unitId" placeholder="请选择结算单位" clearable filterable>
<el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
</el-select>
</el-form-item>
<el-form-item label="结算工程" prop="projectIds">
<el-cascader
v-model="queryParams.projectIds"
:options="projectList"
:props="{ checkStrictly: true, multiple: true, label: 'projectName', value: 'projectId' }"
clearable
filterable
></el-cascader>
</el-form-item>
<el-form-item label="协议号" prop="agreementNo">
<el-input v-model="queryParams.agreementNo" placeholder="请输入协议号"></el-input>
</el-form-item>
<el-form-item label="结算状态" prop="sltStatus">
<el-select v-model="queryParams.sltStatus" placeholder="请选择结算状态" clearable filterable>
<el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain size="mini" icon="el-icon-download" @click="handleExport">导出数据</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="agreementList" border ref="tableRef">
<el-table-column
align="center"
label="序号"
type="index"
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)"
/>
<el-table-column label="工程名称" align="center" prop="projectName" show-overflow-tooltipp />
<el-table-column label="往来单位" align="center" prop="unitName" show-overflow-tooltip />
<el-table-column label="协议号" align="center" prop="agreementNo" show-overflow-tooltip />
<el-table-column label="结算日期" align="center" prop="costData" show-overflow-tooltip />
<el-table-column label="租赁费用" align="center">
<template slot-scope="{ row }">
<span class="text-blue">{{ row.leaseExpense }}</span>
</template>
</el-table-column>
<el-table-column label="维修费用" align="center">
<template slot-scope="{ row }">
<span>{{ row.maintainExpense }}</span>
</template>
</el-table-column>
<el-table-column label="丢失费用" align="center">
<template slot-scope="{ row }">
<span>{{ row.loseExpense }}</span>
</template>
</el-table-column>
<el-table-column label="总金额" align="center">
<template slot-scope="{ row }">
<span>{{ row.totalExpense }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { getUnitList, getProjectList } from '@/api/claimAndRefund/receive'
import { getSltAgreementInfo } from '@/api/cost/cost'
export default {
data() {
return {
//
loading: false,
//
ids: [],
//
showSearch: true,
//
total: 0,
//
unitList: [],
//
projectList: [],
statusList: [
{ id: '', name: '全部' },
{ id: '0', name: '结算中' },
{ id: '1', name: '已结算' },
], //
//
agreementList: [
{
agreementCode: '测试',
leaseExpense: 100.89,
},
],
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
keyWord: undefined,
sltStatus: '',
unitId: '',
projectId: '',
agreementNo: '', //
},
}
},
created() {
// this.getList()
this.getUnitList()
this.getProjectList()
},
methods: {
// ,getUnitList, getProjectList
getUnitList() {
getUnitList().then((response) => {
this.unitList = response.data
})
},
getProjectList() {
getProjectList().then((response) => {
this.projectList = response.data
})
},
/** 查询字典类型列表 */
getList() {
console.log('🚀 ~ getList ~ :', this.queryParams)
this.loading = true
getSltAgreementInfo(this.queryParams)
.then((response) => {
this.agreementList = response.rows
this.total = response.total
this.loading = false
})
.catch((error) => {
console.log('🚀 ~ getList ~ error:', error)
this.loading = false
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm('queryForm')
this.handleQuery()
},
//
handleExport() {},
},
}
</script>
<style lang="scss" scoped>
.text-blue {
color: #409eff;
cursor: pointer;
}
</style>