费用推送管理

This commit is contained in:
hongchao 2025-01-22 16:13:23 +08:00
parent 91aeaa0e3b
commit 1c5eda8555
7 changed files with 2135 additions and 6 deletions

View File

@ -0,0 +1,94 @@
import request from '@/utils/request'
// 查询推送协议匹配列表
export function getProtocolList(query) {
return request({
url: '/material/slt_agreement_info/getSltAgreementInfo4Project',
method: 'get',
params: query
})
}
// 查询费用推送审核详情
export function pushReviewList(query){
return request({
url: '/material/slt_agreement_info/getSltInfo',
method: 'get',
params: query
})
}
// 费用结算申请提交
export function submitFee(params){
return request({
url: '/material/slt_agreement_info/submitFee',
method: 'post',
data: params
})
}
// 查询费用结算审核列表
export function getSltExam(query) {
return request({
url: '/material/slt_agreement_info/getSltExam',
method: 'get',
params: query
})
}
// 查询费用结算审核列表
export function getSltExamInfo(query) {
return request({
url: '/material/slt_agreement_info/getSltExamInfo',
method: 'get',
params: query
})
}
// 费用结算审核-同意拒绝
export function settlementReview(query) {
return request({
url: '/material/slt_agreement_info/settlementReview',
method: 'get',
params: query
})
}
// 费用结算提交
export function submitCosts(params){
return request({
url: '/material/slt_agreement_info/submitCosts',
method: 'post',
data: params
})
}
// 查询结算审批列表
export function getSltList(query) {
return request({
url: '/material/slt_agreement_info/getSltList',
method: 'get',
params: query
})
}
// 结算审批提交
export function costExamine(params){
return request({
url: '/material/slt_agreement_info/costExamine',
method: 'post',
data: params
})
}

View File

