feat(组件): 新增多选组件并优化钢卷选择器

新增MutiSelect多选组件,支持逗号分隔字符串绑定
优化CoilSelector组件,使用MutiSelect替换输入框并新增规格字段
移除多处钢种字段显示及输入
增强CoilNo组件,支持悬停显示钢卷详细信息
在收货详情页添加删除按钮功能
This commit is contained in:
砂糖
2025-12-15 11:05:27 +08:00
parent 1cf1b23ca2
commit d90f72c662
9 changed files with 202 additions and 54 deletions

View File

@@ -72,12 +72,6 @@
<el-input size="mini" v-model="formData.status"></el-input>
</el-form-item>
</el-col>
<!-- 钢种 -->
<el-col :span="8">
<el-form-item label="钢种" prop="steelGrade">
<el-input size="mini" v-model="formData.steelGrade"></el-input>
</el-form-item>
</el-col>
<!-- 来料厚度 -->
<el-col :span="8">
<el-form-item label="来料厚度" prop="entryThick">

View File

@@ -161,10 +161,7 @@
<span class="param-label">规格</span>
<span class="param-value">{{ item.rawMaterial.specification }}</span>
</div>
<div class="param-row" v-if="item.rawMaterial.steelGrade">
<span class="param-label">钢种</span>
<span class="param-value">{{ item.rawMaterial.steelGrade }}</span>
</div>
<div class="param-row" v-if="item.rawMaterial.thickness">
<span class="param-label">厚度</span>
<span class="param-value">{{ item.rawMaterial.thickness }}mm</span>

View File

@@ -21,17 +21,21 @@
</el-form-item>
<el-form-item label="产品名称" prop="itemName">
<el-input v-model="queryParams.itemName" placeholder="请输入产品名称" clearable
<muti-select v-model="queryParams.itemName" :options="dict.type.coil_itemname" placeholder="请选择物料" clearable />
</el-form-item>
<el-form-item label="规格" prop="itemSpecification">
<memo-input v-model="queryParams.itemSpecification" storageKey="coilSpec" placeholder="请选择规格" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="材质" prop="itemMaterial">
<el-input v-model="queryParams.itemMaterial" placeholder="请输入材质" clearable
<muti-select v-model="queryParams.itemMaterial" :options="dict.type.coil_material" placeholder="请选择材质" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="厂家" prop="itemManufacturer">
<el-input v-model="queryParams.itemManufacturer" placeholder="请输入厂家" clearable
<muti-select v-model="queryParams.itemManufacturer" :options="dict.type.coil_manufacturer" placeholder="请选择厂家" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
@@ -251,6 +255,8 @@ import MaterialSelect from "@/components/KLPService/MaterialSelect";
import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect";
import { findItemWithBom } from "@/store/modules/category";
import CoilNo from "@/components/KLPService/Renderer/CoilNo.vue";
import MemoInput from "@/components/MemoInput";
import MutiSelect from "@/components/MutiSelect";
export default {
@@ -267,9 +273,11 @@ export default {
CoilTraceResult,
LabelRender,
ActualWarehouseSelect,
CoilNo
CoilNo,
MemoInput,
MutiSelect,
},
dicts: ['product_coil_status'],
dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer'],
props: {
qrcode: {
type: Boolean,
@@ -399,7 +407,8 @@ export default {
{ label: '质量状态', prop: 'qualityStatus' },
{ label: '打包状态', prop: 'packingStatus' },
{ label: '切边要求', prop: 'edgeRequirement' },
{ label: '包装要求', prop: 'packagingRequirement' }
{ label: '包装要求', prop: 'packagingRequirement' },
{ label: '厂家', prop: 'itemManufacturer' },
],
title: '详细信息'
}

View File

@@ -9,10 +9,6 @@
<el-input v-model="queryParams.currentCoilNo" placeholder="请输入卷号" clearable size="small"
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="钢种">
<el-input v-model="queryParams.grade" placeholder="请输入钢种" clearable size="small"
@keyup.enter.native="handleQuery" />
</el-form-item>
<!-- 分页 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />

View File

@@ -43,9 +43,9 @@
</el-form>
<el-table v-loading="loading" border :data="deliveryWaybillList" highlight-current-row>
<el-table-column label="钢卷号" align="center" prop="currentCoilNo" :show-overflow-tooltip="true">
<el-table-column label="钢卷号" align="center" prop="currentCoilNo">
<template slot-scope="scope">
<CoilNo :coil-no="scope.row.currentCoilNo" />
<CoilNo :coil-no="scope.row.currentCoilNo" :coil-id="scope.row.coilId" />
<!-- <el-tag type="info" size="small">{{ scope.row.currentCoilNo }}</el-tag> -->
</template>
</el-table-column>
@@ -86,16 +86,10 @@
<template slot-scope="scope">
<el-button v-if="scope.row.actionStatus == 0 || scope.row.actionStatus == 1" type="primary"
@click="openReceiptModal(scope.row)">签收</el-button>
<el-button v-if="scope.row.actionStatus == 0 || scope.row.actionStatus == 1" type="danger"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit"
@click.stop="handleUpdate(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete"
@click.stop="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column> -->
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
@@ -143,7 +137,7 @@
<script>
import { updateMaterialCoilSimple, getMaterialCoil } from '@/api/wms/coil'
import { listPendingAction, updatePendingAction } from '@/api/wms/pendingAction'
import { listPendingAction, updatePendingAction, delPendingAction } from '@/api/wms/pendingAction'
import { listDeliveryPlan } from '@/api/wms/deliveryPlan'
import MemoInput from "@/components/MemoInput";
import ImportGuide from "@/views/wms/receive/components/ImportGuide.vue";
@@ -320,6 +314,20 @@ export default {
// 转换为树形数据格式
this.planTreeData = response.rows;
this.planLoading = false;
// 后台加载每一条钢卷的明细
});
},
handleDelete(row) {
this.$modal.confirm("确认删除吗?", "删除确认", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
delPendingAction(row.actionId).then(response => {
this.$modal.msgSuccess("删除成功");
this.getList();
});
});
},
@@ -385,21 +393,6 @@ export default {
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const waybillIds = row.waybillId || this.ids;
this.$modal.confirm('是否确认删除收货单编号为"' + waybillIds + '"的数据项?').then(() => {
this.loading = true;
return delDeliveryWaybill(waybillIds);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('wms/deliveryWaybill/export', {