Files
mt-qj-wms-ui/src/views/common/ex-warehouse.vue
2022-03-18 15:17:46 +08:00

206 lines
4.8 KiB
Vue

<!--
* @Author: zwq
* @Date: 2021-11-15 15:17:30
* @LastEditors: zwq
* @LastEditTime: 2022-03-18 15:00:32
* @Description:
-->
<template>
<div v-loading="dataListLoading">
<el-card class="base-container" style="min-height: 300px">
<el-card
class="wareBox"
shadow="hover"
:class="[
item.empty ? 'disableBox' : 'enableBox',
{ active: item.locationId === isActive }
]"
:disabled="item.empty"
@click.native="item.empty ? '' : selectBox(item.locationId)"
v-for="item in warehouseList"
:key="item.locationId"
>
<div class="plat">{{ item.locationName }}</div>
<el-button
v-if="!item.empty"
@click.stop="showDetail(item.locationId)"
class="wareBox-button"
type="text"
size="mini"
icon="el-icon-search"
circle
/>
</el-card>
</el-card>
<el-card class="base-container" style="margin-top: 20px; min-height: 200px">
<el-row :gutter="30" style="padding: 20px;">
<el-col class="footer-item-container" :span="6" v-for="count in 4" :key="count">
<el-card class="footer-item-box base-container" @click.native="selectPlat(count)">
<div class="plat" style="font-size: 24px">液压台{{ count }}</div>
</el-card>
</el-col>
</el-row>
</el-card>
<ex-warehouse-info
v-if="ExWarehouseInfoVisible"
ref="ExWarehouseInfoRef"
></ex-warehouse-info>
</div>
</template>
<script>
import ExWarehouseInfo from './ex-warehouse-info'
export default {
data () {
return {
isActive: '',
ExWarehouseInfoVisible: false,
dataListLoading: false,
warehouseList: []
}
},
components: {
ExWarehouseInfo
},
created () {
this.getWarehouseList()
},
methods: {
getWarehouseList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/outStock/list'),
method: 'post'
}).then(({data}) => {
if (data && data.code === 0) {
this.warehouseList = data.data
} else {
this.warehouseList = []
}
this.dataListLoading = false
})
},
selectBox (id) {
if (this.isActive === id) {
this.isActive = null
} else {
this.isActive = id
}
},
showDetail (id) {
this.ExWarehouseInfoVisible = true
this.$nextTick(() => {
this.$refs.ExWarehouseInfoRef.init(id)
})
},
selectPlat (count) {
if (this.isActive) {
this.$confirm(`确认从库位id为[${this.isActive}]出库至提升台${count}?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'info '
}).then(() => {
this.$http({
url: this.$http.adornUrl('/outStock/runOutTask'),
method: 'post',
data: this.$http.adornData({
code: 'YYT00' + count,
localtionId: this.isActive
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
type: 'success',
message: '出库成功!'
})
this.isActive = null
this.getWarehouseList()
} else {
this.$message.error(data.msg)
}
this.dataListLoading = false
})
}).catch(() => {
this.$message({
type: 'info',
message: '出库取消'
})
})
} else {
this.$message({
message: '请选择出库库位',
type: 'warning'
})
}
}
}
}
</script>
<style lang="scss" scoped>
.mainDiv {
border: 2px solid rgb(145, 174, 255);
padding: 20px 0;
}
.wareBox {
cursor: pointer;
display: inline-block;
margin: 10px;
width: 104px;
height: 112px;
line-height: 72px;
text-align: center;
padding: 0;
position: relative;
.wareBox-button {
position: absolute;
bottom: 0;
right: 0;
}
}
.line {
margin: 20px 0;
height: 2px;
background-color: gray;
border-left: 200px solid #ddd;
border-right: 200px solid #ddd;
}
.enableBox {
background: #EFF3FF;
}
.disableBox {
background: #F4F4F4;
cursor: not-allowed;
}
.end-plat {
background-color: rgb(195, 246, 255);
}
.plat {
font-size: 16px;
}
.active {
border: 2px solid #F56C6C;
}
.footer-item-container{
display: flex;
justify-content: center;
align-items: center;
.footer-item-box{
width: 100%;
height: 200px;
padding: 0 !important;
cursor: pointer;
line-height: 160px;
text-align: center;
background-image: url('../../assets/img/1.png');
background-repeat: no-repeat;
background-size: 100% 100%;
background-color: transparent;
border-radius: 25px;
margin-bottom: 20px;
}
}
</style>