feat: 库位按物料公司白名单显示——WarehouseSelector 支持 allowedTopPrefixes,IRIS 仅显 Y、LICA 显 C/L

This commit is contained in:
yueli
2026-09-04 11:02:03 +08:00
parent 7cdc0bc3a1
commit 8e561836eb
5 changed files with 52 additions and 6 deletions

View File

@ -384,7 +384,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="库位" prop="warehouse_location">
<WarehouseSelector v-model="form.warehouse_location" />
<WarehouseSelector v-model="form.warehouse_location" :allowed-top-prefixes="allowedLocPrefixes" />
</el-form-item>
</el-col>
</el-row>
@ -806,6 +806,7 @@ import {getLabelPreview, executePrint} from '@/api/common/print'
import { usePasteUpload } from '@/hooks/usePasteUpload'
import WebRtcCamera from '@/components/Camera/WebRtcCamera.vue'
import WarehouseSelector from '@/components/WarehouseSelector.vue'
import { getAllowedLocPrefixes } from '@/utils/warehouseCompany'
import SmartScannerDialog from '@/components/SmartScannerDialog.vue'
import { useUserStore } from '@/stores/user'
@ -1166,6 +1167,9 @@ const handleCheckAllChange = (val: boolean) => {
}
};
// 按物料公司限制可选库位顶层前缀(IRIS→Y,LICA→C/L,未配置→全部)
const allowedLocPrefixes = computed(() => getAllowedLocPrefixes(form.company_name))
const form = reactive({
id: undefined, base_id: undefined as number | undefined,
company_name: '',

View File

@ -354,7 +354,7 @@
<el-row :gutter="24">
<el-col :span="6"><el-form-item label="SKU" prop="sku"><el-input v-model="form.sku" placeholder="自动生成" disabled /></el-form-item></el-col>
<el-col :span="6"><el-form-item label="库位" prop="warehouse_location">
<WarehouseSelector v-model="form.warehouse_location" />
<WarehouseSelector v-model="form.warehouse_location" :allowed-top-prefixes="allowedLocPrefixes" />
</el-form-item></el-col>
<el-col :span="6"><el-form-item label="入库日期"><el-date-picker v-model="form.in_date" type="date" value-format="YYYY-MM-DD" style="width:100%" disabled /></el-form-item></el-col>
</el-row>
@ -614,6 +614,7 @@ import {
import { uploadFile, deleteFile } from '@/api/inbound/buy'
import WebRtcCamera from '@/components/Camera/WebRtcCamera.vue'
import WarehouseSelector from '@/components/WarehouseSelector.vue'
import { getAllowedLocPrefixes } from '@/utils/warehouseCompany'
import SmartScannerDialog from '@/components/SmartScannerDialog.vue'
import TrackScanDialog from '@/components/TrackScanDialog.vue'
import { getLabelPreview, executePrint } from '@/api/common/print'
@ -929,6 +930,9 @@ const displayData = computed(() => {
const defaultVisibleCols = ['company_name', 'material_name', 'sku', 'warehouse_loc', 'serial_number', 'in_quantity', 'stock_quantity', 'available_quantity', 'status', 'quality_status', 'product_photo', 'sale_price', 'order_id']
// 按物料公司限制可选库位顶层前缀(IRIS→Y,LICA→C/L,未配置→全部)
const allowedLocPrefixes = computed(() => getAllowedLocPrefixes(form.company_name))
const form = reactive({
id: undefined, base_id: undefined as number | undefined,
company_name: '', // [新增]

View File

@ -393,7 +393,7 @@
<el-col :span="6"><el-form-item label="编码/SKU" prop="sku"><el-input v-model="form.sku" placeholder="系统自动生成" disabled/></el-form-item></el-col>
<el-col :span="6"><el-form-item label="入库日期" prop="in_date"><el-date-picker v-model="form.in_date" type="date" value-format="YYYY-MM-DD" style="width:100%" disabled/></el-form-item></el-col>
<el-col :span="6"><el-form-item label="库位" prop="warehouse_location">
<WarehouseSelector v-model="form.warehouse_location" />
<WarehouseSelector v-model="form.warehouse_location" :allowed-top-prefixes="allowedLocPrefixes" />
</el-form-item></el-col>
</el-row>
@ -658,6 +658,7 @@ import {
import { uploadFile, deleteFile } from '@/api/inbound/buy'
import WebRtcCamera from '@/components/Camera/WebRtcCamera.vue'
import WarehouseSelector from '@/components/WarehouseSelector.vue'
import { getAllowedLocPrefixes } from '@/utils/warehouseCompany'
import SmartScannerDialog from '@/components/SmartScannerDialog.vue'
import TrackScanDialog from '@/components/TrackScanDialog.vue'
import {getLabelPreview, executePrint} from '@/api/common/print'
@ -973,6 +974,9 @@ const handleCheckAllChange = (val: boolean) => {
const defaultColumns = ['company_name', 'material_name', 'spec_model', 'unit', 'inbound_date', 'sn_bn', 'status', 'quality_status', 'bom_code', 'work_order_code', 'stock_quantity', 'available_quantity', 'unit_total_cost', 'arrival_photo', 'quality_report_link']
// 按物料公司限制可选库位顶层前缀(IRIS→Y,LICA→C/L,未配置→全部)
const allowedLocPrefixes = computed(() => getAllowedLocPrefixes(form.company_name))
const form = reactive({
id: undefined, base_id: undefined as number | undefined,
company_name: '',