feat(产品工单管理): 添加物料选择下拉框并调整字段显示

- 在查询条件中添加物料选择下拉框,替代原有的产品名称和编号输入框
- 调整表格列顺序和宽度,优化显示效果
- 将"原材料批次"字段标签改为"原料领料批次"
- 修改相关字段的提示信息和校验规则
This commit is contained in:
2026-02-02 19:03:27 +08:00
parent eb6256827b
commit 56df191d98
2 changed files with 44 additions and 12 deletions

View File

@@ -59,8 +59,9 @@
</el-row>
<el-table :data="dataList" v-loading="loading" border header-cell-class-name="el-table-header-cell" highlight-current-row @sort-change="sortChange">
<el-table-column prop="orderNoMes" label="订单号" align="center" v-if="columns.showColumn('orderNoMes')" min-width="150" />
<el-table-column prop="importDate" label="导入日期" v-if="columns.showColumn('importDate')" min-width="120" />
<el-table-column prop="orderNoMes" label="订单号" align="center" v-if="columns.showColumn('orderNoMes')" min-width="150" />
<el-table-column prop="purchaseOrderErp" label="采购单号" align="center" v-if="columns.showColumn('purchaseOrderErp')" min-width="150" />
<el-table-column prop="status" label="状态" align="center" v-if="columns.showColumn('status')" min-width="100">
<template #default="scope">

View File

@@ -42,16 +42,22 @@
<el-form-item label="订单号" prop="customerOrder">
<el-input v-model.trim="queryParams.customerOrder" clearable placeholder="请输入订单号" />
</el-form-item>
<el-form-item label="原料批次" prop="feedOrder">
<el-input v-model.trim="queryParams.feedOrder" clearable placeholder="请输入原料批次" />
<el-form-item label="原料领料批次" prop="feedOrder">
<el-input v-model.trim="queryParams.feedOrder" clearable placeholder="请输入原料领料批次" />
</el-form-item>
</div>
<el-form-item label="产品名称" prop="productionName">
<el-input v-model.trim="queryParams.productionName" clearable placeholder="请输入产品名称" />
<!-- <el-form-item label="主体品名" prop="productionName">
<el-input v-model.trim="queryParams.productionName" clearable placeholder="请输入主体品名" />
</el-form-item>
<el-form-item label="产品编号" prop="productionCode">
<el-input v-model.trim="queryParams.productionCode" clearable placeholder="请输入产品编号" />
<el-form-item label="主体型号" prop="productionCode">
<el-input v-model.trim="queryParams.productionCode" clearable placeholder="请输入主体型号" />
</el-form-item> -->
<!-- 调整为下拉选择传参为 materialCode -->
<el-form-item label="物料" prop="materialCode">
<el-select v-model="queryParams.materialCode" placeholder="请选择物料">
<el-option label="全部" value="" />
<el-option v-for="(item, index) in allMaterialOptions" :key="index" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button icon="search" type="primary" @click="handleQuery">{{ $t('btn.search') }}</el-button>
@@ -94,8 +100,8 @@
<el-link @click="handleUpdate(scope.row)" type="primary">{{ scope.row.workorder }}</el-link>
</template>
</el-table-column>
<el-table-column prop="productionName" label="主体品名" width="240" />
<el-table-column prop="productionCode" label="主体型号" width="160" />
<el-table-column prop="productionName" label="主体品名" width="280" />
<el-table-column prop="productionCode" label="主体型号" width="180" />
<el-table-column prop="stoveCode" label="炉号" width="100" />
<el-table-column prop="planNum" align="center" label="计划数" width="60" />
<el-table-column prop="shipmentNum" align="center" label="出货数" width="60" />
@@ -391,6 +397,7 @@ import {
WorkOrderLog,
printByBarTender
} from '@/api/productManagement/proworkorder.js'
import { getMaterialOption } from '@/api/materialManagement/productionMaterial/mminventory.js'
import { getOneDict } from '@/utils/dict.js'
import { downFile } from '@/utils/request.js'
@@ -410,6 +417,7 @@ const queryParams = reactive({
groupCode: '',
workorderDate: [proxy.dayjs(), proxy.dayjs()],
status: -1,
materialCode: '',
sort: 'sort',
sortType: 'asc'
})
@@ -464,6 +472,28 @@ function getAllGroupSelectOptions() {
getAllGroupSelectOptions()
// ==================================
// =========== 获取所有物料 ==========
const allMaterialOptions = ref([])
function getMaterialCodeList() {
try {
getMaterialOption('materialCode').then((res) => {
const { code, data } = res
if (code == 200) {
allMaterialOptions.value = data.map((item) => {
return {
id: item.id,
label: `${item.type || ''} ${item.materialCode} ${item.materialName} [${item.supplierName || ''}]`,
value: item.materialCode
}
})
}
})
} catch (error) {
proxy.$modal.msgError(error.message)
}
}
// ==================================
// 校验搜索
function handleCheck() {
loading.value = true
@@ -533,7 +563,7 @@ function sortChange(column) {
}
function tableCellClassName({ row, column, rowIndex, columnIndex }) {
if (row.isMatch_material_name === null && column.label === '品名') {
if (row.isMatch_material_name === null && column.label === '主体品名') {
return 'danger-cell-1'
}
if (row.isMatch_material_code === null && column.label === '物料编号') {
@@ -561,7 +591,7 @@ const state = reactive({
multiple: true,
form: {},
rules: {
productionName: [{ required: true, message: '品名不能为空', trigger: 'blur' }],
productionName: [{ required: true, message: '主体品名不能为空', trigger: 'blur' }],
productionCode: [{ required: true, message: '物料编号不能为空', trigger: 'blur' }],
deliveryNum: [{ required: true, message: '交互数量不能为空', trigger: 'blur' }],
groupCode: [{ required: true, message: '组别不能为空', trigger: 'blur' }],
@@ -1021,6 +1051,7 @@ function handleShipmentSubmit(data) {
}
// initDict()
getMaterialCodeList()
handleQuery()
</script>