Files
hht-xzhy-uni/pages/entry/mater-group-to-store.vue
2025-09-01 17:18:37 +08:00

234 lines
6.7 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">
<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="currentData.single_weight" />
</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.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="currentData.qty" />
</view>
</view>
<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="currentData.vehicle_code" @handleChange="handleChange" @handleDel="handleDel" />
</view>
</view>
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label">仓库编码</span>
</view>
<view class="zd-col-17 filter_select">
<!-- <search-box v-model="currentData.stor_code"/> -->
<uni-data-select v-model="index" :localdata="options" @change="selectChange"></uni-data-select>
</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) === '{}'}" :disabled="disabled" @tap="_groupMaterIn">组盘确认</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import NumberInput from '@/components/NumberInput.vue'
import {storList, getStructCount, groupMaterIn} from '@/utils/getData2.js'
export default {
components: {
NavBar,
SearchBox,
NumberInput
},
data() {
return {
title: '',
currentData: {},
options: [],
index: '',
disabled: false,
kwData: {}
};
},
onLoad (options) {
this.title = options.title
this._storList()
},
onShow () {
if (this.$store.getters.publicObj !== '') {
this.currentData = this.$store.getters.publicObj
if(this.currentData.stor_code !== '' && this.currentData.stor_code !== null && this.currentData.stor_code !== undefined) {
this.options.map(el => {
if (el.value === this.currentData.stor_code) {
this.index = el.value
}
})
} else {
if (this.currentData.vehicle_code && this.currentData.vehicle_code.charAt(0).toUpperCase() === 'T') {
this.index ='FStockPallet'
} else {
this.index ='FStockId'
}
}
if (this.currentData.vehicle_code) {
this._getStructCount(this.currentData.vehicle_code)
} else {
this.kwData = {}
}
this.$store.dispatch('setPublicObj', '')
}
},
methods: {
selectChange (e) {
this.index = e
},
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 () {
uni.navigateTo({
url: '/pages/common/mater-list?title=查询物料'
})
},
handleChange (e) {
if (e) {
if (e.charAt(0).toUpperCase() === 'T') {
this.index ='FStockPallet'
} else {
this.index ='FStockId'
}
this._getStructCount(e)
}
},
async _getStructCount (e) {
try {
let res = await getStructCount(e)
if (res) {
this.kwData = res
} else {
this.kwData = {}
}
} catch (e) {
this.kwData = {}
}
},
handleDel () {
this.index = ''
},
toEmpty () {
this.currentData = {}
this.index = ''
this.disabled = false
this.kwData = {}
},
async _groupMaterIn () {
this.disabled = true
if (JSON.stringify(this.currentData) === '{}') {
this.disabled = false
return
}
try {
this.currentData.stor_code = this.index
let res = await groupMaterIn(this.index, this.currentData)
uni.showToast({
title: res.msg,
icon: 'none'
})
this.disabled = false
} catch (e) {
this.disabled = false
}
}
}
}
</script>
<style lang="stylus">
</style>