统计页面下拉筛选

This commit is contained in:
hongchao 2026-02-03 10:46:05 +08:00
parent 662ecdc00c
commit f812973e4e
3 changed files with 187 additions and 64 deletions

View File

@ -6,9 +6,9 @@
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
label-width="80px"
>
<el-form-item label="创建时间">
<el-form-item >
<el-date-picker
v-model="queryParams.startTime"
value-format="yyyy-MM-dd"
@ -30,24 +30,24 @@
/>
</el-form-item>
<el-form-item prop="keyWord">
<el-form-item label="关键字" prop="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
clearable
maxlength="50"
style="width: 240px"
style="width: 220px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="taskStatus">
<el-form-item label="状态" prop="taskStatus">
<el-select
v-model="queryParams.taskStatus"
placeholder="请选择状态"
clearable
filterable
style="width: 240px"
style="width: 210px"
>
<!-- v-for v-if 尽量不要同时使用 -->
<el-option
@ -59,8 +59,8 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="impUnitName">
<el-select v-model="queryParams.impUnitName" placeholder="请选择分公司" clearable style="width: 240px">
<el-form-item label="分公司" prop="impUnitName">
<el-select v-model="queryParams.impUnitName" placeholder="请选择分公司" clearable style="width: 210px">
<el-option
v-for="item in impUnitNameList"
:key="item.impUnitName"
@ -69,20 +69,20 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="leaseUnitId">
<el-form-item label="租赁单位" prop="leaseUnitId">
<treeselect
v-model="queryParams.leaseUnitId"
:options="unitList" :normalizer="normalizer"
:show-count="true" style="width: 240px" :disable-branch-nodes="true"
:show-count="true" style="width: 210px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择租赁单位" @select="unitChange"
/>
</el-form-item>
<el-form-item prop="leaseProjectId">
<el-form-item label="工程名称" prop="leaseProjectId">
<treeselect
v-model="queryParams.leaseProjectId"
:options="proList" :normalizer="normalizer"
:show-count="true" style="width: 240px" :disable-branch-nodes="true"
:show-count="true" style="width: 210px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择工程名称" @select="proChange"
/>
@ -283,9 +283,9 @@
<template slot-scope="scope">
<template v-if="scope.row.alNum == 0">
<el-input
v-model.number="scope.row.preNum"
v-model="scope.row.preNum"
controls-position="right"
type="number"
type="text"
style="width: 100%"
clearable
placeholder="请输入预出库数量"