@ -0,0 +1,312 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" v-show="showSearch" :inline="true" label-width="80px">
<el-form-item label="选择单位" prop="unitId">
<treeselect
v-model="queryParams.unitId"
:options="unitList" :normalizer="normalizer"
:show-count="true" style="width: 240px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择单位" @select="unitChange"
/>
</el-form-item>
<el-form-item label="选择工程" prop="projectId">
<treeselect
v-model="queryParams.projectId"
:options="proList" :normalizer="normalizer"
:show-count="true" style="width: 240px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择工程" @select="proChange"
/>
</el-form-item>
<el-form-item label="协议号" prop="agreementCode">
<el-input v-model="queryParams.agreementCode" placeholder="协议号" clearable disabled/>
</el-form-item>
<el-form-item label="是否匹配" prop="isMatch">
<el-select v-model="queryParams.isMatch" placeholder="请选择" clearable>
<el-option label="已匹配" value="0"></el-option>
<el-option label="未匹配" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否结算" prop="isPay">
<el-select v-model="queryParams.isPay" placeholder="请选择" clearable>
<el-option label="已结算" value="0"></el-option>
<el-option label="未结算" value="1"></el-option>
</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-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button
>
</el-form-item>
</el-form>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<el-table
v-loading="loading"
:data="protocolList"
ref="multipleTable"
row-key="id"
>
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="协议号" align="center" prop="agreementCode" sortable show-overflow-tooltip />
<el-table-column label="单位名称" align="center" prop="unitName" sortable show-overflow-tooltip />
<el-table-column label="工程名称" align="center" prop="projectName" sortable show-overflow-tooltip />
<el-table-column label="工程ID" align="center" prop="projectId" sortable show-overflow-tooltip />
<el-table-column label="工程编号" align="center" prop="projectCode" sortable show-overflow-tooltip />
<el-table-column label="是否匹配" align="center" prop="isMatch" sortable show-overflow-tooltip >
<template slot-scope="scope">
<span v-if="scope.row.isMatch==0" style="color: #67c23a">已匹配</span>
<span v-if="scope.row.isMatch==1" style="color: #f56c6c">未匹配</span>
</template>
</el-table-column>
<el-table-column label="是否结算" align="center" prop="isPay" sortable show-overflow-tooltip >
<template slot-scope="scope">
<span v-if="scope.row.isPay==0" style="color: #67c23a">已结算</span>
<span v-if="scope.row.isPay==1" style="color: #f56c6c">未结算</span>
</template>
</el-table-column>
<el-table-column label="结算时间" align="center" prop="payTime" sortable show-overflow-tooltip />
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {
getProjectList,
getUnitList,
getAgreementInfoById,
} from '@/api/back/index.js'
import {getProtocolList, } from "@/api/costPush/costPush";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "",
data() {
return {
//
loading: false,
//
showSearch: true,
//
total: 0,
//
protocolList: [],
//
title: "",
//
open: false,
//
unitList: [],
//
proList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
unitId: null,
projectId: null,
agreementId: '',
agreementCode: '',
isMatch: null,
isPay: null,
},
};
},
created() {
this.GetUnitData()
this.GetProData()
this.getList();
},
components: { Treeselect },
methods: {
/** 转换菜单数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.name,
children: node.children,
};
},
//
async GetUnitData() {
const params = {
// projectId: this.queryParams.projectId /* */,
}
const res = await getUnitList(params)
this.unitList = res.data;
this.getAgreementInfo()
},
unitChange(val){
setTimeout(()=>{
this.queryParams.projectId=null
this.queryParams.agreementId = null
this.queryParams.agreementCode = null
this.GetProData()
},500)
},
//
async GetProData() {
const params = {
unitId: this.queryParams.unitId,
}
const res = await getProjectList(params)
this.proList = res.data;
this.getAgreementInfo()
},
proChange(val){
setTimeout(()=>{
this.GetUnitData()
},500)
},
// id
async getAgreementInfo() {
if (this.queryParams.unitId && this.queryParams.projectId) {
const params = {
unitId: this.queryParams.unitId,
projectId: this.queryParams.projectId,
}
const res = await getAgreementInfoById(params)
console.log(res)
if (!(res.data && res.data.agreementId)) {
this.$message.error('当前单位和工程无协议!')
this.queryParams.unitId = null
this.queryParams.projectId = null
this.GetUnitData()
this.GetProData()
} else {
this.queryParams.agreementId = res.data.agreementId
this.queryParams.agreementCode = res.data.agreementCode
}
}
},
/** 查询岗位列表 */
getList() {
this.loading = true;
// getProtocolList(this.queryParams).then((response) => {
// this.protocolList = response.rows;
// this.total = response.total;
// this.loading = false;
// });
this.protocolList = [
{
agreementCode: '123',
unitName: '123',
projectName: '123',
projectId: '123',
projectCode: '123',
isMatch: '0',
isPay: '0',
payTime: '2022-09-09',
},
{
agreementCode: '123',
unitName: '123',
projectName: '123',
projectId: '123',
projectCode: '123',
isMatch: '1',
isPay: '1',
payTime: '2022-09-09',
},
]
this.loading = false;
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams={
pageNum: 1,
pageSize: 10,
isMatch: null,
isPay: null,
unitId: null,
projectId: null,
agreementId: '',
agreementCode: '',
}
this.resetForm('queryForm')
this.handleQuery()
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 导出 */
handleExport() {
},
},
};
</script>
<style lang="scss" scoped>
.uploadImg {
padding-top: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.deviceCode {
margin-top: 10px;
padding-bottom: 20px;
font-size: 18px;
}
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
//css
::v-deep.disabled {
.el-upload--picture-card {
display: none;
}
}
</style>

View File

@ -0,0 +1,867 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" v-show="showSearch" :inline="true" label-width="80px">
<el-form-item label="选择单位" prop="unitId">
<treeselect
v-model="queryParams.unitId"
:options="unitList" :normalizer="normalizer"
:show-count="true" style="width: 215px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择单位" @select="unitChange"
/>
</el-form-item>
<el-form-item label="选择工程" prop="projectId">
<treeselect
v-model="queryParams.projectId"
:options="proList" :normalizer="normalizer"
:show-count="true" style="width: 215px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择工程" @select="proChange"
/>
</el-form-item>
<el-form-item label="协议号" prop="agreementCode">
<el-input v-model="queryParams.agreementCode" placeholder="协议号" clearable disabled/>
</el-form-item>
<el-form-item label="推送月份" prop="month">
<el-date-picker
v-model="queryParams.month"
type="month"
placeholder="请选择月份">
</el-date-picker>
</el-form-item>
<el-form-item label="是否推送" prop="isSend">
<el-select v-model="queryParams.isSend" placeholder="请选择" clearable>
<el-option label="已推送" value="0"></el-option>
<el-option label="退回" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="导出年份" prop="year">
<el-date-picker
v-model="queryParams.year"
type="year"
placeholder="请选择年份">
</el-date-picker>
</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-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button
>
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出年度费用</el-button
>
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出开工年度费用</el-button
>
<el-button
type="danger"
plain
size="mini"
@click="handleSubmit"
>批量退回</el-button
>
</el-form-item>
</el-form>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<el-table
v-loading="loading"
:data="pushReviewList"
ref="multipleTable"
row-key="id"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" :selectable="selectable"/>
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="协议号" align="center" prop="agreementCode" sortable show-overflow-tooltip />
<el-table-column label="单位名称" align="center" prop="unitName" sortable show-overflow-tooltip />
<el-table-column label="工程名称" align="center" prop="projectName" sortable show-overflow-tooltip />
<el-table-column label="推送月份" align="center" prop="month" sortable show-overflow-tooltip />
<el-table-column label="租赁费用" align="center" prop="leaseCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span class="clickText" v-if="scope.row.leaseCost!=null" @click="openLease(scope.row)">
{{scope.row.leaseCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="维修费用" align="center" prop="repairCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span class="clickText" v-if="scope.row.repairCost!=null" @click="openRepair(scope.row)">
{{scope.row.repairCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="报废费用" align="center" prop="scrapCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span class="clickText" v-if="scope.row.scrapCost!=null" @click="openScrap(scope.row)">
{{scope.row.scrapCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="丢失费用" align="center" prop="loseCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span class="clickText" v-if="scope.row.loseCost!=null" @click="openLose(scope.row)">
{{scope.row.loseCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="合计费用" align="center" prop="allCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span v-if="scope.row.allCost!=null" >
{{scope.row.allCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="推送月份" align="center" prop="month" sortable show-overflow-tooltip />
<el-table-column label="推送状态" align="center" prop="status" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span v-if="scope.row.status==0" style="color: #67c23a">已推送</span>
<span v-if="scope.row.status==1" style="color: #f56c6c">退回</span>
</template>
</el-table-column>
<el-table-column label="推送备注" align="center" prop="remark" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span v-if="scope.row.status==1" style="color: #f56c6c">{{ scope.row.remark }}</span>
<span v-else >{{ scope.row.remark }}</span>
</template>
</el-table-column>
</el-table>
<pagination
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 租赁费用弹窗-->
<el-dialog :title="title" :visible.sync="showLease" width="1200px" append-to-body>
<el-form :model="dialogLease" ref="dialogLease" size="small" :inline="true" label-width="80px">
<el-form-item label="物资名称" prop="typeName">
<el-input
v-model="dialogLease.typeName"
placeholder="请输入物资名称"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item label="规格型号" prop="modelName">
<el-input
v-model="dialogLease.modelName"
placeholder="请输入规格型号"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item>
<el-button type="primary"
icon="el-icon-search" size="mini"
@click="handleQueryLease"
>查询</el-button>
</el-form-item>
<el-form-item>
<el-button
type="warning"
icon="el-icon-download"
size="mini"
:disabled="!dialogLeaseList.length"
@click="handleExportLease"
>导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dialogLeaseList" border>
<el-table-column label="序号" align="center" width="80" type="index" >
<template slot-scope="scope">
<span>{{
(dialogLease.pageNum - 1) * dialogLease.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/>
<el-table-column label="租赁单价" align="center" prop="leasePrice" :show-overflow-tooltip="true"/>
<el-table-column label="租赁数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="租赁日期" align="center" prop="startTime" :show-overflow-tooltip="true"/>
<el-table-column label="归还日期" align="center" prop="endTime" :show-overflow-tooltip="true"/>
<el-table-column label="租赁天数" align="center" prop="leaseDays" :show-overflow-tooltip="true"/>
<el-table-column label="租赁费用(元)" align="center" width="130px" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">合计费用</div>
<div class="columnAll">
{{ 2530.55 }}
</div>
</div>
</el-dialog>
<!-- 维修费用弹窗-->
<el-dialog :title="title" :visible.sync="showRepair" width="1200px" append-to-body>
<el-form :model="dialogRepair" ref="dialogRepair" size="small" :inline="true" label-width="80px">
<el-form-item label="物资名称" prop="typeName">
<el-input
v-model="dialogRepair.typeName"
placeholder="请输入物资名称"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item label="规格型号" prop="modelName">
<el-input
v-model="dialogRepair.modelName"
placeholder="请输入规格型号"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item>
<el-button type="primary"
icon="el-icon-search" size="mini"
@click="handleQueryRepair"
>查询</el-button>
</el-form-item>
<el-form-item>
<el-button
type="warning"
icon="el-icon-download"
size="mini"
:disabled="!dialogRepairList.length"
@click="handleExportRepair"
>导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dialogRepairList" border>
<el-table-column label="序号" align="center" width="80" type="index" >
<template slot-scope="scope">
<span>{{
(dialogRepair.pageNum - 1) * dialogRepair.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/>
<el-table-column label="维修数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="是否收费" align="center" prop="partType" :show-overflow-tooltip="true"/>
<el-table-column label="维修费用(元)" align="center" width="130px" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">合计费用</div>
<div class="columnAll">
{{ 2530.55 }}
</div>
</div>
</el-dialog>
<!-- 报废费用弹窗-->
<el-dialog :title="title" :visible.sync="showScrap" width="1200px" append-to-body>
<el-form :model="dialogScrap" ref="dialogScrap" size="small" :inline="true" label-width="80px">
<el-form-item label="物资名称" prop="typeName">
<el-input
v-model="dialogScrap.typeName"
placeholder="请输入物资名称"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item label="规格型号" prop="modelName">
<el-input
v-model="dialogScrap.modelName"
placeholder="请输入规格型号"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item>
<el-button type="primary"
icon="el-icon-search" size="mini"
@click="handleQueryScrap"
>查询</el-button>
</el-form-item>
<el-form-item>
<el-button
type="warning"
icon="el-icon-download"
size="mini"
:disabled="!dialogScrapList.length"
@click="handleExportScrap"
>导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dialogScrapList" border>
<el-table-column label="序号" align="center" width="80" type="index" >
<template slot-scope="scope">
<span>{{
(dialogScrap.pageNum - 1) * dialogScrap.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/>
<el-table-column label="报废数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="是否收费" align="center" prop="partType" :show-overflow-tooltip="true"/>
<el-table-column label="报废费用(元)" align="center" width="130px" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">合计费用</div>
<div class="columnAll">
{{ 2530.55 }}
</div>
</div>
</el-dialog>
<!-- 丢失费用弹窗-->
<el-dialog :title="title" :visible.sync="showLose" width="1200px" append-to-body>
<el-form :model="dialogLose" ref="dialogLose" size="small" :inline="true" label-width="80px">
<el-form-item label="物资名称" prop="typeName">
<el-input
v-model="dialogLose.typeName"
placeholder="请输入物资名称"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item label="规格型号" prop="modelName">
<el-input
v-model="dialogLose.modelName"
placeholder="请输入规格型号"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item>
<el-button type="primary"
icon="el-icon-search" size="mini"
@click="handleQueryLose"
>查询</el-button>
</el-form-item>
<el-form-item>
<el-button
type="warning"
icon="el-icon-download"
size="mini"
:disabled="!dialogLoseList.length"
@click="handleExportLose"
>导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dialogLoseList" border>
<el-table-column label="序号" align="center" width="80" type="index" >
<template slot-scope="scope">
<span>{{
(dialogLose.pageNum - 1) * dialogLose.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/>
<el-table-column label="丢失数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="丢失费用(元)" align="center" width="130px" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">合计费用</div>
<div class="columnAll">
{{ 2530.55 }}
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getProjectList,
getUnitList,
getAgreementInfoById,
} from '@/api/back/index.js'
import {getPushReviewList, } from "@/api/costPush/costPush";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "",
data() {
return {
//
loading: false,
//
showSearch: true,
//
single: true,
//
multiple: true,
//
total: 0,
//
pushReviewList: [],
//
title: "",
//
open: false,
//
unitList: [],
//
proList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
unitId: null,
projectId: null,
agreementId: '',
agreementCode: '',
month: null,
year: null,
isSend: null,
},
//
ids: [],
//
showLease: false,
dialogLeaseList: [], //
dialogLease: {
pageNum: 1,
pageSize: 10,
typeName: undefined,
modelName: undefined,
},
dialogLeaseTotal: 0,
//
showRepair: false,
dialogRepairList: [], //
dialogRepair: {
pageNum: 1,
pageSize: 10,
typeName: undefined,
modelName: undefined,
},
dialogRepairTotal: 0,
//
showScrap: false,
dialogScrapList: [], //
dialogScrap: {
pageNum: 1,
pageSize: 10,
typeName: undefined,
modelName: undefined,
},
dialogScrapTotal: 0,
//
showLose: false,
dialogLoseList: [], //
dialogLose: {
pageNum: 1,
pageSize: 10,
typeName: undefined,
modelName: undefined,
},
dialogLoseTotal: 0,
};
},
created() {
this.getMonthandYear();
this.GetUnitData()
this.GetProData()
this.getList();
},
components: { Treeselect },
methods: {
getMonthandYear() {
//
var nowDate = new Date();
var date = {
year: nowDate.getFullYear(),
month: nowDate.getMonth() + 1,
day: nowDate.getDate()
};
const dayDate = date.year + "-" + (date.month >= 10 ? date.month : "0" + date.month);
const dayYear = date.year;
this.$set(this.queryParams, "month", dayDate.toString());
this.$set(this.queryParams, "year", dayYear.toString());
},
/** 转换菜单数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.name,
children: node.children,
};
},
//
async GetUnitData() {
const params = {
// projectId: this.queryParams.projectId /* */,
}
const res = await getUnitList(params)
this.unitList = res.data;
this.getAgreementInfo()
},
unitChange(val) {
setTimeout(() => {
this.queryParams.projectId = null
this.queryParams.agreementId = null
this.queryParams.agreementCode = null
this.GetProData()
}, 500)
},
//
async GetProData() {
const params = {
unitId: this.queryParams.unitId,
}
const res = await getProjectList(params)
this.proList = res.data;
this.getAgreementInfo()
},
proChange(val) {
setTimeout(() => {
this.GetUnitData()
}, 500)
},
// id
async getAgreementInfo() {
if (this.queryParams.unitId && this.queryParams.projectId) {
const params = {
unitId: this.queryParams.unitId,
projectId: this.queryParams.projectId,
}
const res = await getAgreementInfoById(params)
console.log(res)
if (!(res.data && res.data.agreementId)) {
this.$message.error('当前单位和工程无协议!')
this.queryParams.unitId = null
this.queryParams.projectId = null
this.GetUnitData()
this.GetProData()
} else {
this.queryParams.agreementId = res.data.agreementId
this.queryParams.agreementCode = res.data.agreementCode
}
}
},
/** 查询岗位列表 */
getList() {
this.loading = true;
// getPushReviewList(this.queryParams).then((response) => {
// this.pushReviewList = response.rows;
// this.total = response.total;
// this.loading = false;
// });
this.pushReviewList = [
{
id: 1,
agreementCode: '1',
unitName: '1',
projectName: '1',
leaseCost: 100,
repairCost: 100,
scrapCost: 100,
loseCost: 100,
allCost: 100,
month: '2025-01',
status: '0',
remark: '非竣工的60天内的工程数据',
},
{
id: 2,
agreementCode: '2',
unitName: '2',
projectName: '2',
leaseCost: 100,
repairCost: 100,
scrapCost: 100,
loseCost: 100,
allCost: 100,
month: '2024-12',
status: '1',
remark: '非竣工的70天内的工程数据',
},
]
this.loading = false;
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
isSend: null,
unitId: null,
projectId: null,
agreementId: '',
agreementCode: '',
month: null,
year: null,
}
this.resetForm('queryForm')
this.handleQuery()
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id)
this.single = selection.length != 1
this.multiple = !selection.length
},
//
selectable(row) {
if (row.status == "1") {
return false;
} else {
return true;
}
},
//
openLease(row) {
this.showLease = true
this.dialogLease.typeName = ""
this.dialogLease.modelName = ""
this.dialogLease.id = row.id;
// this.getLeaseList()
},
//
getLeaseList() {
this.loading = true;
// getLeaseList(this.dialogLease).then((response) => {
// this.dialogLeaseList = response.rows;
// this.dialogLeaseTotal = response.total;
// this.loading = false;
// });
},
handleQueryLease() {
this.getLeaseList()
},
//
handleExportLease() {
// exportLease(this.dialogLease).then((response) => {
// this.$message.success("");
// });
},
//
openRepair(row) {
this.showRepair = true
this.dialogRepair.typeName = ""
this.dialogRepair.modelName = ""
this.dialogRepair.id = row.id;
// this.getRepairList()
},
//
getRepairList() {
this.loading = true;
// getRepairList(this.dialogRepaire).then((response) => {
// this.dialogRepairList = response.rows;
// this.dialogRepairTotal = response.total;
// this.loading = false;
// });
},
handleQueryRepair() {
this.getRepairList()
},
//
handleExportRepair() {
// exportRepair(this.dialogRepair).then((response) => {
// this.$message.success("");
// });
},
//
openScrap(row) {
this.showScrap = true
this.dialogScrap.typeName = ""
this.dialogScrap.modelName = ""
this.dialogScrap.id = row.id;
// this.getScrapList()
},
//
getScrapList() {
this.loading = true;
// getScrapList(this.dialogScrap).then((response) => {
// this.dialogScrapList = response.rows;
// this.dialogScrapTotal = response.total;
// this.loading = false;
// });
},
handleQueryScrap() {
this.getScrapList()
},
//
handleExportScrap() {
// exportScrap(this.dialogScrap).then((response) => {
// this.$message.success("");
// });
},
//
openLose(row) {
this.showLose = true
this.dialogLose.typeName = ""
this.dialogLose.modelName = ""
this.dialogLose.id = row.id;
// this.getLoseList()
},
//
getLoseList() {
this.loading = true;
// getLoseList(this.dialogLose).then((response) => {
// this.dialogLoseList = response.rows;
// this.dialogLoseTotal = response.total;
// this.loading = false;
// });
},
handleQueryLose() {
this.getLoseList()
},
handleExportLose() {
// exportLose(this.dialogLose).then((response) => {
// this.$message.success("");
// });
},
/** 导出 */
handleExport() {
},
/** 提交 */
handleSubmit(){
this.$modal
.confirm('是否确认提交?')
.then(() => {
// let params = {
// 'agreementId': this.rowData.agreementId, 'agreementCode': this.rowData.agreementCode,'totalCostAll': this.costAll,
// 'leaseList': this.leaseList, 'repairList': this.repairList, 'scrapList': this.scrapList,'loseList': this.loseList,
// }
// submitCosts(params).then((response) => {
// this.$message({
// type: 'success',
// message: '',
// })
// this.getList()
// })
})
.catch(() => {})
}
},
};
</script>
<style lang="scss" scoped>
.uploadImg {
padding-top: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.deviceCode {
margin-top: 10px;
padding-bottom: 20px;
font-size: 18px;
}
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
.clickText {
color: #02a7f0;
cursor: pointer;
}
.tabelAllBottom {
display: flex;
border: 1px solid #dfe6ec;
width:100%;
border-bottom: 1px solid #dfe6ec;
border-top: none;
}
.columnAll {
flex: 1;
padding: 5px;
border-left: 1px solid #dfe6ec;
width:100%;
align-items: center;
text-align: center;
justify-content: center; /* 将内容对齐到中间 */
}
.columnAllNum {
padding: 5px;
text-align: center;
width:88.6%;
border-left: none;
}
</style>

View File

@ -0,0 +1,855 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" v-show="showSearch" :inline="true" label-width="80px">
<el-form-item label="选择单位" prop="unitId">
<treeselect
v-model="queryParams.unitId"
:options="unitList" :normalizer="normalizer"
:show-count="true" style="width: 215px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择单位" @select="unitChange"
/>
</el-form-item>
<el-form-item label="选择工程" prop="projectId">
<treeselect
v-model="queryParams.projectId"
:options="proList" :normalizer="normalizer"
:show-count="true" style="width: 215px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择工程" @select="proChange"
/>
</el-form-item>
<el-form-item label="协议号" prop="agreementCode">
<el-input v-model="queryParams.agreementCode" placeholder="协议号" clearable disabled/>
</el-form-item>
<el-form-item label="推送月份" prop="month">
<el-date-picker
v-model="queryParams.month"
type="month"
placeholder="请选择月份">
</el-date-picker>
</el-form-item>
<el-form-item label="是否过滤" prop="isFilter">
<el-select v-model="queryParams.isFilter" placeholder="请选择" clearable>
<el-option label="已过滤" value="0"></el-option>
<el-option label="未过滤" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否结算" prop="isPay">
<el-select v-model="queryParams.isPay" placeholder="请选择" clearable>
<el-option label="已结算" value="0"></el-option>
<el-option label="未结算" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否审核" prop="isReview">
<el-select v-model="queryParams.isReview" placeholder="请选择" clearable>
<el-option label="已审核" value="0"></el-option>
<el-option label="未审核" value="1"></el-option>
</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-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button
>
<el-button
type="success"
plain
size="mini"
@click="handleSubmit"
>提交</el-button
>
</el-form-item>
</el-form>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<el-table
v-loading="loading"
:data="pushReviewList"
ref="multipleTable"
row-key="id"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" :selectable="selectable"/>
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="协议号" align="center" prop="agreementCode" sortable show-overflow-tooltip />
<el-table-column label="单位名称" align="center" prop="unitName" sortable show-overflow-tooltip />
<el-table-column label="工程名称" align="center" prop="projectName" sortable show-overflow-tooltip />
<el-table-column label="推送月份" align="center" prop="month" sortable show-overflow-tooltip />
<el-table-column label="租赁费用" align="center" prop="leaseCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span class="clickText" v-if="scope.row.leaseCost!=null" @click="openLease(scope.row)">
{{scope.row.leaseCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="维修费用" align="center" prop="repairCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span class="clickText" v-if="scope.row.repairCost!=null" @click="openRepair(scope.row)">
{{scope.row.repairCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="报废费用" align="center" prop="scrapCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span class="clickText" v-if="scope.row.scrapCost!=null" @click="openScrap(scope.row)">
{{scope.row.scrapCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="丢失费用" align="center" prop="loseCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span class="clickText" v-if="scope.row.loseCost!=null" @click="openLose(scope.row)">
{{scope.row.loseCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="合计费用" align="center" prop="allCost" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span v-if="scope.row.allCost!=null" >
{{scope.row.allCost.toFixed(2)}}
</span>
</template>
</el-table-column>
<el-table-column label="是否结算" align="center" prop="isPay" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span v-if="scope.row.isPay==0" style="color: #67c23a">已结算</span>
<span v-if="scope.row.isPay==1" style="color: #f56c6c">未结算</span>
</template>
</el-table-column>
<el-table-column label="是否审核" align="center" prop="isReview" sortable show-overflow-tooltip >
<template slot-scope="scope" >
<span v-if="scope.row.isReview==0" style="color: #67c23a">已审核</span>
<span v-if="scope.row.isReview==1" style="color: #f56c6c">未审核</span>
</template>
</el-table-column>
</el-table>
<pagination
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 租赁费用弹窗-->
<el-dialog :title="title" :visible.sync="showLease" width="1200px" append-to-body>
<el-form :model="dialogLease" ref="dialogLease" size="small" :inline="true" label-width="80px">
<el-form-item label="物资名称" prop="typeName">
<el-input
v-model="dialogLease.typeName"
placeholder="请输入物资名称"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item label="规格型号" prop="modelName">
<el-input
v-model="dialogLease.modelName"
placeholder="请输入规格型号"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item>
<el-button type="primary"
icon="el-icon-search" size="mini"
@click="handleQueryLease"
>查询</el-button>
</el-form-item>
<el-form-item>
<el-button
type="warning"
icon="el-icon-download"
size="mini"
:disabled="!dialogLeaseList.length"
@click="handleExportLease"
>导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dialogLeaseList" border>
<el-table-column label="序号" align="center" width="80" type="index" >
<template slot-scope="scope">
<span>{{
(dialogLease.pageNum - 1) * dialogLease.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/>
<el-table-column label="租赁单价" align="center" prop="leasePrice" :show-overflow-tooltip="true"/>
<el-table-column label="租赁数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="租赁日期" align="center" prop="startTime" :show-overflow-tooltip="true"/>
<el-table-column label="归还日期" align="center" prop="endTime" :show-overflow-tooltip="true"/>
<el-table-column label="租赁天数" align="center" prop="leaseDays" :show-overflow-tooltip="true"/>
<el-table-column label="租赁费用(元)" align="center" width="130px" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">合计费用</div>
<div class="columnAll">
{{ 2530.55 }}
</div>
</div>
</el-dialog>
<!-- 维修费用弹窗-->
<el-dialog :title="title" :visible.sync="showRepair" width="1200px" append-to-body>
<el-form :model="dialogRepair" ref="dialogRepair" size="small" :inline="true" label-width="80px">
<el-form-item label="物资名称" prop="typeName">
<el-input
v-model="dialogRepair.typeName"
placeholder="请输入物资名称"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item label="规格型号" prop="modelName">
<el-input
v-model="dialogRepair.modelName"
placeholder="请输入规格型号"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item>
<el-button type="primary"
icon="el-icon-search" size="mini"
@click="handleQueryRepair"
>查询</el-button>
</el-form-item>
<el-form-item>
<el-button
type="warning"
icon="el-icon-download"
size="mini"
:disabled="!dialogRepairList.length"
@click="handleExportRepair"
>导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dialogRepairList" border>
<el-table-column label="序号" align="center" width="80" type="index" >
<template slot-scope="scope">
<span>{{
(dialogRepair.pageNum - 1) * dialogRepair.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/>
<el-table-column label="维修数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="是否收费" align="center" prop="partType" :show-overflow-tooltip="true"/>
<el-table-column label="维修费用(元)" align="center" width="130px" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">合计费用</div>
<div class="columnAll">
{{ 2530.55 }}
</div>
</div>
</el-dialog>
<!-- 报废费用弹窗-->
<el-dialog :title="title" :visible.sync="showScrap" width="1200px" append-to-body>
<el-form :model="dialogScrap" ref="dialogScrap" size="small" :inline="true" label-width="80px">
<el-form-item label="物资名称" prop="typeName">
<el-input
v-model="dialogScrap.typeName"
placeholder="请输入物资名称"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item label="规格型号" prop="modelName">
<el-input
v-model="dialogScrap.modelName"
placeholder="请输入规格型号"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item>
<el-button type="primary"
icon="el-icon-search" size="mini"
@click="handleQueryScrap"
>查询</el-button>
</el-form-item>
<el-form-item>
<el-button
type="warning"
icon="el-icon-download"
size="mini"
:disabled="!dialogScrapList.length"
@click="handleExportScrap"
>导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dialogScrapList" border>
<el-table-column label="序号" align="center" width="80" type="index" >
<template slot-scope="scope">
<span>{{
(dialogScrap.pageNum - 1) * dialogScrap.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/>
<el-table-column label="报废数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="是否收费" align="center" prop="partType" :show-overflow-tooltip="true"/>
<el-table-column label="报废费用(元)" align="center" width="130px" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">合计费用</div>
<div class="columnAll">
{{ 2530.55 }}
</div>
</div>
</el-dialog>
<!-- 丢失费用弹窗-->
<el-dialog :title="title" :visible.sync="showLose" width="1200px" append-to-body>
<el-form :model="dialogLose" ref="dialogLose" size="small" :inline="true" label-width="80px">
<el-form-item label="物资名称" prop="typeName">
<el-input
v-model="dialogLose.typeName"
placeholder="请输入物资名称"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item label="规格型号" prop="modelName">
<el-input
v-model="dialogLose.modelName"
placeholder="请输入规格型号"
clearable :maxlength="30"
style="width: 240px"/>
</el-form-item>
<el-form-item>
<el-button type="primary"
icon="el-icon-search" size="mini"
@click="handleQueryLose"
>查询</el-button>
</el-form-item>
<el-form-item>
<el-button
type="warning"
icon="el-icon-download"
size="mini"
:disabled="!dialogLoseList.length"
@click="handleExportLose"
>导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dialogLoseList" border>
<el-table-column label="序号" align="center" width="80" type="index" >
<template slot-scope="scope">
<span>{{
(dialogLose.pageNum - 1) * dialogLose.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/>
<el-table-column label="丢失数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="丢失费用(元)" align="center" width="130px" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">合计费用</div>
<div class="columnAll">
{{ 2530.55 }}
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getProjectList,
getUnitList,
getAgreementInfoById,
} from '@/api/back/index.js'
import {getPushReviewList, } from "@/api/costPush/costPush";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "",
data() {
return {
//
loading: false,
//
showSearch: true,
//
single: true,
//
multiple: true,
//
total: 0,
//
pushReviewList: [],
//
title: "",
//
open: false,
//
unitList: [],
//
proList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
unitId: null,
projectId: null,
agreementId: '',
agreementCode: '',
month: null,
isReview: null,
isPay: null,
isFilter: null,
},
//
ids: [],
//
showLease: false,
dialogLeaseList: [], //
dialogLease: {
pageNum: 1,
pageSize: 10,
typeName: undefined,
modelName: undefined,
},
dialogLeaseTotal: 0,
//
showRepair: false,
dialogRepairList: [], //
dialogRepair: {
pageNum: 1,
pageSize: 10,
typeName: undefined,
modelName: undefined,
},
dialogRepairTotal: 0,
//
showScrap: false,
dialogScrapList: [], //
dialogScrap: {
pageNum: 1,
pageSize: 10,
typeName: undefined,
modelName: undefined,
},
dialogScrapTotal: 0,
//
showLose: false,
dialogLoseList: [], //
dialogLose: {
pageNum: 1,
pageSize: 10,
typeName: undefined,
modelName: undefined,
},
dialogLoseTotal: 0,
};
},
created() {
this.getMonth();
this.GetUnitData()
this.GetProData()
this.getList();
},
components: { Treeselect },
methods: {
getMonth() {
//
var nowDate = new Date();
var date = {
year: nowDate.getFullYear(),
month: nowDate.getMonth() + 1,
day: nowDate.getDate()
};
const dayDate = date.year + "-" + (date.month >= 10 ? date.month : "0" + date.month);
this.$set(this.queryParams, "month", dayDate.toString());
},
/** 转换菜单数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.name,
children: node.children,
};
},
//
async GetUnitData() {
const params = {
// projectId: this.queryParams.projectId /* */,
}
const res = await getUnitList(params)
this.unitList = res.data;
this.getAgreementInfo()
},
unitChange(val) {
setTimeout(() => {
this.queryParams.projectId = null
this.queryParams.agreementId = null
this.queryParams.agreementCode = null
this.GetProData()
}, 500)
},
//
async GetProData() {
const params = {
unitId: this.queryParams.unitId,
}
const res = await getProjectList(params)
this.proList = res.data;
this.getAgreementInfo()
},
proChange(val) {
setTimeout(() => {
this.GetUnitData()
}, 500)
},
// id
async getAgreementInfo() {
if (this.queryParams.unitId && this.queryParams.projectId) {
const params = {
unitId: this.queryParams.unitId,
projectId: this.queryParams.projectId,
}
const res = await getAgreementInfoById(params)
console.log(res)
if (!(res.data && res.data.agreementId)) {
this.$message.error('当前单位和工程无协议!')
this.queryParams.unitId = null
this.queryParams.projectId = null
this.GetUnitData()
this.GetProData()
} else {
this.queryParams.agreementId = res.data.agreementId
this.queryParams.agreementCode = res.data.agreementCode
}
}
},
/** 查询岗位列表 */
getList() {
this.loading = true;
// getPushReviewList(this.queryParams).then((response) => {
// this.pushReviewList = response.rows;
// this.total = response.total;
// this.loading = false;
// });
this.pushReviewList = [
{
id: 1,
agreementCode: '1',
unitName: '1',
projectName: '1',
month: '2022-01',
leaseCost: 100,
repairCost: 100,
scrapCost: 100,
loseCost: 100,
allCost: 100,
isPay: '0',
isReview: '0',
},
{
id: 2,
agreementCode: '2',
unitName: '2',
projectName: '2',
month: '2022-01',
leaseCost: 100,
repairCost: 100,
scrapCost: 100,
loseCost: 100,
allCost: 100,
isPay: '0',
isReview: '1',
},
]
this.loading = false;
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
isReview: null,
isPay: null,
isFilter: null,
unitId: null,
projectId: null,
agreementId: '',
agreementCode: '',
month: null,
}
this.resetForm('queryForm')
this.handleQuery()
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id)
this.single = selection.length != 1
this.multiple = !selection.length
},
//
selectable(row) {
if (row.isReview == "0") {
return false;
} else {
return true;
}
},
//
openLease(row) {
this.showLease = true
this.dialogLease.typeName = ""
this.dialogLease.modelName = ""
this.dialogLease.id = row.id;
// this.getLeaseList()
},
//
getLeaseList() {
this.loading = true;
// getLeaseList(this.dialogLease).then((response) => {
// this.dialogLeaseList = response.rows;
// this.dialogLeaseTotal = response.total;
// this.loading = false;
// });
},
handleQueryLease() {
this.getLeaseList()
},
//
handleExportLease() {
// exportLease(this.dialogLease).then((response) => {
// this.$message.success("");
// });
},
//
openRepair(row) {
this.showRepair = true
this.dialogRepair.typeName = ""
this.dialogRepair.modelName = ""
this.dialogRepair.id = row.id;
// this.getRepairList()
},
//
getRepairList() {
this.loading = true;
// getRepairList(this.dialogRepaire).then((response) => {
// this.dialogRepairList = response.rows;
// this.dialogRepairTotal = response.total;
// this.loading = false;
// });
},
handleQueryRepair() {
this.getRepairList()
},
//
handleExportRepair() {
// exportRepair(this.dialogRepair).then((response) => {
// this.$message.success("");
// });
},
//
openScrap(row) {
this.showScrap = true
this.dialogScrap.typeName = ""
this.dialogScrap.modelName = ""
this.dialogScrap.id = row.id;
// this.getScrapList()
},
//
getScrapList() {
this.loading = true;
// getScrapList(this.dialogScrap).then((response) => {
// this.dialogScrapList = response.rows;
// this.dialogScrapTotal = response.total;
// this.loading = false;
// });
},
handleQueryScrap() {
this.getScrapList()
},
//
handleExportScrap() {
// exportScrap(this.dialogScrap).then((response) => {
// this.$message.success("");
// });
},
//
openLose(row) {
this.showLose = true
this.dialogLose.typeName = ""
this.dialogLose.modelName = ""
this.dialogLose.id = row.id;
// this.getLoseList()
},
//
getLoseList() {
this.loading = true;
// getLoseList(this.dialogLose).then((response) => {
// this.dialogLoseList = response.rows;
// this.dialogLoseTotal = response.total;
// this.loading = false;
// });
},
handleQueryLose() {
this.getLoseList()
},
handleExportLose() {
// exportLose(this.dialogLose).then((response) => {
// this.$message.success("");
// });
},
/** 导出 */
handleExport() {
},
/** 提交 */
handleSubmit(){
this.$modal
.confirm('是否确认提交?')
.then(() => {
// let params = {
// 'agreementId': this.rowData.agreementId, 'agreementCode': this.rowData.agreementCode,'totalCostAll': this.costAll,
// 'leaseList': this.leaseList, 'repairList': this.repairList, 'scrapList': this.scrapList,'loseList': this.loseList,
// }
// submitCosts(params).then((response) => {
// this.$message({
// type: 'success',
// message: '',
// })
// this.getList()
// })
})
.catch(() => {})
}
},
};
</script>
<style lang="scss" scoped>
.uploadImg {
padding-top: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.deviceCode {
margin-top: 10px;
padding-bottom: 20px;
font-size: 18px;
}
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
.clickText {
color: #02a7f0;
cursor: pointer;
}
.tabelAllBottom {
display: flex;
border: 1px solid #dfe6ec;
width:100%;
border-bottom: 1px solid #dfe6ec;
border-top: none;
}
.columnAll {
flex: 1;
padding: 5px;
border-left: 1px solid #dfe6ec;
width:100%;
align-items: center;
text-align: center;
justify-content: center; /* 将内容对齐到中间 */
}
.columnAllNum {
padding: 5px;
text-align: center;
width:88.6%;
border-left: none;
}
</style>

View File

@ -25,8 +25,8 @@
<el-date-picker
v-model="queryParams.productionTime"
placeholder="请选择出厂日期"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
value-format="yyyy-MM-dd"
type="date"
>
</el-date-picker>
</el-form-item>

View File

@ -279,11 +279,12 @@ import {
bmNoticeInfo,
delPeople,
} from "@/api/purchase/goodsArrived";
import {getPurchaseCheckFormByTaskId } from "@/api/purchase/goodsAccept";
import { getPurchaseCheckFormByTaskId } from "@/api/purchase/goodsAccept";
import vueEasyPrint from "vue-easy-print";
export default {
name: "Home",
dicts: ["purchase_task_status"],
// components: { vueEasyPrint },
components: { vueEasyPrint },
data() {
return {
//

View File

@ -25,8 +25,8 @@
<el-date-picker
v-model="queryParams.productionTime"
placeholder="请选择出厂日期"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime">
value-format="yyyy-MM-dd"
type="date">
</el-date-picker>
</el-form-item>