parent
a7f0166b40
commit
343f8ace32
@ -0,0 +1,310 @@ |
||||
<template> |
||||
<view class="im-container"> |
||||
<view class="im-up"> |
||||
<view class="im-column"> |
||||
<text class="im-text">巷道:</text> |
||||
<view class="im-select"> |
||||
<u-input v-model="startTunnel" type="select" class="u-input" placeholder-style="color:#000000" |
||||
placeholder="" border @click="startShow = true" /> |
||||
<u-select :mask-close-able="false" :safe-area-inset-bottom="true" v-model="startShow" |
||||
mode="single-column" :list="list" @confirm="confirmStart" /> |
||||
</view> |
||||
<span>——</span> |
||||
<view class="im-select"> |
||||
<u-input v-model="endTunnel" type="select" class="u-input" placeholder-style="color:#000000" |
||||
placeholder="" border @click="endShow = true" /> |
||||
<u-select :mask-close-able="false" :safe-area-inset-bottom="true" v-model="endShow" |
||||
mode="single-column" :list="list" @confirm="confirmEnd" /> |
||||
</view> |
||||
<view class="im-button"> |
||||
<u-button size="mini" v-if="orderBy===1" @click="changeOrder">正序</u-button> |
||||
<u-button size="mini" v-if="orderBy===0" @click="changeOrder">倒序</u-button> |
||||
</view> |
||||
</view> |
||||
<view class="im-column"> |
||||
<u-input class="im-pan" v-model="value" type="text" border placeholder="请扫描盘点货位" @input="change()" /> |
||||
|
||||
</view> |
||||
<view class="im-column" style="display: flex;justify-content: space-between;" v-if="result"> |
||||
<view> |
||||
<span class="im-name">货 位:</span> |
||||
<text class="im-bold">{{ result.locationCode }}</text> |
||||
</view> |
||||
<span class="im-span">{{ result.storageName }}</span> |
||||
</view> |
||||
<view class="im-column" style="display: flex;justify-content: space-between;" v-if="result"> |
||||
<view> |
||||
<span class="im-name">货 主:</span> |
||||
<text>{{ result.consignorName}}</text> |
||||
</view> |
||||
<span class="im-span" v-if="result.invWay==='open'">明盘</span> |
||||
<span class="im-span" v-if="result.invWay==='close'">盲盘</span> |
||||
</view> |
||||
<view class="im-column" style="display: flex;justify-content: space-between;" v-if="result"> |
||||
<view> |
||||
<span>商品编号:</span><text>{{ result.goodNo}}</text> |
||||
</view> |
||||
|
||||
<span class="im-span">{{ transInvUnit(result.invType)}}</span> |
||||
</view> |
||||
<view class="im-column" v-if="result"> |
||||
<span>商品名称:</span><text>{{ result.goodName}}</text> |
||||
</view> |
||||
<view class="im-column" v-if="result"> |
||||
<span class="im-name">规 格:</span> |
||||
<text>{{ result.specifications}}</text> |
||||
</view> |
||||
<view class="im-column" v-if="result"> |
||||
<span class="im-name">厂 家:</span> |
||||
<text>{{ result.factory}}</text> |
||||
</view> |
||||
<view class="im-column" v-if="result"> |
||||
<span class="im-name">产 地:</span> |
||||
<text>{{ result.waster}}</text> |
||||
</view> |
||||
<view class="im-column" v-if="result"> |
||||
<span class="im-name">批 号:</span> |
||||
<text>{{ result.batchNo }}</text> |
||||
</view> |
||||
<view class="im-column" v-if="result"> |
||||
<span>显示效期:</span><text>{{ result.productionDate }}--{{ result.expiredDate }}</text> |
||||
</view> |
||||
<view class="im-down-title" v-if="result"> |
||||
<span>件装/单位</span> |
||||
<span>件数</span> |
||||
<span>零散数</span> |
||||
<span>数量</span> |
||||
</view> |
||||
|
||||
<view v-if="result" class="im-down"> |
||||
<view class="im-down-title"> |
||||
<span>{{result.packageQty}}/{{transUnit(result.unit)}}</span> |
||||
<span v-if="result.invWay==='open'"> |
||||
<u-input style="margin-left: 30rpx;" border v-model="result.invCase" border-color="black" |
||||
placeholder="" :trim="false" :clearable="false"></u-input> |
||||
</span> |
||||
<span v-if="result.invWay==='open'"> |
||||
<u-input border v-model="result.invPiece" border-color="black" placeholder="" :trim="false" |
||||
:clearable="false"></u-input> |
||||
</span> |
||||
<span v-if="result.invWay==='open'">{{result.qty}}</span> |
||||
</view> |
||||
|
||||
<view class="im-down-title"> |
||||
<span>入库预分配</span> |
||||
<span>出库预分配</span> |
||||
<span>补货预分配</span> |
||||
</view> |
||||
<view class="im-down-title"> |
||||
<span>{{ result.onlockInQuantity}}</span> |
||||
<span>{{ result.onlockOutQuantity }}</span> |
||||
<span>{{ result.onlockReplenishQuantity }}</span> |
||||
</view> |
||||
|
||||
</view> |
||||
<view class="confirm-button" v-if="result"> |
||||
<u-button size="medium" @click="sure()">确认</u-button> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
data() { |
||||
return { |
||||
result: '', |
||||
orderBy: 1, |
||||
startShow: false, |
||||
endShow: false, |
||||
xiangStart: "", |
||||
value: "", |
||||
list: [], |
||||
invOrderNo: '', |
||||
startTunnel: '', |
||||
endTunnel: '', |
||||
dicOptions: [] |
||||
}; |
||||
}, |
||||
onLoad: function(option) { |
||||
this.invOrderNo = option.invOrderNo |
||||
this.getList(option.invOrderNo) |
||||
this.getDic() |
||||
this.getInvTypeDic() |
||||
}, |
||||
methods: { |
||||
//盘点类型的字典 |
||||
getInvTypeDic() { |
||||
this.$u.api.getInvType().then(res => { |
||||
this.invOptions = res.data; |
||||
}); |
||||
}, |
||||
transInvUnit(unit) { |
||||
for (let dic in this.dicOptions) { |
||||
if (this.invOptions[dic].dictValue === unit) { |
||||
return this.invOptions[dic].dictLabel; |
||||
} |
||||
} |
||||
}, |
||||
// 单位的字典 |
||||
getDic() { |
||||
this.$u.api.getByDicType().then(res => { |
||||
this.dicOptions = res.data; |
||||
}); |
||||
}, |
||||
transUnit(unit) { |
||||
for (let dic in this.dicOptions) { |
||||
if (this.dicOptions[dic].dictValue === unit) { |
||||
return this.dicOptions[dic].dictLabel; |
||||
} |
||||
} |
||||
}, |
||||
sure() { |
||||
this.$u.api.inventoryPlanning.pdaEntrySave({ |
||||
id: this.result.id, |
||||
invQty: this.result.invQty, |
||||
invCase: this.result.invCase, |
||||
invPiece: this.result.invPiece |
||||
}).then((res) => { |
||||
if (res.code === 200) { |
||||
this.$u.toast('盘点成功'); |
||||
this.$u.route({ |
||||
url: '/pages/inventory/index', |
||||
type: 'navigateTo' |
||||
}) |
||||
} else { |
||||
this.$u.toast(res.msg); |
||||
} |
||||
}) |
||||
}, |
||||
changeOrder() { |
||||
if (this.orderBy) { |
||||
this.orderBy = 0 |
||||
} else { |
||||
this.orderBy = 1 |
||||
} |
||||
this.getDetail() |
||||
}, |
||||
// 获取巷道 |
||||
getList(params) { |
||||
this.$u.api.inventoryPlanning.optionByInvOrderNo(params).then(res => { |
||||
if (res.code === 200) { |
||||
this.list = res.data.map((item) => ({ |
||||
label: item, |
||||
value: item |
||||
})) |
||||
} else { |
||||
this.$u.toast(res.msg); |
||||
} |
||||
}); |
||||
}, |
||||
change() { |
||||
this.invOrderNo = this.value |
||||
this.list = [] |
||||
this.startTunnel = '' |
||||
this.endTunnel = '' |
||||
this.getList(this.value) |
||||
this.result = '' |
||||
}, |
||||
getDetail() { |
||||
if (this.orderBy && this.startTunnel && this.endTunnel && this.invOrderNo) { |
||||
this.$u.api.inventoryPlanning.queryDetailStockInv({ |
||||
orderBy: this.orderBy, |
||||
startTunnel: this.startTunnel, |
||||
endTunnel: this.endTunnel, |
||||
invOrderNo: this.invOrderNo |
||||
}).then(res => { |
||||
if (res.code === 200) { |
||||
this.result = res.data |
||||
} else { |
||||
this.$u.toast(res.msg); |
||||
} |
||||
|
||||
}); |
||||
} |
||||
}, |
||||
confirmStart(e) { |
||||
this.startTunnel = e[0].value; |
||||
this.getDetail() |
||||
}, |
||||
confirmEnd(e) { |
||||
this.endTunnel = e[0].value; |
||||
this.getDetail() |
||||
} |
||||
} |
||||
} |
||||
</script> |
||||
<style> |
||||
page { |
||||
height: 100% |
||||
} |
||||
</style> |
||||
<style lang="scss"> |
||||
.im-container { |
||||
background-color: rgba(242, 242, 242, 1); |
||||
height: 100%; |
||||
|
||||
.im-up { |
||||
background-color: #fff; |
||||
margin: 20rpx 40rpx; |
||||
border: 0.5px solid black; |
||||
height: 100%; |
||||
|
||||
.im-column { |
||||
display: flex; |
||||
flex-direction: row; |
||||
padding: 20rpx 30rpx 0 30rpx; |
||||
|
||||
.im-pan { |
||||
margin-right: 40rpx; |
||||
} |
||||
|
||||
.im-span { |
||||
padding-right: 60rpx; |
||||
} |
||||
|
||||
.im-text { |
||||
padding: 12rpx 20rpx 12rpx 0; |
||||
} |
||||
|
||||
.im-bold { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.span-right { |
||||
position: absolute; |
||||
right: 50px; |
||||
} |
||||
|
||||
.im-name { |
||||
word-spacing: 46rpx; |
||||
} |
||||
} |
||||
|
||||
|
||||
.im-down-title { |
||||
margin-top: 50prx; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
padding: 20rpx 30rpx 0 30rpx; |
||||
|
||||
.down-span { |
||||
border: 0.5rpx black solid; |
||||
} |
||||
} |
||||
|
||||
.confirm-button { |
||||
display: flex; |
||||
padding-top: 150rpx; |
||||
} |
||||
} |
||||
|
||||
.im-button { |
||||
display: contents; |
||||
} |
||||
|
||||
.u-input { |
||||
width: 150rpx; |
||||
} |
||||
} |
||||
</style> |
||||
@ -0,0 +1,260 @@ |
||||
.sh-content { |
||||
padding: 25rpx; |
||||
background-color: #fff; |
||||
display: flex; |
||||
flex-direction: column; |
||||
.u-form-item { |
||||
padding: 5rpx 0px; |
||||
} |
||||
.u-input__input { |
||||
background-color: #ffffff; |
||||
} |
||||
.sh-search { |
||||
display: flex; |
||||
padding: 10rpx 30rpx; |
||||
// background-color: #F2F2F2; |
||||
|
||||
.sh-form { |
||||
width: 100%; |
||||
} |
||||
|
||||
.sh-sub-search { |
||||
display: flex; |
||||
align-items: center; |
||||
padding: 15rpx 0 15rpx 15rpx; |
||||
|
||||
.sh-search-button { |
||||
height: 100%; |
||||
} |
||||
} |
||||
} |
||||
.all-card{ |
||||
display: flex; |
||||
flex-direction:column; |
||||
height: 420px; |
||||
flex: 420px; |
||||
overflow: auto; |
||||
|
||||
.sh-card { |
||||
// background-color: red; |
||||
margin-top: 30rpx; |
||||
// padding: 20rpx 0rpx; |
||||
border: 0.5px solid #797979; |
||||
border-radius: 20rpx; |
||||
line-height: 60rpx; |
||||
|
||||
.sh-card-title { |
||||
display: flex; |
||||
flex-direction: column; |
||||
position: relative; |
||||
padding: 0 20px; |
||||
background-color: #f2f2f2; |
||||
border-top-left-radius: 20rpx; |
||||
border-top-right-radius: 20rpx; |
||||
.sh-button{ |
||||
position: absolute; |
||||
width: 38px; |
||||
height: 28px; |
||||
line-height: 28px; |
||||
border-radius: 50%; |
||||
top: 0; |
||||
right: 0; |
||||
} |
||||
.receipt-number { |
||||
display: flex; |
||||
.receipt-number-title { |
||||
color: #333333; |
||||
font-size: 24rpx; |
||||
} |
||||
.receipt-number-value { |
||||
color: #333333; |
||||
font-size: 28rpx; |
||||
font-weight: 600; |
||||
margin-left: 20rpx; |
||||
} |
||||
} |
||||
} |
||||
.sh-card-title-two{ |
||||
display: flex; |
||||
flex-direction: column; |
||||
padding: 0 20px; |
||||
background-color: #d7d7d7; |
||||
border-top-left-radius: 20rpx; |
||||
border-top-right-radius: 20rpx; |
||||
.receipt-number { |
||||
display: flex; |
||||
.receipt-number-title { |
||||
color: #333333; |
||||
font-size: 24rpx; |
||||
} |
||||
.receipt-number-value { |
||||
color: #333333; |
||||
font-size: 28rpx; |
||||
font-weight: 600; |
||||
margin-left: 20rpx; |
||||
} |
||||
} |
||||
} |
||||
.borderBottom { |
||||
border-bottom-left-radius: 20rpx; |
||||
border-bottom-right-radius: 20rpx; |
||||
} |
||||
.sh-card-title-border { |
||||
border-bottom: 2px dashed #797979; |
||||
} |
||||
.sh-card-content { |
||||
position: relative; |
||||
margin: 16rpx 0; |
||||
padding: 0rpx 70rpx; |
||||
|
||||
.detail-icon { |
||||
position: absolute; |
||||
right: 10rpx; |
||||
top: 90rpx; |
||||
} |
||||
.goods-card-content { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
.goods-card-content-item { |
||||
display: flex; |
||||
align-items: center; |
||||
width: 60%; |
||||
.goods-title { |
||||
font-size: 28rpx; |
||||
color: #555555; |
||||
} |
||||
.goods-value { |
||||
font-size: 28rpx; |
||||
color: #666666; |
||||
margin-left: 20rpx; |
||||
} |
||||
|
||||
} |
||||
} |
||||
} |
||||
.goods-no{ |
||||
font-weight: bold; |
||||
margin-right: 20rpx; |
||||
} |
||||
.pad-content { |
||||
padding-bottom: 16rpx; |
||||
} |
||||
|
||||
.card-content { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
.card-content-item { |
||||
// width: 50%; |
||||
display: flex; |
||||
align-items: center; |
||||
.item-title { |
||||
|
||||
// width: 120rpx; |
||||
font-size: 24rpx; |
||||
color: #555555; |
||||
} |
||||
.item-value { |
||||
width: 240rpx; |
||||
font-size: 26rpx; |
||||
color: #666666; |
||||
margin-left: 20rpx; |
||||
} |
||||
} |
||||
.card-content-item:first-child{ |
||||
width: 60%; |
||||
} |
||||
.sh-bold { |
||||
font-weight: bold; |
||||
word-break: break-all; |
||||
} |
||||
} |
||||
|
||||
} |
||||
margin-bottom: 100px; |
||||
} |
||||
// .sh-card:first-child{ |
||||
// margin-bottom: 50px; |
||||
// } |
||||
.loadmore-data{ |
||||
padding-top: 30rpx; |
||||
} |
||||
.recommend { |
||||
text-align: center; |
||||
height: 50rpx; |
||||
margin-top: 10rpx; |
||||
} |
||||
|
||||
.recommend-title { |
||||
display: table; |
||||
width: 100%; |
||||
line-height: 50rpx; |
||||
white-space: nowrap; |
||||
border-spacing: 2rem 0; |
||||
font-size: 30rpx; |
||||
color: gray |
||||
} |
||||
|
||||
.recommend-title::before, .recommend-title::after { |
||||
display: table-cell; |
||||
content: ""; |
||||
width: 50%; |
||||
background: linear-gradient(#eee, #eee) repeat-x center; |
||||
background-size: 0.1rem 0.1rem; |
||||
} |
||||
|
||||
.bottom{ |
||||
// display: flex; |
||||
flex: 160px; |
||||
position:fixed; |
||||
height: 40px; |
||||
width: 100%; |
||||
bottom:58px; |
||||
button:first-child{ |
||||
height: 100%; |
||||
margin-top: 10px; |
||||
line-height: 40px; |
||||
width: 60%; |
||||
font-size: 16px; |
||||
border: 1px solid #ccc; |
||||
} |
||||
.bottom-button{ |
||||
height: 100%; |
||||
margin-top: 10px; |
||||
line-height: 30px; |
||||
width: 60%; |
||||
font-size: 16px; |
||||
color:rgb(18, 150, 219); |
||||
// border: 1px solid #ccc; |
||||
width: 60%; |
||||
margin-left: -10%; |
||||
text-align: center; |
||||
} |
||||
button::after{ |
||||
border: none; |
||||
} |
||||
.foot{ |
||||
position: fixed; |
||||
bottom: 15px; |
||||
margin-left: 1%; |
||||
.size { |
||||
transform: scale(0.5,0.5); |
||||
font-size: 24px; |
||||
} |
||||
} |
||||
} |
||||
// .bottom{ |
||||
// position:fixed; |
||||
// height: 40px; |
||||
// width: 100%; |
||||
// bottom:38px; |
||||
// button{ |
||||
// height: 100%; |
||||
// line-height: 40px; |
||||
// width: 60%; |
||||
// font-size: 16px; |
||||
// } |
||||
// } |
||||
} |
||||
|
||||
@ -0,0 +1,109 @@ |
||||
<template> |
||||
<view class="in-content"> |
||||
<view class="in-table"> |
||||
<u-table> |
||||
<u-tr class="u-tr"> |
||||
<u-th class="u-th" width="10%">序号</u-th> |
||||
<u-th class="u-th" width="35%">盘点单号</u-th> |
||||
<u-th class="u-th" width="15%">总条目12</u-th> |
||||
<u-th class="u-th" width="20%">已盘条目</u-th> |
||||
<u-th class="u-th" width="20%">盘点人</u-th> |
||||
</u-tr> |
||||
<u-tr class="u-tr" v-for="(item, index) in result" :key="index" :class="invOrderNo===item.invOrderNo?'bg':null"> |
||||
<u-td class="u-td" width="10%" > |
||||
<span @click="choosed(item.invOrderNo)">{{ index + 1 }}</span> |
||||
</u-td> |
||||
<u-td class="u-td" width="35%"> |
||||
<span @click="choosed(item.invOrderNo)">{{ item.invOrderNo || '-' }}</span> |
||||
</u-td> |
||||
<u-td class="u-td" width="15%"> |
||||
<span @click="choosed(item.invOrderNo)">{{ item.totalNumber || '-' }}</span> |
||||
</u-td> |
||||
<u-td class="u-td" width="20%"> |
||||
<span @click="choosed(item.invOrderNo)"> |
||||
{{ item.finishNumber || '-' }} |
||||
</span> |
||||
</u-td> |
||||
<u-td class="u-td" width="20%" style="width:20%;text-overflow:ellipsis;overflow: hidden;"> |
||||
<span @click="choosed(item.invOrderNo)"> |
||||
{{ item.invUser || '-' }} |
||||
</span> |
||||
</u-td> |
||||
</u-tr> |
||||
</u-table> |
||||
</view> |
||||
<view class="in-operate"> |
||||
<u-button class="in-button" size="medium" @click="refreshPages()">刷新</u-button> |
||||
<u-button size="medium" @click="startImplement()">开始盘点</u-button> |
||||
</view> |
||||
</view> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
data() { |
||||
return { |
||||
result: [], |
||||
invOrderNo: '' |
||||
} |
||||
}, |
||||
|
||||
mounted() { |
||||
this.getList() |
||||
}, |
||||
methods: { |
||||
choosed(num) { |
||||
console.log(num) |
||||
console.log('这里没执行') |
||||
this.invOrderNo = num |
||||
}, |
||||
// 获取list |
||||
getList() { |
||||
this.$u.api.inventoryPlanning.inventoryPlanningList().then(res => { |
||||
console.log(res) |
||||
if(res.code===200) { |
||||
this.result = res.rows |
||||
} else { |
||||
his.$u.toast(res.msg); |
||||
} |
||||
}); |
||||
}, |
||||
refreshPages() { |
||||
this.$u.toast("页面已刷新"); |
||||
}, |
||||
startImplement() { |
||||
this.$u.route({ |
||||
url: '/pages/inventory/implement', |
||||
type: 'navigateTo', |
||||
params: { |
||||
invOrderNo: this.invOrderNo |
||||
} |
||||
}) |
||||
} |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style lang="scss"> |
||||
.in-content { |
||||
display: flex; |
||||
flex-direction: column; |
||||
|
||||
.in-table { |
||||
padding: 20rpx 30rpx 0 30rpx; |
||||
} |
||||
|
||||
.in-operate { |
||||
position: fixed; |
||||
bottom: 50rpx; |
||||
left: 15%; |
||||
|
||||
.in-button { |
||||
margin-right: 50rpx; |
||||
} |
||||
} |
||||
} |
||||
.bg { |
||||
background-color: #e2a622; |
||||
} |
||||
</style> |
||||
|
After Width: | Height: | Size: 11 KiB |
Loading…
Reference in new issue