Commit bd8d2429 by zhangtw

物料配置风险等级字典

新增统计api
parent d19f3c18
...@@ -42,3 +42,24 @@ export function delInbound(id) { ...@@ -42,3 +42,24 @@ export function delInbound(id) {
method: 'delete' method: 'delete'
}) })
} }
// 首页入库次数统计api
export function inboundCount(){
return request({
url: '/inventory/inbound/inboundCount',
method: 'get'
})
}
// 按数量统计本月入库物料Top前10
export function countQuantity(){
return request({
url: '/inventory/inbound/countQuantity',
method: 'get'
})
}
// 按金额统计本月入库物料Top前10
export function countMoney(){
return request({
url: '/inventory/inbound/countMoney',
method: 'get'
})
}
...@@ -95,4 +95,12 @@ export function listInventoryDetail(query) { ...@@ -95,4 +95,12 @@ export function listInventoryDetail(query) {
method: 'get', method: 'get',
params: query params: query
}) })
} }
\ No newline at end of file
// 统计库存物料超出预警值
export function exceedWarnValue() {
return request({
url: '/inventory/inventory/exceed',
method: 'get'
})
}
...@@ -85,26 +85,26 @@ ...@@ -85,26 +85,26 @@
@search="handleQuery" @search="handleQuery"
@reset="resetQuery" @reset="resetQuery"
> >
<el-form-item label="物料编码" prop="materialCode"> <!-- <el-form-item label="物料编码" prop="materialCode">
<el-input <el-input
v-model="queryParams.materialCode" v-model="queryParams.materialCode"
placeholder="请输入物料编码" placeholder="请输入物料编码"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item> -->
<el-form-item label="物料名称" prop="materialName"> <el-form-item label="SAP物料号" prop="sapNo">
<el-input <el-input
v-model="queryParams.materialName" v-model="queryParams.sapNo"
placeholder="请输入物料名称" placeholder="请输入SAP物料号"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="SAP物料号" prop="sapNo"> <el-form-item label="物料名称" prop="materialName">
<el-input <el-input
v-model="queryParams.sapNo" v-model="queryParams.materialName"
placeholder="请输入SAP物料号" placeholder="请输入物料名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
...@@ -150,7 +150,15 @@ ...@@ -150,7 +150,15 @@
{{ scope.row.displayCategory || categoryMap[scope.row.categoryCode] || scope.row.categoryCode }} {{ scope.row.displayCategory || categoryMap[scope.row.categoryCode] || scope.row.categoryCode }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="危险类别ID" align="center" prop="hazardId" width="150"/> <el-table-column label="危险类别" align="center" prop="hazardId" width="150">
<template slot-scope="scope">
<el-tag
:type="getDictListClass('danger_type',scope.row.hazardId)"
size="small">
{{ getDictLabel('danger_type',scope.row.hazardId) }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="规格型号" align="center" prop="specification" /> <el-table-column label="规格型号" align="center" prop="specification" />
<el-table-column label="计量单位" align="center" prop="materialUnit" /> <el-table-column label="计量单位" align="center" prop="materialUnit" />
<el-table-column label="单位重量" align="center" prop="unitWeight" /> <el-table-column label="单位重量" align="center" prop="unitWeight" />
...@@ -177,7 +185,15 @@ ...@@ -177,7 +185,15 @@
<el-tag :type="scope.row.isActive === 1 ? 'success' : 'info'" size="mini">{{ scope.row.isActive === 1 ? '是' : '否' }}</el-tag> <el-tag :type="scope.row.isActive === 1 ? 'success' : 'info'" size="mini">{{ scope.row.isActive === 1 ? '是' : '否' }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="风险等级" align="center" prop="riskLevel" /> <el-table-column label="风险等级" align="center" prop="riskLevel" >
<template slot-scope="scope">
<el-tag
:type="getDictListClass('risk_level',scope.row.riskLevel)"
size="small">
{{ getDictLabel('risk_level',scope.row.riskLevel) }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" align="center" prop="sortNo" /> <el-table-column label="排序" align="center" prop="sortNo" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -255,7 +271,15 @@ ...@@ -255,7 +271,15 @@
<el-input v-model="form.maxStockLevel" placeholder="请输入最高库存" /> <el-input v-model="form.maxStockLevel" placeholder="请输入最高库存" />
</el-form-item> </el-form-item>
<el-form-item label="风险等级" prop="riskLevel"> <el-form-item label="风险等级" prop="riskLevel">
<el-input v-model="form.riskLevel" placeholder="请输入风险等级" /> <el-select v-model="form.riskLevel" placeholder="请选择风险等级" clearable>
<el-option
v-for="dict in dict.type.risk_level"
:key="dict.value"
:label="dict.label"
:value="dict.value"
>
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否序列号管理" prop="isSerialManaged"> <el-form-item label="是否序列号管理" prop="isSerialManaged">
<el-radio-group v-model="form.isSerialManaged"> <el-radio-group v-model="form.isSerialManaged">
...@@ -285,8 +309,16 @@ ...@@ -285,8 +309,16 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="危险类别ID" prop="hazardId"> <el-form-item label="危险类别" prop="hazardId">
<el-input v-model="form.hazardId" placeholder="请输入危险类别ID" /> <el-select v-model="form.hazardId" placeholder="请选择危险类别" clearable>
<el-option
v-for="dict in dict.type.danger_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
>
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="计量单位" prop="materialUnit"> <el-form-item label="计量单位" prop="materialUnit">
<el-input v-model="form.materialUnit" placeholder="请输入计量单位" /> <el-input v-model="form.materialUnit" placeholder="请输入计量单位" />
...@@ -346,6 +378,7 @@ import request from '@/utils/request' ...@@ -346,6 +378,7 @@ import request from '@/utils/request'
export default { export default {
name: "Materials", name: "Materials",
dicts: ['danger_type','risk_level'],
components: { components: {
TreeComponent, TreeComponent,
Splitpanes, Splitpanes,
...@@ -455,6 +488,20 @@ export default { ...@@ -455,6 +488,20 @@ export default {
this.getList() this.getList()
}, },
methods: { methods: {
getDictLabel(dictType, value) {
// 1. 空值/字典不存在时返回默认值
if (!value || !this.dict?.type?.[dictType]) return '-';
// 2. 从字典数组中匹配 value 对应的 label
const dictItem = this.dict.type[dictType].find(item => item.value === value);
return dictItem?.label || '-';
},
getDictListClass(dictType, value){
// 1. 空值/字典不存在时返回默认值
if (!value || !this.dict?.type?.[dictType]) return '-';
// 2. 从字典数组中匹配 value 对应的 label
const dictItem = this.dict.type[dictType].find(item => item.value === value);
return dictItem?.raw?.listClass || '';
},
async getCategoryList() { async getCategoryList() {
try { try {
const response = await listMaterials_category({ const response = await listMaterials_category({
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论