feat(组件): 增强物料选择组件功能并优化样式

- 为ProductSelect、MaterialSelect和RawMaterialSelect组件添加多选支持
- 优化el-select组件样式,调整高度和标签显示宽度
- 在QRCode组件中添加内容变化监听自动生成二维码
- 在标签预览组件中添加qrcodeRecordId字段
- 在基础面板中添加物料多选查询和状态筛选功能
This commit is contained in:
砂糖
2025-11-01 13:02:42 +08:00
parent 66b740288b
commit 6cb591a7ce
8 changed files with 98 additions and 23 deletions

View File

@@ -1,7 +1,7 @@
<template>
<span>
<el-select v-model="selected" :placeholder="placeholder" filterable clearable :loading="loading" size="large"
style="width: 100%" :value-key="'rawMaterialId'">
<el-select v-model="selected" :placeholder="placeholder" filterable clearable :loading="loading" size="mini"
style="width: 100%" :value-key="'rawMaterialId'" :multiple="multiple" collapse-tags>
<template #empty>
<el-button v-if="canAdd" @click="add" icon="el-icon-plus">未搜索到原材料点击添加</el-button>
<div v-else style="padding: 10px;">未搜索到原材料</div>
@@ -63,12 +63,11 @@
import { mapGetters } from "vuex";
import { addRawMaterial } from '@/api/wms/rawMaterial';
import BomPanel from '../BomPanel/index.vue';
import { findItemWithBom } from '@/api/wms/bom';
export default {
name: "RawMaterialSelect",
props: {
value: [String, null],
value: [String, null, Array],
placeholder: {
type: String,
default: "请选择原材料"
@@ -76,7 +75,11 @@ export default {
canAdd: {
type: Boolean,
default: false
}
},
multiple: {
default: false,
type: Boolean
},
},
components: {
BomPanel
@@ -113,10 +116,22 @@ export default {
},
watch: {
value(val) {
this.selected = val;
if (!val) {
this.selected = [];
return;
}
if (this.multiple) {
this.selected = val.split(',') || undefined;
} else {
this.selected = val || undefined;
}
},
selected(val) {
this.$emit("input", val);
if (this.multiple) {
this.$emit("input", val.join(','));
} else {
this.$emit("input", val);
}
this.$emit('change', this.rawMaterialList.find(p => p.rawMaterialId === val));
}
},