View File

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="领料日期" prop="dateRange">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item prop="dateRange">
<el-date-picker
v-model="queryParams.startTime"
value-format="yyyy-MM-dd"
@ -31,26 +31,26 @@
maxlength="20"
/>
</el-form-item>
<el-form-item prop="leaseUnitId">
<el-form-item label="领料单位" prop="leaseUnitId">
<treeselect
v-model="queryParams.leaseUnitId"
:options="unitList" :normalizer="normalizer"
:show-count="true" style="width: 240px" :disable-branch-nodes="true"
:show-count="true" style="width: 210px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择领单位" @select="unitChange"
placeholder="请选择领单位" @select="unitChange"
/>
</el-form-item>
<el-form-item prop="leaseProjectId">
<el-form-item label="工程名称" prop="leaseProjectId">
<treeselect
v-model="queryParams.leaseProjectId"
:options="proList" :normalizer="normalizer"
:show-count="true" style="width: 240px" :disable-branch-nodes="true"
:show-count="true" style="width: 210px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择工程名称" @select="proChange"
/>
</el-form-item>
<el-form-item prop="impUnitName">
<el-select v-model="queryParams.impUnitName" placeholder="请选择分公司" clearable style="width: 240px">
<el-form-item label="分公司" prop="impUnitName">
<el-select v-model="queryParams.impUnitName" placeholder="请选择分公司" clearable style="width: 210px">
<el-option
v-for="item in impUnitNameList"
:key="item.impUnit"
@ -59,6 +59,35 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="施工类型" prop="lineTypes">
<el-select
v-model="queryParams.lineTypes"
placeholder="请选择施工类型"
multiple
collapse-tags
style="width: 210px"
clearable
>
<el-option
v-for="item in lineTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="机具类型" prop="jiJuType">
<el-select
v-model="queryParams.jiJuType"
placeholder="请选择机具类型"
clearable
style="width: 210px"
>
<el-option label="施工机具" :value="1" />
<el-option label="安全工器具" :value="2" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
@ -75,11 +104,13 @@
<span v-else>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index }}</span>
</template>
</el-table-column>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true"/>
<el-table-column label="施工类型" align="center" prop="constructionType" width="100" :show-overflow-tooltip="true"/>
<el-table-column label="物资类型" align="center" prop="materialType" width="100" :show-overflow-tooltip="true"/>
<el-table-column label="物资名称" align="center" prop="typeName" width="100" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="typeModelName" width="100" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true"/>
<el-table-column label="领料数量" align="center" prop="leaseNum" :show-overflow-tooltip="true"/>
<el-table-column label="出库数量" align="center" prop="outNum" :show-overflow-tooltip="true">
<el-table-column label="领料数量" align="center" prop="leaseNum" width="100" :show-overflow-tooltip="true"/>
<el-table-column label="出库数量" align="center" prop="outNum" width="100" :show-overflow-tooltip="true">
<template scope="scope">
<!-- manageType '编码' 使用可点击的 span -->
<span class="clickText" v-if="scope.row.manageType=='0'" @click="openRecords(scope.row)">
@ -91,14 +122,20 @@
</span>
</template>
</el-table-column>
<el-table-column label="待出库数量" align="center" prop="pendingOutNum" :show-overflow-tooltip="true"/>
<el-table-column label="领料日期" align="center" prop="leaseTime" :show-overflow-tooltip="true"/>
<el-table-column label="出库日期" align="center" prop="outTime" :show-overflow-tooltip="true"/>
<el-table-column label="待出库数量" align="center" prop="pendingOutNum" width="100" :show-overflow-tooltip="true"/>
<el-table-column label="领料日期" align="center" prop="leaseTime" width="100" :show-overflow-tooltip="true"/>
<el-table-column label="出库日期" align="center" prop="outTime" width="100" :show-overflow-tooltip="true"/>
<el-table-column label="领料单位" align="center" prop="leaseUnitName" width="180"/>
<el-table-column label="领料工程" align="center" prop="leaseProjectName" width="180"/>
<el-table-column label="机具类型" align="center" prop="jijuType" width="110px">
<template slot-scope="scope">
<el-tag v-if="scope.row.jijuType == 1" effect="plain">施工机具</el-tag>
<el-tag type="warning" v-if="scope.row.jijuType == 2" effect="plain">安全工器具</el-tag>
</template>
</el-table-column>
<el-table-column label="领料人" align="center" prop="leasePersonName" :show-overflow-tooltip="true"/>
<el-table-column label="出库人" align="center" prop="outPersonName" :show-overflow-tooltip="true"/>
<el-table-column label="领料单号" align="center" prop="code" :show-overflow-tooltip="true"/>
<el-table-column label="领料单号" align="center" prop="code" width="150" :show-overflow-tooltip="true"/>
</el-table>
<pagination
@ -164,6 +201,7 @@
<script>
import { getLeaseOutListApi, getLeaseOutListNoPageApi, getLeaseOutDetailsListApi } from "@/api/report/report";
import {getLintTypeList,} from '@/api/stquery/stquery';
import {
getProjectList,
getUnitList,
@ -202,8 +240,11 @@
endTime: undefined,
leaseUnitId:undefined,
leaseProjectId:undefined,
impUnitName:undefined
impUnitName:undefined,
jiJuType:null,
lineTypes: [], //线
},
lineTypeOptions: [], // 线
//
total: 0,
//
@ -230,6 +271,8 @@
this.queryParams.endTime = this.format(end)
this.GetUnitData()
this.GetProData()
//线
this.getLintTypeList()
this.getImpUnitNameList()
this.getList()
},
@ -245,6 +288,29 @@
children: node.children,
};
},
async getLintTypeList() {
try {
const res = await getLintTypeList()
if (res.code === 200 && res.data) {
//
this.lineTypeOptions = res.data.map(item => {
//
return {
value: item.typeId,
label: item.typeName
}
})
} else {
this.$message.error('获取施工类型下拉失败')
this.lineTypeOptions = [] //
}
} catch (error) {
console.error('获取施工类型下拉列表失败:', error)
this.$message.error('获取施工类型下拉列表失败')
this.lineTypeOptions = [] //
}
},
//
async GetUnitData() {
const res = await getUnitList({})
@ -314,7 +380,9 @@
pageNum: this.queryParams.pageNum,
leaseUnitId:this.queryParams.leaseUnitId,
leaseProjectId:this.queryParams.leaseProjectId,
impUnitName:this.queryParams.impUnitName
impUnitName:this.queryParams.impUnitName,
constructionTypes:this.queryParams.lineTypes,
jiJuType:this.queryParams.jiJuType,
}
console.log("pageparams",params);
const res = await getLeaseOutListApi(params)
@ -330,7 +398,9 @@
endTime: this.queryParams.endTime,
leaseUnitId:this.queryParams.leaseUnitId,
leaseProjectId:this.queryParams.leaseProjectId,
impUnitName:this.queryParams.impUnitName
impUnitName:this.queryParams.impUnitName,
constructionTypes:this.queryParams.lineTypes,
jiJuType:this.queryParams.jiJuType,
}
console.log("nopageparams",params);
const response = await getLeaseOutListNoPageApi(param)
@ -377,7 +447,12 @@
{
keyWord: this.queryParams.keyWord,
startTime: this.queryParams.startTime,
endTime: this.queryParams.endTime
endTime: this.queryParams.endTime,
constructionTypes:this.queryParams.lineTypes,
jiJuType:this.queryParams.jiJuType,
leaseUnitId:this.queryParams.leaseUnitId,
leaseProjectId:this.queryParams.leaseProjectId,
impUnitName:this.queryParams.impUnitName,
},
`领料出库报表_${currentTime}.xlsx`
);

