常熟吴彦祖 3 months ago
parent
commit
46ebc0827e
  1. 2
      src/api/automatedWarehouse/palletPacking.js
  2. 216
      src/views/modules/automatedWarehouse/palletAssembly.vue
  3. 218
      src/views/modules/automatedWarehouse/palletPacking.vue
  4. 14
      src/views/modules/automatedWarehouse/palletSorting.vue

2
src/api/automatedWarehouse/palletPacking.js

@ -73,3 +73,5 @@ export const getAvailablePositionsForLayer = data => createAPI(`/wcsIntegration/
export const completePalletAssemblyForFenJian = data => createAPI(`/wcsIntegration/completePalletAssemblyForFenJian`,'post',data)
// 调用空托盘到指定站点(选择区域、站点、栈板类型)- rqrq
export const callEmptyPalletToStation = data => createAPI(`/wcsIntegration/callEmptyPalletToStation`,'post',data)

216
src/views/modules/automatedWarehouse/palletAssembly.vue

@ -403,7 +403,7 @@
</div>
</el-dialog>
<!-- Call栈板模态框 -->
<!-- Call栈板模态框 - rqrq -->
<el-dialog
title="调用空托盘"
:visible.sync="callPalletModalVisible"
@ -415,34 +415,57 @@
:append-to-body="true"
>
<div class="call-modal-content">
<!-- 起始站点选择 -->
<!-- 选择区域 - rqrq -->
<div class="input-group">
<label class="input-label">起始站点</label>
<label class="input-label">选择区域</label>
<el-select
v-model="selectedCallStartStation"
placeholder="请选择起始站点"
v-model="selectedCallArea"
placeholder="请选择区域"
style="width: 100%;"
@change="handleCallStartStationChange"
@change="handleCallAreaChange"
>
<el-option
v-for="station in callStartStationOptions"
v-for="area in callAreaOptions"
:key="area.areaId"
:label="area.areaDesc"
:value="area.areaId"
/>
</el-select>
</div>
<!-- 选择站点 - rqrq -->
<div class="input-group">
<label class="input-label">选择站点</label>
<el-select
v-model="selectedCallStation"
placeholder="请选择站点"
style="width: 100%;"
:disabled="!selectedCallArea"
>
<el-option
v-for="station in callStationOptions"
:key="station.stationCode"
:label="`${station.stationCode} - ${station.stationName}`"
:label="`${station.stationId} (${station.stationCode})`"
:value="station.stationCode"
/>
</el-select>
</div>
<!-- 目标站点输入 -->
<!-- 选择栈板类型 - rqrq -->
<div class="input-group">
<label class="input-label">目标站点</label>
<el-input
ref="callTargetStationInput"
v-model="selectedCallTargetStation"
placeholder="请扫描或输入目标站点"
clearable
<label class="input-label">栈板类型</label>
<el-select
v-model="selectedCallPalletType"
placeholder="请选择栈板类型"
style="width: 100%;"
/>
>
<el-option
v-for="type in callPalletTypeOptions"
:key="type.palletType"
:label="`${type.palletType} - ${type.typeDesc}`"
:value="type.palletType"
/>
</el-select>
</div>
</div>
@ -474,9 +497,15 @@ import {
getAvailableAgvStations,
callPalletToStation,
completePalletAssembly,
getAvailablePositionsForLayer
getAvailablePositionsForLayer,
callEmptyPalletToStation // API - rqrq
} from '../../../api/automatedWarehouse/palletPacking'
import {
getAreaOptionsForChange,
getStationsByArea
} from '../../../api/automatedWarehouse/palletChangeStation'
export default {
data() {
return {
@ -524,12 +553,14 @@ export default {
scanOutList: [],
scanOutModalVisible: false,
// Call
// Call - rqrq
callPalletModalVisible: false,
callStartStationOptions: [], // statusDb=1
callTargetStationOptions: [], // statusDb=0
selectedCallStartStation: '',
selectedCallTargetStation: '',
callAreaOptions: [], // - rqrq
callStationOptions: [], // - rqrq
callPalletTypeOptions: [], // - rqrq
selectedCallArea: '', // - rqrq
selectedCallStation: '', // - rqrq
selectedCallPalletType: '', // - rqrq
//
editPositionModalVisible: false,
@ -814,35 +845,67 @@ export default {
});
},
// Call -
// Call - - rqrq
handleCallPallet() {
this.callPalletModalVisible = true;
this.selectedCallStartStation = '';
this.selectedCallTargetStation = '';
this.selectedCallArea = '';
this.selectedCallStation = '';
this.selectedCallPalletType = '';
this.callStationOptions = [];
// choose_able='Y'- rqrq
getAreaOptionsForChange({
site: this.site
}).then(({ data }) => {
if (data && data.code === 0) {
this.callAreaOptions = data.rows || [];
} else {
this.$message.error(data.msg || '获取区域列表失败');
}
}).catch(error => {
console.error('获取区域列表失败:', error);
this.$message.error('获取区域列表失败');
});
//
getAvailableAgvStations({ statusDb: 1 }).then(({ data }) => {
// active='Y'- rqrq
getPalletTypeList({
site: this.site,
palletFamily: '', // - rqrq
active: 'Y'
}).then(({ data }) => {
if (data && data.code === 0) {
this.callStartStationOptions = data.stations || [];
console.log('起始站点列表:', this.callStartStationOptions);
this.callPalletTypeOptions = data.rows || [];
} else {
this.$message.error(data.msg || '获取起始站点列表失败');
this.$message.error(data.msg || '获取栈板类型列表失败');
}
}).catch(error => {
console.error('获取起始站点列表失败:', error);
this.$message.error('获取起始站点列表失败');
console.error('获取栈板类型列表失败:', error);
this.$message.error('获取栈板类型列表失败');
});
},
// change - rqrq
handleCallAreaChange() {
this.selectedCallStation = '';
this.callStationOptions = [];
if (!this.selectedCallArea) {
return;
}
//
getAvailableAgvStations({ statusDb: 0 }).then(({ data }) => {
// - rqrq
getStationsByArea({
site: this.site,
areaId: this.selectedCallArea
}).then(({ data }) => {
if (data && data.code === 0) {
this.callTargetStationOptions = data.stations || [];
this.callStationOptions = data.rows || [];
} else {
this.$message.error(data.msg || '获取目标站点列表失败');
this.$message.error(data.msg || '获取站点列表失败');
}
}).catch(error => {
console.error('获取目标站点列表失败:', error);
this.$message.error('获取目标站点列表失败');
console.error('获取站点列表失败:', error);
this.$message.error('获取站点列表失败');
});
},
@ -1390,53 +1453,64 @@ export default {
});
},
// Call
// Call - rqrq
confirmCallPallet() {
if (!this.selectedCallStartStation) {
this.$message.error('请选择起始站点');
// - rqrq
if (!this.selectedCallArea) {
this.$message.error('请选择区域');
return;
}
if (!this.selectedCallTargetStation) {
this.$message.error('请选择目标站点');
if (!this.selectedCallStation) {
this.$message.error('请选择站点');
return;
}
//
if (this.selectedCallStartStation === this.selectedCallTargetStation) {
this.$message.error('起始站点和目标站点不能相同');
if (!this.selectedCallPalletType) {
this.$message.error('请选择栈板类型');
return;
}
// loading
this.callPalletLoading = true;
// - rqrq
this.$confirm('确定调用空托盘吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// loading - rqrq
this.callPalletLoading = true;
callPalletToStation({
site: this.site,
startStation: this.selectedCallStartStation,
targetStation: this.selectedCallTargetStation
}).then(({ data }) => {
if (data.code === 0) {
this.$message.success('空托盘调用任务创建成功');
this.closeCallPalletModal();
} else {
this.$message.error(data.msg || '调用空托盘失败');
}
}).catch(error => {
console.error('调用空托盘失败:', error);
this.$message.error('异常:'+error);
}).finally(() => {
//
this.callPalletLoading = false;
// API - rqrq
callEmptyPalletToStation({
site: this.site,
stationCode: this.selectedCallStation,
palletType: this.selectedCallPalletType
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('空托盘调用任务创建成功');
this.closeCallPalletModal();
} else {
this.$message.error(data.msg || '调用空托盘失败');
}
}).catch(error => {
console.error('调用空托盘失败:', error);
this.$message.error('异常:'+error);
}).finally(() => {
// - rqrq
this.callPalletLoading = false;
});
}).catch(() => {
// - rqrq
});
},
// Call
// Call - rqrq
closeCallPalletModal() {
this.callPalletModalVisible = false;
this.selectedCallStartStation = '';
this.selectedCallTargetStation = '';
this.callStartStationOptions = [];
this.callTargetStationOptions = [];
this.selectedCallArea = '';
this.selectedCallStation = '';
this.selectedCallPalletType = '';
this.callAreaOptions = [];
this.callStationOptions = [];
this.callPalletTypeOptions = [];
},
// - rqrq
showDetailModal(){

218
src/views/modules/automatedWarehouse/palletPacking.vue

@ -468,7 +468,7 @@
</div>
</el-dialog>
<!-- Call栈板模态框 -->
<!-- Call栈板模态框 - rqrq -->
<el-dialog
title="调用空托盘"
:visible.sync="callPalletModalVisible"
@ -480,34 +480,57 @@
:append-to-body="true"
>
<div class="call-modal-content">
<!-- 起始站点选择 -->
<!-- 选择区域 - rqrq -->
<div class="input-group">
<label class="input-label">起始站点</label>
<label class="input-label">选择区域</label>
<el-select
v-model="selectedCallStartStation"
placeholder="请选择起始站点"
v-model="selectedCallArea"
placeholder="请选择区域"
style="width: 100%;"
@change="handleCallStartStationChange"
@change="handleCallAreaChange"
>
<el-option
v-for="station in callStartStationOptions"
v-for="area in callAreaOptions"
:key="area.areaId"
:label="area.areaDesc"
:value="area.areaId"
/>
</el-select>
</div>
<!-- 选择站点 - rqrq -->
<div class="input-group">
<label class="input-label">选择站点</label>
<el-select
v-model="selectedCallStation"
placeholder="请选择站点"
style="width: 100%;"
:disabled="!selectedCallArea"
>
<el-option
v-for="station in callStationOptions"
:key="station.stationCode"
:label="`${station.stationCode} - ${station.stationName}`"
:label="`${station.stationId} (${station.stationCode})`"
:value="station.stationCode"
/>
</el-select>
</div>
<!-- 目标站点输入 -->
<!-- 选择栈板类型 - rqrq -->
<div class="input-group">
<label class="input-label">目标站点</label>
<el-input
ref="callTargetStationInput"
v-model="selectedCallTargetStation"
placeholder="请扫描或输入目标站点"
clearable
<label class="input-label">栈板类型</label>
<el-select
v-model="selectedCallPalletType"
placeholder="请选择栈板类型"
style="width: 100%;"
/>
>
<el-option
v-for="type in callPalletTypeOptions"
:key="type.palletType"
:label="`${type.palletType} - ${type.typeDesc}`"
:value="type.palletType"
/>
</el-select>
</div>
</div>
@ -540,9 +563,15 @@ import {
getPalletTypeList,
getPalletTypeAreas,
updatePalletTypeAndAutoSort,
getAvailablePositionsForLayer
getAvailablePositionsForLayer,
callEmptyPalletToStation // API - rqrq
} from '../../../api/automatedWarehouse/palletPacking'
import {
getAreaOptionsForChange,
getStationsByArea
} from '../../../api/automatedWarehouse/palletChangeStation'
export default {
data() {
return {
@ -596,12 +625,14 @@ export default {
currentPalletStation: '',
selectedTargetArea: '', //
// Call
// Call - rqrq
callPalletModalVisible: false,
callStartStationOptions: [], // statusDb=1
callTargetStationOptions: [], // statusDb=0
selectedCallStartStation: '',
selectedCallTargetStation: '',
callAreaOptions: [], // - rqrq
callStationOptions: [], // - rqrq
callPalletTypeOptions: [], // - rqrq
selectedCallArea: '', // - rqrq
selectedCallStation: '', // - rqrq
selectedCallPalletType: '', // - rqrq
//
editPositionModalVisible: false,
@ -890,35 +921,67 @@ export default {
});
},
// Call -
// Call - - rqrq
handleCallPallet() {
this.callPalletModalVisible = true;
this.selectedCallStartStation = '';
this.selectedCallTargetStation = '';
this.selectedCallArea = '';
this.selectedCallStation = '';
this.selectedCallPalletType = '';
this.callStationOptions = [];
// choose_able='Y'- rqrq
getAreaOptionsForChange({
site: this.site
}).then(({ data }) => {
if (data && data.code === 0) {
this.callAreaOptions = data.rows || [];
} else {
this.$message.error(data.msg || '获取区域列表失败');
}
}).catch(error => {
console.error('获取区域列表失败:', error);
this.$message.error('获取区域列表失败');
});
// AGV
//
getAvailableAgvStations({ statusDb: 1 }).then(({ data }) => {
// active='Y'- rqrq
getPalletTypeList({
site: this.site,
palletFamily: '', // - rqrq
active: 'Y'
}).then(({ data }) => {
if (data && data.code === 0) {
this.callStartStationOptions = data.stations || [];
this.callPalletTypeOptions = data.rows || [];
} else {
this.$message.error(data.msg || '获取起始站点列表失败');
this.$message.error(data.msg || '获取栈板类型列表失败');
}
}).catch(error => {
console.error('获取起始站点列表失败:', error);
this.$message.error('获取起始站点列表失败');
console.error('获取栈板类型列表失败:', error);
this.$message.error('获取栈板类型列表失败');
});
},
// change - rqrq
handleCallAreaChange() {
this.selectedCallStation = '';
this.callStationOptions = [];
if (!this.selectedCallArea) {
return;
}
//
getAvailableAgvStations({ statusDb: 0 }).then(({ data }) => {
// - rqrq
getStationsByArea({
site: this.site,
areaId: this.selectedCallArea
}).then(({ data }) => {
if (data && data.code === 0) {
this.callTargetStationOptions = data.stations || [];
this.callStationOptions = data.rows || [];
} else {
this.$message.error(data.msg || '获取目标站点列表失败');
this.$message.error(data.msg || '获取站点列表失败');
}
}).catch(error => {
console.error('获取目标站点列表失败:', error);
this.$message.error('获取目标站点列表失败');
console.error('获取站点列表失败:', error);
this.$message.error('获取站点列表失败');
});
},
@ -1531,53 +1594,64 @@ export default {
this.transportAreaOptions = [];
},
// Call
// Call - rqrq
confirmCallPallet() {
if (!this.selectedCallStartStation) {
this.$message.error('请选择起始站点');
// - rqrq
if (!this.selectedCallArea) {
this.$message.error('请选择区域');
return;
}
if (!this.selectedCallTargetStation) {
this.$message.error('请选择目标站点');
if (!this.selectedCallStation) {
this.$message.error('请选择站点');
return;
}
//
if (this.selectedCallStartStation === this.selectedCallTargetStation) {
this.$message.error('起始站点和目标站点不能相同');
if (!this.selectedCallPalletType) {
this.$message.error('请选择栈板类型');
return;
}
// loading
this.callPalletLoading = true;
callPalletToStation({
site: this.site,
startStation: this.selectedCallStartStation,
targetStation: this.selectedCallTargetStation
}).then(({ data }) => {
if (data.code === 0) {
this.$message.success('空托盘调用任务创建成功');
this.closeCallPalletModal();
} else {
this.$message.error(data.msg || '调用空托盘失败');
}
}).catch(error => {
console.error('调用空托盘失败:', error);
this.$message.error('异常:'+error);
}).finally(() => {
//
this.callPalletLoading = false;
// - rqrq
this.$confirm('确定调用空托盘吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// loading - rqrq
this.callPalletLoading = true;
// API - rqrq
callEmptyPalletToStation({
site: this.site,
stationCode: this.selectedCallStation,
palletType: this.selectedCallPalletType
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('空托盘调用任务创建成功');
this.closeCallPalletModal();
} else {
this.$message.error(data.msg || '调用空托盘失败');
}
}).catch(error => {
console.error('调用空托盘失败:', error);
this.$message.error('异常:'+error);
}).finally(() => {
// - rqrq
this.callPalletLoading = false;
});
}).catch(() => {
// - rqrq
});
},
// Call
// Call - rqrq
closeCallPalletModal() {
this.callPalletModalVisible = false;
this.selectedCallStartStation = '';
this.selectedCallTargetStation = '';
this.callStartStationOptions = [];
this.callTargetStationOptions = [];
this.selectedCallArea = '';
this.selectedCallStation = '';
this.selectedCallPalletType = '';
this.callAreaOptions = [];
this.callStationOptions = [];
this.callPalletTypeOptions = [];
},
// - rqrq
showDetailModal(){

14
src/views/modules/automatedWarehouse/palletSorting.vue

@ -30,13 +30,13 @@
spellcheck="false"
ref="palletInput"
/>
<button
class="action-btn secondary"
style="flex: 0.25; margin: 0;"
@click="handleCallPallet"
>
Call栈板
</button>
<!-- <button-->
<!-- class="action-btn secondary"-->
<!-- style="flex: 0.25; margin: 0;"-->
<!-- @click="handleCallPallet"-->
<!-- >-->
<!-- Call栈板-->
<!-- </button>-->
</div>
</div>

Loading…
Cancel
Save