Files
hht-ftdl-uni/pages/entry/check-to-store.vue
2025-08-06 16:35:47 +08:00

245 lines
7.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="zd_container">
<!-- 盘点入库 -->
<nav-bar :title="title"></nav-bar>
<view class="zd_content">
<view class="zd_wrapper">
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label">载具编码</span>
</view>
<view class="zd-col-17">
<search-box v-model="vehicleCode" @handleChange="handleChange" @handleDel="toEmpty"/>
</view>
</view>
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label">物料编码</span>
</view>
<view class="zd-col-17">
<input type="text" class="filter_input" v-model="currentData.material_code" @tap="toJump">
</view>
</view>
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label filter_input_disabled">物料名称</span>
</view>
<view class="zd-col-17">
<input type="text" class="filter_input filter_input_disabled" v-model="currentData.material_name" disabled>
</view>
</view>
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label filter_input_disabled">物料规格</span>
</view>
<view class="zd-col-17">
<input type="text" class="filter_input filter_input_disabled" v-model="currentData.material_spec" disabled>
</view>
</view>
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label filter_input_disabled">单位</span>
</view>
<view class="zd-col-17">
<input type="text" class="filter_input filter_input_disabled" v-model="currentData.unit_name" disabled>
</view>
</view>
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label">物料单重</span>
</view>
<view class="zd-col-17">
<NumberInput v-model="sWeight" />
</view>
</view>
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label">物料批次</span>
</view>
<view class="zd-col-17">
<input type="text" class="filter_input" v-model="pcsn">
</view>
</view>
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label">物料数量</span>
</view>
<view class="zd-col-17">
<NumberInput v-model="qty" />
</view>
</view>
<view class="zd-row border-bottom filter_input_disabled">
<view class="zd-col-7">
<span class="filter_label">仓库编码</span>
</view>
<view class="zd-col-17 filter_select">
<input type="text" class="filter_input" v-model="storCode" disabled>
</view>
</view>
</view>
<view class="filter_label">当前库位可用数</view>
<view class="zd_wrapper">
<view class="zd-row border-bottom">
<view class="zd-col-4">
<span class="filter_label" style="font-size: 24rpx;">高库位</span>
</view>
<view class="zd-col-4">
<span class="filter_input" style="font-size: 28rpx; color: #ff6a00; font-weight: 700;">{{kwData.g}}</span>
</view>
<view class="zd-col-4">
<span class="filter_label" style="font-size: 24rpx;">中库位</span>
</view>
<view class="zd-col-4">
<span class="filter_input" style="font-size: 28rpx; color: #ff6a00; font-weight: 700;">{{kwData.z}}</span>
</view>
<view class="zd-col-4">
<span class="filter_label" style="font-size: 24rpx;">低库位</span>
</view>
<view class="zd-col-4">
<span class="filter_input" style="font-size: 28rpx; color: #ff6a00; font-weight: 700;">{{kwData.d}}</span>
</view>
</view>
</view>
</view>
<view class="zd-row submit-bar">
<button class="zd-col-6 button-default" @tap="toEmpty">清空</button>
<button class="zd-col-16 button-primary" :class="{'button-info': JSON.stringify(currentData) === '{}' || !vehicleCode || !sWeight || !pcsn || !qty}" :disabled="disabled" @tap="_checkMaterConfirm">盘点确认</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import NumberInput from '@/components/NumberInput.vue'
import {getStructCount, storList, queryMaterByVehicleCode, checkMaterConfirm} from '@/utils/getData2.js'
export default {
components: {
NavBar,
SearchBox,
NumberInput
},
data() {
return {
title: '',
vehicleCode: '',
currentData: {},
sWeight: null,
pcsn: null,
qty: null,
storCode: null,
options: [],
disabled: false,
kwData: {}
};
},
onLoad (options) {
this.title = options.title
this._storList()
},
onShow () {
if (this.$store.getters.publicObj !== '') {
this.currentData.material_id = this.$store.getters.publicObj.material_id
this.currentData.material_code = this.$store.getters.publicObj.material_code
this.currentData.material_name = this.$store.getters.publicObj.material_name
this.currentData.material_spec = this.$store.getters.publicObj.material_spec
this.currentData.unit_name = this.$store.getters.publicObj.unit_name
this.sWeight = null
this.pcsn = null
this.qty = null
this.$store.dispatch('setPublicObj', '')
}
},
methods: {
async _storList () {
let res = await storList()
if (res.code === '200') {
this.options = [...res.content]
this.options.map(el => {
this.$set(el, 'text', el.label)
})
}
},
toJump () {
if (!this.vehicleCode) {
uni.showToast({
title: '请先扫描载具编码',
icon: 'none'
})
return
}
uni.navigateTo({
url: '/pages/common/mater-list?title=查询物料'
})
},
handleChange (e) {
if (e) {
this._queryMaterByVehicleCode(e)
this._getStructCount(e)
}
},
async _getStructCount (e) {
try {
let res = await getStructCount(e)
if (res) {
this.kwData = res
} else {
this.kwData = {}
}
} catch (e) {
this.kwData = {}
}
},
async _queryMaterByVehicleCode (e) {
try {
let res = await queryMaterByVehicleCode(e)
if (res && res.code === '200') {
this.currentData = res.content[0]
this.sWeight = this.currentData.single_weight
this.pcsn = this.currentData.pcsn
this.qty = this.currentData.qty
this.options.map(el => {
if (el.value === this.currentData.stor_code) {
this.storCode = el.text
}
})
}
} catch (e) {
this.disabled = false
}
},
toEmpty () {
this.currentData = {}
this.vehicleCode = ''
this.sWeight = null
this.pcsn = null
this.qty = null
this.storCode = null
this.disabled = false
this.kwData = {}
},
async _checkMaterConfirm () {
this.disabled = true
if (JSON.stringify(this.currentData) === '{}' || !this.vehicleCode || !this.sWeight || !this.pcsn || !this.qty) {
this.disabled = false
return
}
try {
let obj = Object.assign(this.currentData, {single_weight: this.sWeight, pcsn: this.pcsn, qty: this.qty})
let res = await checkMaterConfirm(obj)
uni.showToast({
title: res.message,
icon: 'none'
})
this.disabled = false
} catch (e) {
this.disabled = false
}
}
}
}
</script>
<style lang="stylus">
</style>