<template>
|
<vol-box v-model="show" title="空托出库" :width="800" :height="1200">
|
<template #content>
|
<el-form ref="form" :model="form" label-width="90px">
|
<el-form-item label="出库区域:">
|
<el-select v-model="locationType" placeholder="请选择出库区域">
|
<el-option
|
v-for="item in locationTypes"
|
:key="item.locationType"
|
:label="item.locationTypeDesc.toString()"
|
:value="item.locationType">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<el-form ref="form" :model="form" label-width="90px">
|
<el-form-item label="出库数量:">
|
<el-input-number
|
v-model="num"
|
:min="1"
|
:max="999"
|
:controls="true"
|
placeholder="请选择出库数量"
|
style="width: 100%;">
|
</el-input-number>
|
</el-form-item>
|
</el-form>
|
|
<!-- ===================== 新增:供应商编码(实时搜索下拉) ===================== -->
|
<el-form ref="form" :model="form" label-width="90px">
|
<el-form-item label="供应商编码:">
|
<el-select
|
v-model="supplierCode"
|
filterable
|
remote
|
reserve-keyword
|
placeholder="请输入/选择供应商编码"
|
:remote-method="remoteSearchSupplier"
|
style="width: 100%"
|
>
|
<el-option
|
v-for="item in supplierList"
|
:key="item"
|
:label="item"
|
:value="item"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<!-- ======================================================================== -->
|
|
</template>
|
<template #footer>
|
<div>
|
<el-button
|
type="danger"
|
size="small"
|
plain
|
@click="submit"
|
:loading="isSubmitting"
|
:disabled="isSubmitting">
|
<i class="el-icon-check">确认</i>
|
</el-button>
|
<el-button
|
size="small"
|
type="primary"
|
plain
|
@click="() => { this.show = false }">
|
<i class="el-icon-close">关闭</i>
|
</el-button>
|
</div>
|
</template>
|
</vol-box>
|
</template>
|
|
<script>
|
import VolBox from '@/components/basic/VolBox.vue'
|
export default {
|
components: {
|
'vol-box': VolBox
|
},
|
data() {
|
return {
|
num: 1,
|
show: false,
|
locationTypes: [],
|
locationType: "",
|
isSubmitting: false,
|
// ================= 新增 =================
|
supplierCode: '', // 供应商编码绑定
|
supplierList: [] // 下拉列表
|
// =======================================
|
}
|
},
|
methods: {
|
open() {
|
this.show = true
|
this.getData();
|
},
|
submit() {
|
if (!this.locationType) {
|
this.$message.warning('请选择出库区域');
|
return;
|
}
|
|
this.isSubmitting = true;
|
|
this.$emit('parentCall', ($vue) => {
|
// ===================== 改造接口:带上 supplierCode =====================
|
this.http.post(
|
`/api/Task/PalletOutboundTask?num=${this.num}&locationType=${this.locationType}&SupplierCode=${this.supplierCode || ''}`,
|
{}, '数据处理中...')
|
// ====================================================================
|
.then((x) => {
|
if (!x.status) {
|
this.$message.error(x.message)
|
} else {
|
this.show = false
|
this.$Message.success(x.message)
|
$vue.refresh();
|
}
|
})
|
.catch((error) => {
|
this.$message.error('请求失败,请稍后重试');
|
console.error('提交失败:', error);
|
})
|
.finally(() => {
|
this.isSubmitting = false;
|
});
|
})
|
},
|
getData() {
|
this.http.post("api/LocationInfo/GetLocationTypes", null, "查询中")
|
.then((x) => {
|
this.locationTypes = x.data;
|
})
|
},
|
|
remoteSearchSupplier(keyword) {
|
if (!keyword) {
|
this.supplierList = [];
|
return;
|
}
|
// 调用后端实时搜索接口
|
this.http.get(`/api/Task/SearchSupplierCode?keyword=${keyword}`)
|
.then(res => {
|
if (res.status) {
|
this.supplierList = res.data || [];
|
}
|
})
|
}
|
|
}
|
}
|
</script>
|