This commit is contained in:
parent
2978e8ab90
commit
ae65a5d711
|
|
@ -773,3 +773,49 @@ export function getListDetailsApi(data) {
|
||||||
params: 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="">
|
<div class="app-container" id="">
|
||||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
|
||||||
<el-form-item label="分公司" prop="impUnitName">
|
<el-form-item label="分公司" prop="impUnitName">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.impUnitName"
|
v-model="queryParams.impUnitName"
|
||||||
placeholder="请输入分公司"
|
placeholder="请选择分公司"
|
||||||
clearable
|
clearable
|
||||||
:maxlength="50"
|
filterable
|
||||||
style="width: 240px"
|
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>
|
||||||
|
|
||||||
<el-form-item label="项目部" prop="departName">
|
<el-form-item label="项目部" prop="departName">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.departName"
|
v-model="queryParams.departName"
|
||||||
placeholder="请输入项目部"
|
placeholder="请选择项目部"
|
||||||
clearable
|
clearable
|
||||||
:maxlength="50"
|
filterable
|
||||||
style="width: 240px"
|
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>
|
||||||
|
|
||||||
|
|
||||||
<el-form-item label="工程" prop="proName">
|
<el-form-item label="工程" prop="proName">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.proName"
|
v-model="queryParams.proName"
|
||||||
placeholder="请输入工程"
|
placeholder="请选择工程"
|
||||||
clearable
|
clearable
|
||||||
:maxlength="50"
|
filterable
|
||||||
style="width: 240px"
|
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>
|
||||||
|
|
||||||
<el-form-item label="分包单位" prop="subUnitName">
|
<el-form-item label="分包单位" prop="subUnitName">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.subUnitName"
|
v-model="queryParams.subUnitName"
|
||||||
placeholder="请输入分包单位"
|
placeholder="请选择分包单位"
|
||||||
clearable
|
clearable
|
||||||
:maxlength="50"
|
filterable
|
||||||
style="width: 240px"
|
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>
|
||||||
|
|
||||||
<el-form-item label="班组名称" prop="teamName">
|
<el-form-item label="班组名称" prop="teamName">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.teamName"
|
v-model="queryParams.teamName"
|
||||||
placeholder="请输入班组名称"
|
placeholder="请选择班组"
|
||||||
clearable
|
clearable
|
||||||
:maxlength="50"
|
filterable
|
||||||
style="width: 240px"
|
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>
|
||||||
|
|
||||||
<el-form-item label="物资名称" prop="typeName">
|
<el-form-item label="物资名称" prop="typeName">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.typeName"
|
v-model="queryParams.typeName"
|
||||||
placeholder="请输入物资名称"
|
placeholder="请选择物资名称"
|
||||||
clearable
|
clearable
|
||||||
:maxlength="50"
|
filterable
|
||||||
style="width: 240px"
|
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>
|
||||||
|
|
||||||
<el-form-item label="规格型号" prop="typeModelName">
|
<el-form-item label="规格型号" prop="typeModelName">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.typeModelName"
|
v-model="queryParams.typeModelName"
|
||||||
placeholder="请输入规格型号"
|
placeholder="请选择规格型号"
|
||||||
clearable
|
clearable
|
||||||
:maxlength="50"
|
filterable
|
||||||
style="width: 240px"
|
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-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
|
||||||
|
|
@ -87,18 +147,30 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tip-box">
|
<div class="tip-box">
|
||||||
<div class="tip-num">{{ tipForm.allNum || 0 }}</div>
|
<div class="tip-num">{{ tipForm.countNum || 0 }}</div>
|
||||||
<div class="tip-text">总保有量</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>
|
||||||
|
|
||||||
<div class="tip-box">
|
<div class="tip-box">
|
||||||
<div class="tip-num">{{ tipForm.inNum || 0 }}</div>
|
<div class="tip-num">{{ tipForm.inCountNum || 0 }}</div>
|
||||||
<div class="tip-text">站内数量</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>
|
||||||
|
|
||||||
<div class="tip-box">
|
<div class="tip-box">
|
||||||
<div class="tip-num">{{ tipForm.useNum || 0 }}</div>
|
<div class="tip-num">{{ tipForm.useCountNum || 0 }}</div>
|
||||||
<div class="tip-text">在用数量</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>
|
||||||
</div>
|
</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -133,6 +205,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="物资名称" align="center" prop="typeName" :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="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="unit" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="数量" align="center" prop="allNum" :show-overflow-tooltip="true">
|
<el-table-column label="数量" align="center" prop="allNum" :show-overflow-tooltip="true">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
@ -201,7 +274,13 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<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 {
|
export default {
|
||||||
name: '',
|
name: '',
|
||||||
dicts: [],
|
dicts: [],
|
||||||
|
|
@ -241,7 +320,13 @@ export default {
|
||||||
teamNum: 0, // 班组总数
|
teamNum: 0, // 班组总数
|
||||||
allNum: 0, // 总保有量
|
allNum: 0, // 总保有量
|
||||||
inNum: 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,
|
pageSize: 10,
|
||||||
keyWord: undefined
|
keyWord: undefined
|
||||||
},
|
},
|
||||||
dialogTotal: 0
|
dialogTotal: 0,
|
||||||
|
impUnitOptions: [], // 分公司下拉
|
||||||
|
departOptions: [], // 项目部下拉
|
||||||
|
proOptions: [], // 工程下拉
|
||||||
|
subUnitOptions: [], // 分包单位下拉
|
||||||
|
teamOptions: [], // 班组下拉
|
||||||
|
materialNameList: [],
|
||||||
|
materialModelList: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList()
|
this.getList()
|
||||||
|
this.getImpUnitOptions()
|
||||||
|
this.handleImpUnitChange()
|
||||||
|
this.handleDepartChange()
|
||||||
|
this.getTeamList()
|
||||||
|
this.getSubUnitList()
|
||||||
|
this.getDeviceType()
|
||||||
},
|
},
|
||||||
methods: {
|
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() {
|
async getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|
@ -287,6 +535,7 @@ export default {
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.resetForm('queryForm')
|
this.resetForm('queryForm')
|
||||||
this.handleQuery()
|
this.handleQuery()
|
||||||
|
this.handleMaModel()
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue