This commit is contained in:
parent
2978e8ab90
commit
ae65a5d711
|
|
@ -773,3 +773,49 @@ export function getListDetailsApi(data) {
|
|||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
//分公司下拉
|
||||
export function getImpUnitListApi(query) {
|
||||
return request({
|
||||
url: '/material/material_maMachine/getImpUnitNameList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
//项目部下拉
|
||||
export function getDepartListByImpUnitApi(query) {
|
||||
return request({
|
||||
url: '/material/material_maMachine/getDepartNameList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
//工程下拉
|
||||
export function getProListByDepartApi(query) {
|
||||
return request({
|
||||
url: '/material/material_maMachine/getProjectList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
//班组下拉
|
||||
export function getTeamList(query) {
|
||||
return request({
|
||||
url: '/material/material_maMachine/getTeamList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
//分包单位下拉
|
||||
export function getSubUnitList(query) {
|
||||
return request({
|
||||
url: '/material/material_maMachine/getSubUnitList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,67 +2,127 @@
|
|||
<div class="app-container" id="">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
|
||||
<el-form-item label="分公司" prop="impUnitName">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="queryParams.impUnitName"
|
||||
placeholder="请输入分公司"
|
||||
placeholder="请选择分公司"
|
||||
clearable
|
||||
:maxlength="50"
|
||||
filterable
|
||||
style="width: 240px"
|
||||
@change="handleImpUnitChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in impUnitOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="项目部" prop="departName">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="queryParams.departName"
|
||||
placeholder="请输入项目部"
|
||||
placeholder="请选择项目部"
|
||||
clearable
|
||||
:maxlength="50"
|
||||
filterable
|
||||
style="width: 240px"
|
||||
@change="handleDepartChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in departOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="工程" prop="proName">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="queryParams.proName"
|
||||
placeholder="请输入工程"
|
||||
placeholder="请选择工程"
|
||||
clearable
|
||||
:maxlength="50"
|
||||
filterable
|
||||
style="width: 240px"
|
||||
@change="getTeamList"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in proOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="分包单位" prop="subUnitName">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="queryParams.subUnitName"
|
||||
placeholder="请输入分包单位"
|
||||
placeholder="请选择分包单位"
|
||||
clearable
|
||||
:maxlength="50"
|
||||
filterable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in subUnitOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="班组名称" prop="teamName">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="queryParams.teamName"
|
||||
placeholder="请输入班组名称"
|
||||
placeholder="请选择班组"
|
||||
clearable
|
||||
:maxlength="50"
|
||||
filterable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in teamOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="物资名称" prop="typeName">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="queryParams.typeName"
|
||||
placeholder="请输入物资名称"
|
||||
placeholder="请选择物资名称"
|
||||
clearable
|
||||
:maxlength="50"
|
||||
filterable
|
||||
style="width: 240px"
|
||||
@change="handleMaModel"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in materialNameList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="规格型号" prop="typeModelName">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="queryParams.typeModelName"
|
||||
placeholder="请输入规格型号"
|
||||
placeholder="请选择规格型号"
|
||||
clearable
|
||||
:maxlength="50"
|
||||
filterable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in materialModelList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
|
||||
|
|
@ -87,18 +147,30 @@
|
|||
</div>
|
||||
|
||||
<div class="tip-box">
|
||||
<div class="tip-num">{{ tipForm.allNum || 0 }}</div>
|
||||
<div class="tip-text">总保有量</div>
|
||||
<div class="tip-num">{{ tipForm.countNum || 0 }}</div>
|
||||
<div class="tip-text">计件类总保有量</div>
|
||||
</div>
|
||||
<div class="tip-box">
|
||||
<div class="tip-num">{{ tipForm.ropeNum || 0 }}</div>
|
||||
<div class="tip-text">绳索类总保有量</div>
|
||||
</div>
|
||||
|
||||
<div class="tip-box">
|
||||
<div class="tip-num">{{ tipForm.inNum || 0 }}</div>
|
||||
<div class="tip-text">站内数量</div>
|
||||
<div class="tip-num">{{ tipForm.inCountNum || 0 }}</div>
|
||||
<div class="tip-text">计件类站内数量</div>
|
||||
</div>
|
||||
<div class="tip-box">
|
||||
<div class="tip-num">{{ tipForm.inRopeNum || 0 }}</div>
|
||||
<div class="tip-text">绳索类站内数量</div>
|
||||
</div>
|
||||
|
||||
<div class="tip-box">
|
||||
<div class="tip-num">{{ tipForm.useNum || 0 }}</div>
|
||||
<div class="tip-text">在用数量</div>
|
||||
<div class="tip-num">{{ tipForm.useCountNum || 0 }}</div>
|
||||
<div class="tip-text">计件类在用数量</div>
|
||||
</div>
|
||||
<div class="tip-box">
|
||||
<div class="tip-num">{{ tipForm.useRopeNum || 0 }}</div>
|
||||
<div class="tip-text">绳索类在用数量</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-row>
|
||||
|
|
@ -133,6 +205,7 @@
|
|||
</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="jiJuType" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="计量单位" align="center" prop="unit" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="数量" align="center" prop="allNum" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
|
|
@ -201,7 +274,13 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { getProTotalListApi, getStorageInfoListApi, getRetainedEquipmentListApi } from '@/api/materialsStation'
|
||||
import {
|
||||
getProTotalListApi,
|
||||
getStorageInfoListApi,
|
||||
getRetainedEquipmentListApi,
|
||||
getImpUnitListApi, getDepartListByImpUnitApi, getProListByDepartApi, getTeamList, getSubUnitList
|
||||
} from '@/api/materialsStation'
|
||||
import {getDeviceType} from "@/api/ma/device";
|
||||
export default {
|
||||
name: '',
|
||||
dicts: [],
|
||||
|
|
@ -241,7 +320,13 @@ export default {
|
|||
teamNum: 0, // 班组总数
|
||||
allNum: 0, // 总保有量
|
||||
inNum: 0, // 站内数量
|
||||
useNum: 0 // 在用数量
|
||||
useNum: 0, // 在用数量
|
||||
countNum:0,
|
||||
ropeNum:0,
|
||||
inCountNum:0,
|
||||
inRopeNum:0,
|
||||
useCountNum:0,
|
||||
useRopeNum:0,
|
||||
},
|
||||
|
||||
//在库弹窗
|
||||
|
|
@ -252,13 +337,176 @@ export default {
|
|||
pageSize: 10,
|
||||
keyWord: undefined
|
||||
},
|
||||
dialogTotal: 0
|
||||
dialogTotal: 0,
|
||||
impUnitOptions: [], // 分公司下拉
|
||||
departOptions: [], // 项目部下拉
|
||||
proOptions: [], // 工程下拉
|
||||
subUnitOptions: [], // 分包单位下拉
|
||||
teamOptions: [], // 班组下拉
|
||||
materialNameList: [],
|
||||
materialModelList: [],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
this.getImpUnitOptions()
|
||||
this.handleImpUnitChange()
|
||||
this.handleDepartChange()
|
||||
this.getTeamList()
|
||||
this.getSubUnitList()
|
||||
this.getDeviceType()
|
||||
},
|
||||
methods: {
|
||||
// async getSelect() {
|
||||
// await this.getImpUnitOptions()
|
||||
// await this.handleImpUnitChange()
|
||||
// await this.handleDepartChange()
|
||||
// await this.getTeamList()
|
||||
// await this.getSubUnitList()
|
||||
// },
|
||||
/** 获取分公司下拉 */
|
||||
async getImpUnitOptions() {
|
||||
try {
|
||||
const res = await getImpUnitListApi() // 调后台接口
|
||||
this.impUnitOptions = res.data.map(item => ({
|
||||
label: item.impUnitName, // 这里根据实际字段替换
|
||||
value: item.impUnitName
|
||||
}))
|
||||
} catch (e) {
|
||||
console.error('获取分公司下拉失败:', e)
|
||||
}
|
||||
},
|
||||
/** 分公司选择变化,加载项目部 */
|
||||
async handleImpUnitChange() {
|
||||
this.queryParams.departName = null // 清空项目部已选
|
||||
this.departOptions = [] // 清空原有下拉
|
||||
|
||||
try {
|
||||
const params = {
|
||||
impUnitName: this.queryParams.impUnitName, // 分公司名称
|
||||
departName: this.queryParams.departName, // 项目部名称
|
||||
proName: this.queryParams.proName,
|
||||
teamName:this.queryParams.teamName,
|
||||
subUnitName:this.queryParams.subUnitName,
|
||||
}
|
||||
const res = await getDepartListByImpUnitApi({ params })
|
||||
this.departOptions = res.data.map(item => ({
|
||||
label: item.departName, // 项目部名称字段
|
||||
value: item.departName
|
||||
}))
|
||||
} catch (e) {
|
||||
console.error('获取项目部下拉失败:', e)
|
||||
}
|
||||
},
|
||||
/** 项目部选择变化,加载工程 */
|
||||
async handleDepartChange() {
|
||||
this.queryParams.proName = null // 清空工程已选
|
||||
this.proOptions = [] // 清空原有下拉
|
||||
|
||||
try {
|
||||
// 同时传入分公司和项目部参数
|
||||
const params = {
|
||||
impUnitName: this.queryParams.impUnitName, // 分公司名称
|
||||
departName: this.queryParams.departName, // 项目部名称
|
||||
proName: this.queryParams.proName,
|
||||
teamName:this.queryParams.teamName,
|
||||
subUnitName:this.queryParams.subUnitName,
|
||||
}
|
||||
const res = await getProListByDepartApi(params)
|
||||
this.proOptions = res.data.map(item => ({
|
||||
label: item.proName, // 工程名称字段
|
||||
value: item.proName
|
||||
}))
|
||||
} catch (e) {
|
||||
console.error('获取工程下拉失败:', e)
|
||||
}
|
||||
},
|
||||
/** 项目部选择变化,加载工程 */
|
||||
async getTeamList() {
|
||||
this.queryParams.teamName = null // 清空工程已选
|
||||
this.teamOptions = [] // 清空原有下拉
|
||||
|
||||
try {
|
||||
// 同时传入分公司和项目部参数
|
||||
const params = {
|
||||
impUnitName: this.queryParams.impUnitName, // 分公司名称
|
||||
departName: this.queryParams.departName, // 项目部名称
|
||||
proName: this.queryParams.proName,
|
||||
teamName:this.queryParams.teamName,
|
||||
subUnitName:this.queryParams.subUnitName,
|
||||
}
|
||||
const res = await getTeamList(params)
|
||||
this.teamOptions = res.data.map(item => ({
|
||||
label: item.teamName, // 工程名称字段
|
||||
value: item.teamName
|
||||
}))
|
||||
} catch (e) {
|
||||
console.error('获取工程下拉失败:', e)
|
||||
}
|
||||
},
|
||||
async getSubUnitList() {
|
||||
this.queryParams.subUnitName = null // 清空工程已选
|
||||
this.subUnitOptions = [] // 清空原有下拉
|
||||
|
||||
try {
|
||||
// 同时传入分公司和项目部参数
|
||||
const params = {
|
||||
impUnitName: this.queryParams.impUnitName, // 分公司名称
|
||||
departName: this.queryParams.departName, // 项目部名称
|
||||
proName: this.queryParams.proName,
|
||||
teamName:this.queryParams.teamName,
|
||||
subUnitName:this.queryParams.subUnitName,
|
||||
}
|
||||
const res = await getSubUnitList(params)
|
||||
this.subUnitOptions = res.data.map(item => ({
|
||||
label: item.subUnitName,
|
||||
value: item.subUnitName
|
||||
}))
|
||||
} catch (e) {
|
||||
console.error('获取工程下拉失败:', e)
|
||||
}
|
||||
},
|
||||
getDeviceType() {
|
||||
getDeviceType({ level: 3, skipPermission: 1 }).then(response => {
|
||||
let matNameRes = response.data
|
||||
this.materialNameList = matNameRes.map((item) => {
|
||||
return {
|
||||
label: item.typeName,
|
||||
value: item.typeId
|
||||
}
|
||||
})
|
||||
})
|
||||
getDeviceType({ level: 4, skipPermission: 1 }).then(response => {
|
||||
let matModelRes = response.data
|
||||
this.materialModelList = matModelRes.map((item) => {
|
||||
return {
|
||||
label: item.typeName,
|
||||
value: item.typeId
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
// change设备类型
|
||||
handleMaModel(e) {
|
||||
this.queryParams.typeModelName=null
|
||||
this.materialModelList = []
|
||||
let typeId = null
|
||||
if (!e) {
|
||||
typeId = null
|
||||
} else {
|
||||
typeId = this.materialNameList.find(item => item.label == e).value
|
||||
}
|
||||
console.log('🚀 ~ handleMaModel ~ typeId:', typeId)
|
||||
getDeviceType({ level: 4, skipPermission: 1, typeId }).then(response => {
|
||||
let matModelRes = response.data
|
||||
this.materialModelList = matModelRes.map((item) => {
|
||||
return {
|
||||
label: item.typeName,
|
||||
value: item.typeId
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
// 获取列表
|
||||
async getList() {
|
||||
this.loading = true
|
||||
|
|
@ -287,6 +535,7 @@ export default {
|
|||
resetQuery() {
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
this.handleMaModel()
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue