refactor(wms): 优化钢卷操作界面组件和交互逻辑

替换通用选择器为专用组件,优化按钮加载状态
统一操作后的页面返回延迟时间
This commit is contained in:
砂糖
2025-11-18 15:15:05 +08:00
parent 1a5eadd99e
commit cb77562cdf
4 changed files with 68 additions and 53 deletions

View File

@@ -121,37 +121,34 @@
</el-form-item>
<el-form-item v-if="item.materialType === '成品'" label="质量状态" prop="qualityStatus">
<el-input v-model="item.qualityStatus" placeholder="请输入质量状态"
:disabled="readonly">
<el-input v-model="item.qualityStatus" placeholder="请输入质量状态" :disabled="readonly">
</el-input>
</el-form-item>
<el-form-item v-if="item.materialType === '成品'" label="切边要求" prop="trimmingRequirement">
<el-input v-model="item.trimmingRequirement" placeholder="请输入切边要求"
:disabled="readonly">
<el-input v-model="item.trimmingRequirement" placeholder="请输入切边要求" :disabled="readonly">
</el-input>
</el-form-item>
<el-form-item v-if="item.materialType === '成品'" label="打包状态" prop="packingStatus">
<el-input v-model="item.packingStatus" placeholder="请输入打包状态"
:disabled="readonly">
<el-input v-model="item.packingStatus" placeholder="请输入打包状态" :disabled="readonly">
</el-input>
</el-form-item>
<el-form-item v-if="item.materialType === '成品'" label="包装要求" prop="packagingRequirement">
<el-input v-model="item.packagingRequirement" placeholder="请输入包装要求"
:disabled="readonly">
<el-input v-model="item.packagingRequirement" placeholder="请输入包装要求" :disabled="readonly">
</el-input>
</el-form-item>
<!-- 物品类型由材料类型自动决定不显示选择框 -->
<el-form-item :label="getItemLabel(item.materialType)" :required="item.materialType !== '废品'">
<el-select v-model="item.itemId" :placeholder="getItemPlaceholder(item.materialType)" filterable
remote :remote-method="(query) => searchItemsForSplit(query, index)" :loading="itemSearchLoading"
style="width: 100%" :disabled="readonly || !item.materialType">
<el-option v-for="option in getItemListForSplit(item.itemType)" :key="option.id"
:label="option.name" :value="option.id" />
</el-select>
<raw-material-select v-if="item.materialType === '原料' || item.materialType === '废品'"
v-model="item.itemId" placeholder="请选择原料" style="width: 100%" clearable
:disabled="readonly || !item.materialType" />
<product-select v-else-if="item.materialType === '成品'" v-model="item.itemId"
placeholder="请选择成品" style="width: 100%" clearable
:disabled="readonly || !item.materialType" />
<div v-else>请先选择物料类型</div>
</el-form-item>
<el-form-item label="毛重(t)" required>
@@ -205,12 +202,16 @@ import { listProductWithBom } from '@/api/wms/product';
import { completeAction } from '@/api/wms/pendingAction';
import CoilSelector from '@/components/CoilSelector';
import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect";
import RawMaterialSelect from "@/components/KLPService/RawMaterialSelect";
import ProductSelect from "@/components/KLPService/ProductSelect";
export default {
name: 'SplitCoil',
components: {
CoilSelector,
ActualWarehouseSelect
ActualWarehouseSelect,
RawMaterialSelect,
ProductSelect,
},
data() {
return {
@@ -618,7 +619,7 @@ export default {
// 延迟返回,让用户看到成功提示
setTimeout(() => {
this.$router.back();
}, 1000);
}, 100);
} else {
this.$message.error(response.msg || '分条保存失败');
}