View File

@ -22,19 +22,19 @@
style="width: 130px"
/>
</el-form-item>
<el-form-item prop="keyWord">
<!-- <el-form-item prop="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
clearable :maxlength="20"
style="width: 240px"
/>
</el-form-item>
<el-form-item prop="unitId">
</el-form-item> -->
<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"
:show-count="true" style="width: 210px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择往来单位" @select="unitChange"
/>
@ -49,11 +49,11 @@
placeholder="请选择往来单位"
></el-cascader> -->
</el-form-item>
<el-form-item prop="proId">
<el-form-item label="工程" prop="proId">
<treeselect
v-model="queryParams.proId"
:options="proList" :normalizer="normalizer"
:show-count="true" style="width: 240px" :disable-branch-nodes="true"
:show-count="true" style="width: 210px" :disable-branch-nodes="true"
noChildrenText="没有数据了" noOptionsText="没有数据" noResultsText="没有搜索结果"
placeholder="请选择工程名称" @select="proChange"
/>
@ -67,19 +67,10 @@
placeholder="请选择工程名称"
></el-cascader> -->
</el-form-item>
<el-form-item prop="typeName">
<el-input
v-model="queryParams.typeName"
placeholder="请输入物资名称"
clearable :maxlength="20"
style="width: 240px"
/>
</el-form-item>
<el-form-item prop="isSlt">
<el-form-item label="结算状态" prop="isSlt">
<el-select
v-model="queryParams.isSlt"
filterable clearable
style="width: 240px"
placeholder="请选择结算状态"
>
<el-option
@ -91,8 +82,8 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="isFinish">
<el-select v-model="queryParams.isFinish" placeholder="请选择竣工状态" clearable filterable>
<el-form-item label="竣工状态" prop="isFinish">
<el-select v-model="queryParams.isFinish" placeholder="请选择竣工状态" clearable filterable >
<el-option
v-for="item in proStatus"
:key="item.id"
@ -101,8 +92,25 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="jijuType">
<el-select v-model="queryParams.jijuType" placeholder="请选择机具类型" clearable filterable>
<el-form-item label="施工类型" prop="lineTypes">
<el-select
v-model="queryParams.lineTypes"
placeholder="请选择施工类型"
multiple
collapse-tags
clearable
>
<el-option
v-for="item in lineTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="机具类型" prop="jijuType">
<el-select v-model="queryParams.jijuType" placeholder="请选择机具类型" clearable filterable >
<el-option
v-for="item in jijuType"
:key="item.id"
@ -111,7 +119,14 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="isTeam">
<el-form-item label="物资名称" prop="typeName">
<el-input
v-model="queryParams.typeName"
placeholder="请输入物资名称"
clearable :maxlength="20"
/>
</el-form-item>
<el-form-item label="是否班组" prop="isTeam">
<el-select v-model="queryParams.isTeam" placeholder="请选择是否班组" clearable filterable>
<el-option
v-for="item in isTeam"
@ -160,6 +175,8 @@
<el-table-column label="往来单位" align="center" prop="unitName" width="180"/>
<el-table-column label="实施单位" align="center" prop="impUnitName" width="150px" :show-overflow-tooltip="true"/>
<!-- <el-table-column label="合同主体" align="center" prop="contractPart" width="150px" :show-overflow-tooltip="true"/> -->
<el-table-column label="施工类型" align="center" prop="constructionType" :show-overflow-tooltip="true"/>
<el-table-column label="物资类型" align="center" prop="materialType" :show-overflow-tooltip="true"/>
<el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="unit" :show-overflow-tooltip="true"/>
@ -176,7 +193,7 @@
</template>
</el-table-column>
<el-table-column label="竣工日期" align="center" prop="actualEndDate" :show-overflow-tooltip="true"/>
<el-table-column label="机具类型" align="center" prop="jijuType" :show-overflow-tooltip="true">
<el-table-column label="机具类型" align="center" prop="jijuType" width="110px">
<template slot-scope="scope">
<el-tag v-if="scope.row.jijuType == 1" effect="plain">施工机具</el-tag>
<el-tag type="warning" v-if="scope.row.jijuType == 2" effect="plain">安全工器具</el-tag>
@ -202,7 +219,7 @@
<script>
import {
getProjUsingRecordListApi,getProjUsingRecordListNoPage
getProjUsingRecordListApi,getProjUsingRecordListNoPage,getLintTypeList
} from '@/api/stquery/stquery';
import {
getProData,
@ -255,8 +272,10 @@ export default {
typeName: null, //
isSlt: null, //
startTime:null,
endTime:null
endTime:null,
lineTypes: [], //线
},
lineTypeOptions: [], // 线
proStatus:[
{ id: 0, name: '未竣工' },
{ id: 1, name: '已竣工' },
@ -278,8 +297,10 @@ export default {
start.setFullYear(start.getFullYear() - 1); //
this.queryParams.startTime = this.format(start)
this.queryParams.endTime = this.format(end)
this.initSelectData()
this.getList()
this.initSelectData()
//线
this.getLintTypeList()
this.getList()
},
methods: {
format(date) {
@ -303,6 +324,30 @@ export default {
children: node.children,
};
},
async getLintTypeList() {
try {
const res = await getLintTypeList()
if (res.code === 200 && res.data) {
//
this.lineTypeOptions = res.data.map(item => {
//
return {
value: item.typeId,
label: item.typeName
}
})
} else {
this.$message.error('获取施工类型下拉失败')
this.lineTypeOptions = [] //
}
} catch (error) {
console.error('获取施工类型下拉列表失败:', error)
this.$message.error('获取施工类型下拉列表失败')
this.lineTypeOptions = [] //
}
},
//
async GetUnitData() {
const params = {
@ -356,7 +401,8 @@ export default {
pageNum: this.queryParams.pageNum,
isFinish : this.queryParams.isFinish,
jijuType : this.queryParams.jijuType,
isTeam : this.queryParams.isTeam
isTeam : this.queryParams.isTeam,
constructionTypes:this.queryParams.lineTypes,
}
const res = await getProjUsingRecordListApi(params)
if(res.data.rows.length>0){
@ -375,7 +421,8 @@ export default {
endTime: this.queryParams.endTime,
isFinish : this.queryParams.isFinish,
jijuType : this.queryParams.jijuType,
isTeam : this.queryParams.isTeam
isTeam : this.queryParams.isTeam,
constructionTypes:this.queryParams.lineTypes,
}
const response = await getProjUsingRecordListNoPage(param)
let obj = {
@ -459,7 +506,8 @@ export default {
pageNum: this.queryParams.pageNum,
isFinish : this.queryParams.isFinish,
jijuType : this.queryParams.jijuType,
isTeam : this.queryParams.isTeam
isTeam : this.queryParams.isTeam,
constructionTypes:this.queryParams.lineTypes,
}
const currentTime = formatTime(new Date());