<template>
|
<a-drawer
|
title="库位详情"
|
wrapClassName="weiben-private-drawer"
|
:width="400"
|
:closable="false"
|
:maskClosable="true"
|
:visible="visible"
|
:after-visible-change="afterVisibleChange"
|
@close="onClose"
|
>
|
<a-spin :spinning="loading">
|
<div class="wms-warehouse-location-view-detail-div">
|
<div class="btns-row">
|
<a-button
|
type="primary"
|
:disabled="!(locationObj.islock === 0 && (locationObj.placestatus === 1 || locationObj.placestatus === 3))"
|
@click.stop="onUpdateLock"
|
>锁定</a-button
|
>
|
<a-button
|
type="primary"
|
:disabled="!(locationObj.islock === 1 && (locationObj.placestatus === 1 || locationObj.placestatus === 3))"
|
@click.stop="onUpdateLock"
|
>解锁</a-button
|
>
|
<a-button type="primary" @click.stop="deleteBalance">删除库存</a-button>
|
<a-button type="primary" @click.stop="openList">添加库存</a-button>
|
</div>
|
<div class="location-detail-box">
|
<div class="base-info info-box">
|
<p>库位编号:{{ locationObj.placecode }}</p>
|
<p>小车编号:{{ containercode }}</p>
|
</div>
|
<!-- 物料列表 start -->
|
<div class="location-materials">
|
<a-card v-for="(item, index) in materialList" :key="'material-item-' + index">
|
<div class="info-box">
|
<p>零件编号:{{ item.partCode }}</p>
|
<p>零件名称:{{ item.partName }}</p>
|
<p>车 型:{{ item.carType }}</p>
|
<p>生 产 线:{{ item.lineType }}</p>
|
</div>
|
</a-card>
|
</div>
|
<!-- 物料列表 end -->
|
</div>
|
</div>
|
<a-modal title="选择小车编号" :visible="showList" @ok="addBalance()" @cancel="showList = false">
|
小车编号:
|
<a-select v-model="cCode" style="width: 200px" show-search>
|
<a-select-option v-for="(item,index) in WmsMaterialData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
|
</a-select>
|
</a-modal>
|
</a-spin>
|
</a-drawer>
|
</template>
|
|
<script>
|
import { GetLocationDetail, UpdateLock } from '@/api/modular/main/LocationViewManage'
|
import { WmsDeleteBalance,WmsAddBalance } from '@/api/modular/main/WmsTaskManage'
|
import {
|
WmsMaterialList
|
} from '@/api/modular/main/WmsMaterialManage'
|
import { refresh } from 'less'
|
export default {
|
name: 'wmsWarehouseLocationViewDetailDrawer',
|
emits: ['update:visible', 'callback'],
|
props: {
|
visible: {
|
type: Boolean,
|
default: false,
|
},
|
row: {
|
type: Object,
|
default: function () {
|
return {}
|
},
|
},
|
},
|
data() {
|
return {
|
loading: false,
|
locationObj: {
|
placestatus: null,
|
islock: null,
|
},
|
containercode: '',
|
materialList: [],
|
actionFlag: false,
|
showList: false,
|
WmsMaterialData: [],
|
cCode:''
|
}
|
},
|
methods: {
|
WmsMaterialList() {
|
WmsMaterialList().then(res => {
|
this.WmsMaterialData = res.data
|
})
|
},
|
openList() {
|
this.showList = true
|
},
|
addBalance() {
|
if(this.cCode != null && this.cCode != ''){
|
WmsAddBalance({ containerCode: this.cCode,fromLocationCode:this.locationObj.placecode }).then((d) => {
|
if (d.success) {
|
this.cCode = null
|
this.showList = false
|
this.getLocationDetail()
|
this.$message.success('操作成功')
|
}
|
})
|
.catch(() => {
|
callback && callback(false)
|
})
|
}else{
|
this.$message.warning('请选择小车号')
|
}
|
},
|
deleteBalance() {
|
this.$confirm({
|
title: '操作确认',
|
content: '确定要进行删除吗?',
|
okText: '确认',
|
cancelText: '取消',
|
onOk: () => {
|
this.deleteMethod()
|
},
|
})
|
},
|
deleteMethod() {
|
WmsDeleteBalance({ containerCode: this.containercode, fromLocationCode:this.locationObj.placecode})
|
.then((d) => {
|
if (d.success) {
|
this.getLocationDetail()
|
this.$message.success('操作成功')
|
}
|
})
|
.catch(() => {
|
callback && callback(false)
|
})
|
},
|
onClose() {
|
this.close()
|
},
|
close() {
|
this.$emit('update:visible', false)
|
this.$emit('ree', false)
|
},
|
afterVisibleChange(visible) {
|
if (visible) {
|
this.initShow()
|
} else {
|
this.afterClsoe()
|
}
|
},
|
initShow() {
|
this.loading = true
|
this.WmsMaterialList()
|
this.getLocationDetail(() => {
|
this.loading = false
|
})
|
},
|
getLocationDetail(callback) {
|
let params = { ID: this.row.id }
|
GetLocationDetail(params)
|
.then((d) => {
|
this.locationObj = d.data.palceDetails || {}
|
this.containercode = d.data.containercode || ''
|
this.materialList = d.data.wmsMaterialStocks || []
|
callback && callback(true)
|
})
|
.catch(() => {
|
callback && callback(false)
|
})
|
},
|
afterClsoe() {
|
this.locationObj = {
|
placestatus: null,
|
islock: null,
|
}
|
this.containercode = ''
|
this.materialList = []
|
if (this.actionFlag) {
|
this.$emit('callback')
|
}
|
this.actionFlag = false
|
},
|
onUpdateLock() {
|
this.loading = true
|
let params = { ID: this.row.id }
|
UpdateLock(params)
|
.then(() => {
|
this.actionFlag = true
|
this.getLocationDetail(() => {
|
this.loading = false
|
this.$message.success('操作成功!')
|
})
|
})
|
.catch(() => {
|
this.loading = false
|
})
|
},
|
},
|
}
|
</script>
|
|
<style lang="less" scoped>
|
.wms-warehouse-location-view-detail-div {
|
height: 100%;
|
display: flex;
|
flex-direction: column;
|
& > .btns-row {
|
flex-shrink: 0;
|
padding: 12px 16px;
|
.ant-btn + .ant-btn {
|
margin-left: 10px;
|
}
|
}
|
.location-detail-box {
|
flex-grow: 1;
|
overflow: auto;
|
}
|
.info-box {
|
line-height: 1.5;
|
p {
|
margin-bottom: 0;
|
}
|
}
|
.base-info,
|
.location-materials {
|
padding: 0 16px;
|
margin-bottom: 16px;
|
}
|
}
|
</style>
|