采集地址穿梭框改为显示同品牌全部机床,可从其他地址转移机床

main
haoliang 1 week ago
parent 74b611d6e1
commit f015afe301

@ -34,7 +34,7 @@
<el-transfer <el-transfer
v-model="form.machineIds" v-model="form.machineIds"
:data="transferMachines" :data="transferMachines"
:titles="['可关联机床', '已关联']" :titles="['同品牌机床', '已关联']"
:props="{ key: 'id', label: 'label' }" :props="{ key: 'id', label: 'label' }"
filterable filterable
filter-placeholder="搜索机床" filter-placeholder="搜索机床"
@ -99,27 +99,22 @@ async function onBrandChange(){
await loadTransferData(form.brandId, editingId.value ?? undefined) await loadTransferData(form.brandId, editingId.value ?? undefined)
} }
/** 加载穿梭框:同品牌下未关联其他地址的机床 + 当前地址已关联的机床 */ /** 加载穿梭框:同品牌全部机床 */
async function loadTransferData(brandId?: number, addressId?: number){ async function loadTransferData(brandId?: number, addressId?: number){
if(!brandId){ transferMachines.value=[]; return } if(!brandId){ transferMachines.value=[]; return }
try{ try{
//
const brandName = brandList.value.find((b: any) => b.id === brandId)?.brandName ?? '' const brandName = brandList.value.find((b: any) => b.id === brandId)?.brandName ?? ''
const rAll: any = await request.get('/admin/machine', {params: {brandName, pageSize: 999}}) const rAll: any = await request.get('/admin/machine', {params: {brandName, pageSize: 999}})
const allMachines = rAll.data?.items ?? [] const allMachines = rAll.data?.items ?? []
// ID
const freeMachines = allMachines.filter((m: any) => !m.collectAddressId || m.collectAddressId === 0)
const freeIds = new Set(freeMachines.map((m: any) => m.id))
// //
let ownIds = new Set<number>()
if(addressId){ if(addressId){
try{
const rOwn: any = await request.get(`/admin/collect-address/${addressId}/machines`) const rOwn: any = await request.get(`/admin/collect-address/${addressId}/machines`)
const items = rOwn.data?.items ?? [] const items = rOwn.data?.items ?? []
ownIds = new Set(items.map((m: any) => m.machineId))
form.machineIds = items.map((m: any) => m.machineId) form.machineIds = items.map((m: any) => m.machineId)
}catch{}
} }
transferMachines.value = allMachines transferMachines.value = allMachines
.filter((m: any) => freeIds.has(m.id) || ownIds.has(m.id))
.map((m: any) => ({ id: m.id, name: m.name, label: m.name, deviceCode: m.deviceCode, isOnline: m.isOnline, isEnabled: m.isEnabled })) .map((m: any) => ({ id: m.id, name: m.name, label: m.name, deviceCode: m.deviceCode, isOnline: m.isOnline, isEnabled: m.isEnabled }))
}catch{ transferMachines.value=[] } }catch{ transferMachines.value=[] }
} }

Loading…
Cancel
Save