refactor: 清理MES端本地product_type冗余代码,对齐WMS主数据架构
1. 移除MES端本地product_type实体、schema及相关CRUD代码,改为通过WMS内部API代理获取物料主数据 2. 更新物料管理粒度逻辑,新增"其他"类型(3)支持,同步更新入库校验规则 3. 修复前端物料选择、库存筛选等页面的类型判断逻辑,统一使用manage_mode区分管理类型 4. 清理静态资源文件冗余的样式代码,调整前端页面展示逻辑 5. 更新帮助文档,修正物料类型的说明描述
This commit is contained in:
@@ -382,7 +382,7 @@ async function saveMaterial() {
|
||||
ElMessage.warning('品类为必填项')
|
||||
return
|
||||
}
|
||||
if (Number(mForm.itemType) !== 4 && !Number(mForm.manageMode)) {
|
||||
if (![1, 2, 3].includes(Number(mForm.manageMode))) {
|
||||
ElMessage.warning('类型为必填项')
|
||||
return
|
||||
}
|
||||
@@ -393,8 +393,8 @@ async function saveMaterial() {
|
||||
if (!okSave) return
|
||||
mSaving.value = true
|
||||
try {
|
||||
// 「其他」类(品类=4)不做 SN,管理粒度固定结构件(1),与后端收敛口径一致
|
||||
const manageMode = Number(mForm.itemType) === 4 ? 1 : Number(mForm.manageMode)
|
||||
// 类型(1结构件/2电气件/3其他)与品类相互独立,原样提交
|
||||
const manageMode = Number(mForm.manageMode)
|
||||
const base = {
|
||||
name: String(mForm.name || '').trim(),
|
||||
spec: String(mForm.spec || '').trim(),
|
||||
@@ -434,10 +434,6 @@ function itemTypeText(t) {
|
||||
function itemTypeTagType(t) {
|
||||
return t === 3 ? 'success' : t === 2 ? 'warning' : t === 4 ? 'danger' : 'info'
|
||||
}
|
||||
// 品类切换:其他类强制按数量管理(不做 SN)
|
||||
function onItemTypeChange(v) {
|
||||
if (Number(v) === 4) mForm.manageMode = 1
|
||||
}
|
||||
|
||||
// 区域维护 / 物料档案共用同一组件:切换菜单时复用,watch(mode, immediate) 保证进入即加载
|
||||
watch(
|
||||
@@ -868,9 +864,10 @@ async function onMaterialFile(e) {
|
||||
@keyup.enter="searchMaterials" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型">
|
||||
<el-select v-model="matFilter.manageMode" placeholder="全部" clearable style="width:120px" @change="searchMaterials">
|
||||
<el-option label="结构件(批次)" :value="1" />
|
||||
<el-option label="电气件(SN)" :value="2" />
|
||||
<el-select v-model="matFilter.manageMode" placeholder="全部" clearable style="width:150px" @change="searchMaterials">
|
||||
<el-option label="结构件(批次管理)" :value="1" />
|
||||
<el-option label="电气件(SN管理)" :value="2" />
|
||||
<el-option label="其他(辅料/工装/试验设备)" :value="3" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="品类">
|
||||
@@ -893,7 +890,7 @@ async function onMaterialFile(e) {
|
||||
<el-button v-if="can('material:create')" type="success" @click="openMatCreate">新增物料</el-button>
|
||||
<el-button v-if="can('material:import')" type="warning" :loading="matImporting" @click="pickMaterialFile">导入</el-button>
|
||||
<el-button v-if="can('material:export')" :loading="matExporting" @click="exportMaterials">导出</el-button>
|
||||
<el-tooltip v-if="can('material:import')" content="Excel 首行表头按名称识别(列顺序可变、可含多余列):图号 | 名称 | 规格 | 单位 | 类型(结构件/电气件) | 品类(原材料/半成品/成品/其他,可选) | 说明(除「说明」「品类」外均为必填)">
|
||||
<el-tooltip v-if="can('material:import')" content="Excel 首行表头按名称识别(列顺序可变、可含多余列):图号 | 名称 | 规格 | 单位 | 类型(结构件/电气件/其他) | 品类(原材料/半成品/成品/其他,可选) | 说明(除「说明」「品类」外均为必填)">
|
||||
<el-link type="info" :underline="false" style="margin-left:4px">导入说明</el-link>
|
||||
</el-tooltip>
|
||||
<input ref="matFileRef" type="file" accept=".xlsx,.xls" style="display:none" @change="onMaterialFile" />
|
||||
@@ -917,8 +914,8 @@ async function onMaterialFile(e) {
|
||||
</el-table-column>
|
||||
<el-table-column label="类型" width="140" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-tag :type="row.itemType === 4 ? 'info' : (row.manageMode === 2 ? 'warning' : 'primary')" size="small">
|
||||
{{ row.itemType === 4 ? '其他' : (row.manageMode === 2 ? '电气件(SN)' : '结构件(批次)') }}
|
||||
<el-tag :type="row.manageMode === 3 ? 'info' : (row.manageMode === 2 ? 'warning' : 'primary')" size="small">
|
||||
{{ row.manageMode === 3 ? '其他' : (row.manageMode === 2 ? '电气件(SN)' : '结构件(批次)') }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -958,7 +955,7 @@ async function onMaterialFile(e) {
|
||||
<el-input v-model="mForm.unit" placeholder="如 个/套" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="品类" required>
|
||||
<el-select v-model="mForm.itemType" placeholder="请选择" style="width:100%" @change="onItemTypeChange">
|
||||
<el-select v-model="mForm.itemType" placeholder="请选择" style="width:100%">
|
||||
<el-option :value="1" label="原材料" />
|
||||
<el-option :value="2" label="半成品" />
|
||||
<el-option :value="3" label="成品" />
|
||||
@@ -966,14 +963,10 @@ async function onMaterialFile(e) {
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" required>
|
||||
<el-select v-model="mForm.manageMode" placeholder="请选择" style="width:100%" :disabled="Number(mForm.itemType) === 4">
|
||||
<template v-if="Number(mForm.itemType) === 4">
|
||||
<el-option :value="1" label="其他(辅料/工装/试验设备)" />
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-option :value="1" label="结构件(批次管理)" />
|
||||
<el-option :value="2" label="电气件(SN 管理)" />
|
||||
</template>
|
||||
<el-select v-model="mForm.manageMode" placeholder="请选择" style="width:100%">
|
||||
<el-option :value="1" label="结构件(批次管理)" />
|
||||
<el-option :value="2" label="电气件(SN 管理)" />
|
||||
<el-option :value="3" label="其他(辅料/工装/试验设备)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="安全库存" required>
|
||||
|
||||
Reference in New Issue
Block a user